agentera 3.0.0-dev.38 → 3.0.0-dev.39
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/bundle/CHANGELOG.md +29 -4
- package/bundle/references/artifacts/state-storage-authority.yaml +118 -77
- package/bundle/references/cli/agent-ready-state-contract.yaml +84 -2
- package/bundle/skills/agentera/SKILL.md +26 -26
- package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +5 -4
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +17 -3
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +14 -3
- package/dist/capabilities/build/instructions.js +27 -2
- package/dist/capabilities/build/instructions.js.map +1 -1
- package/dist/capabilities/orchestrate/instructions.js +1 -1
- package/dist/cli/capabilityContext/bespoke.js +4 -3
- package/dist/cli/capabilityContext/bespoke.js.map +1 -1
- package/dist/cli/capabilityContext/build.js +77 -24
- package/dist/cli/capabilityContext/build.js.map +1 -1
- package/dist/cli/capabilityContext/closeout.js +2 -2
- package/dist/cli/capabilityContext/closeout.js.map +1 -1
- package/dist/cli/capabilityContext/evidence.js +2 -6
- package/dist/cli/capabilityContext/evidence.js.map +1 -1
- package/dist/cli/capabilityContext/planState.js +59 -78
- package/dist/cli/capabilityContext/planState.js.map +1 -1
- package/dist/cli/capabilityContext/projectVerification.js +410 -0
- package/dist/cli/capabilityContext/projectVerification.js.map +1 -0
- package/dist/cli/capabilityContext/startup.js +2 -2
- package/dist/cli/capabilityContext/startup.js.map +1 -1
- package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
- package/dist/cli/commands/prime/buildExecutionRequest.js.map +1 -0
- package/dist/cli/commands/prime/collectEntityOrientation.js +2 -1
- package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
- package/dist/cli/commands/prime/collectOrientationState.js +3 -1
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
- package/dist/cli/commands/prime.js +37 -2
- package/dist/cli/commands/prime.js.map +1 -1
- package/dist/cli/commands/query.js +4 -0
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/dispatch/prime.js +22 -1
- package/dist/cli/dispatch/prime.js.map +1 -1
- package/dist/cli/dispatch/shared.js +1 -1
- package/dist/cli/dispatch/shared.js.map +1 -1
- package/dist/cli/help.js +2 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/orientation.js +2 -2
- package/dist/cli/orientation.js.map +1 -1
- package/dist/registries/glossaryCaveatContract.js +3 -1
- package/dist/registries/glossaryCaveatContract.js.map +1 -1
- package/dist/state/changelog.js +222 -0
- package/dist/state/changelog.js.map +1 -0
- package/dist/state/decisionEntities.js +16 -9
- package/dist/state/decisionEntities.js.map +1 -1
- package/dist/state/decisionMigrationProvenance.js +84 -1
- package/dist/state/decisionMigrationProvenance.js.map +1 -1
- package/dist/state/decisionOverlay.js +9 -32
- package/dist/state/decisionOverlay.js.map +1 -1
- package/dist/state/decisionRevision.js +69 -444
- package/dist/state/decisionRevision.js.map +1 -1
- package/dist/state/decisionRevisionMigration.js +90 -0
- package/dist/state/decisionRevisionMigration.js.map +1 -0
- package/dist/state/directRetrieval.js +3 -52
- package/dist/state/directRetrieval.js.map +1 -1
- package/dist/state/entityCutover.js +6 -6
- package/dist/state/entityCutover.js.map +1 -1
- package/dist/state/entityGlossaryAuthority.js +14 -0
- package/dist/state/entityGlossaryAuthority.js.map +1 -0
- package/dist/state/entityMigrationIdentity.js +6 -0
- package/dist/state/entityMigrationIdentity.js.map +1 -0
- package/dist/state/entityMigrationPreview.js +14 -23
- package/dist/state/entityMigrationPreview.js.map +1 -1
- package/dist/state/entityStorage.js +20 -19
- package/dist/state/entityStorage.js.map +1 -1
- package/dist/state/healthEntities.js +2 -4
- package/dist/state/healthEntities.js.map +1 -1
- package/dist/state/listRetrieval.js +7 -38
- package/dist/state/listRetrieval.js.map +1 -1
- package/dist/state/migrationSourceBinding.js +1 -1
- package/dist/state/migrationSourceBinding.js.map +1 -1
- package/dist/state/objectiveExperimentEntities.js +3 -3
- package/dist/state/objectiveExperimentEntities.js.map +1 -1
- package/dist/state/planEntities.js +40 -7
- package/dist/state/planEntities.js.map +1 -1
- package/dist/state/progressEntities.js +2 -4
- package/dist/state/progressEntities.js.map +1 -1
- package/dist/state/safeProjectFile.js +4 -1
- package/dist/state/safeProjectFile.js.map +1 -1
- package/dist/state/startupProjection.js +2 -70
- package/dist/state/startupProjection.js.map +1 -1
- package/dist/state/stateStorageAuthority.js +48 -0
- package/dist/state/stateStorageAuthority.js.map +1 -0
- package/dist/state/summarySourceRowAuthority.js +1 -1
- package/dist/state/summarySourceRowAuthority.js.map +1 -1
- package/dist/state/todoDocsEntities.js +2 -3
- package/dist/state/todoDocsEntities.js.map +1 -1
- package/dist/state/write/explain.js +38 -59
- package/dist/state/write/explain.js.map +1 -1
- package/dist/state/write/operations.js +2 -26
- package/dist/state/write/operations.js.map +1 -1
- package/dist/state/write/transaction.js +3 -3
- package/dist/state/write/transaction.js.map +1 -1
- package/dist/upgrade/upgradeOrchestrator.js +15 -10
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
- package/package.json +2 -2
- package/dist/state/decisionRevisionPublication.js +0 -532
- package/dist/state/decisionRevisionPublication.js.map +0 -1
package/bundle/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
### Changed
|
|
6
6
|
|
|
7
|
+
- `agentera prime` now selects Build and Audit work from the complete plan task
|
|
8
|
+
graph, prioritizes in-progress work before dependency-ready pending tasks, and
|
|
9
|
+
keeps status recommendations aligned when the public task list is bounded.
|
|
7
10
|
- Status now selects TODO recommendations from complete typed readiness state
|
|
8
11
|
before applying startup bounds, preserves the selected TODO ID and exact
|
|
9
12
|
retrieval command across JSON, terminal, and host projections, and abstains
|
|
@@ -61,9 +64,9 @@
|
|
|
61
64
|
- Added a validated TODO readiness authority with phase-derived capability
|
|
62
65
|
destinations, explicit triage/block/gate/dependency outcomes, and
|
|
63
66
|
reviewer-assigned deterministic queue ordering.
|
|
64
|
-
- Added
|
|
65
|
-
- Added a Git-backed entity cutover owned by the full development-channel `upgrade --yes` command, with deterministic direct publication, exact-target retries, marker-last authority activation, and first-unresolved-path handoff.
|
|
66
|
-
- Added
|
|
67
|
+
- Added entity-backed state views, bare-ID durability diagnostics, and read-only historical migration validation; marker-absent projects now require migration instead of exposing legacy numbered reads.
|
|
68
|
+
- Added a Git-backed entity cutover owned by the full development-channel `upgrade --yes` command, with deterministic direct publication, exact-target retries, source-bound marker-last authority activation, and first-unresolved-path handoff.
|
|
69
|
+
- Added decision entities for immutable bases and content revisions, replaceable satisfaction ownership, bare-ID exact and bounded reads, deterministic effective provenance, stale-base and transition validation, and serialized same-decision ownership. Migration preserves ordered legacy amendments, including whole-alternative replacements and dateless evidence, rejects invalid or stale claims, and requires source-bound provenance for inherited legacy confidence; marker-absent aggregate files remain migration input only.
|
|
67
70
|
- Added the post-cutover progress entity writer and `state progress get|list` reads with bare IDs, one canonical file per cycle, atomic replay-safe publication, full provenance, bounded snapshot pagination, and no legacy projection or archive writes; legacy projects remain unchanged until the durable cutover marker exists.
|
|
68
71
|
- Added authority-driven, one-file-per-entity storage primitives with secure project-wide IDs, symlink-safe discovery, conflict-safe publication, relationship validation, and `agentera check validate state` diagnostics.
|
|
69
72
|
- Added an authoritative evidence-tier contract (`references/analysis/evidence-tier-authority.yaml`) and contract-model loader (`packages/cli/src/registries/evidenceTierContract.ts`) fixing the bounded full-evidence and signal tiers, supported Codex, Cursor, OpenCode, Copilot, and historical Claude source coverage, the consumer field-supply map including the latent startup-analysis reader, bounded personal-glossary synthesis semantics, and deterministic recovery outcomes for oversized, legacy, missing, corrupt, and incomplete state.
|
|
@@ -78,7 +81,7 @@
|
|
|
78
81
|
- Added `agentera state plan list` and `agentera state plan get --plan PLAN_ID` for deterministic, cursor-paginated active and archived plan retrieval, full-plan exact reads, lifecycle provenance, and explicit legacy, invalid, missing, and ambiguous archive outcomes.
|
|
79
82
|
- Added persisted plan identity across active-to-archive transitions, deterministic read-only identity for legacy plans, explicit lifecycle provenance, mirrored-path reporting, and structured ambiguity failures for identity collisions.
|
|
80
83
|
- Added `agentera state plan tasks list` and `agentera state plan tasks get --task N` for bounded active-plan task retrieval with declared task-number order, opaque snapshot cursors, structured not-found and compatibility errors, and exact omission recovery in text and JSON plan output.
|
|
81
|
-
- Added `agentera state decisions amend --
|
|
84
|
+
- Added `agentera state decisions amend --id ID --base-sha256 HASH [--question ... --context ... --alternative-chosen ... --alternative-rejected ... --choice ... --reasoning ... --confidence firm|provisional|exploratory --feeds-into ...] [--dry-run] --format json`: validates and publishes one immutable decision revision entity. Effective reads compose the base, ordered revisions, and current satisfaction entity; stale-base and same-base conflicts fail before publication, and identical retries converge.
|
|
82
85
|
|
|
83
86
|
- Added an executable bounded-retrieval authority and reserved CLI grammar for plan tasks, plans, and objective-scoped experiments, including stable and legacy identity rules, experiment `0`, opaque cursors, explicit omissions, and structured compatibility errors; retrieval execution remains staged for subsequent tasks.
|
|
84
87
|
- Added one shared skill at `~/.agents/skills/agentera` plus the CLI and entity-backed project state as the active integration contract; host-native plugin, hook, agent, and package surfaces are not shipped.
|
|
@@ -121,6 +124,28 @@
|
|
|
121
124
|
|
|
122
125
|
### Fixed
|
|
123
126
|
|
|
127
|
+
- Fixed `agentera state query changelog`, Build Prime, and Document closeout to
|
|
128
|
+
use one bounded Keep-a-Changelog reader with matching headings, boundary,
|
|
129
|
+
provenance, and fail-safe recovery for missing, malformed, unsafe, ambiguous,
|
|
130
|
+
or oversized input.
|
|
131
|
+
- Fixed explicit-home upgrade planning to ignore inherited
|
|
132
|
+
`OPENCODE_CONFIG_DIR` values outside the selected home, preventing unrelated
|
|
133
|
+
OpenCode resources from blocking fixture, package, or isolated project
|
|
134
|
+
upgrades while retaining in-home overrides.
|
|
135
|
+
- Fixed `agentera prime --context build` to accept bounded, transient no-plan
|
|
136
|
+
scope and acceptance through `--input <file|->`, complete execution context
|
|
137
|
+
without creating plan state or returning non-advancing plan recovery, and
|
|
138
|
+
reject active-plan conflicts.
|
|
139
|
+
- Fixed `agentera prime --context build` to derive bounded verification commands
|
|
140
|
+
from `AGENTS.md` and package scripts, preserve exact provenance, canonicalize
|
|
141
|
+
aliases, and reject placeholders, conflicts, unsafe paths, missing targets,
|
|
142
|
+
and over-limit input.
|
|
143
|
+
- Fixed `agentera prime --context build` instructions to log TODO, progress,
|
|
144
|
+
changelog, and plan closeout before one commit, and to describe canonical
|
|
145
|
+
progress entity publication instead of numbered aggregate compaction.
|
|
146
|
+
- Fixed plan supersession and open-plan completion to require every replacement
|
|
147
|
+
task to be complete with latest persisted PASS evidence. Existing records
|
|
148
|
+
remain readable, and affected open plans retain the narrow first-PASS repair.
|
|
124
149
|
- Fixed same-minute progress recency to use persisted writer-owned publication
|
|
125
150
|
order instead of opaque IDs. List and `prime` now select the final committed
|
|
126
151
|
publication after restart or copy. Version 2 snapshot cursors preserve
|
|
@@ -19,8 +19,9 @@ authority:
|
|
|
19
19
|
plus one-way forward import, are implemented but activate entity authority only
|
|
20
20
|
from the durable cutover marker. The preserved
|
|
21
21
|
singleton families remain legacy files. The
|
|
22
|
-
|
|
23
|
-
that marker is absent; no independent legacy
|
|
22
|
+
numbered archives, aggregate overlays, and aggregate revision documents
|
|
23
|
+
remain migration input while that marker is absent; no independent legacy
|
|
24
|
+
read or repair mutation remains.
|
|
24
25
|
|
|
25
26
|
entity_target:
|
|
26
27
|
status: progress_decisions_health_plan_objective_experiment_todo_and_docs_implemented_other_families_declared
|
|
@@ -313,9 +314,25 @@ entity_target:
|
|
|
313
314
|
publication: immutable
|
|
314
315
|
ownership: { fields: [decision, base_sha256], cardinality: zero_or_one }
|
|
315
316
|
record:
|
|
316
|
-
required_fields: [decision,
|
|
317
|
+
required_fields: [decision, provenance, base_sha256, changes]
|
|
318
|
+
legacy_optional_fields: [date]
|
|
317
319
|
required_paths: []
|
|
318
320
|
forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number, satisfaction]
|
|
321
|
+
canonical_metadata:
|
|
322
|
+
migration_provenance:
|
|
323
|
+
applicability: inherited_unsupported_revision_confidence_only
|
|
324
|
+
required_fields: [kind, source, source_path, source_identity, source_fingerprint, source_record_sha256, confidence]
|
|
325
|
+
additional_fields: forbidden
|
|
326
|
+
kind: inherited_decision_revision_confidence
|
|
327
|
+
sources: [revision_document]
|
|
328
|
+
semantics: >-
|
|
329
|
+
Cutover persists this envelope-level metadata only when a legacy
|
|
330
|
+
aggregate revision carries high, medium, or low confidence and the
|
|
331
|
+
composed decision is otherwise valid. source_identity selects the
|
|
332
|
+
exact ordered row in .agentera/revisions/decisions.yaml,
|
|
333
|
+
source_fingerprint binds the deterministic canonical decision ID, and
|
|
334
|
+
source_record_sha256 binds that complete row. Ordinary decision
|
|
335
|
+
amendments accept only the current confidence vocabulary.
|
|
319
336
|
- boundary: health_audit
|
|
320
337
|
artifact: health
|
|
321
338
|
independently_mutable: true
|
|
@@ -761,7 +778,11 @@ entity_target:
|
|
|
761
778
|
repetitions: 5
|
|
762
779
|
pass_rule: every repetition stays within every applicable limit
|
|
763
780
|
elapsed: wall-clock milliseconds from process start through complete serialized output
|
|
764
|
-
heap: process heapUsed peak minus heapUsed before fixture discovery
|
|
781
|
+
heap: process heapUsed peak minus the normalized heapUsed baseline before fixture discovery
|
|
782
|
+
heap_baseline:
|
|
783
|
+
boundary: after CLI import reaches the fixture boundary and before the measured operation
|
|
784
|
+
normalization: await successful Node inspector HeapProfiler.collectGarbage, then read Runtime.getHeapUsage
|
|
785
|
+
measured_operation_collection: forbidden
|
|
765
786
|
bytes: UTF-8 byte length of stdout including the trailing newline
|
|
766
787
|
targets:
|
|
767
788
|
exact_get:
|
|
@@ -799,6 +820,8 @@ entity_migration:
|
|
|
799
820
|
entity_mode:
|
|
800
821
|
schemaVersion: agentera.stateMode.v1
|
|
801
822
|
mode: entities
|
|
823
|
+
source_fingerprint: lowercase_sha256_of_bound_migration_inputs
|
|
824
|
+
preview_digest: lowercase_sha256_of_bound_migration_preview
|
|
802
825
|
absent_mode: legacy
|
|
803
826
|
invalid_behavior: fail_without_fallback
|
|
804
827
|
detection: read_only
|
|
@@ -1300,33 +1323,33 @@ retrieval:
|
|
|
1300
1323
|
- collection_id: progress.records
|
|
1301
1324
|
artifact_id: progress
|
|
1302
1325
|
growth: append_only_unbounded
|
|
1303
|
-
identity:
|
|
1304
|
-
storage_ownership:
|
|
1305
|
-
ordering:
|
|
1326
|
+
identity: bare_ten_letter_entity_id
|
|
1327
|
+
storage_ownership: canonical_progress_entities
|
|
1328
|
+
ordering: timestamp_desc_then_publication_order_desc_then_id_asc
|
|
1306
1329
|
bounds: count_1_to_100_and_serialized_utf8_budget
|
|
1307
1330
|
cursor: opaque_snapshot_cursor
|
|
1308
1331
|
omission: explicit_with_advancing_cursor_or_exact_get
|
|
1309
|
-
get: agentera state progress get --
|
|
1332
|
+
get: agentera state progress get --id ID --format json
|
|
1310
1333
|
- collection_id: decisions.records
|
|
1311
1334
|
artifact_id: decisions
|
|
1312
|
-
growth:
|
|
1313
|
-
identity:
|
|
1314
|
-
storage_ownership:
|
|
1315
|
-
ordering:
|
|
1335
|
+
growth: immutable_base_and_revision_entities_with_replaceable_satisfaction_entity
|
|
1336
|
+
identity: bare_ten_letter_entity_id
|
|
1337
|
+
storage_ownership: canonical_decision_entities
|
|
1338
|
+
ordering: date_desc_then_id_asc
|
|
1316
1339
|
bounds: count_1_to_100_and_serialized_utf8_budget
|
|
1317
1340
|
cursor: opaque_snapshot_cursor
|
|
1318
1341
|
omission: explicit_with_advancing_cursor_or_exact_get
|
|
1319
|
-
get: agentera state decisions get --
|
|
1342
|
+
get: agentera state decisions get --id ID --format json
|
|
1320
1343
|
- collection_id: health.records
|
|
1321
1344
|
artifact_id: health
|
|
1322
1345
|
growth: append_only_unbounded
|
|
1323
|
-
identity:
|
|
1324
|
-
storage_ownership:
|
|
1325
|
-
ordering:
|
|
1346
|
+
identity: bare_ten_letter_entity_id
|
|
1347
|
+
storage_ownership: canonical_health_entities
|
|
1348
|
+
ordering: appended_at_desc_then_id_asc_then_legacy_date_desc_then_id_asc
|
|
1326
1349
|
bounds: count_1_to_100_and_serialized_utf8_budget
|
|
1327
1350
|
cursor: opaque_snapshot_cursor
|
|
1328
1351
|
omission: explicit_with_advancing_cursor_or_exact_get
|
|
1329
|
-
get: agentera state health get --
|
|
1352
|
+
get: agentera state health get --id ID --format json
|
|
1330
1353
|
- collection_id: plan.plans
|
|
1331
1354
|
artifact_id: plan
|
|
1332
1355
|
growth: one_active_plus_append_only_immutable_file_archives
|
|
@@ -1666,6 +1689,7 @@ identity:
|
|
|
1666
1689
|
not emitted on the current bounded page.
|
|
1667
1690
|
|
|
1668
1691
|
envelope:
|
|
1692
|
+
legacy_source_state: migration_input_only
|
|
1669
1693
|
schema_version: agentera.stateArchiveEntry.v1
|
|
1670
1694
|
required_fields:
|
|
1671
1695
|
- schemaVersion
|
|
@@ -1702,15 +1726,18 @@ envelope:
|
|
|
1702
1726
|
|
|
1703
1727
|
overlays:
|
|
1704
1728
|
location: .agentera/overlays/decisions.yaml
|
|
1729
|
+
legacy_source_state: migration_input_only
|
|
1730
|
+
current_entity_boundary: decision_satisfaction
|
|
1705
1731
|
project_root_fixed: true
|
|
1706
1732
|
docs_yaml_override: forbidden
|
|
1707
1733
|
schema_version: agentera.decisionOverlay.v1
|
|
1708
1734
|
supported_artifact: decisions
|
|
1709
1735
|
identity_key: decisions:<decision-number>
|
|
1710
1736
|
storage_shape: >-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1737
|
+
The legacy migration source is a mapping keyed by numbered decision ID.
|
|
1738
|
+
Entity migration converts each value into one decision_satisfaction entity
|
|
1739
|
+
related to the canonical decision ID. Current reads and writes use that
|
|
1740
|
+
entity and never read or publish the aggregate overlay document.
|
|
1714
1741
|
mutable_paths:
|
|
1715
1742
|
- satisfaction.state
|
|
1716
1743
|
- satisfaction.evidence
|
|
@@ -1753,18 +1780,29 @@ overlays:
|
|
|
1753
1780
|
|
|
1754
1781
|
revisions:
|
|
1755
1782
|
location: .agentera/revisions/decisions.yaml
|
|
1783
|
+
legacy_source_state: migration_input_only
|
|
1756
1784
|
project_root_fixed: true
|
|
1757
1785
|
docs_yaml_override: forbidden
|
|
1758
1786
|
schema_version: agentera.decisionRevision.v1
|
|
1759
1787
|
supported_artifact: decisions
|
|
1760
1788
|
identity_key: decisions:<decision-number>
|
|
1761
1789
|
storage_shape: >-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
overlay; it is additional immutable evidence composed at read time.
|
|
1790
|
+
The legacy migration source is a mapping keyed by numbered decision ID.
|
|
1791
|
+
Entity migration converts each ordered row into one decision_revision
|
|
1792
|
+
entity related to the canonical decision ID. Current reads and writes use
|
|
1793
|
+
those entities and never read or publish the aggregate revision document.
|
|
1767
1794
|
amendable_paths:
|
|
1795
|
+
- question
|
|
1796
|
+
- context
|
|
1797
|
+
- alternatives.chosen
|
|
1798
|
+
- alternatives.rejected
|
|
1799
|
+
- choice
|
|
1800
|
+
- reasoning
|
|
1801
|
+
- confidence
|
|
1802
|
+
- feeds_into
|
|
1803
|
+
migration_amendable_paths:
|
|
1804
|
+
- alternatives
|
|
1805
|
+
legacy_amendable_paths:
|
|
1768
1806
|
- question
|
|
1769
1807
|
- context
|
|
1770
1808
|
- alternatives
|
|
@@ -1777,14 +1815,15 @@ revisions:
|
|
|
1777
1815
|
temporal_paths:
|
|
1778
1816
|
- date
|
|
1779
1817
|
separation_from_overlay: >-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1818
|
+
Legacy content amendments never touch legacy aggregate satisfaction paths;
|
|
1819
|
+
migration converts both sources independently. Current satisfaction and
|
|
1820
|
+
content mutations publish decision_satisfaction and decision_revision
|
|
1821
|
+
entities, and neither entity boundary rewrites the other.
|
|
1783
1822
|
immutability: >-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
no revision overwrites, reorders, or deletes a prior revision.
|
|
1787
|
-
is byte-stable after publication and an identical revision is an
|
|
1823
|
+
Imported numbered archive records remain immutable historical evidence.
|
|
1824
|
+
Current decision_revision entities are additional immutable evidence;
|
|
1825
|
+
no revision overwrites, reorders, or deletes a prior revision. An entity
|
|
1826
|
+
revision is byte-stable after publication and an identical revision is an
|
|
1788
1827
|
idempotent replay.
|
|
1789
1828
|
provenance: >-
|
|
1790
1829
|
Revision evidence carries revision provenance only. It is never labeled
|
|
@@ -1792,33 +1831,32 @@ revisions:
|
|
|
1792
1831
|
legacy projection record may carry degraded_projection provenance and
|
|
1793
1832
|
never historical_archive provenance.
|
|
1794
1833
|
publication_order:
|
|
1795
|
-
-
|
|
1834
|
+
- validate_entity_target_identity
|
|
1796
1835
|
- validate_amendment_vocabulary
|
|
1797
|
-
-
|
|
1798
|
-
-
|
|
1799
|
-
-
|
|
1800
|
-
apply_state:
|
|
1836
|
+
- validate_base_sha256
|
|
1837
|
+
- publish_decision_revision_entity
|
|
1838
|
+
- compose_effective_entity_read
|
|
1839
|
+
apply_state: entity_implemented_legacy_source_retired
|
|
1801
1840
|
apply_state_note: >-
|
|
1802
|
-
The
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
base
|
|
1810
|
-
for an unsafe target-only change, a duplicate-revision conflict, a stale
|
|
1811
|
-
base hash, or an unsafe target identity, returning an actionable retry or
|
|
1812
|
-
repair action. Discover the contract with
|
|
1841
|
+
The entity amend command publishes one immutable decision_revision entity
|
|
1842
|
+
related to the selected bare decision ID. A valid dry-run reports the
|
|
1843
|
+
candidate without writing; retries converge through canonical entity
|
|
1844
|
+
replay. Effective entity reads compose base, ordered revision entities, and
|
|
1845
|
+
satisfaction entities. The aggregate revision document is read only by
|
|
1846
|
+
migration preview and cutover and is never a current publication target.
|
|
1847
|
+
Amend execution refuses before side effects for an unsafe target, duplicate
|
|
1848
|
+
same-base claim, or stale base hash. Discover the current contract with
|
|
1813
1849
|
`agentera state decisions explain --verb amend --format json`.
|
|
1814
1850
|
|
|
1815
1851
|
projections:
|
|
1816
1852
|
archive:
|
|
1817
|
-
|
|
1853
|
+
source_state: migration_input_only
|
|
1854
|
+
role: complete immutable historical migration detail
|
|
1818
1855
|
source_of_truth_for: historical_record_fields
|
|
1819
1856
|
omission: never omit fields from an archive record
|
|
1820
1857
|
current:
|
|
1821
|
-
|
|
1858
|
+
source_state: migration_input_only
|
|
1859
|
+
role: bounded aggregate migration projection
|
|
1822
1860
|
default_capacity:
|
|
1823
1861
|
active_entries: 10
|
|
1824
1862
|
summary_entries: 40
|
|
@@ -1842,14 +1880,15 @@ projections:
|
|
|
1842
1880
|
progress: .agentera/progress.yaml
|
|
1843
1881
|
decisions: .agentera/decisions.yaml
|
|
1844
1882
|
health: .agentera/health.yaml
|
|
1845
|
-
source_of_truth_for:
|
|
1883
|
+
source_of_truth_for: legacy_migration_and_compatibility_state_only
|
|
1846
1884
|
archive_relationship: >-
|
|
1847
|
-
A
|
|
1885
|
+
A legacy aggregate entry may be full, summary-only, or absent from the projection;
|
|
1848
1886
|
archive presence and hash verification determine whether full detail is
|
|
1849
|
-
available.
|
|
1850
|
-
|
|
1887
|
+
available during migration. Legacy decision overlay values are converted
|
|
1888
|
+
independently and do not rewrite archive bytes.
|
|
1851
1889
|
summary:
|
|
1852
|
-
|
|
1890
|
+
source_state: migration_input_only
|
|
1891
|
+
role: bounded aggregate migration representation
|
|
1853
1892
|
required_item_fields: [stable_id, artifact_id, entry_number, addressable, classification, detail_availability, source]
|
|
1854
1893
|
nullable_item_fields:
|
|
1855
1894
|
- stable_id
|
|
@@ -1870,6 +1909,7 @@ projections:
|
|
|
1870
1909
|
truncated, represented as a fabricated summary, or treated as missing
|
|
1871
1910
|
history without provenance.
|
|
1872
1911
|
startup:
|
|
1912
|
+
source_state: canonical_entity_authority
|
|
1873
1913
|
role: bounded orientation and capability-startup projection
|
|
1874
1914
|
required_fields: [command, status, source, source_contract]
|
|
1875
1915
|
allowed_payload: >-
|
|
@@ -1886,17 +1926,17 @@ api:
|
|
|
1886
1926
|
artifact_syntax: agentera state <artifact-id>
|
|
1887
1927
|
formats: [text, json, yaml]
|
|
1888
1928
|
direct_get:
|
|
1889
|
-
command: agentera state <artifact-id> get --
|
|
1929
|
+
command: agentera state <artifact-id> get --id ID --format json
|
|
1890
1930
|
examples:
|
|
1891
|
-
progress: agentera state progress get --
|
|
1892
|
-
decisions: agentera state decisions get --
|
|
1893
|
-
health: agentera state health get --
|
|
1894
|
-
required_selector: --
|
|
1931
|
+
progress: agentera state progress get --id qjtrmnpvka --format json
|
|
1932
|
+
decisions: agentera state decisions get --id imumkmffwh --format json
|
|
1933
|
+
health: agentera state health get --id abcdefghij --format json
|
|
1934
|
+
required_selector: --id ID
|
|
1895
1935
|
result: >-
|
|
1896
|
-
One complete
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1936
|
+
One complete canonical entity record with id, artifact, detail availability,
|
|
1937
|
+
compatibility, effective content, and provenance metadata. Decision reads
|
|
1938
|
+
compose immutable base, ordered revisions, and current satisfaction entities.
|
|
1939
|
+
exact_only: direct retrieval resolves one canonical entity ID without scanning unrelated records
|
|
1900
1940
|
list:
|
|
1901
1941
|
command: agentera state <artifact-id> list [--limit N] [--cursor TOKEN] --format json
|
|
1902
1942
|
examples:
|
|
@@ -1905,20 +1945,21 @@ api:
|
|
|
1905
1945
|
default_limit: 20
|
|
1906
1946
|
minimum_limit: 1
|
|
1907
1947
|
maximum_limit: 100
|
|
1908
|
-
ordering:
|
|
1948
|
+
ordering:
|
|
1949
|
+
progress: timestamp_desc_then_publication_order_desc_then_id_asc
|
|
1950
|
+
decisions: date_desc_then_id_asc
|
|
1951
|
+
health: appended_at_desc_then_id_asc_then_legacy_date_desc_then_id_asc
|
|
1909
1952
|
response_fields:
|
|
1910
1953
|
required: [command, status, entries, counts, source, filters, snapshot, source_contract]
|
|
1911
|
-
entry: [
|
|
1912
|
-
optional_entry: [summary,
|
|
1954
|
+
entry: [id, artifact, detail_availability, compatibility, record, provenance, retrieval]
|
|
1955
|
+
optional_entry: [summary, caveats]
|
|
1913
1956
|
empty_result: status=ok with entries=[] and counts.total=0; absence is not an error
|
|
1914
1957
|
durability:
|
|
1915
|
-
command: agentera check durability [--project PATH] [--artifact ARTIFACT] [--
|
|
1916
|
-
entity_command: agentera check durability --project PATH --artifact ARTIFACT --id ID --format json
|
|
1958
|
+
command: agentera check durability [--project PATH] [--artifact ARTIFACT] [--id ID] [--limit N] --format json
|
|
1917
1959
|
formats: [text, json, yaml]
|
|
1918
1960
|
selectors:
|
|
1919
|
-
artifact: optional supported
|
|
1920
|
-
|
|
1921
|
-
id: entity-mode bare entity ID; requires artifact and replaces number after cutover
|
|
1961
|
+
artifact: optional supported entity artifact ID
|
|
1962
|
+
id: optional bare entity ID; requires artifact
|
|
1922
1963
|
limit: optional bounded result count
|
|
1923
1964
|
default_limit: 100
|
|
1924
1965
|
maximum_limit: 100
|
|
@@ -1927,7 +1968,7 @@ api:
|
|
|
1927
1968
|
git_values: [verified, degraded, unavailable]
|
|
1928
1969
|
response_fields:
|
|
1929
1970
|
required: [command, status, project, read_only, remote_contact, head, counts, entries, diagnostics, source_contract]
|
|
1930
|
-
entry: [
|
|
1971
|
+
entry: [id, artifact, status, local, git]
|
|
1931
1972
|
guarantees:
|
|
1932
1973
|
read_only: true
|
|
1933
1974
|
remote_contact: forbidden
|
|
@@ -1948,14 +1989,14 @@ api:
|
|
|
1948
1989
|
syntax: opaque TOKEN returned as response.next_cursor
|
|
1949
1990
|
first_page: omit --cursor to establish a snapshot
|
|
1950
1991
|
snapshot_identity: >-
|
|
1951
|
-
deterministic hash of ordered
|
|
1952
|
-
|
|
1992
|
+
deterministic hash of ordered canonical entity IDs, projected record
|
|
1993
|
+
hashes, and filters.
|
|
1953
1994
|
snapshot_scope: artifact and filters are bound to the cursor; limit may change between pages
|
|
1954
1995
|
append_behavior: >-
|
|
1955
1996
|
Entries appended after the first page are excluded from that cursor's
|
|
1956
1997
|
snapshot. They appear only in a new listing without the old cursor.
|
|
1957
1998
|
continuation: >-
|
|
1958
|
-
Continue strictly after the last emitted
|
|
1999
|
+
Continue strictly after the last emitted entity ordering key. Never
|
|
1959
2000
|
restart from page one, skip an entry, or duplicate an entry.
|
|
1960
2001
|
unavailable: return cursor_snapshot_unavailable rather than silently creating a new snapshot
|
|
1961
2002
|
opacity: callers must not parse, construct, or compare token internals
|
|
@@ -1970,7 +2011,7 @@ failures:
|
|
|
1970
2011
|
required_fields: [schemaVersion, status, error]
|
|
1971
2012
|
status: fail
|
|
1972
2013
|
error_required_fields: [class, message, syntax, example, recovery]
|
|
1973
|
-
error_optional_fields: [
|
|
2014
|
+
error_optional_fields: [artifact, id, details, valid_values]
|
|
1974
2015
|
exit_codes:
|
|
1975
2016
|
invalid_input: 2
|
|
1976
2017
|
operational_failure: 1
|
|
@@ -324,7 +324,20 @@ structured_output:
|
|
|
324
324
|
constraints, verification expectations, artifact update requirements,
|
|
325
325
|
progress logging requirements, changelog boundary, scope boundary,
|
|
326
326
|
fallback commands, caveats, read-only plan-completion sweep metadata,
|
|
327
|
-
and a raw-read-last-resort source contract.
|
|
327
|
+
and a raw-read-last-resort source contract. Verification commands are
|
|
328
|
+
selected only from bounded verification-labelled rows in the root
|
|
329
|
+
AGENTS.md `When | Command` recipe table. Explicit root or `pnpm -C`
|
|
330
|
+
package.json scripts validate those references; exact script aliases are
|
|
331
|
+
resolved before duplicate-label conflict checks, and equivalent canonical
|
|
332
|
+
commands are deduplicated with bounded line/field source pointers retained.
|
|
333
|
+
Command, provenance, rejection, and diagnostic omissions are reported by
|
|
334
|
+
explicit counts below generic startup projection limits. Malformed
|
|
335
|
+
recipes, placeholders, shorthand, unsupported syntax, symlinked sources,
|
|
336
|
+
targets, or existing ancestors, missing scripts, cycles, out-of-root paths,
|
|
337
|
+
every missing Node entrypoint, and conflicting canonical label sets are
|
|
338
|
+
rejected with bounded diagnostics rather than inferred or executed. Node
|
|
339
|
+
arguments use tokens only and reject absolute or parent-traversing values,
|
|
340
|
+
including values after `=`; discovery never executes a recipe. It must not introduce
|
|
328
341
|
`agentera realisera`, `agentera build`, new top-level commands, or new subcommands.
|
|
329
342
|
decision_attention_semantics: >-
|
|
330
343
|
`agentera prime --format json` may include one bounded `decision_attention`
|
|
@@ -369,7 +382,7 @@ startup_completeness:
|
|
|
369
382
|
- docs artifact mapping and source-contract completeness metadata
|
|
370
383
|
- latest progress verification metadata needed for Orkestrera evaluation
|
|
371
384
|
- Optimera benchmark_context metadata for retained startup benchmark summaries
|
|
372
|
-
- Realisera execution_context metadata for plan-driven implementation startup
|
|
385
|
+
- Realisera execution_context metadata for plan-driven or explicit transient no-plan implementation startup
|
|
373
386
|
empty_state_behavior: >-
|
|
374
387
|
agentera prime reports absent plan, docs, and progress state explicitly through
|
|
375
388
|
structured summaries and state_presence absence metadata instead of forcing
|
|
@@ -381,6 +394,75 @@ startup_completeness:
|
|
|
381
394
|
- Do not add Decision 43 slash-route aliases to the CLI command surface.
|
|
382
395
|
- Do not remove or rename routine state commands.
|
|
383
396
|
- Do not add a separate benchmark command; Optimera benchmark comparison stays inside benchmark_context.
|
|
397
|
+
build_transient_execution_request:
|
|
398
|
+
status: implemented
|
|
399
|
+
command: agentera prime --context build --input <file|-> --format json
|
|
400
|
+
schema_version: agentera.buildExecutionRequest.v1
|
|
401
|
+
transport:
|
|
402
|
+
sources:
|
|
403
|
+
- file
|
|
404
|
+
- stdin
|
|
405
|
+
request_text_in_argv: forbidden
|
|
406
|
+
max_utf8_bytes: 32768
|
|
407
|
+
malformed_utf8: fatal
|
|
408
|
+
document: YAML or JSON mapping
|
|
409
|
+
acquisition:
|
|
410
|
+
file: >-
|
|
411
|
+
Regular files only; symlinks and non-regular inputs fail closed. Open
|
|
412
|
+
no-follow where supported, verify the opened descriptor identity against
|
|
413
|
+
the observed file, precheck known size, and incrementally read at most
|
|
414
|
+
max_utf8_bytes + 1 before rejecting overflow.
|
|
415
|
+
stdin: >-
|
|
416
|
+
Incrementally read fd 0 in bounded chunks through max_utf8_bytes + 1;
|
|
417
|
+
reject overflow and never close fd 0. Injected test stdin is capped
|
|
418
|
+
immediately after the supplied value returns.
|
|
419
|
+
fields:
|
|
420
|
+
exact_required:
|
|
421
|
+
- schema_version
|
|
422
|
+
- scope
|
|
423
|
+
- acceptance
|
|
424
|
+
additional_fields: forbidden
|
|
425
|
+
scope:
|
|
426
|
+
type: string
|
|
427
|
+
non_empty: true
|
|
428
|
+
max_unicode_code_points: 160
|
|
429
|
+
control_characters: forbidden
|
|
430
|
+
acceptance:
|
|
431
|
+
type: list_of_strings
|
|
432
|
+
min_items: 1
|
|
433
|
+
max_items: 12
|
|
434
|
+
duplicate_items: forbidden
|
|
435
|
+
item_non_empty: true
|
|
436
|
+
item_max_unicode_code_points: 160
|
|
437
|
+
item_control_characters: forbidden
|
|
438
|
+
validation_failure:
|
|
439
|
+
envelope: agentera.invalidInputEnvelope.v2
|
|
440
|
+
exit_code: 2
|
|
441
|
+
sensitive_input_echo: forbidden
|
|
442
|
+
availability:
|
|
443
|
+
only_with_context: build
|
|
444
|
+
active_or_completed_current_plan: conflict
|
|
445
|
+
archived_history_without_current_executable_plan: allowed
|
|
446
|
+
malformed_or_degraded_plan_state: fail_safe
|
|
447
|
+
persistence:
|
|
448
|
+
request_persisted: false
|
|
449
|
+
orientation_state_extended: false
|
|
450
|
+
state_mutation: none
|
|
451
|
+
plan_creation_or_mutation: forbidden
|
|
452
|
+
no_plan_execution_context:
|
|
453
|
+
mode: no_plan
|
|
454
|
+
valid_request:
|
|
455
|
+
work_selection_reason: explicit_no_plan_scope
|
|
456
|
+
acceptance_source: exact transient request
|
|
457
|
+
source_path_inference: forbidden
|
|
458
|
+
plan_fallback: forbidden
|
|
459
|
+
plan_status_update_required: false
|
|
460
|
+
complete_for_execution_context: true when all non-plan required execution state is available
|
|
461
|
+
missing_request:
|
|
462
|
+
complete_for_execution_context: false
|
|
463
|
+
plan_fallback: forbidden
|
|
464
|
+
advancing_recovery: agentera prime --context build --input - --format json
|
|
465
|
+
caveat: Explicit scope and acceptance are required for no-plan execution.
|
|
384
466
|
evidence_context_target_contract:
|
|
385
467
|
status: task_1_design_contract
|
|
386
468
|
planned_context_name: evidence_context
|