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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionDumper — generates Markdown debug dumps of session conversations.
|
|
3
|
+
*
|
|
4
|
+
* Recursively traverses parent → child → grandchild sessions, rendering
|
|
5
|
+
* all user/assistant messages, tool calls, and cross-session communication
|
|
6
|
+
* into a single structured Markdown document.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import type { SessionCatalogProvider } from "./cms.js";
|
|
11
|
+
export declare class SessionDumper {
|
|
12
|
+
private catalog;
|
|
13
|
+
constructor(catalog: SessionCatalogProvider);
|
|
14
|
+
/**
|
|
15
|
+
* Dump a single session and all its descendants to Markdown.
|
|
16
|
+
*/
|
|
17
|
+
dump(sessionId: string): Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Dump all active sessions to Markdown.
|
|
20
|
+
*/
|
|
21
|
+
dumpAll(): Promise<string>;
|
|
22
|
+
private _buildTree;
|
|
23
|
+
private _renderTreeAscii;
|
|
24
|
+
private _renderSessionDetail;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=session-dumper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-dumper.d.ts","sourceRoot":"","sources":["../src/session-dumper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAA4B,MAAM,UAAU,CAAC;AAkCjF,qBAAa,aAAa;IACV,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,sBAAsB;IAEnD;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB9C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;YAoClB,UAAU;IA2BxB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,oBAAoB;CAwJ/B"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionDumper — generates Markdown debug dumps of session conversations.
|
|
3
|
+
*
|
|
4
|
+
* Recursively traverses parent → child → grandchild sessions, rendering
|
|
5
|
+
* all user/assistant messages, tool calls, and cross-session communication
|
|
6
|
+
* into a single structured Markdown document.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
// ─── Helpers ─────────────────────────────────────────────────────
|
|
11
|
+
function shortId(id) {
|
|
12
|
+
return id.slice(0, 8);
|
|
13
|
+
}
|
|
14
|
+
function fmtTime(date) {
|
|
15
|
+
return date.toISOString().replace("T", " ").replace(/\.\d+Z$/, "Z");
|
|
16
|
+
}
|
|
17
|
+
function indent(text, prefix) {
|
|
18
|
+
return text.split("\n").map(l => prefix + l).join("\n");
|
|
19
|
+
}
|
|
20
|
+
function escapeContent(text) {
|
|
21
|
+
// Trim very long content but keep it readable
|
|
22
|
+
if (text.length > 5000) {
|
|
23
|
+
return text.slice(0, 5000) + "\n\n... (truncated, " + text.length + " chars total)";
|
|
24
|
+
}
|
|
25
|
+
return text;
|
|
26
|
+
}
|
|
27
|
+
// ─── SessionDumper ───────────────────────────────────────────────
|
|
28
|
+
export class SessionDumper {
|
|
29
|
+
catalog;
|
|
30
|
+
constructor(catalog) {
|
|
31
|
+
this.catalog = catalog;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Dump a single session and all its descendants to Markdown.
|
|
35
|
+
*/
|
|
36
|
+
async dump(sessionId) {
|
|
37
|
+
const tree = await this._buildTree(sessionId);
|
|
38
|
+
if (!tree) {
|
|
39
|
+
return `# Session Dump\n\n> Session \`${sessionId}\` not found.\n`;
|
|
40
|
+
}
|
|
41
|
+
const lines = [];
|
|
42
|
+
lines.push(`# Session Debug Dump`);
|
|
43
|
+
lines.push(``);
|
|
44
|
+
lines.push(`Generated: ${new Date().toISOString()}`);
|
|
45
|
+
lines.push(``);
|
|
46
|
+
// Session tree overview
|
|
47
|
+
lines.push(`## Session Tree`);
|
|
48
|
+
lines.push(``);
|
|
49
|
+
lines.push("```");
|
|
50
|
+
this._renderTreeAscii(tree, lines, "");
|
|
51
|
+
lines.push("```");
|
|
52
|
+
lines.push(``);
|
|
53
|
+
// Detailed conversation for each session
|
|
54
|
+
this._renderSessionDetail(tree, lines, 0);
|
|
55
|
+
return lines.join("\n");
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Dump all active sessions to Markdown.
|
|
59
|
+
*/
|
|
60
|
+
async dumpAll() {
|
|
61
|
+
const sessions = await this.catalog.listSessions();
|
|
62
|
+
// Find root sessions (no parent)
|
|
63
|
+
const roots = sessions.filter(s => !s.parentSessionId);
|
|
64
|
+
const lines = [];
|
|
65
|
+
lines.push(`# All Sessions Debug Dump`);
|
|
66
|
+
lines.push(``);
|
|
67
|
+
lines.push(`Generated: ${new Date().toISOString()}`);
|
|
68
|
+
lines.push(`Total sessions: ${sessions.length} (${roots.length} root)`);
|
|
69
|
+
lines.push(``);
|
|
70
|
+
for (const root of roots) {
|
|
71
|
+
const tree = await this._buildTree(root.sessionId);
|
|
72
|
+
if (!tree)
|
|
73
|
+
continue;
|
|
74
|
+
lines.push(`---`);
|
|
75
|
+
lines.push(``);
|
|
76
|
+
// Tree overview
|
|
77
|
+
lines.push(`## Session Tree: ${shortId(root.sessionId)}`);
|
|
78
|
+
lines.push(``);
|
|
79
|
+
lines.push("```");
|
|
80
|
+
this._renderTreeAscii(tree, lines, "");
|
|
81
|
+
lines.push("```");
|
|
82
|
+
lines.push(``);
|
|
83
|
+
// Detailed conversation
|
|
84
|
+
this._renderSessionDetail(tree, lines, 0);
|
|
85
|
+
}
|
|
86
|
+
return lines.join("\n");
|
|
87
|
+
}
|
|
88
|
+
// ─── Private: tree building ──────────────────────────────
|
|
89
|
+
async _buildTree(sessionId) {
|
|
90
|
+
const row = await this.catalog.getSession(sessionId);
|
|
91
|
+
if (!row)
|
|
92
|
+
return null;
|
|
93
|
+
const events = await this.catalog.getSessionEvents(sessionId);
|
|
94
|
+
// Find direct children
|
|
95
|
+
const allDescendants = await this.catalog.getDescendantSessionIds(sessionId);
|
|
96
|
+
const allSessions = await this.catalog.listSessions();
|
|
97
|
+
const directChildren = allSessions.filter(s => s.parentSessionId === sessionId && allDescendants.includes(s.sessionId));
|
|
98
|
+
const children = [];
|
|
99
|
+
for (const child of directChildren) {
|
|
100
|
+
const childNode = await this._buildTree(child.sessionId);
|
|
101
|
+
if (childNode)
|
|
102
|
+
children.push(childNode);
|
|
103
|
+
}
|
|
104
|
+
// Sort children by creation time
|
|
105
|
+
children.sort((a, b) => a.row.createdAt.getTime() - b.row.createdAt.getTime());
|
|
106
|
+
return { row, events, children };
|
|
107
|
+
}
|
|
108
|
+
// ─── Private: ASCII tree rendering ───────────────────────
|
|
109
|
+
_renderTreeAscii(node, lines, prefix) {
|
|
110
|
+
const { row } = node;
|
|
111
|
+
const model = row.model || "(default)";
|
|
112
|
+
const status = row.state || "unknown";
|
|
113
|
+
const title = row.title ? ` "${row.title}"` : "";
|
|
114
|
+
lines.push(`${prefix}${shortId(row.sessionId)} [${model}] (${status})${title}`);
|
|
115
|
+
for (let i = 0; i < node.children.length; i++) {
|
|
116
|
+
const isLast = i === node.children.length - 1;
|
|
117
|
+
const childPrefix = prefix + (isLast ? "└── " : "├── ");
|
|
118
|
+
const contPrefix = prefix + (isLast ? " " : "│ ");
|
|
119
|
+
this._renderTreeAscii(node.children[i], lines, childPrefix);
|
|
120
|
+
// For grandchildren, use contPrefix
|
|
121
|
+
// (already handled recursively by the prefix parameter)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// ─── Private: detailed session rendering ─────────────────
|
|
125
|
+
_renderSessionDetail(node, lines, depth) {
|
|
126
|
+
const { row, events } = node;
|
|
127
|
+
const headingLevel = Math.min(depth + 2, 6); // ##, ###, ####, etc.
|
|
128
|
+
const hashes = "#".repeat(headingLevel);
|
|
129
|
+
const model = row.model || "(default)";
|
|
130
|
+
const title = row.title ? ` — ${row.title}` : "";
|
|
131
|
+
const parentNote = row.parentSessionId
|
|
132
|
+
? ` (child of ${shortId(row.parentSessionId)})`
|
|
133
|
+
: "";
|
|
134
|
+
lines.push(`${hashes} Session ${shortId(row.sessionId)}${title}${parentNote}`);
|
|
135
|
+
lines.push(``);
|
|
136
|
+
lines.push(`| Field | Value |`);
|
|
137
|
+
lines.push(`|-------|-------|`);
|
|
138
|
+
lines.push(`| ID | \`${row.sessionId}\` |`);
|
|
139
|
+
lines.push(`| Model | ${model} |`);
|
|
140
|
+
lines.push(`| Status | ${row.state} |`);
|
|
141
|
+
lines.push(`| Created | ${fmtTime(row.createdAt)} |`);
|
|
142
|
+
lines.push(`| Updated | ${fmtTime(row.updatedAt)} |`);
|
|
143
|
+
if (row.parentSessionId) {
|
|
144
|
+
lines.push(`| Parent | \`${row.parentSessionId}\` |`);
|
|
145
|
+
}
|
|
146
|
+
if (node.children.length > 0) {
|
|
147
|
+
lines.push(`| Children | ${node.children.map(c => `\`${shortId(c.row.sessionId)}\``).join(", ")} |`);
|
|
148
|
+
}
|
|
149
|
+
lines.push(``);
|
|
150
|
+
// Conversation log
|
|
151
|
+
lines.push(`<details><summary><strong>Conversation (${events.length} events)</strong></summary>`);
|
|
152
|
+
lines.push(``);
|
|
153
|
+
for (const evt of events) {
|
|
154
|
+
const t = fmtTime(evt.createdAt);
|
|
155
|
+
const data = evt.data;
|
|
156
|
+
switch (evt.eventType) {
|
|
157
|
+
case "user.message": {
|
|
158
|
+
const content = data?.content || "";
|
|
159
|
+
// Strip system prefixes for readability
|
|
160
|
+
const clean = content.replace(/^\[SYSTEM: Running on host "[^"]*"\.\]\n\n/, "");
|
|
161
|
+
// Detect child updates forwarded as user messages
|
|
162
|
+
const childMatch = clean.match(/^\[CHILD_UPDATE from=(\S+) type=(\S+)/);
|
|
163
|
+
if (childMatch) {
|
|
164
|
+
lines.push(`**\`${t}\`** 🔗 **Child Update** (from \`${shortId(childMatch[1])}\`, ${childMatch[2]}):`);
|
|
165
|
+
const body = clean.replace(/^\[CHILD_UPDATE[^\]]*\]\n?/, "");
|
|
166
|
+
if (body.trim()) {
|
|
167
|
+
lines.push(``);
|
|
168
|
+
lines.push(`> ${escapeContent(body.trim()).split("\n").join("\n> ")}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
lines.push(`**\`${t}\`** 👤 **User:**`);
|
|
173
|
+
lines.push(``);
|
|
174
|
+
lines.push(`> ${escapeContent(clean).split("\n").join("\n> ")}`);
|
|
175
|
+
}
|
|
176
|
+
lines.push(``);
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case "assistant.message": {
|
|
180
|
+
const content = data?.content || "";
|
|
181
|
+
lines.push(`**\`${t}\`** 🤖 **Assistant:**`);
|
|
182
|
+
lines.push(``);
|
|
183
|
+
lines.push(escapeContent(content));
|
|
184
|
+
lines.push(``);
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case "tool.execution_start": {
|
|
188
|
+
const toolName = data?.toolName || data?.name || "unknown";
|
|
189
|
+
const args = data?.arguments || data?.args;
|
|
190
|
+
lines.push(`**\`${t}\`** 🔧 **Tool Call:** \`${toolName}\``);
|
|
191
|
+
if (args) {
|
|
192
|
+
const argsStr = typeof args === "string" ? args : JSON.stringify(args, null, 2);
|
|
193
|
+
if (argsStr.length < 500) {
|
|
194
|
+
lines.push(``);
|
|
195
|
+
lines.push("```json");
|
|
196
|
+
lines.push(argsStr);
|
|
197
|
+
lines.push("```");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
lines.push(``);
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
case "tool.execution_complete": {
|
|
204
|
+
const toolName = data?.toolName || data?.name || "unknown";
|
|
205
|
+
const result = data?.result || data?.output;
|
|
206
|
+
lines.push(`**\`${t}\`** ✅ **Tool Result:** \`${toolName}\``);
|
|
207
|
+
if (result) {
|
|
208
|
+
const resultStr = typeof result === "string" ? result : JSON.stringify(result, null, 2);
|
|
209
|
+
if (resultStr.length > 0 && resultStr.length < 1000) {
|
|
210
|
+
lines.push(``);
|
|
211
|
+
lines.push("```");
|
|
212
|
+
lines.push(resultStr.slice(0, 1000));
|
|
213
|
+
lines.push("```");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
lines.push(``);
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
case "assistant.turn_start": {
|
|
220
|
+
lines.push(`**\`${t}\`** ⏳ *Turn started*`);
|
|
221
|
+
lines.push(``);
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
case "assistant.turn_end": {
|
|
225
|
+
lines.push(`**\`${t}\`** ⏹ *Turn ended*`);
|
|
226
|
+
lines.push(``);
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case "assistant.reasoning": {
|
|
230
|
+
const content = data?.content || data?.text || "";
|
|
231
|
+
if (content) {
|
|
232
|
+
lines.push(`**\`${t}\`** 💭 **Reasoning:**`);
|
|
233
|
+
lines.push(``);
|
|
234
|
+
lines.push(`> ${escapeContent(content).split("\n").join("\n> ")}`);
|
|
235
|
+
lines.push(``);
|
|
236
|
+
}
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
case "assistant.usage": {
|
|
240
|
+
const usage = data || {};
|
|
241
|
+
const inputTokens = usage.inputTokens || usage.prompt_tokens || "?";
|
|
242
|
+
const outputTokens = usage.outputTokens || usage.completion_tokens || "?";
|
|
243
|
+
lines.push(`**\`${t}\`** 📊 *Usage: ${inputTokens} in / ${outputTokens} out*`);
|
|
244
|
+
lines.push(``);
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
default: {
|
|
248
|
+
// Other event types — show raw
|
|
249
|
+
lines.push(`**\`${t}\`** 📌 **${evt.eventType}**`);
|
|
250
|
+
if (data && Object.keys(data).length > 0) {
|
|
251
|
+
const raw = JSON.stringify(data, null, 2);
|
|
252
|
+
if (raw.length < 500) {
|
|
253
|
+
lines.push(``);
|
|
254
|
+
lines.push("```json");
|
|
255
|
+
lines.push(raw);
|
|
256
|
+
lines.push("```");
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
lines.push(``);
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
lines.push(`</details>`);
|
|
265
|
+
lines.push(``);
|
|
266
|
+
// Recursively render children
|
|
267
|
+
for (const child of node.children) {
|
|
268
|
+
this._renderSessionDetail(child, lines, depth + 1);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=session-dumper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-dumper.js","sourceRoot":"","sources":["../src/session-dumper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { type Tool } from "@github/copilot-sdk";
|
|
2
|
+
import { ManagedSession } from "./managed-session.js";
|
|
3
|
+
import type { SessionStateStore } from "./session-store.js";
|
|
4
|
+
import { type ManagedSessionConfig, type SerializableSessionConfig } from "./types.js";
|
|
5
|
+
import type { ModelProviderRegistry } from "./model-providers.js";
|
|
6
|
+
/** Worker-level defaults — applied to every session. */
|
|
7
|
+
export interface WorkerDefaults {
|
|
8
|
+
frameworkBasePrompt?: string;
|
|
9
|
+
appDefaultPrompt?: string;
|
|
10
|
+
/** Backward-compatible alias for older code paths/tests. */
|
|
11
|
+
systemMessage?: string;
|
|
12
|
+
/** Raw prompt lookup for named and system agents bound directly to sessions. */
|
|
13
|
+
agentPromptLookup?: Record<string, {
|
|
14
|
+
prompt: string;
|
|
15
|
+
kind: "app-agent" | "app-system-agent" | "pilotswarm-system-agent";
|
|
16
|
+
}>;
|
|
17
|
+
/** Skill directories to pass to the Copilot SDK. */
|
|
18
|
+
skillDirectories?: string[];
|
|
19
|
+
/** Custom agents to pass to the Copilot SDK. */
|
|
20
|
+
customAgents?: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
prompt: string;
|
|
24
|
+
tools?: string[] | null;
|
|
25
|
+
}>;
|
|
26
|
+
/** MCP server configs to pass to the Copilot SDK. */
|
|
27
|
+
mcpServers?: Record<string, any>;
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Use `modelProviders` instead. Kept for backwards compatibility.
|
|
30
|
+
* Custom LLM provider config (BYOK). Passed to every session.
|
|
31
|
+
*/
|
|
32
|
+
provider?: {
|
|
33
|
+
type?: "openai" | "azure" | "anthropic";
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
apiKey?: string;
|
|
36
|
+
azure?: {
|
|
37
|
+
apiVersion?: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
/** Multi-provider model registry. Takes precedence over `provider`. */
|
|
41
|
+
modelProviders?: ModelProviderRegistry;
|
|
42
|
+
/** Turn timeout in milliseconds. 0 or undefined = no timeout. */
|
|
43
|
+
turnTimeoutMs?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* SessionManager — singleton per worker node.
|
|
47
|
+
* Owns session lifecycle, wraps CopilotClient.
|
|
48
|
+
*
|
|
49
|
+
* Three ways a session appears:
|
|
50
|
+
* 1. Brand new → createSession
|
|
51
|
+
* 2. Same node, still warm → getSession returns it
|
|
52
|
+
* 3. Post-hydration → local files exist → resumeSession
|
|
53
|
+
*
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export declare class SessionManager {
|
|
57
|
+
private githubToken?;
|
|
58
|
+
private client;
|
|
59
|
+
private sessions;
|
|
60
|
+
private sessionStore;
|
|
61
|
+
/** In-memory configs with non-serializable fields (tools, hooks). */
|
|
62
|
+
private sessionConfigs;
|
|
63
|
+
/** Worker-level tool registry — shared reference from PilotSwarmWorker. */
|
|
64
|
+
private toolRegistry;
|
|
65
|
+
/** Worker-level defaults for building blocks. */
|
|
66
|
+
private workerDefaults;
|
|
67
|
+
/** Base directory for local session state files. */
|
|
68
|
+
private sessionStateDir;
|
|
69
|
+
constructor(githubToken?: string | undefined, sessionStore?: SessionStateStore | null, workerDefaults?: WorkerDefaults, sessionStateDir?: string);
|
|
70
|
+
/** Store full config (with tools/hooks) for a session. Called by PilotSwarmClient. */
|
|
71
|
+
setConfig(sessionId: string, config: ManagedSessionConfig): void;
|
|
72
|
+
/** Get a human-readable model summary for LLM tool consumption. */
|
|
73
|
+
getModelSummary(): string | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Normalize a model reference against the configured registry.
|
|
76
|
+
* Throws for unknown models. When `requireQualified` is true, the caller
|
|
77
|
+
* must provide the exact `provider:model` string rather than a bare alias.
|
|
78
|
+
*/
|
|
79
|
+
normalizeModelRef(model?: string, options?: {
|
|
80
|
+
requireQualified?: boolean;
|
|
81
|
+
}): string | undefined;
|
|
82
|
+
/** Set the worker-level tool registry. Called by PilotSwarmWorker. */
|
|
83
|
+
setToolRegistry(registry: Map<string, Tool<any>>): void;
|
|
84
|
+
/** Ensure the CopilotClient is started. */
|
|
85
|
+
private ensureClient;
|
|
86
|
+
private _missingSessionStateError;
|
|
87
|
+
private _resetSessionState;
|
|
88
|
+
/**
|
|
89
|
+
* Get existing session or create/resume one.
|
|
90
|
+
* Merges: worker defaults → serializable config (from client) → in-memory config (tools/hooks).
|
|
91
|
+
*/
|
|
92
|
+
getOrCreate(sessionId: string, serializableConfig: SerializableSessionConfig, options?: {
|
|
93
|
+
turnIndex?: number;
|
|
94
|
+
}): Promise<ManagedSession>;
|
|
95
|
+
/** Get a session by ID (null if not in memory on this node). */
|
|
96
|
+
get(sessionId: string): ManagedSession | null;
|
|
97
|
+
/**
|
|
98
|
+
* Dehydrate a session: destroy in memory, then persist state to the configured session store.
|
|
99
|
+
*
|
|
100
|
+
* The Copilot SDK's disconnect path preserves session state on disk, so we
|
|
101
|
+
* first release the in-memory session and then archive the resulting local
|
|
102
|
+
* session files into the configured session store.
|
|
103
|
+
*
|
|
104
|
+
* If destroy() fails (e.g., Copilot connection already disposed), we retry
|
|
105
|
+
* by re-creating the session from local files and destroying again.
|
|
106
|
+
* After MAX_RETRIES, we still attempt the session-store write and throw a
|
|
107
|
+
* clear error if that also fails.
|
|
108
|
+
*/
|
|
109
|
+
dehydrate(sessionId: string, reason: string): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Hydrate session state from the configured session store to local disk.
|
|
112
|
+
* The next getOrCreate() will detect local files and resume.
|
|
113
|
+
*/
|
|
114
|
+
hydrate(sessionId: string): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Return true when the next turn must hydrate state from the session store.
|
|
117
|
+
* This supports abrupt worker loss and direct worker-side dehydration.
|
|
118
|
+
*/
|
|
119
|
+
needsHydration(sessionId: string): Promise<boolean>;
|
|
120
|
+
/**
|
|
121
|
+
* Destroy a session and remove from tracking.
|
|
122
|
+
*/
|
|
123
|
+
destroySession(sessionId: string): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Checkpoint session state without destroying the session or
|
|
126
|
+
* releasing affinity. Used for crash resilience — session stays warm.
|
|
127
|
+
*/
|
|
128
|
+
checkpoint(sessionId: string): Promise<void>;
|
|
129
|
+
/** List all in-memory session IDs on this node. */
|
|
130
|
+
activeSessionIds(): string[];
|
|
131
|
+
/** Shutdown: destroy all sessions, stop CopilotClient. */
|
|
132
|
+
shutdown(): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Resolve tools from per-session config + worker-level registry.
|
|
135
|
+
* Per-session tools take precedence over registry tools with the same name.
|
|
136
|
+
*/
|
|
137
|
+
private _resolveTools;
|
|
138
|
+
/**
|
|
139
|
+
* Resolve the provider config for a given model.
|
|
140
|
+
* Prefers ModelProviderRegistry, falls back to legacy single provider.
|
|
141
|
+
*/
|
|
142
|
+
private _resolveProviderConfig;
|
|
143
|
+
/**
|
|
144
|
+
* Build the final system message from:
|
|
145
|
+
* 1. embedded PilotSwarm framework base
|
|
146
|
+
* 2. app-level default instructions
|
|
147
|
+
* 3. bound agent prompt (for named/system sessions)
|
|
148
|
+
* 4. caller/runtime context
|
|
149
|
+
*/
|
|
150
|
+
private _buildSystemMessage;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|