aicodeman 1.22.0 → 1.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/config/dependency-registry.d.ts.map +1 -1
- package/dist/config/dependency-registry.js +27 -0
- package/dist/config/dependency-registry.js.map +1 -1
- package/dist/cron/cron-service.d.ts +3 -2
- package/dist/cron/cron-service.d.ts.map +1 -1
- package/dist/cron/cron-service.js +17 -3
- package/dist/cron/cron-service.js.map +1 -1
- package/dist/deepseek-status-shim.d.ts +77 -0
- package/dist/deepseek-status-shim.d.ts.map +1 -0
- package/dist/deepseek-status-shim.js +268 -0
- package/dist/deepseek-status-shim.js.map +1 -0
- package/dist/deepseek-transcript.d.ts +188 -0
- package/dist/deepseek-transcript.d.ts.map +1 -0
- package/dist/deepseek-transcript.js +633 -0
- package/dist/deepseek-transcript.js.map +1 -0
- package/dist/deepseek-web-server.d.ts +60 -0
- package/dist/deepseek-web-server.d.ts.map +1 -0
- package/dist/deepseek-web-server.js +249 -0
- package/dist/deepseek-web-server.js.map +1 -0
- package/dist/docker-hosts.d.ts.map +1 -1
- package/dist/docker-hosts.js +12 -0
- package/dist/docker-hosts.js.map +1 -1
- package/dist/mux-interface.d.ts +3 -1
- package/dist/mux-interface.d.ts.map +1 -1
- package/dist/remote-hosts.d.ts.map +1 -1
- package/dist/remote-hosts.js +4 -0
- package/dist/remote-hosts.js.map +1 -1
- package/dist/session.d.ts +27 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +47 -2
- package/dist/session.js.map +1 -1
- package/dist/tmux-manager.d.ts +23 -1
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +134 -5
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tui/tui-app.d.ts.map +1 -1
- package/dist/tui/tui-app.js +1 -0
- package/dist/tui/tui-app.js.map +1 -1
- package/dist/tui/tui-client.d.ts +1 -1
- package/dist/tui/tui-client.d.ts.map +1 -1
- package/dist/types/api.d.ts +1 -1
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js.map +1 -1
- package/dist/types/session.d.ts +61 -4
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +2 -1
- package/dist/types/session.js.map +1 -1
- package/dist/types/webview.d.ts +15 -0
- package/dist/types/webview.d.ts.map +1 -1
- package/dist/utils/deepseek-cli-resolver.d.ts +144 -0
- package/dist/utils/deepseek-cli-resolver.d.ts.map +1 -0
- package/dist/utils/deepseek-cli-resolver.js +339 -0
- package/dist/utils/deepseek-cli-resolver.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/web/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.c5cf1b8a.js +36 -0
- package/dist/web/public/app.c5cf1b8a.js.br +0 -0
- package/dist/web/public/app.c5cf1b8a.js.gz +0 -0
- package/dist/web/public/approvals-ui.js.gz +0 -0
- package/dist/web/public/{constants.189c7bff.js → constants.f4ea0a19.js} +8 -1
- package/dist/web/public/constants.f4ea0a19.js.br +0 -0
- package/dist/web/public/constants.f4ea0a19.js.gz +0 -0
- package/dist/web/public/cron-ui.js.gz +0 -0
- package/dist/web/public/entrance-animations.js.gz +0 -0
- package/dist/web/public/home-sessions.js +1 -0
- package/dist/web/public/home-sessions.js.br +0 -0
- package/dist/web/public/home-sessions.js.gz +0 -0
- package/dist/web/public/i18n.9ae15b51.js +1 -0
- package/dist/web/public/i18n.9ae15b51.js.br +0 -0
- package/dist/web/public/i18n.9ae15b51.js.gz +0 -0
- package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
- package/dist/web/public/index.html +47 -14
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.87f14251.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.0454a3e9.js.gz +0 -0
- package/dist/web/public/mobile-handlers.0f83a608.js.gz +0 -0
- package/dist/web/public/mobile-overview.js +6 -0
- package/dist/web/public/mobile-overview.js.br +0 -0
- package/dist/web/public/mobile-overview.js.gz +0 -0
- package/dist/web/public/mobile.cab92e3f.css +1 -0
- package/dist/web/public/mobile.cab92e3f.css.br +0 -0
- package/dist/web/public/mobile.cab92e3f.css.gz +0 -0
- package/dist/web/public/notification-manager.5d229063.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/{panels-ui.7c667123.js → panels-ui.344de87d.js} +41 -33
- package/dist/web/public/panels-ui.344de87d.js.br +0 -0
- package/dist/web/public/panels-ui.344de87d.js.gz +0 -0
- package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
- package/dist/web/public/readmymind-ui.js.gz +0 -0
- package/dist/web/public/respawn-ui.ff0dae4c.js.gz +0 -0
- package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
- package/dist/web/public/session-lineage.js.gz +0 -0
- package/dist/web/public/session-ui.103656d3.js +68 -0
- package/dist/web/public/session-ui.103656d3.js.br +0 -0
- package/dist/web/public/session-ui.103656d3.js.gz +0 -0
- package/dist/web/public/settings-ui.3261b896.js +67 -0
- package/dist/web/public/settings-ui.3261b896.js.br +0 -0
- package/dist/web/public/settings-ui.3261b896.js.gz +0 -0
- package/dist/web/public/styles.1938fd02.css +1 -0
- package/dist/web/public/styles.1938fd02.css.br +0 -0
- package/dist/web/public/styles.1938fd02.css.gz +0 -0
- package/dist/web/public/subagent-windows.e6ca799f.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/tab-rail-resize.42c24949.js +1 -0
- package/dist/web/public/tab-rail-resize.42c24949.js.br +0 -0
- package/dist/web/public/tab-rail-resize.42c24949.js.gz +0 -0
- package/dist/web/public/terminal-ui.5e0c230c.js +2 -0
- package/dist/web/public/terminal-ui.5e0c230c.js.br +0 -0
- package/dist/web/public/terminal-ui.5e0c230c.js.gz +0 -0
- package/dist/web/public/ultracode-panel.js.gz +0 -0
- package/dist/web/public/ultracode-windows.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
- package/dist/web/public/vendor/marked.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-predictive-echo.bd6882b8.js.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.6fee72f2.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.4ec670b0.js.gz +0 -0
- package/dist/web/public/voice-pcm-worklet.js.gz +0 -0
- package/dist/web/public/webview-tabs.js +4 -1
- package/dist/web/public/webview-tabs.js.br +0 -0
- package/dist/web/public/webview-tabs.js.gz +0 -0
- package/dist/web/response-viewer-transcript.js +1 -1
- package/dist/web/response-viewer-transcript.js.map +1 -1
- package/dist/web/routes/approval-routes.d.ts.map +1 -1
- package/dist/web/routes/approval-routes.js +12 -2
- package/dist/web/routes/approval-routes.js.map +1 -1
- package/dist/web/routes/hook-event-routes.d.ts.map +1 -1
- package/dist/web/routes/hook-event-routes.js +51 -7
- package/dist/web/routes/hook-event-routes.js.map +1 -1
- package/dist/web/routes/readmymind-routes.d.ts.map +1 -1
- package/dist/web/routes/readmymind-routes.js +5 -2
- package/dist/web/routes/readmymind-routes.js.map +1 -1
- package/dist/web/routes/session-routes.d.ts +30 -2
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +158 -16
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/routes/system-routes.d.ts.map +1 -1
- package/dist/web/routes/system-routes.js +203 -2
- package/dist/web/routes/system-routes.js.map +1 -1
- package/dist/web/routes/webview-routes.d.ts.map +1 -1
- package/dist/web/routes/webview-routes.js +1 -0
- package/dist/web/routes/webview-routes.js.map +1 -1
- package/dist/web/schemas.d.ts +68 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +107 -4
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +21 -3
- package/dist/web/server.js.map +1 -1
- package/dist/web/session-wait-registry.d.ts +63 -7
- package/dist/web/session-wait-registry.d.ts.map +1 -1
- package/dist/web/session-wait-registry.js +67 -9
- package/dist/web/session-wait-registry.js.map +1 -1
- package/dist/web/sse-events.d.ts +11 -2
- package/dist/web/sse-events.d.ts.map +1 -1
- package/dist/web/sse-events.js +11 -2
- package/dist/web/sse-events.js.map +1 -1
- package/package.json +2 -1
- package/skills/codeman/SKILL.md +121 -34
- package/skills/codeman/preamble.sh +81 -26
- package/skills/codeman/reference/endpoints.md +18 -10
- package/skills/codeman/reference/messaging.md +2 -2
- package/skills/codeman/reference/recipes.md +53 -0
- package/skills/codeman/reference/verbs.md +39 -8
- package/dist/web/public/app.84bf8955.js +0 -36
- package/dist/web/public/app.84bf8955.js.br +0 -0
- package/dist/web/public/app.84bf8955.js.gz +0 -0
- package/dist/web/public/constants.189c7bff.js.br +0 -0
- package/dist/web/public/constants.189c7bff.js.gz +0 -0
- package/dist/web/public/i18n.34016b89.js +0 -1
- package/dist/web/public/i18n.34016b89.js.br +0 -0
- package/dist/web/public/i18n.34016b89.js.gz +0 -0
- package/dist/web/public/mobile.983f064e.css +0 -1
- package/dist/web/public/mobile.983f064e.css.br +0 -0
- package/dist/web/public/mobile.983f064e.css.gz +0 -0
- package/dist/web/public/panels-ui.7c667123.js.br +0 -0
- package/dist/web/public/panels-ui.7c667123.js.gz +0 -0
- package/dist/web/public/session-ui.acd79900.js +0 -68
- package/dist/web/public/session-ui.acd79900.js.br +0 -0
- package/dist/web/public/session-ui.acd79900.js.gz +0 -0
- package/dist/web/public/settings-ui.115a2d1e.js +0 -67
- package/dist/web/public/settings-ui.115a2d1e.js.br +0 -0
- package/dist/web/public/settings-ui.115a2d1e.js.gz +0 -0
- package/dist/web/public/styles.64369ebd.css +0 -1
- package/dist/web/public/styles.64369ebd.css.br +0 -0
- package/dist/web/public/styles.64369ebd.css.gz +0 -0
- package/dist/web/public/tab-rail-resize.f3465ce1.js +0 -1
- package/dist/web/public/tab-rail-resize.f3465ce1.js.br +0 -0
- package/dist/web/public/tab-rail-resize.f3465ce1.js.gz +0 -0
- package/dist/web/public/terminal-ui.ef68a666.js +0 -2
- package/dist/web/public/terminal-ui.ef68a666.js.br +0 -0
- package/dist/web/public/terminal-ui.ef68a666.js.gz +0 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Reading a DeepSeek Harness (`dsh`) session transcript off disk.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* `GET /api/sessions/:id/last-response` is how an agent (and the Response
|
|
7
|
+
* Viewer) reads what a worker actually said. For Claude it comes from
|
|
8
|
+
* `~/.claude/projects/**`, for Codex from `~/.codex/sessions/**`, and for every
|
|
9
|
+
* other external CLI it comes from segmenting the terminal buffer, because
|
|
10
|
+
* those CLIs write nothing a reader could open.
|
|
11
|
+
*
|
|
12
|
+
* dsh is not in that last group: it writes a complete, structured JSONL
|
|
13
|
+
* transcript per session. Falling back to the pane for it was measurably wrong
|
|
14
|
+
* rather than merely coarse — dsh-TUI paints a full-screen splash, so the pane
|
|
15
|
+
* segmenter answered a `last-response` call for a fresh dsh session with the
|
|
16
|
+
* ASCII-art logo:
|
|
17
|
+
*
|
|
18
|
+
* {"text":"✦dsh-TUI v0.8.8█▀▀▀▄█▀▀▀▀█▀▀▀▀█▀▀▀▄█▀▀▀▀…","hasContext":true}
|
|
19
|
+
*
|
|
20
|
+
* which an agent polling for a worker's answer reads as an answer. This module
|
|
21
|
+
* is the real source: it locates the session's transcript, decodes it, and
|
|
22
|
+
* returns the last turn's text.
|
|
23
|
+
*
|
|
24
|
+
* ## The three things that make dsh transcripts unlike codex rollouts
|
|
25
|
+
*
|
|
26
|
+
* **1. One zstd FRAME per append, not one zstd stream.** The file is
|
|
27
|
+
* `session.jsonl.zstd`, and dsh appends by compressing each batch of lines into
|
|
28
|
+
* its own frame and writing it at the end. `zstd -dc` handles that (frames
|
|
29
|
+
* concatenate by definition), but Node's `zlib.zstdDecompress()` and
|
|
30
|
+
* `createZstdDecompress()` both stop at the first frame end: measured on a real
|
|
31
|
+
* 56-line transcript, Node returned 158 bytes / 1 line where the CLI returned
|
|
32
|
+
* 43,747 bytes / 56 lines. That is a silent truncation to the session header —
|
|
33
|
+
* every call would have reported "no answer yet" forever. `decodeZstdFrames()`
|
|
34
|
+
* below walks the frame headers itself and decompresses each frame, and
|
|
35
|
+
* `test/deepseek-transcript.test.ts` pins it against multi-frame fixtures.
|
|
36
|
+
*
|
|
37
|
+
* **2. The user's prompts are mixed with injected context.** Every turn also
|
|
38
|
+
* writes a `user/message` whose source is a plugin (the runtime-context
|
|
39
|
+
* snapshot: sandbox policy, approval policy, cwd). Those are `source.kind ===
|
|
40
|
+
* 'plugin'`; a real prompt is `source.kind === 'user'`. Rendering the plugin
|
|
41
|
+
* ones would show the agent its own boilerplate back as the user's words.
|
|
42
|
+
*
|
|
43
|
+
* **3. A failed turn is not an empty turn.** `turn/end` carries
|
|
44
|
+
* `reason.kind === 'error'` with the provider's message. Returning `""` there
|
|
45
|
+
* makes an agent poll `last-response` fifteen times and conclude the worker
|
|
46
|
+
* never answered, when the truth ("the provider rejected the request") was on
|
|
47
|
+
* disk the whole time. A turn that ends in an error and produced no text
|
|
48
|
+
* answers with that error, prefixed so it can never be mistaken for the model's
|
|
49
|
+
* own words.
|
|
50
|
+
*
|
|
51
|
+
* Verified against `dsh 0.1.1-rc.2` + `@deepseek-harness-tui/dsh-tui 0.8.8`.
|
|
52
|
+
*/
|
|
53
|
+
/**
|
|
54
|
+
* One rendered block, in the shape the Response Viewer already speaks (see
|
|
55
|
+
* `web/response-viewer-transcript.ts`). Imported as a type only — this module
|
|
56
|
+
* must stay usable from the session layer without dragging web/ into it.
|
|
57
|
+
*/
|
|
58
|
+
export interface DeepSeekTranscriptBlock {
|
|
59
|
+
kind: 'prompt' | 'response' | 'status' | 'tool';
|
|
60
|
+
label: 'Prompt' | 'Response' | 'Status' | 'Tool';
|
|
61
|
+
role: 'user' | 'assistant';
|
|
62
|
+
text: string;
|
|
63
|
+
}
|
|
64
|
+
export interface DeepSeekTranscriptResult {
|
|
65
|
+
/** Last turn's answer (or its error, prefixed). Empty before the first turn. */
|
|
66
|
+
text: string;
|
|
67
|
+
/** ISO timestamp of the event `text` came from, or '' when unknown. */
|
|
68
|
+
timestamp: string;
|
|
69
|
+
/** Rendered blocks, oldest first. Only built when the caller asks for them. */
|
|
70
|
+
blocks: DeepSeekTranscriptBlock[];
|
|
71
|
+
/** dsh's own session id, from the header line. */
|
|
72
|
+
sessionId?: string;
|
|
73
|
+
/** Workspace the harness recorded for the session. */
|
|
74
|
+
cwd?: string;
|
|
75
|
+
}
|
|
76
|
+
/** Whether this Node can decode the compressed transcripts dsh writes. */
|
|
77
|
+
export declare function zstdSupported(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Byte ranges of the zstd frames in `buf`, in order.
|
|
80
|
+
*
|
|
81
|
+
* Walks frame headers and block headers only — no decompression — so the cost
|
|
82
|
+
* is proportional to the number of blocks, not to the content. Stops (rather
|
|
83
|
+
* than throws) at the first thing it cannot parse, so a transcript still being
|
|
84
|
+
* appended to mid-write yields every whole frame before the torn tail instead
|
|
85
|
+
* of failing the whole read.
|
|
86
|
+
*
|
|
87
|
+
* ⚠️ Splitting on the magic bytes instead would be wrong: the 4-byte sequence
|
|
88
|
+
* can occur inside compressed data, and a false split corrupts everything after
|
|
89
|
+
* it. The block walk is what makes the boundaries exact.
|
|
90
|
+
*/
|
|
91
|
+
export declare function zstdFrameRanges(buf: Buffer): Array<[number, number]>;
|
|
92
|
+
/**
|
|
93
|
+
* Decode a possibly multi-frame zstd buffer. A buffer that does not start with
|
|
94
|
+
* a zstd magic is passed through unchanged, which is what lets the same reader
|
|
95
|
+
* open a plain `session.jsonl` (dsh writes one when compression is off).
|
|
96
|
+
*
|
|
97
|
+
* A frame that fails to decompress truncates the decode THERE rather than
|
|
98
|
+
* failing it: everything decoded before it is kept, so a half-written tail
|
|
99
|
+
* frame does not cost the caller the whole conversation. (Not "skipped" — a
|
|
100
|
+
* frame after a corrupt one is never reached, which is the safe reading: dsh
|
|
101
|
+
* appends, so a bad frame means everything after it is suspect too.)
|
|
102
|
+
*/
|
|
103
|
+
export declare function decodeZstdFrames(buf: Buffer): string;
|
|
104
|
+
/**
|
|
105
|
+
* Parse a decoded dsh transcript.
|
|
106
|
+
*
|
|
107
|
+
* `text` is the LAST TURN's answer, not the last assistant message anywhere in
|
|
108
|
+
* the file: a turn that errored after an earlier turn answered must not hand
|
|
109
|
+
* back the earlier turn's text as though it were this turn's reply.
|
|
110
|
+
*/
|
|
111
|
+
export declare function parseDeepSeekTranscript(raw: string, options?: {
|
|
112
|
+
blocks?: boolean;
|
|
113
|
+
}): DeepSeekTranscriptResult;
|
|
114
|
+
/**
|
|
115
|
+
* `$DSH_HOME` for one session: a per-session override wins (`DSH_HOME` is an
|
|
116
|
+
* allowlisted `envOverrides` prefix, and pointing a worker at its own profile
|
|
117
|
+
* tree is a documented thing to do), then the server's own environment, then
|
|
118
|
+
* `~/.dsh`. Reading the wrong tree does not fail loudly — it silently finds no
|
|
119
|
+
* transcript — so this must resolve exactly the way the spawn did.
|
|
120
|
+
*/
|
|
121
|
+
export declare function resolveDeepSeekHome(session: {
|
|
122
|
+
deepSeekHomeOverride?: string;
|
|
123
|
+
}): string;
|
|
124
|
+
/**
|
|
125
|
+
* Locate the transcript for a session.
|
|
126
|
+
*
|
|
127
|
+
* dsh buckets sessions by a mangled cwd (`--home-you-code-app--`) and then by
|
|
128
|
+
* its own session id, and the id form has changed between versions (`<uuid>`
|
|
129
|
+
* and `session-<uuid>` both exist on disk here). ⚠️ So the mangling is NOT
|
|
130
|
+
* reproduced: every candidate's own header line carries `cwd`, which is
|
|
131
|
+
* authoritative, and matching on it is immune to the next naming change.
|
|
132
|
+
*
|
|
133
|
+
* Pairing a Codeman session with ITS transcript then has one hard rule and one
|
|
134
|
+
* ladder. The rule: a transcript created BEFORE this session started belongs to
|
|
135
|
+
* an earlier conversation in the same directory and is never eligible. Measured
|
|
136
|
+
* cost of getting that wrong — a freshly spawned worker answered its very first
|
|
137
|
+
* `last-response` with the PREVIOUS session's reply, which is worse than saying
|
|
138
|
+
* nothing, because an agent cannot tell a stale answer from a fresh one.
|
|
139
|
+
*
|
|
140
|
+
* The ladder, once the older ones are out:
|
|
141
|
+
*
|
|
142
|
+
* 1. a transcript whose header `createdAt` sits within `PAIRING_WINDOW_MS` of
|
|
143
|
+
* this session's start — that is this pane's own boot, and it stays right
|
|
144
|
+
* even when a sibling session is running in the same case directory;
|
|
145
|
+
* 2. otherwise the newest transcript created after this session started;
|
|
146
|
+
* 3. otherwise nothing.
|
|
147
|
+
*
|
|
148
|
+
* ⚠️ The boot transcript wins for as long as it exists on disk — deliberately,
|
|
149
|
+
* and even over a LATER transcript in the same workspace. Step 2 cannot tell a
|
|
150
|
+
* `/new` from a sibling session that started later in the same directory, so
|
|
151
|
+
* preferring newest-eligible would hand a worker its busier sibling's reply
|
|
152
|
+
* (the exact bug the hard rule above was measured against, one seat over).
|
|
153
|
+
* The cost of that choice: after an interactive `/new` in a dsh tab, this
|
|
154
|
+
* reader keeps serving the pre-`/new` conversation (the same session's own
|
|
155
|
+
* earlier turns — stale, never foreign); step 2 is reached only when no
|
|
156
|
+
* boot-window transcript exists. Worker fleets never `/new`, so they only
|
|
157
|
+
* ever see step 1.
|
|
158
|
+
*/
|
|
159
|
+
export declare function findDeepSeekTranscript(options: {
|
|
160
|
+
dshHome: string;
|
|
161
|
+
workingDir: string;
|
|
162
|
+
startedAt?: number;
|
|
163
|
+
}): Promise<string | null>;
|
|
164
|
+
/** Test seam: a fixture that rewrites one path in place inside a single mtime
|
|
165
|
+
* tick would otherwise read its predecessor back out of the memo. */
|
|
166
|
+
export declare function resetDeepSeekTranscriptMemoForTest(): void;
|
|
167
|
+
/**
|
|
168
|
+
* Read one dsh session's last answer.
|
|
169
|
+
*
|
|
170
|
+
* ⚠️ The two empty outcomes are deliberately different, because the caller must
|
|
171
|
+
* treat them differently:
|
|
172
|
+
*
|
|
173
|
+
* - `null` means **this reader cannot run here** (a Node without zstd), and is
|
|
174
|
+
* the signal to fall back to the pane segmenter.
|
|
175
|
+
* - an empty `text` means **read fine, nothing said yet** — no transcript for
|
|
176
|
+
* this workspace, or a turn still in flight.
|
|
177
|
+
*
|
|
178
|
+
* Collapsing the two would put the ASCII-art splash back in front of an agent
|
|
179
|
+
* that is polling for a worker's first answer.
|
|
180
|
+
*/
|
|
181
|
+
export declare function readDeepSeekLastResponse(session: {
|
|
182
|
+
workingDir: string;
|
|
183
|
+
createdAt?: Date | number;
|
|
184
|
+
deepSeekHomeOverride?: string;
|
|
185
|
+
}, options?: {
|
|
186
|
+
blocks?: boolean;
|
|
187
|
+
}): Promise<DeepSeekTranscriptResult | null>;
|
|
188
|
+
//# sourceMappingURL=deepseek-transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek-transcript.d.ts","sourceRoot":"","sources":["../src/deepseek-transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAOH;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChD,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjD,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAgBD,0EAA0E;AAC1E,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgEpE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBpD;AAkHD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,wBAAwB,CAyHjH;AAED;;;;;;GAMG;AAOH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAMtF;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoDzB;AAmDD;sEACsE;AACtE,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAAE,EACzF,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAkC1C"}
|