pilotswarm 0.0.1 → 0.4.0
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/README.md +37 -1
- package/mcp/README.md +484 -0
- package/mcp/dist/bin/pilotswarm-mcp.d.ts +3 -0
- package/mcp/dist/bin/pilotswarm-mcp.d.ts.map +1 -0
- package/mcp/dist/bin/pilotswarm-mcp.js +367 -0
- package/mcp/dist/bin/pilotswarm-mcp.js.map +1 -0
- package/mcp/dist/src/auth.d.ts +7 -0
- package/mcp/dist/src/auth.d.ts.map +1 -0
- package/mcp/dist/src/auth.js +99 -0
- package/mcp/dist/src/auth.js.map +1 -0
- package/mcp/dist/src/context.d.ts +48 -0
- package/mcp/dist/src/context.d.ts.map +1 -0
- package/mcp/dist/src/context.js +83 -0
- package/mcp/dist/src/context.js.map +1 -0
- package/mcp/dist/src/index.d.ts +4 -0
- package/mcp/dist/src/index.d.ts.map +1 -0
- package/mcp/dist/src/index.js +3 -0
- package/mcp/dist/src/index.js.map +1 -0
- package/mcp/dist/src/prompts/skills.d.ts +4 -0
- package/mcp/dist/src/prompts/skills.d.ts.map +1 -0
- package/mcp/dist/src/prompts/skills.js +11 -0
- package/mcp/dist/src/prompts/skills.js.map +1 -0
- package/mcp/dist/src/resources/agents.d.ts +4 -0
- package/mcp/dist/src/resources/agents.d.ts.map +1 -0
- package/mcp/dist/src/resources/agents.js +64 -0
- package/mcp/dist/src/resources/agents.js.map +1 -0
- package/mcp/dist/src/resources/facts.d.ts +4 -0
- package/mcp/dist/src/resources/facts.d.ts.map +1 -0
- package/mcp/dist/src/resources/facts.js +125 -0
- package/mcp/dist/src/resources/facts.js.map +1 -0
- package/mcp/dist/src/resources/models.d.ts +4 -0
- package/mcp/dist/src/resources/models.d.ts.map +1 -0
- package/mcp/dist/src/resources/models.js +43 -0
- package/mcp/dist/src/resources/models.js.map +1 -0
- package/mcp/dist/src/resources/sessions.d.ts +4 -0
- package/mcp/dist/src/resources/sessions.d.ts.map +1 -0
- package/mcp/dist/src/resources/sessions.js +190 -0
- package/mcp/dist/src/resources/sessions.js.map +1 -0
- package/mcp/dist/src/resources/subscriptions.d.ts +9 -0
- package/mcp/dist/src/resources/subscriptions.d.ts.map +1 -0
- package/mcp/dist/src/resources/subscriptions.js +157 -0
- package/mcp/dist/src/resources/subscriptions.js.map +1 -0
- package/mcp/dist/src/server.d.ts +4 -0
- package/mcp/dist/src/server.d.ts.map +1 -0
- package/mcp/dist/src/server.js +59 -0
- package/mcp/dist/src/server.js.map +1 -0
- package/mcp/dist/src/tools/agents.d.ts +4 -0
- package/mcp/dist/src/tools/agents.d.ts.map +1 -0
- package/mcp/dist/src/tools/agents.js +317 -0
- package/mcp/dist/src/tools/agents.js.map +1 -0
- package/mcp/dist/src/tools/facts.d.ts +4 -0
- package/mcp/dist/src/tools/facts.d.ts.map +1 -0
- package/mcp/dist/src/tools/facts.js +151 -0
- package/mcp/dist/src/tools/facts.js.map +1 -0
- package/mcp/dist/src/tools/models.d.ts +4 -0
- package/mcp/dist/src/tools/models.d.ts.map +1 -0
- package/mcp/dist/src/tools/models.js +256 -0
- package/mcp/dist/src/tools/models.js.map +1 -0
- package/mcp/dist/src/tools/sessions.d.ts +4 -0
- package/mcp/dist/src/tools/sessions.d.ts.map +1 -0
- package/mcp/dist/src/tools/sessions.js +606 -0
- package/mcp/dist/src/tools/sessions.js.map +1 -0
- package/mcp/dist/src/util/command.d.ts +52 -0
- package/mcp/dist/src/util/command.d.ts.map +1 -0
- package/mcp/dist/src/util/command.js +78 -0
- package/mcp/dist/src/util/command.js.map +1 -0
- package/package.json +81 -6
- package/tui/README.md +35 -0
- package/tui/bin/tui.js +30 -0
- package/tui/plugins/.mcp.json +7 -0
- package/tui/plugins/plugin.json +13 -0
- package/tui/plugins/session-policy.json +8 -0
- package/tui/src/app.js +850 -0
- package/tui/src/auth/cli.js +111 -0
- package/tui/src/auth/entra-auth.js +218 -0
- package/tui/src/bootstrap-env.js +176 -0
- package/tui/src/embedded-workers.js +79 -0
- package/tui/src/http-transport-host.js +106 -0
- package/tui/src/index.js +340 -0
- package/tui/src/node-sdk-transport.js +1793 -0
- package/tui/src/platform.js +984 -0
- package/tui/src/plugin-config.js +239 -0
- package/tui/src/portal.js +7 -0
- package/tui/src/version.js +7 -0
- package/tui/tui-splash.txt +11 -0
- package/ui/core/README.md +6 -0
- package/ui/core/src/commands.js +93 -0
- package/ui/core/src/context-usage.js +212 -0
- package/ui/core/src/controller.js +6104 -0
- package/ui/core/src/formatting.js +1036 -0
- package/ui/core/src/history.js +932 -0
- package/ui/core/src/index.js +13 -0
- package/ui/core/src/layout.js +332 -0
- package/ui/core/src/reducer.js +1935 -0
- package/ui/core/src/selectors.js +5409 -0
- package/ui/core/src/session-errors.js +14 -0
- package/ui/core/src/session-tree.js +151 -0
- package/ui/core/src/state.js +248 -0
- package/ui/core/src/store.js +23 -0
- package/ui/core/src/system-titles.js +24 -0
- package/ui/core/src/themes/catppuccin-mocha.js +56 -0
- package/ui/core/src/themes/cobalt2.js +56 -0
- package/ui/core/src/themes/dark-high-contrast.js +56 -0
- package/ui/core/src/themes/daylight.js +62 -0
- package/ui/core/src/themes/dracula.js +56 -0
- package/ui/core/src/themes/github-dark.js +56 -0
- package/ui/core/src/themes/github-light.js +59 -0
- package/ui/core/src/themes/gruvbox-dark.js +56 -0
- package/ui/core/src/themes/hacker-x-matrix.js +56 -0
- package/ui/core/src/themes/hacker-x-orion-prime.js +56 -0
- package/ui/core/src/themes/helpers.js +79 -0
- package/ui/core/src/themes/high-contrast-mono.js +59 -0
- package/ui/core/src/themes/index.js +52 -0
- package/ui/core/src/themes/light-high-contrast.js +62 -0
- package/ui/core/src/themes/noctis-obscuro.js +56 -0
- package/ui/core/src/themes/noctis.js +56 -0
- package/ui/core/src/themes/paper-ink.js +62 -0
- package/ui/core/src/themes/solarized-ops.js +59 -0
- package/ui/core/src/themes/terminal-green.js +59 -0
- package/ui/core/src/themes/tokyo-night.js +56 -0
- package/ui/react/README.md +5 -0
- package/ui/react/src/chat-status.js +39 -0
- package/ui/react/src/components.js +1989 -0
- package/ui/react/src/index.js +4 -0
- package/ui/react/src/platform.js +15 -0
- package/ui/react/src/use-controller-state.js +38 -0
- package/ui/react/src/web-app.js +4390 -0
- package/web/README.md +198 -0
- package/web/api/router.js +196 -0
- package/web/api/ws.js +152 -0
- package/web/auth/authz/engine.js +204 -0
- package/web/auth/config.js +115 -0
- package/web/auth/index.js +175 -0
- package/web/auth/normalize/entra.js +22 -0
- package/web/auth/providers/entra.js +76 -0
- package/web/auth/providers/none.js +24 -0
- package/web/auth.js +10 -0
- package/web/bin/serve.js +53 -0
- package/web/config.js +20 -0
- package/web/dist/app.js +469 -0
- package/web/dist/assets/index-CBgQQk-j.css +1 -0
- package/web/dist/assets/index-DMefB7Wb.js +24 -0
- package/web/dist/assets/msal-CytV9RFv.js +7 -0
- package/web/dist/assets/pilotswarm-DyBlqVTY.js +87 -0
- package/web/dist/assets/react-BZwsW8pe.js +1 -0
- package/web/dist/index.html +16 -0
- package/web/runtime.js +454 -0
- package/web/server.js +276 -0
- package/index.js +0 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export function registerFactsTools(server, ctx) {
|
|
3
|
+
// 1. store_fact — Store a fact in the knowledge store
|
|
4
|
+
server.registerTool("store_fact", {
|
|
5
|
+
title: "Store Fact",
|
|
6
|
+
description: "Store a fact in the PilotSwarm knowledge store",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
key: z.string().describe("The key to store the fact under"),
|
|
9
|
+
value: z.any().describe("The value to store"),
|
|
10
|
+
tags: z.array(z.string()).optional().describe("Optional tags for categorization"),
|
|
11
|
+
shared: z.boolean().optional().describe("Whether the fact is shared across sessions (default false)"),
|
|
12
|
+
session_id: z.string().optional().describe("Session ID to associate the fact with"),
|
|
13
|
+
},
|
|
14
|
+
}, async ({ key, value, tags, shared, session_id }) => {
|
|
15
|
+
try {
|
|
16
|
+
const result = await ctx.facts.storeFact({
|
|
17
|
+
key,
|
|
18
|
+
value,
|
|
19
|
+
tags,
|
|
20
|
+
shared: shared ?? false,
|
|
21
|
+
sessionId: session_id,
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
content: [
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
text: JSON.stringify(result, null, 2),
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
34
|
+
return {
|
|
35
|
+
content: [{ type: "text", text: `Error: ${message}` }],
|
|
36
|
+
isError: true,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
// 2. read_facts — Query facts from the knowledge store
|
|
41
|
+
//
|
|
42
|
+
// Privilege boundary (see README › Security model):
|
|
43
|
+
// `session_id`, `reader_session_id`, and `granted_session_ids` are all
|
|
44
|
+
// caller-supplied. The MCP server has no ambient mapping from MCP client
|
|
45
|
+
// to PilotSwarm session, so it cannot derive the right session implicitly
|
|
46
|
+
// — any client speaking to this MCP endpoint can read facts scoped to any
|
|
47
|
+
// session it names. Operators MUST treat MCP clients as trusted: gate the
|
|
48
|
+
// stdio transport via process isolation and the HTTP transport via the
|
|
49
|
+
// shared `PILOTSWARM_MCP_KEY` bearer (both already enforced upstream of
|
|
50
|
+
// this tool). A stricter per-client privilege boundary belongs at the
|
|
51
|
+
// transport / auth layer, not here.
|
|
52
|
+
server.registerTool("read_facts", {
|
|
53
|
+
title: "Read Facts",
|
|
54
|
+
description: "Query facts from the PilotSwarm knowledge store. " +
|
|
55
|
+
"TRUST NOTE: session_id / reader_session_id / granted_session_ids are caller-supplied; " +
|
|
56
|
+
"this tool does not authenticate that the caller owns the named session. " +
|
|
57
|
+
"MCP clients connecting to this server are trusted with cross-session fact reads.",
|
|
58
|
+
inputSchema: {
|
|
59
|
+
key_pattern: z.string().optional().describe("Pattern to match fact keys against"),
|
|
60
|
+
tags: z.array(z.string()).optional().describe("Filter by tags"),
|
|
61
|
+
session_id: z
|
|
62
|
+
.string()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe("Filter by session ID. Caller-supplied and not authenticated against client identity — see tool description."),
|
|
65
|
+
reader_session_id: z
|
|
66
|
+
.string()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe("Session ID of the reader for access control. Caller-supplied; trust assumption applies."),
|
|
69
|
+
granted_session_ids: z
|
|
70
|
+
.array(z.string())
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Session IDs the reader has been granted access to. Caller-supplied; trust assumption applies."),
|
|
73
|
+
keys_only: z.boolean().optional().describe("If true, return only fact keys without values (default false)"),
|
|
74
|
+
limit: z.number().optional().describe("Maximum number of facts to return"),
|
|
75
|
+
},
|
|
76
|
+
}, async ({ key_pattern, tags, session_id, reader_session_id, granted_session_ids, keys_only, limit }) => {
|
|
77
|
+
try {
|
|
78
|
+
const query = {};
|
|
79
|
+
if (key_pattern !== undefined)
|
|
80
|
+
query.keyPattern = key_pattern;
|
|
81
|
+
if (tags !== undefined)
|
|
82
|
+
query.tags = tags;
|
|
83
|
+
if (session_id !== undefined)
|
|
84
|
+
query.sessionId = session_id;
|
|
85
|
+
if (limit !== undefined)
|
|
86
|
+
query.limit = limit;
|
|
87
|
+
const access = reader_session_id !== undefined || granted_session_ids !== undefined
|
|
88
|
+
? { readerSessionId: reader_session_id, grantedSessionIds: granted_session_ids }
|
|
89
|
+
: undefined;
|
|
90
|
+
const result = await ctx.facts.readFacts(query, access);
|
|
91
|
+
if (keys_only) {
|
|
92
|
+
const keys = result.facts.map((f) => f.key);
|
|
93
|
+
return {
|
|
94
|
+
content: [
|
|
95
|
+
{
|
|
96
|
+
type: "text",
|
|
97
|
+
text: JSON.stringify({ count: keys.length, keys }, null, 2),
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
content: [
|
|
104
|
+
{
|
|
105
|
+
type: "text",
|
|
106
|
+
text: JSON.stringify(result, null, 2),
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
113
|
+
return {
|
|
114
|
+
content: [{ type: "text", text: `Error: ${message}` }],
|
|
115
|
+
isError: true,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
// 3. delete_fact — Delete a fact from the knowledge store
|
|
120
|
+
server.registerTool("delete_fact", {
|
|
121
|
+
title: "Delete Fact",
|
|
122
|
+
description: "Delete a fact from the PilotSwarm knowledge store",
|
|
123
|
+
inputSchema: {
|
|
124
|
+
key: z.string().describe("The key of the fact to delete"),
|
|
125
|
+
session_id: z.string().optional().describe("Session ID the fact is associated with"),
|
|
126
|
+
},
|
|
127
|
+
}, async ({ key, session_id }) => {
|
|
128
|
+
try {
|
|
129
|
+
const result = await ctx.facts.deleteFact({
|
|
130
|
+
key,
|
|
131
|
+
sessionId: session_id,
|
|
132
|
+
});
|
|
133
|
+
return {
|
|
134
|
+
content: [
|
|
135
|
+
{
|
|
136
|
+
type: "text",
|
|
137
|
+
text: JSON.stringify(result, null, 2),
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
144
|
+
return {
|
|
145
|
+
content: [{ type: "text", text: `Error: ${message}` }],
|
|
146
|
+
isError: true,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facts.js","sourceRoot":"","sources":["../../../src/tools/facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/tools/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAOnD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,QAyRvE"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CommandRejectedError, CommandTimeoutError, sendCommandAndWait, } from "../util/command.js";
|
|
3
|
+
export function registerModelTools(server, ctx) {
|
|
4
|
+
// 1. list_models — List all available models
|
|
5
|
+
server.registerTool("list_models", {
|
|
6
|
+
title: "List Models",
|
|
7
|
+
description: "List all available LLM models, optionally grouped by provider",
|
|
8
|
+
inputSchema: {
|
|
9
|
+
group_by_provider: z
|
|
10
|
+
.boolean()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe("If true, return models grouped by provider (default: flat list)"),
|
|
13
|
+
},
|
|
14
|
+
}, async ({ group_by_provider }) => {
|
|
15
|
+
try {
|
|
16
|
+
// Local registry (direct mode's --model-providers) or the
|
|
17
|
+
// deployment's models over the Web API — same grouped shape.
|
|
18
|
+
const byProvider = ctx.models
|
|
19
|
+
? ctx.models.getModelsByProvider()
|
|
20
|
+
: await ctx.mgmt.getModelsByProvider();
|
|
21
|
+
if (!byProvider || byProvider.length === 0) {
|
|
22
|
+
return {
|
|
23
|
+
content: [
|
|
24
|
+
{ type: "text", text: JSON.stringify({ error: "no model providers configured" }) },
|
|
25
|
+
],
|
|
26
|
+
isError: true,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// SDK ModelDescriptor exposes `qualifiedName` (provider:model)
|
|
30
|
+
// and `modelName` (the bare model id). There is no `name`
|
|
31
|
+
// field — emitting `m.name` would silently produce
|
|
32
|
+
// `{ name: undefined, ... }` payloads, leaving callers no
|
|
33
|
+
// identifier to pass back into switch_model.
|
|
34
|
+
if (group_by_provider) {
|
|
35
|
+
const grouped = byProvider.map((p) => ({
|
|
36
|
+
provider_id: p.providerId,
|
|
37
|
+
type: p.type,
|
|
38
|
+
models: p.models.map((m) => ({
|
|
39
|
+
qualified_name: m.qualifiedName,
|
|
40
|
+
model_name: m.modelName,
|
|
41
|
+
description: m.description,
|
|
42
|
+
cost: m.cost,
|
|
43
|
+
})),
|
|
44
|
+
}));
|
|
45
|
+
return {
|
|
46
|
+
content: [
|
|
47
|
+
{ type: "text", text: JSON.stringify({ providers: grouped }, null, 2) },
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Flat list
|
|
52
|
+
const models = byProvider.flatMap((p) => p.models.map((m) => ({
|
|
53
|
+
qualified_name: m.qualifiedName,
|
|
54
|
+
model_name: m.modelName,
|
|
55
|
+
provider: p.providerId,
|
|
56
|
+
description: m.description,
|
|
57
|
+
cost: m.cost,
|
|
58
|
+
})));
|
|
59
|
+
const defaultModel = ctx.models
|
|
60
|
+
? (ctx.models.defaultModel ?? null)
|
|
61
|
+
: ((await ctx.mgmt.getDefaultModel()) ?? null);
|
|
62
|
+
return {
|
|
63
|
+
content: [
|
|
64
|
+
{
|
|
65
|
+
type: "text",
|
|
66
|
+
text: JSON.stringify({ models, default_model: defaultModel, count: models.length }, null, 2),
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
73
|
+
return {
|
|
74
|
+
content: [{ type: "text", text: `Error: ${msg}` }],
|
|
75
|
+
isError: true,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// 2. switch_model — Change the model for a session
|
|
80
|
+
server.registerTool("switch_model", {
|
|
81
|
+
title: "Switch Model",
|
|
82
|
+
description: "Change the model for a PilotSwarm session",
|
|
83
|
+
inputSchema: {
|
|
84
|
+
session_id: z.string().describe("The session to switch the model for"),
|
|
85
|
+
model: z.string().describe("The model to switch to"),
|
|
86
|
+
timeout_ms: z
|
|
87
|
+
.number()
|
|
88
|
+
.int()
|
|
89
|
+
.positive()
|
|
90
|
+
.optional()
|
|
91
|
+
.describe("Max time to wait for the orchestration to acknowledge the switch (default 15000)"),
|
|
92
|
+
},
|
|
93
|
+
}, async ({ session_id, model, timeout_ms }) => {
|
|
94
|
+
try {
|
|
95
|
+
if (ctx.webMode) {
|
|
96
|
+
// Web API mode: the supported model-switch path (same one
|
|
97
|
+
// the portal UI uses). The server validates the model and
|
|
98
|
+
// enqueues the switch; rejections surface as API errors.
|
|
99
|
+
await ctx.mgmt.setSessionModel(session_id, model);
|
|
100
|
+
return {
|
|
101
|
+
content: [
|
|
102
|
+
{ type: "text", text: JSON.stringify({ switched: true, model }) },
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
// Direct mode: wait for the orchestration's command response so
|
|
107
|
+
// we don't claim success when the orchestration rejects the
|
|
108
|
+
// command (e.g. unknown model, set_model not allowed mid-turn).
|
|
109
|
+
const response = await sendCommandAndWait(ctx.mgmt, session_id, "set_model", { model }, { timeoutMs: timeout_ms });
|
|
110
|
+
return {
|
|
111
|
+
content: [
|
|
112
|
+
{
|
|
113
|
+
type: "text",
|
|
114
|
+
text: JSON.stringify({
|
|
115
|
+
switched: true,
|
|
116
|
+
model,
|
|
117
|
+
command_id: response.id,
|
|
118
|
+
...(response.result !== undefined ? { result: response.result } : {}),
|
|
119
|
+
}),
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
if (err instanceof CommandRejectedError) {
|
|
126
|
+
return {
|
|
127
|
+
content: [
|
|
128
|
+
{
|
|
129
|
+
type: "text",
|
|
130
|
+
text: JSON.stringify({
|
|
131
|
+
switched: false,
|
|
132
|
+
error: err.message,
|
|
133
|
+
command: err.cmd,
|
|
134
|
+
command_id: err.cmdId,
|
|
135
|
+
}),
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
isError: true,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
if (err instanceof CommandTimeoutError) {
|
|
142
|
+
return {
|
|
143
|
+
content: [
|
|
144
|
+
{
|
|
145
|
+
type: "text",
|
|
146
|
+
text: JSON.stringify({
|
|
147
|
+
switched: false,
|
|
148
|
+
error: err.message,
|
|
149
|
+
timeout_ms: err.timeoutMs,
|
|
150
|
+
}),
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
isError: true,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
157
|
+
return {
|
|
158
|
+
content: [{ type: "text", text: `Error: ${msg}` }],
|
|
159
|
+
isError: true,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
// 3. send_command — Send an arbitrary orchestration command
|
|
164
|
+
server.registerTool("send_command", {
|
|
165
|
+
title: "Send Command",
|
|
166
|
+
description: "Send an orchestration command to a PilotSwarm session and wait for the orchestration's response. " +
|
|
167
|
+
"Recognized commands: set_model, list_models, get_info, done, cancel, delete. " +
|
|
168
|
+
"Unknown commands are rejected by the orchestration and surfaced as MCP errors.",
|
|
169
|
+
inputSchema: {
|
|
170
|
+
session_id: z.string().describe("The session to send the command to"),
|
|
171
|
+
command: z.string().describe("The command name to send"),
|
|
172
|
+
args: z
|
|
173
|
+
.record(z.string(), z.any())
|
|
174
|
+
.optional()
|
|
175
|
+
.describe("Optional arguments for the command"),
|
|
176
|
+
timeout_ms: z
|
|
177
|
+
.number()
|
|
178
|
+
.int()
|
|
179
|
+
.positive()
|
|
180
|
+
.optional()
|
|
181
|
+
.describe("Max time to wait for the orchestration's response (default 15000)"),
|
|
182
|
+
},
|
|
183
|
+
}, async ({ session_id, command, args, timeout_ms }) => {
|
|
184
|
+
try {
|
|
185
|
+
if (ctx.webMode) {
|
|
186
|
+
// Raw orchestration-command plumbing (KV command channel) is
|
|
187
|
+
// deliberately not exposed over the Web API.
|
|
188
|
+
return {
|
|
189
|
+
content: [
|
|
190
|
+
{
|
|
191
|
+
type: "text",
|
|
192
|
+
text: JSON.stringify({
|
|
193
|
+
sent: false,
|
|
194
|
+
error: "send_command is direct-mode only; over the Web API use the dedicated tools (switch_model, abort_session, …).",
|
|
195
|
+
}),
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
isError: true,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
const response = await sendCommandAndWait(ctx.mgmt, session_id, command, args, { timeoutMs: timeout_ms });
|
|
202
|
+
return {
|
|
203
|
+
content: [
|
|
204
|
+
{
|
|
205
|
+
type: "text",
|
|
206
|
+
text: JSON.stringify({
|
|
207
|
+
sent: true,
|
|
208
|
+
command,
|
|
209
|
+
command_id: response.id,
|
|
210
|
+
...(response.result !== undefined ? { result: response.result } : {}),
|
|
211
|
+
}),
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
217
|
+
if (err instanceof CommandRejectedError) {
|
|
218
|
+
return {
|
|
219
|
+
content: [
|
|
220
|
+
{
|
|
221
|
+
type: "text",
|
|
222
|
+
text: JSON.stringify({
|
|
223
|
+
sent: false,
|
|
224
|
+
error: err.message,
|
|
225
|
+
command: err.cmd,
|
|
226
|
+
command_id: err.cmdId,
|
|
227
|
+
}),
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
isError: true,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
if (err instanceof CommandTimeoutError) {
|
|
234
|
+
return {
|
|
235
|
+
content: [
|
|
236
|
+
{
|
|
237
|
+
type: "text",
|
|
238
|
+
text: JSON.stringify({
|
|
239
|
+
sent: false,
|
|
240
|
+
error: err.message,
|
|
241
|
+
timeout_ms: err.timeoutMs,
|
|
242
|
+
}),
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
isError: true,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
249
|
+
return {
|
|
250
|
+
content: [{ type: "text", text: `Error: ${msg}` }],
|
|
251
|
+
isError: true,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/tools/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/tools/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAOnD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,QA8oBzE"}
|