openskynet / src /agents /tool-suites /session-tools.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import { createAgentsListTool } from "../tools/agents-list-tool.js";
import { createSessionStatusTool } from "../tools/session-status-tool.js";
import { createSessionsHistoryTool } from "../tools/sessions-history-tool.js";
import { createSessionsListTool } from "../tools/sessions-list-tool.js";
import { createSessionsSendTool } from "../tools/sessions-send-tool.js";
import { createSessionsSpawnTool } from "../tools/sessions-spawn-tool.js";
import { createSessionsYieldTool } from "../tools/sessions-yield-tool.js";
import { createSubagentsTool } from "../tools/subagents-tool.js";
import type {
CreateOpenClawToolsOptions,
OpenClawToolSuite,
OpenClawToolSuiteEntry,
} from "./types.js";
function pushEntry(
entries: OpenClawToolSuiteEntry[],
tool: OpenClawToolSuiteEntry["tool"] | null,
order: number,
) {
if (!tool) {
return;
}
entries.push({
tool,
classification: "substrate",
order,
});
}
export function createSessionToolSuite(options: {
options?: CreateOpenClawToolsOptions;
workspaceDir: string;
spawnWorkspaceDir: string;
}): OpenClawToolSuite {
const opts = options.options;
const entries: OpenClawToolSuiteEntry[] = [];
pushEntry(
entries,
createAgentsListTool({
agentSessionKey: opts?.agentSessionKey,
requesterAgentIdOverride: opts?.requesterAgentIdOverride,
}),
90,
);
pushEntry(
entries,
createSessionsListTool({
agentSessionKey: opts?.agentSessionKey,
sandboxed: opts?.sandboxed,
config: opts?.config,
}),
100,
);
pushEntry(
entries,
createSessionsHistoryTool({
agentSessionKey: opts?.agentSessionKey,
sandboxed: opts?.sandboxed,
config: opts?.config,
}),
110,
);
pushEntry(
entries,
createSessionsSendTool({
agentSessionKey: opts?.agentSessionKey,
agentChannel: opts?.agentChannel,
sandboxed: opts?.sandboxed,
config: opts?.config,
workspaceDir: options.workspaceDir,
}),
120,
);
pushEntry(
entries,
createSessionsYieldTool({
sessionId: opts?.sessionId,
onYield: opts?.onYield,
}),
130,
);
pushEntry(
entries,
createSessionsSpawnTool({
agentSessionKey: opts?.agentSessionKey,
agentChannel: opts?.agentChannel,
agentAccountId: opts?.agentAccountId,
agentTo: opts?.agentTo,
agentThreadId: opts?.agentThreadId,
agentGroupId: opts?.agentGroupId,
agentGroupChannel: opts?.agentGroupChannel,
agentGroupSpace: opts?.agentGroupSpace,
sandboxed: opts?.sandboxed,
requesterAgentIdOverride: opts?.requesterAgentIdOverride,
workspaceDir: options.spawnWorkspaceDir,
}),
140,
);
pushEntry(entries, createSubagentsTool({ agentSessionKey: opts?.agentSessionKey }), 150);
pushEntry(
entries,
createSessionStatusTool({
agentSessionKey: opts?.agentSessionKey,
config: opts?.config,
sandboxed: opts?.sandboxed,
}),
160,
);
return {
kind: "session",
entries,
};
}