acpx 0.6.0 → 0.7.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 +1 -0
- package/dist/{cli-rGyZlX2p.js → cli-T-Z-9x6a.js} +4 -4
- package/dist/{cli-rGyZlX2p.js.map → cli-T-Z-9x6a.js.map} +1 -1
- package/dist/cli.js +64 -68
- package/dist/cli.js.map +1 -1
- package/dist/{client-2fTFutRH.d.ts → client-COPilhO_.d.ts} +4 -2
- package/dist/client-COPilhO_.d.ts.map +1 -0
- package/dist/{flags-DG-3Vfgg.js → flags-Dj-IXgo9.js} +5 -5
- package/dist/flags-Dj-IXgo9.js.map +1 -0
- package/dist/{flows-gbxyIf6o.js → flows-CF8w1rPI.js} +113 -10
- package/dist/flows-CF8w1rPI.js.map +1 -0
- package/dist/flows.d.ts +16 -1
- package/dist/flows.d.ts.map +1 -1
- package/dist/flows.js +2 -2
- package/dist/{ipc-CkAW8Qvc.js → ipc-ABXlXzGP.js} +53 -15
- package/dist/ipc-ABXlXzGP.js.map +1 -0
- package/dist/{perf-metrics-DvT_gvUh.js → perf-metrics-C2pXfxvR.js} +2 -2
- package/dist/perf-metrics-C2pXfxvR.js.map +1 -0
- package/dist/{prompt-turn-BOoZaDEq.js → prompt-turn-CVPMWdj1.js} +72 -49
- package/dist/prompt-turn-CVPMWdj1.js.map +1 -0
- package/dist/{render-CyodRDtK.js → render-N5YwotCy.js} +3 -3
- package/dist/{render-CyodRDtK.js.map → render-N5YwotCy.js.map} +1 -1
- package/dist/runtime.d.ts +5 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +20 -12
- package/dist/runtime.js.map +1 -1
- package/dist/{session-DcIse8N0.js → session-CDaQe6BH.js} +77 -78
- package/dist/session-CDaQe6BH.js.map +1 -0
- package/package.json +11 -11
- package/skills/acpx/SKILL.md +3 -2
- package/dist/client-2fTFutRH.d.ts.map +0 -1
- package/dist/flags-DG-3Vfgg.js.map +0 -1
- package/dist/flows-gbxyIf6o.js.map +0 -1
- package/dist/ipc-CkAW8Qvc.js.map +0 -1
- package/dist/perf-metrics-DvT_gvUh.js.map +0 -1
- package/dist/prompt-turn-BOoZaDEq.js.map +0 -1
- package/dist/session-DcIse8N0.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
-
import { u as normalizeRuntimeSessionId } from "./perf-metrics-
|
|
3
|
-
import {
|
|
2
|
+
import { u as normalizeRuntimeSessionId } from "./perf-metrics-C2pXfxvR.js";
|
|
3
|
+
import { c as probeQueueOwnerHealth } from "./ipc-ABXlXzGP.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
//#region src/cli/output/json-output.ts
|
|
6
6
|
function emitJsonResult(format, payload) {
|
|
@@ -169,4 +169,4 @@ function agentSessionIdPayload(agentSessionId) {
|
|
|
169
169
|
//#endregion
|
|
170
170
|
export { emitJsonResult as i, formatPromptSessionBannerLine as n, render_exports as r, agentSessionIdPayload as t };
|
|
171
171
|
|
|
172
|
-
//# sourceMappingURL=render-
|
|
172
|
+
//# sourceMappingURL=render-N5YwotCy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-CyodRDtK.js","names":[],"sources":["../src/cli/output/json-output.ts","../src/cli/output/render.ts"],"sourcesContent":["import type { OutputFormat } from \"../../types.js\";\n\nexport function emitJsonResult(format: OutputFormat, payload: unknown): boolean {\n if (format !== \"json\") {\n return false;\n }\n process.stdout.write(`${JSON.stringify(payload)}\\n`);\n return true;\n}\n","import path from \"node:path\";\nimport { normalizeRuntimeSessionId } from \"../../session/runtime-session-id.js\";\nimport type { OutputFormat, SessionRecord } from \"../../types.js\";\nimport { probeQueueOwnerHealth } from \"../queue/ipc.js\";\nimport { emitJsonResult } from \"./json-output.js\";\n\nfunction formatSessionLabel(record: SessionRecord): string {\n return record.name ?? \"cwd\";\n}\n\nfunction formatRoutedFrom(sessionCwd: string, currentCwd: string): string | undefined {\n const relative = path.relative(sessionCwd, currentCwd);\n if (!relative || relative === \".\") {\n return undefined;\n }\n return relative.startsWith(\".\") ? relative : `.${path.sep}${relative}`;\n}\n\ntype SessionConnectionStatus = \"connected\" | \"needs reconnect\";\n\nasync function resolveSessionConnectionStatus(\n record: SessionRecord,\n): Promise<SessionConnectionStatus> {\n const health = await probeQueueOwnerHealth(record.acpxRecordId);\n return health.healthy ? \"connected\" : \"needs reconnect\";\n}\n\nexport function printSessionsByFormat(sessions: SessionRecord[], format: OutputFormat): void {\n if (format === \"json\") {\n process.stdout.write(`${JSON.stringify(sessions)}\\n`);\n return;\n }\n\n if (format === \"quiet\") {\n for (const session of sessions) {\n const closedMarker = session.closed ? \" [closed]\" : \"\";\n process.stdout.write(`${session.acpxRecordId}${closedMarker}\\n`);\n }\n return;\n }\n\n if (sessions.length === 0) {\n process.stdout.write(\"No sessions\\n\");\n return;\n }\n\n for (const session of sessions) {\n const closedMarker = session.closed ? \" [closed]\" : \"\";\n process.stdout.write(\n `${session.acpxRecordId}${closedMarker}\\t${session.name ?? \"-\"}\\t${session.cwd}\\t${session.lastUsedAt}\\n`,\n );\n }\n}\n\nexport function printClosedSessionByFormat(record: SessionRecord, format: OutputFormat): void {\n if (\n emitJsonResult(format, {\n action: \"session_closed\",\n acpxRecordId: record.acpxRecordId,\n acpxSessionId: record.acpSessionId,\n agentSessionId: record.agentSessionId,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n return;\n }\n\n process.stdout.write(`${record.acpxRecordId}\\n`);\n}\n\nexport function printNewSessionByFormat(\n record: SessionRecord,\n replaced: SessionRecord | undefined,\n format: OutputFormat,\n): void {\n if (\n emitJsonResult(format, {\n action: \"session_ensured\",\n created: true,\n acpxRecordId: record.acpxRecordId,\n acpxSessionId: record.acpSessionId,\n agentSessionId: record.agentSessionId,\n name: record.name,\n replacedSessionId: replaced?.acpxRecordId,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n process.stdout.write(`${record.acpxRecordId}\\n`);\n return;\n }\n\n if (replaced) {\n process.stdout.write(`${record.acpxRecordId}\\t(replaced ${replaced.acpxRecordId})\\n`);\n return;\n }\n\n process.stdout.write(`${record.acpxRecordId}\\n`);\n}\n\nexport function printEnsuredSessionByFormat(\n record: SessionRecord,\n created: boolean,\n format: OutputFormat,\n): void {\n if (\n emitJsonResult(format, {\n action: \"session_ensured\",\n created,\n acpxRecordId: record.acpxRecordId,\n acpxSessionId: record.acpSessionId,\n agentSessionId: record.agentSessionId,\n name: record.name,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n process.stdout.write(`${record.acpxRecordId}\\n`);\n return;\n }\n\n const action = created ? \"created\" : \"existing\";\n process.stdout.write(`${record.acpxRecordId}\\t(${action})\\n`);\n}\n\nexport function printQueuedPromptByFormat(\n result: {\n sessionId: string;\n requestId: string;\n },\n format: OutputFormat,\n): void {\n if (\n emitJsonResult(format, {\n action: \"prompt_queued\",\n acpxRecordId: result.sessionId,\n requestId: result.requestId,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n return;\n }\n\n process.stdout.write(`[queued] ${result.requestId}\\n`);\n}\n\nexport function formatPromptSessionBannerLine(\n record: SessionRecord,\n currentCwd: string,\n connectionStatus: SessionConnectionStatus = \"needs reconnect\",\n): string {\n const label = formatSessionLabel(record);\n const normalizedSessionCwd = path.resolve(record.cwd);\n const normalizedCurrentCwd = path.resolve(currentCwd);\n const routedFrom =\n normalizedSessionCwd === normalizedCurrentCwd\n ? undefined\n : formatRoutedFrom(normalizedSessionCwd, normalizedCurrentCwd);\n const status = connectionStatus;\n\n if (routedFrom) {\n return `[acpx] session ${label} (${record.acpxRecordId}) · ${normalizedSessionCwd} (routed from ${routedFrom}) · agent ${status}`;\n }\n\n return `[acpx] session ${label} (${record.acpxRecordId}) · ${normalizedSessionCwd} · agent ${status}`;\n}\n\nexport async function printPromptSessionBanner(\n record: SessionRecord,\n currentCwd: string,\n format: OutputFormat,\n jsonStrict = false,\n): Promise<void> {\n if (format === \"quiet\" || (jsonStrict && format === \"json\")) {\n return;\n }\n\n const status = await resolveSessionConnectionStatus(record);\n process.stderr.write(`${formatPromptSessionBannerLine(record, currentCwd, status)}\\n`);\n}\n\nexport function printCreatedSessionBanner(\n record: SessionRecord,\n agentName: string,\n format: OutputFormat,\n jsonStrict = false,\n): void {\n if (format === \"quiet\" || (jsonStrict && format === \"json\")) {\n return;\n }\n\n const label = formatSessionLabel(record);\n process.stderr.write(`[acpx] created session ${label} (${record.acpxRecordId})\\n`);\n process.stderr.write(`[acpx] agent: ${agentName}\\n`);\n process.stderr.write(`[acpx] cwd: ${record.cwd}\\n`);\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes >= 1_073_741_824) {\n return `${(bytes / 1_073_741_824).toFixed(1)} GB`;\n }\n if (bytes >= 1_048_576) {\n return `${(bytes / 1_048_576).toFixed(1)} MB`;\n }\n if (bytes >= 1024) {\n return `${(bytes / 1024).toFixed(1)} KB`;\n }\n return `${bytes} B`;\n}\n\nexport function printPruneResultByFormat(\n result: { pruned: SessionRecord[]; bytesFreed: number; dryRun: boolean },\n format: OutputFormat,\n): void {\n const count = result.pruned.length;\n\n if (\n emitJsonResult(format, {\n action: result.dryRun ? \"sessions_prune_dry_run\" : \"sessions_pruned\",\n dryRun: result.dryRun,\n count,\n bytesFreed: result.bytesFreed,\n pruned: result.pruned.map((r) => r.acpxRecordId),\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n for (const record of result.pruned) {\n process.stdout.write(`${record.acpxRecordId}\\n`);\n }\n return;\n }\n\n if (count === 0) {\n process.stdout.write(\n result.dryRun ? \"[DRY RUN] No sessions to prune\\n\" : \"No sessions pruned\\n\",\n );\n return;\n }\n\n const prefix = result.dryRun ? \"[DRY RUN] Would prune\" : \"Pruned\";\n const bytesSuffix =\n !result.dryRun && result.bytesFreed > 0 ? `, freed ${formatBytes(result.bytesFreed)}` : \"\";\n process.stdout.write(`${prefix} ${count} session${count === 1 ? \"\" : \"s\"}${bytesSuffix}\\n`);\n\n for (const record of result.pruned) {\n const label = record.name ? ` (${record.name})` : \"\";\n process.stdout.write(\n ` ${record.acpxRecordId}${label}\\t${record.closedAt ?? record.lastUsedAt}\\n`,\n );\n }\n}\n\nexport function agentSessionIdPayload(agentSessionId: string | undefined): {\n agentSessionId?: string;\n} {\n const normalized = normalizeRuntimeSessionId(agentSessionId);\n if (!normalized) {\n return {};\n }\n\n return { agentSessionId: normalized };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-N5YwotCy.js","names":[],"sources":["../src/cli/output/json-output.ts","../src/cli/output/render.ts"],"sourcesContent":["import type { OutputFormat } from \"../../types.js\";\n\nexport function emitJsonResult(format: OutputFormat, payload: unknown): boolean {\n if (format !== \"json\") {\n return false;\n }\n process.stdout.write(`${JSON.stringify(payload)}\\n`);\n return true;\n}\n","import path from \"node:path\";\nimport { normalizeRuntimeSessionId } from \"../../session/runtime-session-id.js\";\nimport type { OutputFormat, SessionRecord } from \"../../types.js\";\nimport { probeQueueOwnerHealth } from \"../queue/ipc.js\";\nimport { emitJsonResult } from \"./json-output.js\";\n\nfunction formatSessionLabel(record: SessionRecord): string {\n return record.name ?? \"cwd\";\n}\n\nfunction formatRoutedFrom(sessionCwd: string, currentCwd: string): string | undefined {\n const relative = path.relative(sessionCwd, currentCwd);\n if (!relative || relative === \".\") {\n return undefined;\n }\n return relative.startsWith(\".\") ? relative : `.${path.sep}${relative}`;\n}\n\ntype SessionConnectionStatus = \"connected\" | \"needs reconnect\";\n\nasync function resolveSessionConnectionStatus(\n record: SessionRecord,\n): Promise<SessionConnectionStatus> {\n const health = await probeQueueOwnerHealth(record.acpxRecordId);\n return health.healthy ? \"connected\" : \"needs reconnect\";\n}\n\nexport function printSessionsByFormat(sessions: SessionRecord[], format: OutputFormat): void {\n if (format === \"json\") {\n process.stdout.write(`${JSON.stringify(sessions)}\\n`);\n return;\n }\n\n if (format === \"quiet\") {\n for (const session of sessions) {\n const closedMarker = session.closed ? \" [closed]\" : \"\";\n process.stdout.write(`${session.acpxRecordId}${closedMarker}\\n`);\n }\n return;\n }\n\n if (sessions.length === 0) {\n process.stdout.write(\"No sessions\\n\");\n return;\n }\n\n for (const session of sessions) {\n const closedMarker = session.closed ? \" [closed]\" : \"\";\n process.stdout.write(\n `${session.acpxRecordId}${closedMarker}\\t${session.name ?? \"-\"}\\t${session.cwd}\\t${session.lastUsedAt}\\n`,\n );\n }\n}\n\nexport function printClosedSessionByFormat(record: SessionRecord, format: OutputFormat): void {\n if (\n emitJsonResult(format, {\n action: \"session_closed\",\n acpxRecordId: record.acpxRecordId,\n acpxSessionId: record.acpSessionId,\n agentSessionId: record.agentSessionId,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n return;\n }\n\n process.stdout.write(`${record.acpxRecordId}\\n`);\n}\n\nexport function printNewSessionByFormat(\n record: SessionRecord,\n replaced: SessionRecord | undefined,\n format: OutputFormat,\n): void {\n if (\n emitJsonResult(format, {\n action: \"session_ensured\",\n created: true,\n acpxRecordId: record.acpxRecordId,\n acpxSessionId: record.acpSessionId,\n agentSessionId: record.agentSessionId,\n name: record.name,\n replacedSessionId: replaced?.acpxRecordId,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n process.stdout.write(`${record.acpxRecordId}\\n`);\n return;\n }\n\n if (replaced) {\n process.stdout.write(`${record.acpxRecordId}\\t(replaced ${replaced.acpxRecordId})\\n`);\n return;\n }\n\n process.stdout.write(`${record.acpxRecordId}\\n`);\n}\n\nexport function printEnsuredSessionByFormat(\n record: SessionRecord,\n created: boolean,\n format: OutputFormat,\n): void {\n if (\n emitJsonResult(format, {\n action: \"session_ensured\",\n created,\n acpxRecordId: record.acpxRecordId,\n acpxSessionId: record.acpSessionId,\n agentSessionId: record.agentSessionId,\n name: record.name,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n process.stdout.write(`${record.acpxRecordId}\\n`);\n return;\n }\n\n const action = created ? \"created\" : \"existing\";\n process.stdout.write(`${record.acpxRecordId}\\t(${action})\\n`);\n}\n\nexport function printQueuedPromptByFormat(\n result: {\n sessionId: string;\n requestId: string;\n },\n format: OutputFormat,\n): void {\n if (\n emitJsonResult(format, {\n action: \"prompt_queued\",\n acpxRecordId: result.sessionId,\n requestId: result.requestId,\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n return;\n }\n\n process.stdout.write(`[queued] ${result.requestId}\\n`);\n}\n\nexport function formatPromptSessionBannerLine(\n record: SessionRecord,\n currentCwd: string,\n connectionStatus: SessionConnectionStatus = \"needs reconnect\",\n): string {\n const label = formatSessionLabel(record);\n const normalizedSessionCwd = path.resolve(record.cwd);\n const normalizedCurrentCwd = path.resolve(currentCwd);\n const routedFrom =\n normalizedSessionCwd === normalizedCurrentCwd\n ? undefined\n : formatRoutedFrom(normalizedSessionCwd, normalizedCurrentCwd);\n const status = connectionStatus;\n\n if (routedFrom) {\n return `[acpx] session ${label} (${record.acpxRecordId}) · ${normalizedSessionCwd} (routed from ${routedFrom}) · agent ${status}`;\n }\n\n return `[acpx] session ${label} (${record.acpxRecordId}) · ${normalizedSessionCwd} · agent ${status}`;\n}\n\nexport async function printPromptSessionBanner(\n record: SessionRecord,\n currentCwd: string,\n format: OutputFormat,\n jsonStrict = false,\n): Promise<void> {\n if (format === \"quiet\" || (jsonStrict && format === \"json\")) {\n return;\n }\n\n const status = await resolveSessionConnectionStatus(record);\n process.stderr.write(`${formatPromptSessionBannerLine(record, currentCwd, status)}\\n`);\n}\n\nexport function printCreatedSessionBanner(\n record: SessionRecord,\n agentName: string,\n format: OutputFormat,\n jsonStrict = false,\n): void {\n if (format === \"quiet\" || (jsonStrict && format === \"json\")) {\n return;\n }\n\n const label = formatSessionLabel(record);\n process.stderr.write(`[acpx] created session ${label} (${record.acpxRecordId})\\n`);\n process.stderr.write(`[acpx] agent: ${agentName}\\n`);\n process.stderr.write(`[acpx] cwd: ${record.cwd}\\n`);\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes >= 1_073_741_824) {\n return `${(bytes / 1_073_741_824).toFixed(1)} GB`;\n }\n if (bytes >= 1_048_576) {\n return `${(bytes / 1_048_576).toFixed(1)} MB`;\n }\n if (bytes >= 1024) {\n return `${(bytes / 1024).toFixed(1)} KB`;\n }\n return `${bytes} B`;\n}\n\nexport function printPruneResultByFormat(\n result: { pruned: SessionRecord[]; bytesFreed: number; dryRun: boolean },\n format: OutputFormat,\n): void {\n const count = result.pruned.length;\n\n if (\n emitJsonResult(format, {\n action: result.dryRun ? \"sessions_prune_dry_run\" : \"sessions_pruned\",\n dryRun: result.dryRun,\n count,\n bytesFreed: result.bytesFreed,\n pruned: result.pruned.map((r) => r.acpxRecordId),\n })\n ) {\n return;\n }\n\n if (format === \"quiet\") {\n for (const record of result.pruned) {\n process.stdout.write(`${record.acpxRecordId}\\n`);\n }\n return;\n }\n\n if (count === 0) {\n process.stdout.write(\n result.dryRun ? \"[DRY RUN] No sessions to prune\\n\" : \"No sessions pruned\\n\",\n );\n return;\n }\n\n const prefix = result.dryRun ? \"[DRY RUN] Would prune\" : \"Pruned\";\n const bytesSuffix =\n !result.dryRun && result.bytesFreed > 0 ? `, freed ${formatBytes(result.bytesFreed)}` : \"\";\n process.stdout.write(`${prefix} ${count} session${count === 1 ? \"\" : \"s\"}${bytesSuffix}\\n`);\n\n for (const record of result.pruned) {\n const label = record.name ? ` (${record.name})` : \"\";\n process.stdout.write(\n ` ${record.acpxRecordId}${label}\\t${record.closedAt ?? record.lastUsedAt}\\n`,\n );\n }\n}\n\nexport function agentSessionIdPayload(agentSessionId: string | undefined): {\n agentSessionId?: string;\n} {\n const normalized = normalizeRuntimeSessionId(agentSessionId);\n if (!normalized) {\n return {};\n }\n\n return { agentSessionId: normalized };\n}\n"],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as PermissionMode, i as NonInteractivePermissionPolicy, r as McpServer, s as SessionRecord } from "./types-CVBeQyi3.js";
|
|
2
|
-
import { t as AcpClient } from "./client-
|
|
2
|
+
import { t as AcpClient } from "./client-COPilhO_.js";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
|
|
5
5
|
//#region src/agent-registry.d.ts
|
|
@@ -92,11 +92,13 @@ type AcpRuntimeEvent = {
|
|
|
92
92
|
type: "error";
|
|
93
93
|
message: string;
|
|
94
94
|
code?: string;
|
|
95
|
+
detailCode?: string;
|
|
95
96
|
retryable?: boolean;
|
|
96
97
|
};
|
|
97
98
|
type AcpRuntimeTurnResultError = {
|
|
98
99
|
message: string;
|
|
99
100
|
code?: string;
|
|
101
|
+
detailCode?: string;
|
|
100
102
|
retryable?: boolean;
|
|
101
103
|
};
|
|
102
104
|
type AcpRuntimeTurnResult = {
|
|
@@ -307,9 +309,9 @@ declare class AcpxRuntime implements AcpxRuntimeLike {
|
|
|
307
309
|
}): Promise<void>;
|
|
308
310
|
};
|
|
309
311
|
runTurn(input: AcpRuntimeTurnInput): AsyncIterable<AcpRuntimeEvent>;
|
|
310
|
-
getCapabilities(
|
|
312
|
+
getCapabilities(input?: {
|
|
311
313
|
handle?: AcpRuntimeHandle;
|
|
312
|
-
}): AcpRuntimeCapabilities
|
|
314
|
+
}): Promise<AcpRuntimeCapabilities>;
|
|
313
315
|
getStatus(input: {
|
|
314
316
|
handle: AcpRuntimeHandle;
|
|
315
317
|
signal?: AbortSignal;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","names":[],"sources":["../src/agent-registry.ts","../src/runtime/public/contract.ts","../src/runtime/engine/manager.ts","../src/runtime/public/file-session-store.ts","../src/runtime/public/errors.ts","../src/runtime/public/shared.ts","../src/runtime/public/handle-state.ts","../src/runtime.ts"],"mappings":";;;;;cAgFa,kBAAA;;;KCzED,oBAAA;AAAA,KAEA,qBAAA;AAAA,KAEA,mBAAA;AAAA,KAaA,iBAAA;AAAA,KAEA,gBAAA;EACV,UAAA;EACA,OAAA;EACA,kBAAA;EACA,GAAA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;AAAA;AAAA,KAGU,qBAAA;EACV,UAAA;EACA,KAAA;EACA,IAAA,EAAM,qBAAA;EACN,eAAA;EACA,GAAA;AAAA;AAAA,KAGU,wBAAA;EACV,SAAA;EACA,IAAA;AAAA;AAAA,KAGU,mBAAA;EACV,MAAA,EAAQ,gBAAA;EACR,IAAA;EACA,WAAA,GAAc,wBAAA;EACd,IAAA,EAAM,oBAAA;EACN,SAAA;EACA,SAAA;EACA,MAAA,GAAS,WAAA;AAAA;AAAA,KAGC,sBAAA;EACV,QAAA,EAAU,iBAAA;EACV,gBAAA;AAAA;AAAA,KAGU,gBAAA;EACV,OAAA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;EACA,OAAA,GAAU,MAAA;AAAA;AAAA,KAGA,sBAAA;EACV,EAAA;EACA,IAAA;EACA,OAAA;EACA,cAAA;EACA,OAAA;AAAA;AAAA,KAGU,eAAA;EAEN,IAAA;EACA,IAAA;EACA,MAAA;EACA,GAAA,GAAM,mBAAA;AAAA;EAGN,IAAA;EACA,IAAA;EACA,GAAA,GAAM,mBAAA;EACN,IAAA;EACA,IAAA;AAAA;EAGA,IAAA;EACA,IAAA;EACA,GAAA,GAAM,mBAAA;EACN,UAAA;EACA,MAAA;EACA,KAAA;AAAA;;;;;;EAOA,IAAA;EACA,UAAA;AAAA;;;;;;EAOA,IAAA;EACA,OAAA;EACA,IAAA;EACA,SAAA;AAAA;AAAA,KAGM,yBAAA;EACV,OAAA;EACA,IAAA;EACA,SAAA;AAAA;AAAA,KAGU,oBAAA;EAEN,MAAA;EACA,UAAA;AAAA;EAGA,MAAA;EACA,UAAA;AAAA;EAGA,MAAA;EACA,KAAA,EAAO,yBAAA;AAAA;AAAA,UAGI,cAAA;EAAA,SACN,SAAA;EAAA,SACA,MAAA,EAAQ,aAAA,CAAc,eAAA;EAAA,SACtB,MAAA,EAAQ,OAAA,CAAQ,oBAAA;EACzB,MAAA,CAAO,KAAA;IAAU,MAAA;EAAA,IAAoB,OAAA;EACrC,WAAA,CAAY,KAAA;IAAU,MAAA;EAAA,IAAoB,OAAA;AAAA;AAAA,UAG3B,UAAA;EACf,aAAA,CAAc,KAAA,EAAO,qBAAA,GAAwB,OAAA,CAAQ,gBAAA;EACrD,SAAA,CAAU,KAAA,EAAO,mBAAA,GAAsB,cAAA;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","names":[],"sources":["../src/agent-registry.ts","../src/runtime/public/contract.ts","../src/runtime/engine/manager.ts","../src/runtime/public/file-session-store.ts","../src/runtime/public/errors.ts","../src/runtime/public/shared.ts","../src/runtime/public/handle-state.ts","../src/runtime.ts"],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as isAcpResourceNotFoundError, S as extractAcpError, g as textPrompt, x as normalizeOutputError } from "./perf-metrics-
|
|
2
|
-
import {
|
|
1
|
+
import { C as isAcpResourceNotFoundError, S as extractAcpError, g as textPrompt, x as normalizeOutputError } from "./perf-metrics-C2pXfxvR.js";
|
|
2
|
+
import { $ as resolveAgentCommand, C as AcpClient, G as serializeSessionRecordForDisk, L as parseSessionRecord, S as trimConversationForRuntime, W as assertPersistedKeyPolicy, X as DEFAULT_AGENT_NAME, Y as withTimeout, Z as listBuiltInAgents, _ as cloneSessionConversation, a as connectAndLoadSession, b as recordPromptSubmission, c as reconcileAgentSessionId, d as setDesiredConfigOption, f as setDesiredModeId, g as cloneSessionAcpxState, h as applyConfigOptionsToRecord, n as withConnectedSession, o as applyConversation, s as applyLifecycleSnapshotToRecord, t as runPromptTurn, v as createSessionConversation, x as recordSessionUpdate, y as recordClientOperation, z as defaultSessionEventLog } from "./prompt-turn-CVPMWdj1.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import { randomUUID } from "node:crypto";
|
|
@@ -302,12 +302,6 @@ function createDeferred() {
|
|
|
302
302
|
reject
|
|
303
303
|
};
|
|
304
304
|
}
|
|
305
|
-
function applyConfigOptionsToRecord(record, configOptions) {
|
|
306
|
-
if (!configOptions) return;
|
|
307
|
-
const acpxState = cloneSessionAcpxState(record.acpx) ?? {};
|
|
308
|
-
acpxState.config_options = structuredClone(configOptions);
|
|
309
|
-
record.acpx = acpxState;
|
|
310
|
-
}
|
|
311
305
|
var AsyncEventQueue = class {
|
|
312
306
|
items = [];
|
|
313
307
|
waits = [];
|
|
@@ -404,6 +398,7 @@ function legacyTerminalEventFromTurnResult(result) {
|
|
|
404
398
|
type: "error",
|
|
405
399
|
message: result.error.message,
|
|
406
400
|
...result.error.code ? { code: result.error.code } : {},
|
|
401
|
+
...result.error.detailCode ? { detailCode: result.error.detailCode } : {},
|
|
407
402
|
...result.error.retryable === void 0 ? {} : { retryable: result.error.retryable }
|
|
408
403
|
};
|
|
409
404
|
return {
|
|
@@ -532,14 +527,17 @@ var AcpRuntimeManager = class {
|
|
|
532
527
|
await client.start();
|
|
533
528
|
let sessionId;
|
|
534
529
|
let agentSessionId;
|
|
530
|
+
let sessionResult;
|
|
535
531
|
if (input.resumeSessionId) {
|
|
536
532
|
const loaded = await client.loadSession(input.resumeSessionId, cwd);
|
|
537
533
|
sessionId = input.resumeSessionId;
|
|
538
534
|
agentSessionId = loaded.agentSessionId;
|
|
535
|
+
sessionResult = loaded;
|
|
539
536
|
} else {
|
|
540
537
|
const created = await client.createSession(cwd);
|
|
541
538
|
sessionId = created.sessionId;
|
|
542
539
|
agentSessionId = created.agentSessionId;
|
|
540
|
+
sessionResult = created;
|
|
543
541
|
}
|
|
544
542
|
const record = createInitialRecord({
|
|
545
543
|
recordId: createRecordId(input.sessionKey, input.mode),
|
|
@@ -552,6 +550,7 @@ var AcpRuntimeManager = class {
|
|
|
552
550
|
this.closingActiveRecords.delete(record.acpxRecordId);
|
|
553
551
|
record.protocolVersion = client.initializeResult?.protocolVersion;
|
|
554
552
|
record.agentCapabilities = client.initializeResult?.agentCapabilities;
|
|
553
|
+
applyConfigOptionsToRecord(record, sessionResult);
|
|
555
554
|
applyLifecycleSnapshotToRecord(record, client.getAgentLifecycleSnapshot());
|
|
556
555
|
await this.options.sessionStore.save(record);
|
|
557
556
|
if (input.mode === "persistent") {
|
|
@@ -785,6 +784,7 @@ var AcpRuntimeManager = class {
|
|
|
785
784
|
error: {
|
|
786
785
|
message: normalized.message,
|
|
787
786
|
...normalized.code ? { code: normalized.code } : {},
|
|
787
|
+
...normalized.detailCode ? { detailCode: normalized.detailCode } : {},
|
|
788
788
|
...normalized.retryable !== void 0 ? { retryable: normalized.retryable } : {}
|
|
789
789
|
}
|
|
790
790
|
});
|
|
@@ -862,9 +862,9 @@ var AcpRuntimeManager = class {
|
|
|
862
862
|
let targetRecord = record;
|
|
863
863
|
if (controller) {
|
|
864
864
|
const response = await controller.setSessionConfigOption(key, value);
|
|
865
|
-
applyConfigOptionsToRecord(targetRecord, response
|
|
865
|
+
applyConfigOptionsToRecord(targetRecord, response);
|
|
866
866
|
} else targetRecord = (await this.withRuntimeControlSession(record, sessionMode, async ({ client, sessionId, record: connectedRecord }) => {
|
|
867
|
-
applyConfigOptionsToRecord(connectedRecord,
|
|
867
|
+
applyConfigOptionsToRecord(connectedRecord, await client.setSessionConfigOption(sessionId, key, value));
|
|
868
868
|
if (key === "mode") setDesiredModeId(connectedRecord, value);
|
|
869
869
|
else setDesiredConfigOption(connectedRecord, key, value);
|
|
870
870
|
})).record;
|
|
@@ -1182,8 +1182,16 @@ var AcpxRuntime = class {
|
|
|
1182
1182
|
signal: input.signal
|
|
1183
1183
|
});
|
|
1184
1184
|
}
|
|
1185
|
-
getCapabilities(
|
|
1186
|
-
return ACPX_CAPABILITIES;
|
|
1185
|
+
async getCapabilities(input) {
|
|
1186
|
+
if (!input?.handle) return ACPX_CAPABILITIES;
|
|
1187
|
+
const { handle } = this.resolveManagerHandle(input.handle);
|
|
1188
|
+
const record = await this.options.sessionStore.load(handle.acpxRecordId ?? handle.sessionKey);
|
|
1189
|
+
if (!record?.acpx?.config_options) return ACPX_CAPABILITIES;
|
|
1190
|
+
const configOptionKeys = Array.from(new Set(record.acpx.config_options.map((option) => option.id).filter((id) => typeof id === "string" && id.trim().length > 0)));
|
|
1191
|
+
return {
|
|
1192
|
+
...ACPX_CAPABILITIES,
|
|
1193
|
+
...configOptionKeys.length > 0 ? { configOptionKeys } : {}
|
|
1194
|
+
};
|
|
1187
1195
|
}
|
|
1188
1196
|
async getStatus(input) {
|
|
1189
1197
|
const { handle } = this.resolveManagerHandle(input.handle);
|