@morty-build/cli 0.4.28 → 0.4.30
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-SIBZGZID.js → chunk-GHEGGHSY.js} +200 -91
- package/dist/{chunk-SIBZGZID.js.map → chunk-GHEGGHSY.js.map} +3 -3
- package/dist/{chunk-XUKSI7PW.js → chunk-WEB2SWLO.js} +2 -2
- package/dist/{chunk-XUKSI7PW.js.map → chunk-WEB2SWLO.js.map} +1 -1
- package/dist/{cli-ZCPZAQL3.js → cli-M6DFM6EU.js} +3 -3
- package/dist/cli.js +2 -2
- package/dist/engine/runtime/command/registry/history.d.ts.map +1 -1
- package/dist/engine/runtime/command/registry/history.js +1 -24
- package/dist/engine/runtime/command/registry/history.js.map +1 -1
- package/dist/engine/session/api/session-layer.d.ts.map +1 -1
- package/dist/engine/session/api/session-layer.js +1 -0
- package/dist/engine/session/api/session-layer.js.map +1 -1
- package/dist/engine/session/history/session-event-history-projection.d.ts +1 -4
- package/dist/engine/session/history/session-event-history-projection.d.ts.map +1 -1
- package/dist/engine/session/history/session-event-history-projection.js +41 -2
- package/dist/engine/session/history/session-event-history-projection.js.map +1 -1
- package/dist/engine/session/history/session-history.d.ts +7 -2
- package/dist/engine/session/history/session-history.d.ts.map +1 -1
- package/dist/engine/session/history/session-history.js +85 -1
- package/dist/engine/session/history/session-history.js.map +1 -1
- package/dist/engine/session/live/agent-session.d.ts +9 -3
- package/dist/engine/session/live/agent-session.d.ts.map +1 -1
- package/dist/engine/session/live/agent-session.js +10 -7
- package/dist/engine/session/live/agent-session.js.map +1 -1
- package/dist/engine/session/manager/session-manager.d.ts +4 -1
- package/dist/engine/session/manager/session-manager.d.ts.map +1 -1
- package/dist/engine/session/manager/session-manager.js +12 -6
- package/dist/engine/session/manager/session-manager.js.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts +2 -4
- package/dist/engine/session/prompt/prompt-lifecycle.d.ts.map +1 -1
- package/dist/engine/session/prompt/prompt-lifecycle.js +0 -2
- package/dist/engine/session/prompt/prompt-lifecycle.js.map +1 -1
- package/dist/engine/session/turn/execution-receipts.d.ts +18 -6
- package/dist/engine/session/turn/execution-receipts.d.ts.map +1 -1
- package/dist/engine/session/turn/execution-receipts.js +19 -17
- 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-ZCPZAQL3.js.map → cli-M6DFM6EU.js.map} +0 -0
|
@@ -80,7 +80,7 @@ var __callDispose = (stack, error, hasError) => {
|
|
|
80
80
|
// package.json
|
|
81
81
|
var package_default = {
|
|
82
82
|
name: "@morty-build/cli",
|
|
83
|
-
version: "0.4.
|
|
83
|
+
version: "0.4.30",
|
|
84
84
|
description: "Morty CLI for installing, pairing, and operating the Morty background service.",
|
|
85
85
|
type: "module",
|
|
86
86
|
bin: {
|
|
@@ -176,4 +176,4 @@ export {
|
|
|
176
176
|
__callDispose,
|
|
177
177
|
package_default
|
|
178
178
|
};
|
|
179
|
-
//# sourceMappingURL=chunk-
|
|
179
|
+
//# sourceMappingURL=chunk-WEB2SWLO.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../package.json"],
|
|
4
|
-
"sourcesContent": ["{\n \"name\": \"@morty-build/cli\",\n \"version\": \"0.4.
|
|
4
|
+
"sourcesContent": ["{\n \"name\": \"@morty-build/cli\",\n \"version\": \"0.4.30\",\n \"description\": \"Morty CLI for installing, pairing, and operating the Morty background service.\",\n \"type\": \"module\",\n \"bin\": {\n \"morty\": \"dist/cli.js\"\n },\n \"exports\": {\n \"./engine\": {\n \"morty-source\": \"./src/exports/engine.ts\",\n \"types\": \"./dist/exports/engine.d.ts\",\n \"default\": \"./dist/engine.js\"\n }\n },\n \"files\": [\n \"dist\",\n \"LICENSE\",\n \"NOTICE\",\n \"THIRD-PARTY-NOTICES.txt\"\n ],\n \"engines\": {\n \"node\": \"^22.19.0 || ^24.20.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"exports\": {\n \"./engine\": {\n \"types\": \"./dist/exports/engine.d.ts\",\n \"import\": \"./dist/engine.js\",\n \"default\": \"./dist/engine.js\"\n }\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/moxt-ai/morty.git\",\n \"directory\": \"packages/cli\"\n },\n \"scripts\": {\n \"prebuild\": \"tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json\",\n \"build\": \"node scripts/build.ts && tsc --project tsconfig.build.json\",\n \"dev\": \"node --watch src/cli/entrypoint.ts\",\n \"pretypecheck\": \"tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json\",\n \"prepack\": \"pnpm build\",\n \"start\": \"node dist/cli.js\",\n \"typecheck\": \"tsc --project tsconfig.json && tsc --project tests/tsconfig.json\",\n \"pretest:controlled\": \"pnpm build && pnpm pack:test\",\n \"test:controlled\": \"vitest run tests/sessions tests/runtime\",\n \"pretest:manual\": \"pnpm pretest:controlled\",\n \"test:manual\": \"vitest run tests/manual\",\n \"pretest:agents\": \"pnpm build && pnpm pack:test\",\n \"test:agents\": \"vitest run tests/agents --maxWorkers=2\",\n \"pretest:pressure\": \"tsc --project src/engine/acp/harness/claude/upstream/tsconfig.json && tsc --project src/engine/acp/harness/pi/upstream/tsconfig.json\",\n \"test:pressure\": \"node tests/pressure/concurrent-sessions.mjs\",\n \"pack:test\": \"node scripts/pack-test-release.ts\"\n },\n \"dependencies\": {\n \"undici\": \"8.12.2\"\n },\n \"devDependencies\": {\n \"@agentclientprotocol/sdk\": \"^1.4.0\",\n \"@anthropic-ai/claude-agent-sdk\": \"0.3.257\",\n \"@anthropic-ai/sdk\": \"0.122.0\",\n \"@morty-build/client\": \"workspace:*\",\n \"@morty-build/platform-test-support\": \"workspace:*\",\n \"@types/node\": \"^24.13.5\",\n \"@types/semver\": \"^7.8.0\",\n \"@types/ws\": \"^8.18.1\",\n \"commander\": \"15.0.0\",\n \"drizzle-kit\": \"1.0.0-rc.4\",\n \"drizzle-orm\": \"1.0.0-rc.4\",\n \"esbuild\": \"0.28.2\",\n \"semver\": \"^7.8.5\",\n \"valibot\": \"1.5.0\",\n \"ws\": \"^8.21.3\",\n \"zod\": \"^4.6.7\",\n \"@morty-build/local-state\": \"workspace:*\",\n \"miniflare\": \"catalog:\"\n },\n \"keywords\": [],\n \"author\": \"Moxt\",\n \"license\": \"Apache-2.0\",\n \"bugs\": {\n \"url\": \"https://github.com/moxt-ai/morty/issues\"\n },\n \"homepage\": \"https://morty.build\",\n \"private\": false\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EACI,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,KAAO;AAAA,IACH,OAAS;AAAA,EACb;AAAA,EACA,SAAW;AAAA,IACP,YAAY;AAAA,MACR,gBAAgB;AAAA,MAChB,OAAS;AAAA,MACT,SAAW;AAAA,IACf;AAAA,EACJ;AAAA,EACA,OAAS;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACA,SAAW;AAAA,IACP,MAAQ;AAAA,EACZ;AAAA,EACA,eAAiB;AAAA,IACb,QAAU;AAAA,IACV,SAAW;AAAA,MACP,YAAY;AAAA,QACR,OAAS;AAAA,QACT,QAAU;AAAA,QACV,SAAW;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,YAAc;AAAA,IACV,MAAQ;AAAA,IACR,KAAO;AAAA,IACP,WAAa;AAAA,EACjB;AAAA,EACA,SAAW;AAAA,IACP,UAAY;AAAA,IACZ,OAAS;AAAA,IACT,KAAO;AAAA,IACP,cAAgB;AAAA,IAChB,SAAW;AAAA,IACX,OAAS;AAAA,IACT,WAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,aAAa;AAAA,EACjB;AAAA,EACA,cAAgB;AAAA,IACZ,QAAU;AAAA,EACd;AAAA,EACA,iBAAmB;AAAA,IACf,4BAA4B;AAAA,IAC5B,kCAAkC;AAAA,IAClC,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,sCAAsC;AAAA,IACtC,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,WAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,SAAW;AAAA,IACX,QAAU;AAAA,IACV,SAAW;AAAA,IACX,IAAM;AAAA,IACN,KAAO;AAAA,IACP,4BAA4B;AAAA,IAC5B,WAAa;AAAA,EACjB;AAAA,EACA,UAAY,CAAC;AAAA,EACb,QAAU;AAAA,EACV,SAAW;AAAA,EACX,MAAQ;AAAA,IACJ,KAAO;AAAA,EACX;AAAA,EACA,UAAY;AAAA,EACZ,SAAW;AACf;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -36,10 +36,10 @@ import {
|
|
|
36
36
|
validateLocalPath,
|
|
37
37
|
validatePairingId,
|
|
38
38
|
writeInstallationFile
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-GHEGGHSY.js";
|
|
40
40
|
import {
|
|
41
41
|
package_default
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-WEB2SWLO.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-M6DFM6EU.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-WEB2SWLO.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-M6DFM6EU.js");
|
|
2017
2017
|
await runCLI();
|
|
2018
2018
|
}
|
|
2019
2019
|
//# sourceMappingURL=cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/history.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/history.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+LvD,eAAO,MAAM,6BAA6B,EAAE,cAmB3C,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,cAiB3C,CAAC"}
|
|
@@ -3,19 +3,6 @@ import { operationErrorCode } from "../../../infra/operation-error.js";
|
|
|
3
3
|
import { SessionError } from "../../../session/api/session-error.js";
|
|
4
4
|
import { resolveSessionDirectories } from "../../../session/workspace/resolve-session-directories.js";
|
|
5
5
|
import { reportOperationFailure, send } from "../transport.js";
|
|
6
|
-
/** The outcomes whose prompt recorded a user message among `events`. */
|
|
7
|
-
function onPage(outcomes, events) {
|
|
8
|
-
const messageIds = new Set();
|
|
9
|
-
for (const event of events) {
|
|
10
|
-
if (event.type === "acp" &&
|
|
11
|
-
event.payload.sessionUpdate === "user_message_chunk" &&
|
|
12
|
-
event.payload.messageId !== undefined &&
|
|
13
|
-
event.payload.messageId !== null) {
|
|
14
|
-
messageIds.add(event.payload.messageId);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return outcomes.filter(({ payload }) => payload.messageId !== undefined && messageIds.has(payload.messageId));
|
|
18
|
-
}
|
|
19
6
|
async function loadHistoryPage(sessionId, eventLimit, initialCursor, queuedPromptRequests, load) {
|
|
20
7
|
let cursor = initialCursor;
|
|
21
8
|
let loaded = [];
|
|
@@ -52,7 +39,6 @@ async function loadHistoryPage(sessionId, eventLimit, initialCursor, queuedPromp
|
|
|
52
39
|
return {
|
|
53
40
|
events: {
|
|
54
41
|
events: orderedEvents.map(({ event }) => event),
|
|
55
|
-
promptOutcomes: [],
|
|
56
42
|
nextCursor,
|
|
57
43
|
sessionGenerationId,
|
|
58
44
|
tailCursor: orderedEvents.at(-1)?.event.eventId ?? "",
|
|
@@ -80,19 +66,10 @@ async function executeSessionHistoryPageLoad(socket, command, config, resolveAge
|
|
|
80
66
|
signal,
|
|
81
67
|
};
|
|
82
68
|
const recovery = eventProjection.promptRequestRecovery(command.sessionId);
|
|
83
|
-
// Read before the page: a prompt's terminal event is stored before its receipt settles, so every outcome read
|
|
84
|
-
// here is within the page's live boundary and never arrives again as a live event.
|
|
85
|
-
const settled = eventProjection.promptOutcomes(command.sessionId);
|
|
86
69
|
const events = await loadHistoryPage(command.sessionId, command.eventLimit, command.cursor, recovery.queuedPromptRequests, async (eventLimit, cursor) => await sessions.loadSessionEvents(loadOptions, eventLimit, cursor));
|
|
87
70
|
signal.throwIfAborted();
|
|
88
71
|
send(socket, {
|
|
89
|
-
events
|
|
90
|
-
...events,
|
|
91
|
-
events: {
|
|
92
|
-
...events.events,
|
|
93
|
-
promptOutcomes: onPage(settled, events.events.events),
|
|
94
|
-
},
|
|
95
|
-
},
|
|
72
|
+
events,
|
|
96
73
|
kind: SESSION_HISTORY_PAGE_LOADED_KIND,
|
|
97
74
|
requestId: command.requestId,
|
|
98
75
|
sessionId: command.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/history.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../../../src/engine/runtime/command/registry/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-layer.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/api/session-layer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmCvE,2GAA2G;AAC3G,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"session-layer.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/api/session-layer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmCvE,2GAA2G;AAC3G,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB;;;;;;;;EAqH7D"}
|
|
@@ -68,6 +68,7 @@ export function buildSessionLayer(options) {
|
|
|
68
68
|
onSessionStatusChanged: sink.publishStatus,
|
|
69
69
|
onSessionClosed: sink.publishClosed,
|
|
70
70
|
lastTurn: operations.lastTurn,
|
|
71
|
+
settledTurns: operations.settledTurns,
|
|
71
72
|
timer,
|
|
72
73
|
});
|
|
73
74
|
const eventProjection = new PromptLifecycle(sink, async (sessionId, event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-layer.js","sourceRoot":"","sources":["../../../../src/engine/session/api/session-layer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-layer.js","sourceRoot":"","sources":["../../../../src/engine/session/api/session-layer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EACH,2BAA2B,EAC3B,sBAAsB,EACtB,6BAA6B,GAChC,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,sGAAsG;AACtG,MAAM,oBAAqB,SAAQ,mBAAmB;IACzC,mBAAmB,CAAyD;IAC5E,YAAY,CAA2C;IACvD,OAAO,CAAoC;IAEpD,YACI,MAAyC,EACzC,WAAqD,EACrD,kBAAkB,GAA2D,GAAG,EAAE,GAAE,CAAC;QAErF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEiB,oBAAoB,GAAG,CAAC,MAAc,EAAE,QAA4B,EAAQ,EAAE;QAC5F,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEgB,cAAc,GAAG,CAAC,KAAuB,EAAiB,EAAE;QAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEgB,MAAM,GAAG,CAAC,KAA8B,EAAiB,EAAE;QACzE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC;CACL;AAgBD,wGAAwG;AACxG,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC1D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACtG,MAAM,SAAS,GAAG,2BAA2B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,MAA+B,CAAC;IACpC,IAAI,UAA6B,CAAC;IAClC,IAAI,CAAC;QACD,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC5G,MAAM,GAAG,IAAI,uBAAuB,CAChC,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAC3E,IAAI,8BAA8B,CAAC,IAAI,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAClF,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC;IAChB,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,eAAe,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,IAAI,yBAAyB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC;QAC/B,QAAQ,EAAE,IAAI,oBAAoB,CAC9B,CAAC,KAAK,EAAE,EAAE;YACN,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,EACD,IAAI,CAAC,WAAW,EAChB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACjB,OAAO,CAAC,YAAY,EAAE,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9D,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC,CACJ;QACD,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,eAAe,EAAE,QAAQ;QACzB,sBAAsB,EAAE,IAAI,CAAC,aAAa;QAC1C,eAAe,EAAE,IAAI,CAAC,aAAa;QACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,KAAK;KACR,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAI,eAAe,CACvC,IAAI,EACJ,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,MAAM,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAC7E,cAAc,CAAC,kBAAkB,EACjC,UAAU,CACb,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,oBAAoB,CAC3C,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACtE,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvF,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;YACrG,MAAM,qBAAqB,GAAG,MAAM,WAAW,CAAC,WAAW,CACvD,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,sBAAsB,EAC9B,cAAc,CAAC,MAAM,CACxB,CAAC;YACF,OAAO,CACH,GAAG,KAAK,cAAc,CAAC,GAAG;gBAC1B,qBAAqB,CAAC,MAAM,KAAK,cAAc,CAAC,qBAAqB,CAAC,MAAM;gBAC5E,qBAAqB,CAAC,KAAK,CACvB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAClF,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YACjD,GAAG,cAAc;YACjB,SAAS,EAAE,OAAO,CAAC,eAAe;SACrC,CAAC,CAAC;QACH,OAAO;YACH,GAAG,QAAQ;YACX,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;YAC1C,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3F,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;SAClD,CAAC;IACN,CAAC,CACJ,CAAC;IACF,uGAAuG;IACvG,4GAA4G;IAC5G,kHAAkH;IAClH,+CAA+C;IAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,UAAU;gBACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACxF,MAAM;YACV,KAAK,UAAU;gBACX,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;gBACvE,MAAM;QACd,CAAC;IACL,CAAC;IACD,OAAO;QACH,cAAc;QACd,WAAW;QACX,eAAe;QACf,OAAO;QACP,cAAc;QACd,UAAU;QACV,YAAY;KACf,CAAC;AACN,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import type { AcpSessionUpdate, SessionEvent, SessionLiveEvent } from "@morty-build/client/protocol";
|
|
2
|
-
type AcpSessionEvent = Extract<SessionEvent, {
|
|
3
|
-
readonly type: "acp";
|
|
4
|
-
}>;
|
|
5
2
|
type ToolCall = Extract<AcpSessionUpdate, {
|
|
6
3
|
readonly sessionUpdate: "tool_call" | "tool_call_update";
|
|
7
4
|
}>;
|
|
8
5
|
export type SessionEventHistoryProjectionMutation = {
|
|
9
6
|
readonly kind: "skip";
|
|
10
7
|
} | {
|
|
11
|
-
readonly events: readonly
|
|
8
|
+
readonly events: readonly SessionEvent[];
|
|
12
9
|
readonly kind: "append";
|
|
13
10
|
} | {
|
|
14
11
|
readonly event: SessionEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-history-projection.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/history/session-event-history-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"session-event-history-projection.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/history/session-event-history-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGrG,KAAK,QAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,kBAAkB,CAAA;CAAE,CAAC,CAAC;AAgCxG,MAAM,MAAM,qCAAqC,GAC3C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,KAAK,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AA2I5G,qBAAa,6BAA6B;;IAMtC,QAAQ,CAAC,KAAK,cACC,gBAAgB,WAClB,0BAA0B,KACpC,qCAAqC,CAiCtC;IAEF;;;OAGG;IACH,QAAQ,CAAC,WAAW,eAAgB,MAAM,WAAW,0BAA0B,KAAG,QAAQ,GAAG,SAAS,CAapG;CAuDL"}
|
|
@@ -24,6 +24,10 @@ function projectNewEvent(liveEvent, eventId) {
|
|
|
24
24
|
}
|
|
25
25
|
return { ...event, eventId };
|
|
26
26
|
}
|
|
27
|
+
function projectLifecycleEvent(liveEvent) {
|
|
28
|
+
const { position: _position, ...event } = liveEvent;
|
|
29
|
+
return event;
|
|
30
|
+
}
|
|
27
31
|
function replaceAcpPayload(event, payload) {
|
|
28
32
|
return { ...event, payload };
|
|
29
33
|
}
|
|
@@ -117,12 +121,13 @@ function mergeTextChunk(previous, incoming) {
|
|
|
117
121
|
}
|
|
118
122
|
export class SessionEventHistoryProjection {
|
|
119
123
|
#toolCallEventIds = new Map();
|
|
124
|
+
/** The turns this history holds: open until their ending is recorded, where the turn ended. */
|
|
125
|
+
#turns = new Map();
|
|
120
126
|
#latestEvent = null;
|
|
121
127
|
apply = (liveEvent, resolve) => {
|
|
122
128
|
if (liveEvent.type === "lifecycle-metadata") {
|
|
123
129
|
this.#latestEvent = null;
|
|
124
|
-
|
|
125
|
-
return { kind: "skip" };
|
|
130
|
+
return this.#turnLifecycle(liveEvent);
|
|
126
131
|
}
|
|
127
132
|
if (liveEvent.type === "acp" && liveEvent.payload.sessionUpdate === "tool_call_update") {
|
|
128
133
|
const targetEventId = this.#toolCallEventIds.get(liveEvent.payload.toolCallId);
|
|
@@ -162,6 +167,40 @@ export class SessionEventHistoryProjection {
|
|
|
162
167
|
}
|
|
163
168
|
return undefined;
|
|
164
169
|
};
|
|
170
|
+
/**
|
|
171
|
+
* Keeps the lifecycle that delimits each turn, where it happened. A turn's ending is history only once, after its
|
|
172
|
+
* start: an ending restated for a client, or one for a turn this history does not hold, has no place in it.
|
|
173
|
+
* Interaction and queue changes are current state, not history.
|
|
174
|
+
*/
|
|
175
|
+
#turnLifecycle = (liveEvent) => {
|
|
176
|
+
const payload = liveEvent.payload;
|
|
177
|
+
switch (payload.kind) {
|
|
178
|
+
case "prompt.requested":
|
|
179
|
+
case "prompt.started":
|
|
180
|
+
case "prompt.delegated":
|
|
181
|
+
if (this.#turns.get(payload.commandId) === "ended") {
|
|
182
|
+
return { kind: "skip" };
|
|
183
|
+
}
|
|
184
|
+
this.#turns.set(payload.commandId, "open");
|
|
185
|
+
return { events: [projectLifecycleEvent(liveEvent)], kind: "append" };
|
|
186
|
+
case "prompt.completed":
|
|
187
|
+
case "prompt.failed":
|
|
188
|
+
case "prompt.failed-before-start":
|
|
189
|
+
if (this.#turns.get(payload.commandId) !== "open") {
|
|
190
|
+
return { kind: "skip" };
|
|
191
|
+
}
|
|
192
|
+
this.#turns.set(payload.commandId, "ended");
|
|
193
|
+
return { events: [projectLifecycleEvent(liveEvent)], kind: "append" };
|
|
194
|
+
case "session.queue.changed":
|
|
195
|
+
case "session.permission.requested":
|
|
196
|
+
case "session.permission.resolved":
|
|
197
|
+
case "session.elicitation.requested":
|
|
198
|
+
case "session.elicitation.resolved":
|
|
199
|
+
return { kind: "skip" };
|
|
200
|
+
default:
|
|
201
|
+
return payload;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
165
204
|
#replace = (current, replacement) => {
|
|
166
205
|
if (this.#latestEvent?.eventId === current.eventId) {
|
|
167
206
|
this.#latestEvent = replacement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-event-history-projection.js","sourceRoot":"","sources":["../../../../src/engine/session/history/session-event-history-projection.ts"],"names":[],"mappings":"AAUA,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD,MAAM,oCAAoC,GAAG,SAAS,CAAC;AAEvD,SAAS,cAAc,CAAC,OAAkB;IACtC,IACI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAC/B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,iCAAiC,EACtF,CAAC;QACC,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,iCAAiC,CAAC;IAC7D,4DAA4D;IAC5D,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACtE,KAAK,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO;QACH,GAAG,OAAO;QACV,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;QACpE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;KAC7C,CAAC;AACN,CAAC;
|
|
1
|
+
{"version":3,"file":"session-event-history-projection.js","sourceRoot":"","sources":["../../../../src/engine/session/history/session-event-history-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AcpSessionUpdate, type SessionEventPayload, type SessionLiveEvent } from "@morty-build/client/protocol";
|
|
2
|
+
import type { SettledTurn } from "../turn/execution-receipts.ts";
|
|
2
3
|
import type { SessionEventPage, SessionEventStore } from "./session-event-store.ts";
|
|
3
4
|
/** Captures ACP updates into the V2 session event log. */
|
|
4
5
|
export declare class HistoryReplayCapture {
|
|
5
6
|
#private;
|
|
6
|
-
constructor(events: SessionEventStore, sessionId: string);
|
|
7
|
+
constructor(events: SessionEventStore, sessionId: string, settledTurns?: readonly SettledTurn[]);
|
|
8
|
+
/** Records an update the Agent replays from its own history, with the lifecycle of the turn it belongs to. */
|
|
9
|
+
readonly replay: (rawUpdate: AcpSessionUpdate) => void;
|
|
10
|
+
/** Ends the replay: the last replayed turn ends where the Agent's history does. */
|
|
11
|
+
readonly finishReplay: () => void;
|
|
7
12
|
readonly record: (rawUpdate: AcpSessionUpdate, onRecorded?: (event: SessionLiveEvent) => Promise<void>) => Promise<void>;
|
|
8
13
|
readonly recordLifecycle: (event: SessionEventPayload) => SessionLiveEvent;
|
|
9
14
|
readonly eventPage: (eventLimit: number, cursor: string | null) => SessionEventPage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/history/session-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"session-history.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/history/session-history.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAmFpF,0DAA0D;AAC1D,qBAAa,oBAAoB;;IAK7B,YAAY,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,SAAS,WAAW,EAAO,EAIlG;IAED,8GAA8G;IAC9G,QAAQ,CAAC,MAAM,cAAe,gBAAgB,KAAG,IAAI,CAKnD;IAEF,mFAAmF;IACnF,QAAQ,CAAC,YAAY,QAAO,IAAI,CAI9B;IAEF,QAAQ,CAAC,MAAM,cACA,gBAAgB,eACf,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,KACvD,OAAO,CAAC,IAAI,CAAC,CAGd;IAEF,QAAQ,CAAC,eAAe,UAAW,mBAAmB,KAAG,gBAAgB,CAKvE;IAEF,QAAQ,CAAC,SAAS,eAAgB,MAAM,UAAU,MAAM,GAAG,IAAI,KAAG,gBAAgB,CACvB;CAC9D"}
|
|
@@ -1,11 +1,95 @@
|
|
|
1
|
+
import { promptCompletion, } from "@morty-build/client/protocol";
|
|
2
|
+
function lifecycle(payload) {
|
|
3
|
+
return { payload, type: "lifecycle-metadata" };
|
|
4
|
+
}
|
|
5
|
+
/** A settled turn's start, as the Runtime recorded it when the turn joined the Session. */
|
|
6
|
+
function turnStart(turn, content, steers) {
|
|
7
|
+
const { commandId } = turn.outcome;
|
|
8
|
+
const requested = content.sessionUpdate === "user_message_chunk"
|
|
9
|
+
? lifecycle({
|
|
10
|
+
commandId,
|
|
11
|
+
content: [content.content],
|
|
12
|
+
kind: "prompt.requested",
|
|
13
|
+
...(steers === null ? { disposition: "append" } : { disposition: "steer", targetCommandId: steers }),
|
|
14
|
+
})
|
|
15
|
+
: null;
|
|
16
|
+
const started = lifecycle({ attemptId: turn.attemptId, commandId, epoch: turn.attemptId, kind: "prompt.started" });
|
|
17
|
+
return [
|
|
18
|
+
...(requested === null ? [] : [{ event: requested, recordedAt: turn.startedAt }]),
|
|
19
|
+
{ event: started, recordedAt: turn.startedAt },
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
const turnEnd = (turn) => ({
|
|
23
|
+
event: lifecycle(turn.outcome),
|
|
24
|
+
recordedAt: turn.recordedAt,
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* Places the lifecycle of the turns the Runtime ran among the Agent's replayed history, where they happened. A turn
|
|
28
|
+
* starts at the user message its Agent recorded for it and ends before the next user message that does not steer into
|
|
29
|
+
* it, or where the replay ends. A message steered into a turn joins that turn.
|
|
30
|
+
*/
|
|
31
|
+
class ReplayedTurns {
|
|
32
|
+
#byMessage;
|
|
33
|
+
#open = null;
|
|
34
|
+
/** The user message the latest replayed event belongs to; undefined after any other event. */
|
|
35
|
+
#userMessage;
|
|
36
|
+
constructor(turns) {
|
|
37
|
+
this.#byMessage = new Map(turns.map((turn) => [turn.outcome.messageId, turn]));
|
|
38
|
+
}
|
|
39
|
+
/** The lifecycle that precedes `update` in history. */
|
|
40
|
+
before = (update) => {
|
|
41
|
+
if (update.sessionUpdate !== "user_message_chunk") {
|
|
42
|
+
this.#userMessage = undefined;
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const messageId = update.messageId ?? null;
|
|
46
|
+
if (this.#userMessage?.messageId === messageId) {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
this.#userMessage = { messageId };
|
|
50
|
+
const turn = messageId === null ? undefined : this.#byMessage.get(messageId);
|
|
51
|
+
const steered = turn?.outcome.kind === "prompt.completed" && promptCompletion(turn.outcome).kind === "steered";
|
|
52
|
+
const open = this.#open;
|
|
53
|
+
if (turn !== undefined && steered && open !== null) {
|
|
54
|
+
return [...turnStart(turn, update, open.outcome.commandId), turnEnd(turn)];
|
|
55
|
+
}
|
|
56
|
+
const ended = this.end();
|
|
57
|
+
if (turn === undefined || steered) {
|
|
58
|
+
return ended;
|
|
59
|
+
}
|
|
60
|
+
this.#open = turn;
|
|
61
|
+
return [...ended, ...turnStart(turn, update, null)];
|
|
62
|
+
};
|
|
63
|
+
/** The ending of the turn still open where the replay ends. */
|
|
64
|
+
end = () => {
|
|
65
|
+
const open = this.#open;
|
|
66
|
+
this.#open = null;
|
|
67
|
+
return open === null ? [] : [turnEnd(open)];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
1
70
|
/** Captures ACP updates into the V2 session event log. */
|
|
2
71
|
export class HistoryReplayCapture {
|
|
3
72
|
#events;
|
|
4
73
|
#sessionId;
|
|
5
|
-
|
|
74
|
+
#replayed;
|
|
75
|
+
constructor(events, sessionId, settledTurns = []) {
|
|
6
76
|
this.#events = events;
|
|
7
77
|
this.#sessionId = sessionId;
|
|
78
|
+
this.#replayed = new ReplayedTurns(settledTurns);
|
|
8
79
|
}
|
|
80
|
+
/** Records an update the Agent replays from its own history, with the lifecycle of the turn it belongs to. */
|
|
81
|
+
replay = (rawUpdate) => {
|
|
82
|
+
for (const { event, recordedAt } of this.#replayed.before(rawUpdate)) {
|
|
83
|
+
this.#events.append(this.#sessionId, event, recordedAt);
|
|
84
|
+
}
|
|
85
|
+
this.#events.append(this.#sessionId, { payload: rawUpdate, type: "acp" });
|
|
86
|
+
};
|
|
87
|
+
/** Ends the replay: the last replayed turn ends where the Agent's history does. */
|
|
88
|
+
finishReplay = () => {
|
|
89
|
+
for (const { event, recordedAt } of this.#replayed.end()) {
|
|
90
|
+
this.#events.append(this.#sessionId, event, recordedAt);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
9
93
|
record = async (rawUpdate, onRecorded = () => Promise.resolve()) => {
|
|
10
94
|
const event = this.#events.append(this.#sessionId, { payload: rawUpdate, type: "acp" });
|
|
11
95
|
await onRecorded(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-history.js","sourceRoot":"","sources":["../../../../src/engine/session/history/session-history.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-history.js","sourceRoot":"","sources":["../../../../src/engine/session/history/session-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,15 @@ import type { OperationMetrics } from "../../infra/operation-metrics.ts";
|
|
|
6
6
|
import { type ElicitationResponseOptions, type PermissionResponseOptions, PreparedSession, type PromptResult, type SessionConfigurationChange, type SessionConfigurationSnapshot, type SessionConfigureOptions, type SessionObserver, type SessionPrepareOptions, type SessionRecovery, type SessionSteerOptions, type SessionTurnOptions } from "../api/session-api.ts";
|
|
7
7
|
import type { SessionEventPage } from "../history/session-event-store.ts";
|
|
8
8
|
import { type SessionStore, StoredSession } from "../record/session-store.ts";
|
|
9
|
+
import type { SettledTurn } from "../turn/execution-receipts.ts";
|
|
9
10
|
import type { AgentSessionRestore } from "./agent-session-restore.ts";
|
|
10
|
-
/**
|
|
11
|
-
export
|
|
11
|
+
/** What the Session's execution authority tells its Agent session. */
|
|
12
|
+
export interface SessionExecutionRecord {
|
|
13
|
+
/** The command whose prompt the Session's Agent holds. */
|
|
14
|
+
readonly agentCommand: (sessionId: string) => string | undefined;
|
|
15
|
+
/** The Session's settled turns, which a replayed history places among the Agent's own events. */
|
|
16
|
+
readonly settledTurns: (sessionId: string) => readonly SettledTurn[];
|
|
17
|
+
}
|
|
12
18
|
type NativeHistoryOwnership = {
|
|
13
19
|
readonly kind: "unbound";
|
|
14
20
|
} | {
|
|
@@ -28,7 +34,7 @@ export declare class AgentSession implements AgentSessionRestore {
|
|
|
28
34
|
get store(): SessionStore;
|
|
29
35
|
readonly hasBackgroundActivity: () => boolean;
|
|
30
36
|
private constructor();
|
|
31
|
-
static readonly start: (options: SessionPrepareOptions, recovery: SessionRecovery, getObserver: () => SessionObserver,
|
|
37
|
+
static readonly start: (options: SessionPrepareOptions, recovery: SessionRecovery, getObserver: () => SessionObserver, execution: SessionExecutionRecord, store: SessionStore, metrics: OperationMetrics, adapter: Adapter, capabilities?: SessionCapabilities) => Promise<AgentSession>;
|
|
32
38
|
readonly belongsTo: (agentId: string, cwd: string, additionalDirectories: readonly string[]) => boolean;
|
|
33
39
|
readonly usesEnvironment: (environment: Readonly<Record<string, string>>) => boolean;
|
|
34
40
|
readonly writeStoredSession: (updatedAt: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/live/agent-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAKH,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAC3B,MAAM,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EACR,OAAO,EAEP,oBAAoB,EAIvB,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,OAAO,EAAE,KAAK,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAQtE,
|
|
1
|
+
{"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../../src/engine/session/live/agent-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,7 @@ export class AgentSession {
|
|
|
63
63
|
#environment;
|
|
64
64
|
#getObserver;
|
|
65
65
|
#agentCommand;
|
|
66
|
+
#settledTurns;
|
|
66
67
|
#interactions;
|
|
67
68
|
#mortySessionId;
|
|
68
69
|
#metrics;
|
|
@@ -82,8 +83,9 @@ export class AgentSession {
|
|
|
82
83
|
#restored = false;
|
|
83
84
|
#sessionTitle = null;
|
|
84
85
|
#sessionUpdatedAt = "";
|
|
85
|
-
constructor(agent, cwd, additionalDirectories, mortySessionId, getObserver,
|
|
86
|
-
this.#agentCommand = () => agentCommand(this.#mortySessionId);
|
|
86
|
+
constructor(agent, cwd, additionalDirectories, mortySessionId, getObserver, execution, store, metrics, adapter, externalize) {
|
|
87
|
+
this.#agentCommand = () => execution.agentCommand(this.#mortySessionId);
|
|
88
|
+
this.#settledTurns = () => execution.settledTurns(this.#mortySessionId);
|
|
87
89
|
this.#additionalDirectories = [...additionalDirectories];
|
|
88
90
|
this.#adapter = adapter;
|
|
89
91
|
this.#agentId = agent.id;
|
|
@@ -147,10 +149,10 @@ export class AgentSession {
|
|
|
147
149
|
},
|
|
148
150
|
};
|
|
149
151
|
}
|
|
150
|
-
static async #start(options, getObserver,
|
|
152
|
+
static async #start(options, getObserver, execution, store, initialize, metrics, adapter) {
|
|
151
153
|
for (let attempt = 1; attempt <= 2; attempt += 1) {
|
|
152
154
|
await metrics.measure("executable-validation", async () => await validateAgentRuntime(options.agent, options.signal));
|
|
153
|
-
const runtime = metrics.measureSync("process-spawn", () => new AgentSession(options.agent, options.cwd, options.additionalDirectories, options.sessionId, getObserver,
|
|
155
|
+
const runtime = metrics.measureSync("process-spawn", () => new AgentSession(options.agent, options.cwd, options.additionalDirectories, options.sessionId, getObserver, execution, store, metrics, adapter, options.externalizeSessionUpdate));
|
|
154
156
|
try {
|
|
155
157
|
await initialize(runtime);
|
|
156
158
|
return runtime;
|
|
@@ -172,7 +174,7 @@ export class AgentSession {
|
|
|
172
174
|
}
|
|
173
175
|
throw new AcpExecutionError("ACP agent initialization failed");
|
|
174
176
|
}
|
|
175
|
-
static start = async (options, recovery, getObserver,
|
|
177
|
+
static start = async (options, recovery, getObserver, execution, store, metrics, adapter, capabilities = unsupportedSessionCapabilities()) => await AgentSession.#start(options, getObserver, execution, store, async (runtime) => {
|
|
176
178
|
runtime.#capabilities = capabilities;
|
|
177
179
|
await runtime.initialize(options.signal, recovery, options.origin);
|
|
178
180
|
}, metrics, adapter);
|
|
@@ -297,7 +299,7 @@ export class AgentSession {
|
|
|
297
299
|
return await waitForSharedOperation(this.#sessionLoad.completion, signal);
|
|
298
300
|
}
|
|
299
301
|
this.#store.events.reset(this.#mortySessionId);
|
|
300
|
-
const history = new HistoryReplayCapture(this.#store.events, this.#mortySessionId);
|
|
302
|
+
const history = new HistoryReplayCapture(this.#store.events, this.#mortySessionId, this.#settledTurns());
|
|
301
303
|
const completion = Promise.resolve().then(async () => {
|
|
302
304
|
try {
|
|
303
305
|
const opened = await this.#writeNativeHistory(async () => await this.#adapter.openSessionWithReplay({
|
|
@@ -306,6 +308,7 @@ export class AgentSession {
|
|
|
306
308
|
}));
|
|
307
309
|
signal.throwIfAborted();
|
|
308
310
|
this.#capabilities = opened.capabilities;
|
|
311
|
+
history.finishReplay();
|
|
309
312
|
const loaded = { history, kind: "loaded", opened };
|
|
310
313
|
this.#sessionLoad = loaded;
|
|
311
314
|
return loaded;
|
|
@@ -708,7 +711,7 @@ export class AgentSession {
|
|
|
708
711
|
this.#captureSelectedConfigurationValues();
|
|
709
712
|
}
|
|
710
713
|
if (this.#sessionLoad.kind === "capturing") {
|
|
711
|
-
|
|
714
|
+
this.#sessionLoad.history.replay(event.payload);
|
|
712
715
|
}
|
|
713
716
|
else if (this.#sessionLoad.kind === "loaded" || this.#sessionLoad.kind === "execution-only") {
|
|
714
717
|
await this.#sessionLoad.history.record(event.payload, async (liveEvent) => {
|