@shardworks/astrolabe-apparatus 0.1.252 → 0.1.254

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 CHANGED
@@ -141,7 +141,7 @@ The Astrolabe declares one book in Stacks:
141
141
  | `astrolabe.plan-init` | Creates a PlanDoc from the originating mandate writ; validates codex presence |
142
142
  | `astrolabe.inventory-check` | Validates that the reader produced a non-empty inventory |
143
143
  | `astrolabe.reader-analyst` | Selects the primer role at engine-run time from live guild config: `sage-primer-attended` when `astrolabe.patronRole` is non-empty (every decision gets pre-filled so the downstream patron-anima principle-checks them all), `sage-primer-solo` otherwise (the primer carries the razor itself and only leaves razor-matched decisions unset for the patron). Mirrors the `anima-session` surface — same givens (`prompt`, `cwd`, `writ`, `metadata`) minus the `role` given, which the engine chooses. Run-time selection (per writ, not per guild startup) means the patron can reconfigure `astrolabe.patronRole` mid-experiment and the next brief behaves according to the live config. |
144
- | `astrolabe.patron-anima` | Consults a configured Patron Anima to principle-check every decision the primer produced, under a tailored operational prompt that encodes the engine's mode discipline — one option per decision, principle-structural confidence calibration (`high` = one principle fires cleanly; `med` = multiple principles conflict and the anima resolves; `low` = no principle speaks, confirm the primer), narrow abstention by omission reserved for *irresolvable principle conflict* and *broken decision frame* only, and an explicit out-of-lane prohibition on codebase audit work. Reads the plan's reviewable decisions (those without `selected` already set empty when the attended primer ran, non-empty when the solo primer surfaced razor matches), launches the configured `patronRole` via a single-pass anima session, parses a single structured emission, and applies each valid verdict to `Decision.selected` (plus records the full verdict — confirm / override / fill-in with selection, confidence, rationale — on `Decision.patron`). No-ops when `astrolabe.patronRole` is unset or empty, or when no reviewable decisions remain. Unparseable output, invalid verdicts, and abstained decisions are left unfilled — decision-review surfaces the remainder to the patron in the normal flow. |
144
+ | `astrolabe.patron-anima` | Consults a configured Patron Anima to principle-check every decision the primer produced, under a tailored operational prompt that encodes the engine's mode discipline — one option per decision, principle-structural confidence calibration (`high` = one principle fires cleanly; `med` = multiple principles conflict and the anima resolves; `low` = no principle speaks, confirm the primer), narrow abstention by omission reserved for *irresolvable principle conflict* and *broken decision frame* only, and an explicit out-of-lane prohibition on codebase audit work. In attended mode the primer contractually pre-fills `selected` on every decision; this engine reviews them all, launches the configured `patronRole` via a single-pass anima session, parses a single structured emission, and applies each valid verdict to `Decision.selected` (plus records the full verdict — confirm / override / fill-in with selection, confidence, rationale — on `Decision.patron`). No-ops when `astrolabe.patronRole` is unset or empty, or when the plan has no decisions. Unparseable output, invalid verdicts, and abstained decisions have `Decision.selected` and `Decision.patronOverride` cleared — decision-review's `selected === undefined` filter surfaces the remainder to the patron in the normal flow. |
145
145
  | `astrolabe.decision-review` | Two-pass engine: blocks for patron review, then reconciles answers. Decisions with `selected` already pre-set by the primer or the patron anima are auto-accepted — they are excluded from the InputRequestDoc, and if nothing remains reviewable the engine fast-paths to `writing` without opening the gate. |
146
146
  | `astrolabe.plan-finalize` | Transitions the plan to `completed` and yields the written `spec` downstream. Does not post any writ. Used inside `plan-and-ship` to hand the spec off to the implement engine on the same mandate rig. |
147
147
  | `astrolabe.observation-lift` | Walks `plan.observations` after `plan-finalize` has transitioned the plan to `completed` and, per record, calls `clerk.post({ type: 'mandate', title, body, codex, parentId, draft: true })` and then `clerk.link(newWritId, planId, 'depends on', 'spider.follows')`. The post creates a draft mandate writ as a child of the originating mandate (parent-child edge for provenance); the link installs a `spider.follows` precedence-dependency edge from the lifted writ back to the originating mandate, enlisting the Spider's `trySpawn` gate to hold each lifted writ until the originating mandate reaches a terminal state (release on `completed`/`cancelled`, cascade to `stuck` on `failed`). Each created writ enters `new` (draft) phase, invisible to the Spider until a curator publishes it; the precedence edge then takes effect. Silently no-ops when `observations` is empty, absent, or a legacy string; fails fast on the first `clerk.post` or `clerk.link` error — already-created post+link pairs persist under the mandate, and on a `clerk.link` failure the current observation's writ persists as a draft without the dependency edge for curator reconciliation. Does not mutate the plan — the parent-child edge and the `spider.follows` edge together form the audit trail. Wired unconditionally into the plan-and-ship rig template. |
@@ -2,12 +2,23 @@
2
2
  * patron-anima clockwork engine.
3
3
  *
4
4
  * Between `inventory-check` and `decision-review`, consults a configured
5
- * Patron Anima to principle-check every decision the primer produced. Any
6
- * decision the anima confirms (including `low`-confidence confirms),
7
- * overrides, or fills in is set on the PlanDoc with its `selection` value
8
- * `decision-review` then auto-skips it via the existing
9
- * "primer pre-decides patron-input omitted" semantics. The narrow
10
- * abstention cases flow through unfilled for the patron to answer.
5
+ * Patron Anima to principle-check *every* decision the primer produced.
6
+ * Under attended mode the primer contractually pre-fills `selected` on
7
+ * every decision (so auto-acceptance never silently happens without
8
+ * principle-check); patron-anima then reviews them all and confirms
9
+ * (including `low`-confidence confirms), overrides, fills in, or
10
+ * narrowly abstains.
11
+ *
12
+ * Abstention as absence — decision-review coupling:
13
+ * When the anima abstains on a decision (by omitting it from the
14
+ * emission array), `collect()` clears both `Decision.selected` and
15
+ * `Decision.patronOverride` on that decision. The engine relies on
16
+ * its consumer — `decision-review` — honouring the invariant that
17
+ * `selected === undefined` means "the decision still needs patron
18
+ * attention." Custom rigs that replace or precede `decision-review`
19
+ * must preserve this contract, or abstentions will silently
20
+ * auto-accept. `Decision.patron` is deliberately left alone so any
21
+ * prior verdict from a retry is preserved.
11
22
  *
12
23
  * Operational discipline (the tailored work prompt):
13
24
  * The anima runs under a checked-in operational prompt — the static
@@ -35,8 +46,9 @@
35
46
  * options are incoherent as posed, so no valid emission would be
36
47
  * faithful to the patron's intent). Every other case — including
37
48
  * principle-absence — resolves to a first-class emission. The
38
- * engine treats a missing verdict as "unfilled" and flows it
39
- * through to `decision-review` in the normal path.
49
+ * engine treats a missing verdict as "abstained": `selected` and
50
+ * `patronOverride` are cleared so `decision-review` surfaces the
51
+ * decision to the patron.
40
52
  * - Out-of-lane prohibition. The draft worktree `cwd` passed to the
41
53
  * anima permits filesystem access, but the prompt explicitly
42
54
  * forbids file reads, grep, codebase audit, and second-guessing
@@ -47,16 +59,24 @@
47
59
  * guild.json["astrolabe"]["patronRole"]
48
60
  * Qualified role name for the Patron Anima (e.g. 'guild.patron').
49
61
  * When unset or empty, this engine no-ops — the pipeline proceeds
50
- * exactly as it did before the engine existed.
62
+ * exactly as it did before the engine existed. When set, the engine
63
+ * summons the anima whenever the plan has any decisions.
51
64
  *
52
65
  * Run → Collect protocol:
53
- * run() → loads the plan; builds a single prompt covering all
54
- * reviewable decisions; launches an anima session via
55
- * `animator.summon()`. Returns
56
- * `{ status: 'launched', sessionId }`.
66
+ * run() → loads the plan; when `patronRole` is set and the plan
67
+ * has at least one decision, builds a single prompt
68
+ * covering every decision and launches an anima session
69
+ * via `animator.summon()`. Returns
70
+ * `{ status: 'launched', sessionId }`. No-ops (completes
71
+ * with empty yields) when `patronRole` is unset/empty or
72
+ * the plan has no decisions.
57
73
  * collect() → reads the session's `output` from Stacks, parses the
58
- * emitted JSON verdict array, applies verdicts to the
59
- * PlanDoc, and records each verdict as `Decision.patron`.
74
+ * emitted JSON verdict array, and for every decision on
75
+ * the plan either applies the anima's verdict
76
+ * (`selected` + `patron`, `patronOverride` cleared) or —
77
+ * if the decision is absent from the emission — clears
78
+ * `selected` and `patronOverride` so the decision
79
+ * surfaces to the patron via `decision-review`.
60
80
  *
61
81
  * Output contract (the anima is asked for):
62
82
  * The session's final message must be a single fenced JSON block
@@ -68,28 +88,28 @@
68
88
  * primer on principle-absence; first-class emission)
69
89
  * - `rationale` — short free-text note (optional)
70
90
  * Decisions the anima abstains on — the two narrow cases above — are
71
- * absent from the array; the engine and parser treat absence as
72
- * "unfilled, surface to patron."
91
+ * absent from the array; the engine treats absence as
92
+ * "surface to patron" by clearing `selected` / `patronOverride`.
73
93
  *
74
94
  * Exhaustiveness:
75
95
  * Single pass. Any decision not carrying a well-formed verdict —
76
96
  * because the anima abstained (omitted it), emitted malformed JSON,
77
- * picked an unknown option, or the session failed entirely — is left
78
- * unfilled on the PlanDoc and flows to `decision-review` in the
79
- * normal flow. The engine does not retry.
97
+ * picked an unknown option, or the session failed entirely — has
98
+ * `selected` and `patronOverride` cleared on the PlanDoc and flows
99
+ * to `decision-review` in the normal flow. The engine does not retry.
80
100
  */
81
101
  import type { EngineDesign } from '@shardworks/fabricator-apparatus';
82
102
  import type { Book } from '@shardworks/stacks-apparatus';
83
103
  import type { Decision, PatronEmission, PlanDoc } from '../types.ts';
84
104
  /**
85
- * Assemble the patron work prompt from the reviewable decisions.
105
+ * Assemble the patron work prompt from the plan's decisions.
86
106
  *
87
107
  * The static portion (preamble, mode discipline, out-of-lane prohibition,
88
108
  * output contract, worked example) lives in `patron-anima-prompt.md` and is
89
109
  * loaded into `PROMPT_TEMPLATE` at module load. This function renders each
90
- * reviewable decision — question, optional context, options, optional
91
- * primer recommendation / rationale — and substitutes the listing into
92
- * the template's `{{DECISIONS}}` placeholder.
110
+ * decision — question, optional context, options, optional primer
111
+ * recommendation / rationale — and substitutes the listing into the
112
+ * template's `{{DECISIONS}}` placeholder.
93
113
  */
94
114
  export declare function buildPatronPrompt(decisions: Decision[]): string;
95
115
  /** Extract the last fenced JSON block from an anima's output. Returns null if none. */
@@ -1 +1 @@
1
- {"version":3,"file":"patron-anima.d.ts","sourceRoot":"","sources":["../../src/engines/patron-anima.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,kCAAkC,CAAC;AACxG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAKzD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA6BrE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAmC/D;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa9D;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EAAE,GACpB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA8E7B;AAID,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CA2GvF"}
1
+ {"version":3,"file":"patron-anima.d.ts","sourceRoot":"","sources":["../../src/engines/patron-anima.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,kCAAkC,CAAC;AACxG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAKzD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAwBrE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAmC/D;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa9D;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,EAAE,GACpB,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CA8E7B;AAID,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAoHvF"}
@@ -2,12 +2,23 @@
2
2
  * patron-anima clockwork engine.
3
3
  *
4
4
  * Between `inventory-check` and `decision-review`, consults a configured
5
- * Patron Anima to principle-check every decision the primer produced. Any
6
- * decision the anima confirms (including `low`-confidence confirms),
7
- * overrides, or fills in is set on the PlanDoc with its `selection` value
8
- * `decision-review` then auto-skips it via the existing
9
- * "primer pre-decides patron-input omitted" semantics. The narrow
10
- * abstention cases flow through unfilled for the patron to answer.
5
+ * Patron Anima to principle-check *every* decision the primer produced.
6
+ * Under attended mode the primer contractually pre-fills `selected` on
7
+ * every decision (so auto-acceptance never silently happens without
8
+ * principle-check); patron-anima then reviews them all and confirms
9
+ * (including `low`-confidence confirms), overrides, fills in, or
10
+ * narrowly abstains.
11
+ *
12
+ * Abstention as absence — decision-review coupling:
13
+ * When the anima abstains on a decision (by omitting it from the
14
+ * emission array), `collect()` clears both `Decision.selected` and
15
+ * `Decision.patronOverride` on that decision. The engine relies on
16
+ * its consumer — `decision-review` — honouring the invariant that
17
+ * `selected === undefined` means "the decision still needs patron
18
+ * attention." Custom rigs that replace or precede `decision-review`
19
+ * must preserve this contract, or abstentions will silently
20
+ * auto-accept. `Decision.patron` is deliberately left alone so any
21
+ * prior verdict from a retry is preserved.
11
22
  *
12
23
  * Operational discipline (the tailored work prompt):
13
24
  * The anima runs under a checked-in operational prompt — the static
@@ -35,8 +46,9 @@
35
46
  * options are incoherent as posed, so no valid emission would be
36
47
  * faithful to the patron's intent). Every other case — including
37
48
  * principle-absence — resolves to a first-class emission. The
38
- * engine treats a missing verdict as "unfilled" and flows it
39
- * through to `decision-review` in the normal path.
49
+ * engine treats a missing verdict as "abstained": `selected` and
50
+ * `patronOverride` are cleared so `decision-review` surfaces the
51
+ * decision to the patron.
40
52
  * - Out-of-lane prohibition. The draft worktree `cwd` passed to the
41
53
  * anima permits filesystem access, but the prompt explicitly
42
54
  * forbids file reads, grep, codebase audit, and second-guessing
@@ -47,16 +59,24 @@
47
59
  * guild.json["astrolabe"]["patronRole"]
48
60
  * Qualified role name for the Patron Anima (e.g. 'guild.patron').
49
61
  * When unset or empty, this engine no-ops — the pipeline proceeds
50
- * exactly as it did before the engine existed.
62
+ * exactly as it did before the engine existed. When set, the engine
63
+ * summons the anima whenever the plan has any decisions.
51
64
  *
52
65
  * Run → Collect protocol:
53
- * run() → loads the plan; builds a single prompt covering all
54
- * reviewable decisions; launches an anima session via
55
- * `animator.summon()`. Returns
56
- * `{ status: 'launched', sessionId }`.
66
+ * run() → loads the plan; when `patronRole` is set and the plan
67
+ * has at least one decision, builds a single prompt
68
+ * covering every decision and launches an anima session
69
+ * via `animator.summon()`. Returns
70
+ * `{ status: 'launched', sessionId }`. No-ops (completes
71
+ * with empty yields) when `patronRole` is unset/empty or
72
+ * the plan has no decisions.
57
73
  * collect() → reads the session's `output` from Stacks, parses the
58
- * emitted JSON verdict array, applies verdicts to the
59
- * PlanDoc, and records each verdict as `Decision.patron`.
74
+ * emitted JSON verdict array, and for every decision on
75
+ * the plan either applies the anima's verdict
76
+ * (`selected` + `patron`, `patronOverride` cleared) or —
77
+ * if the decision is absent from the emission — clears
78
+ * `selected` and `patronOverride` so the decision
79
+ * surfaces to the patron via `decision-review`.
60
80
  *
61
81
  * Output contract (the anima is asked for):
62
82
  * The session's final message must be a single fenced JSON block
@@ -68,15 +88,15 @@
68
88
  * primer on principle-absence; first-class emission)
69
89
  * - `rationale` — short free-text note (optional)
70
90
  * Decisions the anima abstains on — the two narrow cases above — are
71
- * absent from the array; the engine and parser treat absence as
72
- * "unfilled, surface to patron."
91
+ * absent from the array; the engine treats absence as
92
+ * "surface to patron" by clearing `selected` / `patronOverride`.
73
93
  *
74
94
  * Exhaustiveness:
75
95
  * Single pass. Any decision not carrying a well-formed verdict —
76
96
  * because the anima abstained (omitted it), emitted malformed JSON,
77
- * picked an unknown option, or the session failed entirely — is left
78
- * unfilled on the PlanDoc and flows to `decision-review` in the
79
- * normal flow. The engine does not retry.
97
+ * picked an unknown option, or the session failed entirely — has
98
+ * `selected` and `patronOverride` cleared on the PlanDoc and flows
99
+ * to `decision-review` in the normal flow. The engine does not retry.
80
100
  */
81
101
  import { readFileSync } from 'node:fs';
82
102
  import { dirname, resolve } from 'node:path';
@@ -97,19 +117,15 @@ const __dirname = dirname(__filename);
97
117
  const PROMPT_TEMPLATE = readFileSync(resolve(__dirname, '../../patron-anima-prompt.md'), 'utf-8');
98
118
  const DECISIONS_PLACEHOLDER = '{{DECISIONS}}';
99
119
  // ── Helpers ──────────────────────────────────────────────────────────
100
- /** Reviewable = not yet pre-decided by the primer. Mirrors decision-review. */
101
- function reviewableDecisions(plan) {
102
- return (plan.decisions ?? []).filter(d => d.selected === undefined);
103
- }
104
120
  /**
105
- * Assemble the patron work prompt from the reviewable decisions.
121
+ * Assemble the patron work prompt from the plan's decisions.
106
122
  *
107
123
  * The static portion (preamble, mode discipline, out-of-lane prohibition,
108
124
  * output contract, worked example) lives in `patron-anima-prompt.md` and is
109
125
  * loaded into `PROMPT_TEMPLATE` at module load. This function renders each
110
- * reviewable decision — question, optional context, options, optional
111
- * primer recommendation / rationale — and substitutes the listing into
112
- * the template's `{{DECISIONS}}` placeholder.
126
+ * decision — question, optional context, options, optional primer
127
+ * recommendation / rationale — and substitutes the listing into the
128
+ * template's `{{DECISIONS}}` placeholder.
113
129
  */
114
130
  export function buildPatronPrompt(decisions) {
115
131
  const lines = [];
@@ -267,10 +283,10 @@ export function createPatronAnimaEngine(getPlansBook) {
267
283
  if (role === '') {
268
284
  return { status: 'completed', yields: {} };
269
285
  }
270
- // Fast-path: nothing is reviewable → no-op. The primer has already
271
- // pre-decided everything; there's nothing for the anima to weigh in on.
272
- const reviewable = reviewableDecisions(plan);
273
- if (reviewable.length === 0) {
286
+ // Fast-path: no decisions on the plan → no-op. The primer emitted
287
+ // nothing for the anima to weigh in on. (D13: keep this fast-path.)
288
+ const decisions = plan.decisions ?? [];
289
+ if (decisions.length === 0) {
274
290
  return { status: 'completed', yields: {} };
275
291
  }
276
292
  const animator = guild().apparatus('animator');
@@ -278,7 +294,7 @@ export function createPatronAnimaEngine(getPlansBook) {
278
294
  const cwd = typeof givens.cwd === 'string' && givens.cwd.length > 0
279
295
  ? givens.cwd
280
296
  : process.cwd();
281
- const prompt = buildPatronPrompt(reviewable);
297
+ const prompt = buildPatronPrompt(decisions);
282
298
  const handle = animator.summon({
283
299
  role,
284
300
  prompt,
@@ -306,20 +322,29 @@ export function createPatronAnimaEngine(getPlansBook) {
306
322
  const sessionsBook = stacks.readBook('animator', 'sessions');
307
323
  const session = await sessionsBook.get(sessionId);
308
324
  const output = session?.output ?? '';
309
- const reviewable = reviewableDecisions(plan);
310
- const emissionsByDecisionId = parseEmission(output, reviewable);
311
- // Apply verdicts to each touched decision. Untouched decisions are
312
- // left unfilled decision-review will surface them to the human.
325
+ const planDecisions = plan.decisions ?? [];
326
+ const emissionsByDecisionId = parseEmission(output, planDecisions);
327
+ // Walk every decision on the plan. Decisions the anima emitted a
328
+ // verdict for are stamped with `selected` + `patron`; decisions the
329
+ // anima abstained on (absent from the emission map) have `selected`
330
+ // and `patronOverride` cleared so decision-review's
331
+ // `selected === undefined` filter surfaces them to the patron.
332
+ // `Decision.patron` is deliberately left alone on abstention
333
+ // (D14 leave-patron).
313
334
  const touched = [];
314
- const decisions = (plan.decisions ?? []).map(d => ({ ...d }));
335
+ const decisions = planDecisions.map(d => ({ ...d }));
315
336
  for (const decision of decisions) {
316
337
  const emission = emissionsByDecisionId.get(decision.id);
317
- if (!emission)
318
- continue;
319
- decision.patron = emission;
320
- decision.selected = emission.selection;
321
- delete decision.patronOverride;
322
- touched.push(decision.id);
338
+ if (emission) {
339
+ decision.patron = emission;
340
+ decision.selected = emission.selection;
341
+ delete decision.patronOverride;
342
+ touched.push(decision.id);
343
+ }
344
+ else {
345
+ delete decision.selected;
346
+ delete decision.patronOverride;
347
+ }
323
348
  }
324
349
  await book.patch(planId, {
325
350
  decisions,
@@ -328,7 +353,7 @@ export function createPatronAnimaEngine(getPlansBook) {
328
353
  return {
329
354
  sessionId,
330
355
  touchedDecisionIds: touched,
331
- totalReviewable: reviewable.length,
356
+ totalReviewable: planDecisions.length,
332
357
  };
333
358
  },
334
359
  };
@@ -1 +1 @@
1
- {"version":3,"file":"patron-anima.js","sourceRoot":"","sources":["../../src/engines/patron-anima.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patron-anima.js","sourceRoot":"","sources":["../../src/engines/patron-anima.ts"],"names":[],"mappings":"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"}
@@ -17,12 +17,6 @@
17
17
  * brief should behave according to the live config, not the config at the
18
18
  * time the plugin loaded.
19
19
  *
20
- * The `selected === undefined` reviewable partition is preserved
21
- * conceptually: the attended variant pre-fills every decision, so the
22
- * partition is empty by construction and patron-anima no-ops for nothing-
23
- * to-review; the solo variant leaves razor-matched decisions unset, which
24
- * is the normal path for guilds without a patron-anima.
25
- *
26
20
  * Design contract mirrors `anima-session`:
27
21
  * givens : prompt (required), cwd (required), writ (optional), metadata
28
22
  * (optional). `role` is NOT accepted — the engine chooses it.
@@ -1 +1 @@
1
- {"version":3,"file":"reader-analyst.d.ts","sourceRoot":"","sources":["../../src/engines/reader-analyst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKrE,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,yBAAyB,IAAI,YAAY,CAmCxD"}
1
+ {"version":3,"file":"reader-analyst.d.ts","sourceRoot":"","sources":["../../src/engines/reader-analyst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKrE,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,yBAAyB,IAAI,YAAY,CAmCxD"}
@@ -17,12 +17,6 @@
17
17
  * brief should behave according to the live config, not the config at the
18
18
  * time the plugin loaded.
19
19
  *
20
- * The `selected === undefined` reviewable partition is preserved
21
- * conceptually: the attended variant pre-fills every decision, so the
22
- * partition is empty by construction and patron-anima no-ops for nothing-
23
- * to-review; the solo variant leaves razor-matched decisions unset, which
24
- * is the normal path for guilds without a patron-anima.
25
- *
26
20
  * Design contract mirrors `anima-session`:
27
21
  * givens : prompt (required), cwd (required), writ (optional), metadata
28
22
  * (optional). `role` is NOT accepted — the engine chooses it.
@@ -1 +1 @@
1
- {"version":3,"file":"reader-analyst.js","sourceRoot":"","sources":["../../src/engines/reader-analyst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAI/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AACrE,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,EAAE,EAAE,0BAA0B;QAE9B,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO;YACvB,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,SAAS,CAAc,UAAU,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAA2B,CAAC;YAEhD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC7B,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;gBACvE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;gBAC9E,mEAAmE;gBACnE,iEAAiE;gBACjE,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reader-analyst.js","sourceRoot":"","sources":["../../src/engines/reader-analyst.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAI/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AACrE,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,EAAE,EAAE,0BAA0B;QAE9B,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO;YACvB,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,SAAS,CAAc,UAAU,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAA2B,CAAC;YAEhD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC7B,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;gBACvE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;gBAC9E,mEAAmE;gBACnE,iEAAiE;gBACjE,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shardworks/astrolabe-apparatus",
3
- "version": "0.1.252",
3
+ "version": "0.1.254",
4
4
  "license": "ISC",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,17 +20,17 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "zod": "4.3.6",
23
- "@shardworks/stacks-apparatus": "0.1.252",
24
- "@shardworks/clerk-apparatus": "0.1.252",
25
- "@shardworks/spider-apparatus": "0.1.252",
26
- "@shardworks/fabricator-apparatus": "0.1.252",
27
- "@shardworks/tools-apparatus": "0.1.252",
28
- "@shardworks/loom-apparatus": "0.1.252",
29
- "@shardworks/animator-apparatus": "0.1.252"
23
+ "@shardworks/stacks-apparatus": "0.1.254",
24
+ "@shardworks/spider-apparatus": "0.1.254",
25
+ "@shardworks/clerk-apparatus": "0.1.254",
26
+ "@shardworks/loom-apparatus": "0.1.254",
27
+ "@shardworks/animator-apparatus": "0.1.254",
28
+ "@shardworks/tools-apparatus": "0.1.254",
29
+ "@shardworks/fabricator-apparatus": "0.1.254"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "25.5.0",
33
- "@shardworks/nexus-core": "0.1.252"
33
+ "@shardworks/nexus-core": "0.1.254"
34
34
  },
35
35
  "files": [
36
36
  "dist",