agentera 3.0.0-dev.32 → 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 +75 -5
- package/bundle/references/adapters/package-publication.json +43 -0
- package/bundle/references/adapters/package-surface-characterization.md +12 -0
- package/bundle/references/analysis/evidence-tier-authority.yaml +23 -21
- package/bundle/references/analysis/verification-policy.yaml +1 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +11 -2
- package/bundle/references/artifacts/glossary-entry-contract.yaml +1241 -0
- package/bundle/references/artifacts/state-storage-authority.yaml +149 -80
- package/bundle/references/cli/agent-ready-state-contract.yaml +84 -2
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +12 -1
- package/bundle/references/cli/prime-consumer-compatibility.yaml +7 -1
- package/bundle/skills/agentera/SKILL.md +26 -26
- package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +26 -8
- package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +21 -4
- package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +5 -4
- package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +67 -3
- package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +3 -2
- package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +64 -0
- package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +4 -1
- package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +30 -0
- package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +5 -2
- package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +3 -2
- package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +30 -0
- package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +19 -4
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +92 -0
- package/dist/analytics/extractCorpus/evidenceTiers.js +46 -3
- package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
- package/dist/analytics/extractCorpus/tierReader.js +1 -1
- package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
- package/dist/analytics/glossaryAdviceResolution.js +167 -0
- package/dist/analytics/glossaryAdviceResolution.js.map +1 -0
- package/dist/analytics/glossaryInputAcquisition.js +320 -0
- package/dist/analytics/glossaryInputAcquisition.js.map +1 -0
- package/dist/analytics/personalGlossaryAdmission.js +134 -0
- package/dist/analytics/personalGlossaryAdmission.js.map +1 -0
- package/dist/analytics/personalGlossaryProfile.js +219 -0
- package/dist/analytics/personalGlossaryProfile.js.map +1 -0
- package/dist/audit/terminologyDrift.js +282 -0
- package/dist/audit/terminologyDrift.js.map +1 -0
- package/dist/capabilities/audit/instructions.js +2 -1
- package/dist/capabilities/audit/instructions.js.map +1 -1
- package/dist/capabilities/build/instructions.js +41 -2
- package/dist/capabilities/build/instructions.js.map +1 -1
- package/dist/capabilities/discuss/instructions.js +14 -1
- package/dist/capabilities/discuss/instructions.js.map +1 -1
- package/dist/capabilities/index.js +1 -1
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/orchestrate/instructions.js +2 -2
- package/dist/capabilities/plan/instructions.js +19 -2
- package/dist/capabilities/plan/instructions.js.map +1 -1
- package/dist/capabilities/profile/instructions.js +67 -1
- package/dist/capabilities/profile/instructions.js.map +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 +21 -4
- package/dist/cli/capabilityContext/startup.js.map +1 -1
- package/dist/cli/commands/glossaryAdvice.js +139 -0
- package/dist/cli/commands/glossaryAdvice.js.map +1 -0
- package/dist/cli/commands/personalGlossary.js +177 -0
- package/dist/cli/commands/personalGlossary.js.map +1 -0
- 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 +18 -2
- package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
- package/dist/cli/commands/prime/collectOrientationState.js +7 -1
- package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
- package/dist/cli/commands/prime/orientationOutput.js +12 -2
- package/dist/cli/commands/prime/orientationOutput.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/profileGrounding.js +77 -0
- package/dist/cli/commands/profileGrounding.js.map +1 -0
- package/dist/cli/commands/query.js +14 -4
- package/dist/cli/commands/query.js.map +1 -1
- package/dist/cli/commands/schema.js +10 -0
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/state/write.js +4 -1
- package/dist/cli/commands/state/write.js.map +1 -1
- package/dist/cli/dispatch/lifecycle.js +45 -0
- package/dist/cli/dispatch/lifecycle.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 +23 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/migrationRequired.js +2 -0
- package/dist/cli/migrationRequired.js.map +1 -1
- package/dist/cli/orientation/attention.js +3 -1
- package/dist/cli/orientation/attention.js.map +1 -1
- package/dist/cli/orientation.js +2 -2
- package/dist/cli/orientation.js.map +1 -1
- package/dist/registries/artifactProtocolIds.js +2 -0
- package/dist/registries/artifactProtocolIds.js.map +1 -1
- package/dist/registries/artifactRegistry.js +2 -0
- package/dist/registries/artifactRegistry.js.map +1 -1
- package/dist/registries/evidenceTierContract.js +26 -16
- package/dist/registries/evidenceTierContract.js.map +1 -1
- package/dist/registries/glossaryAdviceContract.js +79 -0
- package/dist/registries/glossaryAdviceContract.js.map +1 -0
- package/dist/registries/glossaryCaveatContract.js +68 -0
- package/dist/registries/glossaryCaveatContract.js.map +1 -0
- package/dist/registries/glossaryConsumerContractValidation.js +792 -0
- package/dist/registries/glossaryConsumerContractValidation.js.map +1 -0
- package/dist/registries/glossaryEntryContract.js +747 -0
- package/dist/registries/glossaryEntryContract.js.map +1 -0
- package/dist/registries/glossaryTermIdentity.js +18 -0
- package/dist/registries/glossaryTermIdentity.js.map +1 -0
- package/dist/registries/glossaryTermOccurrence.js +21 -0
- package/dist/registries/glossaryTermOccurrence.js.map +1 -0
- package/dist/state/changelog.js +222 -0
- package/dist/state/changelog.js.map +1 -0
- package/dist/state/decisionEntities.js +18 -11
- 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/entityPublicationContext.js +374 -71
- package/dist/state/entityPublicationContext.js.map +1 -1
- package/dist/state/entityStorage.js +45 -29
- 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 +9 -9
- package/dist/state/objectiveExperimentEntities.js.map +1 -1
- package/dist/state/planEntities.js +57 -16
- package/dist/state/planEntities.js.map +1 -1
- package/dist/state/progressEntities.js +177 -39
- package/dist/state/progressEntities.js.map +1 -1
- package/dist/state/progressGlossaryCaveat.js +169 -0
- package/dist/state/progressGlossaryCaveat.js.map +1 -0
- package/dist/state/progressPublicationOrder.js +20 -0
- package/dist/state/progressPublicationOrder.js.map +1 -0
- 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 +8 -9
- package/dist/state/todoDocsEntities.js.map +1 -1
- package/dist/state/write/explain.js +101 -92
- package/dist/state/write/explain.js.map +1 -1
- package/dist/state/write/glossaryPublication.js +264 -0
- package/dist/state/write/glossaryPublication.js.map +1 -0
- package/dist/state/write/index.js +1 -0
- package/dist/state/write/index.js.map +1 -1
- package/dist/state/write/operations.js +25 -27
- package/dist/state/write/operations.js.map +1 -1
- package/dist/state/write/planEvaluation.js +6 -2
- package/dist/state/write/planEvaluation.js.map +1 -1
- package/dist/state/write/transaction.js +7 -4
- 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/dist/validate/crossCapability.js +3 -0
- package/dist/validate/crossCapability.js.map +1 -1
- package/dist/validate/v1LegacyCruft.js +141 -0
- package/dist/validate/v1LegacyCruft.js.map +1 -0
- package/dist/validate/vocabularyAuthority.js +2 -0
- package/dist/validate/vocabularyAuthority.js.map +1 -1
- package/package.json +4 -3
- package/dist/state/decisionRevisionPublication.js +0 -532
- package/dist/state/decisionRevisionPublication.js.map +0 -1
|
@@ -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
|
|
@@ -176,14 +177,42 @@ entity_target:
|
|
|
176
177
|
forbidden_fields: [id, artifact, number, stable_id, artifact_id, entry_number]
|
|
177
178
|
temporal_fields: [timestamp]
|
|
178
179
|
timestamp_format: 'YYYY-MM-DD HH:MM'
|
|
180
|
+
publication_order:
|
|
181
|
+
field: publication_order
|
|
182
|
+
type: positive_safe_integer
|
|
183
|
+
presence: optional_for_legacy_required_for_new_publications
|
|
184
|
+
visibility: public_record_metadata
|
|
185
|
+
ownership: progress_writer_only
|
|
186
|
+
assignment: max_valid_existing_progress_publication_order_plus_one
|
|
187
|
+
synchronization: .agentera/.writer.lock
|
|
188
|
+
dry_run: omitted_without_consuming_or_mutating_order
|
|
189
|
+
caller_input: forbidden
|
|
190
|
+
malformed_or_spoofed_input: reject_before_mutation_with_bounded_diagnostics
|
|
191
|
+
durability: persisted_in_each_new_progress_cycle_entity
|
|
192
|
+
privacy: bounded_ordinal_without_time_identity_or_content
|
|
179
193
|
retrieval:
|
|
180
194
|
exact: agentera state progress get --id ID --format json
|
|
181
195
|
list: agentera state progress list [--limit N] [--cursor TOKEN] --format json
|
|
182
|
-
ordering:
|
|
196
|
+
ordering: timestamp_desc_then_publication_order_desc_then_id_asc
|
|
197
|
+
semantic_recency: >-
|
|
198
|
+
The first full progress cycle is latest. Timestamp remains the public
|
|
199
|
+
minute-compatible primary key. Within one timestamp, a valid writer-owned
|
|
200
|
+
publication_order sorts descending; a marked publication sorts after all
|
|
201
|
+
unmarked legacy records observed by that publication and therefore before
|
|
202
|
+
them in newest-first retrieval. Missing markers are legacy unordered ties.
|
|
203
|
+
Equal valid markers can result from independently published histories and
|
|
204
|
+
do not establish relative publication order. Missing or equal markers use
|
|
205
|
+
opaque ID ascending only as a deterministic final fallback and never claim
|
|
206
|
+
reconstructed publication chronology.
|
|
183
207
|
default_limit: 20
|
|
184
208
|
maximum_limit: 100
|
|
185
209
|
max_utf8_bytes: 32768
|
|
186
|
-
cursor:
|
|
210
|
+
cursor: opaque_snapshot_cursor_v2
|
|
211
|
+
cursor_compatibility: >-
|
|
212
|
+
Version 2 continuation keys include timestamp, publication_order presence
|
|
213
|
+
and value, and opaque ID. Version 1 progress cursors are rejected with
|
|
214
|
+
recovery to omit --cursor and establish a new snapshot; authority changes
|
|
215
|
+
also invalidate prior cursor signatures by design.
|
|
187
216
|
mutation_after_snapshot: cursor_snapshot_unavailable
|
|
188
217
|
omission: whole_entries_only_with_count_reason_continuation_and_exact_get
|
|
189
218
|
scalar_truncation: forbidden
|
|
@@ -285,9 +314,25 @@ entity_target:
|
|
|
285
314
|
publication: immutable
|
|
286
315
|
ownership: { fields: [decision, base_sha256], cardinality: zero_or_one }
|
|
287
316
|
record:
|
|
288
|
-
required_fields: [decision,
|
|
317
|
+
required_fields: [decision, provenance, base_sha256, changes]
|
|
318
|
+
legacy_optional_fields: [date]
|
|
289
319
|
required_paths: []
|
|
290
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.
|
|
291
336
|
- boundary: health_audit
|
|
292
337
|
artifact: health
|
|
293
338
|
independently_mutable: true
|
|
@@ -647,7 +692,7 @@ entity_target:
|
|
|
647
692
|
detail_availability: summary
|
|
648
693
|
compatibility: degraded
|
|
649
694
|
caveats: required
|
|
650
|
-
ordering:
|
|
695
|
+
ordering: full_timestamp_desc_then_publication_order_desc_then_id_asc_then_summary_id_asc
|
|
651
696
|
summary_ordering: canonical_id_asc_without_chronology_claim
|
|
652
697
|
mutation: read_only
|
|
653
698
|
- boundary: decision_summary
|
|
@@ -733,7 +778,11 @@ entity_target:
|
|
|
733
778
|
repetitions: 5
|
|
734
779
|
pass_rule: every repetition stays within every applicable limit
|
|
735
780
|
elapsed: wall-clock milliseconds from process start through complete serialized output
|
|
736
|
-
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
|
|
737
786
|
bytes: UTF-8 byte length of stdout including the trailing newline
|
|
738
787
|
targets:
|
|
739
788
|
exact_get:
|
|
@@ -771,6 +820,8 @@ entity_migration:
|
|
|
771
820
|
entity_mode:
|
|
772
821
|
schemaVersion: agentera.stateMode.v1
|
|
773
822
|
mode: entities
|
|
823
|
+
source_fingerprint: lowercase_sha256_of_bound_migration_inputs
|
|
824
|
+
preview_digest: lowercase_sha256_of_bound_migration_preview
|
|
774
825
|
absent_mode: legacy
|
|
775
826
|
invalid_behavior: fail_without_fallback
|
|
776
827
|
detection: read_only
|
|
@@ -1272,33 +1323,33 @@ retrieval:
|
|
|
1272
1323
|
- collection_id: progress.records
|
|
1273
1324
|
artifact_id: progress
|
|
1274
1325
|
growth: append_only_unbounded
|
|
1275
|
-
identity:
|
|
1276
|
-
storage_ownership:
|
|
1277
|
-
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
|
|
1278
1329
|
bounds: count_1_to_100_and_serialized_utf8_budget
|
|
1279
1330
|
cursor: opaque_snapshot_cursor
|
|
1280
1331
|
omission: explicit_with_advancing_cursor_or_exact_get
|
|
1281
|
-
get: agentera state progress get --
|
|
1332
|
+
get: agentera state progress get --id ID --format json
|
|
1282
1333
|
- collection_id: decisions.records
|
|
1283
1334
|
artifact_id: decisions
|
|
1284
|
-
growth:
|
|
1285
|
-
identity:
|
|
1286
|
-
storage_ownership:
|
|
1287
|
-
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
|
|
1288
1339
|
bounds: count_1_to_100_and_serialized_utf8_budget
|
|
1289
1340
|
cursor: opaque_snapshot_cursor
|
|
1290
1341
|
omission: explicit_with_advancing_cursor_or_exact_get
|
|
1291
|
-
get: agentera state decisions get --
|
|
1342
|
+
get: agentera state decisions get --id ID --format json
|
|
1292
1343
|
- collection_id: health.records
|
|
1293
1344
|
artifact_id: health
|
|
1294
1345
|
growth: append_only_unbounded
|
|
1295
|
-
identity:
|
|
1296
|
-
storage_ownership:
|
|
1297
|
-
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
|
|
1298
1349
|
bounds: count_1_to_100_and_serialized_utf8_budget
|
|
1299
1350
|
cursor: opaque_snapshot_cursor
|
|
1300
1351
|
omission: explicit_with_advancing_cursor_or_exact_get
|
|
1301
|
-
get: agentera state health get --
|
|
1352
|
+
get: agentera state health get --id ID --format json
|
|
1302
1353
|
- collection_id: plan.plans
|
|
1303
1354
|
artifact_id: plan
|
|
1304
1355
|
growth: one_active_plus_append_only_immutable_file_archives
|
|
@@ -1638,6 +1689,7 @@ identity:
|
|
|
1638
1689
|
not emitted on the current bounded page.
|
|
1639
1690
|
|
|
1640
1691
|
envelope:
|
|
1692
|
+
legacy_source_state: migration_input_only
|
|
1641
1693
|
schema_version: agentera.stateArchiveEntry.v1
|
|
1642
1694
|
required_fields:
|
|
1643
1695
|
- schemaVersion
|
|
@@ -1674,15 +1726,18 @@ envelope:
|
|
|
1674
1726
|
|
|
1675
1727
|
overlays:
|
|
1676
1728
|
location: .agentera/overlays/decisions.yaml
|
|
1729
|
+
legacy_source_state: migration_input_only
|
|
1730
|
+
current_entity_boundary: decision_satisfaction
|
|
1677
1731
|
project_root_fixed: true
|
|
1678
1732
|
docs_yaml_override: forbidden
|
|
1679
1733
|
schema_version: agentera.decisionOverlay.v1
|
|
1680
1734
|
supported_artifact: decisions
|
|
1681
1735
|
identity_key: decisions:<decision-number>
|
|
1682
1736
|
storage_shape: >-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
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.
|
|
1686
1741
|
mutable_paths:
|
|
1687
1742
|
- satisfaction.state
|
|
1688
1743
|
- satisfaction.evidence
|
|
@@ -1725,18 +1780,29 @@ overlays:
|
|
|
1725
1780
|
|
|
1726
1781
|
revisions:
|
|
1727
1782
|
location: .agentera/revisions/decisions.yaml
|
|
1783
|
+
legacy_source_state: migration_input_only
|
|
1728
1784
|
project_root_fixed: true
|
|
1729
1785
|
docs_yaml_override: forbidden
|
|
1730
1786
|
schema_version: agentera.decisionRevision.v1
|
|
1731
1787
|
supported_artifact: decisions
|
|
1732
1788
|
identity_key: decisions:<decision-number>
|
|
1733
1789
|
storage_shape: >-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
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.
|
|
1739
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:
|
|
1740
1806
|
- question
|
|
1741
1807
|
- context
|
|
1742
1808
|
- alternatives
|
|
@@ -1749,14 +1815,15 @@ revisions:
|
|
|
1749
1815
|
temporal_paths:
|
|
1750
1816
|
- date
|
|
1751
1817
|
separation_from_overlay: >-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
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.
|
|
1755
1822
|
immutability: >-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
no revision overwrites, reorders, or deletes a prior revision.
|
|
1759
|
-
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
|
|
1760
1827
|
idempotent replay.
|
|
1761
1828
|
provenance: >-
|
|
1762
1829
|
Revision evidence carries revision provenance only. It is never labeled
|
|
@@ -1764,33 +1831,32 @@ revisions:
|
|
|
1764
1831
|
legacy projection record may carry degraded_projection provenance and
|
|
1765
1832
|
never historical_archive provenance.
|
|
1766
1833
|
publication_order:
|
|
1767
|
-
-
|
|
1834
|
+
- validate_entity_target_identity
|
|
1768
1835
|
- validate_amendment_vocabulary
|
|
1769
|
-
-
|
|
1770
|
-
-
|
|
1771
|
-
-
|
|
1772
|
-
apply_state:
|
|
1836
|
+
- validate_base_sha256
|
|
1837
|
+
- publish_decision_revision_entity
|
|
1838
|
+
- compose_effective_entity_read
|
|
1839
|
+
apply_state: entity_implemented_legacy_source_retired
|
|
1773
1840
|
apply_state_note: >-
|
|
1774
|
-
The
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
base
|
|
1782
|
-
for an unsafe target-only change, a duplicate-revision conflict, a stale
|
|
1783
|
-
base hash, or an unsafe target identity, returning an actionable retry or
|
|
1784
|
-
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
|
|
1785
1849
|
`agentera state decisions explain --verb amend --format json`.
|
|
1786
1850
|
|
|
1787
1851
|
projections:
|
|
1788
1852
|
archive:
|
|
1789
|
-
|
|
1853
|
+
source_state: migration_input_only
|
|
1854
|
+
role: complete immutable historical migration detail
|
|
1790
1855
|
source_of_truth_for: historical_record_fields
|
|
1791
1856
|
omission: never omit fields from an archive record
|
|
1792
1857
|
current:
|
|
1793
|
-
|
|
1858
|
+
source_state: migration_input_only
|
|
1859
|
+
role: bounded aggregate migration projection
|
|
1794
1860
|
default_capacity:
|
|
1795
1861
|
active_entries: 10
|
|
1796
1862
|
summary_entries: 40
|
|
@@ -1814,14 +1880,15 @@ projections:
|
|
|
1814
1880
|
progress: .agentera/progress.yaml
|
|
1815
1881
|
decisions: .agentera/decisions.yaml
|
|
1816
1882
|
health: .agentera/health.yaml
|
|
1817
|
-
source_of_truth_for:
|
|
1883
|
+
source_of_truth_for: legacy_migration_and_compatibility_state_only
|
|
1818
1884
|
archive_relationship: >-
|
|
1819
|
-
A
|
|
1885
|
+
A legacy aggregate entry may be full, summary-only, or absent from the projection;
|
|
1820
1886
|
archive presence and hash verification determine whether full detail is
|
|
1821
|
-
available.
|
|
1822
|
-
|
|
1887
|
+
available during migration. Legacy decision overlay values are converted
|
|
1888
|
+
independently and do not rewrite archive bytes.
|
|
1823
1889
|
summary:
|
|
1824
|
-
|
|
1890
|
+
source_state: migration_input_only
|
|
1891
|
+
role: bounded aggregate migration representation
|
|
1825
1892
|
required_item_fields: [stable_id, artifact_id, entry_number, addressable, classification, detail_availability, source]
|
|
1826
1893
|
nullable_item_fields:
|
|
1827
1894
|
- stable_id
|
|
@@ -1842,6 +1909,7 @@ projections:
|
|
|
1842
1909
|
truncated, represented as a fabricated summary, or treated as missing
|
|
1843
1910
|
history without provenance.
|
|
1844
1911
|
startup:
|
|
1912
|
+
source_state: canonical_entity_authority
|
|
1845
1913
|
role: bounded orientation and capability-startup projection
|
|
1846
1914
|
required_fields: [command, status, source, source_contract]
|
|
1847
1915
|
allowed_payload: >-
|
|
@@ -1858,17 +1926,17 @@ api:
|
|
|
1858
1926
|
artifact_syntax: agentera state <artifact-id>
|
|
1859
1927
|
formats: [text, json, yaml]
|
|
1860
1928
|
direct_get:
|
|
1861
|
-
command: agentera state <artifact-id> get --
|
|
1929
|
+
command: agentera state <artifact-id> get --id ID --format json
|
|
1862
1930
|
examples:
|
|
1863
|
-
progress: agentera state progress get --
|
|
1864
|
-
decisions: agentera state decisions get --
|
|
1865
|
-
health: agentera state health get --
|
|
1866
|
-
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
|
|
1867
1935
|
result: >-
|
|
1868
|
-
One complete
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
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
|
|
1872
1940
|
list:
|
|
1873
1941
|
command: agentera state <artifact-id> list [--limit N] [--cursor TOKEN] --format json
|
|
1874
1942
|
examples:
|
|
@@ -1877,20 +1945,21 @@ api:
|
|
|
1877
1945
|
default_limit: 20
|
|
1878
1946
|
minimum_limit: 1
|
|
1879
1947
|
maximum_limit: 100
|
|
1880
|
-
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
|
|
1881
1952
|
response_fields:
|
|
1882
1953
|
required: [command, status, entries, counts, source, filters, snapshot, source_contract]
|
|
1883
|
-
entry: [
|
|
1884
|
-
optional_entry: [summary,
|
|
1954
|
+
entry: [id, artifact, detail_availability, compatibility, record, provenance, retrieval]
|
|
1955
|
+
optional_entry: [summary, caveats]
|
|
1885
1956
|
empty_result: status=ok with entries=[] and counts.total=0; absence is not an error
|
|
1886
1957
|
durability:
|
|
1887
|
-
command: agentera check durability [--project PATH] [--artifact ARTIFACT] [--
|
|
1888
|
-
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
|
|
1889
1959
|
formats: [text, json, yaml]
|
|
1890
1960
|
selectors:
|
|
1891
|
-
artifact: optional supported
|
|
1892
|
-
|
|
1893
|
-
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
|
|
1894
1963
|
limit: optional bounded result count
|
|
1895
1964
|
default_limit: 100
|
|
1896
1965
|
maximum_limit: 100
|
|
@@ -1899,7 +1968,7 @@ api:
|
|
|
1899
1968
|
git_values: [verified, degraded, unavailable]
|
|
1900
1969
|
response_fields:
|
|
1901
1970
|
required: [command, status, project, read_only, remote_contact, head, counts, entries, diagnostics, source_contract]
|
|
1902
|
-
entry: [
|
|
1971
|
+
entry: [id, artifact, status, local, git]
|
|
1903
1972
|
guarantees:
|
|
1904
1973
|
read_only: true
|
|
1905
1974
|
remote_contact: forbidden
|
|
@@ -1920,14 +1989,14 @@ api:
|
|
|
1920
1989
|
syntax: opaque TOKEN returned as response.next_cursor
|
|
1921
1990
|
first_page: omit --cursor to establish a snapshot
|
|
1922
1991
|
snapshot_identity: >-
|
|
1923
|
-
deterministic hash of ordered
|
|
1924
|
-
|
|
1992
|
+
deterministic hash of ordered canonical entity IDs, projected record
|
|
1993
|
+
hashes, and filters.
|
|
1925
1994
|
snapshot_scope: artifact and filters are bound to the cursor; limit may change between pages
|
|
1926
1995
|
append_behavior: >-
|
|
1927
1996
|
Entries appended after the first page are excluded from that cursor's
|
|
1928
1997
|
snapshot. They appear only in a new listing without the old cursor.
|
|
1929
1998
|
continuation: >-
|
|
1930
|
-
Continue strictly after the last emitted
|
|
1999
|
+
Continue strictly after the last emitted entity ordering key. Never
|
|
1931
2000
|
restart from page one, skip an entry, or duplicate an entry.
|
|
1932
2001
|
unavailable: return cursor_snapshot_unavailable rather than silently creating a new snapshot
|
|
1933
2002
|
opacity: callers must not parse, construct, or compare token internals
|
|
@@ -1942,7 +2011,7 @@ failures:
|
|
|
1942
2011
|
required_fields: [schemaVersion, status, error]
|
|
1943
2012
|
status: fail
|
|
1944
2013
|
error_required_fields: [class, message, syntax, example, recovery]
|
|
1945
|
-
error_optional_fields: [
|
|
2014
|
+
error_optional_fields: [artifact, id, details, valid_values]
|
|
1946
2015
|
exit_codes:
|
|
1947
2016
|
invalid_input: 2
|
|
1948
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
|
|
@@ -160,12 +160,23 @@ audience_namespaces:
|
|
|
160
160
|
[--project-root PATH] [--format text|json]
|
|
161
161
|
delegates_from: stats refresh
|
|
162
162
|
behavior: Matches today's `agentera stats refresh` including consent gates.
|
|
163
|
+
profile_glossary:
|
|
164
|
+
canonical_shape: >-
|
|
165
|
+
agentera report profile-glossary --input <file|-> [--dry-run]
|
|
166
|
+
--format json
|
|
167
|
+
delegates_from: null
|
|
168
|
+
behavior: >-
|
|
169
|
+
Applies one versioned personal glossary update request to the exact
|
|
170
|
+
PROFILE.md path supplied by Profile Full. Runs headlessly without a
|
|
171
|
+
project checkout; never discovers or reads project state or a project
|
|
172
|
+
glossary. Dry-run validates and computes the candidate without a write.
|
|
163
173
|
legacy_top_level_alias: stats
|
|
164
174
|
rejected_top_level: corpus
|
|
165
175
|
notes: >-
|
|
166
176
|
`agentera usage` and `agentera usage` remain backward-compatible
|
|
167
177
|
maintainer seams per AGENTS.md until separately classified; public user-facing
|
|
168
|
-
analytics
|
|
178
|
+
analytics and Profile's bounded personal-output implementation consolidate
|
|
179
|
+
under `report`.
|
|
169
180
|
check:
|
|
170
181
|
audience: [maintainer]
|
|
171
182
|
status: target_canonical_namespace
|
|
@@ -235,7 +235,13 @@ field_classification:
|
|
|
235
235
|
recommendation is active.
|
|
236
236
|
- field: attention
|
|
237
237
|
status: required
|
|
238
|
-
rationale:
|
|
238
|
+
rationale: >-
|
|
239
|
+
Bounded; opencode and status dashboard consume it. Valid current glossary
|
|
240
|
+
caveats add at most one generic review item through the glossary authority's
|
|
241
|
+
declared prime projection. When current, its one reserved final slot leaves
|
|
242
|
+
the first five unrelated items in their existing order under the six-item
|
|
243
|
+
public cap; lifecycle identity and private semantics remain internal, and
|
|
244
|
+
next_action is unchanged.
|
|
239
245
|
- field: history
|
|
240
246
|
status: diagnostic
|
|
241
247
|
rationale: >-
|