@morty-build/cli 0.4.26 → 0.4.27
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-P2Q7CY6D.js → chunk-GWFNC4EE.js} +2 -2
- package/dist/{chunk-P2Q7CY6D.js.map → chunk-GWFNC4EE.js.map} +1 -1
- package/dist/{chunk-VKVKHAQ7.js → chunk-MLX3QFGN.js} +329 -81
- package/dist/{chunk-VKVKHAQ7.js.map → chunk-MLX3QFGN.js.map} +4 -4
- package/dist/{cli-AHHDI2TF.js → cli-CZVTD2M2.js} +3 -3
- package/dist/cli.js +2 -2
- package/dist/engine/runtime/command/registry/interactions.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/interactions.js +113 -35
- package/dist/engine/runtime/command/registry/interactions.js.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/prompt.js +38 -7
- package/dist/engine/runtime/command/registry/prompt.js.map +1 -1
- package/dist/engine/runtime/command/turn-replies.d.ts +27 -0
- package/dist/engine/runtime/command/turn-replies.d.ts.map +1 -0
- package/dist/engine/runtime/command/turn-replies.js +44 -0
- package/dist/engine/runtime/command/turn-replies.js.map +1 -0
- package/dist/engine/runtime/relay/run-relay-connection.d.ts.map +1 -1
- package/dist/engine/runtime/relay/run-relay-connection.js +25 -1
- package/dist/engine/runtime/relay/run-relay-connection.js.map +1 -1
- package/dist/engine/runtime/relay/session-event-publisher.d.ts +0 -1
- package/dist/engine/runtime/relay/session-event-publisher.d.ts.map +1 -1
- package/dist/engine/runtime/relay/session-event-publisher.js +0 -3
- package/dist/engine/runtime/relay/session-event-publisher.js.map +1 -1
- package/dist/engine/session/api/session-api.d.ts +0 -1
- package/dist/engine/session/api/session-api.d.ts.map +1 -1
- package/dist/engine/session/api/session-layer.d.ts.map +1 -1
- package/dist/engine/session/api/session-layer.js +1 -2
- package/dist/engine/session/api/session-layer.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +3 -9
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/execution-receipts.d.ts +6 -0
- package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
- package/dist/engine/session/turn/execution-receipts.js +56 -6
- package/dist/engine/session/turn/execution-receipts.js.map +1 -1
- package/dist/engine.js +2 -2
- package/package.json +1 -1
- /package/dist/{cli-AHHDI2TF.js.map → cli-CZVTD2M2.js.map} +0 -0
|
@@ -36,10 +36,10 @@ import {
|
|
|
36
36
|
validateLocalPath,
|
|
37
37
|
validatePairingId,
|
|
38
38
|
writeInstallationFile
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-MLX3QFGN.js";
|
|
40
40
|
import {
|
|
41
41
|
package_default
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-GWFNC4EE.js";
|
|
43
43
|
|
|
44
44
|
// ../../node_modules/.pnpm/commander@15.0.0/node_modules/commander/lib/error.js
|
|
45
45
|
var CommanderError = class extends Error {
|
|
@@ -6126,4 +6126,4 @@ async function runCLI() {
|
|
|
6126
6126
|
export {
|
|
6127
6127
|
runCLI
|
|
6128
6128
|
};
|
|
6129
|
-
//# sourceMappingURL=cli-
|
|
6129
|
+
//# sourceMappingURL=cli-CZVTD2M2.js.map
|
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
__commonJS,
|
|
4
4
|
__toESM,
|
|
5
5
|
package_default
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GWFNC4EE.js";
|
|
7
7
|
|
|
8
8
|
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js
|
|
9
9
|
var require_constants = __commonJS({
|
|
@@ -2013,7 +2013,7 @@ if (!(0, import_semver.satisfies)(process.versions.node, package_default.engines
|
|
|
2013
2013
|
);
|
|
2014
2014
|
process.exitCode = 1;
|
|
2015
2015
|
} else {
|
|
2016
|
-
const { runCLI } = await import("./cli-
|
|
2016
|
+
const { runCLI } = await import("./cli-CZVTD2M2.js");
|
|
2017
2017
|
await runCLI();
|
|
2018
2018
|
}
|
|
2019
2019
|
//# sourceMappingURL=cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/interactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/interactions.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA2BvD,eAAO,MAAM,oBAAoB,EAAE,cA+BlC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,cA2E7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,cAejC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cA6CtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,cActC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAcvC,CAAC"}
|
|
@@ -1,42 +1,72 @@
|
|
|
1
|
-
import { promptCompletion, SESSION_CANCEL_BEFORE_START_KIND, SESSION_CANCEL_KIND, SESSION_CLOSE_KIND, SESSION_CLOSED_KIND, SESSION_ELICITATION_RESPOND_KIND, SESSION_PERMISSION_RESPOND_KIND, SESSION_PROMPT_DISPOSITION_KIND, } from "@morty-build/client/protocol";
|
|
1
|
+
import { promptCompletion, SESSION_CANCEL_BEFORE_START_KIND, SESSION_CANCEL_KIND, SESSION_CLOSE_KIND, SESSION_CLOSED_KIND, SESSION_ELICITATION_RESPOND_KIND, SESSION_INTERACTION_ANSWERED_KIND, SESSION_PERMISSION_RESPOND_KIND, SESSION_PROMPT_DISPOSITION_KIND, SESSION_PROMPT_STEERED_KIND, SESSION_TURN_STOPPED_KIND, SESSION_TURN_WITHDRAWN_KIND, } from "@morty-build/client/protocol";
|
|
2
2
|
import { SessionError } from "../../../session/api/session-error.js";
|
|
3
3
|
import { settleAbandonedTurn } from "../../../session/prompt/prompt-lifecycle.js";
|
|
4
4
|
import { reportOperationFailure, send } from "../transport.js";
|
|
5
|
+
import { reply, replyFailure, replySettledFailure, settledCommand } from "../turn-replies.js";
|
|
6
|
+
/** Answers a request that waited for its Turn to end with how the Turn ended. */
|
|
7
|
+
function replyStopped({ operations, socket }, { commandId, requestId, sessionId, }) {
|
|
8
|
+
const settled = settledCommand(operations, commandId);
|
|
9
|
+
if (settled.kind === "completed") {
|
|
10
|
+
reply(socket, {
|
|
11
|
+
commandId,
|
|
12
|
+
kind: SESSION_TURN_STOPPED_KIND,
|
|
13
|
+
requestId,
|
|
14
|
+
sessionId,
|
|
15
|
+
stopReason: settled.stopReason,
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
replySettledFailure(socket, requestId, sessionId, settled);
|
|
20
|
+
}
|
|
5
21
|
export const sessionCancelCommand = {
|
|
6
22
|
kind: SESSION_CANCEL_KIND,
|
|
7
|
-
handle: (
|
|
23
|
+
handle: (context, message) => {
|
|
8
24
|
if (message.kind !== SESSION_CANCEL_KIND) {
|
|
9
25
|
throw new Error("Command kind mismatch");
|
|
10
26
|
}
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
const { eventProjection, operations, sessions, sessionTurns, signal, socket } = context;
|
|
28
|
+
const { commandId, requestId, sessionId } = message;
|
|
29
|
+
const turn = sessionTurns.get(commandId, sessionId);
|
|
30
|
+
const stop = async () => {
|
|
31
|
+
if (turn === undefined) {
|
|
32
|
+
await settleAbandonedTurn(eventProjection, operations, message);
|
|
33
|
+
if (!operations.isTerminalExecution(commandId, sessionId)) {
|
|
34
|
+
replyFailure(socket, requestId, sessionId, "turn_not_active", "The turn is not running.");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const cancellation = turn.requestCancellation();
|
|
40
|
+
if (cancellation.kind === "running") {
|
|
41
|
+
await sessions.cancelPrompt(sessionId, cancellation.execution, signal);
|
|
42
|
+
}
|
|
43
|
+
await operations.settlement(commandId, sessionId, signal);
|
|
44
|
+
}
|
|
45
|
+
replyStopped(context, message);
|
|
46
|
+
};
|
|
47
|
+
void stop().catch((error) => {
|
|
48
|
+
if (!signal.aborted) {
|
|
49
|
+
reportOperationFailure(socket, requestId, sessionId, error);
|
|
50
|
+
}
|
|
24
51
|
});
|
|
25
52
|
},
|
|
26
53
|
};
|
|
27
54
|
export const sessionCancelBeforeStartCommand = {
|
|
28
55
|
kind: SESSION_CANCEL_BEFORE_START_KIND,
|
|
29
|
-
handle: ({ eventProjection, operations, sessionTurns, socket }, message) => {
|
|
56
|
+
handle: ({ eventProjection, operations, sessionTurns, signal, socket }, message) => {
|
|
30
57
|
if (message.kind !== SESSION_CANCEL_BEFORE_START_KIND) {
|
|
31
58
|
throw new Error("Command kind mismatch");
|
|
32
59
|
}
|
|
33
|
-
|
|
34
|
-
|
|
60
|
+
const { commandId, requestId, sessionId } = message;
|
|
61
|
+
const withdrawn = () => reply(socket, { commandId, kind: SESSION_TURN_WITHDRAWN_KIND, requestId, sessionId });
|
|
62
|
+
const alreadyStarted = () => reportOperationFailure(socket, requestId, sessionId, new SessionError("turn_already_started", "The message already started and could not be withdrawn"));
|
|
63
|
+
if (operations.hasStarted(commandId, sessionId)) {
|
|
64
|
+
alreadyStarted();
|
|
35
65
|
return;
|
|
36
66
|
}
|
|
37
|
-
const turn = sessionTurns.get(
|
|
67
|
+
const turn = sessionTurns.get(commandId, sessionId);
|
|
38
68
|
if (turn === undefined) {
|
|
39
|
-
const cancelled = operations.recordCancellationBeforeAdmission(
|
|
69
|
+
const cancelled = operations.recordCancellationBeforeAdmission(commandId, sessionId);
|
|
40
70
|
const outcome = cancelled.kind === "unavailable" || cancelled.kind === "expired"
|
|
41
71
|
? undefined
|
|
42
72
|
: cancelled.kind === "restated"
|
|
@@ -46,19 +76,42 @@ export const sessionCancelBeforeStartCommand = {
|
|
|
46
76
|
outcome.payload.kind === "prompt.completed" &&
|
|
47
77
|
promptCompletion(outcome.payload).kind === "cancelled") {
|
|
48
78
|
if (cancelled.kind === "restated") {
|
|
49
|
-
eventProjection.restateOutcome(
|
|
79
|
+
eventProjection.restateOutcome(sessionId, cancelled.outcome);
|
|
80
|
+
withdrawn();
|
|
50
81
|
return;
|
|
51
82
|
}
|
|
52
|
-
void eventProjection
|
|
53
|
-
|
|
83
|
+
void eventProjection
|
|
84
|
+
.recordOutcome(sessionId, outcome)
|
|
85
|
+
.then(withdrawn)
|
|
86
|
+
.catch((error) => {
|
|
87
|
+
reportOperationFailure(socket, requestId, sessionId, error);
|
|
54
88
|
});
|
|
55
89
|
return;
|
|
56
90
|
}
|
|
57
|
-
reportOperationFailure(socket,
|
|
91
|
+
reportOperationFailure(socket, requestId, sessionId, new SessionError("turn_not_active", "The command is not waiting to start"));
|
|
58
92
|
return;
|
|
59
93
|
}
|
|
60
94
|
// No await separates checking admission from requesting cancellation.
|
|
61
95
|
turn.requestCancellation();
|
|
96
|
+
void operations
|
|
97
|
+
.progress(commandId, sessionId, signal)
|
|
98
|
+
.then((progress) => {
|
|
99
|
+
if (progress === "started") {
|
|
100
|
+
alreadyStarted();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const settled = settledCommand(operations, commandId);
|
|
104
|
+
if (settled.kind !== "completed") {
|
|
105
|
+
replySettledFailure(socket, requestId, sessionId, settled);
|
|
106
|
+
}
|
|
107
|
+
else if (settled.cancelledBeforeStart) {
|
|
108
|
+
withdrawn();
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
alreadyStarted();
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
.catch(() => undefined);
|
|
62
115
|
},
|
|
63
116
|
};
|
|
64
117
|
export const sessionCloseCommand = {
|
|
@@ -79,25 +132,42 @@ export const sessionCloseCommand = {
|
|
|
79
132
|
};
|
|
80
133
|
export const promptDispositionCommand = {
|
|
81
134
|
kind: SESSION_PROMPT_DISPOSITION_KIND,
|
|
82
|
-
handle: ({ diagnostics, operations, sessionTurns, socket }, message) => {
|
|
135
|
+
handle: ({ diagnostics, operations, sessionTurns, signal, socket }, message) => {
|
|
83
136
|
if (message.kind !== SESSION_PROMPT_DISPOSITION_KIND) {
|
|
84
137
|
throw new Error("Command kind mismatch");
|
|
85
138
|
}
|
|
86
|
-
const
|
|
139
|
+
const { commandId, requestId, sessionId } = message;
|
|
140
|
+
const turn = sessionTurns.get(commandId, sessionId);
|
|
87
141
|
const result = turn?.promoteQueuedPrompt(message) ?? "unavailable";
|
|
88
142
|
if (result === "accepted") {
|
|
143
|
+
// The steered prompt is answered once it starts inside the running Turn.
|
|
144
|
+
void operations
|
|
145
|
+
.progress(commandId, sessionId, signal)
|
|
146
|
+
.then((progress) => {
|
|
147
|
+
if (progress === "started") {
|
|
148
|
+
reply(socket, { commandId, kind: SESSION_PROMPT_STEERED_KIND, requestId, sessionId });
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const settled = settledCommand(operations, commandId);
|
|
152
|
+
if (settled.kind !== "completed") {
|
|
153
|
+
replySettledFailure(socket, requestId, sessionId, settled);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
replyFailure(socket, requestId, sessionId, "turn_not_active", "The message ended before it was steered.");
|
|
157
|
+
})
|
|
158
|
+
.catch(() => undefined);
|
|
89
159
|
return;
|
|
90
160
|
}
|
|
91
|
-
const started = result === "already-started" || operations.hasStarted(
|
|
161
|
+
const started = result === "already-started" || operations.hasStarted(commandId, sessionId);
|
|
92
162
|
const error = started
|
|
93
163
|
? new SessionError("turn_already_started", "The message already left the queue and could not be steered")
|
|
94
164
|
: new SessionError("turn_not_active", "The message is no longer waiting to be steered");
|
|
95
|
-
diagnostics.daemonDiagnostic("session_prompt_disposition_failed",
|
|
165
|
+
diagnostics.daemonDiagnostic("session_prompt_disposition_failed", commandId, {
|
|
96
166
|
code: error.code,
|
|
97
|
-
commandId
|
|
98
|
-
sessionId
|
|
167
|
+
commandId,
|
|
168
|
+
sessionId,
|
|
99
169
|
});
|
|
100
|
-
reportOperationFailure(socket,
|
|
170
|
+
reportOperationFailure(socket, requestId, sessionId, error);
|
|
101
171
|
},
|
|
102
172
|
};
|
|
103
173
|
export const permissionRespondCommand = {
|
|
@@ -106,8 +176,12 @@ export const permissionRespondCommand = {
|
|
|
106
176
|
if (message.kind !== SESSION_PERMISSION_RESPOND_KIND) {
|
|
107
177
|
throw new Error("Command kind mismatch");
|
|
108
178
|
}
|
|
109
|
-
|
|
110
|
-
|
|
179
|
+
const { interactionId, requestId, sessionId } = message;
|
|
180
|
+
void sessions
|
|
181
|
+
.respondPermission(message)
|
|
182
|
+
.then(() => reply(socket, { interactionId, kind: SESSION_INTERACTION_ANSWERED_KIND, requestId, sessionId }))
|
|
183
|
+
.catch((error) => {
|
|
184
|
+
reportOperationFailure(socket, requestId, sessionId, error);
|
|
111
185
|
});
|
|
112
186
|
},
|
|
113
187
|
};
|
|
@@ -117,8 +191,12 @@ export const elicitationRespondCommand = {
|
|
|
117
191
|
if (message.kind !== SESSION_ELICITATION_RESPOND_KIND) {
|
|
118
192
|
throw new Error("Command kind mismatch");
|
|
119
193
|
}
|
|
120
|
-
|
|
121
|
-
|
|
194
|
+
const { interactionId, requestId, sessionId } = message;
|
|
195
|
+
void sessions
|
|
196
|
+
.respondElicitation(message)
|
|
197
|
+
.then(() => reply(socket, { interactionId, kind: SESSION_INTERACTION_ANSWERED_KIND, requestId, sessionId }))
|
|
198
|
+
.catch((error) => {
|
|
199
|
+
reportOperationFailure(socket, requestId, sessionId, error);
|
|
122
200
|
});
|
|
123
201
|
},
|
|
124
202
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,
|
|
1
|
+
{"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,gCAAgC,EAChC,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,EAChC,iCAAiC,EACjC,+BAA+B,EAC/B,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGlF,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9F,iFAAiF;AACjF,SAAS,YAAY,CACjB,EAAE,UAAU,EAAE,MAAM,EAAkB,EACtC,EACI,SAAS,EACT,SAAS,EACT,SAAS,GAC4E;IAEzF,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,EAAE;YACV,SAAS;YACT,IAAI,EAAE,yBAAyB;YAC/B,SAAS;YACT,SAAS;YACT,UAAU,EAAE,OAAO,CAAC,UAAU;SACjC,CAAC,CAAC;QACH,OAAO;IACX,CAAC;IACD,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAmB;IAChD,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAQ,EAAE;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACxF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACpD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;YACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAM,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;oBACxD,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;oBAC1F,OAAO;gBACX,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAChD,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;YACD,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAmB;IAC3D,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAQ,EAAE;QACrF,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACpD,MAAM,SAAS,GAAG,GAAS,EAAE,CACzB,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1F,MAAM,cAAc,GAAG,GAAS,EAAE,CAC9B,sBAAsB,CAClB,MAAM,EACN,SAAS,EACT,SAAS,EACT,IAAI,YAAY,CAAC,sBAAsB,EAAE,wDAAwD,CAAC,CACrG,CAAC;QACN,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAC9C,cAAc,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,UAAU,CAAC,iCAAiC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,MAAM,OAAO,GACT,SAAS,CAAC,IAAI,KAAK,aAAa,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;gBAC5D,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;oBAC7B,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;oBACzB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;YAC9B,IACI,OAAO,EAAE,IAAI,KAAK,oBAAoB;gBACtC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,kBAAkB;gBAC3C,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,EACxD,CAAC;gBACC,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAChC,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC7D,SAAS,EAAE,CAAC;oBACZ,OAAO;gBACX,CAAC;gBACD,KAAK,eAAe;qBACf,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC;qBACjC,IAAI,CAAC,SAAS,CAAC;qBACf,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBACtB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;gBACP,OAAO;YACX,CAAC;YACD,sBAAsB,CAClB,MAAM,EACN,SAAS,EACT,SAAS,EACT,IAAI,YAAY,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,CAC7E,CAAC;YACF,OAAO;QACX,CAAC;QACD,sEAAsE;QACtE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,KAAK,UAAU;aACV,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;aACtC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,cAAc,EAAE,CAAC;gBACjB,OAAO;YACX,CAAC;YACD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/B,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACtC,SAAS,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,cAAc,EAAE,CAAC;YACrB,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IAC/C,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAQ,EAAE;QACpD,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,QAAQ;aACR,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;aACvC,IAAI,CAAC,GAAG,EAAE;YACP,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5G,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtB,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACX,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACpD,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAQ,EAAE;QACjF,IAAI,OAAO,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACpD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC;QACnE,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACxB,yEAAyE;YACzE,KAAK,UAAU;iBACV,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;iBACtC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;oBACtF,OAAO;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBACtD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC/B,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3D,OAAO;gBACX,CAAC;gBACD,YAAY,CACR,MAAM,EACN,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,0CAA0C,CAC7C,CAAC;YACN,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,iBAAiB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,OAAO;YACjB,CAAC,CAAC,IAAI,YAAY,CAAC,sBAAsB,EAAE,6DAA6D,CAAC;YACzG,CAAC,CAAC,IAAI,YAAY,CAAC,iBAAiB,EAAE,gDAAgD,CAAC,CAAC;QAC5F,WAAW,CAAC,gBAAgB,CAAC,mCAAmC,EAAE,SAAS,EAAE;YACzE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS;YACT,SAAS;SACZ,CAAC,CAAC;QACH,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACpD,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAQ,EAAE;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACxD,KAAK,QAAQ;aACR,iBAAiB,CAAC,OAAO,CAAC;aAC1B,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,iCAAiC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;aAC3G,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACX,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAmB;IACrD,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAQ,EAAE;QAC5C,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAgC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACxD,KAAK,QAAQ;aACR,kBAAkB,CAAC,OAAO,CAAC;aAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,iCAAiC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;aAC3G,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACX,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/prompt.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/prompt.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,eAAO,MAAM,oBAAoB,EAAE,cA6JlC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { encodeSessionPromptCommand, SESSION_PROMPT_KIND, SessionPromptDisposition, } from "@morty-build/client/protocol";
|
|
2
2
|
import { executePrompt } from "../../../session/prompt/execute-prompt.js";
|
|
3
3
|
import { send } from "../transport.js";
|
|
4
|
+
import { reply, replySettledFailure, settledCommand } from "../turn-replies.js";
|
|
4
5
|
export const sessionPromptCommand = {
|
|
5
6
|
kind: SESSION_PROMPT_KIND,
|
|
6
7
|
handle: (context, message) => {
|
|
@@ -42,9 +43,9 @@ export const sessionPromptCommand = {
|
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
44
45
|
if (receipt.kind === "duplicate") {
|
|
45
|
-
// A retry
|
|
46
|
-
//
|
|
47
|
-
|
|
46
|
+
// A retry is answered with where the original command stands, as its receipt records it. A settled outcome
|
|
47
|
+
// is also restated for clients that missed it.
|
|
48
|
+
reply(context.socket, {
|
|
48
49
|
kind: "session.prompt.accepted",
|
|
49
50
|
requestId: message.commandId,
|
|
50
51
|
sessionId: message.sessionId,
|
|
@@ -72,11 +73,38 @@ export const sessionPromptCommand = {
|
|
|
72
73
|
}
|
|
73
74
|
const turn = context.sessionTurns.start(message, receipt.attemptId);
|
|
74
75
|
context.eventProjection.requested(message);
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
|
|
76
|
+
const { commandId, sessionId } = message;
|
|
77
|
+
// A prompt is answered once, at the first of: it entered the queue, it started, or it ended without starting.
|
|
78
|
+
let answered = false;
|
|
79
|
+
const accepted = (state) => {
|
|
80
|
+
if (!answered) {
|
|
81
|
+
answered = true;
|
|
82
|
+
reply(context.socket, { kind: "session.prompt.accepted", requestId: commandId, sessionId, state });
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const ended = () => {
|
|
86
|
+
if (answered) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const settled = settledCommand(context.operations, commandId);
|
|
90
|
+
if (settled.kind === "completed") {
|
|
91
|
+
accepted("settled");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
answered = true;
|
|
95
|
+
replySettledFailure(context.socket, commandId, sessionId, settled);
|
|
96
|
+
};
|
|
97
|
+
const waiting = new AbortController();
|
|
98
|
+
context.operations
|
|
99
|
+
.progress(commandId, sessionId, AbortSignal.any([waiting.signal, context.signal]))
|
|
100
|
+
.then((progress) => {
|
|
101
|
+
if (progress === "started") {
|
|
102
|
+
accepted("running");
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
.catch(() => undefined);
|
|
78
106
|
const queueChanged = () => {
|
|
79
|
-
void context.eventProjection.queueChanged(
|
|
107
|
+
void context.eventProjection.queueChanged(sessionId, commandId).catch((error) => {
|
|
80
108
|
console.error("Could not record queue change", error);
|
|
81
109
|
});
|
|
82
110
|
};
|
|
@@ -98,6 +126,7 @@ export const sessionPromptCommand = {
|
|
|
98
126
|
epoch: turn.epoch,
|
|
99
127
|
waitForSessionAdmission: (signal) => context.sessionTurns.admitAndWait(turn, signal, () => {
|
|
100
128
|
queueChanged();
|
|
129
|
+
accepted("queued");
|
|
101
130
|
}),
|
|
102
131
|
signal: turn.signal,
|
|
103
132
|
cancellationRequested: turn.cancellationRequested,
|
|
@@ -106,6 +135,8 @@ export const sessionPromptCommand = {
|
|
|
106
135
|
console.error("Morty daemon turn failed", error);
|
|
107
136
|
})
|
|
108
137
|
.finally(() => {
|
|
138
|
+
waiting.abort();
|
|
139
|
+
ended();
|
|
109
140
|
context.sessionTurns.finish(turn);
|
|
110
141
|
context.eventProjection.publishTerminal(message.sessionId, message.commandId);
|
|
111
142
|
// Only a prompt that entered the queue changes it by leaving.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,GAC3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type DaemonToServiceMessage } from "@morty-build/client/protocol";
|
|
2
|
+
import { WebSocket } from "undici";
|
|
3
|
+
import type { ExecutionReceipts } from "../../session/turn/execution-receipts.ts";
|
|
4
|
+
/** How a settled command ended, as the ledger's outcome records it. */
|
|
5
|
+
export type SettledCommand = {
|
|
6
|
+
readonly kind: "completed";
|
|
7
|
+
readonly stopReason: string;
|
|
8
|
+
readonly cancelledBeforeStart: boolean;
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: "failed";
|
|
11
|
+
readonly code: string;
|
|
12
|
+
readonly message: string;
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: "unavailable";
|
|
15
|
+
};
|
|
16
|
+
export declare function settledCommand(operations: ExecutionReceipts, commandId: string): SettledCommand;
|
|
17
|
+
/**
|
|
18
|
+
* Answers a request on the connection that carried it. A reply that outlives its connection has no reader: the Relay
|
|
19
|
+
* failed the request when that connection closed.
|
|
20
|
+
*/
|
|
21
|
+
export declare function reply(socket: WebSocket, message: DaemonToServiceMessage): void;
|
|
22
|
+
export declare function replyFailure(socket: WebSocket, requestId: string, sessionId: string, code: string, message: string): void;
|
|
23
|
+
/** Answers a request with a settled command's failure, or with the loss of its outcome. */
|
|
24
|
+
export declare function replySettledFailure(socket: WebSocket, requestId: string, sessionId: string, settled: Exclude<SettledCommand, {
|
|
25
|
+
readonly kind: "completed";
|
|
26
|
+
}>): void;
|
|
27
|
+
//# sourceMappingURL=turn-replies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-replies.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/command/turn-replies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAGlF,uEAAuE;AACvE,MAAM,MAAM,cAAc,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAEvC,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAmB/F;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAI9E;AAED,wBAAgB,YAAY,CACxB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAChB,IAAI,CAEN;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GACjE,IAAI,CAYN"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { promptCompletion } from "@morty-build/client/protocol";
|
|
2
|
+
import { WebSocket } from "undici";
|
|
3
|
+
import { send } from "./transport.js";
|
|
4
|
+
export function settledCommand(operations, commandId) {
|
|
5
|
+
const outcome = operations.outcome(commandId);
|
|
6
|
+
if (outcome?.type !== "lifecycle-metadata") {
|
|
7
|
+
return { kind: "unavailable" };
|
|
8
|
+
}
|
|
9
|
+
const payload = outcome.payload;
|
|
10
|
+
switch (payload.kind) {
|
|
11
|
+
case "prompt.completed":
|
|
12
|
+
return {
|
|
13
|
+
kind: "completed",
|
|
14
|
+
stopReason: payload.stopReason,
|
|
15
|
+
cancelledBeforeStart: promptCompletion(payload).kind === "cancelled",
|
|
16
|
+
};
|
|
17
|
+
case "prompt.failed":
|
|
18
|
+
case "prompt.failed-before-start":
|
|
19
|
+
return { kind: "failed", code: payload.code, message: payload.message };
|
|
20
|
+
default:
|
|
21
|
+
return { kind: "unavailable" };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Answers a request on the connection that carried it. A reply that outlives its connection has no reader: the Relay
|
|
26
|
+
* failed the request when that connection closed.
|
|
27
|
+
*/
|
|
28
|
+
export function reply(socket, message) {
|
|
29
|
+
if (socket.readyState === WebSocket.OPEN) {
|
|
30
|
+
send(socket, message);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function replyFailure(socket, requestId, sessionId, code, message) {
|
|
34
|
+
reply(socket, { code, kind: "session.operation.failed", message, requestId, sessionId });
|
|
35
|
+
}
|
|
36
|
+
/** Answers a request with a settled command's failure, or with the loss of its outcome. */
|
|
37
|
+
export function replySettledFailure(socket, requestId, sessionId, settled) {
|
|
38
|
+
if (settled.kind === "failed") {
|
|
39
|
+
replyFailure(socket, requestId, sessionId, settled.code, settled.message);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
replyFailure(socket, requestId, sessionId, "command_result_expired", "The command ended, but its result is no longer available.");
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=turn-replies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-replies.js","sourceRoot":"","sources":["../../../../src/engine/runtime/command/turn-replies.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAQtC,MAAM,UAAU,cAAc,CAAC,UAA6B,EAAE,SAAiB;IAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,OAAO,EAAE,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,kBAAkB;YACnB,OAAO;gBACH,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW;aACvE,CAAC;QACN,KAAK,eAAe,CAAC;QACrB,KAAK,4BAA4B;YAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAC5E;YACI,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACvC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,MAAiB,EAAE,OAA+B;IACpE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,MAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,IAAY,EACZ,OAAe;IAEf,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB,CAC/B,MAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,OAAgE;IAEhE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO;IACX,CAAC;IACD,YAAY,CACR,MAAM,EACN,SAAS,EACT,SAAS,EACT,wBAAwB,EACxB,2DAA2D,CAC9D,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-relay-connection.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/relay/run-relay-connection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"run-relay-connection.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/relay/run-relay-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,KAAK,oBAAoB,EAC5B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAejF,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,yBAAyB,EAAE,CAChC,IAAI,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAC5C,MAAM,EAAE,WAAW,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB;AAED,wBAAsB,kBAAkB,CAAC,EACrC,YAAY,EACZ,MAAM,EACN,yBAAyB,EACzB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,QAAQ,EACR,eAAe,EACf,WAAW,EACX,WAAW,EACX,MAAM,EACN,KAAK,GACR,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiMxC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { decodeKnownServiceToDaemonMessage, RUNTIME_HEARTBEAT_ACK_KIND, RUNTIME_LIVENESS_READY_KIND, } from "@morty-build/client/protocol";
|
|
1
|
+
import { decodeKnownServiceToDaemonMessage, isIdentifier, RUNTIME_HEARTBEAT_ACK_KIND, RUNTIME_LIVENESS_READY_KIND, } from "@morty-build/client/protocol";
|
|
2
2
|
import { WebSocket } from "undici";
|
|
3
3
|
import { createRuntimeCommandDispatcher } from "../command/dispatcher.js";
|
|
4
4
|
import { send } from "../command/transport.js";
|
|
5
|
+
import { replyFailure } from "../command/turn-replies.js";
|
|
5
6
|
import { connectRelay } from "./connect.js";
|
|
6
7
|
import { RelayConnectionLiveness } from "./liveness.js";
|
|
7
8
|
import { isRuntimeRelayRevocation, RuntimeRelayRevokedError } from "./runtime-revocation.js";
|
|
@@ -153,6 +154,7 @@ export async function runRelayConnection({ resolveAgent, config, reportUpgradeAv
|
|
|
153
154
|
diagnostics.daemonDiagnostic("protocol_message_discarded", "unknown", {
|
|
154
155
|
reason: "unsupported_message",
|
|
155
156
|
});
|
|
157
|
+
refuseUnsupportedRequest(socket, encoded);
|
|
156
158
|
return;
|
|
157
159
|
}
|
|
158
160
|
const kind = message.kind;
|
|
@@ -191,4 +193,26 @@ export async function runRelayConnection({ resolveAgent, config, reportUpgradeAv
|
|
|
191
193
|
relay.release(new Error("Relay connection released"));
|
|
192
194
|
}
|
|
193
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Answers a request this Runtime cannot run, as sent, so its sender learns at once that nothing was executed instead of
|
|
198
|
+
* waiting out its deadline. Only a message naming its own `requestId` can be answered.
|
|
199
|
+
*/
|
|
200
|
+
function refuseUnsupportedRequest(socket, encoded) {
|
|
201
|
+
let value;
|
|
202
|
+
try {
|
|
203
|
+
value = JSON.parse(encoded);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (typeof value !== "object" || value === null) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const requestId = Reflect.get(value, "requestId");
|
|
212
|
+
const sessionId = Reflect.get(value, "sessionId");
|
|
213
|
+
if (!isIdentifier(requestId)) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
replyFailure(socket, requestId, isIdentifier(sessionId) ? sessionId : "", "unsupported_operation", "This Morty Runtime does not support the requested operation.");
|
|
217
|
+
}
|
|
194
218
|
//# sourceMappingURL=run-relay-connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-relay-connection.js","sourceRoot":"","sources":["../../../../src/engine/runtime/relay/run-relay-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,GAE9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAqB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAUtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-relay-connection.js","sourceRoot":"","sources":["../../../../src/engine/runtime/relay/run-relay-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ export declare class RuntimeSessionEventPublisher implements SessionEventSink {
|
|
|
11
11
|
readonly disconnect: (socket: WebSocket) => void;
|
|
12
12
|
readonly close: () => void;
|
|
13
13
|
readonly flush: () => void;
|
|
14
|
-
readonly publishOperationFailure: (sessionId: string, requestId: string, code: string, message: string) => void;
|
|
15
14
|
readonly publishStatus: (event: SessionStatusChangedEvent) => void;
|
|
16
15
|
readonly publishInfo: (event: SessionInfoUpdatedEvent) => void;
|
|
17
16
|
readonly publishClosed: (event: SessionCloseNoticeEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-publisher.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/relay/session-event-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAiB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAShE,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAmB3D,+FAA+F;AAC/F,qBAAa,4BAA6B,YAAW,gBAAgB;;IASjE,YAAY,KAAK,EAAE,KAAK,EAEvB;IAED,QAAQ,CAAC,OAAO,WAAY,SAAS,KAAG,IAAI,CAO1C;IAEF,QAAQ,CAAC,UAAU,WAAY,SAAS,KAAG,IAAI,CAK7C;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAMvB;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAIvB;IAEF,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"session-event-publisher.d.ts","sourceRoot":"","sources":["../../../../src/engine/runtime/relay/session-event-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EACjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAiB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAShE,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAmB3D,+FAA+F;AAC/F,qBAAa,4BAA6B,YAAW,gBAAgB;;IASjE,YAAY,KAAK,EAAE,KAAK,EAEvB;IAED,QAAQ,CAAC,OAAO,WAAY,SAAS,KAAG,IAAI,CAO1C;IAEF,QAAQ,CAAC,UAAU,WAAY,SAAS,KAAG,IAAI,CAK7C;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAMvB;IAEF,QAAQ,CAAC,KAAK,QAAO,IAAI,CAIvB;IAEF,QAAQ,CAAC,aAAa,UAAW,yBAAyB,KAAG,IAAI,CAAsB;IACvF,QAAQ,CAAC,WAAW,UAAW,uBAAuB,KAAG,IAAI,CAAsB;IACnF,QAAQ,CAAC,aAAa,UAAW,uBAAuB,KAAG,IAAI,CAG7D;IAoBF,QAAQ,CAAC,OAAO,UAAW,gBAAgB,KAAG,IAAI,CAoEhD;IAgCF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAG1B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAyC1B;CACL"}
|
|
@@ -46,9 +46,6 @@ export class RuntimeSessionEventPublisher {
|
|
|
46
46
|
this.flushEvents(this.#connection.socket);
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
publishOperationFailure = (sessionId, requestId, code, message) => {
|
|
50
|
-
this.#send({ kind: "session.operation.failed", sessionId, requestId, code, message });
|
|
51
|
-
};
|
|
52
49
|
publishStatus = (event) => this.#send(event);
|
|
53
50
|
publishInfo = (event) => this.#send(event);
|
|
54
51
|
publishClosed = (event) => {
|