acpx 0.18.0 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-registry-DdKB-zia.js → agent-registry-DWlx5BQ4.js} +5 -3
- package/dist/agent-registry-DWlx5BQ4.js.map +1 -0
- package/dist/agent-registry.js +1 -1
- package/dist/{cli-8mVHeUXh.js → cli-BerngYEz.js} +5 -5
- package/dist/{cli-8mVHeUXh.js.map → cli-BerngYEz.js.map} +1 -1
- package/dist/cli.js +77 -53
- package/dist/cli.js.map +1 -1
- package/dist/{client-DeNKZZcu.d.ts → client-BchvQRpz.d.ts} +17 -4
- package/dist/client-BchvQRpz.d.ts.map +1 -0
- package/dist/{flows-WOQNzCMC.js → flows-DimX0it5.js} +693 -475
- package/dist/flows-DimX0it5.js.map +1 -0
- package/dist/flows.d.ts +20 -7
- package/dist/flows.d.ts.map +1 -1
- package/dist/flows.js +1 -1
- package/dist/{invocation-options-B6d7TI-y.js → invocation-options-vobVApfO.js} +32 -11
- package/dist/invocation-options-vobVApfO.js.map +1 -0
- package/dist/{ipc-BJrvfNXr.js → ipc-DAApJ5mi.js} +1041 -263
- package/dist/ipc-DAApJ5mi.js.map +1 -0
- package/dist/{output-CL18YmsG.js → output-Cnuji8Bo.js} +41 -20
- package/dist/output-Cnuji8Bo.js.map +1 -0
- package/dist/{queue-owner-runtime-Cr0dWJuL.js → queue-owner-runtime-C4OOosbo.js} +732 -507
- package/dist/queue-owner-runtime-C4OOosbo.js.map +1 -0
- package/dist/runtime.d.ts +19 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +48 -29
- package/dist/runtime.js.map +1 -1
- package/dist/session-options-Dp6mzNSy.d.ts.map +1 -1
- package/dist/{session-watch-B8Q_TsGf.js → session-watch-Bj9LoYUq.js} +5 -5
- package/dist/session-watch-Bj9LoYUq.js.map +1 -0
- package/dist/{watch-Dp73ph8h.js → watch-Cz6jbrRs.js} +2 -2
- package/dist/{watch-Dp73ph8h.js.map → watch-Cz6jbrRs.js.map} +1 -1
- package/package.json +1 -1
- package/skills/acpx/SKILL.md +45 -23
- package/dist/agent-registry-DdKB-zia.js.map +0 -1
- package/dist/client-DeNKZZcu.d.ts.map +0 -1
- package/dist/flows-WOQNzCMC.js.map +0 -1
- package/dist/invocation-options-B6d7TI-y.js.map +0 -1
- package/dist/ipc-BJrvfNXr.js.map +0 -1
- package/dist/output-CL18YmsG.js.map +0 -1
- package/dist/queue-owner-runtime-Cr0dWJuL.js.map +0 -1
- package/dist/session-watch-B8Q_TsGf.js.map +0 -1
package/dist/runtime.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AcpAgentInspection, AcpAgentInspectionOptions, AcpAgentRegistry, AcpInspectableAgentRegistry, DEFAULT_AGENT_NAME, createAgentRegistry } from "./agent-registry.js";
|
|
2
2
|
import { C as PermissionPolicy, E as PromptInput, S as PermissionMode, T as SessionRecord, _ as AcpProcessSpawnFailure, a as AcpElicitationHandler, b as McpServer$1, c as AcpElicitationResponse, d as AcpPermissionHandler, f as AcpPermissionRequest, g as AcpProcessLifecycle, h as AcpProcessLaunchScope, i as AcpElicitationContext, l as AcpJsonRpcMessage, m as AcpProcessLaunch, n as SystemPromptOption, o as AcpElicitationMode, p as AcpProcessExit, s as AcpElicitationRequest, t as SessionAgentOptions, u as AcpPermissionDecision, v as AcpProcessStarted, x as NonInteractivePermissionPolicy, y as AuthPolicy } from "./session-options-Dp6mzNSy.js";
|
|
3
|
-
import { a as RequestedModelUnsupportedErrorCode, c as AcpControlAuthority, i as RequestedModelUnsupportedError, n as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, o as RequestedModelUnsupportedReason, r as REQUESTED_MODEL_UNSUPPORTED_REASONS, s as isRequestedModelUnsupportedError, t as AcpClient } from "./client-
|
|
3
|
+
import { a as RequestedModelUnsupportedErrorCode, c as AcpControlAuthority, i as RequestedModelUnsupportedError, n as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, o as RequestedModelUnsupportedReason, r as REQUESTED_MODEL_UNSUPPORTED_REASONS, s as isRequestedModelUnsupportedError, t as AcpClient } from "./client-BchvQRpz.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { SetSessionConfigOptionResponse, ToolCallContent, ToolCallLocation, ToolKind } from "@agentclientprotocol/sdk";
|
|
6
6
|
//#region src/session/journal.d.ts
|
|
@@ -90,6 +90,7 @@ type AcpRuntimeTurnInput = AcpControlAuthority & {
|
|
|
90
90
|
/** Handles ACP elicitation requests owned by this prompt turn. */
|
|
91
91
|
onElicitation?: AcpElicitationHandler;
|
|
92
92
|
};
|
|
93
|
+
/** Caller-owned snapshot; local mutations do not change runtime capabilities. */
|
|
93
94
|
type AcpRuntimeCapabilities = {
|
|
94
95
|
controls: AcpRuntimeControl[];
|
|
95
96
|
configOptionKeys?: string[];
|
|
@@ -413,6 +414,22 @@ type AcpRuntimeOptions = {
|
|
|
413
414
|
/** Optional lifecycle observer for ACP agent processes owned by this runtime. */
|
|
414
415
|
processLifecycle?: AcpProcessLifecycle;
|
|
415
416
|
onPermissionRequest?: AcpPermissionHandler;
|
|
417
|
+
/**
|
|
418
|
+
* ACP filesystem callback capability for new and reconnected session clients.
|
|
419
|
+
* Omitted defaults to enabled, matching `AcpClientOptions`. Retained clients
|
|
420
|
+
* keep their original capability. Health probes disable filesystem callbacks
|
|
421
|
+
* and ignore this option. Disabling is a protocol callback policy, not an OS
|
|
422
|
+
* sandbox for the agent's own filesystem access. The setting is not persisted.
|
|
423
|
+
*/
|
|
424
|
+
fs?: boolean;
|
|
425
|
+
/**
|
|
426
|
+
* ACP terminal callback capability for new and reconnected session clients.
|
|
427
|
+
* Omitted defaults to enabled, matching `AcpClientOptions`. Retained clients
|
|
428
|
+
* keep their original capability. Health probes disable terminal callbacks
|
|
429
|
+
* and ignore this option. Disabling is a protocol callback policy, not an OS
|
|
430
|
+
* sandbox for the agent's own process access. The setting is not persisted.
|
|
431
|
+
*/
|
|
432
|
+
terminal?: boolean;
|
|
416
433
|
};
|
|
417
434
|
type AcpFileSessionStoreOptions = {
|
|
418
435
|
stateDir: string;
|
|
@@ -539,6 +556,7 @@ declare class AcpRuntimeManager {
|
|
|
539
556
|
private canRetainPersistentSessionOwner;
|
|
540
557
|
private resolveMcpServers;
|
|
541
558
|
private resolveSessionPermissions;
|
|
559
|
+
private resolveClientCapabilities;
|
|
542
560
|
private withRuntimeControlSession;
|
|
543
561
|
private refreshOwnedRecordLifecycle;
|
|
544
562
|
ensureSession(input: RuntimeEnsureInput): Promise<SessionRecord>;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","names":[],"sources":["../src/session/journal.ts","../src/runtime/public/contract.ts","../src/runtime/public/probe.ts","../src/runtime/engine/turn.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/shared.ts","../src/runtime.ts"],"mappings":";;;;;;KAYY;EAEN;EACA;EACA,QAAQ;;EAGR;EACA;IAAS;IAAiB;IAAe;IAAqB;;;KAGxD;EAAsB;;EAC5B;EAAiB;EAA0B,SAAS;;EACpD;EAAsB;;EACtB;EAAqB;EAAmB,QAAQ;;;;KCiB1C;KAEA;KAEA;KAaA;KAMA;EACV;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV;EACA;EACA,MAAM;EACN;EACA;;;;;;;;;EASA,iBAAiB;;KAGP;;;;;EAKV;EACA;;;;;;KAOU,sBAAsB;EAChC,QAAQ;EACR;EACA,cAAc;EACd,MAAM;EACN;EACA;;;;;;EAMA,sBAAsB;;EAEtB,gBAAgB
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","names":[],"sources":["../src/session/journal.ts","../src/runtime/public/contract.ts","../src/runtime/public/probe.ts","../src/runtime/engine/turn.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/shared.ts","../src/runtime.ts"],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { A as applyInitialModelSelection, B as
|
|
3
|
-
import {
|
|
4
|
-
import { t as watchSession } from "./watch-
|
|
1
|
+
import { D as textPrompt, H as parseSessionRecord, R as readSessionRecord, St as isAcpResourceNotFoundError, U as serializeSessionRecordForDisk, V as assertPersistedKeyPolicy, bt as extractAcpError, j as findSession, t as tryCancelOnRunningOwner, vt as writePrivateJsonFile, z as resolveSessionRecord } from "./ipc-DAApJ5mi.js";
|
|
2
|
+
import { $ as isRequestedModelUnsupportedError, A as applyInitialModelSelection, B as reconcileAgentSessionId, C as setSessionModeOnOwner, D as connectAndLoadSession, E as withConnectedSession, F as persistSessionOptions, G as recordPromptSubmission, H as cloneSessionConversation, I as sessionOptionsFromRecord, J as advertisedModelState, K as recordSessionUpdate, L as applyConversation, M as applyRequestedModelIfAdvertised, N as setDesiredModeId, O as applyConfigOptionSelection, P as normalizeSessionOptionShape, Q as RequestedModelUnsupportedError, R as applyLifecycleSnapshotToRecord, T as setSessionModelOnOwner, V as cloneSessionAcpxState, W as recordClientOperation, X as REQUESTED_MODEL_UNSUPPORTED_ERROR_CODE, Y as AcpClient, Z as REQUESTED_MODEL_UNSUPPORTED_REASONS, _ as cancelSessionPrompt, c as LiveSessionCheckpoint, ct as assertControlAuthority, ft as normalizeOutputError, h as ensureSession, j as applyModelSelection, k as applyConfigOptionsToRecord, l as runPromptTurn, q as trimConversationForRuntime, r as sendSession, s as DISCARD_OUTPUT_FORMATTER, st as TimeoutError, ut as withTimeout, v as closeSession, x as setSessionConfigOptionOnOwner, z as createInitialSessionRecord } from "./queue-owner-runtime-C4OOosbo.js";
|
|
3
|
+
import { O as normalizeAgentCommandInput, a as createAgentRegistry, i as DEFAULT_AGENT_NAME } from "./agent-registry-DWlx5BQ4.js";
|
|
4
|
+
import { t as watchSession } from "./watch-Cz6jbrRs.js";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import fs from "node:fs/promises";
|
|
@@ -23,25 +23,22 @@ function isAcpRuntimeError(value) {
|
|
|
23
23
|
}
|
|
24
24
|
//#endregion
|
|
25
25
|
//#region src/runtime/engine/controls.ts
|
|
26
|
-
/** Controls acpx implements for every backend it exposes. */
|
|
27
|
-
const ACPX_CAPABILITIES = { controls: [
|
|
28
|
-
"session/set_mode",
|
|
29
|
-
"session/set_model",
|
|
30
|
-
"session/set_config_option",
|
|
31
|
-
"session/status"
|
|
32
|
-
] };
|
|
33
26
|
function advertisedConfigOptionIds(record) {
|
|
34
27
|
const configOptions = record?.acpx?.config_options;
|
|
35
28
|
if (!configOptions) return;
|
|
36
29
|
return new Set(configOptions.map((option) => option.id).filter((id) => typeof id === "string" && id.trim().length > 0));
|
|
37
30
|
}
|
|
38
|
-
/**
|
|
31
|
+
/** Caller-owned controls and the config option keys the session last advertised. */
|
|
39
32
|
function capabilitiesFromRecord(record) {
|
|
40
33
|
const advertisedIds = advertisedConfigOptionIds(record);
|
|
41
|
-
if (!advertisedIds || advertisedIds.size === 0) return ACPX_CAPABILITIES;
|
|
42
34
|
return {
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
controls: [
|
|
36
|
+
"session/set_mode",
|
|
37
|
+
"session/set_model",
|
|
38
|
+
"session/set_config_option",
|
|
39
|
+
"session/status"
|
|
40
|
+
],
|
|
41
|
+
...advertisedIds?.size ? { configOptionKeys: [...advertisedIds] } : {}
|
|
45
42
|
};
|
|
46
43
|
}
|
|
47
44
|
function resolveSupportedConfigOptionId(record, configId) {
|
|
@@ -365,6 +362,7 @@ const TOOL_KINDS = /* @__PURE__ */ new Set([
|
|
|
365
362
|
"execute",
|
|
366
363
|
"fetch",
|
|
367
364
|
"think",
|
|
365
|
+
"switch_mode",
|
|
368
366
|
"other"
|
|
369
367
|
]);
|
|
370
368
|
function createToolCallEvent(params) {
|
|
@@ -705,6 +703,8 @@ function createProbeClient(options, agentName, agentCommand, deps) {
|
|
|
705
703
|
permissionMode: options.permissionMode,
|
|
706
704
|
nonInteractivePermissions: options.nonInteractivePermissions,
|
|
707
705
|
permissionPolicy: options.permissionPolicy,
|
|
706
|
+
fs: false,
|
|
707
|
+
terminal: false,
|
|
708
708
|
processLifecycle: options.processLifecycle,
|
|
709
709
|
processLaunchScope: {
|
|
710
710
|
kind: "runtime-probe",
|
|
@@ -865,10 +865,15 @@ var AsyncEventQueue = class {
|
|
|
865
865
|
return await waiter.promise;
|
|
866
866
|
}
|
|
867
867
|
async *iterate() {
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
868
|
+
try {
|
|
869
|
+
while (true) {
|
|
870
|
+
const next = await this.next();
|
|
871
|
+
if (!next) return;
|
|
872
|
+
yield next;
|
|
873
|
+
}
|
|
874
|
+
} finally {
|
|
875
|
+
this.close();
|
|
876
|
+
this.clear();
|
|
872
877
|
}
|
|
873
878
|
}
|
|
874
879
|
};
|
|
@@ -1283,7 +1288,13 @@ var AcpRuntimeManager = class {
|
|
|
1283
1288
|
onPermissionRequest
|
|
1284
1289
|
};
|
|
1285
1290
|
}
|
|
1286
|
-
|
|
1291
|
+
resolveClientCapabilities() {
|
|
1292
|
+
return {
|
|
1293
|
+
fs: this.options.fs,
|
|
1294
|
+
terminal: this.options.terminal
|
|
1295
|
+
};
|
|
1296
|
+
}
|
|
1297
|
+
async withRuntimeControlSession(record, sessionMode, run, replayOptions, authority) {
|
|
1287
1298
|
await this.retrySessionCleanup(record.acpxRecordId);
|
|
1288
1299
|
assertControlAuthority(authority);
|
|
1289
1300
|
const owner = await this.readRetainedSessionOwner(record, { consume: false });
|
|
@@ -1334,11 +1345,13 @@ var AcpRuntimeManager = class {
|
|
|
1334
1345
|
...record,
|
|
1335
1346
|
sessionKey: record.name ?? record.acpxRecordId
|
|
1336
1347
|
}),
|
|
1348
|
+
...this.resolveClientCapabilities(),
|
|
1337
1349
|
elicitationModes: this.options.elicitationModes,
|
|
1338
1350
|
verbose: this.options.verbose,
|
|
1339
1351
|
timeoutMs: this.options.timeoutMs,
|
|
1340
1352
|
resumePolicy: resumePolicyForSessionMode(sessionMode),
|
|
1341
|
-
|
|
1353
|
+
replacingMode: replayOptions?.replacingMode,
|
|
1354
|
+
replacingConfigOption: replayOptions?.replacingConfigOption,
|
|
1342
1355
|
authority,
|
|
1343
1356
|
run
|
|
1344
1357
|
}));
|
|
@@ -1450,7 +1463,7 @@ var AcpRuntimeManager = class {
|
|
|
1450
1463
|
resumeSessionId: input.resumeSessionId
|
|
1451
1464
|
})) return false;
|
|
1452
1465
|
if (input.mode === "persistent") return true;
|
|
1453
|
-
return Boolean(existing.owner && !existing.record.closed && this.pendingOneShotRecordIds.get(input.sessionKey) === existing.record.acpxRecordId && this.retainedSessionOwners.get(existing.record.acpxRecordId) === existing.owner && isDeepStrictEqual(sessionOptionsFromRecord(existing.record), input.sessionOptions));
|
|
1466
|
+
return Boolean(existing.owner && !existing.record.closed && this.pendingOneShotRecordIds.get(input.sessionKey) === existing.record.acpxRecordId && this.retainedSessionOwners.get(existing.record.acpxRecordId) === existing.owner && isDeepStrictEqual(sessionOptionsFromRecord(existing.record), normalizeSessionOptionShape(input.sessionOptions)));
|
|
1454
1467
|
}
|
|
1455
1468
|
assertRuntimeSessionIdle(recordId) {
|
|
1456
1469
|
if (this.sessionTasks.has(recordId) || this.runtimeOperationLocks.has(recordId)) throw new AcpRuntimeError("ACP_SESSION_INIT_FAILED", `Cannot ensure session ${recordId} with incompatible or closing state while its work is unfinished. Wait for existing work to finish or use a different session key.`);
|
|
@@ -1485,6 +1498,7 @@ var AcpRuntimeManager = class {
|
|
|
1485
1498
|
...agent,
|
|
1486
1499
|
sessionKey: input.sessionKey
|
|
1487
1500
|
}),
|
|
1501
|
+
...this.resolveClientCapabilities(),
|
|
1488
1502
|
elicitationModes: this.options.elicitationModes,
|
|
1489
1503
|
processLifecycle: this.options.processLifecycle,
|
|
1490
1504
|
processLaunchScope: {
|
|
@@ -1814,6 +1828,7 @@ var AcpRuntimeManager = class {
|
|
|
1814
1828
|
...record,
|
|
1815
1829
|
sessionKey: record.name ?? record.acpxRecordId
|
|
1816
1830
|
}),
|
|
1831
|
+
...this.resolveClientCapabilities(),
|
|
1817
1832
|
elicitationModes: this.options.elicitationModes,
|
|
1818
1833
|
processLifecycle: this.options.processLifecycle,
|
|
1819
1834
|
processLaunchScope: {
|
|
@@ -2043,7 +2058,7 @@ var AcpRuntimeManager = class {
|
|
|
2043
2058
|
await this.withRuntimeControlSession(record, sessionMode, async ({ client, sessionId, record: connectedRecord }) => {
|
|
2044
2059
|
await client.setSessionMode(sessionId, mode, authority);
|
|
2045
2060
|
setDesiredModeId(connectedRecord, mode);
|
|
2046
|
-
},
|
|
2061
|
+
}, { replacingMode: true }, authority);
|
|
2047
2062
|
}
|
|
2048
2063
|
async setModel(handle, model, sessionMode = "persistent", authority) {
|
|
2049
2064
|
const recordId = handle.acpxRecordId ?? handle.sessionKey;
|
|
@@ -2060,7 +2075,7 @@ var AcpRuntimeManager = class {
|
|
|
2060
2075
|
await this.withRuntimeControlSession(record, sessionMode, async ({ client, sessionId, record: connectedRecord }) => {
|
|
2061
2076
|
const response = await client.setSessionModel(sessionId, model, advertisedModelState(connectedRecord.acpx), authority);
|
|
2062
2077
|
connectedRecord.acpx = applyModelSelection(connectedRecord.acpx, model, response);
|
|
2063
|
-
}, { key: "model" }, authority);
|
|
2078
|
+
}, { replacingConfigOption: { key: "model" } }, authority);
|
|
2064
2079
|
}
|
|
2065
2080
|
async setConfigOption(handle, key, value, sessionMode = "persistent", authority) {
|
|
2066
2081
|
const recordId = handle.acpxRecordId ?? handle.sessionKey;
|
|
@@ -2080,10 +2095,10 @@ var AcpRuntimeManager = class {
|
|
|
2080
2095
|
const response = await client.setSessionConfigOption(sessionId, configId, value, models, authority);
|
|
2081
2096
|
connectedRecord.acpx = applyConfigOptionSelection(connectedRecord.acpx, configId, value, response, models?.configId);
|
|
2082
2097
|
return response;
|
|
2083
|
-
}, {
|
|
2098
|
+
}, { replacingConfigOption: {
|
|
2084
2099
|
key,
|
|
2085
2100
|
resolve: (connectedRecord) => resolveSupportedConfigOptionId(connectedRecord, key)
|
|
2086
|
-
}, authority);
|
|
2101
|
+
} }, authority);
|
|
2087
2102
|
}
|
|
2088
2103
|
async cancel(handle) {
|
|
2089
2104
|
await this.activeControllers.get(handle.acpxRecordId ?? handle.sessionKey)?.requestCancelActivePrompt();
|
|
@@ -2222,7 +2237,8 @@ var FileSessionStore = class {
|
|
|
2222
2237
|
} catch {
|
|
2223
2238
|
return;
|
|
2224
2239
|
}
|
|
2225
|
-
|
|
2240
|
+
const record = parseSessionRecord(parsed);
|
|
2241
|
+
return record?.acpxRecordId === sessionId ? record : void 0;
|
|
2226
2242
|
}
|
|
2227
2243
|
async save(record) {
|
|
2228
2244
|
const persisted = serializeSessionRecordForDisk(record);
|
|
@@ -2336,7 +2352,9 @@ var SharedAcpRuntime = class {
|
|
|
2336
2352
|
"sessionPermissions",
|
|
2337
2353
|
"processLifecycle",
|
|
2338
2354
|
"onPermissionRequest",
|
|
2339
|
-
"elicitationModes"
|
|
2355
|
+
"elicitationModes",
|
|
2356
|
+
"fs",
|
|
2357
|
+
"terminal"
|
|
2340
2358
|
]) if (Object.hasOwn(options, name)) invalidOption(`${name} belongs to the in-process runtime and is not supported by shared sessions.`);
|
|
2341
2359
|
this.options = {
|
|
2342
2360
|
...options,
|
|
@@ -2681,6 +2699,7 @@ var AcpxRuntime = class {
|
|
|
2681
2699
|
onElicitation: input.onElicitation,
|
|
2682
2700
|
onPermissionRequest: input.onPermissionRequest
|
|
2683
2701
|
}));
|
|
2702
|
+
turnPromise.catch(() => {});
|
|
2684
2703
|
return {
|
|
2685
2704
|
requestId: input.requestId,
|
|
2686
2705
|
get promptStarted() {
|
|
@@ -2717,7 +2736,7 @@ var AcpxRuntime = class {
|
|
|
2717
2736
|
});
|
|
2718
2737
|
}
|
|
2719
2738
|
async getCapabilities(input) {
|
|
2720
|
-
if (!input?.handle) return
|
|
2739
|
+
if (!input?.handle) return capabilitiesFromRecord(void 0);
|
|
2721
2740
|
const { handle } = this.resolveManagerHandle(input.handle);
|
|
2722
2741
|
return capabilitiesFromRecord(await this.options.sessionStore.load(handle.acpxRecordId ?? handle.sessionKey));
|
|
2723
2742
|
}
|