openplanr 1.16.2 → 1.17.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 (99) hide show
  1. package/dist/cli/commands/operate.d.ts.map +1 -1
  2. package/dist/cli/commands/operate.js +185 -6
  3. package/dist/cli/commands/operate.js.map +1 -1
  4. package/dist/services/operate/advisors.d.ts +46 -1
  5. package/dist/services/operate/advisors.d.ts.map +1 -1
  6. package/dist/services/operate/advisors.js +124 -13
  7. package/dist/services/operate/advisors.js.map +1 -1
  8. package/dist/services/operate/artifacts.d.ts +27 -1
  9. package/dist/services/operate/artifacts.d.ts.map +1 -1
  10. package/dist/services/operate/artifacts.js +103 -1
  11. package/dist/services/operate/artifacts.js.map +1 -1
  12. package/dist/services/operate/cadence.d.ts +50 -0
  13. package/dist/services/operate/cadence.d.ts.map +1 -0
  14. package/dist/services/operate/cadence.js +56 -0
  15. package/dist/services/operate/cadence.js.map +1 -0
  16. package/dist/services/operate/citation-resolution.d.ts +101 -0
  17. package/dist/services/operate/citation-resolution.d.ts.map +1 -0
  18. package/dist/services/operate/citation-resolution.js +308 -0
  19. package/dist/services/operate/citation-resolution.js.map +1 -0
  20. package/dist/services/operate/config.d.ts +67 -1
  21. package/dist/services/operate/config.d.ts.map +1 -1
  22. package/dist/services/operate/config.js +158 -9
  23. package/dist/services/operate/config.js.map +1 -1
  24. package/dist/services/operate/decision-brief.d.ts +148 -0
  25. package/dist/services/operate/decision-brief.d.ts.map +1 -0
  26. package/dist/services/operate/decision-brief.js +194 -0
  27. package/dist/services/operate/decision-brief.js.map +1 -0
  28. package/dist/services/operate/doctor.d.ts.map +1 -1
  29. package/dist/services/operate/doctor.js +151 -3
  30. package/dist/services/operate/doctor.js.map +1 -1
  31. package/dist/services/operate/engine.d.ts +66 -2
  32. package/dist/services/operate/engine.d.ts.map +1 -1
  33. package/dist/services/operate/engine.js +219 -7
  34. package/dist/services/operate/engine.js.map +1 -1
  35. package/dist/services/operate/event-store.d.ts +35 -1
  36. package/dist/services/operate/event-store.d.ts.map +1 -1
  37. package/dist/services/operate/event-store.js +142 -29
  38. package/dist/services/operate/event-store.js.map +1 -1
  39. package/dist/services/operate/evidence-cache.d.ts +25 -1
  40. package/dist/services/operate/evidence-cache.d.ts.map +1 -1
  41. package/dist/services/operate/evidence-cache.js +62 -1
  42. package/dist/services/operate/evidence-cache.js.map +1 -1
  43. package/dist/services/operate/evidence.d.ts +20 -1
  44. package/dist/services/operate/evidence.d.ts.map +1 -1
  45. package/dist/services/operate/evidence.js +119 -0
  46. package/dist/services/operate/evidence.js.map +1 -1
  47. package/dist/services/operate/index.d.ts.map +1 -1
  48. package/dist/services/operate/index.js +72 -5
  49. package/dist/services/operate/index.js.map +1 -1
  50. package/dist/services/operate/interaction/action-service.d.ts +17 -0
  51. package/dist/services/operate/interaction/action-service.d.ts.map +1 -1
  52. package/dist/services/operate/interaction/action-service.js +19 -0
  53. package/dist/services/operate/interaction/action-service.js.map +1 -1
  54. package/dist/services/operate/journal.d.ts.map +1 -1
  55. package/dist/services/operate/journal.js +11 -5
  56. package/dist/services/operate/journal.js.map +1 -1
  57. package/dist/services/operate/maintenance.d.ts.map +1 -1
  58. package/dist/services/operate/maintenance.js +9 -2
  59. package/dist/services/operate/maintenance.js.map +1 -1
  60. package/dist/services/operate/migration.d.ts +68 -0
  61. package/dist/services/operate/migration.d.ts.map +1 -0
  62. package/dist/services/operate/migration.js +235 -0
  63. package/dist/services/operate/migration.js.map +1 -0
  64. package/dist/services/operate/mission-dispatch.d.ts +193 -0
  65. package/dist/services/operate/mission-dispatch.d.ts.map +1 -0
  66. package/dist/services/operate/mission-dispatch.js +444 -0
  67. package/dist/services/operate/mission-dispatch.js.map +1 -0
  68. package/dist/services/operate/projection-persistence.d.ts +6 -0
  69. package/dist/services/operate/projection-persistence.d.ts.map +1 -1
  70. package/dist/services/operate/projection-persistence.js +87 -11
  71. package/dist/services/operate/projection-persistence.js.map +1 -1
  72. package/dist/services/operate/projection.d.ts +26 -1
  73. package/dist/services/operate/projection.d.ts.map +1 -1
  74. package/dist/services/operate/projection.js +62 -0
  75. package/dist/services/operate/projection.js.map +1 -1
  76. package/dist/services/operate/protocol.d.ts +46 -2
  77. package/dist/services/operate/protocol.d.ts.map +1 -1
  78. package/dist/services/operate/protocol.js +57 -5
  79. package/dist/services/operate/protocol.js.map +1 -1
  80. package/dist/services/operate/read-only-providers.d.ts +37 -0
  81. package/dist/services/operate/read-only-providers.d.ts.map +1 -1
  82. package/dist/services/operate/read-only-providers.js +130 -0
  83. package/dist/services/operate/read-only-providers.js.map +1 -1
  84. package/dist/services/operate/reports.d.ts +13 -0
  85. package/dist/services/operate/reports.d.ts.map +1 -1
  86. package/dist/services/operate/reports.js +217 -1
  87. package/dist/services/operate/reports.js.map +1 -1
  88. package/dist/services/operate/routes.d.ts.map +1 -1
  89. package/dist/services/operate/routes.js +79 -5
  90. package/dist/services/operate/routes.js.map +1 -1
  91. package/dist/services/operate/types.d.ts +120 -4
  92. package/dist/services/operate/types.d.ts.map +1 -1
  93. package/dist/services/operate/types.js +13 -0
  94. package/dist/services/operate/types.js.map +1 -1
  95. package/dist/services/operate/workspace.d.ts +7 -0
  96. package/dist/services/operate/workspace.d.ts.map +1 -1
  97. package/dist/services/operate/workspace.js +14 -5
  98. package/dist/services/operate/workspace.js.map +1 -1
  99. package/package.json +2 -2
@@ -0,0 +1,194 @@
1
+ import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { resolveOperatingPipelineRoot } from './protocol.js';
5
+ import { compareSensitivity, sanitizeGeneratedPlainText } from './redaction.js';
6
+ import { OperateError } from './types.js';
7
+ import { resolveContainedPath, resolveOperatingPaths } from './workspace.js';
8
+ /**
9
+ * FR7 / E-007 — render `operate brief` and `operate decisions show` into a
10
+ * single, self-contained, OFFLINE artifact a non-technical decision owner can
11
+ * open without a terminal. Rendering is delegated to the pipeline builder
12
+ * (`createOperatingDecisionBriefArtifact`), which fails closed on any
13
+ * `http(s)://` reference (`E_OPERATE_DECISION_BRIEF_NOT_OFFLINE`). This module
14
+ * never reimplements that renderer: it assembles the ceiling-filtered brief and
15
+ * decision inputs, invokes the builder through the existing opaque-origin
16
+ * sandbox surface, and writes the resulting HTML locally.
17
+ *
18
+ * Nothing here publishes or shares: a brief is written only when the operator
19
+ * asks for it (the `--render` flag), to a project-contained path. Sensitivity
20
+ * ceilings that gate collection (T-002) and dispatch (T-003) also gate rendered
21
+ * content here — evidence above the configured ceiling is dropped before the
22
+ * builder ever sees it, and free-text fields pass through the redaction path.
23
+ */
24
+ /**
25
+ * The opaque-origin sandbox contract reused from `artifact-route-generation.ts`
26
+ * (`network: 'none', filesystem: 'none', tools: []`), the same posture proven
27
+ * out for generated route artifacts. A decision brief is a fully-offline
28
+ * reading document, so it additionally allows NO external URL scheme — the
29
+ * pipeline builder rejects any `http(s)://` reference outright. The shape is
30
+ * kept structurally compatible with the route sandbox so no new sandbox model
31
+ * is invented (DoD point 5).
32
+ */
33
+ export const OPAQUE_ORIGIN_DECISION_BRIEF_SANDBOX = Object.freeze({
34
+ network: 'none',
35
+ filesystem: 'none',
36
+ tools: Object.freeze([]),
37
+ allowedUrlSchemes: Object.freeze([]),
38
+ });
39
+ /**
40
+ * Load the pipeline's decision-brief builder from the installed pipeline root.
41
+ * The absolute-file import mirrors `pipeline-handoff.ts` (the package `exports`
42
+ * map does not expose the raw subpath). Fails closed when the pipeline is not
43
+ * installed so a brief can never silently degrade to an in-repo reimplementation.
44
+ */
45
+ async function loadOperatingDecisionBriefBuilder() {
46
+ const root = resolveOperatingPipelineRoot();
47
+ if (!root) {
48
+ throw new OperateError('E_PIPELINE_NOT_INSTALLED', 'Rendering a self-contained operating decision brief requires the full planr-pipeline package.', {
49
+ recovery: 'Run `npm install -g openplanr@latest` (without `--omit=optional`), then `planr setup --scope user`.',
50
+ });
51
+ }
52
+ const module = (await import(pathToFileURL(path.join(root, 'lib', 'pipeline', 'index.mjs')).href));
53
+ if (typeof module.createOperatingDecisionBriefArtifact !== 'function') {
54
+ throw new OperateError('E_PIPELINE_NOT_INSTALLED', 'The installed pipeline does not expose the self-contained decision-brief renderer.');
55
+ }
56
+ return module.createOperatingDecisionBriefArtifact;
57
+ }
58
+ /**
59
+ * Drop every evidence citation whose sensitivity exceeds the configured
60
+ * ceiling. Pure and deterministic: the kept citations preserve input order and
61
+ * the redacted refs are returned de-duplicated and sorted for a stable record.
62
+ */
63
+ export function filterEvidenceByCeiling(evidence, ceiling) {
64
+ const kept = [];
65
+ const redactedRefs = [];
66
+ for (const item of evidence) {
67
+ if (compareSensitivity(item.sensitivity, ceiling) > 0)
68
+ redactedRefs.push(item.ref);
69
+ else
70
+ kept.push(item);
71
+ }
72
+ return { kept, redactedRefs: [...new Set(redactedRefs)].sort() };
73
+ }
74
+ function redactedText(value) {
75
+ if (typeof value !== 'string' || value.trim() === '')
76
+ return undefined;
77
+ const sanitized = sanitizeGeneratedPlainText(value).trim();
78
+ return sanitized === '' ? undefined : sanitized;
79
+ }
80
+ function redactedFacts(decision) {
81
+ if (!decision)
82
+ return null;
83
+ const facts = {};
84
+ for (const key of [
85
+ 'status',
86
+ 'owner',
87
+ 'selectedOption',
88
+ 'recommendation',
89
+ 'reversibility',
90
+ 'deadline',
91
+ 'note',
92
+ ]) {
93
+ const value = redactedText(decision[key]);
94
+ if (value !== undefined)
95
+ facts[key] = value;
96
+ }
97
+ return Object.keys(facts).length > 0 ? facts : null;
98
+ }
99
+ /**
100
+ * Assemble the ceiling-filtered, redacted brief/decision inputs for the
101
+ * pipeline builder. Evidence above the ceiling is removed here — before the
102
+ * renderer runs — and every free-text field passes through the redaction path,
103
+ * so above-ceiling and secret-like content can never reach rendered output.
104
+ */
105
+ export function buildDecisionBriefInput(source, ceiling) {
106
+ const { kept, redactedRefs } = filterEvidenceByCeiling(source.evidence, ceiling);
107
+ const evidence = kept.map((item) => item.ref);
108
+ const options = (source.options ?? [])
109
+ .map((option) => {
110
+ const label = redactedText(option.label);
111
+ if (label === undefined)
112
+ return null;
113
+ const detail = redactedText(option.detail);
114
+ return detail === undefined ? { label } : { label, detail };
115
+ })
116
+ .filter((option) => option !== null);
117
+ const brief = {
118
+ id: source.id,
119
+ title: source.title.trim(),
120
+ };
121
+ const summary = redactedText(source.summary);
122
+ if (summary !== undefined)
123
+ brief.summary = summary;
124
+ const question = redactedText(source.question);
125
+ if (question !== undefined)
126
+ brief.question = question;
127
+ if (evidence.length > 0)
128
+ brief.evidence = evidence;
129
+ if (options.length > 0)
130
+ brief.options = options;
131
+ const blocks = redactedText(source.blocks);
132
+ if (blocks !== undefined)
133
+ brief.blocks = blocks;
134
+ return {
135
+ brief,
136
+ decision: redactedFacts(source.decision),
137
+ redactedEvidenceRefs: redactedRefs,
138
+ };
139
+ }
140
+ /**
141
+ * Render a ceiling-filtered brief/decision into a validated, self-contained
142
+ * offline artifact envelope. The pipeline builder is authoritative for the
143
+ * offline posture: any `http(s)://` reference in the rendered HTML fails closed
144
+ * with `E_OPERATE_DECISION_BRIEF_NOT_OFFLINE`, which is allowed to propagate
145
+ * unchanged (DoD: an external reference "fails closed via the pipeline error").
146
+ */
147
+ export async function renderOperatingDecisionBriefArtifact(source, ceiling) {
148
+ const build = await loadOperatingDecisionBriefBuilder();
149
+ const { brief, decision, redactedEvidenceRefs } = buildDecisionBriefInput(source, ceiling);
150
+ const envelope = build(brief, decision);
151
+ const artifact = envelope.artifacts[0];
152
+ if (!artifact || artifact.kind !== 'html' || typeof artifact.html !== 'string') {
153
+ throw new OperateError('E_OPERATE_ARTIFACT_REJECTED', 'The decision-brief renderer did not return a single HTML artifact.');
154
+ }
155
+ return {
156
+ envelope,
157
+ html: artifact.html,
158
+ sha256: artifact.sha256,
159
+ sandbox: OPAQUE_ORIGIN_DECISION_BRIEF_SANDBOX,
160
+ redactedEvidenceRefs,
161
+ offline: true,
162
+ };
163
+ }
164
+ /**
165
+ * Read the machine-local sensitivity ceiling. Mirrors the collection/dispatch
166
+ * paths: the ceiling defaults to `internal` when preferences are absent so a
167
+ * brief is never rendered with a more permissive posture than collection used.
168
+ */
169
+ export async function readOperatingSensitivityCeiling(projectRoot, options = {}) {
170
+ const paths = resolveOperatingPaths(projectRoot, { localRoot: options.localRoot });
171
+ const preferences = await readFile(path.join(paths.localRoot, 'preferences.json'), 'utf8')
172
+ .then((raw) => JSON.parse(raw))
173
+ .catch(() => ({ sensitivityCeiling: 'internal' }));
174
+ return preferences.sensitivityCeiling ?? 'internal';
175
+ }
176
+ /**
177
+ * Render a brief/decision and write its self-contained HTML to a
178
+ * project-contained destination. This is the share-on-request boundary:
179
+ * nothing is written unless the operator supplied `--render <path>`, and the
180
+ * file is written with restrictive permissions to the local project only. When
181
+ * `ceiling` is omitted it is resolved from the machine-local preferences.
182
+ */
183
+ export async function writeOperatingDecisionBriefArtifact(input) {
184
+ const ceiling = input.ceiling ??
185
+ (await readOperatingSensitivityCeiling(input.projectRoot, { localRoot: input.localRoot }));
186
+ const target = await resolveContainedPath(input.projectRoot, input.destination);
187
+ const rendered = await renderOperatingDecisionBriefArtifact(input.source, ceiling);
188
+ await mkdir(path.dirname(target), { recursive: true, mode: 0o700 });
189
+ const temporary = `${target}.${process.pid}.tmp`;
190
+ await writeFile(temporary, rendered.html, { mode: 0o600 });
191
+ await rename(temporary, target);
192
+ return { ...rendered, path: target, sensitivityCeiling: ceiling };
193
+ }
194
+ //# sourceMappingURL=decision-brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-brief.js","sourceRoot":"","sources":["../../../src/services/operate/decision-brief.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/services/operate/doctor.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAwTD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAkCvC"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/services/operate/doctor.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAgeD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAwCvC"}
@@ -1,12 +1,13 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { readdir } from 'node:fs/promises';
2
+ import { readdir, readFile } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import { canonicalDigest } from './canonical.js';
5
- import { operatingProjectKey } from './config.js';
5
+ import { operatingProjectKey, readOperatingDispatchModeOverrides } from './config.js';
6
6
  import { OperatingEventStore } from './event-store.js';
7
7
  import { guidedSessionStatus } from './interaction/session-service.js';
8
8
  import { readJournal } from './journal.js';
9
9
  import { readOperatingLock } from './lock-service.js';
10
+ import { detectOperatingStorageLayout } from './migration.js';
10
11
  import { inspectOperatingProjectionDrift } from './projection-persistence.js';
11
12
  import { loadOperatingProtocol, operatingPipelineAvailable } from './protocol.js';
12
13
  import { resolveOperatingPaths } from './workspace.js';
@@ -288,6 +289,149 @@ async function diagnoseJournals(projectRoot, localRoot) {
288
289
  message: 'Operating transaction journals are terminal and schema-valid',
289
290
  };
290
291
  }
292
+ /**
293
+ * Additive Protocol v1.3 (FR10 / E-010) check: detect the on-disk storage
294
+ * layout (SPEC-002 v1.2 vs the v1.3 `.state/` view) and name any inconsistency
295
+ * — an interrupted migration that left the v1.3 view alongside SPEC-002 residue,
296
+ * or a project still on the legacy layout — with the automatic-migration repair.
297
+ */
298
+ async function diagnoseStorageLayout(projectRoot, localRoot) {
299
+ const paths = resolveOperatingPaths(projectRoot, { localRoot });
300
+ const layout = await detectOperatingStorageLayout(projectRoot, { localRoot });
301
+ // SPEC-002 internals that must not coexist with the v1.3 `.state/` view: the
302
+ // root events log, the per-digest-prefix records tree, and the checkpoint dir.
303
+ const residue = [
304
+ path.join(paths.root, 'events.jsonl'),
305
+ path.join(paths.root, 'records'),
306
+ path.join(paths.root, 'checkpoints'),
307
+ ].filter((target) => existsSync(target));
308
+ if (layout === 'v1.3' && residue.length > 0) {
309
+ return {
310
+ code: 'operate-layout',
311
+ status: 'warn',
312
+ message: `Operating storage is on the v1.3 \`.state/\` layout but ${residue.length} SPEC-002 residue path(s) remain from an interrupted migration`,
313
+ fix: 'Run `planr operate migrate apply --yes` to clear the residual SPEC-002 layout.',
314
+ };
315
+ }
316
+ if (layout === 'v1.2') {
317
+ return {
318
+ code: 'operate-layout',
319
+ status: 'warn',
320
+ message: 'Operating storage is on the legacy SPEC-002 layout and has not migrated to the v1.3 `.state/` layout',
321
+ fix: 'Run `planr operate migrate apply --yes` to migrate the storage layout to v1.3.',
322
+ };
323
+ }
324
+ return {
325
+ code: 'operate-layout',
326
+ status: 'pass',
327
+ message: layout === 'v1.3'
328
+ ? 'Operating storage is on the v1.3 `.state/` layout with no SPEC-002 residue'
329
+ : 'No Operating Board storage layout is present yet',
330
+ };
331
+ }
332
+ /**
333
+ * Additive Protocol v1.3 (FR10 / E-010) check: verify every line of the
334
+ * append-only `.state/records.jsonl` is parseable and carries consistent
335
+ * content-address digests. The record digest is a pure function of
336
+ * `(recordType, createdAt, correlationId, contentDigest)` and `contentDigest`
337
+ * is the canonical digest of the content, so both are recomputed exactly as the
338
+ * write path and `readRecord` do. A v1.2 (unmigrated) project keeps records in
339
+ * the SPEC-002 tree and has no `.state/records.jsonl` yet — that is a pass.
340
+ */
341
+ async function diagnoseRecordsLog(projectRoot, localRoot) {
342
+ const paths = resolveOperatingPaths(projectRoot, { localRoot });
343
+ const raw = await readFile(paths.records, 'utf8').catch((error) => {
344
+ if (error.code === 'ENOENT')
345
+ return null;
346
+ throw error;
347
+ });
348
+ if (raw === null) {
349
+ return {
350
+ code: 'operate-records',
351
+ status: 'pass',
352
+ message: 'No v1.3 `.state/records.jsonl` log is present yet',
353
+ };
354
+ }
355
+ let counted = 0;
356
+ for (const [index, line] of raw.split('\n').entries()) {
357
+ if (!line.trim())
358
+ continue;
359
+ counted += 1;
360
+ let entry;
361
+ try {
362
+ entry = JSON.parse(line);
363
+ }
364
+ catch {
365
+ return {
366
+ code: 'operate-records',
367
+ status: 'fail',
368
+ message: `Operating \`.state/records.jsonl\` line ${index + 1} is not valid JSON`,
369
+ fix: 'Run `planr operate integrity status`; do not edit .state/records.jsonl by hand.',
370
+ };
371
+ }
372
+ if (typeof entry.digest !== 'string' ||
373
+ !entry.digest.startsWith('sha256:') ||
374
+ typeof entry.contentDigest !== 'string' ||
375
+ !entry.contentDigest.startsWith('sha256:')) {
376
+ return {
377
+ code: 'operate-records',
378
+ status: 'fail',
379
+ message: `Operating \`.state/records.jsonl\` line ${index + 1} is missing its content-address digests`,
380
+ fix: 'Run `planr operate integrity status`; do not edit .state/records.jsonl by hand.',
381
+ };
382
+ }
383
+ const consistent = entry.content !== undefined &&
384
+ entry.contentDigest === canonicalDigest(entry.content) &&
385
+ entry.digest ===
386
+ canonicalDigest({
387
+ recordType: entry.recordType,
388
+ createdAt: entry.createdAt,
389
+ correlationId: entry.correlationId,
390
+ contentDigest: entry.contentDigest,
391
+ });
392
+ if (!consistent) {
393
+ return {
394
+ code: 'operate-records',
395
+ status: 'fail',
396
+ message: `Operating \`.state/records.jsonl\` line ${index + 1} digest does not match its content`,
397
+ fix: 'Run `planr operate integrity status`, then recover the affected cycle from the verified event chain.',
398
+ };
399
+ }
400
+ }
401
+ return {
402
+ code: 'operate-records',
403
+ status: 'pass',
404
+ message: `${counted} operating records.jsonl ${counted === 1 ? 'entry is' : 'entries are'} parseable with consistent content-address digests`,
405
+ };
406
+ }
407
+ /**
408
+ * Additive Protocol v1.3 (FR10 / E-010) check: the persisted per-project
409
+ * dispatch-mode overrides (machine-local `preferences.json`) must reference only
410
+ * known registry role IDs and `pack`/`mission` modes. Reuses the same strict
411
+ * validation the write path enforces; an invalid map fails closed with the
412
+ * repair rather than throwing out of the doctor run.
413
+ */
414
+ async function diagnoseDispatchModes(projectRoot, localRoot) {
415
+ try {
416
+ const overrides = await readOperatingDispatchModeOverrides(projectRoot, { localRoot });
417
+ const count = Object.keys(overrides).length;
418
+ return {
419
+ code: 'operate-dispatch-mode',
420
+ status: 'pass',
421
+ message: count === 0
422
+ ? 'No per-project dispatch-mode overrides are configured'
423
+ : `${count} per-project dispatch-mode override(s) reference known roles and valid pack/mission modes`,
424
+ };
425
+ }
426
+ catch (error) {
427
+ return {
428
+ code: 'operate-dispatch-mode',
429
+ status: 'fail',
430
+ message: `Operating dispatch-mode overrides are invalid: ${error instanceof Error ? error.message : String(error)}`,
431
+ fix: 'Run `planr operate config edit --dispatch-mode-override <roleId>=<pack|mission>` to restore valid overrides.',
432
+ };
433
+ }
434
+ }
291
435
  export async function diagnoseOperatingBoard(input) {
292
436
  const diagnostics = [await diagnoseProtocol(input.pipelineVersion)];
293
437
  const paths = resolveOperatingPaths(input.projectRoot, { localRoot: input.localRoot });
@@ -316,7 +460,11 @@ export async function diagnoseOperatingBoard(input) {
316
460
  ? { fix: 'Run `planr operate cache purge --yes` after reviewing the cache status.' }
317
461
  : {}),
318
462
  });
319
- diagnostics.push(...(await diagnoseEventState(input.projectRoot, input.localRoot)), await diagnoseLocks(input.projectRoot, input.localRoot), await diagnoseJournals(input.projectRoot, input.localRoot));
463
+ diagnostics.push(...(await diagnoseEventState(input.projectRoot, input.localRoot)), await diagnoseLocks(input.projectRoot, input.localRoot), await diagnoseJournals(input.projectRoot, input.localRoot),
464
+ // Additive Protocol v1.3 (FR10 / E-010) diagnostics layered on the
465
+ // SPEC-003 surface: storage-layout version, records-log integrity, and
466
+ // persisted dispatch-mode override validity.
467
+ await diagnoseStorageLayout(input.projectRoot, input.localRoot), await diagnoseRecordsLog(input.projectRoot, input.localRoot), await diagnoseDispatchModes(input.projectRoot, input.localRoot));
320
468
  return diagnostics;
321
469
  }
322
470
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/services/operate/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/services/operate/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { type AdvisorAdapter } from './advisors.js';
2
- import { type OperatingCycleManifest, type OperatingDataGap, type OperatingDecision, type OperatingEvidence, type OperatingEvidenceReadiness, type OperatingFinding, type OperatingProviderManifest, type OperatingRoleResult, type OperatingRoutePlan, type OperatingState } from './types.js';
1
+ import { type AdvisorAdapter, type AdvisorDispatchResult, type AdvisorOperatingContext } from './advisors.js';
2
+ import type { CitationResolutionContext } from './citation-resolution.js';
3
+ import { type OperatingConfig, type OperatingCycleManifest, type OperatingDataGap, type OperatingDecision, type OperatingEvidence, type OperatingEvidenceIndexItem, type OperatingEvidenceReadiness, type OperatingFinding, type OperatingMissionPacket, type OperatingMissionPacketState, type OperatingProviderManifest, type OperatingRoleId, type OperatingRoleResult, type OperatingRoutePlan, type OperatingSensitivity, type OperatingState, type OperatingWorkspaceManifest } from './types.js';
3
4
  export interface RunOperatingCycleInput {
4
5
  projectRoot: string;
5
6
  cycleId?: string;
@@ -43,12 +44,75 @@ export interface RunOperatingCycleResult {
43
44
  modelCalls: number;
44
45
  warnings: string[];
45
46
  nativeHandoff?: NativeAdvisorHandoff;
47
+ /**
48
+ * Per-role dispatch provenance from this run's advisor dispatch (FR4 / E-004).
49
+ * Carries the configured `dispatchMode` (registry default overridden by the
50
+ * persisted per-project `dispatchModeOverrides`) so a persisted override is
51
+ * observable end-to-end. Empty for preview/dry-run/native-handoff returns.
52
+ */
53
+ dispatchProvenance?: AdvisorDispatchResult['provenance'];
46
54
  }
55
+ /**
56
+ * Source a mission packet's non-evidence payload (FR1/E-001) from live cycle
57
+ * and workspace state at the point mission packets are constructed: the product
58
+ * charter and current goals, a prior-cycle summary with its open
59
+ * decisions/gaps/pending outcomes, planning and delivery status, the read roots
60
+ * declared for the index, and the revision pinned once at cycle start (recorded
61
+ * in the workspace manifest's control repository and threaded identically into
62
+ * every mission packet). Nothing here is invented: every value is read from the
63
+ * parsed charter context, the reduced state, the operating config, and the
64
+ * captured workspace manifest.
65
+ */
66
+ export declare function sourceOperatingMissionPacketState(input: {
67
+ cycleId: string;
68
+ config: OperatingConfig;
69
+ workspace: OperatingWorkspaceManifest;
70
+ context: AdvisorOperatingContext;
71
+ evidenceIndex: readonly OperatingEvidenceIndexItem[];
72
+ }): OperatingMissionPacketState;
73
+ /**
74
+ * Build the Protocol v1.3 mission packets (FR1/E-001) for a cycle from live
75
+ * state: derive the body-free evidence index from the collected snapshot,
76
+ * source the non-evidence payload once, and construct one digest-bound packet
77
+ * per requested role. Each packet is measured against its role's derived
78
+ * single-digit-KiB mission budget and fails closed with
79
+ * `E_OPERATE_MISSION_PACKET_BUDGET` naming the role before any dispatch. Pack
80
+ * mode (`createOperatingAdvisorPack`) is untouched.
81
+ */
82
+ export declare function buildOperatingMissionPackets(input: {
83
+ cycleId: string;
84
+ config: OperatingConfig;
85
+ workspace: OperatingWorkspaceManifest;
86
+ context: AdvisorOperatingContext;
87
+ evidence: OperatingEvidence;
88
+ roleIds?: OperatingRoleId[];
89
+ sensitivityCeiling?: OperatingSensitivity;
90
+ maxEvidenceItems?: number;
91
+ }): Promise<OperatingMissionPacket[]>;
47
92
  export declare function buildChairEvidence(evidence: OperatingEvidence, results: OperatingRoleResult[], now: string): OperatingEvidence;
48
93
  /**
49
94
  * Full evidence → advisors → deterministic consolidation lifecycle. All
50
95
  * mutations are serialized under the process-identity lease; preview and
51
96
  * dry-run never enter the mutating branch.
52
97
  */
98
+ /**
99
+ * FR3 / E-003 citation gate, invoked immediately before consolidation.
100
+ *
101
+ * Every recorded proposal that carries citations is resolved against the cycle's
102
+ * pinned revision through T-004's `enforceRecordedProposalCitations`. A proposal
103
+ * with ANY unresolvable citation is DROPPED — it never reaches
104
+ * `consolidateOperatingResults` — and exactly one `unresolvable-citation` gap is
105
+ * opened in its place. A proposal whose citations all resolve keeps its minted
106
+ * evidence IDs. Proposals carrying no citations (the v1.2 evidence-ref path) pass
107
+ * through untouched, so this is a byte-for-byte no-op for every non-citation
108
+ * cycle: the same `roleResults` reference is returned and no gap is emitted.
109
+ */
110
+ export declare function gateRecordedProposalCitations(input: {
111
+ roleResults: OperatingRoleResult[];
112
+ context: CitationResolutionContext;
113
+ }): Promise<{
114
+ roleResults: OperatingRoleResult[];
115
+ gaps: OperatingDataGap[];
116
+ }>;
53
117
  export declare function runOperatingCycle(input: RunOperatingCycleInput): Promise<RunOperatingCycleResult>;
54
118
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/services/operate/engine.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,cAAc,EAQpB,MAAM,eAAe,CAAC;AA0BvB,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EAErB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AA+HD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,GAAG,EAAE,MAAM,GACV,iBAAiB,CA6DnB;AAuPD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAs4BlC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/services/operate/engine.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAS7B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAEV,yBAAyB,EAE1B,MAAM,0BAA0B,CAAC;AAgClC,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEtB,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EAErB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAChC,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;CAC1D;AA+BD;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,0BAA0B,CAAC;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,aAAa,EAAE,SAAS,0BAA0B,EAAE,CAAC;CACtD,GAAG,2BAA2B,CA6D9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,CAAC,KAAK,EAAE;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,0BAA0B,CAAC;IACtC,OAAO,EAAE,uBAAuB,CAAC;IACjC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAwBpC;AAiHD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,GAAG,EAAE,MAAM,GACV,iBAAiB,CA6DnB;AAuPD;;;;GAIG;AACH;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CAAC,KAAK,EAAE;IACzD,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,OAAO,EAAE,yBAAyB,CAAC;CACpC,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAAC,IAAI,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAmC5E;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAw8BlC"}