@treeseed/dsh-chapters 0.1.24 → 0.2.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.
Files changed (103) hide show
  1. package/README.md +2 -1
  2. package/cordis.patch.yml +49 -1
  3. package/docs/architecture.md +1 -496
  4. package/docs/backlog.md +234 -4
  5. package/docs/contract.md +127 -1
  6. package/docs/development.md +248 -12
  7. package/docs/host-compaction-seam.md +108 -0
  8. package/docs/knowledge-repo.md +532 -16
  9. package/docs/project-state.md +323 -0
  10. package/docs/verify.md +217 -0
  11. package/lib/archive.d.ts +49 -1
  12. package/lib/archive.js +56 -2
  13. package/lib/archive.js.map +1 -1
  14. package/lib/arrival.js +24 -10
  15. package/lib/arrival.js.map +1 -1
  16. package/lib/attach.d.ts +46 -0
  17. package/lib/attach.js +120 -0
  18. package/lib/attach.js.map +1 -0
  19. package/lib/auto-save.d.ts +74 -0
  20. package/lib/auto-save.js +162 -26
  21. package/lib/auto-save.js.map +1 -1
  22. package/lib/client.js +413 -11
  23. package/lib/client.js.map +1 -1
  24. package/lib/commands.d.ts +8 -1
  25. package/lib/commands.js +135 -7
  26. package/lib/commands.js.map +1 -1
  27. package/lib/compose.js +25 -6
  28. package/lib/compose.js.map +1 -1
  29. package/lib/continue-core.d.ts +24 -1
  30. package/lib/continue-core.js +41 -9
  31. package/lib/continue-core.js.map +1 -1
  32. package/lib/diag.d.ts +47 -0
  33. package/lib/diag.js +141 -0
  34. package/lib/diag.js.map +1 -0
  35. package/lib/engine-core.d.ts +51 -1
  36. package/lib/engine-core.js +63 -7
  37. package/lib/engine-core.js.map +1 -1
  38. package/lib/engine.d.ts +93 -0
  39. package/lib/engine.js +477 -36
  40. package/lib/engine.js.map +1 -1
  41. package/lib/enrich-queue.js +28 -2
  42. package/lib/enrich-queue.js.map +1 -1
  43. package/lib/enrich-wire.d.ts +92 -2
  44. package/lib/enrich-wire.js +135 -17
  45. package/lib/enrich-wire.js.map +1 -1
  46. package/lib/enrich.d.ts +27 -2
  47. package/lib/enrich.js +114 -18
  48. package/lib/enrich.js.map +1 -1
  49. package/lib/index.d.ts +51 -0
  50. package/lib/index.js +180 -2
  51. package/lib/index.js.map +1 -1
  52. package/lib/indexing.d.ts +7 -0
  53. package/lib/indexing.js.map +1 -1
  54. package/lib/injections.d.ts +1 -0
  55. package/lib/injections.js +38 -0
  56. package/lib/injections.js.map +1 -1
  57. package/lib/last-resort.d.ts +24 -0
  58. package/lib/last-resort.js +27 -0
  59. package/lib/last-resort.js.map +1 -0
  60. package/lib/prompt.d.ts +130 -0
  61. package/lib/prompt.js +255 -0
  62. package/lib/prompt.js.map +1 -0
  63. package/lib/registry.d.ts +39 -1
  64. package/lib/registry.js +76 -9
  65. package/lib/registry.js.map +1 -1
  66. package/lib/render.d.ts +31 -3
  67. package/lib/render.js +75 -3
  68. package/lib/render.js.map +1 -1
  69. package/lib/repair-run.d.ts +49 -0
  70. package/lib/repair-run.js +423 -0
  71. package/lib/repair-run.js.map +1 -0
  72. package/lib/repair.d.ts +200 -0
  73. package/lib/repair.js +354 -0
  74. package/lib/repair.js.map +1 -0
  75. package/lib/rules-commands.d.ts +22 -0
  76. package/lib/rules-commands.js +177 -20
  77. package/lib/rules-commands.js.map +1 -1
  78. package/lib/rules.d.ts +184 -7
  79. package/lib/rules.js +312 -27
  80. package/lib/rules.js.map +1 -1
  81. package/lib/save-core.d.ts +31 -1
  82. package/lib/save-core.js +153 -17
  83. package/lib/save-core.js.map +1 -1
  84. package/lib/session-rules.d.ts +222 -0
  85. package/lib/session-rules.js +454 -0
  86. package/lib/session-rules.js.map +1 -0
  87. package/lib/store.d.ts +22 -1
  88. package/lib/store.js +94 -17
  89. package/lib/store.js.map +1 -1
  90. package/lib/sync.js +13 -1
  91. package/lib/sync.js.map +1 -1
  92. package/lib/tools.d.ts +14 -0
  93. package/lib/tools.js +311 -32
  94. package/lib/tools.js.map +1 -1
  95. package/lib/types.d.ts +12 -1
  96. package/lib/types.js.map +1 -1
  97. package/lib/version.d.ts +9 -0
  98. package/lib/version.js +10 -0
  99. package/lib/version.js.map +1 -0
  100. package/lib/warnings.d.ts +10 -0
  101. package/lib/warnings.js +18 -0
  102. package/lib/warnings.js.map +1 -0
  103. package/package.json +9 -3
package/lib/auto-save.js CHANGED
@@ -25,7 +25,8 @@
25
25
  * non-archive is either a quiet, expected skip (wrong preset, no completed turn)
26
26
  * or a LOUD warn (unreadable, save failed).
27
27
  */
28
- import { appendFileSync } from 'node:fs';
28
+ import { diagnosticWarn } from "./diag.js";
29
+ import { formatWarnings } from "./warnings.js";
29
30
  import { saveSession } from "./save-core.js";
30
31
  import { lineageOf } from "./types.js";
31
32
  const hasCompletedTurn = (events) => events.some((e) => e.type === 'turn/end');
@@ -91,6 +92,12 @@ export function makeSubagentEndListener(deps) {
91
92
  }
92
93
  try {
93
94
  const out = await deps.save(view);
95
+ // #58: 'payloadless' is an anomaly, not an expected skip — the child settled with a
96
+ // read that carried no bytes, so its knowledge is NOT archived. Loud, by the same
97
+ // containment rule as 'unreadable'. 'nothing-new'/'no-completed-turn' stay quiet.
98
+ if (out.skipped === 'payloadless') {
99
+ deps.warn(`subagent auto-save: ${id} settled with an archive that rendered nothing — NOT archived (a payload-less read, not a short conversation): ${out.warnings.join('; ')}`);
100
+ }
94
101
  deps.onSettled?.(id, out.skipped === null ? `saved${suffix}` : `skipped:${out.skipped}${suffix}`);
95
102
  }
96
103
  catch (error) {
@@ -120,17 +127,133 @@ export function makeSubagentEndListener(deps) {
120
127
  * for the idle/afterPush ladders exactly like a `/chapters-save` that skipped
121
128
  * the manual nudge. A test pins that nothing here calls runNow.
122
129
  */
123
- export function wireSubagentAutoSave(ctx, store, wiring) {
124
- const warn = (message) => {
125
- ctx.logger?.warn?.(message);
126
- // the engine's precedent (r19): a headless profile routes ctx.logger where
127
- // nobody can see it; the sink env makes the loss readable from outside.
130
+ /**
131
+ * The ONE payload-bearing durable read (docs/contract.md § Durable reads, issue #58).
132
+ *
133
+ * Door 5 needs it because a continuable child is disposed before `subagent/end`; the repair door
134
+ * (`/chapters-repair`, #60) needs the same thing because re-deriving a chapter is worthless if the read
135
+ * returns metadata rows. Two copies of "read the log" is how 12 children were archived as empty shells
136
+ * and the seam still looked alive: `listEvents` succeeds, returns 10 correctly-typed
137
+ * `SessionEventRecord`s, and none of them has `data`. So this function is exported and pinned by a
138
+ * source-shape row that fails if a door starts reading the log by hand again.
139
+ */
140
+ export async function readDurableSession(get, sessionId) {
141
+ const sq = get('sessionQuery');
142
+ if (sq?.readSession === undefined)
143
+ return undefined;
144
+ const read = await sq.readSession(sessionId);
145
+ const events = read?.events;
146
+ if (!Array.isArray(events) || events.length === 0)
147
+ return undefined;
148
+ // The header rides the same observation as the bytes being archived — origin/agentPreset/cwd are
149
+ // never inferred from a second scan (and never from the events, which is the r28 lesson).
150
+ return { events, header: read.session ?? {} };
151
+ }
152
+ /**
153
+ * The seventh archive moment (#61, Amendment A): **a rooted child that has never archived.**
154
+ *
155
+ * Door 5 is keyed on `origin: 'subagent'`. A `ch-*` continuation child is NOT a subagent — its header
156
+ * says `origin: user` with a `parentSession` — so no moment was watching it at all. The field case was
157
+ * `ch-dc3be3ab`: 2,363 events, 414 tool calls, 2 completed turns, `chapters: []`, `reservations: {}`.
158
+ * Not a failed archive: one never attempted. Its knowledge sits in the log and is invisible to every
159
+ * search on the machine, which is precisely what this plugin exists to prevent.
160
+ *
161
+ * This is the PURE gate — the listener below only does I/O, so the decision is testable (and reviewable)
162
+ * without a host.
163
+ */
164
+ export function shouldForceChildArchive(input) {
165
+ if (!input.enabled)
166
+ return { fire: false, reason: 'childAutoArchive is off in config' };
167
+ if (input.header.agentPreset !== 'chapters')
168
+ return { fire: false, reason: 'not a chapters-preset session' };
169
+ // door 5 owns delegation; two doors on one child would double-write the same span
170
+ if (input.header.origin === 'subagent')
171
+ return { fire: false, reason: 'owned by subagent settlement (door 5)' };
172
+ // Only a ROOTED child: a session with no parent anywhere is the user's own session, whose doors are
173
+ // 1–3 (a human, a button, pressure) and which this plugin must not archive behind their back.
174
+ const parent = input.header.parentSession ?? input.lineageParent ?? '';
175
+ if (parent === undefined || parent === '') {
176
+ return { fire: false, reason: 'no lineage (header, registry row, or ch- id) — a root session, doors 1–3 own it' };
177
+ }
178
+ if (input.anchor <= 0)
179
+ return { fire: false, reason: 'no completed turn yet' };
180
+ if (input.chapterCount === 0) {
181
+ return { fire: true, reason: 'never archived — the hole #61 measured (2,363 events, chapters: [])' };
182
+ }
183
+ if (input.completedTurnsAboveWatermark < input.minTurns) {
184
+ return { fire: false, reason: `${input.completedTurnsAboveWatermark} unarchived turn(s) < childAutoArchiveMinTurns=${input.minTurns}` };
185
+ }
186
+ return { fire: true, reason: `${input.completedTurnsAboveWatermark} completed turns past the watermark (seq ${input.lastArchivedSeq})` };
187
+ }
188
+ /**
189
+ * The listener. Save-only — creates NO session and compacts NO surface, so the "no
190
+ * continuation-creating actions mid-step" rule is not engaged (the same reasoning that let door 5
191
+ * exist). Fires only on `turn/end`, reads the LIVE session's own payload-bearing events, and is
192
+ * watermark-idempotent: a re-run finds `nothing-new` and writes nothing.
193
+ */
194
+ export function makeChildArchiveListener(deps) {
195
+ const chains = new Map();
196
+ const section = (id, job) => {
197
+ const prev = chains.get(id) ?? Promise.resolve();
198
+ const next = prev.then(job, job);
199
+ chains.set(id, next.then(() => undefined, () => undefined));
200
+ };
201
+ return (session, event) => {
128
202
  try {
129
- const sink = process.env.DSH_CHAPTERS_ENGINE_ERRORS;
130
- if (sink !== undefined)
131
- appendFileSync(sink, `[${new Date().toISOString()}] ${message}\n`);
203
+ if (event?.type !== 'turn/end')
204
+ return;
205
+ const s = session;
206
+ const id = s?.id;
207
+ const header = s?.header;
208
+ const cwd = header?.cwd;
209
+ if (id === undefined || header === undefined || cwd === undefined || typeof s?.snapshotEvents !== 'function')
210
+ return;
211
+ const events = [...(s.snapshotEvents())];
212
+ const anchor = [...events].reverse().find((e) => e.type === 'turn/end')?.seq ?? -1;
213
+ section(id, async () => {
214
+ // resolved ONCE per section: calling the getter twice would reopen the domain store inside a
215
+ // live turn boundary.
216
+ const store = await deps.store();
217
+ const state0 = await store.get(id);
218
+ const lastArchived = state0.chapters.reduce((m, c) => Math.max(m, c.endSeq), -1);
219
+ const completed = events.filter((e) => e.type === 'turn/end' && e.seq > lastArchived && e.seq <= anchor).length;
220
+ const gate = shouldForceChildArchive({
221
+ header,
222
+ lineageParent: state0.parentSession ?? (id.startsWith('ch-') ? 'continuation-id' : undefined),
223
+ chapterCount: state0.chapters.filter((c) => c.status !== 'superseded').length,
224
+ lastArchivedSeq: lastArchived,
225
+ anchor,
226
+ completedTurnsAboveWatermark: completed,
227
+ minTurns: deps.minTurns,
228
+ enabled: deps.enabled,
229
+ });
230
+ if (!gate.fire)
231
+ return;
232
+ const out = await saveSession({
233
+ events, sessionId: id, cwd, store, config: deps.wiring,
234
+ subagentOf: lineageOf(header),
235
+ });
236
+ if (out.records.length > 0) {
237
+ deps.ctx.logger?.info?.(`dsh-chapters: forced child archive ${id} (${out.records.length} chapter(s), seqs ${out.fromSeq}..${out.anchor}) — ${gate.reason}`);
238
+ // enrichment QUEUED, never run inline: this fires inside a live turn boundary.
239
+ deps.wiring.scheduler?.schedule(cwd, 'archive:save');
240
+ deps.onArchived?.(id, out.records.length);
241
+ }
242
+ else if (out.skipped !== 'nothing-new') {
243
+ // loud, per #61: a door that decided to archive and then did not must say why.
244
+ diagnosticWarn(deps.ctx.logger, 'child-archive', `${id} forced archive produced nothing (${out.skipped ?? 'unknown'}); ${formatWarnings(out.warnings, 3)}`);
245
+ }
246
+ });
247
+ }
248
+ catch (error) {
249
+ diagnosticWarn(deps.ctx.logger, 'child-archive', `listener failed: ${String(error?.message ?? error)}`);
132
250
  }
133
- catch { /* diagnostics must never mask the real failure */ }
251
+ };
252
+ }
253
+ export function wireSubagentAutoSave(ctx, store, wiring) {
254
+ const warn = (message) => {
255
+ // #54: the shared seam (logger warn + sink), not a second copy of the same three lines.
256
+ diagnosticWarn(ctx.logger, 'auto-save', message);
134
257
  };
135
258
  const liveChild = (sessionId) => {
136
259
  const agents = ctx.get?.('agents');
@@ -140,19 +263,20 @@ export function wireSubagentAutoSave(ctx, store, wiring) {
140
263
  return undefined;
141
264
  return { events: [...session.snapshotEvents()], header: (session.header ?? {}) };
142
265
  };
143
- const durableChild = async (sessionId) => {
144
- const sq = ctx.get?.('sessionQuery');
145
- if (sq?.listEvents === undefined || sq.listSessions === undefined)
146
- return undefined;
147
- const events = await sq.listEvents(sessionId);
148
- if (!Array.isArray(events) || events.length === 0)
149
- return undefined;
150
- const records = await sq.listSessions();
151
- const header = (records ?? []).find((r) => r?.header?.id === sessionId)?.header;
152
- if (header === undefined)
153
- return undefined;
154
- return { events, header };
155
- };
266
+ /**
267
+ * The durable arm — and for a **continuable** child the ONLY arm, because the host disposes the
268
+ * handle before it emits `subagent/end` (`host-subagent-seam.test.ts` F4). It must return
269
+ * payload-bearing events, so it reads `sessionQuery.readSession` (cloned header +
270
+ * `snapshotSessionEvent` events, one call) and **not** `listEvents`, whose `SessionEventRecord`
271
+ * rows carry `seq`/`type`/`time`/`surface` and no `data` — the shape that archived 12 children
272
+ * as empty shells (#58; `docs/contract.md` § Durable reads).
273
+ */
274
+ const durableChild = (sessionId) => readDurableSession((name) => { try {
275
+ return ctx.get?.(name);
276
+ }
277
+ catch {
278
+ return undefined;
279
+ } }, sessionId);
156
280
  const save = async (child) => {
157
281
  const cwd = child.header.cwd;
158
282
  if (cwd === undefined || cwd === '')
@@ -165,10 +289,22 @@ export function wireSubagentAutoSave(ctx, store, wiring) {
165
289
  config: wiring,
166
290
  subagentOf: lineageOf(child.header),
167
291
  });
168
- if (out.skipped === null && out.records.length > 0 && wiring.scheduler !== undefined && cwd !== '') {
169
- wiring.scheduler.schedule(cwd, 'archive:autoSave');
292
+ // Lineage: the child stays its OWN root, and that is deliberate (#47 decision, re-checked
293
+ // under #58). Two candidate reasons to `linkChild` it to the parent were tested and both fail:
294
+ // a subagent is never an ANCESTOR of anything the parent walks, so `buildIndex` would still
295
+ // omit it from the parent's TOC; and `rootSession` is the STORE DIRECTORY (`archive.ts:110`,
296
+ // `engine-core.ts:310`), so linking would silently re-home every child chapter into the
297
+ // parent's tree. Cross-session reachability is search's job — `buildLocalCorpus` walks every
298
+ // tree under the store root — and rule ancestry already reads the kernel header's parentSession
299
+ // (`session-rules.ruleAncestorSet`), which the frontmatter records from the same source.
300
+ if (out.skipped === null && out.records.length > 0 && cwd !== '') {
301
+ wiring.scheduler?.schedule(cwd, 'archive:autoSave');
170
302
  }
171
- return { archived: out.records.length, skipped: out.skipped };
303
+ // #58: `writeArchive` already says "N event(s) rendered no output"; dropping that array was
304
+ // why an entire door of empty archives ran for days with a clean log. Surface every warning.
305
+ for (const w of out.warnings)
306
+ warn(`subagent auto-save: ${child.header.id ?? '?'}: ${w}`);
307
+ return { archived: out.records.length, skipped: out.skipped, warnings: out.warnings };
172
308
  };
173
309
  return makeSubagentEndListener({
174
310
  presetId: wiring.presetId,
@@ -1 +1 @@
1
- {"version":3,"file":"auto-save.js","sourceRoot":"","sources":["../src/auto-save.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-save.js","sourceRoot":"","sources":["../src/auto-save.ts"],"names":[],"mappings":"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"}