@treeseed/dsh-chapters 0.1.15 → 0.1.17

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/index.js CHANGED
@@ -4,9 +4,13 @@
4
4
  * decision in the pure modules (docs/development.md § L0).
5
5
  *
6
6
  * Responsibilities:
7
- * 1. Install the `chapters` preset into `$DSH_HOME/.agent-presets/` on boot
8
- * (write-if-missing; user edits are never overwritten). Profile `!!js` has
9
- * no `require` (measured r20), so copying is the delivery mechanism.
7
+ * 1. Make the `chapters` preset EXIST in the host's preset roster, and say loudly
8
+ * when it does not. Hosts before 0.2.0 are NOT supported: a preset is an
9
+ * `@deepseek-ai/dsh-agent-preset` declaration row, and this plugin registers
10
+ * that row at activation through the host's own `agentPresets.register()`
11
+ * (`src/preset.ts`). The old `$DSH_HOME/.agent-presets/` directory copy is
12
+ * gone — no 0.2.x host reads it, and shipping the row as a patch layer instead
13
+ * breaks the boot of every pre-0.1.7 host (measured; docs/contract.md).
10
14
  * 2. Open the dsh_chapters storage domain and register chapters_segment /
11
15
  * chapters_continue (src/tools.ts adapts them to the pure core).
12
16
  * 3. Witness/dev diagnostics.
@@ -17,15 +21,15 @@
17
21
  * - Config uses schemastery (default import) — plain specs are for tool
18
22
  * parameters, zod for domain records; never mix.
19
23
  */
20
- import { writeFileSync, mkdirSync, existsSync, cpSync } from 'node:fs';
24
+ import { writeFileSync } from 'node:fs';
21
25
  import { dirname, join } from 'node:path';
22
26
  import { hostname } from 'node:os';
23
27
  import { fileURLToPath } from 'node:url';
24
28
  import Schema from '@deepseek-ai/schemastery';
25
- import { dshHomePath } from '@deepseek-ai/dsh-home-paths';
26
29
  import { appendChapters, reserve } from "./registry.js";
27
30
  import { acquireChapterStore, makeDomainStore } from "./store.js";
28
31
  import { registerChaptersTools } from "./tools.js";
32
+ import { CHAPTERS_PRESET_ID, registerChaptersPreset, inventoryEntry, unusableRows } from "./preset.js";
29
33
  import { registerHostCommands } from "./commands.js";
30
34
  import { createEnrichWiring } from "./enrich-wire.js";
31
35
  import { rulesCommand } from "./rules-commands.js";
@@ -38,6 +42,10 @@ export const Config = Schema.object({
38
42
  // The preset is how the engine reaches real sessions (preset realm mount);
39
43
  // turning this off means opting into manual preset authoring instead.
40
44
  installChaptersPreset: Schema.boolean().default(true),
45
+ // The engine row of the registered preset (docs/host-compaction-seam.md). This is the
46
+ // one row config that used to live in a preset YAML a human edited in the home; with
47
+ // the row registered from code it belongs to THIS config, so a profile patch retunes it.
48
+ compactionThresholdRatio: Schema.number().default(0.9),
41
49
  artifactStoreRoot: Schema.string().default('.dsh-chapters'),
42
50
  chapterTokenTarget: Schema.number().default(8000),
43
51
  toolResultDeferFloorTokens: Schema.number().default(200),
@@ -97,9 +105,42 @@ export const name = '@treeseed/dsh-chapters';
97
105
  export const inject = ['storageDomain', 'tools', 'agents', 'llm', 'sessionProjections'];
98
106
  const HERE = dirname(fileURLToPath(import.meta.url));
99
107
  const PKG_ROOT = join(HERE, '..');
108
+ /** Registrations this module owns for the life of the process. The registry hands back an
109
+ * unregister disposer, and holding it — never calling it — is the point: a disposer wired
110
+ * through `ctx.effect` runs when the apply fiber's activation completes, which un-registered
111
+ * the preset the instant it had been registered (measured: `register()` reported success
112
+ * while the roster came back without `chapters`). The same apply-fiber trap bit the storage
113
+ * domain in r35. */
114
+ const heldDisposers = [];
100
115
  export async function apply(ctx, config) {
101
- if (config.installChaptersPreset)
102
- installChaptersPreset(ctx);
116
+ // § Preset delivery. A host whose `agentPresets` exposes `register()` composes presets
117
+ // from declaration rows; one that does not is older than 0.2.0 and is NOT supported.
118
+ // The answer comes from the service's shape, never from a version string.
119
+ const registry = ctx.get?.('agentPresets');
120
+ const registers = typeof registry?.register === 'function';
121
+ let registerOutcome;
122
+ if (!config.installChaptersPreset)
123
+ registerOutcome = { state: 'disabled' };
124
+ else if (!registers)
125
+ registerOutcome = { state: 'unsupported' };
126
+ else {
127
+ try {
128
+ registerOutcome = (await registerChaptersPreset(registry, {
129
+ resolvable: resolvableFromThisPackage,
130
+ thresholdRatio: config.compactionThresholdRatio,
131
+ // NOT ctx.effect(): a cleanup registered on the apply fiber fires when THAT fiber's
132
+ // activation completes, and the registry's disposer un-registers the preset — measured
133
+ // on 0.2.0-rc.2, where `register()` reported success while the roster came back
134
+ // WITHOUT `chapters`. Same apply-fiber trap r35 caught for the storage domain.
135
+ dispose: (disposer) => { heldDisposers.push(disposer); },
136
+ })).outcome;
137
+ }
138
+ catch (error) {
139
+ // Nothing here may take the plugin down: tools and commands register below, and a
140
+ // session with no chapters tools is still useful.
141
+ registerOutcome = { state: 'failed', reason: String(error?.message ?? error) };
142
+ }
143
+ }
103
144
  let domain;
104
145
  try {
105
146
  const storageDomain = ctx.get?.('storageDomain');
@@ -219,11 +260,38 @@ export async function apply(ctx, config) {
219
260
  ctx.logger?.warn?.(message);
220
261
  console.error(message);
221
262
  }
222
- ctx.logger?.info?.('dsh-chapters: mounted (preset install + tools registered)');
263
+ // Honest status, because the settings surface reads "enabled and running" either way.
264
+ // "mounted" is not "the preset exists": a session's preset id is durable state, so an
265
+ // absent or broken preset means every chapters session refuses to OPEN while its log
266
+ // sits there intact — a user-visible failure with nothing in the UI to explain it.
267
+ const presetNote = registerOutcome.state === 'registered' ? 'delivery: registered the chapters preset declaration row'
268
+ : registerOutcome.state === 'pruned' ? `delivery: registered the chapters preset (${registerOutcome.dropped.length} row(s) this host cannot resolve, dropped)`
269
+ : registerOutcome.state === 'already-declared' ? 'delivery: preset declared by another patch layer (kept, not re-registered)'
270
+ : registerOutcome.state === 'disabled' ? 'delivery: OFF (config.installChaptersPreset=false; preset authoring is yours)'
271
+ : registerOutcome.state === 'unsupported' ? 'delivery: REFUSED — this host predates preset declaration rows (< 0.2.0)'
272
+ : `delivery: FAILED (${registerOutcome.reason})`;
273
+ const unhealthy = registerOutcome.state === 'failed'
274
+ || (registerOutcome.state === 'unsupported' && config.installChaptersPreset === true);
275
+ const mountMsg = `dsh-chapters: mounted (tools registered; ${presetNote})`;
276
+ if (unhealthy)
277
+ ctx.logger?.warn?.(`${mountMsg} — UNHEALTHY: sessions choosing the chapters preset will not compose`);
278
+ else
279
+ ctx.logger?.info?.(mountMsg);
280
+ // File presence is NOT preset existence (§ Preset delivery): the roster is the only
281
+ // evidence. It must be asked AFTER activation — the registry re-audits a mount by
282
+ // awaiting the settled loader tree, and a caller "must not run inside a Host row's
283
+ // own activation, which the settlement would wait on" — hence this deferred check,
284
+ // which also catches a registration that mounted but could not activate. One check
285
+ // per boot, reused by the dev witness.
223
286
  const marker = process.env.DSH_CHAPTERS_WITNESS;
224
- if (marker === undefined)
225
- return;
226
- setTimeout(() => { witness(ctx, marker, domain); }, 500).unref?.();
287
+ let roster;
288
+ const rosterCheck = () => roster ??= reportPresetRoster(ctx, config.fallbackPreset, registerOutcome);
289
+ setTimeout(() => {
290
+ void rosterCheck().then((verdict) => {
291
+ if (marker !== undefined)
292
+ void witness(ctx, marker, domain, verdict, registerOutcome);
293
+ });
294
+ }, 500).unref?.();
227
295
  }
228
296
  /**
229
297
  * The §5 sync loop for the host plane. Auto-link (when `knowledgeRemote` is
@@ -275,32 +343,147 @@ export function createScheduler(store, domain, config, debounceOverride, onSyncD
275
343
  collectionsFor: makeCollectionsReader(store.sessions.bind(store), config.artifactStoreRoot),
276
344
  });
277
345
  }
278
- // ---------------------------------------------------------------- preset install
279
- const PRESET_ID = 'chapters';
280
- const USER_PRESET_DIR = '.agent-presets'; // kernel constant: presets/agent-presets/src/discovery.ts
281
- function installChaptersPreset(ctx) {
282
- const srcDir = join(PKG_ROOT, 'presets', PRESET_ID);
283
- if (!existsSync(srcDir))
284
- return;
285
- const dstDir = dshHomePath(USER_PRESET_DIR, PRESET_ID);
286
- if (existsSync(join(dstDir, 'preset.yml')))
287
- return; // user-owned from here on; never clobber
346
+ // ---------------------------------------------------------------- preset delivery
347
+ /**
348
+ * Why delivery is a `register()` call and not a file, in one incident: hosts from
349
+ * 0.1.7-alpha.1 stopped reading `$DSH_HOME/.agent-presets/` — a preset is an
350
+ * `@deepseek-ai/dsh-agent-preset` declaration row — while the plugin kept copying,
351
+ * kept logging that it had mounted, and the preset was simply GONE. That is worse
352
+ * than a crash, because `resume` resolves the preset id recorded in the session's
353
+ * own log and throws `agent-preset/not-found`, so every chapters session became
354
+ * unopenable while its durable log sat there intact and uncorrupted.
355
+ *
356
+ * Shipping the row as a patch layer instead is what a reader will reach for, and it
357
+ * is a boot-breaking choice on the hosts this plugin used to support: `dsh.bundle.patch`
358
+ * as an array throws `ERR_INVALID_ARG_TYPE` at legacy `dsh-app-boot/lib/index.js:853`,
359
+ * an unresolvable row aborts a legacy plugin tree, and `disabled: !!js` cannot gate the
360
+ * row because the Loader evaluates `disabled` before any service is mounted (all three
361
+ * measured). Support floor is 0.2.0 now, so the row is registered here through the
362
+ * host's own `agentPresets.register()` — the same call its declaration-row plugin makes.
363
+ */
364
+ /**
365
+ * Whether a row's module can be imported from THIS package's resolution family.
366
+ *
367
+ * The preset mount resolves its rows from the registry's context, which shares this Node
368
+ * resolution root; a false answer here means a row that would activate as failed — and one
369
+ * failed row makes the whole preset `broken`, which is worse than a missing tool.
370
+ *
371
+ * Never throws: an unresolvable specifier is the answer. Two limits of the probe are the
372
+ * host's own, not ours to paper over: a RELATIVE specifier resolves without touching the
373
+ * filesystem (Node answers the URL, not existence), so a file-URL row would always be
374
+ * reported resolvable; and a name that resolves is not yet a name that ACTIVATES — a plugin
375
+ * that rejects its config throws later, which is what the roster line reports as
376
+ * `DECLARED BUT BROKEN`. Subpath exports are the useful case, and they are the ones a host
377
+ * rename eats first: `@scope/pkg/no-longer-exported` answers `ERR_PACKAGE_PATH_NOT_EXPORTED`.
378
+ */
379
+ export function resolvableFromThisPackage(specifier) {
380
+ if (specifier.startsWith('.') || specifier.startsWith('/') || specifier.startsWith('file:'))
381
+ return true;
288
382
  try {
289
- mkdirSync(join(dshHomePath(), USER_PRESET_DIR), { recursive: true });
290
- cpSync(srcDir, dstDir, { recursive: true });
291
- ctx.logger?.info?.(`dsh-chapters: installed the "${PRESET_ID}" preset to ${dstDir} — pick it in the preset menu for chapter-form compaction (standard keeps LLM summaries)`);
383
+ import.meta.resolve(specifier);
384
+ return true;
385
+ }
386
+ catch {
387
+ return false;
388
+ }
389
+ }
390
+ /** Ask the host which presets exist. Tolerates both shapes the service has
391
+ * offered: the bare row array (`list()`) and the remote envelope (`{presets}`). */
392
+ export async function readRosterVerdict(presets, presetId) {
393
+ if (presets?.list === undefined)
394
+ return { state: 'unknown', error: 'agentPresets service absent' };
395
+ try {
396
+ const raw = await presets.list();
397
+ const rows = ((Array.isArray(raw) ? raw : raw?.presets) ?? []);
398
+ const mine = rows.find((r) => r?.id === presetId);
399
+ if (mine === undefined)
400
+ return { state: 'absent', rows: rows.map((r) => String(r?.id ?? '?')).sort() };
401
+ const broken = mine.broken;
402
+ return typeof broken === 'string' && broken !== '' ? { state: 'present', broken } : { state: 'present' };
292
403
  }
293
404
  catch (error) {
294
- ctx.logger?.info?.(`dsh-chapters: preset install FAILED (${String(error)})`);
405
+ return { state: 'unknown', error: String(error?.message ?? error) };
406
+ }
407
+ }
408
+ /** The remedy, in the two shapes an absent preset can have on a supported host. */
409
+ export function rosterRemediation(presetId, outcome) {
410
+ if (outcome.state === 'disabled') {
411
+ return `config.installChaptersPreset=false, so this plugin did not register "${presetId}" — declare it yourself, `
412
+ + 'or turn the config back on and restart';
413
+ }
414
+ if (outcome.state === 'unsupported') {
415
+ return 'this host predates preset declaration rows (< 0.2.0) and is not supported by this plugin — the chapters '
416
+ + 'tools and commands still work, but no `chapters` preset can exist here; upgrade @deepseek-ai/dsh';
417
+ }
418
+ return `this plugin registers "${presetId}" itself at activation, so an absent preset means that call did not `
419
+ + 'happen or was refused — read the mount line above for "delivery:" and the failure arm it names';
420
+ }
421
+ /** Deferred boot check: one truthful line about the preset, plus the verdict for the witness.
422
+ * Exported so the four arms of that line are tested without booting a host — the line IS the
423
+ * health signal a user reads, and an untested health signal is how the silent case survived. */
424
+ export async function reportPresetRoster(ctx, presetId, outcome) {
425
+ const presets = ctx.get?.('agentPresets');
426
+ const verdict = await readRosterVerdict(presets, presetId);
427
+ const line = (message, warn) => {
428
+ if (warn) {
429
+ ctx.logger?.warn?.(message);
430
+ console.error(message);
431
+ }
432
+ else
433
+ ctx.logger?.info?.(message);
434
+ };
435
+ if (verdict.state === 'present' && verdict.broken === undefined) {
436
+ line(`dsh-chapters: preset "${presetId}" is in the host roster — chapter-form compaction and continuations will compose`, false);
437
+ }
438
+ else if (verdict.state === 'present') {
439
+ line(`dsh-chapters: preset "${presetId}" is DECLARED BUT BROKEN — ${verdict.broken} — sessions choosing it will not compose. `
440
+ + 'A preset row whose child plugin no longer resolves fails here; the plugin drops rows this host cannot import, '
441
+ + 'so this line means a package that resolves but will not activate — re-anchor src/preset.ts against this host.', true);
295
442
  }
443
+ else if (verdict.state === 'absent') {
444
+ line(`dsh-chapters: UNHEALTHY — preset "${presetId}" is NOT in the host roster (roster: ${verdict.rows.join(', ') || 'empty'}). `
445
+ + `Every session whose log records it will refuse to open with agent-preset/not-found — the logs are intact; the composition is missing. `
446
+ + `Remedy: ${rosterRemediation(presetId, outcome)}`, true);
447
+ }
448
+ else {
449
+ line(`dsh-chapters: could not verify the preset roster (${verdict.error}) — treat chapter-form compaction as unconfirmed`, true);
450
+ }
451
+ return verdict;
296
452
  }
297
453
  // ---------------------------------------------------------------- dev witness
298
- async function witness(ctx, marker, preopened) {
454
+ async function witness(ctx, marker, preopened, roster, register) {
299
455
  const WITNESS_SESSION = 'dsh-chapters-witness';
300
456
  const out = { at: new Date().toISOString() };
301
457
  try {
302
458
  out.storageDomainPresent = ctx.get?.('storageDomain') !== undefined;
303
- out.presetsInstalled = existsSync(dshHomePath(USER_PRESET_DIR, PRESET_ID, 'preset.yml'));
459
+ // What this host's preset mechanism IS, and what the roster says about the
460
+ // chapters preset. These two lines are the difference between "the preset files
461
+ // are installed" (true, and meaningless on a declaration-row host) and "the
462
+ // preset exists" — the only thing a session cares about.
463
+ out.registryRegisters = typeof ctx.get?.('agentPresets')?.register === 'function';
464
+ out.presetRegister = register?.state ?? 'not-attempted';
465
+ if (register?.state === 'pruned')
466
+ out.presetDroppedRows = register.dropped;
467
+ if (register?.state === 'failed')
468
+ out.presetRegisterError = register.reason;
469
+ out.presetRoster = roster?.state ?? 'not-checked';
470
+ // The roster says a preset is declared; the inventory says whether its rows are
471
+ // actually active. A row that resolves but will not activate leaves the preset on
472
+ // the menu and unusable, and only this distinction names it.
473
+ const invRaw = await ctx.get?.('agentPresets')?.compositionInventory?.()?.catch?.(() => undefined);
474
+ const inv = inventoryEntry(invRaw, CHAPTERS_PRESET_ID);
475
+ if (inv !== undefined) {
476
+ out.presetInventoryRows = (inv.rows ?? []).length;
477
+ out.presetUnusableRows = unusableRows(inv);
478
+ if (inv.broken !== undefined)
479
+ out.presetInventoryBroken = inv.broken;
480
+ }
481
+ if (roster?.state === 'absent')
482
+ out.presetRosterRows = roster.rows;
483
+ if (roster?.state === 'present' && roster.broken !== undefined)
484
+ out.presetRosterBroken = roster.broken;
485
+ if (roster?.state === 'unknown')
486
+ out.presetRosterError = roster.error;
304
487
  const storageDomain = ctx.get?.('storageDomain');
305
488
  const store = preopened !== undefined ? makeDomainStore(preopened) : (await acquireChapterStore(storageDomain)).store;
306
489
  const prior = await store.get(WITNESS_SESSION);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * The `chapters` agent preset: its composition, and the ONLY sanctioned way this
3
+ * plugin makes a preset EXIST on a host that composes presets from declaration
4
+ * rows (>= 0.1.7-alpha.1; "Nothing reads $DSH_HOME/.agent-presets any more").
5
+ *
6
+ * WHY THIS FILE IS CODE AND NOT A SHIPPED PATCH LAYER
7
+ * ---------------------------------------------------
8
+ * The host's idiom is a `@deepseek-ai/dsh-agent-preset` row carried by a bundle
9
+ * patch layer, listed in `package.json` `dsh.bundle.patch`. Shipping that row as
10
+ * a SECOND layer means `dsh.bundle.patch` becomes an ARRAY, and both halves of
11
+ * that are fatal on a pre-0.1.7 host — measured on the pinned e2e closure
12
+ * (0.1.5-rc.1), not reasoned about:
13
+ *
14
+ * - array `patch`: `TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must
15
+ * be of type string. Received an instance of Array` at
16
+ * `dsh-app-boot/lib/index.js:853` (`join(packageDir, declared)`) — the host
17
+ * never boots.
18
+ * - the row itself, in ANY layer a legacy host reads:
19
+ * `dsh: plugin tree failed to load: ... failed to import loader entry
20
+ * preset-chapters (@deepseek-ai/dsh-agent-preset): Cannot find package` — a
21
+ * legacy host's plugin tree aborts the boot on one unresolvable row.
22
+ * - gating it with `disabled: !!js get('agentPresets')?.register === undefined`
23
+ * does not work either: the Loader evaluates `disabled` BEFORE services are
24
+ * mounted, so the expression is truthy on a 0.2.x host too and the row never
25
+ * registers (measured: `preset-v2 … failed to import`, roster without it).
26
+ *
27
+ * Registering through `ctx.get('agentPresets').register(definition)` is the same
28
+ * call the host's own declaration-row plugin makes
29
+ * (`dsh-agent-preset/lib/index.js`: `[Service.init]` → `this.ctx.agentPresets.register(this.config)`),
30
+ * made from a row that resolves on EVERY host: this package. The tradeoff is
31
+ * honest and stated in docs/contract.md: the composition is not visible in a
32
+ * patch-layer dump, so the roster (not a file) is the evidence — which is the
33
+ * rule this module enforces anyway.
34
+ *
35
+ * WHY ROWS ARE PRUNED AGAINST THE INSTALLED HOST
36
+ * ----------------------------------------------
37
+ * The host's standard plugin list is not stable across the versions this package
38
+ * must serve. Measured against published `@deepseek-ai/dsh-web-app` presets:
39
+ * 0.2.0-rc.1/rc.2 lack `dsh-time-context` and `dsh-tool-schedule`;
40
+ * `dsh-tool-schedule` is not published at 0.2.0-rc.x AT ALL (first real version
41
+ * 0.2.1-alpha.1), and `dsh-plugin-market` exists only at 0.2.1-alpha.4. One
42
+ * unresolvable row does not degrade: `mountPreset` throws on any failed row, the
43
+ * registry stores it as `record.broken`, and `retain()` then refuses with
44
+ * `agent-preset/invalid` — every session choosing `chapters` stops composing,
45
+ * while its durable log sits there intact. So a row whose package does not
46
+ * resolve is DROPPED here and reported, instead of taking the preset down.
47
+ *
48
+ * @module dsh-chapters/src/preset
49
+ */
50
+ /** One mounted plugin row of a preset composition (the Loader's own shape).
51
+ * A group row carries its children in `config`; an ordinary row carries a
52
+ * config map — the Loader accepts both under the same key. */
53
+ export interface PresetRow {
54
+ id: string;
55
+ name: string;
56
+ config?: Record<string, unknown> | PresetRow[];
57
+ disabled?: boolean;
58
+ group?: boolean;
59
+ isolate?: Record<string, boolean>;
60
+ }
61
+ /** The `AgentPreset` Config the host registers (`dsh-agent-preset/lib/index.js:13-20`). */
62
+ export interface PresetDefinition {
63
+ id: string;
64
+ name: string;
65
+ description: string;
66
+ order: number;
67
+ plugins: PresetRow[];
68
+ }
69
+ /**
70
+ * WHY THE DELEGATION ROWS CARRY NO `toolFilter`, although the host's own alpha.1/alpha.2
71
+ * list denied `schedule_*` there.
72
+ *
73
+ * Measured on a real 0.2.1-alpha.4 boot: `tool-subagent` does NOT strip an unknown key —
74
+ * it rejects the removed one outright, and the WHOLE preset goes broken:
75
+ * `tool-subagent: toolFilter is no longer supported; configure persona and tool plugins
76
+ * in an Agent Preset and select it with agentPreset (spawn only)`
77
+ * while the same composition on 0.2.0-rc.2 (which still accepts `toolFilter`) mounts. So a
78
+ * key that one supported host accepts and the next one THROWS on is worse than dropping it:
79
+ * the deny list protected nothing on rc.2 (no schedule tools exist there at all) and would
80
+ * break every chapters session on the alpha. The general rule this incident writes down:
81
+ * carry only config keys EVERY supported host accepts, and let the roster line — not a
82
+ * file on disk — be the evidence that the composition is usable.
83
+ */
84
+ /**
85
+ * The chapters preset: the host's standard coding-agent composition with EXACTLY
86
+ * four deltas, each one a product decision of ours.
87
+ *
88
+ * 1. `compaction-basic` → `@treeseed/dsh-chapters/engine` (thresholdRatio 0.9):
89
+ * the zero-inference `summarize()` — chapters from the log, no model tokens.
90
+ * 2. `tool-result-pruner.thresholdChars` 8192 → 1000000, deliberately dormant:
91
+ * chapters defer oversized results at ARCHIVE time (verbatim bodies +
92
+ * artifact references), never in-surface, where a prune is a prefix cliff on
93
+ * local hardware.
94
+ * 3. the persona gains the PLOT: suffix (plot carriage through in-place
95
+ * checkpoints) and keeps no `{{cwd}}` (see PLOT_SUFFIX).
96
+ * 4. `tool-ralph` mounted ENABLED — the bounded goal loop the continuation
97
+ * children run. The host ships it disabled; enabling it here is ours.
98
+ *
99
+ * @param platform the platform the shell-gated rows are decided against; a
100
+ * parameter so the rows are testable on any machine.
101
+ */
102
+ export declare function chaptersPresetRows(platform?: NodeJS.Platform, thresholdRatio?: number): PresetRow[];
103
+ /** The preset identity. `config.id` is DURABLE STATE: every continuation child's
104
+ * log records it as `agent-preset/selected`, so renaming it orphans those
105
+ * sessions (`agent-preset/not-found` on open). */
106
+ export declare const CHAPTERS_PRESET_ID = "chapters";
107
+ export declare function chaptersPresetDefinition(platform?: NodeJS.Platform, thresholdRatio?: number): PresetDefinition;
108
+ /** A row whose own module cannot be imported would activate as failed, and one
109
+ * failed row makes the WHOLE preset broken (`mountPreset` throws) — so it is
110
+ * dropped, with the reason, instead of taking every chapters session down.
111
+ *
112
+ * The probe is asked with the row's FULL specifier, so a package that exists but
113
+ * no longer exports the subpath (`.../tools`, `.../list-agents`) is caught too —
114
+ * those are the renames that eat presets.
115
+ *
116
+ * @param rows the composition, groups included.
117
+ * @param resolvable asked with each row's module specifier. MUST NOT throw.
118
+ */
119
+ export declare function pruneResolvableRows(rows: PresetRow[], resolvable: (specifier: string) => boolean): {
120
+ kept: PresetRow[];
121
+ dropped: string[];
122
+ };
123
+ /** What registering a preset can end up as. Every arm has its own log line and
124
+ * its own remedy, because the silent case is the one that cost a human hours. */
125
+ export type RegisterOutcome = {
126
+ state: 'registered';
127
+ }
128
+ /** config.installChaptersPreset=false: the operator owns the preset, we do not register. */
129
+ | {
130
+ state: 'disabled';
131
+ } | {
132
+ state: 'already-declared';
133
+ } | {
134
+ state: 'pruned';
135
+ dropped: string[];
136
+ } | {
137
+ state: 'unsupported';
138
+ } | {
139
+ state: 'failed';
140
+ reason: string;
141
+ };
142
+ /** The narrow surface of `ctx.get('agentPresets')` this module uses. */
143
+ export interface PresetRegistryLike {
144
+ register?: (definition: PresetDefinition) => Promise<() => Promise<void>>;
145
+ list?: () => Promise<unknown>;
146
+ /** Host-side inventory of every declared preset and its mounted rows —
147
+ * `compositionInventory()` in `@deepseek-ai/dsh-agent-preset-registry`. */
148
+ compositionInventory?: () => Promise<unknown>;
149
+ }
150
+ /** One mounted row of a live preset composition, as the host's own inventory reports it.
151
+ * `fiberState` is the Loader's state for that row; an enabled row that is not `active`
152
+ * cannot serve a session, and the roster's `broken` flag reports that only for the whole
153
+ * mount — which is why the witness asks for the rows too. */
154
+ export interface InventoryRow {
155
+ entryId?: string;
156
+ moduleName?: string;
157
+ enabled?: boolean;
158
+ fiberState?: string;
159
+ }
160
+ /** One preset's entry in a `compositionInventory()` response. */
161
+ export interface InventoryEntry {
162
+ id?: string;
163
+ broken?: string;
164
+ rows?: InventoryRow[];
165
+ }
166
+ /** Find one preset in an inventory response, tolerating a missing or odd shape. */
167
+ export declare function inventoryEntry(raw: unknown, presetId: string): InventoryEntry | undefined;
168
+ /** Enabled rows of one preset that are not active. A row `pending` a host service can
169
+ * still activate later, so this is reported apart from `broken`, never as a refusal. */
170
+ export declare function unusableRows(entry: InventoryEntry | undefined): string[];
171
+ /**
172
+ * Make the `chapters` preset exist on a host that composes presets from
173
+ * declaration rows, and say what happened.
174
+ *
175
+ * @param presets the host's `agentPresets` service, or undefined on a host that
176
+ * has no preset registry at all (then the legacy directory copy is the
177
+ * delivery, and this returns 'unsupported').
178
+ * @param dispose owner for the disposer the registry hands back — registering
179
+ * without it would leave a standing preset mount after unmount.
180
+ */
181
+ export declare function registerChaptersPreset(presets: PresetRegistryLike | undefined, opts: {
182
+ resolvable: (specifier: string) => boolean;
183
+ platform?: NodeJS.Platform;
184
+ /** Engine pressure threshold for the realm row; the host plane's
185
+ * `config.compactionThresholdRatio` is what feeds it (no hardcoded tunables). */
186
+ thresholdRatio?: number;
187
+ dispose: (disposer: () => Promise<void>) => void;
188
+ }): Promise<{
189
+ outcome: RegisterOutcome;
190
+ definition: PresetDefinition;
191
+ }>;