agentera 3.0.0-dev.25 → 3.0.0-dev.26

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 (270) hide show
  1. package/README.md +16 -20
  2. package/bundle/CHANGELOG.md +15 -25
  3. package/bundle/README.md +13 -34
  4. package/bundle/UPGRADE.md +71 -165
  5. package/bundle/references/adapters/package-manifest-interface-model.yaml +40 -241
  6. package/bundle/references/adapters/package-registry.yaml +0 -145
  7. package/bundle/references/adapters/package-surface-characterization.md +13 -38
  8. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +5 -219
  9. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +2 -29
  10. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +1 -1
  11. package/bundle/references/artifacts/state-storage-authority.yaml +43 -447
  12. package/bundle/references/cli/agent-ready-state-contract.yaml +9 -9
  13. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  14. package/bundle/references/cli/bundle-skill-vocabulary.yaml +9 -18
  15. package/bundle/references/cli/capability-tool-classification.yaml +2 -2
  16. package/bundle/references/cli/prime-consumer-compatibility.yaml +28 -98
  17. package/bundle/references/cli/routing-execution-vocabulary.yaml +4 -22
  18. package/bundle/references/cli/upgrade-repair-wording.md +8 -28
  19. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +2 -3
  20. package/bundle/references/cli/vocabulary.md +18 -23
  21. package/bundle/references/meta/documentation-inventory.md +1 -1
  22. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +3 -11
  23. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +1 -1
  24. package/dist/cli/capabilityContext/bespoke.js +8 -2
  25. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  26. package/dist/cli/capabilityContext/closeout.js +3 -3
  27. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  28. package/dist/cli/capabilityContext/evidence.js +52 -40
  29. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  30. package/dist/cli/capabilityContext/startup.js +1 -1
  31. package/dist/cli/capabilityContext/startup.js.map +1 -1
  32. package/dist/cli/commands/doctor.js +6 -64
  33. package/dist/cli/commands/doctor.js.map +1 -1
  34. package/dist/cli/commands/durability.js +12 -48
  35. package/dist/cli/commands/durability.js.map +1 -1
  36. package/dist/cli/commands/prime/briefOrientation.js +2 -19
  37. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  38. package/dist/cli/commands/prime/bundleStatus.js +8 -2
  39. package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
  40. package/dist/cli/commands/prime/collectEntityOrientation.js +27 -14
  41. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  42. package/dist/cli/commands/prime/collectOrientationState.js +31 -52
  43. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  44. package/dist/cli/commands/prime/orientationOutput.js +3 -11
  45. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  46. package/dist/cli/commands/prime.js +0 -5
  47. package/dist/cli/commands/prime.js.map +1 -1
  48. package/dist/cli/commands/query.js +17 -49
  49. package/dist/cli/commands/query.js.map +1 -1
  50. package/dist/cli/commands/schema.js +19 -78
  51. package/dist/cli/commands/schema.js.map +1 -1
  52. package/dist/cli/commands/state/decisions.js +11 -57
  53. package/dist/cli/commands/state/decisions.js.map +1 -1
  54. package/dist/cli/commands/state/docs.js +56 -120
  55. package/dist/cli/commands/state/docs.js.map +1 -1
  56. package/dist/cli/commands/state/experimentRecords.js +22 -121
  57. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  58. package/dist/cli/commands/state/experiments.js +9 -75
  59. package/dist/cli/commands/state/experiments.js.map +1 -1
  60. package/dist/cli/commands/state/get.js +62 -143
  61. package/dist/cli/commands/state/get.js.map +1 -1
  62. package/dist/cli/commands/state/health.js +9 -123
  63. package/dist/cli/commands/state/health.js.map +1 -1
  64. package/dist/cli/commands/state/index.js +2 -2
  65. package/dist/cli/commands/state/index.js.map +1 -1
  66. package/dist/cli/commands/state/list.js +20 -36
  67. package/dist/cli/commands/state/list.js.map +1 -1
  68. package/dist/cli/commands/state/objective.js +19 -86
  69. package/dist/cli/commands/state/objective.js.map +1 -1
  70. package/dist/cli/commands/state/plan.js +9 -388
  71. package/dist/cli/commands/state/plan.js.map +1 -1
  72. package/dist/cli/commands/state/planTasks.js +58 -93
  73. package/dist/cli/commands/state/planTasks.js.map +1 -1
  74. package/dist/cli/commands/state/plans.js +13 -40
  75. package/dist/cli/commands/state/plans.js.map +1 -1
  76. package/dist/cli/commands/state/progress.js +10 -55
  77. package/dist/cli/commands/state/progress.js.map +1 -1
  78. package/dist/cli/commands/state/todo.js +24 -133
  79. package/dist/cli/commands/state/todo.js.map +1 -1
  80. package/dist/cli/commands/state/write.js +11 -33
  81. package/dist/cli/commands/state/write.js.map +1 -1
  82. package/dist/cli/commands/upgrade.js +48 -18
  83. package/dist/cli/commands/upgrade.js.map +1 -1
  84. package/dist/cli/commands/upgradeVerify.js +21 -15
  85. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  86. package/dist/cli/commands/validate.js +1 -9
  87. package/dist/cli/commands/validate.js.map +1 -1
  88. package/dist/cli/dispatch/check.js +5 -12
  89. package/dist/cli/dispatch/check.js.map +1 -1
  90. package/dist/cli/dispatch/index.js +30 -29
  91. package/dist/cli/dispatch/index.js.map +1 -1
  92. package/dist/cli/dispatch/lifecycle.js +23 -40
  93. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  94. package/dist/cli/help.js +20 -100
  95. package/dist/cli/help.js.map +1 -1
  96. package/dist/cli/migrationRequired.js +22 -19
  97. package/dist/cli/migrationRequired.js.map +1 -1
  98. package/dist/cli/orientation/attention.js +1 -97
  99. package/dist/cli/orientation/attention.js.map +1 -1
  100. package/dist/cli/stateQuery.js +1 -2
  101. package/dist/cli/stateQuery.js.map +1 -1
  102. package/dist/core/skillIdentity.js +24 -0
  103. package/dist/core/skillIdentity.js.map +1 -0
  104. package/dist/hooks/common.js +1 -1
  105. package/dist/hooks/common.js.map +1 -1
  106. package/dist/hooks/compaction/status.js +2 -1
  107. package/dist/hooks/compaction/status.js.map +1 -1
  108. package/dist/hooks/cursorSessionStart.js +4 -25
  109. package/dist/hooks/cursorSessionStart.js.map +1 -1
  110. package/dist/hooks/projectHookInput.js +26 -0
  111. package/dist/hooks/projectHookInput.js.map +1 -0
  112. package/dist/hooks/sessionStart.js +23 -239
  113. package/dist/hooks/sessionStart.js.map +1 -1
  114. package/dist/hooks/sessionStop.js +4 -12
  115. package/dist/hooks/sessionStop.js.map +1 -1
  116. package/dist/hooks/validateArtifact/traversal.js +1 -1
  117. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  118. package/dist/registries/artifactRegistry.js +2 -1
  119. package/dist/registries/artifactRegistry.js.map +1 -1
  120. package/dist/registries/packageRegistry.js +57 -231
  121. package/dist/registries/packageRegistry.js.map +1 -1
  122. package/dist/release/releaseMetadata.js +1 -13
  123. package/dist/release/releaseMetadata.js.map +1 -1
  124. package/dist/runtime/lifecycleAdapterContract.js +4 -4
  125. package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
  126. package/dist/runtime/lifecycleAdapters.js +14 -2
  127. package/dist/runtime/lifecycleAdapters.js.map +1 -1
  128. package/dist/runtime/lifecycleAuthority.js +5 -43
  129. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  130. package/dist/runtime/lifecycleOperationContract.js +3 -2
  131. package/dist/runtime/lifecycleOperationContract.js.map +1 -1
  132. package/dist/runtime/lifecyclePublication.js +21 -0
  133. package/dist/runtime/lifecyclePublication.js.map +1 -1
  134. package/dist/setup/opencode.js +20 -12
  135. package/dist/setup/opencode.js.map +1 -1
  136. package/dist/setup/sharedSkill.js +46 -0
  137. package/dist/setup/sharedSkill.js.map +1 -0
  138. package/dist/setup/smokeChecks.js +16 -43
  139. package/dist/setup/smokeChecks.js.map +1 -1
  140. package/dist/state/decisionEntities.js +7 -4
  141. package/dist/state/decisionEntities.js.map +1 -1
  142. package/dist/state/durability.js +4 -240
  143. package/dist/state/durability.js.map +1 -1
  144. package/dist/state/entityCutover.js +90 -186
  145. package/dist/state/entityCutover.js.map +1 -1
  146. package/dist/state/entityStorage.js +27 -8
  147. package/dist/state/entityStorage.js.map +1 -1
  148. package/dist/state/healthEntities.js +7 -4
  149. package/dist/state/healthEntities.js.map +1 -1
  150. package/dist/state/objectiveExperimentEntities.js +7 -5
  151. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  152. package/dist/state/planEntities.js +14 -10
  153. package/dist/state/planEntities.js.map +1 -1
  154. package/dist/state/progressEntities.js +4 -2
  155. package/dist/state/progressEntities.js.map +1 -1
  156. package/dist/state/startupProjection.js +3 -2
  157. package/dist/state/startupProjection.js.map +1 -1
  158. package/dist/state/stateMode.js +7 -0
  159. package/dist/state/stateMode.js.map +1 -1
  160. package/dist/state/todoDocsEntities.js +6 -4
  161. package/dist/state/todoDocsEntities.js.map +1 -1
  162. package/dist/state/write/explain.js +1 -9
  163. package/dist/state/write/explain.js.map +1 -1
  164. package/dist/state/write/transaction.js +22 -532
  165. package/dist/state/write/transaction.js.map +1 -1
  166. package/dist/upgrade/appContentRefresh.js +43 -28
  167. package/dist/upgrade/appContentRefresh.js.map +1 -1
  168. package/dist/upgrade/doctor.js +5 -1
  169. package/dist/upgrade/doctor.js.map +1 -1
  170. package/dist/upgrade/installedHooksRetirement.js +46 -39
  171. package/dist/upgrade/installedHooksRetirement.js.map +1 -1
  172. package/dist/upgrade/legacyAgentCleanup.js +132 -32
  173. package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
  174. package/dist/upgrade/lifecycleUpgrade.js +65 -378
  175. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  176. package/dist/upgrade/migrateArtifactsV2ToV3.js +151 -52
  177. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  178. package/dist/upgrade/migrationPublication.js +123 -0
  179. package/dist/upgrade/migrationPublication.js.map +1 -0
  180. package/dist/upgrade/projectIntegration.js +46 -113
  181. package/dist/upgrade/projectIntegration.js.map +1 -1
  182. package/dist/upgrade/projectIntegrationDecision.js +6 -96
  183. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  184. package/dist/upgrade/runtimeMigration.js +222 -402
  185. package/dist/upgrade/runtimeMigration.js.map +1 -1
  186. package/dist/upgrade/upgradeCommands.js +5 -4
  187. package/dist/upgrade/upgradeCommands.js.map +1 -1
  188. package/dist/upgrade/upgradeLock.js +73 -41
  189. package/dist/upgrade/upgradeLock.js.map +1 -1
  190. package/dist/upgrade/upgradeOrchestrator.js +91 -158
  191. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  192. package/dist/upgrade/v3CapabilitySurface.js +2 -2
  193. package/dist/validate/appHomeContract.js +0 -4
  194. package/dist/validate/appHomeContract.js.map +1 -1
  195. package/package.json +7 -5
  196. package/bundle/.codex-plugin/plugin.json +0 -92
  197. package/bundle/.cursor/agents/agentera.md +0 -7
  198. package/bundle/.cursor/hooks.json +0 -32
  199. package/bundle/.cursor-plugin/plugin.json +0 -34
  200. package/bundle/.github/hooks/postToolUse.json +0 -9
  201. package/bundle/.github/hooks/preToolUse.json +0 -8
  202. package/bundle/.github/hooks/sessionEnd.json +0 -8
  203. package/bundle/.github/hooks/sessionStart.json +0 -8
  204. package/bundle/.github/plugin/plugin.json +0 -7
  205. package/bundle/.opencode/agents/agentera.md +0 -12
  206. package/bundle/.opencode/commands/agentera.md +0 -5
  207. package/bundle/.opencode/package.json +0 -31
  208. package/bundle/.opencode/plugins/agentera.js +0 -820
  209. package/bundle/agents/openai.yaml +0 -87
  210. package/bundle/hooks/codex-hooks.json +0 -31
  211. package/bundle/hooks/codex-plugin-hooks.json +0 -31
  212. package/bundle/plugin.json +0 -13
  213. package/bundle/references/adapters/cursor.md +0 -224
  214. package/bundle/references/adapters/opencode.md +0 -529
  215. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -44
  216. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  217. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -387
  218. package/bundle/references/adapters/runtime-feature-parity.md +0 -129
  219. package/dist/cli/commands/backfill.js +0 -231
  220. package/dist/cli/commands/backfill.js.map +0 -1
  221. package/dist/cli/commands/migrate.js +0 -681
  222. package/dist/cli/commands/migrate.js.map +0 -1
  223. package/dist/registries/runtimeAdapterRegistry.js +0 -324
  224. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  225. package/dist/setup/copilot.js +0 -227
  226. package/dist/setup/copilot.js.map +0 -1
  227. package/dist/setup/cursor.js +0 -129
  228. package/dist/setup/cursor.js.map +0 -1
  229. package/dist/setup/cursorSurfaces.js +0 -67
  230. package/dist/setup/cursorSurfaces.js.map +0 -1
  231. package/dist/setup/doctor/core.js +0 -296
  232. package/dist/setup/doctor/core.js.map +0 -1
  233. package/dist/setup/doctor/diagnostics.js +0 -201
  234. package/dist/setup/doctor/diagnostics.js.map +0 -1
  235. package/dist/setup/doctor/opencode.js +0 -301
  236. package/dist/setup/doctor/opencode.js.map +0 -1
  237. package/dist/setup/doctor/report.js +0 -425
  238. package/dist/setup/doctor/report.js.map +0 -1
  239. package/dist/setup/doctor.js +0 -10
  240. package/dist/setup/doctor.js.map +0 -1
  241. package/dist/state/gitBackfill.js +0 -561
  242. package/dist/state/gitBackfill.js.map +0 -1
  243. package/dist/state/gitBackfillAuthority.js +0 -141
  244. package/dist/state/gitBackfillAuthority.js.map +0 -1
  245. package/dist/state/gitBackfillHistory.js +0 -278
  246. package/dist/state/gitBackfillHistory.js.map +0 -1
  247. package/dist/state/gitBackfillOutput.js +0 -209
  248. package/dist/state/gitBackfillOutput.js.map +0 -1
  249. package/dist/state/legacyMigration.js +0 -516
  250. package/dist/state/legacyMigration.js.map +0 -1
  251. package/dist/state/legacyMigrationParser.js +0 -489
  252. package/dist/state/legacyMigrationParser.js.map +0 -1
  253. package/dist/state/migrationAuthority.js +0 -413
  254. package/dist/state/migrationAuthority.js.map +0 -1
  255. package/dist/state/migrationEnrichment.js +0 -35
  256. package/dist/state/migrationEnrichment.js.map +0 -1
  257. package/dist/state/projectionRecovery.js +0 -458
  258. package/dist/state/projectionRecovery.js.map +0 -1
  259. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -568
  260. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  261. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  262. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  263. package/dist/validate/lifecycleAdapters/lifecycleMain.js +0 -154
  264. package/dist/validate/lifecycleAdapters/lifecycleMain.js.map +0 -1
  265. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -481
  266. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  267. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  268. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  269. package/dist/validate/lifecycleAdapters.js +0 -10
  270. package/dist/validate/lifecycleAdapters.js.map +0 -1
@@ -1,129 +0,0 @@
1
- # Runtime feature parity
2
-
3
- Release-relevant behavior is governed by
4
- `runtime-lifecycle-authority.yaml` and `runtime-lifecycle-adapters.yaml`.
5
- Active runtime IDs are exactly `opencode`, `codex`, `cursor`, and `copilot`.
6
-
7
- `cursor-agent` is an inactive compatibility alias and Cursor CLI source-product
8
- name beneath the single `cursor` identity. It is never an active runtime ID.
9
- Claude Code is a retired migration and consent-gated historical-import source,
10
- not a supported runtime.
11
-
12
- ## Lifecycle identity and support floor
13
-
14
- | Runtime | Required surface | Conditional surface | Canonical skill |
15
- | --- | --- | --- | --- |
16
- | OpenCode | host | — | `~/.agents/skills/agentera` |
17
- | Codex | CLI | — | `~/.agents/skills/agentera` |
18
- | Cursor | Agent CLI | IDE | `~/.agents/skills/agentera` |
19
- | GitHub Copilot | CLI | — | `~/.agents/skills/agentera` |
20
-
21
- The support floor requires the canonical skill, complete diagnosis, and
22
- resolved mandatory evidence. Unknown or missing mandatory evidence and denied
23
- trust block release. A known false installation or enablement state is
24
- diagnosed as degraded. An unobserved conditional Cursor IDE is
25
- `not_applicable` and does not block CLI support.
26
-
27
- `prime` projects a bounded summary from this lifecycle snapshot. `doctor`
28
- projects detailed evidence and exact actions from the same snapshot. The
29
- `status` projection and project-integration recommendation consume that same
30
- snapshot, so runtime identities, counts, blockers, and next actions do not
31
- drift between surfaces.
32
-
33
- ## Common adapter contract
34
-
35
- Every active runtime reports the same eight categories:
36
-
37
- | Category | Meaning |
38
- | --- | --- |
39
- | skills | Canonical and additional skill discovery locations |
40
- | plugins | Agentera plugin package or host plugin state |
41
- | hooks | Session and tool lifecycle wiring |
42
- | agents | Runtime-native Agentera descriptors |
43
- | configuration | User or project configuration evidence |
44
- | enablement | Whether the host has enabled the integration |
45
- | trust | Observed trust state; never inferred or approved |
46
- | native actions | Exact user-owned host/package-manager steps |
47
-
48
- Each runtime/surface/category claim declares capability, evidence, and
49
- remediation. Unsupported or unverified host behavior cannot satisfy a mandatory
50
- support floor.
51
-
52
- ## Host behavior
53
-
54
- | Runtime | Skill/package source | Hook and validation behavior | Agent behavior |
55
- | --- | --- | --- | --- |
56
- | OpenCode | Portable skill plus `.opencode/plugins/agentera.js` | Conditional hard gate for reconstructable write/edit candidates; sparse or unreconstructed patches remain advisory | Single Agentera descriptor in `.opencode/agents/agentera.md` |
57
- | Codex | `.codex-plugin/plugin.json`, shared skill, and marketplace entry | Plugin and copied-hook sources validate `apply_patch` paths before/after use; final patch content is not reconstructed | Capability TOML descriptors under `skills/agentera/agents/` |
58
- | Cursor | One identity spanning Agent CLI and optional IDE plugin | IDE hooks provide session context and conditional hard-gate validation for reconstructable Write/Edit candidates | One IDE Agentera descriptor; CLI uses the Cursor-owned binary surface |
59
- | GitHub Copilot | Root and repository plugin manifests | `sessionStart`, `sessionEnd`, `preToolUse`, and `postToolUse`; reconstructable candidates are denied before mutation | Host-managed dispatch; no Agentera-specific Copilot agent descriptor |
60
-
61
- The validated hard-gate claims retain their exact scope:
62
-
63
- - OpenCode: Conditional hard gate for reconstructable write and edit candidates. Sparse payloads and apply_patch patchText without reconstructed full content are allowed.
64
- - GitHub Copilot: Conditional hard gate via preToolUse. Malformed, sparse, or non-reconstructable toolArgs are allowed.
65
- - Cursor: Conditional hard gate for reconstructable Write and Edit candidates via preToolUse; verified after live preToolUse Write smoke (2026-05-24). Malformed, sparse, or non-reconstructable tool_input payloads are allowed.
66
-
67
- Agentera never upgrades a runtime binary, runs a native marketplace/package
68
- manager, authenticates, enables a plugin, or approves trust. Those operations
69
- are emitted as `action_required`.
70
-
71
- ## Lifecycle repair
72
-
73
- On the v3 development channel, a dry-run without `--runtime` previews all
74
- active runtimes. Applying without a selector remains the existing app-only
75
- operation; runtime apply requires an explicit selector and `--yes`:
76
-
77
- ```bash
78
- agentera upgrade --dry-run --channel development
79
- agentera upgrade --runtime all --dry-run
80
- agentera upgrade --runtime all --yes
81
- ```
82
-
83
- Preview is side-effect free. Apply is limited to declared Agentera-owned
84
- resources with matching ownership-journal evidence. Secure automatic
85
- publication currently requires Linux `/proc/self/fd`; other platforms receive
86
- the same plan as explicit actions.
87
-
88
- Outcomes are `applied`, `noop`, `failed`, `blocked_unowned`,
89
- `skipped_dependency`, and `action_required`. Independent operations continue
90
- after a local failure, and retries re-observe state so completed work becomes
91
- `noop`.
92
-
93
- ## Corpus sources
94
-
95
- | Runtime identity | Source product | Default analytics |
96
- | --- | --- | --- |
97
- | Codex | Codex session JSONL | included |
98
- | OpenCode | OpenCode SQLite store | included |
99
- | Cursor | Cursor IDE JSONL | included |
100
- | Cursor | Cursor Agent CLI SQLite source (`cursor-agent`) | included as Cursor gap-fill |
101
- | GitHub Copilot | Copilot session SQLite store | included |
102
- | none | Claude Code JSONL | excluded; requires `--import-source claude` |
103
-
104
- Claude imports use `historical_import` provenance and `active_runtime: false`.
105
- They never add Claude to runtime inventories, readiness, or default analytics.
106
-
107
- ## Package release surface
108
-
109
- The npm bundle contains the shared skill and contract data plus every declared
110
- runtime source:
111
-
112
- - OpenCode package, plugin, command, and agent files;
113
- - Codex plugin manifest, plugin hooks, copied-hook fallback, and capability agents;
114
- - Cursor plugin manifest, IDE hooks, and agent descriptor;
115
- - GitHub Copilot root/repository manifests and lifecycle hook files.
116
-
117
- `.claude-plugin/marketplace.json` is retired and must not be packaged.
118
-
119
- ## Validation boundary
120
-
121
- `agentera check validate lifecycle-adapters` validates:
122
-
123
- - lifecycle authority and exact four-runtime identity parity;
124
- - all eight categories and every declared runtime surface;
125
- - package-manifest coverage for all active runtimes;
126
- - npm-bundle coverage for every lifecycle source and runtime manifest;
127
- - 3.0.0 suite mirrors and the development package core;
128
- - runtime-specific hook and documentation claims;
129
- - absence of retired Claude package manifests.
@@ -1,231 +0,0 @@
1
- import { emitInvalidInput } from "../errors.js";
2
- import { emitStructured } from "../structured.js";
3
- import { resolvePath } from "../../core/paths.js";
4
- import { resolveSourceRoot } from "../../core/sourceRoot.js";
5
- import { StateRetrievalFailure, } from "../../state/directRetrieval.js";
6
- import { numberedArchiveArtifacts } from "../../state/archiveDiscovery.js";
7
- import { stateGitBackfillContract } from "../../state/gitBackfillAuthority.js";
8
- import { applyGitBackfill, inspectGitBackfill, previewGitBackfill, } from "../../state/gitBackfill.js";
9
- import { renderGitBackfillText } from "../../state/gitBackfillOutput.js";
10
- import { applyProjectionRecovery, previewProjectionRecovery } from "../../state/projectionRecovery.js";
11
- const BACKFILL_SYNTAX = "agentera state backfill [--recover-projections] [--recovery-digest SHA256] [--project PATH] [--artifact ARTIFACT] [--number N] [--commit HASH] [--path PATH] [--limit N] [--dry-run|--apply --force] --format {text,json,yaml}";
12
- const BACKFILL_DRY_RUN_EXAMPLE = "agentera state backfill --project PATH --artifact progress --number 1 --dry-run --format json";
13
- const BACKFILL_APPLY_EXAMPLE = "agentera state backfill --project PATH --artifact progress --number 1 --apply --force --format json";
14
- export function requestedBackfillFormat(argv) {
15
- for (let index = 0; index < argv.length; index += 1) {
16
- if (argv[index] === "--format") {
17
- const value = argv[index + 1];
18
- if (value === "json" || value === "yaml")
19
- return value;
20
- }
21
- if (argv[index].startsWith("--format=")) {
22
- const value = argv[index].slice("--format=".length);
23
- if (value === "json" || value === "yaml")
24
- return value;
25
- }
26
- }
27
- return "text";
28
- }
29
- function failure(message, format, syntax = BACKFILL_SYNTAX, validValues, example = BACKFILL_DRY_RUN_EXAMPLE) {
30
- return {
31
- format,
32
- body: {
33
- class: "invalid_request",
34
- message,
35
- syntax,
36
- example,
37
- ...(validValues ? { valid_values: validValues } : {}),
38
- },
39
- };
40
- }
41
- function authorityFailure(error) {
42
- const body = {
43
- schemaVersion: "agentera.stateFailure.v1",
44
- status: "fail",
45
- error: {
46
- class: "unsupported_state",
47
- message: `Git backfill authority could not be loaded: ${error.message}`,
48
- syntax: BACKFILL_SYNTAX,
49
- example: BACKFILL_DRY_RUN_EXAMPLE,
50
- recovery: "Repair references/artifacts/state-storage-authority.yaml and retry; no state was changed.",
51
- details: { authority: "references/artifacts/state-storage-authority.yaml" },
52
- },
53
- };
54
- return new StateRetrievalFailure(body, 1);
55
- }
56
- function emitAuthorityFailure(failure, format, io) {
57
- const out = io.out ?? ((text) => process.stdout.write(text));
58
- const err = io.err ?? ((text) => process.stderr.write(text));
59
- if (format === "json" || format === "yaml")
60
- emitStructured(failure.body, format, out);
61
- else
62
- err(`Error: ${failure.body.error.message}\nSyntax: ${failure.body.error.syntax}\nRecovery: ${failure.body.error.recovery}\n`);
63
- return failure.exitCode;
64
- }
65
- export function parseBackfillArgs(argv) {
66
- const args = { project: null, artifact: null, format: "text" };
67
- const valueFlags = ["--project", "--artifact", "--number", "--limit", "--commit", "--path", "--recovery-digest", "--format"];
68
- for (let index = 0; index < argv.length; index += 1) {
69
- const token = argv[index];
70
- const flag = valueFlags.find((candidate) => token === candidate || token.startsWith(`${candidate}=`));
71
- if (flag) {
72
- const inline = token.startsWith(`${flag}=`);
73
- const parsed = inline ? token.slice(flag.length + 1) : argv[++index];
74
- if (parsed === undefined || parsed === "")
75
- return { error: `argument ${flag}: expected a value` };
76
- if (flag === "--project")
77
- args.project = parsed;
78
- else if (flag === "--artifact")
79
- args.artifact = parsed;
80
- else if (flag === "--commit")
81
- args.commit = parsed;
82
- else if (flag === "--path")
83
- args.path = parsed;
84
- else if (flag === "--recovery-digest")
85
- args.recoveryDigest = parsed;
86
- else if (flag === "--format") {
87
- if (parsed !== "text" && parsed !== "json" && parsed !== "yaml") {
88
- return { error: `argument --format: invalid choice: '${parsed}'` };
89
- }
90
- args.format = parsed;
91
- }
92
- else {
93
- if (!/^[1-9][0-9]*$/.test(parsed))
94
- return { error: `argument ${flag}: invalid int value: '${parsed}'` };
95
- const number = Number(parsed);
96
- if (!Number.isSafeInteger(number))
97
- return { error: `argument ${flag}: invalid int value: '${parsed}'` };
98
- if (flag === "--number")
99
- args.number = number;
100
- else
101
- args.limit = number;
102
- }
103
- }
104
- else if (token === "--dry-run")
105
- args.dryRun = true;
106
- else if (token === "--apply")
107
- args.apply = true;
108
- else if (token === "--force")
109
- args.force = true;
110
- else if (token === "--recover-projections")
111
- args.recoverProjections = true;
112
- else
113
- return { error: `unrecognized arguments: ${token}` };
114
- }
115
- return args;
116
- }
117
- function validateBackfillArgs(args, sourceRoot) {
118
- const contract = stateGitBackfillContract(sourceRoot);
119
- const artifacts = numberedArchiveArtifacts(sourceRoot);
120
- if (args.recoverProjections) {
121
- if (args.artifact || args.number !== undefined || args.commit || args.path || args.limit !== undefined)
122
- return "--recover-projections is a whole-batch operation and cannot be combined with entry selectors";
123
- if (args.apply && !args.force)
124
- return "--apply requires explicit --force intent";
125
- if (args.force && !args.apply)
126
- return "--force requires --apply";
127
- if (args.apply && !args.project)
128
- return "--apply requires explicit --project PATH";
129
- if (args.apply && args.dryRun)
130
- return "--apply and --dry-run are mutually exclusive";
131
- if (args.recoveryDigest && (!args.apply || !/^[a-f0-9]{64}$/.test(args.recoveryDigest)))
132
- return "--recovery-digest must be a lowercase SHA-256 supplied with --apply";
133
- return null;
134
- }
135
- if (args.recoveryDigest)
136
- return "--recovery-digest is only valid with --recover-projections --apply";
137
- if (args.artifact && !artifacts.includes(args.artifact)) {
138
- return `unsupported artifact '${args.artifact}'`;
139
- }
140
- if (args.number !== undefined && !args.artifact)
141
- return "argument --number requires --artifact";
142
- if (args.commit && (!args.artifact || args.number === undefined)) {
143
- return "argument --commit requires --artifact and --number";
144
- }
145
- if (args.path && (!args.artifact || args.number === undefined)) {
146
- return "argument --path requires --artifact and --number";
147
- }
148
- if (args.limit !== undefined && (args.limit < 1 || args.limit > contract.maximumLimit)) {
149
- return `argument --limit must be between 1 and ${contract.maximumLimit}`;
150
- }
151
- if (args.apply && args.dryRun)
152
- return "--apply and --dry-run are mutually exclusive";
153
- if (args.apply && !args.force)
154
- return "--apply requires explicit --force intent";
155
- if (args.force && !args.apply)
156
- return "--force requires --apply";
157
- if (args.apply && contract.applyRequires.includes("--project PATH") && !args.project) {
158
- return "--apply requires explicit --project PATH";
159
- }
160
- if (args.apply && (!args.artifact || args.number === undefined)) {
161
- return "--apply requires exactly one --artifact and --number selector";
162
- }
163
- return null;
164
- }
165
- export function runBackfill(argv, io, sourceRootOverride) {
166
- const format = requestedBackfillFormat(argv);
167
- const sourceRoot = sourceRootOverride ?? resolveSourceRoot();
168
- let contract;
169
- try {
170
- contract = stateGitBackfillContract(sourceRoot);
171
- }
172
- catch (error) {
173
- return emitAuthorityFailure(authorityFailure(error), format, io);
174
- }
175
- const parsed = parseBackfillArgs(argv);
176
- if ("error" in parsed) {
177
- const invalid = failure(parsed.error, format === "yaml" ? "text" : format, contract.command);
178
- return emitInvalidInput(io, invalid);
179
- }
180
- let validation;
181
- try {
182
- validation = validateBackfillArgs(parsed, sourceRoot);
183
- }
184
- catch (error) {
185
- return emitAuthorityFailure(authorityFailure(error), format, io);
186
- }
187
- if (validation) {
188
- const invalid = failure(validation, format === "yaml" ? "text" : format, contract.command, numberedArchiveArtifacts(sourceRoot), parsed.apply ? BACKFILL_APPLY_EXAMPLE : undefined);
189
- return emitInvalidInput(io, invalid);
190
- }
191
- const mode = parsed.apply ? "apply" : parsed.dryRun ? "preview" : "inventory";
192
- if (parsed.recoverProjections) {
193
- try {
194
- const project = resolvePath(parsed.project ?? process.cwd());
195
- const response = parsed.apply ? applyProjectionRecovery(project, sourceRoot, parsed.recoveryDigest) : previewProjectionRecovery(project, sourceRoot);
196
- const out = io.out ?? ((text) => process.stdout.write(text));
197
- if (format === "json" || format === "yaml")
198
- emitStructured(response, format, out);
199
- else
200
- out(`${response.status}: selected=${response.counts.selected} ready=${response.counts.ready} refused=${response.counts.refused} applied=${response.counts.applied}\n`);
201
- return response.status === "blocked" ? 1 : 0;
202
- }
203
- catch (error) {
204
- return emitInvalidInput(io, failure(error.message, format === "yaml" ? "text" : format));
205
- }
206
- }
207
- let response;
208
- try {
209
- const project = resolvePath(parsed.project ?? process.cwd());
210
- const options = { sourceRoot };
211
- if (mode === "apply")
212
- response = applyGitBackfill(project, parsed, options);
213
- else if (mode === "preview")
214
- response = previewGitBackfill(project, parsed, options);
215
- else
216
- response = inspectGitBackfill(project, parsed, options);
217
- }
218
- catch (error) {
219
- if (error instanceof StateRetrievalFailure)
220
- return emitAuthorityFailure(error, format, io);
221
- const invalid = failure(error.message, format === "yaml" ? "text" : format, contract.command, undefined, parsed.apply ? BACKFILL_APPLY_EXAMPLE : undefined);
222
- return emitInvalidInput(io, invalid);
223
- }
224
- const out = io.out ?? ((text) => process.stdout.write(text));
225
- if (format === "json" || format === "yaml")
226
- emitStructured(response, format, out);
227
- else
228
- renderGitBackfillText(response, out);
229
- return mode === "apply" && response.status !== "complete" ? 1 : 0;
230
- }
231
- //# sourceMappingURL=backfill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/cli/commands/backfill.ts"],"names":[],"mappings":"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"}