@sapiom/harness 0.1.3 → 0.1.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/CHANGELOG.md +57 -0
- package/dist/core/adapters/adapter.d.ts +9 -0
- package/dist/core/adapters/adapter.d.ts.map +1 -1
- package/dist/core/adapters/claude-code-info.d.ts.map +1 -1
- package/dist/core/adapters/claude-code-info.js +2 -0
- package/dist/core/adapters/claude-code-info.js.map +1 -1
- package/dist/core/adapters/claude-code.d.ts +4 -0
- package/dist/core/adapters/claude-code.d.ts.map +1 -1
- package/dist/core/adapters/claude-code.js +133 -47
- package/dist/core/adapters/claude-code.js.map +1 -1
- package/dist/core/adapters/codex-info.d.ts.map +1 -1
- package/dist/core/adapters/codex-info.js +2 -0
- package/dist/core/adapters/codex-info.js.map +1 -1
- package/dist/core/adapters/conductor.d.ts.map +1 -1
- package/dist/core/adapters/conductor.js +2 -0
- package/dist/core/adapters/conductor.js.map +1 -1
- package/dist/core/adapters/opencode.d.ts.map +1 -1
- package/dist/core/adapters/opencode.js +2 -0
- package/dist/core/adapters/opencode.js.map +1 -1
- package/dist/core/adapters/pi.d.ts.map +1 -1
- package/dist/core/adapters/pi.js +2 -0
- package/dist/core/adapters/pi.js.map +1 -1
- package/dist/core/canvas-run-state.d.ts +95 -0
- package/dist/core/canvas-run-state.d.ts.map +1 -0
- package/dist/core/canvas-run-state.js +162 -0
- package/dist/core/canvas-run-state.js.map +1 -0
- package/dist/core/canvas-svg.d.ts.map +1 -1
- package/dist/core/canvas-svg.js +28 -8
- package/dist/core/canvas-svg.js.map +1 -1
- package/dist/core/canvas-template.d.ts +4 -3
- package/dist/core/canvas-template.d.ts.map +1 -1
- package/dist/core/canvas-template.js +75 -3
- package/dist/core/canvas-template.js.map +1 -1
- package/dist/core/definition-slug-resolver.d.ts +33 -0
- package/dist/core/definition-slug-resolver.d.ts.map +1 -0
- package/dist/core/definition-slug-resolver.js +81 -0
- package/dist/core/definition-slug-resolver.js.map +1 -0
- package/dist/core/execution-detector.d.ts +59 -0
- package/dist/core/execution-detector.d.ts.map +1 -0
- package/dist/core/execution-detector.js +110 -0
- package/dist/core/execution-detector.js.map +1 -0
- package/dist/core/inject/mcp-config.d.ts.map +1 -1
- package/dist/core/inject/mcp-config.js +9 -1
- package/dist/core/inject/mcp-config.js.map +1 -1
- package/dist/core/render-run-state.d.ts +9 -0
- package/dist/core/render-run-state.d.ts.map +1 -0
- package/dist/core/render-run-state.js +139 -0
- package/dist/core/render-run-state.js.map +1 -0
- package/dist/core/run-spend.d.ts +55 -0
- package/dist/core/run-spend.d.ts.map +1 -0
- package/dist/core/run-spend.js +109 -0
- package/dist/core/run-spend.js.map +1 -0
- package/dist/core/run-state.d.ts +45 -0
- package/dist/core/run-state.d.ts.map +1 -0
- package/dist/core/run-state.js +72 -0
- package/dist/core/run-state.js.map +1 -0
- package/dist/core/run-transactions.d.ts +60 -0
- package/dist/core/run-transactions.d.ts.map +1 -0
- package/dist/core/run-transactions.js +129 -0
- package/dist/core/run-transactions.js.map +1 -0
- package/dist/core/workflow-registry.d.ts +12 -1
- package/dist/core/workflow-registry.d.ts.map +1 -1
- package/dist/core/workflow-registry.js +2 -0
- package/dist/core/workflow-registry.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +0 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/rest.d.ts +5 -0
- package/dist/server/rest.d.ts.map +1 -1
- package/dist/server/rest.js +151 -12
- package/dist/server/rest.js.map +1 -1
- package/dist/server/runs.d.ts +33 -0
- package/dist/server/runs.d.ts.map +1 -0
- package/dist/server/runs.js +124 -0
- package/dist/server/runs.js.map +1 -0
- package/dist/shared/types.d.ts +157 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +30 -0
- package/dist/shared/types.js.map +1 -1
- package/dist/web/assets/index-DM84J83Y.js +234 -0
- package/dist/web/assets/index-DemtWW4L.css +32 -0
- package/dist/web/index.html +2 -2
- package/package.json +4 -4
- package/dist/web/assets/index-BTm-QNRt.css +0 -32
- package/dist/web/assets/index-CvNiFngP.js +0 -204
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# @sapiom/harness
|
|
2
2
|
|
|
3
|
+
## 0.1.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5752434: Show live run status on the canvas step graph itself — each step node lights up running/passed/failed with latency while a run executes, and the header badge switches to running/testing — replacing the separate status panel.
|
|
8
|
+
- 5752434: Show per-step and total run cost (in credits) on the live canvas — total at the top, per-step in the step panel — and include cost in the debug-macro context.
|
|
9
|
+
- 5752434: Show the live run canvas for runs started via the agent tooling, not just the CLI. The run detector now recognizes the run tool's `executionId` result in addition to the CLI's start line, so pressing Prod Run lights up the live step graph. Also stop polling a run whose state can't be fetched after repeated attempts, so a stale or malformed id can't poll indefinitely.
|
|
10
|
+
- 5752434: Show a live step graph on the canvas while a deployed run executes — steps update from running to passed/failed with latency, driven by the run-state poll loop.
|
|
11
|
+
- 5752434: Add a harness endpoint that reports a deployed run's live per-step state (status, latency, errors, logs) so the canvas can show progress during a run. The Sapiom credential stays server-side.
|
|
12
|
+
- 5752434: Make the deployed-agent trigger snippet resilient when the agent's slug can't be resolved from the deployment. The panel now falls back to the project name (and flags it as inferred so you can verify) instead of showing a fill-in placeholder in the read-only slug field, and it targets the configured Agents API host so the copy-paste call reaches the same environment the agent was deployed to.
|
|
13
|
+
- 5752434: Click a step on the live canvas to see its status, latency, and logs, and run debug macros that hand the step's logs to your coding agent — plus a free-form ask.
|
|
14
|
+
- 5752434: Add the web poll loop that fetches a run's live state during execution — polling on a fixed cadence, stopping when the run finishes, and pausing while the tab is hidden.
|
|
15
|
+
|
|
16
|
+
## 0.1.4
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- eff9d50: fix(harness): separate inspecting a workflow from binding it, and keep the rail highlight in sync with the canvas
|
|
21
|
+
|
|
22
|
+
Clicking a workflow in the workspace rail used to immediately rebind it to the
|
|
23
|
+
active session, so just _looking_ at another workflow clobbered what the session
|
|
24
|
+
was working on. Selecting is now pure inspection (it highlights the row and docks
|
|
25
|
+
the action strip); a session's binding changes only via an explicit "Work on
|
|
26
|
+
this" control on the strip (or by running a macro against the workflow, which is
|
|
27
|
+
already an explicit action).
|
|
28
|
+
|
|
29
|
+
Switching session tabs now always snaps the rail/strip highlight to that
|
|
30
|
+
session's own binding — including clearing it when the session has no binding, so
|
|
31
|
+
the rail no longer stays lit on the previous session's workflow while the canvas
|
|
32
|
+
shows nothing.
|
|
33
|
+
|
|
34
|
+
- 524ffdf: fix(harness): resume/history rows are distinguishable — real titles + branch/turns/last-active
|
|
35
|
+
|
|
36
|
+
Resume-history rows were near-indistinguishable: on any long session the title
|
|
37
|
+
fell back to the bare `agentSessionId` UUID (the tail-only transcript read
|
|
38
|
+
missed the first prompt), and rows carried no differentiating metadata.
|
|
39
|
+
|
|
40
|
+
The claude-code adapter now derives a human-readable title from Claude's own
|
|
41
|
+
generated `ai-title` (falling back to a compaction `summary`, then the first
|
|
42
|
+
human prompt, then the directory basename — never a bare UUID), and surfaces
|
|
43
|
+
the session's git branch and an exact human-turn count. Transcripts small
|
|
44
|
+
enough to scan in full report an exact turn count; larger ones are still read
|
|
45
|
+
only at head+tail (so the dropdown never parses a 100MB file) and simply omit
|
|
46
|
+
the count. The history dropdown renders branch · turns · last-active under each
|
|
47
|
+
title so many sessions in one directory can be told apart.
|
|
48
|
+
|
|
49
|
+
- c8eecf0: fix(harness): workspace/workflow rail no longer clips below the fold on first paint
|
|
50
|
+
|
|
51
|
+
`.rail` was missing `min-height: 0`, so as a grid/flex item it grew to its
|
|
52
|
+
content height instead of the grid row's — the nav clipped below the fold and
|
|
53
|
+
`.rail-list`'s `overflow-y: auto` never engaged until a reflow (only a hard
|
|
54
|
+
refresh appeared to fix it). The rail is now constrained to the viewport and
|
|
55
|
+
scrolls internally on the initial render.
|
|
56
|
+
|
|
57
|
+
- Updated dependencies [c8eecf0]
|
|
58
|
+
- @sapiom/agent-core@0.9.5
|
|
59
|
+
|
|
3
60
|
## 0.1.3
|
|
4
61
|
|
|
5
62
|
### Patch Changes
|
|
@@ -45,6 +45,15 @@ export interface HarnessAdapterBase {
|
|
|
45
45
|
* supported harnesses.
|
|
46
46
|
*/
|
|
47
47
|
experimental?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Whether this harness can consume an image the composer attaches. The
|
|
50
|
+
* harness relays an image by writing it to disk (see HARNESS_UPLOADS_DIR)
|
|
51
|
+
* and injecting its path into the agent's prompt, so this is true exactly
|
|
52
|
+
* for harnesses whose CLI reads image files referenced by path. The upload
|
|
53
|
+
* endpoint rejects attaches to a harness where this is false, and the SPA
|
|
54
|
+
* hides the attach affordance for it.
|
|
55
|
+
*/
|
|
56
|
+
imageInput: boolean;
|
|
48
57
|
}
|
|
49
58
|
/**
|
|
50
59
|
* An adapter the harness spawns inside a pty session.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,OAAO,GACP,IAAI,GACJ,UAAU,GACV,WAAW,CAAC;AAEhB;oCACoC;AACpC,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,EAAE,EAAE,gBAAgB,CAAC;IACrB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,EAAE,kBAAkB,CAAC;IACzB;;;;;OAKG;IACH,gBAAgB,IAAI,MAAM,CAAC;IAC3B;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,OAAO,GACP,IAAI,GACJ,UAAU,GACV,WAAW,CAAC;AAEhB;oCACoC;AACpC,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,EAAE,EAAE,gBAAgB,CAAC;IACrB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,EAAE,kBAAkB,CAAC;IACzB;;;;;OAKG;IACH,gBAAgB,IAAI,MAAM,CAAC;IAC3B;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,0BAA0B,GAAG,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-info.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/claude-code-info.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAkB/D,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"claude-code-info.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/claude-code-info.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAkB/D,eAAO,MAAM,qBAAqB,EAAE,0BAYnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-info.js","sourceRoot":"","sources":["../../../src/core/adapters/claude-code-info.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,+CAA+C;IAC/C,EAAE;IACF,oDAAoD;IACpD,EAAE;IACF,oDAAoD;IACpD,EAAE;IACF,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,uDAAuD;CACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,qBAAqB,GAA+B;IAC/D,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,UAAU;IAChB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"claude-code-info.js","sourceRoot":"","sources":["../../../src/core/adapters/claude-code-info.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,+CAA+C;IAC/C,EAAE;IACF,oDAAoD;IACpD,EAAE;IACF,oDAAoD;IACpD,EAAE;IACF,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,uDAAuD;CACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,qBAAqB,GAA+B;IAC/D,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,UAAU;IAChB,2DAA2D;IAC3D,UAAU,EAAE,IAAI;IAChB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF,CAAC"}
|
|
@@ -10,12 +10,16 @@ export interface ClaudeCodeAdapterOptions {
|
|
|
10
10
|
binary?: string;
|
|
11
11
|
/** Overridable for tests. Defaults to the real home directory. */
|
|
12
12
|
homeDir?: string;
|
|
13
|
+
/** Overridable for tests. Max transcript size (bytes) to read in full for an
|
|
14
|
+
* exact turn count; larger files are read only at head+tail. */
|
|
15
|
+
fullScanMaxBytes?: number;
|
|
13
16
|
}
|
|
14
17
|
export declare class ClaudeCodeAdapter implements HarnessAdapter {
|
|
15
18
|
readonly id: "claude-code";
|
|
16
19
|
readonly eventSource: "hooks";
|
|
17
20
|
private readonly binary;
|
|
18
21
|
private readonly homeDir;
|
|
22
|
+
private readonly fullScanMaxBytes;
|
|
19
23
|
constructor(options?: ClaudeCodeAdapterOptions);
|
|
20
24
|
doctor(): Promise<DoctorCheck[]>;
|
|
21
25
|
launch(opts: LaunchOpts): SpawnSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACV,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACV,MAAM,uBAAuB,CAAC;AA2B/B,MAAM,WAAW,wBAAwB;IACvC,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;qEACiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAwMD,qBAAa,iBAAkB,YAAW,cAAc;IACtD,QAAQ,CAAC,EAAE,EAAG,aAAa,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,OAAO,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,OAAO,GAAE,wBAA6B;IAM5C,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAetC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS;IAgBnC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,SAAS;IAa3D;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS;IAmBjC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAsC/D;AAcD,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,cAAc,CAE1F"}
|
|
@@ -20,9 +20,18 @@ function encodeProjectPath(cwd) {
|
|
|
20
20
|
return normalized.replace(/:/g, "").replace(/[/.]/g, "-");
|
|
21
21
|
}
|
|
22
22
|
const execFileAsync = promisify(execFile);
|
|
23
|
-
/** Bytes read from
|
|
24
|
-
*
|
|
25
|
-
|
|
23
|
+
/** Bytes read from each end of a transcript that's too large to fully scan.
|
|
24
|
+
* The head holds the first prompt (a title fallback); the tail holds the
|
|
25
|
+
* latest ai-title/summary and the most recent git branch. */
|
|
26
|
+
const TRANSCRIPT_WINDOW_BYTES = 65536;
|
|
27
|
+
/**
|
|
28
|
+
* Transcripts at or below this size are read in full, which yields an exact
|
|
29
|
+
* turn count and a title drawn from the whole session. Larger transcripts
|
|
30
|
+
* (Claude's JSONL can reach 100MB+) are read only at head+tail — scanning them
|
|
31
|
+
* on every history-dropdown open would be prohibitively slow — so their turn
|
|
32
|
+
* count is reported as unknown rather than a wrong partial count.
|
|
33
|
+
*/
|
|
34
|
+
const DEFAULT_FULL_SCAN_MAX_BYTES = 5242880; // 5 MiB
|
|
26
35
|
function extractTextFromContent(content) {
|
|
27
36
|
if (typeof content === "string")
|
|
28
37
|
return content;
|
|
@@ -36,38 +45,17 @@ function extractTextFromContent(content) {
|
|
|
36
45
|
}
|
|
37
46
|
return undefined;
|
|
38
47
|
}
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
const offset = size - maxBytes;
|
|
50
|
-
const handle = await open(filePath, "r");
|
|
51
|
-
try {
|
|
52
|
-
const buffer = Buffer.allocUnsafe(maxBytes);
|
|
53
|
-
await handle.read(buffer, 0, maxBytes, offset);
|
|
54
|
-
content = buffer.toString("utf8");
|
|
55
|
-
startedMidFile = true;
|
|
56
|
-
}
|
|
57
|
-
finally {
|
|
58
|
-
await handle.close();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
// A tail read may start mid-line; drop the (possibly truncated) first line.
|
|
66
|
-
const firstNewline = content.indexOf("\n");
|
|
67
|
-
const safeContent = startedMidFile && firstNewline >= 0 ? content.slice(firstNewline + 1) : content;
|
|
48
|
+
/** Parse the JSONL lines of a transcript slice into entries, skipping blank or
|
|
49
|
+
* malformed lines. `dropFirst`/`dropLast` discard a possibly-truncated edge
|
|
50
|
+
* line when the slice was cut mid-file (tail starts mid-line; head ends
|
|
51
|
+
* mid-line). */
|
|
52
|
+
function parseTranscriptLines(text, { dropFirst = false, dropLast = false } = {}) {
|
|
53
|
+
const lines = text.split("\n");
|
|
54
|
+
const start = dropFirst ? 1 : 0;
|
|
55
|
+
const end = dropLast ? lines.length - 1 : lines.length;
|
|
68
56
|
const entries = [];
|
|
69
|
-
for (
|
|
70
|
-
const trimmed =
|
|
57
|
+
for (let i = start; i < end; i++) {
|
|
58
|
+
const trimmed = lines[i]?.trim();
|
|
71
59
|
if (!trimmed)
|
|
72
60
|
continue;
|
|
73
61
|
try {
|
|
@@ -77,27 +65,119 @@ async function readTranscriptTail(filePath, maxBytes = TRANSCRIPT_TAIL_BYTES) {
|
|
|
77
65
|
}
|
|
78
66
|
}
|
|
79
67
|
catch {
|
|
80
|
-
// Skip malformed/truncated lines (expected at
|
|
68
|
+
// Skip malformed/truncated lines (expected at a sliced file boundary).
|
|
81
69
|
}
|
|
82
70
|
}
|
|
83
71
|
return entries;
|
|
84
72
|
}
|
|
85
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Read a transcript for summarization. Small files are read in full (exact
|
|
75
|
+
* turn count, title from the whole session); large files are read only at
|
|
76
|
+
* head+tail windows so the history dropdown never has to parse a 100MB file.
|
|
77
|
+
*/
|
|
78
|
+
async function scanTranscript(filePath, size, fullScanMaxBytes) {
|
|
79
|
+
if (size <= fullScanMaxBytes) {
|
|
80
|
+
let content;
|
|
81
|
+
try {
|
|
82
|
+
content = await readFile(filePath, "utf8");
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return { head: [], tail: [] };
|
|
86
|
+
}
|
|
87
|
+
const all = parseTranscriptLines(content);
|
|
88
|
+
return { head: all, tail: all, messageCount: countUserTurns(all) };
|
|
89
|
+
}
|
|
90
|
+
const window = TRANSCRIPT_WINDOW_BYTES;
|
|
91
|
+
let head = [];
|
|
92
|
+
let tail = [];
|
|
93
|
+
try {
|
|
94
|
+
const handle = await open(filePath, "r");
|
|
95
|
+
try {
|
|
96
|
+
const headBuf = Buffer.allocUnsafe(window);
|
|
97
|
+
await handle.read(headBuf, 0, window, 0);
|
|
98
|
+
// The head window likely ends mid-line — drop that partial last line.
|
|
99
|
+
head = parseTranscriptLines(headBuf.toString("utf8"), { dropLast: true });
|
|
100
|
+
const tailBuf = Buffer.allocUnsafe(window);
|
|
101
|
+
await handle.read(tailBuf, 0, window, size - window);
|
|
102
|
+
// The tail window likely starts mid-line — drop that partial first line.
|
|
103
|
+
tail = parseTranscriptLines(tailBuf.toString("utf8"), { dropFirst: true });
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
await handle.close();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return { head: [], tail: [] };
|
|
111
|
+
}
|
|
112
|
+
return { head, tail };
|
|
113
|
+
}
|
|
114
|
+
/** A user entry that represents a real human prompt — not an internal
|
|
115
|
+
* sub-agent turn and not a tool-result echoed back with role "user". */
|
|
116
|
+
function isHumanTurn(entry) {
|
|
117
|
+
if (entry?.type !== "user" || entry.isSidechain === true)
|
|
118
|
+
return false;
|
|
119
|
+
// Newer transcripts tag typed prompts with origin.kind === "human"; older
|
|
120
|
+
// ones omit origin entirely, so accept a missing origin too.
|
|
121
|
+
if (entry.origin?.kind && entry.origin.kind !== "human")
|
|
122
|
+
return false;
|
|
123
|
+
// Tool results carry no plain text (their content is tool_result blocks);
|
|
124
|
+
// requiring extractable text excludes them.
|
|
125
|
+
return Boolean(extractTextFromContent(entry.message?.content)?.trim());
|
|
126
|
+
}
|
|
127
|
+
function countUserTurns(entries) {
|
|
128
|
+
return entries.reduce((n, entry) => (isHumanTurn(entry) ? n + 1 : n), 0);
|
|
129
|
+
}
|
|
130
|
+
/** Latest non-empty value of `field` on entries of type `type`, scanning
|
|
131
|
+
* newest-first. Used for ai-title / summary (title candidates). */
|
|
132
|
+
function latestValue(entries, type, field) {
|
|
86
133
|
for (let i = entries.length - 1; i >= 0; i--) {
|
|
87
134
|
const entry = entries[i];
|
|
88
|
-
if (entry?.type ===
|
|
89
|
-
return entry.
|
|
135
|
+
if (entry?.type === type && typeof entry[field] === "string" && entry[field].trim()) {
|
|
136
|
+
return entry[field].trim();
|
|
90
137
|
}
|
|
91
138
|
}
|
|
92
|
-
|
|
93
|
-
|
|
139
|
+
return undefined;
|
|
140
|
+
}
|
|
141
|
+
function truncateTitle(text) {
|
|
142
|
+
return text.length > 120 ? `${text.slice(0, 120)}...` : text;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* A human-readable title for a resumable session — never a bare UUID. In
|
|
146
|
+
* preference order: Claude's own generated title (`ai-title`), the older
|
|
147
|
+
* compaction `summary`, then the first human prompt. The latest ai-title /
|
|
148
|
+
* summary is preferred, and it lands in the tail window on long sessions
|
|
149
|
+
* (that's why we scan the tail); the first prompt is a head-window fallback
|
|
150
|
+
* for transcripts that have neither. Only when a session has no title, no
|
|
151
|
+
* summary, and no human prompt at all do we use `fallback`.
|
|
152
|
+
*/
|
|
153
|
+
function extractTitle(head, tail, fallback) {
|
|
154
|
+
const aiTitle = latestValue(tail, "ai-title", "aiTitle") ?? latestValue(head, "ai-title", "aiTitle");
|
|
155
|
+
if (aiTitle)
|
|
156
|
+
return truncateTitle(aiTitle);
|
|
157
|
+
const summary = latestValue(tail, "summary", "summary") ?? latestValue(head, "summary", "summary");
|
|
158
|
+
if (summary)
|
|
159
|
+
return truncateTitle(summary);
|
|
160
|
+
for (const entry of head) {
|
|
161
|
+
if (!isHumanTurn(entry))
|
|
94
162
|
continue;
|
|
95
163
|
const text = extractTextFromContent(entry.message?.content)?.trim();
|
|
96
164
|
if (text)
|
|
97
|
-
return text
|
|
165
|
+
return truncateTitle(text);
|
|
98
166
|
}
|
|
99
167
|
return fallback;
|
|
100
168
|
}
|
|
169
|
+
/** Most recent git branch recorded on a message entry, newest-first (tail then
|
|
170
|
+
* head), or undefined when the transcript records none. */
|
|
171
|
+
function extractGitBranch(head, tail) {
|
|
172
|
+
for (const entries of [tail, head]) {
|
|
173
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
174
|
+
const branch = entries[i]?.gitBranch;
|
|
175
|
+
if (typeof branch === "string" && branch.trim())
|
|
176
|
+
return branch.trim();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
101
181
|
function buildConfigArgs(opts) {
|
|
102
182
|
const args = [];
|
|
103
183
|
if (opts.settingsFile)
|
|
@@ -114,6 +194,7 @@ export class ClaudeCodeAdapter {
|
|
|
114
194
|
this.eventSource = "hooks";
|
|
115
195
|
this.binary = options.binary ?? "claude";
|
|
116
196
|
this.homeDir = options.homeDir ?? homedir();
|
|
197
|
+
this.fullScanMaxBytes = options.fullScanMaxBytes ?? DEFAULT_FULL_SCAN_MAX_BYTES;
|
|
117
198
|
}
|
|
118
199
|
async doctor() {
|
|
119
200
|
try {
|
|
@@ -206,18 +287,23 @@ export class ClaudeCodeAdapter {
|
|
|
206
287
|
continue;
|
|
207
288
|
const filePath = join(projectDir, file);
|
|
208
289
|
const agentSessionId = basename(file, ".jsonl");
|
|
209
|
-
const transcript = await readTranscriptTail(filePath);
|
|
210
|
-
if (transcript.length === 0)
|
|
211
|
-
continue;
|
|
212
290
|
const fileStat = await stat(filePath).catch(() => undefined);
|
|
213
|
-
|
|
291
|
+
if (!fileStat)
|
|
292
|
+
continue;
|
|
293
|
+
const { head, tail, messageCount } = await scanTranscript(filePath, fileStat.size, this.fullScanMaxBytes);
|
|
294
|
+
if (head.length === 0 && tail.length === 0)
|
|
295
|
+
continue;
|
|
214
296
|
summaries.push({
|
|
215
297
|
agentSessionId,
|
|
216
298
|
harness: "claude-code",
|
|
217
299
|
cwd,
|
|
218
|
-
|
|
219
|
-
|
|
300
|
+
// Never a bare UUID: falls back to the directory basename, not the
|
|
301
|
+
// session id, when a session has no title/summary/prompt at all.
|
|
302
|
+
title: extractTitle(head, tail, basename(cwd) || agentSessionId),
|
|
303
|
+
lastActiveAt: fileStat.mtime.toISOString(),
|
|
220
304
|
source: "transcript",
|
|
305
|
+
gitBranch: extractGitBranch(head, tail),
|
|
306
|
+
messageCount,
|
|
221
307
|
});
|
|
222
308
|
}
|
|
223
309
|
return summaries.sort((a, b) => (a.lastActiveAt < b.lastActiveAt ? 1 : -1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/core/adapters/claude-code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/core/adapters/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-info.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/codex-info.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAuB/D,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"codex-info.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/codex-info.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAuB/D,eAAO,MAAM,gBAAgB,EAAE,0BAY9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-info.js","sourceRoot":"","sources":["../../../src/core/adapters/codex-info.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,iDAAiD;IACjD,EAAE;IACF,0EAA0E;IAC1E,aAAa;IACb,EAAE;IACF,mDAAmD;IACnD,EAAE;IACF,yDAAyD;IACzD,EAAE;IACF,6BAA6B;IAC7B,oBAAoB;IACpB,iCAAiC;IACjC,EAAE;IACF,yEAAyE;IACzE,kCAAkC;IAClC,yEAAyE;IACzE,gBAAgB;CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"codex-info.js","sourceRoot":"","sources":["../../../src/core/adapters/codex-info.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,iDAAiD;IACjD,EAAE;IACF,0EAA0E;IAC1E,aAAa;IACb,EAAE;IACF,mDAAmD;IACnD,EAAE;IACF,yDAAyD;IACzD,EAAE;IACF,6BAA6B;IAC7B,oBAAoB;IACpB,iCAAiC;IACjC,EAAE;IACF,yEAAyE;IACzE,kCAAkC;IAClC,yEAAyE;IACzE,gBAAgB;CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,qDAAqD;IACrD,UAAU,EAAE,IAAI;IAChB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conductor.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/conductor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAoB/D;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,MAAqB,GAC7B,MAAM,EAAE,CAMV;AAED,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"conductor.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/conductor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAoB/D;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,MAAqB,GAC7B,MAAM,EAAE,CAMV;AAED,eAAO,MAAM,oBAAoB,EAAE,0BAkBlC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conductor.js","sourceRoot":"","sources":["../../../src/core/adapters/conductor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,MAAM,kBAAkB,GAAG;IACzB,6CAA6C;IAC7C,EAAE;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,KAAK;IACL,EAAE;IACF,mCAAmC;IACnC,EAAE;IACF,oEAAoE;IACpE,EAAE;IACF,oEAAoE;IACpE,0EAA0E;IAC1E,+DAA+D;IAC/D,gEAAgE;IAChE,iEAAiE;CAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAA4B,OAAO,CAAC,QAAQ,EAC5C,UAAkB,EAAE,CAAC,OAAO,EAAE;IAE9B,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO;QACL,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA+B;IAC9D,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,OAAO,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACjD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"conductor.js","sourceRoot":"","sources":["../../../src/core/adapters/conductor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,MAAM,kBAAkB,GAAG;IACzB,6CAA6C;IAC7C,EAAE;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,KAAK;IACL,EAAE;IACF,mCAAmC;IACnC,EAAE;IACF,oEAAoE;IACpE,EAAE;IACF,oEAAoE;IACpE,0EAA0E;IAC1E,+DAA+D;IAC/D,gEAAgE;IAChE,iEAAiE;CAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAA4B,OAAO,CAAC,QAAQ,EAC5C,UAAkB,EAAE,CAAC,OAAO,EAAE;IAE9B,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO;QACL,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA+B;IAC9D,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,0DAA0D;IAC1D,UAAU,EAAE,KAAK;IACjB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,OAAO,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACjD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/opencode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAyB/D,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/opencode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAyB/D,eAAO,MAAM,mBAAmB,EAAE,0BAajC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/core/adapters/opencode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,4CAA4C;IAC5C,EAAE;IACF,wEAAwE;IACxE,+CAA+C;IAC/C,EAAE;IACF,MAAM;IACN,eAAe;IACf,wBAAwB;IACxB,2BAA2B;IAC3B,mDAAmD;IACnD,0BAA0B;IAC1B,UAAU;IACV,QAAQ;IACR,MAAM;IACN,EAAE;IACF,yEAAyE;IACzE,kCAAkC;IAClC,sEAAsE;IACtE,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAA+B;IAC7D,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,IAAI;IAClB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/core/adapters/opencode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,4CAA4C;IAC5C,EAAE;IACF,wEAAwE;IACxE,+CAA+C;IAC/C,EAAE;IACF,MAAM;IACN,eAAe;IACf,wBAAwB;IACxB,2BAA2B;IAC3B,mDAAmD;IACnD,0BAA0B;IAC1B,UAAU;IACV,QAAQ;IACR,MAAM;IACN,EAAE;IACF,yEAAyE;IACzE,kCAAkC;IAClC,sEAAsE;IACtE,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAA+B;IAC7D,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,IAAI;IAClB,oEAAoE;IACpE,UAAU,EAAE,KAAK;IACjB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/pi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAc/D,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/pi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAc/D,eAAO,MAAM,aAAa,EAAE,0BAa3B,CAAC"}
|
package/dist/core/adapters/pi.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../../src/core/adapters/pi.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,sCAAsC;IACtC,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,oEAAoE;IACpE,qEAAqE;IACrE,oEAAoE;IACpE,yDAAyD;CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,IAAI;IAClB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../../src/core/adapters/pi.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,kBAAkB,GAAG;IACzB,sCAAsC;IACtC,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,oEAAoE;IACpE,qEAAqE;IACrE,oEAAoE;IACpE,yDAAyD;CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,aAAa,GAA+B;IACvD,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,IAAI;IAClB,oEAAoE;IACpE,UAAU,EAAE,KAAK;IACjB,gBAAgB;QACd,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,eAAe;QACb,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas run-state: live step lighting for the sandboxed iframe, plus the
|
|
3
|
+
* reverse click channel (iframe → parent).
|
|
4
|
+
*
|
|
5
|
+
* HOW IT WORKS — the stringify-into-iframe pattern
|
|
6
|
+
* ─────────────────────────────────────────────────
|
|
7
|
+
* The canvas iframe is served with `sandbox="allow-scripts"` which makes it
|
|
8
|
+
* an opaque origin. The parent page cannot reach its DOM via any API — the
|
|
9
|
+
* ONLY communication channel is `window.postMessage`.
|
|
10
|
+
*
|
|
11
|
+
* To apply live run state to the SVG nodes, we need code that runs INSIDE the
|
|
12
|
+
* iframe's document. We cannot bundle a separate script for it (no fetch
|
|
13
|
+
* inside a sandboxed iframe, no src="" script). Instead, `canvas-template.ts`
|
|
14
|
+
* stringifies the functions below with `.toString()` and injects them
|
|
15
|
+
* directly into the `<script>` block that `renderCanvasDocument` emits.
|
|
16
|
+
*
|
|
17
|
+
* REVERSE CHANNEL (iframe → parent)
|
|
18
|
+
* ───────────────────────────────────
|
|
19
|
+
* `bootCanvasNodeClicks` adds a single delegated click listener on
|
|
20
|
+
* `document`. When a click lands inside a `.canvas-node[data-step-name]`
|
|
21
|
+
* element, it posts `{ type: "sapiom:node-click", stepName }` to the parent
|
|
22
|
+
* via `window.parent.postMessage`. The parent listens for this and opens the
|
|
23
|
+
* step-detail panel.
|
|
24
|
+
*
|
|
25
|
+
* CONSTRAINTS on these functions
|
|
26
|
+
* ────────────────────────────────
|
|
27
|
+
* • No TypeScript-only syntax inside the function bodies (they are stringified
|
|
28
|
+
* as-is and executed in a plain-JS browser context with no transpiler).
|
|
29
|
+
* • No imports or module-level references (same reason).
|
|
30
|
+
* • All functions must be top-level `function` declarations (not arrow
|
|
31
|
+
* functions, not const lambdas) so they are referenceable by name after
|
|
32
|
+
* stringification.
|
|
33
|
+
* • `runStateNodeClass` is the one pure piece (no DOM); it is also exported and
|
|
34
|
+
* unit-tested in `canvas-run-state.test.ts`. The other functions are DOM-only
|
|
35
|
+
* and not unit-testable in a Node/Vitest environment.
|
|
36
|
+
*/
|
|
37
|
+
export type RunStepStatus = "pending" | "running" | "passed" | "failed";
|
|
38
|
+
/**
|
|
39
|
+
* Pure: map a step status to its canvas node CSS state class.
|
|
40
|
+
*
|
|
41
|
+
* Unit-tested. Safe to call from Node and from the browser.
|
|
42
|
+
*/
|
|
43
|
+
export declare function runStateNodeClass(status: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* DOM: apply a run-state message to a canvas document.
|
|
46
|
+
*
|
|
47
|
+
* For each step, finds the matching `[data-step-name]` node (falling back to
|
|
48
|
+
* `[data-step-id]`), strips the four is-* state classes, and applies the one
|
|
49
|
+
* matching the step's current status. Also updates the first `.canvas-badge`
|
|
50
|
+
* inside `.canvas-title-row`: while the run is active it shows "running" or
|
|
51
|
+
* "testing" (with the `canvas-badge--active` styling class); on completion it
|
|
52
|
+
* restores the original text from `data-idle-label`.
|
|
53
|
+
*
|
|
54
|
+
* Browser-only — not unit-tested (no jsdom in the harness test env).
|
|
55
|
+
* Stringified into the iframe template by `canvas-template.ts`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function applyRunStateToCanvas(doc: Document, msg: {
|
|
58
|
+
steps: Array<{
|
|
59
|
+
name: string;
|
|
60
|
+
id?: string;
|
|
61
|
+
status: string;
|
|
62
|
+
latencyMs?: number;
|
|
63
|
+
}>;
|
|
64
|
+
status: string;
|
|
65
|
+
target: string;
|
|
66
|
+
}): void;
|
|
67
|
+
/**
|
|
68
|
+
* Wires the postMessage listener.
|
|
69
|
+
*
|
|
70
|
+
* Called once at the bottom of the injected `<script>` block. Listens for
|
|
71
|
+
* `{ type: "sapiom:run-state", steps, status, target }` messages from the
|
|
72
|
+
* parent page. The type guard is the only security boundary needed: because
|
|
73
|
+
* the iframe is opaque-origin, no other page can impersonate the parent, and
|
|
74
|
+
* the parent posts to `"*"` (required — we cannot know the opaque origin).
|
|
75
|
+
*
|
|
76
|
+
* Stringified into the iframe template by `canvas-template.ts`.
|
|
77
|
+
*/
|
|
78
|
+
export declare function bootCanvasRunState(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Wires the reverse click channel: iframe → parent.
|
|
81
|
+
*
|
|
82
|
+
* Adds ONE delegated click listener on `document`. When the click target is
|
|
83
|
+
* inside a `.canvas-node[data-step-name]` element, reads the `data-step-name`
|
|
84
|
+
* attribute and posts `{ type: "sapiom:node-click", stepName }` to the parent
|
|
85
|
+
* window. The parent validates the message type and maps the step name to the
|
|
86
|
+
* current RunView to open the step-detail panel.
|
|
87
|
+
*
|
|
88
|
+
* Uses a delegated listener (one listener on document) rather than per-node
|
|
89
|
+
* listeners so it works even when the SVG is replaced (e.g. after a
|
|
90
|
+
* canvas.reload), without needing to re-wire.
|
|
91
|
+
*
|
|
92
|
+
* Stringified into the iframe template by `canvas-template.ts`.
|
|
93
|
+
*/
|
|
94
|
+
export declare function bootCanvasNodeClicks(): void;
|
|
95
|
+
//# sourceMappingURL=canvas-run-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-run-state.d.ts","sourceRoot":"","sources":["../../src/core/canvas-run-state.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE;IACH,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,IAAI,CA+CN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAc3C"}
|