pilotswarm-sdk 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-loader.d.ts +61 -0
- package/dist/agent-loader.d.ts.map +1 -0
- package/dist/agent-loader.js +212 -0
- package/dist/agent-loader.js.map +1 -0
- package/dist/artifact-tools.d.ts +31 -0
- package/dist/artifact-tools.d.ts.map +1 -0
- package/dist/artifact-tools.js +190 -0
- package/dist/artifact-tools.js.map +1 -0
- package/dist/blob-store.d.ts +73 -0
- package/dist/blob-store.d.ts.map +1 -0
- package/dist/blob-store.js +220 -0
- package/dist/blob-store.js.map +1 -0
- package/dist/client.d.ts +159 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +676 -0
- package/dist/client.js.map +1 -0
- package/dist/cms.d.ts +129 -0
- package/dist/cms.d.ts.map +1 -0
- package/dist/cms.js +313 -0
- package/dist/cms.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/managed-session.d.ts +70 -0
- package/dist/managed-session.d.ts.map +1 -0
- package/dist/managed-session.js +717 -0
- package/dist/managed-session.js.map +1 -0
- package/dist/management-client.d.ts +171 -0
- package/dist/management-client.d.ts.map +1 -0
- package/dist/management-client.js +401 -0
- package/dist/management-client.js.map +1 -0
- package/dist/mcp-loader.d.ts +50 -0
- package/dist/mcp-loader.d.ts.map +1 -0
- package/dist/mcp-loader.js +83 -0
- package/dist/mcp-loader.js.map +1 -0
- package/dist/model-providers.d.ts +143 -0
- package/dist/model-providers.d.ts.map +1 -0
- package/dist/model-providers.js +228 -0
- package/dist/model-providers.js.map +1 -0
- package/dist/orchestration-registry.d.ts +7 -0
- package/dist/orchestration-registry.d.ts.map +1 -0
- package/dist/orchestration-registry.js +49 -0
- package/dist/orchestration-registry.js.map +1 -0
- package/dist/orchestration.d.ts +36 -0
- package/dist/orchestration.d.ts.map +1 -0
- package/dist/orchestration.js +1357 -0
- package/dist/orchestration.js.map +1 -0
- package/dist/orchestration_1_0_0.d.ts +20 -0
- package/dist/orchestration_1_0_0.d.ts.map +1 -0
- package/dist/orchestration_1_0_0.js +497 -0
- package/dist/orchestration_1_0_0.js.map +1 -0
- package/dist/orchestration_1_0_1.d.ts +19 -0
- package/dist/orchestration_1_0_1.d.ts.map +1 -0
- package/dist/orchestration_1_0_1.js +546 -0
- package/dist/orchestration_1_0_1.js.map +1 -0
- package/dist/orchestration_1_0_10.d.ts +36 -0
- package/dist/orchestration_1_0_10.d.ts.map +1 -0
- package/dist/orchestration_1_0_10.js +1253 -0
- package/dist/orchestration_1_0_10.js.map +1 -0
- package/dist/orchestration_1_0_11.d.ts +36 -0
- package/dist/orchestration_1_0_11.d.ts.map +1 -0
- package/dist/orchestration_1_0_11.js +1255 -0
- package/dist/orchestration_1_0_11.js.map +1 -0
- package/dist/orchestration_1_0_12.d.ts +36 -0
- package/dist/orchestration_1_0_12.d.ts.map +1 -0
- package/dist/orchestration_1_0_12.js +1250 -0
- package/dist/orchestration_1_0_12.js.map +1 -0
- package/dist/orchestration_1_0_13.d.ts +36 -0
- package/dist/orchestration_1_0_13.d.ts.map +1 -0
- package/dist/orchestration_1_0_13.js +1260 -0
- package/dist/orchestration_1_0_13.js.map +1 -0
- package/dist/orchestration_1_0_14.d.ts +36 -0
- package/dist/orchestration_1_0_14.d.ts.map +1 -0
- package/dist/orchestration_1_0_14.js +1258 -0
- package/dist/orchestration_1_0_14.js.map +1 -0
- package/dist/orchestration_1_0_15.d.ts +36 -0
- package/dist/orchestration_1_0_15.d.ts.map +1 -0
- package/dist/orchestration_1_0_15.js +1266 -0
- package/dist/orchestration_1_0_15.js.map +1 -0
- package/dist/orchestration_1_0_16.d.ts +36 -0
- package/dist/orchestration_1_0_16.d.ts.map +1 -0
- package/dist/orchestration_1_0_16.js +1275 -0
- package/dist/orchestration_1_0_16.js.map +1 -0
- package/dist/orchestration_1_0_17.d.ts +36 -0
- package/dist/orchestration_1_0_17.d.ts.map +1 -0
- package/dist/orchestration_1_0_17.js +1314 -0
- package/dist/orchestration_1_0_17.js.map +1 -0
- package/dist/orchestration_1_0_18.d.ts +36 -0
- package/dist/orchestration_1_0_18.d.ts.map +1 -0
- package/dist/orchestration_1_0_18.js +1328 -0
- package/dist/orchestration_1_0_18.js.map +1 -0
- package/dist/orchestration_1_0_19.d.ts +36 -0
- package/dist/orchestration_1_0_19.d.ts.map +1 -0
- package/dist/orchestration_1_0_19.js +1324 -0
- package/dist/orchestration_1_0_19.js.map +1 -0
- package/dist/orchestration_1_0_2.d.ts +19 -0
- package/dist/orchestration_1_0_2.d.ts.map +1 -0
- package/dist/orchestration_1_0_2.js +749 -0
- package/dist/orchestration_1_0_2.js.map +1 -0
- package/dist/orchestration_1_0_20.d.ts +36 -0
- package/dist/orchestration_1_0_20.d.ts.map +1 -0
- package/dist/orchestration_1_0_20.js +1347 -0
- package/dist/orchestration_1_0_20.js.map +1 -0
- package/dist/orchestration_1_0_3.d.ts +19 -0
- package/dist/orchestration_1_0_3.d.ts.map +1 -0
- package/dist/orchestration_1_0_3.js +826 -0
- package/dist/orchestration_1_0_3.js.map +1 -0
- package/dist/orchestration_1_0_4.d.ts +19 -0
- package/dist/orchestration_1_0_4.d.ts.map +1 -0
- package/dist/orchestration_1_0_4.js +1020 -0
- package/dist/orchestration_1_0_4.js.map +1 -0
- package/dist/orchestration_1_0_5.d.ts +19 -0
- package/dist/orchestration_1_0_5.d.ts.map +1 -0
- package/dist/orchestration_1_0_5.js +1027 -0
- package/dist/orchestration_1_0_5.js.map +1 -0
- package/dist/orchestration_1_0_6.d.ts +19 -0
- package/dist/orchestration_1_0_6.d.ts.map +1 -0
- package/dist/orchestration_1_0_6.js +1034 -0
- package/dist/orchestration_1_0_6.js.map +1 -0
- package/dist/orchestration_1_0_7.d.ts +19 -0
- package/dist/orchestration_1_0_7.d.ts.map +1 -0
- package/dist/orchestration_1_0_7.js +1085 -0
- package/dist/orchestration_1_0_7.js.map +1 -0
- package/dist/orchestration_1_0_8.d.ts +36 -0
- package/dist/orchestration_1_0_8.d.ts.map +1 -0
- package/dist/orchestration_1_0_8.js +1106 -0
- package/dist/orchestration_1_0_8.js.map +1 -0
- package/dist/orchestration_1_0_9.d.ts +36 -0
- package/dist/orchestration_1_0_9.d.ts.map +1 -0
- package/dist/orchestration_1_0_9.js +1207 -0
- package/dist/orchestration_1_0_9.js.map +1 -0
- package/dist/prompt-layering.d.ts +16 -0
- package/dist/prompt-layering.d.ts.map +1 -0
- package/dist/prompt-layering.js +60 -0
- package/dist/prompt-layering.js.map +1 -0
- package/dist/resourcemgr-tools.d.ts +27 -0
- package/dist/resourcemgr-tools.d.ts.map +1 -0
- package/dist/resourcemgr-tools.js +638 -0
- package/dist/resourcemgr-tools.js.map +1 -0
- package/dist/session-dumper.d.ts +26 -0
- package/dist/session-dumper.d.ts.map +1 -0
- package/dist/session-dumper.js +272 -0
- package/dist/session-dumper.js.map +1 -0
- package/dist/session-manager.d.ts +152 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +493 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/session-proxy.d.ts +68 -0
- package/dist/session-proxy.d.ts.map +1 -0
- package/dist/session-proxy.js +665 -0
- package/dist/session-proxy.js.map +1 -0
- package/dist/session-store.d.ts +35 -0
- package/dist/session-store.d.ts.map +1 -0
- package/dist/session-store.js +88 -0
- package/dist/session-store.js.map +1 -0
- package/dist/skills.d.ts +31 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +93 -0
- package/dist/skills.js.map +1 -0
- package/dist/sweeper-tools.d.ts +28 -0
- package/dist/sweeper-tools.d.ts.map +1 -0
- package/dist/sweeper-tools.js +332 -0
- package/dist/sweeper-tools.js.map +1 -0
- package/dist/types.d.ts +498 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/worker.d.ts +128 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +562 -0
- package/dist/worker.js.map +1 -0
- package/package.json +74 -0
- package/plugins/mgmt/agents/pilotswarm.agent.md +59 -0
- package/plugins/mgmt/agents/resourcemgr.agent.md +111 -0
- package/plugins/mgmt/agents/sweeper.agent.md +67 -0
- package/plugins/mgmt/skills/resourcemgr/SKILL.md +41 -0
- package/plugins/mgmt/skills/resourcemgr/tools.json +1 -0
- package/plugins/mgmt/skills/sweeper/SKILL.md +44 -0
- package/plugins/mgmt/skills/sweeper/tools.json +1 -0
- package/plugins/system/agents/default.agent.md +58 -0
- package/plugins/system/skills/durable-timers/SKILL.md +39 -0
- package/plugins/system/skills/sub-agents/SKILL.md +75 -0
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
import { CopilotClient } from "@github/copilot-sdk";
|
|
2
|
+
import { ManagedSession } from "./managed-session.js";
|
|
3
|
+
import { SESSION_STATE_MISSING_PREFIX } from "./types.js";
|
|
4
|
+
import { composeSystemPrompt, extractPromptContent } from "./prompt-layering.js";
|
|
5
|
+
import fs from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import os from "node:os";
|
|
8
|
+
const DEFAULT_SESSION_STATE_DIR = path.join(os.homedir(), ".copilot", "session-state");
|
|
9
|
+
/**
|
|
10
|
+
* SessionManager — singleton per worker node.
|
|
11
|
+
* Owns session lifecycle, wraps CopilotClient.
|
|
12
|
+
*
|
|
13
|
+
* Three ways a session appears:
|
|
14
|
+
* 1. Brand new → createSession
|
|
15
|
+
* 2. Same node, still warm → getSession returns it
|
|
16
|
+
* 3. Post-hydration → local files exist → resumeSession
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export class SessionManager {
|
|
21
|
+
githubToken;
|
|
22
|
+
client = null;
|
|
23
|
+
sessions = new Map();
|
|
24
|
+
sessionStore = null;
|
|
25
|
+
/** In-memory configs with non-serializable fields (tools, hooks). */
|
|
26
|
+
sessionConfigs = new Map();
|
|
27
|
+
/** Worker-level tool registry — shared reference from PilotSwarmWorker. */
|
|
28
|
+
toolRegistry = new Map();
|
|
29
|
+
/** Worker-level defaults for building blocks. */
|
|
30
|
+
workerDefaults;
|
|
31
|
+
/** Base directory for local session state files. */
|
|
32
|
+
sessionStateDir;
|
|
33
|
+
constructor(githubToken, sessionStore, workerDefaults, sessionStateDir) {
|
|
34
|
+
this.githubToken = githubToken;
|
|
35
|
+
this.sessionStore = sessionStore ?? null;
|
|
36
|
+
this.workerDefaults = workerDefaults ?? {};
|
|
37
|
+
this.sessionStateDir = sessionStateDir ?? DEFAULT_SESSION_STATE_DIR;
|
|
38
|
+
}
|
|
39
|
+
/** Store full config (with tools/hooks) for a session. Called by PilotSwarmClient. */
|
|
40
|
+
setConfig(sessionId, config) {
|
|
41
|
+
this.sessionConfigs.set(sessionId, config);
|
|
42
|
+
}
|
|
43
|
+
/** Get a human-readable model summary for LLM tool consumption. */
|
|
44
|
+
getModelSummary() {
|
|
45
|
+
return this.workerDefaults.modelProviders?.getModelSummaryForLLM();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Normalize a model reference against the configured registry.
|
|
49
|
+
* Throws for unknown models. When `requireQualified` is true, the caller
|
|
50
|
+
* must provide the exact `provider:model` string rather than a bare alias.
|
|
51
|
+
*/
|
|
52
|
+
normalizeModelRef(model, options) {
|
|
53
|
+
const registry = this.workerDefaults.modelProviders;
|
|
54
|
+
if (!registry)
|
|
55
|
+
return model;
|
|
56
|
+
const ref = model || registry.defaultModel;
|
|
57
|
+
if (!ref)
|
|
58
|
+
return undefined;
|
|
59
|
+
const normalized = registry.normalize(ref);
|
|
60
|
+
if (!normalized) {
|
|
61
|
+
throw new Error(`Unknown model "${ref}". Call list_available_models and choose an exact configured provider:model value.`);
|
|
62
|
+
}
|
|
63
|
+
if (options?.requireQualified && ref !== normalized) {
|
|
64
|
+
throw new Error(`Model "${ref}" is not allowed. Use the exact provider:model value returned by list_available_models, for example "${normalized}".`);
|
|
65
|
+
}
|
|
66
|
+
return normalized;
|
|
67
|
+
}
|
|
68
|
+
/** Set the worker-level tool registry. Called by PilotSwarmWorker. */
|
|
69
|
+
setToolRegistry(registry) {
|
|
70
|
+
this.toolRegistry = registry;
|
|
71
|
+
}
|
|
72
|
+
/** Ensure the CopilotClient is started. */
|
|
73
|
+
async ensureClient() {
|
|
74
|
+
if (!this.client) {
|
|
75
|
+
// Resolve githubToken: explicit > registry (github provider) > none
|
|
76
|
+
let token = this.githubToken;
|
|
77
|
+
if (!token && this.workerDefaults.modelProviders) {
|
|
78
|
+
// Check if any provider is type=github
|
|
79
|
+
for (const p of this.workerDefaults.modelProviders.allProviders) {
|
|
80
|
+
if (p.type === "github" && p.models.length > 0) {
|
|
81
|
+
const firstModel = typeof p.models[0] === "string" ? p.models[0] : p.models[0].name;
|
|
82
|
+
const resolved = this.workerDefaults.modelProviders.resolve(`${p.id}:${firstModel}`);
|
|
83
|
+
token = resolved?.githubToken;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
this.client = new CopilotClient({
|
|
89
|
+
githubToken: token,
|
|
90
|
+
logLevel: "error",
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return this.client;
|
|
94
|
+
}
|
|
95
|
+
_missingSessionStateError(sessionId, turnIndex, detail) {
|
|
96
|
+
const suffix = detail ? ` ${detail}` : "";
|
|
97
|
+
return new Error(`${SESSION_STATE_MISSING_PREFIX} turn ${turnIndex} expected resumable Copilot session state for ${sessionId}, ` +
|
|
98
|
+
`but none was found in memory, on disk, or in the session store.${suffix}`);
|
|
99
|
+
}
|
|
100
|
+
async _resetSessionState(sessionId) {
|
|
101
|
+
const existing = this.sessions.get(sessionId);
|
|
102
|
+
if (existing) {
|
|
103
|
+
try {
|
|
104
|
+
await existing.destroy();
|
|
105
|
+
}
|
|
106
|
+
catch { }
|
|
107
|
+
this.sessions.delete(sessionId);
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const client = await this.ensureClient();
|
|
111
|
+
await client.deleteSession(sessionId);
|
|
112
|
+
}
|
|
113
|
+
catch { }
|
|
114
|
+
const sessionDir = path.join(this.sessionStateDir, sessionId);
|
|
115
|
+
if (fs.existsSync(sessionDir)) {
|
|
116
|
+
fs.rmSync(sessionDir, { recursive: true, force: true });
|
|
117
|
+
}
|
|
118
|
+
if (this.sessionStore) {
|
|
119
|
+
try {
|
|
120
|
+
await this.sessionStore.delete(sessionId);
|
|
121
|
+
}
|
|
122
|
+
catch { }
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get existing session or create/resume one.
|
|
127
|
+
* Merges: worker defaults → serializable config (from client) → in-memory config (tools/hooks).
|
|
128
|
+
*/
|
|
129
|
+
async getOrCreate(sessionId, serializableConfig, options) {
|
|
130
|
+
const turnIndex = options?.turnIndex;
|
|
131
|
+
// Resolve tools: merge per-session (setConfig) + registry (toolNames)
|
|
132
|
+
const storedConfig = this.sessionConfigs.get(sessionId);
|
|
133
|
+
const resolvedTools = this._resolveTools(storedConfig, serializableConfig);
|
|
134
|
+
const config = {
|
|
135
|
+
...storedConfig,
|
|
136
|
+
...serializableConfig,
|
|
137
|
+
tools: resolvedTools.length > 0 ? resolvedTools : undefined,
|
|
138
|
+
hooks: storedConfig?.hooks,
|
|
139
|
+
turnTimeoutMs: this.workerDefaults.turnTimeoutMs,
|
|
140
|
+
};
|
|
141
|
+
const client = await this.ensureClient();
|
|
142
|
+
const sessionDir = path.join(this.sessionStateDir, sessionId);
|
|
143
|
+
// Merge user tools with system tool definitions (wait, ask_user, sub-agent tools)
|
|
144
|
+
// so the LLM sees them at session creation time.
|
|
145
|
+
const userTools = config.tools ?? [];
|
|
146
|
+
const systemTools = ManagedSession.systemToolDefs();
|
|
147
|
+
const subAgentTools = ManagedSession.subAgentToolDefs();
|
|
148
|
+
const SYSTEM_TOOL_NAMES = new Set([...systemTools, ...subAgentTools].map((t) => t.name));
|
|
149
|
+
const allTools = [
|
|
150
|
+
...userTools.filter((t) => !SYSTEM_TOOL_NAMES.has(t.name)),
|
|
151
|
+
...systemTools,
|
|
152
|
+
...subAgentTools,
|
|
153
|
+
];
|
|
154
|
+
// Build system message: worker base + client override
|
|
155
|
+
const systemMessage = this._buildSystemMessage(config);
|
|
156
|
+
// Resolve model: config.model may be qualified (provider:model) or bare.
|
|
157
|
+
// The SDK needs the bare model name; the provider config is separate.
|
|
158
|
+
// Fall back to registry default if no model specified.
|
|
159
|
+
const registry = this.workerDefaults.modelProviders;
|
|
160
|
+
const effectiveModel = this.normalizeModelRef(config.model) || "";
|
|
161
|
+
const resolvedProviderConfig = this._resolveProviderConfig(effectiveModel);
|
|
162
|
+
let sdkModelName = effectiveModel;
|
|
163
|
+
if (registry && effectiveModel) {
|
|
164
|
+
const desc = registry.getDescriptor(effectiveModel);
|
|
165
|
+
if (desc)
|
|
166
|
+
sdkModelName = desc.modelName;
|
|
167
|
+
}
|
|
168
|
+
const sessionConfig = {
|
|
169
|
+
sessionId,
|
|
170
|
+
tools: allTools,
|
|
171
|
+
model: sdkModelName,
|
|
172
|
+
systemMessage: systemMessage
|
|
173
|
+
? (typeof systemMessage === "string" ? { content: systemMessage } : systemMessage)
|
|
174
|
+
: undefined,
|
|
175
|
+
configDir: path.dirname(this.sessionStateDir),
|
|
176
|
+
workingDirectory: config.workingDirectory,
|
|
177
|
+
hooks: config.hooks,
|
|
178
|
+
onPermissionRequest: config.onPermissionRequest ?? (async () => ({ kind: "approved" })),
|
|
179
|
+
infiniteSessions: { enabled: false },
|
|
180
|
+
// Custom LLM provider — resolve from registry or legacy single provider
|
|
181
|
+
...resolvedProviderConfig,
|
|
182
|
+
// Pass loaded skills, agents, and MCP from worker defaults
|
|
183
|
+
...(this.workerDefaults.skillDirectories?.length && { skillDirectories: this.workerDefaults.skillDirectories }),
|
|
184
|
+
...(this.workerDefaults.customAgents?.length && { customAgents: this.workerDefaults.customAgents }),
|
|
185
|
+
...(this.workerDefaults.mcpServers && Object.keys(this.workerDefaults.mcpServers).length > 0 && { mcpServers: this.workerDefaults.mcpServers }),
|
|
186
|
+
};
|
|
187
|
+
let copilotSession;
|
|
188
|
+
// 1. Check if already in memory (warm) — update config in case
|
|
189
|
+
// tools were registered after the session was first created.
|
|
190
|
+
const existing = this.sessions.get(sessionId);
|
|
191
|
+
if (existing) {
|
|
192
|
+
if (turnIndex === 0) {
|
|
193
|
+
console.warn(`[SessionManager] stale in-memory Copilot session found for turn 0 (${sessionId}); ` +
|
|
194
|
+
`discarding it and creating a fresh session.`);
|
|
195
|
+
await this._resetSessionState(sessionId);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
existing.updateConfig(config);
|
|
199
|
+
return existing;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const localExists = fs.existsSync(sessionDir);
|
|
203
|
+
const storedExists = this.sessionStore ? await this.sessionStore.exists(sessionId).catch(() => false) : false;
|
|
204
|
+
if (turnIndex === 0) {
|
|
205
|
+
if (localExists || storedExists) {
|
|
206
|
+
console.warn(`[SessionManager] stale persisted Copilot session found for turn 0 (${sessionId}); ` +
|
|
207
|
+
`discarding it and creating a fresh session.`);
|
|
208
|
+
await this._resetSessionState(sessionId);
|
|
209
|
+
}
|
|
210
|
+
copilotSession = await client.createSession(sessionConfig);
|
|
211
|
+
}
|
|
212
|
+
else if (turnIndex != null && turnIndex > 0) {
|
|
213
|
+
if (fs.existsSync(sessionDir)) {
|
|
214
|
+
copilotSession = await client.resumeSession(sessionId, sessionConfig);
|
|
215
|
+
}
|
|
216
|
+
else if (this.sessionStore && storedExists) {
|
|
217
|
+
await this.sessionStore.hydrate(sessionId);
|
|
218
|
+
if (!fs.existsSync(sessionDir)) {
|
|
219
|
+
throw this._missingSessionStateError(sessionId, turnIndex, " Hydration completed but no local session directory was restored.");
|
|
220
|
+
}
|
|
221
|
+
copilotSession = await client.resumeSession(sessionId, sessionConfig);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
throw this._missingSessionStateError(sessionId, turnIndex);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// Backward-compatible permissive path for older orchestration versions.
|
|
229
|
+
if (fs.existsSync(sessionDir)) {
|
|
230
|
+
copilotSession = await client.resumeSession(sessionId, sessionConfig);
|
|
231
|
+
}
|
|
232
|
+
else if (this.sessionStore) {
|
|
233
|
+
try {
|
|
234
|
+
await this.sessionStore.hydrate(sessionId);
|
|
235
|
+
if (fs.existsSync(sessionDir)) {
|
|
236
|
+
copilotSession = await client.resumeSession(sessionId, sessionConfig);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
copilotSession = await client.createSession(sessionConfig);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
copilotSession = await client.createSession(sessionConfig);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
copilotSession = await client.createSession(sessionConfig);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
const managed = new ManagedSession(sessionId, copilotSession, config);
|
|
251
|
+
this.sessions.set(sessionId, managed);
|
|
252
|
+
return managed;
|
|
253
|
+
}
|
|
254
|
+
/** Get a session by ID (null if not in memory on this node). */
|
|
255
|
+
get(sessionId) {
|
|
256
|
+
return this.sessions.get(sessionId) ?? null;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Dehydrate a session: destroy in memory, then persist state to the configured session store.
|
|
260
|
+
*
|
|
261
|
+
* The Copilot SDK's disconnect path preserves session state on disk, so we
|
|
262
|
+
* first release the in-memory session and then archive the resulting local
|
|
263
|
+
* session files into the configured session store.
|
|
264
|
+
*
|
|
265
|
+
* If destroy() fails (e.g., Copilot connection already disposed), we retry
|
|
266
|
+
* by re-creating the session from local files and destroying again.
|
|
267
|
+
* After MAX_RETRIES, we still attempt the session-store write and throw a
|
|
268
|
+
* clear error if that also fails.
|
|
269
|
+
*/
|
|
270
|
+
async dehydrate(sessionId, reason) {
|
|
271
|
+
const MAX_RETRIES = 3;
|
|
272
|
+
let lastError;
|
|
273
|
+
// Phase 1: Destroy the in-memory session (with retries)
|
|
274
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
275
|
+
const session = this.sessions.get(sessionId);
|
|
276
|
+
if (!session)
|
|
277
|
+
break; // No in-memory session — nothing to destroy
|
|
278
|
+
try {
|
|
279
|
+
await session.destroy();
|
|
280
|
+
this.sessions.delete(sessionId);
|
|
281
|
+
break; // Success
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
lastError = err;
|
|
285
|
+
this.sessions.delete(sessionId); // Remove broken session from map
|
|
286
|
+
if (attempt < MAX_RETRIES) {
|
|
287
|
+
// Re-create the session from local files so we can try destroy again.
|
|
288
|
+
const sessionDir = path.join(this.sessionStateDir, sessionId);
|
|
289
|
+
if (fs.existsSync(sessionDir)) {
|
|
290
|
+
try {
|
|
291
|
+
const client = await this.ensureClient();
|
|
292
|
+
const copilotSession = await client.resumeSession(sessionId, {
|
|
293
|
+
tools: [...ManagedSession.systemToolDefs(), ...ManagedSession.subAgentToolDefs()],
|
|
294
|
+
onPermissionRequest: async () => ({ kind: "approved" }),
|
|
295
|
+
});
|
|
296
|
+
const config = this.sessionConfigs.get(sessionId) ?? {};
|
|
297
|
+
const managed = new ManagedSession(sessionId, copilotSession, config);
|
|
298
|
+
this.sessions.set(sessionId, managed);
|
|
299
|
+
// Brief pause before retry
|
|
300
|
+
await new Promise(r => setTimeout(r, 500 * attempt));
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
// Can't resume — session files may be corrupt. Fall through.
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
break; // No local files — can't retry
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// Phase 2: Persist to the session store (always attempt, even if destroy failed)
|
|
314
|
+
if (this.sessionStore) {
|
|
315
|
+
try {
|
|
316
|
+
await this.sessionStore.dehydrate(sessionId, { reason });
|
|
317
|
+
}
|
|
318
|
+
catch (storeErr) {
|
|
319
|
+
if (lastError) {
|
|
320
|
+
throw new Error(`Session ${sessionId} is not dehydratable: ` +
|
|
321
|
+
`destroy failed (${lastError.message}), ` +
|
|
322
|
+
`session-store persistence also failed (${storeErr.message}). ` +
|
|
323
|
+
`Session state may be lost on worker recycle.`);
|
|
324
|
+
}
|
|
325
|
+
throw storeErr;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (lastError) {
|
|
329
|
+
console.warn(`[SessionManager] destroy() failed for ${sessionId} after ${MAX_RETRIES} attempts ` +
|
|
330
|
+
`(${lastError.message}), but session-store persistence succeeded. Session state is preserved.`);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Hydrate session state from the configured session store to local disk.
|
|
335
|
+
* The next getOrCreate() will detect local files and resume.
|
|
336
|
+
*/
|
|
337
|
+
async hydrate(sessionId) {
|
|
338
|
+
if (this.sessionStore) {
|
|
339
|
+
await this.sessionStore.hydrate(sessionId);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Return true when the next turn must hydrate state from the session store.
|
|
344
|
+
* This supports abrupt worker loss and direct worker-side dehydration.
|
|
345
|
+
*/
|
|
346
|
+
async needsHydration(sessionId) {
|
|
347
|
+
if (!this.sessionStore)
|
|
348
|
+
return false;
|
|
349
|
+
if (this.sessions.has(sessionId))
|
|
350
|
+
return false;
|
|
351
|
+
const sessionDir = path.join(this.sessionStateDir, sessionId);
|
|
352
|
+
if (fs.existsSync(sessionDir))
|
|
353
|
+
return false;
|
|
354
|
+
try {
|
|
355
|
+
return await this.sessionStore.exists(sessionId);
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Destroy a session and remove from tracking.
|
|
363
|
+
*/
|
|
364
|
+
async destroySession(sessionId) {
|
|
365
|
+
const session = this.sessions.get(sessionId);
|
|
366
|
+
if (session) {
|
|
367
|
+
await session.destroy();
|
|
368
|
+
this.sessions.delete(sessionId);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Checkpoint session state without destroying the session or
|
|
373
|
+
* releasing affinity. Used for crash resilience — session stays warm.
|
|
374
|
+
*/
|
|
375
|
+
async checkpoint(sessionId) {
|
|
376
|
+
if (this.sessionStore) {
|
|
377
|
+
await this.sessionStore.checkpoint(sessionId);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/** List all in-memory session IDs on this node. */
|
|
381
|
+
activeSessionIds() {
|
|
382
|
+
return [...this.sessions.keys()];
|
|
383
|
+
}
|
|
384
|
+
/** Shutdown: destroy all sessions, stop CopilotClient. */
|
|
385
|
+
async shutdown() {
|
|
386
|
+
for (const [_, session] of this.sessions) {
|
|
387
|
+
try {
|
|
388
|
+
await session.destroy();
|
|
389
|
+
}
|
|
390
|
+
catch { }
|
|
391
|
+
}
|
|
392
|
+
this.sessions.clear();
|
|
393
|
+
if (this.client) {
|
|
394
|
+
await this.client.stop();
|
|
395
|
+
this.client = null;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Resolve tools from per-session config + worker-level registry.
|
|
400
|
+
* Per-session tools take precedence over registry tools with the same name.
|
|
401
|
+
*/
|
|
402
|
+
_resolveTools(storedConfig, serializableConfig) {
|
|
403
|
+
const registryTools = [];
|
|
404
|
+
if (serializableConfig.toolNames?.length) {
|
|
405
|
+
for (const name of serializableConfig.toolNames) {
|
|
406
|
+
const tool = this.toolRegistry.get(name);
|
|
407
|
+
if (tool)
|
|
408
|
+
registryTools.push(tool);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
const combined = [
|
|
412
|
+
...(storedConfig?.tools ?? []),
|
|
413
|
+
...registryTools,
|
|
414
|
+
];
|
|
415
|
+
// Deduplicate by name — per-session tools take precedence
|
|
416
|
+
const seen = new Set();
|
|
417
|
+
const deduped = [];
|
|
418
|
+
for (const tool of combined) {
|
|
419
|
+
const name = tool.name;
|
|
420
|
+
if (!seen.has(name)) {
|
|
421
|
+
seen.add(name);
|
|
422
|
+
deduped.push(tool);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return deduped;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Resolve the provider config for a given model.
|
|
429
|
+
* Prefers ModelProviderRegistry, falls back to legacy single provider.
|
|
430
|
+
*/
|
|
431
|
+
_resolveProviderConfig(model) {
|
|
432
|
+
// 1. Try the multi-provider registry
|
|
433
|
+
const registry = this.workerDefaults.modelProviders;
|
|
434
|
+
if (registry) {
|
|
435
|
+
const resolved = registry.resolve(model);
|
|
436
|
+
if (resolved) {
|
|
437
|
+
if (resolved.type === "github") {
|
|
438
|
+
// GitHub provider — no SDK provider needed, uses githubToken on the client
|
|
439
|
+
return {};
|
|
440
|
+
}
|
|
441
|
+
if (resolved.sdkProvider) {
|
|
442
|
+
return { provider: resolved.sdkProvider };
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
// 2. Fall back to legacy single provider
|
|
447
|
+
const p = this.workerDefaults.provider;
|
|
448
|
+
if (!p)
|
|
449
|
+
return {};
|
|
450
|
+
// For Azure, dynamically construct deployment URL
|
|
451
|
+
if (p.type === "azure" && model && !p.baseUrl.includes("/deployments/")) {
|
|
452
|
+
return {
|
|
453
|
+
provider: {
|
|
454
|
+
...p,
|
|
455
|
+
baseUrl: `${p.baseUrl.replace(/\/+$/, "")}/deployments/${model}`,
|
|
456
|
+
},
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
return { provider: p };
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Build the final system message from:
|
|
463
|
+
* 1. embedded PilotSwarm framework base
|
|
464
|
+
* 2. app-level default instructions
|
|
465
|
+
* 3. bound agent prompt (for named/system sessions)
|
|
466
|
+
* 4. caller/runtime context
|
|
467
|
+
*/
|
|
468
|
+
_buildSystemMessage(config) {
|
|
469
|
+
const frameworkBase = this.workerDefaults.frameworkBasePrompt ?? this.workerDefaults.systemMessage;
|
|
470
|
+
const runtimeContext = extractPromptContent(config.systemMessage);
|
|
471
|
+
const boundAgentName = config.boundAgentName;
|
|
472
|
+
const layerKind = config.promptLayering?.kind ?? (boundAgentName ? "app-agent" : undefined);
|
|
473
|
+
const activeAgentPrompt = boundAgentName
|
|
474
|
+
? this.workerDefaults.agentPromptLookup?.[boundAgentName]?.prompt
|
|
475
|
+
: undefined;
|
|
476
|
+
if (!layerKind || !activeAgentPrompt) {
|
|
477
|
+
return composeSystemPrompt({
|
|
478
|
+
frameworkBase,
|
|
479
|
+
appDefault: this.workerDefaults.appDefaultPrompt,
|
|
480
|
+
runtimeContext,
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
return composeSystemPrompt({
|
|
484
|
+
frameworkBase,
|
|
485
|
+
appDefault: layerKind === "pilotswarm-system-agent"
|
|
486
|
+
? undefined
|
|
487
|
+
: this.workerDefaults.appDefaultPrompt,
|
|
488
|
+
activeAgentPrompt,
|
|
489
|
+
runtimeContext,
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
//# sourceMappingURL=session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { SessionManager } from "./session-manager.js";
|
|
2
|
+
import type { SessionStateStore } from "./session-store.js";
|
|
3
|
+
import type { SessionCatalogProvider } from "./cms.js";
|
|
4
|
+
import { type SerializableSessionConfig } from "./types.js";
|
|
5
|
+
import type { AgentConfig } from "./agent-loader.js";
|
|
6
|
+
export declare function createSessionProxy(ctx: any, sessionId: string, affinityKey: string, config: SerializableSessionConfig): {
|
|
7
|
+
runTurn(prompt: string, bootstrap?: boolean, turnIndex?: number): any;
|
|
8
|
+
dehydrate(reason: string): any;
|
|
9
|
+
hydrate(): any;
|
|
10
|
+
needsHydration(): any;
|
|
11
|
+
destroy(): any;
|
|
12
|
+
checkpoint(): any;
|
|
13
|
+
};
|
|
14
|
+
export declare function createSessionManagerProxy(ctx: any): {
|
|
15
|
+
listModels(): any;
|
|
16
|
+
summarizeSession(sessionId: string): any;
|
|
17
|
+
/** Spawn a child session via the PilotSwarmClient SDK. Returns the generated child session ID. */
|
|
18
|
+
spawnChildSession(parentSessionId: string, config: any, task: string, nestingLevel?: number, isSystem?: boolean, title?: string, agentId?: string, splash?: string): any;
|
|
19
|
+
/** Resolve a loaded agent config by name. Returns null if not found. */
|
|
20
|
+
resolveAgentConfig(agentName: string): any;
|
|
21
|
+
/** Send a message to a session via the PilotSwarmClient SDK. */
|
|
22
|
+
sendToSession(sessionId: string, message: string): any;
|
|
23
|
+
/** Send a raw command (JSON) directly to a session's event queue. */
|
|
24
|
+
sendCommandToSession(sessionId: string, command: any): any;
|
|
25
|
+
/** Get the status of a session via the PilotSwarmClient SDK. */
|
|
26
|
+
getSessionStatus(sessionId: string): any;
|
|
27
|
+
/** List all sessions via the PilotSwarmClient SDK. */
|
|
28
|
+
listSessions(): any;
|
|
29
|
+
/** @deprecated Send a child_updates event to a parent orchestration. Use sendToSession instead. */
|
|
30
|
+
notifyParent(parentOrchId: string, childOrchId: string, childSessionId: string, update: any): any;
|
|
31
|
+
/** Get all descendant session IDs of a session (children, grandchildren, etc.). */
|
|
32
|
+
getDescendantSessionIds(sessionId: string): any;
|
|
33
|
+
/** Cancel a session's orchestration (terminates immediately). */
|
|
34
|
+
cancelSession(sessionId: string, reason?: string): any;
|
|
35
|
+
/** Cancel a session's orchestration and delete it from CMS. */
|
|
36
|
+
deleteSession(sessionId: string, reason?: string): any;
|
|
37
|
+
/** Update a session's CMS state (e.g. "rejected" for policy violations). */
|
|
38
|
+
updateCmsState(sessionId: string, state: string, lastError?: string): any;
|
|
39
|
+
/** Get the worker's authoritative session policy + allowed agent names. */
|
|
40
|
+
getWorkerSessionPolicy(): any;
|
|
41
|
+
};
|
|
42
|
+
export declare function registerActivities(runtime: any, sessionManager: SessionManager, _sessionStore: SessionStateStore | null, githubToken?: string, catalog?: SessionCatalogProvider | null, provider?: any, storeUrl?: string, cmsSchema?: string,
|
|
43
|
+
/** Client-level config forwarded to ephemeral PilotSwarmClient instances (e.g. spawnChildSession). */
|
|
44
|
+
clientConfig?: {
|
|
45
|
+
blobEnabled?: boolean;
|
|
46
|
+
duroxideSchema?: string;
|
|
47
|
+
},
|
|
48
|
+
/** Loaded system agents — used by resolveAgentConfig activity. */
|
|
49
|
+
systemAgents?: AgentConfig[],
|
|
50
|
+
/** Worker-level session policy — used by getWorkerSessionPolicy activity. */
|
|
51
|
+
workerSessionPolicy?: import("./types.js").SessionPolicy | null,
|
|
52
|
+
/** Names of loaded non-system agents — used by getWorkerSessionPolicy activity. */
|
|
53
|
+
workerAllowedAgentNames?: string[],
|
|
54
|
+
/** Loaded user-creatable agents — used by resolveAgentConfig activity. */
|
|
55
|
+
userAgents?: Array<{
|
|
56
|
+
name: string;
|
|
57
|
+
description?: string;
|
|
58
|
+
prompt: string;
|
|
59
|
+
tools?: string[] | null;
|
|
60
|
+
namespace?: string;
|
|
61
|
+
id?: string;
|
|
62
|
+
title?: string;
|
|
63
|
+
initialPrompt?: string;
|
|
64
|
+
splash?: string;
|
|
65
|
+
parent?: string;
|
|
66
|
+
promptLayerKind?: "app-agent" | "app-system-agent" | "pilotswarm-system-agent";
|
|
67
|
+
}>): void;
|
|
68
|
+
//# sourceMappingURL=session-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-proxy.d.ts","sourceRoot":"","sources":["../src/session-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAgC,KAAK,yBAAyB,EAA4C,MAAM,YAAY,CAAC;AACpI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,yBAAyB;oBAGb,MAAM,cAAc,OAAO,cAAc,MAAM;sBAO7C,MAAM;;;;;EAoC/B;AAMD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG;;gCAKd,MAAM;IAGlC,kGAAkG;uCAC/D,MAAM,UAAU,GAAG,QAAQ,MAAM,iBAAiB,MAAM,aAAa,OAAO,UAAU,MAAM,YAAY,MAAM,WAAW,MAAM;IAGlK,wEAAwE;kCAC1C,MAAM;IAGpC,gEAAgE;6BACvC,MAAM,WAAW,MAAM;IAGhD,qEAAqE;oCACrC,MAAM,WAAW,GAAG;IAGpD,gEAAgE;gCACpC,MAAM;IAGlC,sDAAsD;;IAItD,mGAAmG;+BACxE,MAAM,eAAe,MAAM,kBAAkB,MAAM,UAAU,GAAG;IAG3F,mFAAmF;uCAChD,MAAM;IAGzC,iEAAiE;6BACxC,MAAM,WAAW,MAAM;IAGhD,+DAA+D;6BACtC,MAAM,WAAW,MAAM;IAGhD,4EAA4E;8BAClD,MAAM,SAAS,MAAM,cAAc,MAAM;IAGnE,2EAA2E;;EAKlF;AAMD,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,iBAAiB,GAAG,IAAI,EACvC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI,EACvC,QAAQ,CAAC,EAAE,GAAG,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM;AAClB,sGAAsG;AACtG,YAAY,CAAC,EAAE;IACX,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,kEAAkE;AAClE,YAAY,CAAC,EAAE,WAAW,EAAE;AAC5B,6EAA6E;AAC7E,mBAAmB,CAAC,EAAE,OAAO,YAAY,EAAE,aAAa,GAAG,IAAI;AAC/D,mFAAmF;AACnF,uBAAuB,CAAC,EAAE,MAAM,EAAE;AAClC,0EAA0E;AAC1E,UAAU,CAAC,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAA;CAAE,CAAC,QAooBjS"}
|