agentera 3.0.0-dev.21 → 3.0.0-dev.23

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 (129) hide show
  1. package/README.md +7 -3
  2. package/bundle/.cursor/agents/agentera.md +1 -1
  3. package/bundle/.opencode/agents/agentera.md +1 -1
  4. package/bundle/CHANGELOG.md +11 -0
  5. package/bundle/references/analysis/evidence-tier-authority.yaml +516 -0
  6. package/bundle/references/artifacts/state-storage-authority.yaml +109 -3
  7. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  8. package/bundle/references/cli/agent-ready-state-contract.yaml +22 -14
  9. package/bundle/references/cli/prime-consumer-compatibility.yaml +676 -0
  10. package/bundle/references/cli/vocabulary-index.yaml +3 -3
  11. package/bundle/references/cli/vocabulary.md +10 -3
  12. package/bundle/skills/agentera/SKILL.md +7 -6
  13. package/bundle/skills/agentera/agents/audit.toml +1 -1
  14. package/bundle/skills/agentera/agents/build.toml +1 -1
  15. package/bundle/skills/agentera/agents/design.toml +1 -1
  16. package/bundle/skills/agentera/agents/discuss.toml +1 -1
  17. package/bundle/skills/agentera/agents/document.toml +1 -1
  18. package/bundle/skills/agentera/agents/optimize.toml +1 -1
  19. package/bundle/skills/agentera/agents/orchestrate.toml +1 -1
  20. package/bundle/skills/agentera/agents/plan.toml +1 -1
  21. package/bundle/skills/agentera/agents/profile.toml +1 -1
  22. package/bundle/skills/agentera/agents/research.toml +1 -1
  23. package/bundle/skills/agentera/agents/status.toml +1 -1
  24. package/bundle/skills/agentera/agents/vision.toml +1 -1
  25. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +31 -3
  26. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
  27. package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
  28. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +1 -0
  29. package/dist/analytics/extractCorpus/cli.js +33 -5
  30. package/dist/analytics/extractCorpus/cli.js.map +1 -1
  31. package/dist/analytics/extractCorpus/evidenceTiers.js +561 -0
  32. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -0
  33. package/dist/analytics/extractCorpus/extractCorpusParity.js +1 -0
  34. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
  35. package/dist/analytics/extractCorpus/index.js +3 -0
  36. package/dist/analytics/extractCorpus/index.js.map +1 -1
  37. package/dist/analytics/extractCorpus/tierReader.js +109 -0
  38. package/dist/analytics/extractCorpus/tierReader.js.map +1 -0
  39. package/dist/analytics/profileSignals.js +212 -0
  40. package/dist/analytics/profileSignals.js.map +1 -0
  41. package/dist/analytics/usageStats.js +104 -20
  42. package/dist/analytics/usageStats.js.map +1 -1
  43. package/dist/capabilities/index.js +2 -1
  44. package/dist/capabilities/index.js.map +1 -1
  45. package/dist/capabilities/profile/instructions.js +1 -1
  46. package/dist/capabilities/profile/instructions.js.map +1 -1
  47. package/dist/capabilities/status/startupInstructions.js +35 -0
  48. package/dist/capabilities/status/startupInstructions.js.map +1 -0
  49. package/dist/cli/capabilityContext/build.js +3 -3
  50. package/dist/cli/capabilityContext/build.js.map +1 -1
  51. package/dist/cli/capabilityContext/closeout.js +5 -5
  52. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  53. package/dist/cli/capabilityContext/contract.js +4 -4
  54. package/dist/cli/capabilityContext/contract.js.map +1 -1
  55. package/dist/cli/capabilityContext/evidence.js +4 -4
  56. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  57. package/dist/cli/capabilityContext/planState.js +7 -6
  58. package/dist/cli/capabilityContext/planState.js.map +1 -1
  59. package/dist/cli/capabilityContext/shared.js +1 -1
  60. package/dist/cli/capabilityContext/shared.js.map +1 -1
  61. package/dist/cli/capabilityContext/startup.js +4 -4
  62. package/dist/cli/capabilityContext/startup.js.map +1 -1
  63. package/dist/cli/commands/lint.js +10 -2
  64. package/dist/cli/commands/lint.js.map +1 -1
  65. package/dist/cli/commands/prime/briefOrientation.js +582 -0
  66. package/dist/cli/commands/prime/briefOrientation.js.map +1 -0
  67. package/dist/cli/commands/prime/collectOrientationState.js +3 -0
  68. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  69. package/dist/cli/commands/prime/orientationOutput.js +117 -23
  70. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  71. package/dist/cli/commands/prime.js +30 -3
  72. package/dist/cli/commands/prime.js.map +1 -1
  73. package/dist/cli/commands/report.js +55 -15
  74. package/dist/cli/commands/report.js.map +1 -1
  75. package/dist/cli/commands/schema.js +3 -29
  76. package/dist/cli/commands/schema.js.map +1 -1
  77. package/dist/cli/commands/state/plan.js +3 -2
  78. package/dist/cli/commands/state/plan.js.map +1 -1
  79. package/dist/cli/help.js +1 -1
  80. package/dist/cli/help.js.map +1 -1
  81. package/dist/cli/orientation/corpusCoverage.js +32 -0
  82. package/dist/cli/orientation/corpusCoverage.js.map +1 -1
  83. package/dist/cli/orientation.js +3 -3
  84. package/dist/cli/orientation.js.map +1 -1
  85. package/dist/cli/startupCompletenessContract.js +3 -3
  86. package/dist/cli/startupCompletenessContract.js.map +1 -1
  87. package/dist/cli/stateQuery.js +37 -0
  88. package/dist/cli/stateQuery.js.map +1 -1
  89. package/dist/registries/evidenceTierContract.js +362 -0
  90. package/dist/registries/evidenceTierContract.js.map +1 -0
  91. package/dist/registries/verbosityBudgetContract.js +206 -0
  92. package/dist/registries/verbosityBudgetContract.js.map +1 -0
  93. package/dist/state/decisionLegacyValidation.js +185 -0
  94. package/dist/state/decisionLegacyValidation.js.map +1 -0
  95. package/dist/state/decisionOverlay.js +24 -1
  96. package/dist/state/decisionOverlay.js.map +1 -1
  97. package/dist/state/decisionRevision.js +622 -0
  98. package/dist/state/decisionRevision.js.map +1 -0
  99. package/dist/state/decisionRevisionPublication.js +532 -0
  100. package/dist/state/decisionRevisionPublication.js.map +1 -0
  101. package/dist/state/directRetrieval.js +55 -4
  102. package/dist/state/directRetrieval.js.map +1 -1
  103. package/dist/state/listRetrieval.js +42 -11
  104. package/dist/state/listRetrieval.js.map +1 -1
  105. package/dist/state/startupAnalysis/benchmark.js +70 -8
  106. package/dist/state/startupAnalysis/benchmark.js.map +1 -1
  107. package/dist/state/startupAnalysis/threshold.js +13 -0
  108. package/dist/state/startupAnalysis/threshold.js.map +1 -1
  109. package/dist/state/startupProjection.js +68 -1
  110. package/dist/state/startupProjection.js.map +1 -1
  111. package/dist/state/write/candidateMutation.js +331 -0
  112. package/dist/state/write/candidateMutation.js.map +1 -0
  113. package/dist/state/write/explain.js +36 -12
  114. package/dist/state/write/explain.js.map +1 -1
  115. package/dist/state/write/helpers.js +22 -0
  116. package/dist/state/write/helpers.js.map +1 -1
  117. package/dist/state/write/mutation.js +42 -0
  118. package/dist/state/write/mutation.js.map +1 -1
  119. package/dist/state/write/operations.js +49 -1
  120. package/dist/state/write/operations.js.map +1 -1
  121. package/dist/state/write/transaction.js +23 -357
  122. package/dist/state/write/transaction.js.map +1 -1
  123. package/dist/validate/lifecycleAdapters/lifecycleMain.js +154 -0
  124. package/dist/validate/lifecycleAdapters/lifecycleMain.js.map +1 -0
  125. package/dist/validate/lifecycleAdapters.js +5 -156
  126. package/dist/validate/lifecycleAdapters.js.map +1 -1
  127. package/dist/validate/selfAudit.js +38 -43
  128. package/dist/validate/selfAudit.js.map +1 -1
  129. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionRevision.js","sourceRoot":"","sources":["../../src/state/decisionRevision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,532 @@
1
+ /**
2
+ * Task 3: publish record-local amendments with recovery.
3
+ *
4
+ * The amendment publishes ONLY the revision document
5
+ * (`.agentera/revisions/decisions.yaml`), by replacing one stable-ID entry's
6
+ * bytes in place (record-local replacement) and leaving every other entry's
7
+ * bytes, comments, quoting, block scalars, and provenance untouched. The
8
+ * decisions projection (`.agentera/decisions.yaml`) is never rewritten by an
9
+ * amendment: reads already compose base→revisions→overlay (Task 2), so the
10
+ * immutable base record stays byte-stable and the composed read stays the
11
+ * single source of effective detail — the projection representation "agrees"
12
+ * via composition rather than via a redundant rewrite.
13
+ *
14
+ * A safe target-only change is proven before any side effect: the override
15
+ * bytes are spliced into a candidate, the candidate is re-parsed, every other
16
+ * stable ID's canonical value must be unchanged, and the target's value must
17
+ * equal the appended revision list. When the document cannot be safely
18
+ * byte-isolated (malformed, ambiguous boundaries, non-mapping root), apply
19
+ * refuses without side effects rather than reserialize the whole document.
20
+ *
21
+ * Split out of `decisionRevision.ts` so each module stays under the monolith
22
+ * lint gate. The publication primitives (build, find, project, publish) are
23
+ * exported from here; `decisionRevision.ts` re-exports them for callers that
24
+ * still import from the historical entry point.
25
+ */
26
+ import fs from "node:fs";
27
+ import { parseDocument } from "yaml";
28
+ import { dumpYamlMapping, loadYamlMapping } from "../core/yaml.js";
29
+ import { resolveSourceRoot } from "../core/sourceRoot.js";
30
+ import { canonicalRecordJson } from "./archiveDiscovery.js";
31
+ import { decisionRevisionContract, decisionRevisionPath, decisionRevisionViolations, legacyFullProjectionFor, loadDecisionRevision, prepareDecisionAmendment, sha256, } from "./decisionRevision.js";
32
+ import { localDate } from "./write/assign.js";
33
+ import { reject } from "./write/errors.js";
34
+ import { withStateMutation, } from "./write/mutation.js";
35
+ import { decisionLegacyCoexistence, legacyConfidenceCaveat, } from "./decisionLegacyValidation.js";
36
+ const AMEND_RECOVERY_SYNTAX = "agentera state decisions amend --number N [--question ... --choice ... --reasoning ... --confidence firm ...] [--dry-run] --format json";
37
+ const AMEND_RECOVERY_EXAMPLE = 'agentera state decisions amend --number 53 --choice "..." --reasoning "..." --confidence firm --dry-run --format json';
38
+ /**
39
+ * Build the revision record an amendment publishes. It carries only the
40
+ * authority-declared amendable content paths the caller requested, plus
41
+ * revision provenance (`date`, `provenance`, `base_sha256`). Identity and
42
+ * temporal paths are never amended; the base hash ties the revision to the
43
+ * immutable base it was composed against. `degraded_projection` provenance is
44
+ * preserved when the base was bootstrapped from a complete legacy projection
45
+ * record (never promoted to historical_archive).
46
+ */
47
+ export function buildPublishedRevisionRecord(preparation, options = {}) {
48
+ const record = {
49
+ date: options.date ?? localDate(),
50
+ provenance: preparation.base.provenance === "degraded_projection" ? "degraded_projection" : "historical_revision",
51
+ base_sha256: preparation.base.sha256,
52
+ };
53
+ for (const field of preparation.provenance.amended_fields) {
54
+ record[field] = structuredClone(preparation.requested[field]);
55
+ }
56
+ return { record, identity: sha256(record) };
57
+ }
58
+ /**
59
+ * Find an identical revision already published for a stable ID. Identity is the
60
+ * canonical content of the full revision record (amendable fields + meta);
61
+ * byte-stable per the authority immutability rule, so an identical re-submission
62
+ * resolves as an idempotent replay.
63
+ */
64
+ export function findPublishedRevision(revisions, identity) {
65
+ for (let index = 0; index < revisions.length; index += 1) {
66
+ if (sha256(revisions[index]) === identity) {
67
+ return { index, revision: revisions[index] };
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+ /**
73
+ * A revision sharing the publication slot (same `date` + `base_sha256`) but
74
+ * carrying different amendable content is a duplicate-revision conflict: the
75
+ * ordering between them is ambiguous and neither may silently win.
76
+ */
77
+ export function findConflictingRevision(revisions, candidate) {
78
+ for (let index = 0; index < revisions.length; index += 1) {
79
+ const existing = revisions[index];
80
+ if (sha256(existing) === sha256(candidate))
81
+ continue; // identical -> replay
82
+ if (typeof existing.date === "string" &&
83
+ typeof candidate.date === "string" &&
84
+ existing.date === candidate.date &&
85
+ existing.base_sha256 === candidate.base_sha256) {
86
+ return { index, revision: existing };
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ /** Coerce a CST list item into a plain revision record (its JSON value). */
92
+ function toRevisionRecord(node) {
93
+ if (!node)
94
+ return {};
95
+ if (typeof node.toJSON === "function") {
96
+ return node.toJSON();
97
+ }
98
+ return structuredClone(node);
99
+ }
100
+ /**
101
+ * Project the new revision-list bytes for one stable ID by splicing the
102
+ * target entry into the existing document bytes, preserving every other
103
+ * entry byte-for-byte. The returned `bytes` are validated by an unchanged-byte
104
+ * proof (re-parse + canonical comparison of every other stable ID) before the
105
+ * caller stages them.
106
+ *
107
+ * When the existing document is absent the override becomes the whole
108
+ * document. When the target ID is absent the override entry is appended. When
109
+ * the target ID is present its key+value byte range is replaced wholesale with
110
+ * a freshly-serialized entry. Any failure to safely isolate the byte boundary
111
+ * (malformed document, non-mapping root, ambiguous identity) returns
112
+ * `{ safe: false }` so the caller refuses without side effects.
113
+ */
114
+ export function projectRevisionOverride(documentBytes, stableId, nextRevisions, contract = decisionRevisionContract(resolveSourceRoot())) {
115
+ const entryBytes = dumpYamlMapping({ [stableId]: nextRevisions });
116
+ if (documentBytes.length === 0) {
117
+ return {
118
+ safe: true,
119
+ bytes: entryBytes,
120
+ existing: false,
121
+ before: [],
122
+ after: structuredClone(nextRevisions),
123
+ };
124
+ }
125
+ let parsedDoc;
126
+ try {
127
+ parsedDoc = parseDocument(documentBytes);
128
+ }
129
+ catch (error) {
130
+ return { safe: false, reason: `cannot parse decision revision document: ${error.message}` };
131
+ }
132
+ const root = parsedDoc.contents;
133
+ if (!root || !Array.isArray(root.items)) {
134
+ return { safe: false, reason: "decision revision document root must be a mapping keyed by stable decision ID" };
135
+ }
136
+ let before = [];
137
+ let spliceStart;
138
+ let spliceEnd;
139
+ let existing = false;
140
+ const items = root.items;
141
+ const target = items.find((pair) => pair.key && pair.key.value === stableId);
142
+ if (target) {
143
+ existing = true;
144
+ const keyRange = target.key?.range;
145
+ const valueRange = target.value?.range;
146
+ if (!keyRange || !valueRange) {
147
+ return { safe: false, reason: `decision revision entry '${stableId}' has no isolatable byte range` };
148
+ }
149
+ spliceStart = keyRange[0];
150
+ spliceEnd = valueRange[1];
151
+ const valueNode = target.value;
152
+ if (!valueNode || !Array.isArray(valueNode.items)) {
153
+ return { safe: false, reason: `decision revision entry '${stableId}' must be an ordered list` };
154
+ }
155
+ before = valueNode.items.map((item) => structuredClone(toRevisionRecord(item)));
156
+ }
157
+ else {
158
+ // Append the new entry after the last byte of the document.
159
+ spliceStart = documentBytes.length;
160
+ spliceEnd = documentBytes.length;
161
+ const needsNewline = documentBytes.length > 0 && !documentBytes.endsWith("\n");
162
+ const candidate = `${needsNewline ? "\n" : ""}${entryBytes}`;
163
+ return {
164
+ safe: true,
165
+ bytes: documentBytes.slice(0, spliceStart) + candidate,
166
+ existing: false,
167
+ before: [],
168
+ after: structuredClone(nextRevisions),
169
+ };
170
+ }
171
+ const candidate = documentBytes.slice(0, spliceStart) + entryBytes + documentBytes.slice(spliceEnd);
172
+ // Unchanged-byte proof: re-parse the candidate and verify every other stable
173
+ // ID's canonical value is identical to the original document's.
174
+ let candidateMapping;
175
+ try {
176
+ candidateMapping = loadYamlMapping(candidate);
177
+ }
178
+ catch (error) {
179
+ return { safe: false, reason: `record-local splice produced an unparseable document: ${error.message}` };
180
+ }
181
+ const originalMapping = loadYamlMapping(documentBytes);
182
+ for (const [id, value] of Object.entries(originalMapping)) {
183
+ if (id === stableId)
184
+ continue;
185
+ const candidateValue = candidateMapping[id];
186
+ if (canonicalRecordJson(candidateValue) !== canonicalRecordJson(value)) {
187
+ return {
188
+ safe: false,
189
+ reason: `record-local splice would alter unrelated revision entry '${id}'; refusing without side effects`,
190
+ };
191
+ }
192
+ }
193
+ const violations = decisionRevisionViolations(candidateMapping, contract);
194
+ if (violations.length > 0) {
195
+ return { safe: false, reason: `record-local splice produced an invalid revision document: ${violations.join("; ")}` };
196
+ }
197
+ const targetValue = candidateMapping[stableId];
198
+ if (!Array.isArray(targetValue) || canonicalRecordJson(targetValue) !== canonicalRecordJson(nextRevisions)) {
199
+ return { safe: false, reason: `record-local splice did not place the appended revision under '${stableId}'` };
200
+ }
201
+ return {
202
+ safe: true,
203
+ bytes: candidate,
204
+ existing,
205
+ before: before,
206
+ after: structuredClone(nextRevisions),
207
+ };
208
+ }
209
+ function readRevisionDocumentBytes(revisionPath) {
210
+ if (!fs.existsSync(revisionPath))
211
+ return "";
212
+ return fs.readFileSync(revisionPath, "utf8");
213
+ }
214
+ function diffRevisionDocuments(before, after, label) {
215
+ if (before === after)
216
+ return "";
217
+ const beforeLines = before.length === 0 ? [] : before.split(/\n/);
218
+ const afterLines = after.split(/\n/);
219
+ const lines = [`--- ${label} (before)`, `+++ ${label} (after)`];
220
+ let i = 0;
221
+ let j = 0;
222
+ while (i < beforeLines.length || j < afterLines.length) {
223
+ if (i < beforeLines.length && j < afterLines.length && beforeLines[i] === afterLines[j]) {
224
+ lines.push(` ${beforeLines[i]}`);
225
+ i += 1;
226
+ j += 1;
227
+ }
228
+ else if (j < afterLines.length) {
229
+ lines.push(`+${afterLines[j]}`);
230
+ j += 1;
231
+ }
232
+ else {
233
+ lines.push(`-${beforeLines[i]}`);
234
+ i += 1;
235
+ }
236
+ }
237
+ return lines.join("\n");
238
+ }
239
+ /**
240
+ * Publish a record-local decision amendment with recovery. Re-prepares the
241
+ * target inside the writer lock so a retry re-derives the same canonical
242
+ * revision identity; an identical re-submission is an idempotent replay that
243
+ * touches no file. Staging, revision publication, directory synchronization,
244
+ * and projection-consistency are distinct failure boundaries: an interruption
245
+ * at any boundary converges on retry without duplicates or mixed state.
246
+ *
247
+ * `transaction` is required for a real apply; omit it (or pass `dryRun`) for a
248
+ * side-effect-free projection of the revision, effective record, and
249
+ * projection effect. Calling with `dryRun: false` and no `transaction` is a
250
+ * caller error and refuses before any side effect.
251
+ */
252
+ export function publishDecisionAmendment(projectRoot, preparation, options) {
253
+ const sourceRoot = options.sourceRoot ?? resolveSourceRoot();
254
+ const contract = decisionRevisionContract(sourceRoot);
255
+ const { record: revision, identity } = buildPublishedRevisionRecord(preparation, { date: options.date });
256
+ const stableId = `${contract.identityPrefix}:${preparation.number}`;
257
+ const revisionPath = decisionRevisionPath(projectRoot, sourceRoot);
258
+ const existingBytes = readRevisionDocumentBytes(revisionPath);
259
+ let existingDocument = {};
260
+ if (existingBytes.length > 0) {
261
+ try {
262
+ existingDocument = loadDecisionRevision(projectRoot, sourceRoot);
263
+ }
264
+ catch (error) {
265
+ reject({
266
+ class: "conflict",
267
+ message: `decision ${preparation.number} amendment cannot proceed: the revision document is broken: ${error.message}`,
268
+ syntax: AMEND_RECOVERY_SYNTAX,
269
+ example: AMEND_RECOVERY_EXAMPLE,
270
+ recovery: "Preserve the revision document for diagnostics, repair its YAML and amendable content paths, then retry the amend.",
271
+ });
272
+ }
273
+ }
274
+ const existingRevisions = existingDocument[stableId] ?? [];
275
+ // Idempotent replay: the exact revision is already published.
276
+ const replayMatch = findPublishedRevision(existingRevisions, identity);
277
+ if (replayMatch) {
278
+ return {
279
+ number: preparation.number,
280
+ revision,
281
+ revision_identity: identity,
282
+ revision_path: revisionPath,
283
+ effective: structuredClone(preparation.effective),
284
+ replay: true,
285
+ published: false,
286
+ projection_effect: projectionEffectFor(preparation, projectRoot, sourceRoot, existingBytes.length === 0 ? revisionPath : revisionPath),
287
+ provenance: preparation.provenance,
288
+ dry_run: options.dryRun,
289
+ ...(options.dryRun
290
+ ? {
291
+ diff: "",
292
+ before: structuredClone(existingDocument),
293
+ after: structuredClone(existingDocument),
294
+ }
295
+ : {}),
296
+ };
297
+ }
298
+ // Duplicate-revision conflict: same slot (date + base_sha256), different content.
299
+ const conflict = findConflictingRevision(existingRevisions, revision);
300
+ if (conflict) {
301
+ reject({
302
+ class: "conflict",
303
+ message: `decision ${preparation.number} already has a revision for ${revision.date} against the same base with different content; the ordering between them is ambiguous`,
304
+ syntax: AMEND_RECOVERY_SYNTAX,
305
+ example: AMEND_RECOVERY_EXAMPLE,
306
+ recovery: `Preserve the published revisions, reconcile which amendment for ${revision.date} is authoritative, then retry with a distinct date or after removing the conflicting revision; no files were changed.`,
307
+ });
308
+ }
309
+ const nextRevisions = [...existingRevisions, structuredClone(revision)];
310
+ const projection = projectRevisionOverride(existingBytes, stableId, nextRevisions, contract);
311
+ if (!projection.safe) {
312
+ reject({
313
+ class: "conflict",
314
+ message: `decision ${preparation.number} amendment cannot be applied with a safe record-local byte boundary: ${projection.reason}`,
315
+ syntax: AMEND_RECOVERY_SYNTAX,
316
+ example: AMEND_RECOVERY_EXAMPLE,
317
+ recovery: "Preserve the revision document for diagnostics, repair its structure (mapping of stable ID → ordered revision list), then retry; no unrelated bytes are reserialized and no files were changed.",
318
+ });
319
+ }
320
+ if (options.dryRun) {
321
+ return {
322
+ number: preparation.number,
323
+ revision,
324
+ revision_identity: identity,
325
+ revision_path: revisionPath,
326
+ effective: structuredClone(preparation.effective),
327
+ replay: false,
328
+ published: false,
329
+ projection_effect: projectionEffectFor(preparation, projectRoot, sourceRoot, revisionPath),
330
+ provenance: preparation.provenance,
331
+ dry_run: true,
332
+ diff: diffRevisionDocuments(existingBytes, projection.bytes, revisionPath),
333
+ before: structuredClone(existingDocument),
334
+ after: structuredClone(loadYamlMapping(projection.bytes)),
335
+ };
336
+ }
337
+ if (!options.transaction) {
338
+ reject({
339
+ class: "invalid_request",
340
+ message: `decision ${preparation.number} amend apply requires a state mutation transaction; a dry-run does not require one`,
341
+ syntax: AMEND_RECOVERY_SYNTAX,
342
+ example: AMEND_RECOVERY_EXAMPLE,
343
+ recovery: "Pass a StateMutationTransaction (the state writer does this for an apply); use --dry-run for a side-effect-free projection.",
344
+ });
345
+ }
346
+ const transaction = options.transaction;
347
+ transaction.publishRevisionDocument(revisionPath, projection.bytes, existingBytes.length === 0 ? undefined : existingBytes);
348
+ // After the immutable revision evidence is durable, verify the decisions
349
+ // projection base still agrees with the base_sha256 recorded on the revision.
350
+ // A concurrent projection change or stale base hash is caught here; the
351
+ // published revision is truthful evidence, the decisions projection bytes are
352
+ // preserved, and the caller receives an actionable retry/repair action.
353
+ verifyProjectionConsistency(preparation, projectRoot, sourceRoot);
354
+ transaction.revisionConsistencyCheckpoint();
355
+ return {
356
+ number: preparation.number,
357
+ revision,
358
+ revision_identity: identity,
359
+ revision_path: revisionPath,
360
+ effective: structuredClone(preparation.effective),
361
+ replay: false,
362
+ published: true,
363
+ projection_effect: projectionEffectFor(preparation, projectRoot, sourceRoot, revisionPath),
364
+ provenance: preparation.provenance,
365
+ dry_run: false,
366
+ diff: diffRevisionDocuments(existingBytes, projection.bytes, revisionPath),
367
+ before: structuredClone(existingDocument),
368
+ after: structuredClone(loadYamlMapping(projection.bytes)),
369
+ };
370
+ }
371
+ function projectionEffectFor(preparation, projectRoot, sourceRoot, revisionPath) {
372
+ return {
373
+ path: preparation.provenance.current_projection.path,
374
+ representation: preparation.provenance.current_projection.representation,
375
+ rewritten: false,
376
+ reason: "amendment publishes immutable revision evidence; the decisions projection stays byte-stable and reads compose base→revisions→overlay",
377
+ base_sha256: preparation.base.sha256,
378
+ ...(revisionPath ? {} : {}),
379
+ };
380
+ }
381
+ /**
382
+ * Re-read the decisions projection base for the amended decision and verify its
383
+ * canonical hash still matches the `base_sha256` recorded on the published
384
+ * revision. A mismatch means the projection drifted after preparation (a
385
+ * concurrent change or a stale base); the amendment refuses to claim success
386
+ * and surfaces an actionable retry/repair action while preserving all bytes.
387
+ */
388
+ function verifyProjectionConsistency(preparation, projectRoot, sourceRoot) {
389
+ const number = preparation.number;
390
+ const projectionPath = preparation.provenance.current_projection.path;
391
+ if (preparation.base.source === "archive") {
392
+ // An immutable numbered archive base cannot drift within a writer lock.
393
+ return;
394
+ }
395
+ // degraded_projection base: re-read the legacy full projection record.
396
+ const projection = legacyFullProjectionFor(projectRoot, number, projectionPath, sourceRoot);
397
+ if (projection.kind !== "full") {
398
+ reject({
399
+ class: "conflict",
400
+ message: `decision ${number} projection changed before the amendment completed; the hash-verified base is no longer recoverable`,
401
+ syntax: AMEND_RECOVERY_SYNTAX,
402
+ example: AMEND_RECOVERY_EXAMPLE,
403
+ recovery: "Preserve the published revision and the projection bytes, reconcile the base drift, then retry the amend.",
404
+ });
405
+ }
406
+ const currentHash = sha256(projection.record);
407
+ if (currentHash !== preparation.base.sha256) {
408
+ reject({
409
+ class: "conflict",
410
+ message: `decision ${number} projection base changed before the amendment completed; the revision was published against a stale base hash`,
411
+ syntax: AMEND_RECOVERY_SYNTAX,
412
+ example: AMEND_RECOVERY_EXAMPLE,
413
+ recovery: "Preserve the published revision and the projection bytes, reconcile the base drift (the published revision carries the original base_sha256), then retry the amend.",
414
+ });
415
+ }
416
+ }
417
+ /* ===========================================================================
418
+ * Writer bridge: shape the typed state-writer request into the amendment
419
+ * publication call and report the result as a StateWriteEnvelope. The envelope
420
+ * carries the published revision, the composed effective record, the projection
421
+ * effect, and the revision identity (for stable idempotent-replay detection).
422
+ * ========================================================================= */
423
+ function mapping(value) {
424
+ return value && typeof value === "object" && !Array.isArray(value)
425
+ ? value
426
+ : {};
427
+ }
428
+ function buildAmendmentRequested(values) {
429
+ const requested = {};
430
+ const alternatives = mapping(values.alternatives);
431
+ const rejected = Array.isArray(alternatives.rejected) ? alternatives.rejected : [];
432
+ const hasAlternatives = alternatives.chosen !== undefined || rejected.length > 0;
433
+ if (hasAlternatives) {
434
+ requested.alternatives = [
435
+ ...(alternatives.chosen !== undefined
436
+ ? [{ name: alternatives.chosen, status: "chosen" }]
437
+ : []),
438
+ ...rejected.map((name) => ({ name, status: "rejected" })),
439
+ ];
440
+ }
441
+ for (const field of ["question", "context", "choice", "reasoning", "confidence", "feeds_into"]) {
442
+ if (values[field] !== undefined)
443
+ requested[field] = values[field];
444
+ }
445
+ return requested;
446
+ }
447
+ /**
448
+ * Publish (or dry-run) a record-local decision-content amendment. Re-prepares
449
+ * the target inside the writer lock so a retry re-derives the same canonical
450
+ * revision identity; the state writer remains the sole authority over the
451
+ * revision document. Returns the published revision, effective record, and
452
+ * projection effect; the decisions projection bytes are never rewritten.
453
+ */
454
+ function executeDecisionAmendment(req, transaction) {
455
+ const number = Number(req.values.number);
456
+ if (!Number.isSafeInteger(number) || number < 1) {
457
+ reject({
458
+ class: "invalid_request",
459
+ message: `decision amend requires a positive decision number; received ${req.values.number ?? ""}`,
460
+ syntax: "agentera state decisions amend --number N [--question ... --confidence firm ...] [--dry-run] --format json",
461
+ example: 'agentera state decisions amend --number 53 --choice "..." --reasoning "..." --confidence firm --dry-run --format json',
462
+ });
463
+ }
464
+ const requested = buildAmendmentRequested(req.values);
465
+ const preparation = prepareDecisionAmendment(req.projectRoot, number, requested, {
466
+ sourceRoot: resolveSourceRoot(),
467
+ });
468
+ const publication = publishDecisionAmendment(req.projectRoot, preparation, {
469
+ transaction,
470
+ dryRun: req.dryRun,
471
+ });
472
+ // Amendment never rewrites the projection, so an untouched inherited legacy
473
+ // confidence label on the base survives byte-stable in the composed read.
474
+ // Surface it as a truthful compatibility caveat when the amendment did not
475
+ // amend confidence. A confidence the caller amended is current vocabulary
476
+ // (enforced at preparation) and produces no caveat.
477
+ const confidenceTouched = preparation.provenance.amended_fields.includes("confidence");
478
+ const amendCaveat = legacyConfidenceCaveat(preparation.effective, decisionLegacyCoexistence(resolveSourceRoot()), confidenceTouched, preparation.provenance.base === "historical_archive" ? "archive" : "active");
479
+ const result = {
480
+ schemaVersion: "agentera.stateWrite.v1",
481
+ command: "state decisions amend",
482
+ status: "pass",
483
+ artifact: req.artifact,
484
+ path: publication.revision_path,
485
+ operation: {
486
+ verb: "amend",
487
+ dry_run: publication.dry_run,
488
+ idempotent_replay: publication.replay,
489
+ forced: req.force,
490
+ },
491
+ assigned: { number: publication.number },
492
+ written: {
493
+ ...structuredClone(publication.revision),
494
+ revision_identity: publication.revision_identity,
495
+ },
496
+ state: {
497
+ revision_document: publication.revision_path,
498
+ revision_count: publication.after ? Object.keys(publication.after).length : 0,
499
+ },
500
+ validation: { status: "pass", violations: [] },
501
+ ...(amendCaveat ? { compatibility: { legacy_caveats: [amendCaveat] } } : {}),
502
+ compaction: null,
503
+ amendment: {
504
+ number: publication.number,
505
+ revision: structuredClone(publication.revision),
506
+ revision_identity: publication.revision_identity,
507
+ effective: publication.effective,
508
+ published: publication.published,
509
+ provenance: publication.provenance,
510
+ projection_effect: publication.projection_effect,
511
+ },
512
+ };
513
+ if (publication.diff !== undefined) {
514
+ result.diff = publication.diff;
515
+ result.before = (publication.before ?? {});
516
+ result.after = (publication.after ?? {});
517
+ }
518
+ return result;
519
+ }
520
+ /**
521
+ * Dispatch an amend request through the typed state writer. Dry-run bypasses
522
+ * the writer lock; a real apply stages, publishes the immutable revision
523
+ * evidence, fsyncs the directory, and runs the projection-consistency
524
+ * checkpoint inside a single StateMutationTransaction. Each interruption
525
+ * boundary converges on retry with a stable revision identity.
526
+ */
527
+ export function dispatchDecisionAmendment(req, options = {}) {
528
+ if (req.dryRun)
529
+ return executeDecisionAmendment(req);
530
+ return withStateMutation(req.projectRoot, (transaction) => executeDecisionAmendment(req, transaction), options);
531
+ }
532
+ //# sourceMappingURL=decisionRevisionPublication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionRevisionPublication.js","sourceRoot":"","sources":["../../src/state/decisionRevisionPublication.ts"],"names":[],"mappings":"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"}