@getpaseo/server 0.1.78 → 0.1.80
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/scripts/dev-runner.js +1 -13
- package/dist/scripts/dev-runner.js.map +1 -1
- package/dist/scripts/supervisor-entrypoint.js +17 -3
- package/dist/scripts/supervisor-entrypoint.js.map +1 -1
- package/dist/server/client/daemon-client.d.ts +34 -2
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +138 -1
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +6 -0
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +40 -5
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +5 -0
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +3 -0
- package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.js +58 -22
- package/dist/server/server/agent/agent-storage.js.map +1 -1
- package/dist/server/server/agent/create-agent-lifecycle-dispatch.d.ts +51 -0
- package/dist/server/server/agent/create-agent-lifecycle-dispatch.d.ts.map +1 -0
- package/dist/server/server/agent/create-agent-lifecycle-dispatch.js +140 -0
- package/dist/server/server/agent/create-agent-lifecycle-dispatch.js.map +1 -0
- package/dist/server/server/agent/import-sessions.js +2 -2
- package/dist/server/server/agent/import-sessions.js.map +1 -1
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +202 -99
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/provider-registry.js +2 -2
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +3 -0
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +44 -4
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/agent.js +17 -9
- package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/project-dir.d.ts +5 -0
- package/dist/server/server/agent/providers/claude/project-dir.d.ts.map +1 -0
- package/dist/server/server/agent/providers/claude/project-dir.js +40 -0
- package/dist/server/server/agent/providers/claude/project-dir.js.map +1 -0
- package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js +13 -2
- package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +4 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +57 -19
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/cursor-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/cursor-acp-agent.js +11 -1
- package/dist/server/server/agent/providers/cursor-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts +2 -0
- package/dist/server/server/agent/providers/generic-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/generic-acp-agent.js +2 -0
- package/dist/server/server/agent/providers/generic-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/runtime.d.ts +1 -0
- package/dist/server/server/agent/providers/opencode/runtime.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/runtime.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/server-manager.d.ts +4 -0
- package/dist/server/server/agent/providers/opencode/server-manager.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/server-manager.js +18 -2
- package/dist/server/server/agent/providers/opencode/server-manager.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts +2 -0
- package/dist/server/server/agent/providers/opencode/test-server-manager.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/test-server-manager.js +1 -0
- package/dist/server/server/agent/providers/opencode/test-server-manager.js.map +1 -1
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts +2 -0
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js +1 -1
- package/dist/server/server/agent/providers/opencode/test-utils/test-opencode-runtime.js.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +7 -2
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/{pi-direct-agent.d.ts → pi/agent.d.ts} +38 -29
- package/dist/server/server/agent/providers/pi/agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/agent.js +829 -0
- package/dist/server/server/agent/providers/pi/agent.js.map +1 -0
- package/dist/server/server/agent/providers/pi/cli-runtime.d.ts +18 -0
- package/dist/server/server/agent/providers/pi/cli-runtime.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/cli-runtime.js +218 -0
- package/dist/server/server/agent/providers/pi/cli-runtime.js.map +1 -0
- package/dist/server/server/agent/providers/pi/history-mapper.d.ts +5 -0
- package/dist/server/server/agent/providers/pi/history-mapper.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/history-mapper.js +139 -0
- package/dist/server/server/agent/providers/pi/history-mapper.js.map +1 -0
- package/dist/server/server/agent/providers/pi/rpc-types.d.ts +185 -0
- package/dist/server/server/agent/providers/pi/rpc-types.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/rpc-types.js +2 -0
- package/dist/server/server/agent/providers/pi/rpc-types.js.map +1 -0
- package/dist/server/server/agent/providers/pi/runtime.d.ts +48 -0
- package/dist/server/server/agent/providers/pi/runtime.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/runtime.js +52 -0
- package/dist/server/server/agent/providers/pi/runtime.js.map +1 -0
- package/dist/server/server/agent/providers/pi/session-descriptor.d.ts +10 -0
- package/dist/server/server/agent/providers/pi/session-descriptor.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/session-descriptor.js +300 -0
- package/dist/server/server/agent/providers/pi/session-descriptor.js.map +1 -0
- package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts +52 -0
- package/dist/server/server/agent/providers/pi/test-utils/fake-pi.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js +109 -0
- package/dist/server/server/agent/providers/pi/test-utils/fake-pi.js.map +1 -0
- package/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts +112 -0
- package/dist/server/server/agent/providers/pi/tool-call-mapper.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi/tool-call-mapper.js +284 -0
- package/dist/server/server/agent/providers/pi/tool-call-mapper.js.map +1 -0
- package/dist/server/server/agent/system-prompt.d.ts +2 -0
- package/dist/server/server/agent/system-prompt.d.ts.map +1 -0
- package/dist/server/server/agent/system-prompt.js +8 -0
- package/dist/server/server/agent/system-prompt.js.map +1 -0
- package/dist/server/server/bootstrap.d.ts +1 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +15 -1
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +6 -1
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/daemon-config-store.js +1 -0
- package/dist/server/server/daemon-config-store.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +51 -44
- package/dist/server/server/persisted-config.d.ts.map +1 -1
- package/dist/server/server/persisted-config.js +1 -0
- package/dist/server/server/persisted-config.js.map +1 -1
- package/dist/server/server/pid-lock.d.ts +2 -2
- package/dist/server/server/session.d.ts +21 -0
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +232 -10
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +11 -1
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +10 -2
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-git-service.d.ts +5 -1
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +122 -62
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/shared/importable-providers.d.ts +1 -1
- package/dist/server/shared/importable-providers.d.ts.map +1 -1
- package/dist/server/shared/importable-providers.js +1 -1
- package/dist/server/shared/importable-providers.js.map +1 -1
- package/dist/server/shared/messages.d.ts +2187 -24
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +108 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/terminal/terminal-manager.d.ts +1 -0
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +8 -0
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-session-controller.d.ts +1 -0
- package/dist/server/terminal/terminal-session-controller.d.ts.map +1 -1
- package/dist/server/terminal/terminal-session-controller.js +26 -0
- package/dist/server/terminal/terminal-session-controller.js.map +1 -1
- package/dist/server/terminal/terminal.d.ts +1 -0
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +32 -10
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/terminal/worker-terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/worker-terminal-manager.js +18 -0
- package/dist/server/terminal/worker-terminal-manager.js.map +1 -1
- package/dist/server/utils/branch-slug.d.ts +14 -0
- package/dist/server/utils/branch-slug.d.ts.map +1 -0
- package/dist/server/utils/branch-slug.js +49 -0
- package/dist/server/utils/branch-slug.js.map +1 -0
- package/dist/server/utils/directory-suggestions.js +2 -2
- package/dist/server/utils/directory-suggestions.js.map +1 -1
- package/dist/server/utils/path.d.ts +1 -0
- package/dist/server/utils/path.d.ts.map +1 -1
- package/dist/server/utils/path.js +31 -0
- package/dist/server/utils/path.js.map +1 -1
- package/dist/server/utils/run-git-command.d.ts.map +1 -1
- package/dist/server/utils/run-git-command.js +3 -1
- package/dist/server/utils/run-git-command.js.map +1 -1
- package/dist/server/utils/worktree.d.ts +1 -12
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +2 -52
- package/dist/server/utils/worktree.js.map +1 -1
- package/dist/src/server/persisted-config.js +1 -0
- package/dist/src/server/persisted-config.js.map +1 -1
- package/dist/src/shared/messages.js +108 -0
- package/dist/src/shared/messages.js.map +1 -1
- package/package.json +13 -11
- package/dist/server/server/agent/orchestrator-instructions.d.ts +0 -7
- package/dist/server/server/agent/orchestrator-instructions.d.ts.map +0 -1
- package/dist/server/server/agent/orchestrator-instructions.js +0 -51
- package/dist/server/server/agent/orchestrator-instructions.js.map +0 -1
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/pi-direct-agent.js +0 -1151
- package/dist/server/server/agent/providers/pi-direct-agent.js.map +0 -1
- package/dist/server/server/agent/providers/pi-session-recovery-policy.d.ts +0 -22
- package/dist/server/server/agent/providers/pi-session-recovery-policy.d.ts.map +0 -1
- package/dist/server/server/agent/providers/pi-session-recovery-policy.js +0 -51
- package/dist/server/server/agent/providers/pi-session-recovery-policy.js.map +0 -1
|
@@ -18,7 +18,7 @@ import { ScheduleRunSchema, ScheduleSummarySchema, StoredScheduleSchema, } from
|
|
|
18
18
|
import { getAgentProviderDefinition } from "./provider-manifest.js";
|
|
19
19
|
import { resolveAndValidateCreateAgentMode } from "./create-agent-mode.js";
|
|
20
20
|
import { resolveSnapshotCwd } from "./provider-snapshot-manager.js";
|
|
21
|
-
import { AgentModelSchema, AgentProviderEnum, AgentStatusEnum, ProviderSummarySchema, parseDurationString, resolveRequiredProviderModel, sanitizePermissionRequest, serializeSnapshotWithMetadata, toScheduleSummary, waitForAgentWithTimeout, } from "./mcp-shared.js";
|
|
21
|
+
import { AgentModelSchema, AgentProviderEnum, AgentStatusEnum, ProviderModeSchema, ProviderSummarySchema, parseDurationString, resolveRequiredProviderModel, sanitizePermissionRequest, serializeSnapshotWithMetadata, toScheduleSummary, waitForAgentWithTimeout, } from "./mcp-shared.js";
|
|
22
22
|
import { sendPromptToAgent, setupFinishNotification, startAgentRun } from "./agent-prompt.js";
|
|
23
23
|
import { toWorktreeRequestError } from "../worktree-errors.js";
|
|
24
24
|
import { join } from "node:path";
|
|
@@ -53,6 +53,45 @@ function mapModeAcrossProviders(sourceMode, sourceProvider, targetProvider) {
|
|
|
53
53
|
}
|
|
54
54
|
return sourceMode;
|
|
55
55
|
}
|
|
56
|
+
function addModelVisibleStructuredContent(result) {
|
|
57
|
+
if (result.structuredContent === undefined || result.content.length > 0) {
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
...result,
|
|
62
|
+
content: [
|
|
63
|
+
{
|
|
64
|
+
type: "text",
|
|
65
|
+
text: formatStructuredContentForModel(result.structuredContent),
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function formatStructuredContentForModel(structuredContent) {
|
|
71
|
+
if (!structuredContent ||
|
|
72
|
+
typeof structuredContent !== "object" ||
|
|
73
|
+
Array.isArray(structuredContent)) {
|
|
74
|
+
return JSON.stringify(structuredContent, null, 2);
|
|
75
|
+
}
|
|
76
|
+
const record = structuredContent;
|
|
77
|
+
const summary = [];
|
|
78
|
+
for (const [key, value] of Object.entries(record)) {
|
|
79
|
+
if (!Array.isArray(value)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
summary.push(`${key}_count=${value.length}`);
|
|
83
|
+
const ids = value
|
|
84
|
+
.map((item) => item && typeof item === "object" && !Array.isArray(item)
|
|
85
|
+
? item.id
|
|
86
|
+
: null)
|
|
87
|
+
.filter((id) => typeof id === "string" && id.length > 0);
|
|
88
|
+
if (ids.length === value.length && ids.length > 0) {
|
|
89
|
+
summary.push(`${key}_ids=${ids.join(",")}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const json = JSON.stringify(structuredContent, null, 2);
|
|
93
|
+
return summary.length > 0 ? `${summary.join("\n")}\n\n${json}` : json;
|
|
94
|
+
}
|
|
56
95
|
function parseTimestamp(value) {
|
|
57
96
|
if (!value) {
|
|
58
97
|
return 0;
|
|
@@ -264,6 +303,8 @@ export async function createAgentMcpServer(options) {
|
|
|
264
303
|
name: "agent-mcp",
|
|
265
304
|
version: "2.0.0",
|
|
266
305
|
});
|
|
306
|
+
const registerRawTool = server.registerTool.bind(server);
|
|
307
|
+
const registerTool = (name, config, handler) => registerRawTool(name, config, (async (args, extra) => addModelVisibleStructuredContent(await handler(args, extra))));
|
|
267
308
|
const resolveCallerAgent = () => {
|
|
268
309
|
if (!callerAgentId) {
|
|
269
310
|
return null;
|
|
@@ -379,6 +420,53 @@ export async function createAgentMcpServer(options) {
|
|
|
379
420
|
return false;
|
|
380
421
|
}
|
|
381
422
|
}, { message: "provider must be provider/model, for example codex/gpt-5.4" });
|
|
423
|
+
const ProviderOrProviderModelInputSchema = AgentProviderEnum.trim()
|
|
424
|
+
.min(1, "provider is required")
|
|
425
|
+
.refine((value) => {
|
|
426
|
+
if (!value.includes("/")) {
|
|
427
|
+
return true;
|
|
428
|
+
}
|
|
429
|
+
try {
|
|
430
|
+
resolveRequiredProviderModel(value);
|
|
431
|
+
return true;
|
|
432
|
+
}
|
|
433
|
+
catch {
|
|
434
|
+
return false;
|
|
435
|
+
}
|
|
436
|
+
}, { message: "provider must be provider or provider/model, for example codex/gpt-5.4" });
|
|
437
|
+
const CreateAgentSettingsInputSchema = z
|
|
438
|
+
.object({
|
|
439
|
+
modeId: z.string().optional().describe("Session mode to configure before the first run."),
|
|
440
|
+
thinkingOptionId: z.string().optional().describe("Thinking option ID."),
|
|
441
|
+
features: z
|
|
442
|
+
.record(z.unknown())
|
|
443
|
+
.optional()
|
|
444
|
+
.describe("Provider-specific feature values, for example { fast_mode: true } for Codex."),
|
|
445
|
+
})
|
|
446
|
+
.strict();
|
|
447
|
+
const UpdateAgentSettingsInputSchema = z
|
|
448
|
+
.object({
|
|
449
|
+
modeId: z.string().optional().describe("Session mode ID."),
|
|
450
|
+
model: z.string().nullable().optional().describe("Model ID. Pass null to clear."),
|
|
451
|
+
thinkingOptionId: z
|
|
452
|
+
.string()
|
|
453
|
+
.nullable()
|
|
454
|
+
.optional()
|
|
455
|
+
.describe("Thinking option ID. Pass null to clear."),
|
|
456
|
+
features: z
|
|
457
|
+
.record(z.unknown())
|
|
458
|
+
.optional()
|
|
459
|
+
.describe("Provider-specific feature values, for example { fast_mode: true } for Codex."),
|
|
460
|
+
})
|
|
461
|
+
.strict();
|
|
462
|
+
const InspectProviderSettingsInputSchema = z
|
|
463
|
+
.object({
|
|
464
|
+
modeId: z.string().optional().describe("Draft session mode ID."),
|
|
465
|
+
model: z.string().optional().describe("Draft model ID."),
|
|
466
|
+
thinkingOptionId: z.string().optional().describe("Draft thinking option ID."),
|
|
467
|
+
features: z.record(z.unknown()).optional().describe("Draft provider feature values."),
|
|
468
|
+
})
|
|
469
|
+
.strict();
|
|
382
470
|
const agentToAgentInputSchema = {
|
|
383
471
|
cwd: z
|
|
384
472
|
.string()
|
|
@@ -391,21 +479,13 @@ export async function createAgentMcpServer(options) {
|
|
|
391
479
|
.max(60, "Title must be 60 characters or fewer")
|
|
392
480
|
.describe("Short descriptive title (<= 60 chars) summarizing the agent's focus."),
|
|
393
481
|
provider: ProviderModelInputSchema.describe("Required provider/model pair, for example codex/gpt-5.4."),
|
|
394
|
-
thinking: z.string().optional().describe("Thinking option ID"),
|
|
395
|
-
features: z
|
|
396
|
-
.record(z.unknown())
|
|
397
|
-
.optional()
|
|
398
|
-
.describe("Provider-specific feature values, for example { fast_mode: true } for Codex."),
|
|
399
482
|
labels: z.record(z.string(), z.string()).optional().describe("Labels to set on the agent"),
|
|
483
|
+
settings: CreateAgentSettingsInputSchema.optional().describe("Initial runtime settings for the new agent."),
|
|
400
484
|
initialPrompt: z
|
|
401
485
|
.string()
|
|
402
486
|
.trim()
|
|
403
487
|
.min(1, "initialPrompt is required")
|
|
404
488
|
.describe("Required first task to run immediately after creation."),
|
|
405
|
-
mode: z
|
|
406
|
-
.string()
|
|
407
|
-
.optional()
|
|
408
|
-
.describe("Optional session mode for the new agent. Required when the new agent uses a different provider than the caller agent."),
|
|
409
489
|
background: z
|
|
410
490
|
.boolean()
|
|
411
491
|
.optional()
|
|
@@ -428,21 +508,13 @@ export async function createAgentMcpServer(options) {
|
|
|
428
508
|
.max(60, "Title must be 60 characters or fewer")
|
|
429
509
|
.describe("Short descriptive title (<= 60 chars) summarizing the agent's focus."),
|
|
430
510
|
provider: ProviderModelInputSchema.describe("Required provider/model pair, for example codex/gpt-5.4."),
|
|
431
|
-
thinking: z.string().optional().describe("Thinking option ID"),
|
|
432
|
-
features: z
|
|
433
|
-
.record(z.unknown())
|
|
434
|
-
.optional()
|
|
435
|
-
.describe("Provider-specific feature values, for example { fast_mode: true } for Codex."),
|
|
436
511
|
labels: z.record(z.string(), z.string()).optional().describe("Labels to set on the agent"),
|
|
512
|
+
settings: CreateAgentSettingsInputSchema.optional().describe("Initial runtime settings for the new agent."),
|
|
437
513
|
initialPrompt: z
|
|
438
514
|
.string()
|
|
439
515
|
.trim()
|
|
440
516
|
.min(1, "initialPrompt is required")
|
|
441
517
|
.describe("Required first task to run immediately after creation."),
|
|
442
|
-
mode: z
|
|
443
|
-
.string()
|
|
444
|
-
.optional()
|
|
445
|
-
.describe("Optional session mode to configure before the first run."),
|
|
446
518
|
worktreeName: z
|
|
447
519
|
.string()
|
|
448
520
|
.optional()
|
|
@@ -476,16 +548,16 @@ export async function createAgentMcpServer(options) {
|
|
|
476
548
|
const createAgentInputSchema = callerAgentId ? agentToAgentInputSchema : topLevelInputSchema;
|
|
477
549
|
const agentToAgentCreateAgentArgsSchema = z.object(agentToAgentInputSchema).strict();
|
|
478
550
|
const topLevelCreateAgentArgsSchema = z.object(topLevelInputSchema).strict();
|
|
479
|
-
const
|
|
480
|
-
provider:
|
|
481
|
-
cwd: z
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
551
|
+
const inspectProviderInputSchema = {
|
|
552
|
+
provider: ProviderOrProviderModelInputSchema.describe("Provider ID, optionally with a model ID (for example codex or codex/gpt-5.4)."),
|
|
553
|
+
cwd: z
|
|
554
|
+
.string()
|
|
555
|
+
.optional()
|
|
556
|
+
.describe("Working directory used to resolve provider feature availability."),
|
|
557
|
+
settings: InspectProviderSettingsInputSchema.optional().describe("Draft provider settings used to compute available features."),
|
|
486
558
|
};
|
|
487
559
|
if (options.voiceOnly || options.enableVoiceTools || callerContext?.enableVoiceTools) {
|
|
488
|
-
|
|
560
|
+
registerTool("speak", {
|
|
489
561
|
title: "Speak",
|
|
490
562
|
description: "Speak text to the user via daemon-managed voice output. Blocks until playback completes.",
|
|
491
563
|
inputSchema: {
|
|
@@ -554,6 +626,7 @@ export async function createAgentMcpServer(options) {
|
|
|
554
626
|
throw new Error(`Parent agent ${parentAgentId} not found`);
|
|
555
627
|
}
|
|
556
628
|
const provider = resolvedProviderModel.provider;
|
|
629
|
+
const settings = callerArgs.settings;
|
|
557
630
|
const resolvedCwd = resolveChildAgentCwd({
|
|
558
631
|
parentCwd: parentAgent.cwd,
|
|
559
632
|
requestedCwd: callerArgs.cwd,
|
|
@@ -561,7 +634,7 @@ export async function createAgentMcpServer(options) {
|
|
|
561
634
|
allowCustomCwd: callerContext?.allowCustomCwd ?? true,
|
|
562
635
|
});
|
|
563
636
|
const resolvedMode = resolveAndValidateCreateAgentMode({
|
|
564
|
-
requestedMode:
|
|
637
|
+
requestedMode: settings?.modeId,
|
|
565
638
|
targetProvider: provider,
|
|
566
639
|
parent: {
|
|
567
640
|
provider: parentAgent.provider,
|
|
@@ -577,8 +650,8 @@ export async function createAgentMcpServer(options) {
|
|
|
577
650
|
background: callerArgs.background ?? false,
|
|
578
651
|
normalizedTitle: callerArgs.title.trim(),
|
|
579
652
|
model: resolvedProviderModel.model,
|
|
580
|
-
|
|
581
|
-
features:
|
|
653
|
+
thinkingOptionId: settings?.thinkingOptionId,
|
|
654
|
+
features: settings?.features,
|
|
582
655
|
labels: callerArgs.labels,
|
|
583
656
|
notifyOnFinish: callerArgs.notifyOnFinish ?? false,
|
|
584
657
|
resolvedCwd,
|
|
@@ -589,9 +662,9 @@ export async function createAgentMcpServer(options) {
|
|
|
589
662
|
const resolveTopLevelCreateAgentArgs = async (args) => {
|
|
590
663
|
const topLevelArgs = topLevelCreateAgentArgsSchema.parse(args);
|
|
591
664
|
const resolvedProviderModel = resolveRequiredProviderModel(topLevelArgs.provider);
|
|
592
|
-
const { cwd,
|
|
665
|
+
const { cwd, settings, worktreeName, baseBranch, refName, action, githubPrNumber } = topLevelArgs;
|
|
593
666
|
const resolvedMode = resolveAndValidateCreateAgentMode({
|
|
594
|
-
requestedMode:
|
|
667
|
+
requestedMode: settings?.modeId,
|
|
595
668
|
targetProvider: resolvedProviderModel.provider,
|
|
596
669
|
parent: null,
|
|
597
670
|
availableModes: getAvailableModeIds(resolvedProviderModel.provider),
|
|
@@ -644,8 +717,8 @@ export async function createAgentMcpServer(options) {
|
|
|
644
717
|
background: topLevelArgs.background ?? false,
|
|
645
718
|
normalizedTitle: topLevelArgs.title.trim(),
|
|
646
719
|
model: resolvedProviderModel.model,
|
|
647
|
-
|
|
648
|
-
features:
|
|
720
|
+
thinkingOptionId: settings?.thinkingOptionId,
|
|
721
|
+
features: settings?.features,
|
|
649
722
|
labels: topLevelArgs.labels,
|
|
650
723
|
notifyOnFinish: topLevelArgs.notifyOnFinish ?? false,
|
|
651
724
|
resolvedCwd,
|
|
@@ -653,7 +726,7 @@ export async function createAgentMcpServer(options) {
|
|
|
653
726
|
setupContinuation,
|
|
654
727
|
};
|
|
655
728
|
};
|
|
656
|
-
|
|
729
|
+
registerTool("create_agent", {
|
|
657
730
|
title: "Create agent",
|
|
658
731
|
description: "Create an agent tied to a working directory. Requires provider/model, for example codex/gpt-5.4. Do not guess; call list_providers and list_models first if uncertain. Optionally run an initial prompt immediately or create a git worktree for the agent.",
|
|
659
732
|
inputSchema: createAgentInputSchema,
|
|
@@ -675,7 +748,7 @@ export async function createAgentMcpServer(options) {
|
|
|
675
748
|
const resolved = callerAgentId
|
|
676
749
|
? resolveCallerCreateAgentArgs(args, callerAgentId)
|
|
677
750
|
: await resolveTopLevelCreateAgentArgs(args);
|
|
678
|
-
const { provider, initialPrompt, background, normalizedTitle, model,
|
|
751
|
+
const { provider, initialPrompt, background, normalizedTitle, model, thinkingOptionId, features, labels, notifyOnFinish, resolvedCwd, resolvedMode, setupContinuation, } = resolved;
|
|
679
752
|
const childAgentDefaultLabels = callerContext?.childAgentDefaultLabels;
|
|
680
753
|
const mergedLabels = {
|
|
681
754
|
...(callerAgentId ? { [PARENT_AGENT_ID_LABEL]: callerAgentId } : {}),
|
|
@@ -688,7 +761,7 @@ export async function createAgentMcpServer(options) {
|
|
|
688
761
|
modeId: resolvedMode,
|
|
689
762
|
title: normalizedTitle ?? undefined,
|
|
690
763
|
model,
|
|
691
|
-
thinkingOptionId
|
|
764
|
+
thinkingOptionId,
|
|
692
765
|
featureValues: features,
|
|
693
766
|
}, undefined, Object.keys(mergedLabels).length > 0 ? { labels: mergedLabels } : undefined);
|
|
694
767
|
setupContinuation?.startAfterAgentCreate({
|
|
@@ -766,25 +839,7 @@ export async function createAgentMcpServer(options) {
|
|
|
766
839
|
};
|
|
767
840
|
return response;
|
|
768
841
|
});
|
|
769
|
-
|
|
770
|
-
title: "Set agent feature",
|
|
771
|
-
description: "Set a provider-specific feature on an existing agent, such as Codex fast_mode.",
|
|
772
|
-
inputSchema: {
|
|
773
|
-
agentId: z.string(),
|
|
774
|
-
featureId: z.string().trim().min(1),
|
|
775
|
-
value: z.unknown(),
|
|
776
|
-
},
|
|
777
|
-
outputSchema: {
|
|
778
|
-
success: z.boolean(),
|
|
779
|
-
},
|
|
780
|
-
}, async ({ agentId, featureId, value }) => {
|
|
781
|
-
await agentManager.setAgentFeature(agentId, featureId, value);
|
|
782
|
-
return {
|
|
783
|
-
content: [],
|
|
784
|
-
structuredContent: ensureValidJson({ success: true }),
|
|
785
|
-
};
|
|
786
|
-
});
|
|
787
|
-
server.registerTool("wait_for_agent", {
|
|
842
|
+
registerTool("wait_for_agent", {
|
|
788
843
|
title: "Wait for agent",
|
|
789
844
|
description: "Block until the agent requests permission or the current run completes. Returns the pending permission (if any) and recent activity summary.",
|
|
790
845
|
inputSchema: {
|
|
@@ -851,7 +906,7 @@ export async function createAgentMcpServer(options) {
|
|
|
851
906
|
cleanup();
|
|
852
907
|
}
|
|
853
908
|
});
|
|
854
|
-
|
|
909
|
+
registerTool("send_agent_prompt", {
|
|
855
910
|
title: "Send agent prompt",
|
|
856
911
|
description: "Send a task to a running agent. Returns immediately after the agent begins processing.",
|
|
857
912
|
inputSchema: {
|
|
@@ -934,7 +989,7 @@ export async function createAgentMcpServer(options) {
|
|
|
934
989
|
};
|
|
935
990
|
return response;
|
|
936
991
|
});
|
|
937
|
-
|
|
992
|
+
registerTool("get_agent_status", {
|
|
938
993
|
title: "Get agent status",
|
|
939
994
|
description: "Return the latest snapshot for an agent, including lifecycle state, capabilities, and pending permissions.",
|
|
940
995
|
inputSchema: {
|
|
@@ -969,7 +1024,7 @@ export async function createAgentMcpServer(options) {
|
|
|
969
1024
|
}),
|
|
970
1025
|
};
|
|
971
1026
|
});
|
|
972
|
-
|
|
1027
|
+
registerTool("list_agents", {
|
|
973
1028
|
title: "List agents",
|
|
974
1029
|
description: "List recent agents as compact metadata.",
|
|
975
1030
|
inputSchema: {
|
|
@@ -1015,7 +1070,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1015
1070
|
structuredContent: ensureValidJson({ agents }),
|
|
1016
1071
|
};
|
|
1017
1072
|
});
|
|
1018
|
-
|
|
1073
|
+
registerTool("cancel_agent", {
|
|
1019
1074
|
title: "Cancel agent run",
|
|
1020
1075
|
description: "Abort the agent's current run but keep the agent alive for future tasks.",
|
|
1021
1076
|
inputSchema: {
|
|
@@ -1034,7 +1089,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1034
1089
|
structuredContent: ensureValidJson({ success }),
|
|
1035
1090
|
};
|
|
1036
1091
|
});
|
|
1037
|
-
|
|
1092
|
+
registerTool("archive_agent", {
|
|
1038
1093
|
title: "Archive agent",
|
|
1039
1094
|
description: "Archive an agent (soft-delete). The agent is interrupted if running and removed from the active list.",
|
|
1040
1095
|
inputSchema: {
|
|
@@ -1051,7 +1106,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1051
1106
|
structuredContent: ensureValidJson({ success: true }),
|
|
1052
1107
|
};
|
|
1053
1108
|
});
|
|
1054
|
-
|
|
1109
|
+
registerTool("kill_agent", {
|
|
1055
1110
|
title: "Kill agent",
|
|
1056
1111
|
description: "Terminate an agent session permanently.",
|
|
1057
1112
|
inputSchema: {
|
|
@@ -1068,18 +1123,33 @@ export async function createAgentMcpServer(options) {
|
|
|
1068
1123
|
structuredContent: ensureValidJson({ success: true }),
|
|
1069
1124
|
};
|
|
1070
1125
|
});
|
|
1071
|
-
|
|
1126
|
+
registerTool("update_agent", {
|
|
1072
1127
|
title: "Update agent",
|
|
1073
|
-
description: "Update an agent name and/or
|
|
1128
|
+
description: "Update an agent name, labels, and/or runtime settings.",
|
|
1074
1129
|
inputSchema: {
|
|
1075
1130
|
agentId: z.string(),
|
|
1076
1131
|
name: z.string().optional(),
|
|
1077
1132
|
labels: z.record(z.string(), z.string()).optional().describe("Labels to set on the agent"),
|
|
1133
|
+
settings: UpdateAgentSettingsInputSchema.optional().describe("Runtime settings to apply to the agent."),
|
|
1078
1134
|
},
|
|
1079
1135
|
outputSchema: {
|
|
1080
1136
|
success: z.boolean(),
|
|
1081
1137
|
},
|
|
1082
|
-
}, async ({ agentId, name, labels }) => {
|
|
1138
|
+
}, async ({ agentId, name, labels, settings }) => {
|
|
1139
|
+
if (settings?.modeId !== undefined) {
|
|
1140
|
+
await agentManager.setAgentMode(agentId, settings.modeId);
|
|
1141
|
+
}
|
|
1142
|
+
if (settings?.model !== undefined) {
|
|
1143
|
+
await agentManager.setAgentModel(agentId, settings.model);
|
|
1144
|
+
}
|
|
1145
|
+
if (settings?.thinkingOptionId !== undefined) {
|
|
1146
|
+
await agentManager.setAgentThinkingOption(agentId, settings.thinkingOptionId);
|
|
1147
|
+
}
|
|
1148
|
+
if (settings?.features) {
|
|
1149
|
+
for (const [featureId, value] of Object.entries(settings.features)) {
|
|
1150
|
+
await agentManager.setAgentFeature(agentId, featureId, value);
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1083
1153
|
const trimmedName = name?.trim();
|
|
1084
1154
|
if (trimmedName) {
|
|
1085
1155
|
const record = await agentStorage.get(agentId);
|
|
@@ -1101,7 +1171,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1101
1171
|
structuredContent: ensureValidJson({ success: true }),
|
|
1102
1172
|
};
|
|
1103
1173
|
});
|
|
1104
|
-
|
|
1174
|
+
registerTool("list_terminals", {
|
|
1105
1175
|
title: "List terminals",
|
|
1106
1176
|
description: "List terminals for a working directory or across all working directories.",
|
|
1107
1177
|
inputSchema: {
|
|
@@ -1134,7 +1204,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1134
1204
|
structuredContent: ensureValidJson({ terminals }),
|
|
1135
1205
|
};
|
|
1136
1206
|
});
|
|
1137
|
-
|
|
1207
|
+
registerTool("create_terminal", {
|
|
1138
1208
|
title: "Create terminal",
|
|
1139
1209
|
description: "Create a terminal session for a working directory.",
|
|
1140
1210
|
inputSchema: {
|
|
@@ -1162,7 +1232,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1162
1232
|
}),
|
|
1163
1233
|
};
|
|
1164
1234
|
});
|
|
1165
|
-
|
|
1235
|
+
registerTool("kill_terminal", {
|
|
1166
1236
|
title: "Kill terminal",
|
|
1167
1237
|
description: "Kill an existing terminal session.",
|
|
1168
1238
|
inputSchema: {
|
|
@@ -1185,7 +1255,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1185
1255
|
structuredContent: ensureValidJson({ success: true }),
|
|
1186
1256
|
};
|
|
1187
1257
|
});
|
|
1188
|
-
|
|
1258
|
+
registerTool("capture_terminal", {
|
|
1189
1259
|
title: "Capture terminal",
|
|
1190
1260
|
description: "Capture plain-text terminal output lines from a terminal session.",
|
|
1191
1261
|
inputSchema: {
|
|
@@ -1221,7 +1291,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1221
1291
|
}),
|
|
1222
1292
|
};
|
|
1223
1293
|
});
|
|
1224
|
-
|
|
1294
|
+
registerTool("send_terminal_keys", {
|
|
1225
1295
|
title: "Send terminal keys",
|
|
1226
1296
|
description: "Send literal text or special key tokens to a terminal session.",
|
|
1227
1297
|
inputSchema: {
|
|
@@ -1249,7 +1319,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1249
1319
|
structuredContent: ensureValidJson({ success: true }),
|
|
1250
1320
|
};
|
|
1251
1321
|
});
|
|
1252
|
-
|
|
1322
|
+
registerTool("create_schedule", {
|
|
1253
1323
|
title: "Create schedule",
|
|
1254
1324
|
description: "Create a recurring schedule that runs on an agent or a new agent.",
|
|
1255
1325
|
inputSchema: {
|
|
@@ -1314,7 +1384,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1314
1384
|
structuredContent: ensureValidJson(toScheduleSummary(schedule)),
|
|
1315
1385
|
};
|
|
1316
1386
|
});
|
|
1317
|
-
|
|
1387
|
+
registerTool("list_schedules", {
|
|
1318
1388
|
title: "List schedules",
|
|
1319
1389
|
description: "List all schedules managed by the daemon.",
|
|
1320
1390
|
inputSchema: {},
|
|
@@ -1331,7 +1401,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1331
1401
|
structuredContent: ensureValidJson({ schedules }),
|
|
1332
1402
|
};
|
|
1333
1403
|
});
|
|
1334
|
-
|
|
1404
|
+
registerTool("inspect_schedule", {
|
|
1335
1405
|
title: "Inspect schedule",
|
|
1336
1406
|
description: "Inspect a schedule and its run history.",
|
|
1337
1407
|
inputSchema: {
|
|
@@ -1348,7 +1418,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1348
1418
|
structuredContent: ensureValidJson(schedule),
|
|
1349
1419
|
};
|
|
1350
1420
|
});
|
|
1351
|
-
|
|
1421
|
+
registerTool("pause_schedule", {
|
|
1352
1422
|
title: "Pause schedule",
|
|
1353
1423
|
description: "Pause an active schedule.",
|
|
1354
1424
|
inputSchema: {
|
|
@@ -1367,7 +1437,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1367
1437
|
structuredContent: ensureValidJson({ success: true }),
|
|
1368
1438
|
};
|
|
1369
1439
|
});
|
|
1370
|
-
|
|
1440
|
+
registerTool("resume_schedule", {
|
|
1371
1441
|
title: "Resume schedule",
|
|
1372
1442
|
description: "Resume a paused schedule.",
|
|
1373
1443
|
inputSchema: {
|
|
@@ -1386,7 +1456,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1386
1456
|
structuredContent: ensureValidJson({ success: true }),
|
|
1387
1457
|
};
|
|
1388
1458
|
});
|
|
1389
|
-
|
|
1459
|
+
registerTool("delete_schedule", {
|
|
1390
1460
|
title: "Delete schedule",
|
|
1391
1461
|
description: "Delete a schedule permanently.",
|
|
1392
1462
|
inputSchema: {
|
|
@@ -1405,7 +1475,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1405
1475
|
structuredContent: ensureValidJson({ success: true }),
|
|
1406
1476
|
};
|
|
1407
1477
|
});
|
|
1408
|
-
|
|
1478
|
+
registerTool("update_schedule", {
|
|
1409
1479
|
title: "Update schedule",
|
|
1410
1480
|
description: "Update an existing schedule. Only provided fields are changed; omitted fields remain unchanged.",
|
|
1411
1481
|
inputSchema: {
|
|
@@ -1459,7 +1529,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1459
1529
|
structuredContent: ensureValidJson(schedule),
|
|
1460
1530
|
};
|
|
1461
1531
|
});
|
|
1462
|
-
|
|
1532
|
+
registerTool("schedule_logs", {
|
|
1463
1533
|
title: "Schedule logs",
|
|
1464
1534
|
description: "Get the run history (logs) for a schedule.",
|
|
1465
1535
|
inputSchema: {
|
|
@@ -1478,7 +1548,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1478
1548
|
structuredContent: ensureValidJson({ runs }),
|
|
1479
1549
|
};
|
|
1480
1550
|
});
|
|
1481
|
-
|
|
1551
|
+
registerTool("list_providers", {
|
|
1482
1552
|
title: "List providers",
|
|
1483
1553
|
description: "List configured agent providers, availability, and their modes.",
|
|
1484
1554
|
inputSchema: {},
|
|
@@ -1492,7 +1562,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1492
1562
|
structuredContent: ensureValidJson({ providers }),
|
|
1493
1563
|
};
|
|
1494
1564
|
});
|
|
1495
|
-
|
|
1565
|
+
registerTool("list_models", {
|
|
1496
1566
|
title: "List models",
|
|
1497
1567
|
description: "List models for an agent provider.",
|
|
1498
1568
|
inputSchema: {
|
|
@@ -1522,32 +1592,65 @@ export async function createAgentMcpServer(options) {
|
|
|
1522
1592
|
}),
|
|
1523
1593
|
};
|
|
1524
1594
|
});
|
|
1525
|
-
|
|
1526
|
-
title: "
|
|
1527
|
-
description: "
|
|
1528
|
-
inputSchema:
|
|
1595
|
+
registerTool("inspect_provider", {
|
|
1596
|
+
title: "Inspect provider",
|
|
1597
|
+
description: "Inspect compact provider capabilities for orchestration, including modes and draft feature settings. Use list_models for the full model list.",
|
|
1598
|
+
inputSchema: inspectProviderInputSchema,
|
|
1529
1599
|
outputSchema: {
|
|
1530
1600
|
provider: AgentProviderEnum,
|
|
1601
|
+
label: z.string().nullable().optional(),
|
|
1602
|
+
description: z.string().nullable().optional(),
|
|
1603
|
+
enabled: z.boolean(),
|
|
1604
|
+
status: z.string(),
|
|
1605
|
+
modes: z.array(ProviderModeSchema).nullish(),
|
|
1606
|
+
selectedModel: z.string().nullable(),
|
|
1531
1607
|
features: z.array(AgentFeatureSchema),
|
|
1532
1608
|
},
|
|
1533
|
-
}, async ({ provider, cwd,
|
|
1534
|
-
const
|
|
1609
|
+
}, async ({ provider, cwd, settings }) => {
|
|
1610
|
+
const resolvedProviderModel = resolveScheduleProviderAndModel({
|
|
1535
1611
|
provider,
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1612
|
+
defaultProvider: provider,
|
|
1613
|
+
});
|
|
1614
|
+
const providerId = resolvedProviderModel.provider;
|
|
1615
|
+
if (!providerRegistry) {
|
|
1616
|
+
throw new Error("Provider registry is not configured");
|
|
1617
|
+
}
|
|
1618
|
+
const definition = providerRegistry[providerId];
|
|
1619
|
+
if (!definition) {
|
|
1620
|
+
throw new Error(`Provider ${providerId} is not configured`);
|
|
1621
|
+
}
|
|
1622
|
+
const summary = await resolveProviderSummary(definition, childLogger);
|
|
1623
|
+
if (!definition.enabled) {
|
|
1624
|
+
throw new Error(`Provider '${providerId}' is disabled`);
|
|
1625
|
+
}
|
|
1626
|
+
if (summary.status !== "available") {
|
|
1627
|
+
throw new Error(summary.error ?? `Provider '${providerId}' is unavailable`);
|
|
1628
|
+
}
|
|
1629
|
+
const resolvedCwd = resolveScopedCwd(cwd, { required: true });
|
|
1630
|
+
const selectedModel = settings?.model ?? resolvedProviderModel.model;
|
|
1631
|
+
const features = await agentManager.listDraftFeatures({
|
|
1632
|
+
provider: providerId,
|
|
1633
|
+
cwd: resolvedCwd,
|
|
1634
|
+
...(settings?.modeId ? { modeId: settings.modeId } : {}),
|
|
1635
|
+
...(selectedModel ? { model: selectedModel } : {}),
|
|
1636
|
+
...(settings?.thinkingOptionId ? { thinkingOptionId: settings.thinkingOptionId } : {}),
|
|
1637
|
+
...(settings?.features ? { featureValues: settings.features } : {}),
|
|
1541
1638
|
});
|
|
1542
1639
|
return {
|
|
1543
1640
|
content: [],
|
|
1544
1641
|
structuredContent: ensureValidJson({
|
|
1545
|
-
provider,
|
|
1642
|
+
provider: providerId,
|
|
1643
|
+
label: summary.label,
|
|
1644
|
+
description: summary.description,
|
|
1645
|
+
enabled: summary.enabled,
|
|
1646
|
+
status: summary.status,
|
|
1647
|
+
modes: summary.modes,
|
|
1648
|
+
selectedModel: selectedModel ?? null,
|
|
1546
1649
|
features,
|
|
1547
1650
|
}),
|
|
1548
1651
|
};
|
|
1549
1652
|
});
|
|
1550
|
-
|
|
1653
|
+
registerTool("list_worktrees", {
|
|
1551
1654
|
title: "List worktrees",
|
|
1552
1655
|
description: "List Paseo-managed git worktrees for a repository.",
|
|
1553
1656
|
inputSchema: {
|
|
@@ -1572,7 +1675,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1572
1675
|
structuredContent: ensureValidJson({ worktrees }),
|
|
1573
1676
|
};
|
|
1574
1677
|
});
|
|
1575
|
-
|
|
1678
|
+
registerTool("create_worktree", {
|
|
1576
1679
|
title: "Create worktree",
|
|
1577
1680
|
description: "Create a Paseo-managed git worktree. Branch off a new branch, check out an existing branch, or check out a GitHub PR.",
|
|
1578
1681
|
inputSchema: {
|
|
@@ -1630,7 +1733,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1630
1733
|
}),
|
|
1631
1734
|
};
|
|
1632
1735
|
});
|
|
1633
|
-
|
|
1736
|
+
registerTool("archive_worktree", {
|
|
1634
1737
|
title: "Archive worktree",
|
|
1635
1738
|
description: "Delete a Paseo-managed git worktree.",
|
|
1636
1739
|
inputSchema: {
|
|
@@ -1706,7 +1809,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1706
1809
|
structuredContent: ensureValidJson({ success: true }),
|
|
1707
1810
|
};
|
|
1708
1811
|
});
|
|
1709
|
-
|
|
1812
|
+
registerTool("get_agent_activity", {
|
|
1710
1813
|
title: "Get agent activity",
|
|
1711
1814
|
description: "Return recent agent timeline entries as a curated summary.",
|
|
1712
1815
|
inputSchema: {
|
|
@@ -1752,7 +1855,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1752
1855
|
}),
|
|
1753
1856
|
};
|
|
1754
1857
|
});
|
|
1755
|
-
|
|
1858
|
+
registerTool("set_agent_mode", {
|
|
1756
1859
|
title: "Set agent session mode",
|
|
1757
1860
|
description: "Switch the agent's session mode (plan, bypassPermissions, read-only, auto, etc.).",
|
|
1758
1861
|
inputSchema: {
|
|
@@ -1770,7 +1873,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1770
1873
|
structuredContent: ensureValidJson({ success: true, newMode: modeId }),
|
|
1771
1874
|
};
|
|
1772
1875
|
});
|
|
1773
|
-
|
|
1876
|
+
registerTool("list_pending_permissions", {
|
|
1774
1877
|
title: "List pending permissions",
|
|
1775
1878
|
description: "Return all pending permission requests across all agents with the normalized payloads.",
|
|
1776
1879
|
inputSchema: {},
|
|
@@ -1795,7 +1898,7 @@ export async function createAgentMcpServer(options) {
|
|
|
1795
1898
|
structuredContent: ensureValidJson({ permissions }),
|
|
1796
1899
|
};
|
|
1797
1900
|
});
|
|
1798
|
-
|
|
1901
|
+
registerTool("respond_to_permission", {
|
|
1799
1902
|
title: "Respond to permission",
|
|
1800
1903
|
description: "Approve or deny a pending permission request with an AgentManager-compatible response payload.",
|
|
1801
1904
|
inputSchema: {
|