@aiwayds/dsh-tui-pi 2.12.0 → 2.13.0

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/lib/retention.js CHANGED
@@ -148,11 +148,22 @@ export function sessionStoreRoot() {
148
148
  return join(dshHome(), 'sessions');
149
149
  }
150
150
  /**
151
- * Physical log file names the jsonl backend writes (`logSuffix`). Single
152
- * source of truth for every walk of the store — the /resume mtime walk
153
- * (src/sessions.ts) imports this; two private copies already drifted once.
151
+ * Physical log file names the jsonl backend writes, across format
152
+ * generations: the host names the artifact after its format generation
153
+ * (`session.v<NNN>.jsonl` since the V3 format, `session.jsonl` for the
154
+ * legacy V0 era) plus the compression suffix. Walks that pick ONE file
155
+ * prefer the CURRENT generation over a preserved legacy one — keep the v3
156
+ * names LAST so `locateSessionLog`'s `.slice().reverse()` tries them
157
+ * first. Single source of truth for every walk of the store — the /resume
158
+ * mtime walk (src/sessions.ts) imports this; two private copies already
159
+ * drifted once.
154
160
  */
155
- export const SESSION_LOG_FILE_NAMES = ['session.jsonl', 'session.jsonl.zstd'];
161
+ export const SESSION_LOG_FILE_NAMES = [
162
+ 'session.jsonl',
163
+ 'session.jsonl.zstd',
164
+ 'session.v3.jsonl',
165
+ 'session.v3.jsonl.zstd',
166
+ ];
156
167
  /**
157
168
  * Walk `<root>/<project>/<sessionId>/` and stat each session's log. Only
158
169
  * DIRECTORIES at the session level are visited: a flat file at the bucket
@@ -1 +1 @@
1
- {"version":3,"file":"retention.js","sourceRoot":"","sources":["../src/retention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../src/retention.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Session storage directory derivation — where the jsonl backend groups a
3
+ * cwd's sessions, used to LOCATE persisted logs (read-only remote view,
4
+ * corrupt-log repair) without resuming the session.
5
+ *
6
+ * `projectDirectoryFor` is a byte-identical port of upstream `projectKey()`
7
+ * in @deepseek-ai/dsh-session-persistence-jsonl. The derived session dir
8
+ * additionally relies on upstream's `encodeSegment(sessionId)` being the
9
+ * IDENTITY for dsh ids — true while ids are UUIDs (safe charset ⊇ UUID
10
+ * charset). If upstream ever introduces non-UUID ids, port encodeSegment
11
+ * too or derivations land beside decoy paths; update only in lockstep with
12
+ * upstream either way.
13
+ *
14
+ * (Through 0.1.2 this module also vendored the cross-process pid-file
15
+ * writer lock; 0.1.5's host-native `SessionWriteLease` kernel lock on the
16
+ * same directories took that job over and the vendored copy was deleted —
17
+ * see the 0.1.5 migration notes.)
18
+ */
19
+ /**
20
+ * Project-directory name under which the jsonl backend groups a cwd's
21
+ * sessions — byte-identical port of upstream `projectKey()` in
22
+ * @deepseek-ai/dsh-session-persistence-jsonl.
23
+ */
24
+ export declare function projectKeyFor(cwd: string): string;
25
+ /** The jsonl backend's directory for one session: `<root>/<projectKey>/<id>`. */
26
+ export declare function sessionDirFor(root: string, cwd: string, sessionId: string): string;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Session storage directory derivation — where the jsonl backend groups a
3
+ * cwd's sessions, used to LOCATE persisted logs (read-only remote view,
4
+ * corrupt-log repair) without resuming the session.
5
+ *
6
+ * `projectDirectoryFor` is a byte-identical port of upstream `projectKey()`
7
+ * in @deepseek-ai/dsh-session-persistence-jsonl. The derived session dir
8
+ * additionally relies on upstream's `encodeSegment(sessionId)` being the
9
+ * IDENTITY for dsh ids — true while ids are UUIDs (safe charset ⊇ UUID
10
+ * charset). If upstream ever introduces non-UUID ids, port encodeSegment
11
+ * too or derivations land beside decoy paths; update only in lockstep with
12
+ * upstream either way.
13
+ *
14
+ * (Through 0.1.2 this module also vendored the cross-process pid-file
15
+ * writer lock; 0.1.5's host-native `SessionWriteLease` kernel lock on the
16
+ * same directories took that job over and the vendored copy was deleted —
17
+ * see the 0.1.5 migration notes.)
18
+ */
19
+ import { join } from 'node:path';
20
+ /**
21
+ * Project-directory name under which the jsonl backend groups a cwd's
22
+ * sessions — byte-identical port of upstream `projectKey()` in
23
+ * @deepseek-ai/dsh-session-persistence-jsonl.
24
+ */
25
+ export function projectKeyFor(cwd) {
26
+ if (cwd.length === 0)
27
+ throw new Error('cannot encode an empty project path');
28
+ let readable = '';
29
+ let separatorRun = false;
30
+ for (let i = 0; i < cwd.length; i++) {
31
+ const code = cwd.charCodeAt(i);
32
+ const ch = String.fromCharCode(code);
33
+ if (ch === '/' || ch === '\\' || ch === ':') {
34
+ if (!separatorRun)
35
+ readable += '-';
36
+ separatorRun = true;
37
+ }
38
+ else if (ch !== '~' && /^[A-Za-z0-9._-]$/.test(ch)) {
39
+ readable += ch;
40
+ separatorRun = false;
41
+ }
42
+ else {
43
+ readable += `~${code.toString(16).toUpperCase().padStart(4, '0')}`;
44
+ separatorRun = false;
45
+ }
46
+ }
47
+ return `--${(readable.replace(/^-+/, '') || 'root').slice(0, 251)}--`;
48
+ }
49
+ /** The jsonl backend's directory for one session: `<root>/<projectKey>/<id>`. */
50
+ export function sessionDirFor(root, cwd, sessionId) {
51
+ return join(root, projectKeyFor(cwd), sessionId);
52
+ }
53
+ //# sourceMappingURL=session-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-dir.js","sourceRoot":"","sources":["../src/session-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAC5E,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC5C,IAAI,CAAC,YAAY;gBAAE,QAAQ,IAAI,GAAG,CAAA;YAClC,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrD,QAAQ,IAAI,EAAE,CAAA;YACd,YAAY,GAAG,KAAK,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;YAClE,YAAY,GAAG,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAA;AACvE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,GAAW,EAAE,SAAiB;IACxE,OAAO,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;AAClD,CAAC"}
package/lib/session.d.ts CHANGED
@@ -11,12 +11,21 @@
11
11
  */
12
12
  import type { Context } from '@deepseek-ai/cordis';
13
13
  import type { Agent, AgentHandle, ModelSelection } from '@deepseek-ai/dsh-agent';
14
+ import { type StreamChunk } from '@deepseek-ai/dsh-llm';
14
15
  import { SessionId, type SessionEvent } from '@deepseek-ai/dsh-session';
15
16
  import type { AgentView } from './dsh-events.ts';
16
17
  import type { PendingPromptView } from './steer-flow.ts';
17
18
  export interface BridgeCallbacks {
18
19
  /** One session-log event for the bridge's session, in log order. */
19
20
  onEvent(event: SessionEvent): void;
21
+ /**
22
+ * One live streaming delta of the bridge's session, delivered as an
23
+ * `agent/assistant-stream` chunk frame (dsh 0.1.5-rc.1 moved the deltas off
24
+ * the `session/event` firehose; the log only records settlements). The
25
+ * turn/step come from the attempt's start frame. Drives the transcript's
26
+ * typewriter and the think/tool phase machine between settlements.
27
+ */
28
+ onStreamDelta?(turn: number, step: number, chunk: StreamChunk): void;
20
29
  /** Whole-agent lifecycle transition. */
21
30
  onStatus(status: 'idle' | 'running'): void;
22
31
  /**
@@ -74,12 +83,6 @@ export declare class DshSessionBridge {
74
83
  private resuming;
75
84
  /** Target id of the in-flight resume — see `resume()`/`getResumingSessionId()`. */
76
85
  private resumeTargetId;
77
- /**
78
- * Session dirs whose cross-process writer lock THIS bridge established via
79
- * a cold arm. Release is bound to the owning handle's disposal
80
- * (`ownWithLock`), so the set itself only tracks double-release safety.
81
- */
82
- private readonly heldLockDirs;
83
86
  /** Active cross-process read-only view (see watchRemote). */
84
87
  private remoteTail;
85
88
  /** Session watched read-only right now. */
@@ -88,12 +91,8 @@ export declare class DshSessionBridge {
88
91
  private readonly remoteFollowups;
89
92
  private promotingRemote;
90
93
  private promoteTimer;
91
- private idleReleaseTimer;
92
- /** Writer lock taken for the CURRENTLY bound local agent (see drive arms). */
93
- private driveLock;
94
94
  /** Test seam + tuning for the watcher (interval/decoder injection). */
95
95
  private readonly remoteTailOptions;
96
- private readonly idleReleaseDelayMs;
97
96
  private readonly promoteIntervalMs;
98
97
  /** Serializes watch-lifecycle ops against the promotion poll. */
99
98
  private opChain;
@@ -193,12 +192,17 @@ export declare class DshSessionBridge {
193
192
  private readonly trackedSessions;
194
193
  /** `${runId}:${seq}` → childId, for `tool-workflow/agent-end` pairing. */
195
194
  private readonly runSeqToChild;
195
+ /**
196
+ * Session id → the open attempt's turn/step, pinned by `agent/assistant-stream`
197
+ * start frames so chunk frames (which carry no turn/step) can drive the same
198
+ * fold paths the old firehose `assistant/chunk` events did. Cleared on end.
199
+ */
200
+ private readonly openAttempts;
196
201
  constructor(ctx: Context, callbacks: BridgeCallbacks, options?: {
197
202
  remoteTailOptions?: {
198
203
  intervalMs?: number;
199
204
  decode?(file: string): Promise<string>;
200
205
  };
201
- idleReleaseDelayMs?: number;
202
206
  promoteIntervalMs?: number;
203
207
  });
204
208
  /** Whether a `reconcileLiveWithProjection` pass is already in flight. */
@@ -288,18 +292,11 @@ export declare class DshSessionBridge {
288
292
  private watchRemoteInner;
289
293
  private stopRemoteWatch;
290
294
  /**
291
- * Contract "idle releases the write; next input takes it": when OUR agent
292
- * settles with nothing pending locally (own re-wake included), drop the
293
- * writer lock so another surface can take over. Delayed once and
294
- * re-checked because upstream may latch idle only to immediately replay
295
- * a queued wake as a new turn.
296
- */
297
- private scheduleIdleRelease;
298
- /**
299
- * Promote poll tick: viewer + queued follow-ups + watched driver idle →
300
- * race for the writer lock; winning hands to onRemotePromotable (UI
301
- * rebuild via resume + queue drain), losing retries next tick. All async
302
- * sequencing stays in THIS loop — never inside event callbacks.
295
+ * Promote poll tick: viewer + queued follow-ups + watched driver gone →
296
+ * attempt the takeover (onRemotePromotable rebuilds the UI via resume +
297
+ * queue drain); an owned session still refuses the resume and we retry
298
+ * next tick. All async sequencing stays in THIS loop — never inside
299
+ * event callbacks.
303
300
  */
304
301
  private maybePromoteRemote;
305
302
  private maybePromoteRemoteInner;
@@ -394,24 +391,6 @@ export declare class DshSessionBridge {
394
391
  * (fail-open, never locks a decoy), never breaks the resume.
395
392
  */
396
393
  private headerCwdOf;
397
- /**
398
- * Single-writer guard for COLD arms (create / cold resume) only — the
399
- * adopt arm above shares the live instance in-process and must stay
400
- * lock-free. Locks sit beside the jsonl log so every process that could
401
- * append to it competes on one file; a live foreign holder throws
402
- * WriterLockedError (surfaces as "Cannot resume <id>: session is locked
403
- * by a live process …"). `knownCwd` skips the header scan for creations,
404
- * which always target process.cwd().
405
- */
406
- private acquireSessionLock;
407
- /** Undo a guard whose arm then failed — transient errors must not pin the session. */
408
- private releaseColdLock;
409
- /**
410
- * Bind lock release to an owned handle's disposal — every teardown path
411
- * already goes through handle.dispose(), so this is the single choke
412
- * point; switching away or exiting releases what we established.
413
- */
414
- private ownWithLock;
415
394
  /**
416
395
  * Tear down the current live binding — the shared prelude of every session
417
396
  * switch (resume, fork): stop the remote watch, dispose the handle, clear
@@ -457,13 +436,27 @@ export declare class DshSessionBridge {
457
436
  * Replay a persisted session log into the transcript and stats — the second
458
437
  * half of a resume (call after `resume()`). Stats are rebuilt from zero so
459
438
  * the footer reflects the resumed session only; replaying the same log
460
- * twice is idempotent. `assistant/chunk` events are skipped: the finalized
461
- * `assistant/message` carries the full text, and replaying chunks would
462
- * re-run the quadratic streaming assembly for every historical step.
439
+ * twice is idempotent. V3 logs carry no streaming chunks at all — the
440
+ * finalized `assistant/message` holds the full text (and its embedded
441
+ * stream, which replay never needs).
463
442
  */
464
443
  replay(events: readonly SessionEvent[]): void;
465
444
  /** Update incremental stats from one event — one pass over the event only. */
466
445
  private applyEvent;
446
+ /**
447
+ * One `agent/assistant-stream` frame of any session in the process (dsh
448
+ * 0.1.5-rc.1 moved the live deltas off the firehose). Chunk frames carry no
449
+ * turn/step — the attempt's start frame pinned them in {@link openAttempts}.
450
+ */
451
+ private onStreamFrame;
452
+ /**
453
+ * Fold one streaming delta of a tracked CHILD into the live row: the
454
+ * content tail (text AND reasoning — never a tool name, always the child's
455
+ * own output) and the pending-occupancy estimate. The assembled
456
+ * `assistant/message` later replaces the tail with the authoritative last
457
+ * line and resets the estimate against real usage.
458
+ */
459
+ private foldChildStreamDelta;
467
460
  /**
468
461
  * The current context-occupancy estimate: the latest assistant/message's
469
462
  * billed input (uncached + cache read + cache write) and output, plus the