@morty-build/cli 0.4.1 → 0.4.5
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/{chunk-ME4HCJOA.js → chunk-DUNSEOXK.js} +2 -2
- package/dist/{chunk-ME4HCJOA.js.map → chunk-DUNSEOXK.js.map} +1 -1
- package/dist/{chunk-IXGJ5G6B.js → chunk-IOB4UFOK.js} +763 -780
- package/dist/{chunk-IXGJ5G6B.js.map → chunk-IOB4UFOK.js.map} +4 -4
- package/dist/{cli-TTSS5YD2.js → cli-SYW44S5V.js} +3 -3
- package/dist/cli.js +2 -2
- package/dist/engine/generated/acp-session-store-migrations.d.ts +6 -0
- package/dist/engine/generated/acp-session-store-migrations.d.ts.map +1 -1
- package/dist/engine/generated/acp-session-store-migrations.js +9 -1
- package/dist/engine/generated/acp-session-store-migrations.js.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.js +16 -3
- package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
- package/dist/engine/schema/{command-cancellation/cancelled-command.d.ts → acp-session-store/command-outcome.d.ts} +10 -7
- package/dist/engine/schema/acp-session-store/command-outcome.d.ts.map +1 -0
- package/dist/engine/schema/acp-session-store/command-outcome.js +10 -0
- package/dist/engine/schema/acp-session-store/command-outcome.js.map +1 -0
- package/dist/engine/schema/acp-session-store/{execution-receipt.d.ts → command.d.ts} +20 -32
- package/dist/engine/schema/acp-session-store/command.d.ts.map +1 -0
- package/dist/engine/schema/acp-session-store/command.js +24 -0
- package/dist/engine/schema/acp-session-store/command.js.map +1 -0
- package/dist/engine/schema/acp-session-store/index.d.ts +2 -2
- package/dist/engine/schema/acp-session-store/index.d.ts.map +1 -1
- package/dist/engine/schema/acp-session-store/index.js +2 -2
- package/dist/engine/schema/acp-session-store/index.js.map +1 -1
- package/dist/engine/session/api/session-api.d.ts +0 -2
- package/dist/engine/session/api/session-api.d.ts.map +1 -1
- package/dist/engine/session/api/session-api.js.map +1 -1
- package/dist/engine/session/api/session-layer.d.ts.map +1 -1
- package/dist/engine/session/api/session-layer.js +3 -7
- package/dist/engine/session/api/session-layer.js.map +1 -1
- package/dist/engine/session/prompt/execute-prompt.d.ts +4 -9
- package/dist/engine/session/prompt/execute-prompt.d.ts.map +1 -1
- package/dist/engine/session/prompt/execute-prompt.js +9 -19
- package/dist/engine/session/prompt/execute-prompt.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts +2 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +9 -6
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/active-turn.d.ts +17 -2
- package/dist/engine/session/turn/active-turn.d.ts.map +1 -1
- package/dist/engine/session/turn/active-turn.js +23 -15
- package/dist/engine/session/turn/active-turn.js.map +1 -1
- package/dist/engine/session/turn/execution-receipts.d.ts +28 -21
- package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
- package/dist/engine/session/turn/execution-receipts.js +173 -259
- package/dist/engine/session/turn/execution-receipts.js.map +1 -1
- package/dist/engine/session/turn/session-execution.d.ts +7 -10
- package/dist/engine/session/turn/session-execution.d.ts.map +1 -1
- package/dist/engine/session/turn/session-execution.js +13 -19
- package/dist/engine/session/turn/session-execution.js.map +1 -1
- package/dist/engine/session/turn/session-turns.d.ts +2 -3
- package/dist/engine/session/turn/session-turns.d.ts.map +1 -1
- package/dist/engine/session/turn/session-turns.js.map +1 -1
- package/dist/engine/storage/session/command-ledger-table.d.ts +68 -0
- package/dist/engine/storage/session/command-ledger-table.d.ts.map +1 -0
- package/dist/engine/storage/session/command-ledger-table.js +172 -0
- package/dist/engine/storage/session/command-ledger-table.js.map +1 -0
- package/dist/engine/storage/sqlite/local-databases.d.ts +0 -3
- package/dist/engine/storage/sqlite/local-databases.d.ts.map +1 -1
- package/dist/engine/storage/sqlite/local-databases.js +0 -4
- package/dist/engine/storage/sqlite/local-databases.js.map +1 -1
- package/dist/engine.js +2 -2
- package/package.json +1 -1
- package/dist/engine/generated/command-cancellation-migrations.d.ts +0 -5
- package/dist/engine/generated/command-cancellation-migrations.d.ts.map +0 -1
- package/dist/engine/generated/command-cancellation-migrations.js +0 -9
- package/dist/engine/generated/command-cancellation-migrations.js.map +0 -1
- package/dist/engine/schema/acp-session-store/execution-identity.d.ts +0 -57
- package/dist/engine/schema/acp-session-store/execution-identity.d.ts.map +0 -1
- package/dist/engine/schema/acp-session-store/execution-identity.js +0 -8
- package/dist/engine/schema/acp-session-store/execution-identity.js.map +0 -1
- package/dist/engine/schema/acp-session-store/execution-receipt.d.ts.map +0 -1
- package/dist/engine/schema/acp-session-store/execution-receipt.js +0 -12
- package/dist/engine/schema/acp-session-store/execution-receipt.js.map +0 -1
- package/dist/engine/schema/command-cancellation/cancelled-command.d.ts.map +0 -1
- package/dist/engine/schema/command-cancellation/cancelled-command.js +0 -7
- package/dist/engine/schema/command-cancellation/cancelled-command.js.map +0 -1
- package/dist/engine/schema/command-cancellation/index.d.ts +0 -2
- package/dist/engine/schema/command-cancellation/index.d.ts.map +0 -1
- package/dist/engine/schema/command-cancellation/index.js +0 -2
- package/dist/engine/schema/command-cancellation/index.js.map +0 -1
- package/dist/engine/storage/session/command-cancellation-table.d.ts +0 -17
- package/dist/engine/storage/session/command-cancellation-table.d.ts.map +0 -1
- package/dist/engine/storage/session/command-cancellation-table.js +0 -28
- package/dist/engine/storage/session/command-cancellation-table.js.map +0 -1
- package/dist/engine/storage/session/execution-receipt-table.d.ts +0 -28
- package/dist/engine/storage/session/execution-receipt-table.d.ts.map +0 -1
- package/dist/engine/storage/session/execution-receipt-table.js +0 -87
- package/dist/engine/storage/session/execution-receipt-table.js.map +0 -1
- /package/dist/{cli-TTSS5YD2.js.map → cli-SYW44S5V.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SessionHistoryPolicy
|
|
1
|
+
import { SessionHistoryPolicy } from "@morty-build/client/protocol";
|
|
2
2
|
import { AcpExecutionError } from "../../acp/acp-error.js";
|
|
3
3
|
import { operationErrorCode, operationErrorMessage } from "../../infra/operation-error.js";
|
|
4
4
|
import { resolveSessionDirectories } from "../workspace/resolve-session-directories.js";
|
|
@@ -9,22 +9,15 @@ import { PromptArtifactError, resolvePromptArtifacts } from "./prompt-artifacts.
|
|
|
9
9
|
* immediately before handing the work to the Agent; until then a cancellation withdraws it and a failure settles it
|
|
10
10
|
* as failed before start.
|
|
11
11
|
*/
|
|
12
|
-
export async function executePrompt({ eventProjection, command, resolveAgent, readArtifact, reportFailure, directories, sessions, attemptId, epoch,
|
|
12
|
+
export async function executePrompt({ eventProjection, command, resolveAgent, readArtifact, reportFailure, directories, sessions, attemptId, epoch, waitForSessionAdmission, signal, cancellationRequested, }) {
|
|
13
13
|
try {
|
|
14
14
|
const resolved = await resolveSessionDirectories(directories, command.bindingId, command.directoryId, command.additionalDirectoryIds, signal);
|
|
15
15
|
const { agent, adapter, externalizeSessionUpdate } = await resolveAgent(command.agentId, signal, command.sessionId);
|
|
16
|
-
const
|
|
17
|
-
if (availability.kind === "busy") {
|
|
18
|
-
throw new AcpExecutionError("Another prompt is already running in this conversation", {}, "session_busy");
|
|
19
|
-
}
|
|
20
|
-
if (availability.kind === "queue-target-unavailable") {
|
|
21
|
-
throw new AcpExecutionError("The queued prompt target is unavailable", {}, "prompt_queue_target_unavailable");
|
|
22
|
-
}
|
|
16
|
+
const dispatch = await waitForSessionAdmission(signal);
|
|
23
17
|
// A steering prompt joins an execution the Agent already holds. Check before preparing, so a steer can never
|
|
24
18
|
// replace or reconfigure the process an admitted prompt is still preparing.
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
throw new AcpExecutionError("The steering target is unavailable", {}, "prompt_queue_target_unavailable");
|
|
19
|
+
if (dispatch.kind === "steer" && !sessions.acceptsSteering(command.sessionId, dispatch.targetCommandId)) {
|
|
20
|
+
throw new AcpExecutionError("The steering target is unavailable", {}, "steering_target_unavailable");
|
|
28
21
|
}
|
|
29
22
|
const appliedSettings = command.sessionConfigurations === undefined
|
|
30
23
|
? undefined
|
|
@@ -49,13 +42,12 @@ export async function executePrompt({ eventProjection, command, resolveAgent, re
|
|
|
49
42
|
// applied and must not gate the prompt. A member who changes a setting while a Turn runs
|
|
50
43
|
// sends their follow-up with the newer snapshot, and steering folds that follow-up into
|
|
51
44
|
// the Turn still running on the older settings; rejecting it loses the member's message.
|
|
52
|
-
if (command.sessionConfigurations !== undefined &&
|
|
53
|
-
availability.disposition !== SessionPromptDisposition.Steer) {
|
|
45
|
+
if (command.sessionConfigurations !== undefined && dispatch.kind !== "steer") {
|
|
54
46
|
await applyCompleteSessionConfiguration(sessions, prepared.configOptions, sessionConfigurations ?? [], executionAgent, adapter, resolved.cwd, resolved.additionalDirectories, command.commandId, command.sessionId, signal);
|
|
55
47
|
prepared = await sessions.prepareExecutionSession(preparation);
|
|
56
48
|
}
|
|
57
49
|
signal.throwIfAborted();
|
|
58
|
-
const lifecycle = eventProjection.lifecycle(command.sessionId, command.commandId, attemptId, epoch,
|
|
50
|
+
const lifecycle = eventProjection.lifecycle(command.sessionId, command.commandId, attemptId, epoch, dispatch);
|
|
59
51
|
const attachments = await resolvePromptArtifacts(readArtifact, command.attachments, signal);
|
|
60
52
|
const skipped = command.attachments.length - attachments.images.length - attachments.resources.length;
|
|
61
53
|
if (skipped > 0) {
|
|
@@ -67,7 +59,7 @@ export async function executePrompt({ eventProjection, command, resolveAgent, re
|
|
|
67
59
|
throw new PromptArtifactError("prompt_attachments_unsupported", "No supported prompt content remains");
|
|
68
60
|
}
|
|
69
61
|
let stopReason;
|
|
70
|
-
if (
|
|
62
|
+
if (dispatch.kind === "steer") {
|
|
71
63
|
await sessions.steerPrompt({
|
|
72
64
|
adapter,
|
|
73
65
|
...(externalizeSessionUpdate === undefined ? {} : { externalizeSessionUpdate }),
|
|
@@ -81,7 +73,7 @@ export async function executePrompt({ eventProjection, command, resolveAgent, re
|
|
|
81
73
|
resources: attachments.resources,
|
|
82
74
|
sessionId: command.sessionId,
|
|
83
75
|
signal,
|
|
84
|
-
targetCommandId:
|
|
76
|
+
targetCommandId: dispatch.targetCommandId,
|
|
85
77
|
});
|
|
86
78
|
stopReason = "steered";
|
|
87
79
|
}
|
|
@@ -94,14 +86,12 @@ export async function executePrompt({ eventProjection, command, resolveAgent, re
|
|
|
94
86
|
agent: executionAgent,
|
|
95
87
|
commandId: command.commandId,
|
|
96
88
|
cwd: resolved.cwd,
|
|
97
|
-
disposition: availability.disposition,
|
|
98
89
|
images: attachments.images,
|
|
99
90
|
lifecycle,
|
|
100
91
|
prompt: command.prompt,
|
|
101
92
|
resources: attachments.resources,
|
|
102
93
|
sessionId: command.sessionId,
|
|
103
94
|
signal,
|
|
104
|
-
targetCommandId: command.targetCommandId,
|
|
105
95
|
recovery,
|
|
106
96
|
});
|
|
107
97
|
stopReason = result.stopReason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-prompt.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt/execute-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"execute-prompt.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt/execute-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ContentBlock, PromptExecutionContext, PromptMessageOutcome, QueuedPromptRequestEventLog, SessionCancelCommand, SessionEventPayload, SessionLiveEvent, SessionPromptCommand } from "@morty-build/client/protocol";
|
|
2
2
|
import type { SessionEventSink } from "../api/session-api.ts";
|
|
3
|
+
import type { PromptDispatch } from "../turn/active-turn.ts";
|
|
3
4
|
import type { ExecutionReceipts, RestatedOutcome } from "../turn/execution-receipts.ts";
|
|
4
5
|
export interface PromptRequestRecovery {
|
|
5
6
|
readonly queuedPromptRequests: readonly QueuedPromptRequestEventLog[];
|
|
@@ -11,7 +12,7 @@ export declare class PromptLifecycle {
|
|
|
11
12
|
constructor(sink: SessionEventSink, recordLifecycle: (sessionId: string, event: SessionEventPayload) => Promise<boolean>, append: (sessionId: string, event: SessionEventPayload, recordedAt?: string) => SessionLiveEvent, recordActiveTurn: (event: SessionLiveEvent) => void, executions: ExecutionProgress);
|
|
12
13
|
readonly requested: (command: SessionPromptCommand) => void;
|
|
13
14
|
/** The lifecycle metadata the Agent session records when it starts this claimed command. */
|
|
14
|
-
readonly lifecycle: (sessionId: string, commandId: string, attemptId: string, epoch: string,
|
|
15
|
+
readonly lifecycle: (sessionId: string, commandId: string, attemptId: string, epoch: string, dispatch: PromptDispatch) => {
|
|
15
16
|
readonly attemptId: string;
|
|
16
17
|
readonly content: readonly ContentBlock[];
|
|
17
18
|
readonly disposition?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/prompt/prompt-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAgBxF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,2BAA2B,EAAE,CAAC;CACzE;AA8BD,iFAAiF;AACjF,KAAK,iBAAiB,GAAG,IAAI,CACzB,iBAAiB,EACjB,wBAAwB,GAAG,YAAY,GAAG,qBAAqB,GAAG,gBAAgB,CACrF,CAAC;AAEF,qBAAa,eAAe;;IAWxB,YACI,IAAI,EAAE,gBAAgB,EACtB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,EACpF,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,gBAAgB,EAChG,gBAAgB,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,EACnD,UAAU,EAAE,iBAAiB,EAOhC;IAED,QAAQ,CAAC,SAAS,YAAa,oBAAoB,KAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"prompt-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/prompt/prompt-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAgBxF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,oBAAoB,EAAE,SAAS,2BAA2B,EAAE,CAAC;CACzE;AA8BD,iFAAiF;AACjF,KAAK,iBAAiB,GAAG,IAAI,CACzB,iBAAiB,EACjB,wBAAwB,GAAG,YAAY,GAAG,qBAAqB,GAAG,gBAAgB,CACrF,CAAC;AAEF,qBAAa,eAAe;;IAWxB,YACI,IAAI,EAAE,gBAAgB,EACtB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,EACpF,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,gBAAgB,EAChG,gBAAgB,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,EACnD,UAAU,EAAE,iBAAiB,EAOhC;IAED,QAAQ,CAAC,SAAS,YAAa,oBAAoB,KAAG,IAAI,CAexD;IAEF,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,cACH,MAAM,aACN,MAAM,aACN,MAAM,SACV,MAAM,YACH,cAAc,KACzB;QACC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;QAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;QACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACrC,CAcC;IAEF,QAAQ,CAAC,MAAM,aAAc,gBAAgB,KAAG,IAAI,CAYlD;IAYF,QAAQ,CAAC,eAAe,cAAe,MAAM,aAAa,MAAM,KAAG,IAAI,CAyBrE;IAEF,QAAQ,CAAC,aAAa,cAAqB,MAAM,SAAS,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAAC,CAM3F;IAEF;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,cAAe,MAAM,yBAAyB,eAAe,KAAG,IAAI,CAazF;IAEF,QAAQ,CAAC,YAAY,cAAqB,MAAM,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAKjF;IAEF,QAAQ,CAAC,SAAS,cAAqB,MAAM,aAAa,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAsBlG;IAEF;;;;OAIG;IACH,QAAQ,CAAC,MAAM,cACA,MAAM,aACN,MAAM,aACN,MAAM,QACX,MAAM,WACH,MAAM,KAChB,OAAO,CAAC,IAAI,CAAC,CAad;IAEF,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,cAAe,MAAM,KAAG,SAAS,oBAAoB,EAAE,CAC/B;IAE/C,QAAQ,CAAC,qBAAqB,cAAe,MAAM,KAAG,qBAAqB,CAYxE;CACN;AAED,wBAAsB,mBAAmB,CACrC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,iBAAiB,EAC7B,YAAY,EAAE,oBAAoB,GACnC,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isPromptTerminal, SESSION_CLOSED_ERROR_CODE } from "@morty-build/client/protocol";
|
|
1
|
+
import { isPromptTerminal, SESSION_CLOSED_ERROR_CODE, SessionPromptDisposition } from "@morty-build/client/protocol";
|
|
2
2
|
import { SessionError } from "../api/session-error.js";
|
|
3
3
|
import { isTextPromptResourceMediaType } from "./prompt-artifacts.js";
|
|
4
4
|
function promptContent(command) {
|
|
@@ -47,27 +47,30 @@ export class PromptLifecycle {
|
|
|
47
47
|
this.#queued.set(command.commandId, {
|
|
48
48
|
commandId: command.commandId,
|
|
49
49
|
content: promptContent(command),
|
|
50
|
-
|
|
50
|
+
disposition: command.disposition,
|
|
51
51
|
context: {
|
|
52
52
|
agentId: command.agentId,
|
|
53
53
|
directoryId: command.directoryId,
|
|
54
54
|
additionalDirectoryIds: command.additionalDirectoryIds,
|
|
55
55
|
},
|
|
56
56
|
sessionId: command.sessionId,
|
|
57
|
-
...(command.
|
|
57
|
+
...(command.disposition === SessionPromptDisposition.Steer
|
|
58
|
+
? { targetCommandId: command.targetCommandId }
|
|
59
|
+
: {}),
|
|
58
60
|
});
|
|
59
61
|
};
|
|
60
62
|
/** The lifecycle metadata the Agent session records when it starts this claimed command. */
|
|
61
|
-
lifecycle = (sessionId, commandId, attemptId, epoch,
|
|
63
|
+
lifecycle = (sessionId, commandId, attemptId, epoch, dispatch) => {
|
|
62
64
|
const request = this.#queued.get(commandId);
|
|
63
65
|
if (request?.sessionId === sessionId) {
|
|
64
66
|
return {
|
|
65
67
|
attemptId,
|
|
66
68
|
content: request.content,
|
|
67
|
-
disposition,
|
|
68
69
|
epoch,
|
|
69
70
|
context: request.context,
|
|
70
|
-
...(
|
|
71
|
+
...(dispatch.kind === "steer"
|
|
72
|
+
? { disposition: SessionPromptDisposition.Steer, targetCommandId: dispatch.targetCommandId }
|
|
73
|
+
: { disposition: SessionPromptDisposition.Append }),
|
|
71
74
|
};
|
|
72
75
|
}
|
|
73
76
|
throw new Error("The executing prompt was not registered in the V2 queue");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-lifecycle.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt/prompt-lifecycle.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-lifecycle.js","sourceRoot":"","sources":["../../../../src/engine/session/prompt/prompt-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,16 @@ type ActiveTurnSnapshot = Extract<NativeSessionResult, {
|
|
|
4
4
|
}>["turn"];
|
|
5
5
|
/** Interaction events the daemon folds into an in-flight prompt Turn. */
|
|
6
6
|
export type RecordedSessionEvent = SessionElicitationRequestedEvent | SessionElicitationResolvedEvent | SessionPermissionRequestedEvent | SessionPermissionResolvedEvent;
|
|
7
|
+
/**
|
|
8
|
+
* How an admitted prompt executes: as its own turn, or by steering the running turn of `targetCommandId`. An appended
|
|
9
|
+
* prompt promoted out of the queue steers the turn it waited behind, which admission names when it admits it.
|
|
10
|
+
*/
|
|
11
|
+
export type PromptDispatch = {
|
|
12
|
+
readonly kind: "own";
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: "steer";
|
|
15
|
+
readonly targetCommandId: string;
|
|
16
|
+
};
|
|
7
17
|
export type TurnCancellation = {
|
|
8
18
|
readonly kind: "already-requested";
|
|
9
19
|
} | {
|
|
@@ -29,9 +39,14 @@ export declare class ActiveRuntimeTurn {
|
|
|
29
39
|
readonly abortRuntime: () => void;
|
|
30
40
|
readonly finish: () => void;
|
|
31
41
|
readonly promoteQueuedPrompt: (command: SessionPromptDispositionCommand) => "accepted" | "already-started" | "unavailable";
|
|
32
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Fixes how the prompt executes before asynchronous Agent preparation, so a late promotion cannot change a dispatch
|
|
44
|
+
* that execution has already selected.
|
|
45
|
+
*/
|
|
46
|
+
readonly admit: (dispatch: PromptDispatch) => PromptDispatch;
|
|
33
47
|
readonly queuePromotion: () => Promise<void> | null;
|
|
34
|
-
|
|
48
|
+
/** Whether the prompt joins another turn's execution instead of owning one, so it holds no place in the queue. */
|
|
49
|
+
readonly isSteering: () => boolean;
|
|
35
50
|
/** A steering prompt joins the execution of the turn it steers; every other prompt owns its execution. */
|
|
36
51
|
readonly execution: () => string;
|
|
37
52
|
readonly recordEvent: (event: RecordedSessionEvent) => RecordedSessionEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-turn.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/active-turn.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,mBAAmB,EAKxB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,+BAA+B,EACvC,MAAM,8BAA8B,CAAC;AAEtC,KAAK,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnG,yEAAyE;AACzE,MAAM,MAAM,oBAAoB,GAC1B,gCAAgC,GAChC,+BAA+B,GAC/B,+BAA+B,GAC/B,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"active-turn.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/active-turn.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,mBAAmB,EAKxB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EAEzB,KAAK,+BAA+B,EACvC,MAAM,8BAA8B,CAAC;AAEtC,KAAK,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnG,yEAAyE;AACzE,MAAM,MAAM,oBAAoB,GAC1B,gCAAgC,GAChC,+BAA+B,GAC/B,+BAA+B,GAC/B,8BAA8B,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAYrH,MAAM,MAAM,gBAAgB,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,qBAAa,iBAAiB;;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,KAAK,8CAAkC;IAahD;;;OAGG;IACH,YACI,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,OAAO,EACtB,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,EAOtC;IAED,QAAQ,CAAC,OAAO,QAAO,IAAI,CAKzB;IAEF,kGAAkG;IAClG,QAAQ,CAAC,YAAY,QAAO,OAAO,CAGoC;IAEvE,QAAQ,CAAC,QAAQ,QAAO,OAAO,CAMM;IAErC,QAAQ,CAAC,YAAY,QAAO,IAAI,CAE9B;IAEF,QAAQ,CAAC,MAAM,QAAO,IAAI,CAExB;IAEF,QAAQ,CAAC,mBAAmB,YACf,+BAA+B,KACzC,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAsB/C;IAEF;;;OAGG;IACH,QAAQ,CAAC,KAAK,aAAc,cAAc,KAAG,cAAc,CAIzD;IAEF,QAAQ,CAAC,cAAc,QAAO,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAKhD;IAEF,kHAAkH;IAClH,QAAQ,CAAC,UAAU,QAAO,OAAO,CAW/B;IAEF,0GAA0G;IAC1G,QAAQ,CAAC,SAAS,QAAO,MAAM,CAGE;IAEjC,QAAQ,CAAC,WAAW,UAAW,oBAAoB,KAAG,oBAAoB,CAgBxE;IAEF,QAAQ,CAAC,QAAQ,QAAO,kBAAkB,CAcxC;IAEF,QAAQ,CAAC,kBAAkB,kBAAmB,MAAM,aAAa,MAAM,KAAG,OAAO,CACc;IAE/F;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,QAAO,gBAAgB,CAUjD;IAEF,QAAQ,CAAC,qBAAqB,QAAO,OAAO,CAAgC;IAE5E,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;CACJ"}
|
|
@@ -30,9 +30,13 @@ export class ActiveRuntimeTurn {
|
|
|
30
30
|
this.#admission = { kind: "queued", promotion: Promise.withResolvers() };
|
|
31
31
|
};
|
|
32
32
|
/** Whether the prompt was admitted to its Session's queue, whatever happened to it afterwards. */
|
|
33
|
-
enteredQueue = () => this
|
|
33
|
+
enteredQueue = () => this.#admission.kind === "queued" ||
|
|
34
|
+
this.#admission.kind === "promoted" ||
|
|
35
|
+
(this.#admission.kind === "admitted" && this.#admission.fromQueue);
|
|
34
36
|
isQueued = () => (this.#admission.kind === "queued" ||
|
|
35
|
-
(this.#admission.kind === "admitted" &&
|
|
37
|
+
(this.#admission.kind === "admitted" &&
|
|
38
|
+
this.#admission.fromQueue &&
|
|
39
|
+
this.#admission.dispatch.kind === "own")) &&
|
|
36
40
|
!this.#started() &&
|
|
37
41
|
!this.#controller.signal.aborted;
|
|
38
42
|
abortRuntime = () => {
|
|
@@ -57,17 +61,19 @@ export class ActiveRuntimeTurn {
|
|
|
57
61
|
case "promoted":
|
|
58
62
|
return "accepted";
|
|
59
63
|
case "admitted":
|
|
60
|
-
return this.#admission.
|
|
64
|
+
return this.#admission.dispatch.kind === "steer" ? "accepted" : "already-started";
|
|
61
65
|
case "waiting":
|
|
62
66
|
return "unavailable";
|
|
63
67
|
}
|
|
64
68
|
};
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Fixes how the prompt executes before asynchronous Agent preparation, so a late promotion cannot change a dispatch
|
|
71
|
+
* that execution has already selected.
|
|
72
|
+
*/
|
|
73
|
+
admit = (dispatch) => {
|
|
74
|
+
const fromQueue = this.enteredQueue();
|
|
75
|
+
this.#admission = { kind: "admitted", dispatch, fromQueue };
|
|
76
|
+
return dispatch;
|
|
71
77
|
};
|
|
72
78
|
queuePromotion = () => {
|
|
73
79
|
if (this.#admission.kind === "queued") {
|
|
@@ -75,20 +81,22 @@ export class ActiveRuntimeTurn {
|
|
|
75
81
|
}
|
|
76
82
|
return this.#admission.kind === "promoted" ? Promise.resolve() : null;
|
|
77
83
|
};
|
|
78
|
-
|
|
84
|
+
/** Whether the prompt joins another turn's execution instead of owning one, so it holds no place in the queue. */
|
|
85
|
+
isSteering = () => {
|
|
79
86
|
switch (this.#admission.kind) {
|
|
80
87
|
case "waiting":
|
|
88
|
+
return this.command.disposition === SessionPromptDisposition.Steer;
|
|
81
89
|
case "queued":
|
|
82
|
-
return
|
|
90
|
+
return false;
|
|
83
91
|
case "promoted":
|
|
84
|
-
return
|
|
92
|
+
return true;
|
|
85
93
|
case "admitted":
|
|
86
|
-
return this.#admission.
|
|
94
|
+
return this.#admission.dispatch.kind === "steer";
|
|
87
95
|
}
|
|
88
96
|
};
|
|
89
97
|
/** A steering prompt joins the execution of the turn it steers; every other prompt owns its execution. */
|
|
90
|
-
execution = () => this.
|
|
91
|
-
? this.
|
|
98
|
+
execution = () => this.#admission.kind === "admitted" && this.#admission.dispatch.kind === "steer"
|
|
99
|
+
? this.#admission.dispatch.targetCommandId
|
|
92
100
|
: this.command.commandId;
|
|
93
101
|
recordEvent = (event) => {
|
|
94
102
|
if (event.sessionId !== this.command.sessionId ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-turn.js","sourceRoot":"","sources":["../../../../src/engine/session/turn/active-turn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACH,gBAAgB,EAEhB,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAMhC,wBAAwB,GAE3B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"active-turn.js","sourceRoot":"","sources":["../../../../src/engine/session/turn/active-turn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type CommandDelivery, type LastTurnOutcome, type PromptMessageOutcome, type SessionEventPayload, type SessionLiveEvent } from "@morty-build/client/protocol";
|
|
2
|
-
import type {
|
|
3
|
-
import type { ExecutionReceiptTable } from "../../storage/session/execution-receipt-table.ts";
|
|
2
|
+
import type { CommandLedgerTable } from "../../storage/session/command-ledger-table.ts";
|
|
4
3
|
export type RuntimeExecutionReceipt = Readonly<{
|
|
5
4
|
attemptId: string;
|
|
6
5
|
commandId: string;
|
|
@@ -14,10 +13,12 @@ export type RuntimeExecutionReceipt = Readonly<{
|
|
|
14
13
|
readonly kind: "conflict";
|
|
15
14
|
} | {
|
|
16
15
|
readonly kind: "expired";
|
|
16
|
+
} | {
|
|
17
|
+
readonly kind: "refused";
|
|
17
18
|
};
|
|
18
19
|
/**
|
|
19
|
-
* An outcome a restart publishes: one the restart itself settles (a command it interrupted or
|
|
20
|
-
*
|
|
20
|
+
* An outcome a restart publishes: one the restart itself settles (a command it interrupted), or one the previous
|
|
21
|
+
* process had already recorded, which is published again for clients that missed it.
|
|
21
22
|
*/
|
|
22
23
|
export type RecoveredOutcome = {
|
|
23
24
|
readonly kind: "recorded";
|
|
@@ -30,8 +31,8 @@ export type RecoveredOutcome = {
|
|
|
30
31
|
readonly outcome: RestatedOutcome;
|
|
31
32
|
};
|
|
32
33
|
/**
|
|
33
|
-
* An outcome
|
|
34
|
-
* identifies when the command ended; undefined when no
|
|
34
|
+
* An outcome the ledger already holds, restated for clients that missed it. It keeps the time it was recorded, which
|
|
35
|
+
* identifies when the command ended; undefined when the ledger no longer keeps it.
|
|
35
36
|
*/
|
|
36
37
|
export interface RestatedOutcome {
|
|
37
38
|
readonly event: SessionEventPayload;
|
|
@@ -49,32 +50,34 @@ export type CancellationBeforeAdmission = {
|
|
|
49
50
|
} | {
|
|
50
51
|
readonly kind: "expired";
|
|
51
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* The Runtime's answers about the commands it admitted, read from the command ledger, which alone records what
|
|
55
|
+
* became of each command.
|
|
56
|
+
*/
|
|
52
57
|
export declare class ExecutionReceipts {
|
|
53
58
|
#private;
|
|
54
|
-
constructor(
|
|
59
|
+
constructor(ledger: CommandLedgerTable, onCount?: (count: number) => void);
|
|
55
60
|
readonly beginShutdown: () => void;
|
|
56
61
|
readonly outcome: (commandId: string) => SessionEventPayload | undefined;
|
|
57
|
-
/** The outcome the
|
|
62
|
+
/** The outcome the ledger keeps for the command, with the time it was recorded. */
|
|
58
63
|
readonly restatedOutcome: (commandId: string) => RestatedOutcome | undefined;
|
|
59
|
-
/** The command's delivery as
|
|
64
|
+
/** The command's delivery as the ledger knows it; another Session's command reads as unknown. */
|
|
60
65
|
readonly delivery: (commandId: string, sessionId: string) => CommandDelivery;
|
|
61
66
|
/**
|
|
62
|
-
* How the Session's most recently admitted turn ended.
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* restart interrupted it) keeps its own outcome. Undefined while the latest turn runs or none is
|
|
67
|
-
* retained.
|
|
67
|
+
* How the Session's most recently admitted turn ended. Commands that never started (queued, or reserved for
|
|
68
|
+
* cancellation) are not turns, unless they failed before starting. A steering command that completed as `steered`
|
|
69
|
+
* joined the turn it steered, which reports for both; a steer not known to have joined (it failed, or a restart
|
|
70
|
+
* interrupted it) keeps its own outcome. Undefined while the latest turn runs or its outcome is no longer kept.
|
|
68
71
|
*/
|
|
69
72
|
readonly lastTurn: (sessionId: string) => LastTurnOutcome | undefined;
|
|
70
|
-
/** When the Session's running command started
|
|
73
|
+
/** When the Session's running command started. */
|
|
71
74
|
readonly startedAt: (commandId: string, sessionId: string) => string | undefined;
|
|
72
75
|
/**
|
|
73
76
|
* The recorded terminal events of the Session's settled prompts whose Agent reported the user message they
|
|
74
|
-
* recorded, while
|
|
77
|
+
* recorded, while the ledger keeps their outcomes.
|
|
75
78
|
*/
|
|
76
79
|
readonly promptOutcomes: (sessionId: string) => readonly PromptMessageOutcome[];
|
|
77
|
-
/**
|
|
80
|
+
/** A command that started stays started after its outcome is no longer kept. */
|
|
78
81
|
readonly hasStarted: (commandId: string, sessionId: string) => boolean;
|
|
79
82
|
/**
|
|
80
83
|
* Reserves an unseen command for cancellation before a delayed prompt can claim its identity. A command that
|
|
@@ -82,13 +85,17 @@ export declare class ExecutionReceipts {
|
|
|
82
85
|
*/
|
|
83
86
|
readonly recordCancellationBeforeAdmission: (commandId: string, sessionId: string) => CancellationBeforeAdmission;
|
|
84
87
|
/**
|
|
85
|
-
*
|
|
88
|
+
* The ledger follows each command's recorded lifecycle. `prompt.started` is recorded where the command is handed
|
|
86
89
|
* to the Agent, so the started mark and the event clients see are one transition; a terminal event settles the
|
|
87
|
-
*
|
|
90
|
+
* command. Nothing else marks a command started.
|
|
88
91
|
*/
|
|
89
92
|
readonly record: (event: SessionLiveEvent) => void;
|
|
90
93
|
readonly recover: () => readonly RecoveredOutcome[];
|
|
91
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Claims a command's identifier for the Session. A known identifier is answered from the ledger; a new command is
|
|
96
|
+
* recorded only when `admits` accepts it in the same step, so a command the Session refuses leaves no record.
|
|
97
|
+
*/
|
|
98
|
+
readonly claimExecution: (commandId: string, sessionId: string, commandJson: string, admits: () => boolean) => RuntimeExecutionReceipt;
|
|
92
99
|
/** Only commands without a terminal result can still be cancelled. */
|
|
93
100
|
readonly findUnsettledAttemptId: (commandId: string, sessionId: string) => string | null;
|
|
94
101
|
readonly isTerminalExecution: (commandId: string, sessionId: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-receipts.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/execution-receipts.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,eAAe,EAIpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"execution-receipts.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/turn/execution-receipts.ts"],"names":[],"mappings":"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"}
|