pilotswarm 0.5.4 → 0.5.6
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/mcp/dist/src/tools/models.d.ts.map +1 -1
- package/mcp/dist/src/tools/models.js +12 -5
- package/mcp/dist/src/tools/models.js.map +1 -1
- package/package.json +2 -2
- package/tui/src/app.js +6 -0
- package/tui/src/node-sdk-transport.js +1 -0
- package/ui/core/src/commands.js +1 -0
- package/ui/core/src/controller.js +49 -16
- package/ui/core/src/selectors.js +1 -1
- package/web/dist/assets/{index-OSQLEf2A.js → index-TH4QvJ6J.js} +2 -2
- package/web/dist/assets/{pilotswarm-DXc-jqRU.js → pilotswarm-LkrSYzZ1.js} +51 -51
- package/web/dist/assets/{react-DMAIpp0t.js → react-BoMupMMQ.js} +1 -1
- package/web/dist/index.html +3 -3
|
@@ -1 +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,
|
|
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,QA4SvE"}
|
|
@@ -87,6 +87,10 @@ export function registerModelTools(server, ctx) {
|
|
|
87
87
|
.string()
|
|
88
88
|
.optional()
|
|
89
89
|
.describe("Reasoning effort for the new model (e.g. low, medium, high) — web mode only"),
|
|
90
|
+
context_tier: z
|
|
91
|
+
.string()
|
|
92
|
+
.optional()
|
|
93
|
+
.describe("Context-window tier for the new model: 'default' (smaller) or 'long_context' — web mode only"),
|
|
90
94
|
timeout_ms: z
|
|
91
95
|
.number()
|
|
92
96
|
.int()
|
|
@@ -94,23 +98,26 @@ export function registerModelTools(server, ctx) {
|
|
|
94
98
|
.optional()
|
|
95
99
|
.describe("Max time to wait for the orchestration to acknowledge the switch (default 15000)"),
|
|
96
100
|
},
|
|
97
|
-
}, async ({ session_id, model, reasoning_effort, timeout_ms }) => {
|
|
101
|
+
}, async ({ session_id, model, reasoning_effort, context_tier, timeout_ms }) => {
|
|
98
102
|
try {
|
|
99
103
|
if (ctx.webMode) {
|
|
100
104
|
// Web API mode: the supported model-switch path (same one
|
|
101
105
|
// the portal UI uses). The server validates the model and
|
|
102
106
|
// enqueues the switch; rejections surface as API errors.
|
|
103
|
-
await ctx.mgmt.setSessionModel(session_id, model,
|
|
107
|
+
await ctx.mgmt.setSessionModel(session_id, model, {
|
|
108
|
+
...(reasoning_effort !== undefined ? { reasoningEffort: reasoning_effort } : {}),
|
|
109
|
+
...(context_tier !== undefined ? { contextTier: context_tier } : {}),
|
|
110
|
+
});
|
|
104
111
|
return {
|
|
105
112
|
content: [
|
|
106
|
-
{ type: "text", text: JSON.stringify({ switched: true, model, ...(reasoning_effort ? { reasoning_effort } : {}) }) },
|
|
113
|
+
{ type: "text", text: JSON.stringify({ switched: true, model, ...(reasoning_effort ? { reasoning_effort } : {}), ...(context_tier ? { context_tier } : {}) }) },
|
|
107
114
|
],
|
|
108
115
|
};
|
|
109
116
|
}
|
|
110
|
-
if (reasoning_effort !== undefined) {
|
|
117
|
+
if (reasoning_effort !== undefined || context_tier !== undefined) {
|
|
111
118
|
return {
|
|
112
119
|
content: [
|
|
113
|
-
{ type: "text", text: JSON.stringify({ switched: false, error: "reasoning_effort
|
|
120
|
+
{ type: "text", text: JSON.stringify({ switched: false, error: "reasoning_effort and context_tier are only supported in Web API mode" }) },
|
|
114
121
|
],
|
|
115
122
|
isError: true,
|
|
116
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/tools/models.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/tools/models.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pilotswarm",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"description": "PilotSwarm application package: terminal UI, browser portal + Web API server, and MCP server — one install, three bins.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"hono": "^4.12.10",
|
|
78
78
|
"ink": "^6.8.0",
|
|
79
79
|
"jose": "^6.2.2",
|
|
80
|
-
"pilotswarm-sdk": "^0.5.
|
|
80
|
+
"pilotswarm-sdk": "^0.5.6",
|
|
81
81
|
"react": "^19.2.4",
|
|
82
82
|
"react-dom": "^19.2.4",
|
|
83
83
|
"ws": "^8.18.2"
|
package/tui/src/app.js
CHANGED
|
@@ -243,6 +243,7 @@ export function PilotSwarmTuiApp({ controller, platform, onRequestExit }) {
|
|
|
243
243
|
const isCtrlJ = matchesCtrlKey("j", "\n");
|
|
244
244
|
const isCtrlA = matchesCtrlKey("a", "\u0001");
|
|
245
245
|
const isShiftN = input === "N" || (key.shift && key.name === "n");
|
|
246
|
+
const isShiftM = !key.ctrl && !key.meta && !key.alt && (input === "M" || (key.shift && key.name === "m"));
|
|
246
247
|
const isShiftD = input === "D" || (key.shift && key.name === "d");
|
|
247
248
|
const isShiftT = !key.ctrl && !key.meta && !key.alt && (input === "T" || (key.shift && key.name === "t"));
|
|
248
249
|
const isShiftA = !key.ctrl && !key.meta && !key.alt && (input === "A" || (key.shift && key.name === "a"));
|
|
@@ -549,6 +550,11 @@ export function PilotSwarmTuiApp({ controller, platform, onRequestExit }) {
|
|
|
549
550
|
return;
|
|
550
551
|
}
|
|
551
552
|
|
|
553
|
+
if (focus !== "prompt" && isShiftM) {
|
|
554
|
+
controller.handleCommand(UI_COMMANDS.OPEN_SWITCH_MODEL_PICKER).catch(() => {});
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
|
|
552
558
|
if (focus === "chat" && (input === "e" || isCtrlE)) {
|
|
553
559
|
controller.handleCommand(UI_COMMANDS.EXPAND_HISTORY).catch(() => {});
|
|
554
560
|
return;
|
|
@@ -1115,6 +1115,7 @@ export class NodeSdkTransport {
|
|
|
1115
1115
|
async setSessionModel(sessionId, options = {}) {
|
|
1116
1116
|
return this.mgmt.setSessionModel(sessionId, options.model, {
|
|
1117
1117
|
...("reasoningEffort" in options ? { reasoningEffort: options.reasoningEffort ?? null } : {}),
|
|
1118
|
+
...("contextTier" in options ? { contextTier: options.contextTier ?? null } : {}),
|
|
1118
1119
|
source: options.source || "ui",
|
|
1119
1120
|
});
|
|
1120
1121
|
}
|
package/ui/core/src/commands.js
CHANGED
|
@@ -13,6 +13,7 @@ export const UI_COMMANDS = {
|
|
|
13
13
|
REFRESH: "refresh",
|
|
14
14
|
NEW_SESSION: "newSession",
|
|
15
15
|
OPEN_MODEL_PICKER: "openModelPicker",
|
|
16
|
+
OPEN_SWITCH_MODEL_PICKER: "openSwitchModelPicker",
|
|
16
17
|
OPEN_THEME_PICKER: "openThemePicker",
|
|
17
18
|
OPEN_RENAME_SESSION: "openRenameSession",
|
|
18
19
|
OPEN_SESSION_FILTER: "openSessionFilter",
|
|
@@ -300,7 +300,12 @@ function buildSessionMergePatch(previousSession, nextSession) {
|
|
|
300
300
|
changed = true;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
-
if (nextSession.pendingQuestion === undefined && previousSession?.pendingQuestion && nextSession.status !== "input_required"
|
|
303
|
+
if (nextSession.pendingQuestion === undefined && previousSession?.pendingQuestion && nextSession.status !== "input_required"
|
|
304
|
+
&& !isSameOrOlderSessionUpdate(previousSession, nextSession)) {
|
|
305
|
+
// Only a genuinely newer update may clear a pending question. A stale or
|
|
306
|
+
// in-flight detail-sync that raced the input_required_started event (and
|
|
307
|
+
// so still reports the pre-question status with no pendingQuestion) must
|
|
308
|
+
// not wipe the question the user is looking at.
|
|
304
309
|
patch.pendingQuestion = null;
|
|
305
310
|
changed = true;
|
|
306
311
|
}
|
|
@@ -3026,6 +3031,28 @@ export class PilotSwarmUiController {
|
|
|
3026
3031
|
sessionId,
|
|
3027
3032
|
history: appendEventToHistory(existing, event),
|
|
3028
3033
|
});
|
|
3034
|
+
// The input_required_started event carries the full question payload and
|
|
3035
|
+
// reaches us on the live event stream — well ahead of the slower
|
|
3036
|
+
// customStatus detail-sync (scheduleSessionDetailSync below). Set
|
|
3037
|
+
// pendingQuestion + status synchronously so an answer typed the moment the
|
|
3038
|
+
// question appears takes the direct sendAnswer path instead of being
|
|
3039
|
+
// misrouted into the outbox queue, where it would sit until a later send
|
|
3040
|
+
// flushed it. The eventual detail-sync reconciles to the authoritative
|
|
3041
|
+
// customStatus.
|
|
3042
|
+
if (event.eventType === "session.input_required_started" && event.data?.question) {
|
|
3043
|
+
this.dispatch({
|
|
3044
|
+
type: "sessions/merged",
|
|
3045
|
+
session: {
|
|
3046
|
+
sessionId,
|
|
3047
|
+
status: "input_required",
|
|
3048
|
+
pendingQuestion: {
|
|
3049
|
+
question: event.data.question,
|
|
3050
|
+
choices: Array.isArray(event.data.choices) ? event.data.choices : undefined,
|
|
3051
|
+
allowFreeform: event.data.allowFreeform ?? true,
|
|
3052
|
+
},
|
|
3053
|
+
},
|
|
3054
|
+
});
|
|
3055
|
+
}
|
|
3029
3056
|
this.reconcileOutboxAgainstEvent(sessionId, event);
|
|
3030
3057
|
const derivedModel = extractSessionModelFromEvent(event);
|
|
3031
3058
|
const currentSession = this.getState().sessions.byId[sessionId] || { sessionId };
|
|
@@ -3487,10 +3514,8 @@ export class PilotSwarmUiController {
|
|
|
3487
3514
|
const supported = normalizeReasoningEfforts(modelItem?.supportedReasoningEfforts);
|
|
3488
3515
|
const selectedEffort = sessionOptions?.reasoningEffort || resolveDefaultReasoningEffort(modelItem);
|
|
3489
3516
|
if (!supported.length || !selectedEffort) {
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
return;
|
|
3493
|
-
}
|
|
3517
|
+
// No effort step for this model — fall through to the context-tier
|
|
3518
|
+
// step, which handles both the new-session and switch-model flows.
|
|
3494
3519
|
await this.openContextTierPicker(modelItem, sessionOptions);
|
|
3495
3520
|
return;
|
|
3496
3521
|
}
|
|
@@ -3526,7 +3551,9 @@ export class PilotSwarmUiController {
|
|
|
3526
3551
|
// the catalog default ("default", the smaller window).
|
|
3527
3552
|
const supported = normalizeContextTiers(modelItem?.supportedContextTiers);
|
|
3528
3553
|
const selectedTier = sessionOptions?.contextTier || resolveDefaultContextTier(modelItem);
|
|
3529
|
-
if (!supported.length || !selectedTier
|
|
3554
|
+
if (!supported.length || !selectedTier) {
|
|
3555
|
+
// Model declares no context-window tiers — skip straight to applying
|
|
3556
|
+
// the switch (switch flow) or to the agent picker (new-session flow).
|
|
3530
3557
|
if (sessionOptions?.mode === "switchModel") {
|
|
3531
3558
|
await this.switchSessionModel({ ...sessionOptions, model: modelItem?.id });
|
|
3532
3559
|
return;
|
|
@@ -3652,9 +3679,12 @@ export class PilotSwarmUiController {
|
|
|
3652
3679
|
await this.transport.setSessionModel(sessionId, {
|
|
3653
3680
|
model,
|
|
3654
3681
|
...("reasoningEffort" in options ? { reasoningEffort: options.reasoningEffort ?? null } : {}),
|
|
3682
|
+
...("contextTier" in options ? { contextTier: options.contextTier ?? null } : {}),
|
|
3655
3683
|
source: "ui",
|
|
3656
3684
|
});
|
|
3657
|
-
|
|
3685
|
+
const modelLabel = options.reasoningEffort ? `${model}:${options.reasoningEffort}` : model;
|
|
3686
|
+
const tierSuffix = options.contextTier ? ` · ${CONTEXT_TIER_LABELS[options.contextTier] || options.contextTier}` : "";
|
|
3687
|
+
this.dispatch({ type: "ui/status", text: `Next turn will use ${modelLabel}${tierSuffix}` });
|
|
3658
3688
|
await this.refreshSessions();
|
|
3659
3689
|
}
|
|
3660
3690
|
|
|
@@ -4458,13 +4488,6 @@ export class PilotSwarmUiController {
|
|
|
4458
4488
|
if (previousFocus) {
|
|
4459
4489
|
this.setFocus(previousFocus);
|
|
4460
4490
|
}
|
|
4461
|
-
if (sessionOptions?.mode === "switchModel") {
|
|
4462
|
-
await this.switchSessionModel({
|
|
4463
|
-
...sessionOptions,
|
|
4464
|
-
...(item?.id ? { reasoningEffort: item.id } : {}),
|
|
4465
|
-
});
|
|
4466
|
-
return;
|
|
4467
|
-
}
|
|
4468
4491
|
await this.openContextTierPicker(modal.modelItem, {
|
|
4469
4492
|
...sessionOptions,
|
|
4470
4493
|
...(item?.id ? { reasoningEffort: item.id } : {}),
|
|
@@ -4479,10 +4502,17 @@ export class PilotSwarmUiController {
|
|
|
4479
4502
|
if (previousFocus) {
|
|
4480
4503
|
this.setFocus(previousFocus);
|
|
4481
4504
|
}
|
|
4482
|
-
|
|
4505
|
+
const nextOptions = {
|
|
4483
4506
|
...sessionOptions,
|
|
4484
4507
|
...(item?.id ? { contextTier: item.id } : {}),
|
|
4485
|
-
}
|
|
4508
|
+
};
|
|
4509
|
+
// Switch-model flow ends here — apply the model/effort/tier switch.
|
|
4510
|
+
// New-session flow continues to the agent picker.
|
|
4511
|
+
if (sessionOptions?.mode === "switchModel") {
|
|
4512
|
+
await this.switchSessionModel({ ...nextOptions, model: modal.modelItem?.id || sessionOptions.model });
|
|
4513
|
+
return;
|
|
4514
|
+
}
|
|
4515
|
+
await this.openSessionAgentPicker(nextOptions);
|
|
4486
4516
|
return;
|
|
4487
4517
|
}
|
|
4488
4518
|
if (modal.type === "sessionAgentPicker") {
|
|
@@ -6183,6 +6213,9 @@ export class PilotSwarmUiController {
|
|
|
6183
6213
|
case UI_COMMANDS.OPEN_MODEL_PICKER:
|
|
6184
6214
|
await this.openModelPicker();
|
|
6185
6215
|
return;
|
|
6216
|
+
case UI_COMMANDS.OPEN_SWITCH_MODEL_PICKER:
|
|
6217
|
+
await this.openSwitchModelPicker();
|
|
6218
|
+
return;
|
|
6186
6219
|
case UI_COMMANDS.OPEN_THEME_PICKER:
|
|
6187
6220
|
this.openThemePicker();
|
|
6188
6221
|
return;
|
package/ui/core/src/selectors.js
CHANGED
|
@@ -5820,7 +5820,7 @@ const KEYBINDING_HELP = [
|
|
|
5820
5820
|
["m", "cycle inspector tab"],
|
|
5821
5821
|
["c / d / D", "cancel / done / delete session"],
|
|
5822
5822
|
["ctrl-x (ctrl-esc)", "stop the current turn", { dim: true }],
|
|
5823
|
-
["T / N / A", "theme / model / admin"],
|
|
5823
|
+
["T / N / M / A", "theme / new+model / switch model / admin"],
|
|
5824
5824
|
["?", "toggle this help"],
|
|
5825
5825
|
["q", "quit (double-tap)"],
|
|
5826
5826
|
["Esc", "back / focus sessions"],
|