agentera 3.0.0-dev.25 → 3.0.0-dev.27

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 (495) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +29 -23
  3. package/bundle/CHANGELOG.md +18 -25
  4. package/bundle/README.md +13 -34
  5. package/bundle/UPGRADE.md +71 -165
  6. package/bundle/references/adapters/package-manifest-interface-model.yaml +40 -241
  7. package/bundle/references/adapters/package-registry.yaml +0 -145
  8. package/bundle/references/adapters/package-surface-characterization.md +22 -42
  9. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +5 -219
  10. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +2 -29
  11. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +1 -1
  12. package/bundle/references/analysis/analytics-boundary-proportional-2026-07-20.yaml +74 -0
  13. package/bundle/references/analysis/benchmark.md +11 -0
  14. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-1.json.gz +0 -0
  15. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-2.json.gz +0 -0
  16. package/bundle/references/analysis/evidence/analytics-boundary-proportional-2026-07-20/source-focused-3.json.gz +0 -0
  17. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-1.json.gz +0 -0
  18. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-2.json.gz +0 -0
  19. package/bundle/references/analysis/evidence/migration-pagination-proportional-2026-07-20/source-focused-3.json.gz +0 -0
  20. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli-route.log.gz +0 -0
  21. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-cli.log.gz +0 -0
  22. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/precommit-documentation.log.gz +0 -0
  23. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/recompute.mjs +98 -0
  24. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-1.json.gz +0 -0
  25. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-2.json.gz +0 -0
  26. package/bundle/references/analysis/evidence/verification-baseline-2026-07-20/source-3.json.gz +0 -0
  27. package/bundle/references/analysis/migration-pagination-proportional-2026-07-20.yaml +64 -0
  28. package/bundle/references/analysis/verification-baseline-2026-07-20.yaml +313 -0
  29. package/bundle/references/analysis/verification-final-proof-2026-07-21.yaml +340 -0
  30. package/bundle/references/analysis/verification-policy.yaml +142 -0
  31. package/bundle/references/analysis/worker-policy-2026-07-21.yaml +207 -0
  32. package/bundle/references/artifacts/state-storage-authority.yaml +48 -448
  33. package/bundle/references/cli/agent-ready-state-contract.yaml +9 -9
  34. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  35. package/bundle/references/cli/bundle-skill-vocabulary.yaml +9 -18
  36. package/bundle/references/cli/capability-tool-classification.yaml +2 -2
  37. package/bundle/references/cli/prime-consumer-compatibility.yaml +86 -112
  38. package/bundle/references/cli/routing-execution-vocabulary.yaml +4 -22
  39. package/bundle/references/cli/upgrade-repair-wording.md +8 -28
  40. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +2 -3
  41. package/bundle/references/cli/vocabulary.md +18 -23
  42. package/bundle/references/meta/documentation-inventory.md +3 -1
  43. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +3 -2
  44. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +1 -1
  45. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +3 -11
  46. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +23 -5
  47. package/dist/analytics/extractCorpus/cli.js.map +1 -1
  48. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -1
  49. package/dist/analytics/extractCorpus/core.js.map +1 -1
  50. package/dist/analytics/extractCorpus/corpus.js.map +1 -1
  51. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -1
  52. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -1
  53. package/dist/analytics/extractCorpus/evidenceTiers.js.map +1 -1
  54. package/dist/analytics/extractCorpus/extractCorpusParity.js +1 -1
  55. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -1
  56. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -1
  57. package/dist/analytics/extractCorpus/index.js.map +1 -1
  58. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -1
  59. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -1
  60. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -1
  61. package/dist/analytics/extractCorpus/tierReader.js.map +1 -1
  62. package/dist/analytics/extractCorpus.js.map +1 -1
  63. package/dist/analytics/profileSignals.js.map +1 -1
  64. package/dist/analytics/usageStats.js.map +1 -1
  65. package/dist/bin/agentera.js.map +1 -1
  66. package/dist/capabilities/audit/instructions.js.map +1 -1
  67. package/dist/capabilities/build/instructions.js.map +1 -1
  68. package/dist/capabilities/design/instructions.js.map +1 -1
  69. package/dist/capabilities/discuss/instructions.js.map +1 -1
  70. package/dist/capabilities/document/instructions.js.map +1 -1
  71. package/dist/capabilities/index.js.map +1 -1
  72. package/dist/capabilities/optimize/instructions.js.map +1 -1
  73. package/dist/capabilities/orchestrate/instructions.js +1 -1
  74. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  75. package/dist/capabilities/plan/instructions.js.map +1 -1
  76. package/dist/capabilities/profile/instructions.js.map +1 -1
  77. package/dist/capabilities/research/instructions.js.map +1 -1
  78. package/dist/capabilities/status/instructions.js.map +1 -1
  79. package/dist/capabilities/status/startupInstructions.js.map +1 -1
  80. package/dist/capabilities/vision/instructions.js.map +1 -1
  81. package/dist/cli/appContext.js.map +1 -1
  82. package/dist/cli/argvalidate.js.map +1 -1
  83. package/dist/cli/capabilityContext/benchmark.js.map +1 -1
  84. package/dist/cli/capabilityContext/bespoke.js +8 -2
  85. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  86. package/dist/cli/capabilityContext/build.js.map +1 -1
  87. package/dist/cli/capabilityContext/closeout.js +3 -3
  88. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  89. package/dist/cli/capabilityContext/contract.js.map +1 -1
  90. package/dist/cli/capabilityContext/evidence.js +52 -40
  91. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  92. package/dist/cli/capabilityContext/index.js.map +1 -1
  93. package/dist/cli/capabilityContext/orchestration.js +15 -5
  94. package/dist/cli/capabilityContext/orchestration.js.map +1 -1
  95. package/dist/cli/capabilityContext/planState.js +1 -1
  96. package/dist/cli/capabilityContext/planState.js.map +1 -1
  97. package/dist/cli/capabilityContext/progress.js.map +1 -1
  98. package/dist/cli/capabilityContext/shared.js.map +1 -1
  99. package/dist/cli/capabilityContext/slim.js +16 -3
  100. package/dist/cli/capabilityContext/slim.js.map +1 -1
  101. package/dist/cli/capabilityContext/startup.js +4 -1
  102. package/dist/cli/capabilityContext/startup.js.map +1 -1
  103. package/dist/cli/capabilityContext/types.js.map +1 -1
  104. package/dist/cli/capabilityContext.js.map +1 -1
  105. package/dist/cli/commands/appHome.js.map +1 -1
  106. package/dist/cli/commands/capability.js.map +1 -1
  107. package/dist/cli/commands/compact.js.map +1 -1
  108. package/dist/cli/commands/doctor.js +6 -64
  109. package/dist/cli/commands/doctor.js.map +1 -1
  110. package/dist/cli/commands/durability.js +12 -48
  111. package/dist/cli/commands/durability.js.map +1 -1
  112. package/dist/cli/commands/entityMigrate.js.map +1 -1
  113. package/dist/cli/commands/lint.js.map +1 -1
  114. package/dist/cli/commands/prime/briefOrientation.js +25 -24
  115. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  116. package/dist/cli/commands/prime/bundleStatus.js +8 -2
  117. package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
  118. package/dist/cli/commands/prime/collectEntityOrientation.js +76 -24
  119. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  120. package/dist/cli/commands/prime/collectOrientationState.js +34 -53
  121. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  122. package/dist/cli/commands/prime/orientationOutput.js +9 -14
  123. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  124. package/dist/cli/commands/prime/types.js.map +1 -1
  125. package/dist/cli/commands/prime/v1Migration.js.map +1 -1
  126. package/dist/cli/commands/prime.js +43 -25
  127. package/dist/cli/commands/prime.js.map +1 -1
  128. package/dist/cli/commands/query.js +17 -49
  129. package/dist/cli/commands/query.js.map +1 -1
  130. package/dist/cli/commands/report.js.map +1 -1
  131. package/dist/cli/commands/schema.js +19 -78
  132. package/dist/cli/commands/schema.js.map +1 -1
  133. package/dist/cli/commands/state/decisions.js +11 -57
  134. package/dist/cli/commands/state/decisions.js.map +1 -1
  135. package/dist/cli/commands/state/docs.js +56 -120
  136. package/dist/cli/commands/state/docs.js.map +1 -1
  137. package/dist/cli/commands/state/experimentRecords.js +22 -121
  138. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  139. package/dist/cli/commands/state/experiments.js +9 -75
  140. package/dist/cli/commands/state/experiments.js.map +1 -1
  141. package/dist/cli/commands/state/get.js +62 -143
  142. package/dist/cli/commands/state/get.js.map +1 -1
  143. package/dist/cli/commands/state/health.js +9 -123
  144. package/dist/cli/commands/state/health.js.map +1 -1
  145. package/dist/cli/commands/state/index.js +2 -2
  146. package/dist/cli/commands/state/index.js.map +1 -1
  147. package/dist/cli/commands/state/list.js +20 -36
  148. package/dist/cli/commands/state/list.js.map +1 -1
  149. package/dist/cli/commands/state/objective.js +19 -86
  150. package/dist/cli/commands/state/objective.js.map +1 -1
  151. package/dist/cli/commands/state/plan.js +9 -388
  152. package/dist/cli/commands/state/plan.js.map +1 -1
  153. package/dist/cli/commands/state/planTasks.js +58 -93
  154. package/dist/cli/commands/state/planTasks.js.map +1 -1
  155. package/dist/cli/commands/state/plans.js +13 -40
  156. package/dist/cli/commands/state/plans.js.map +1 -1
  157. package/dist/cli/commands/state/progress.js +10 -55
  158. package/dist/cli/commands/state/progress.js.map +1 -1
  159. package/dist/cli/commands/state/shared.js.map +1 -1
  160. package/dist/cli/commands/state/todo.js +24 -133
  161. package/dist/cli/commands/state/todo.js.map +1 -1
  162. package/dist/cli/commands/state/write.js +13 -35
  163. package/dist/cli/commands/state/write.js.map +1 -1
  164. package/dist/cli/commands/upgrade.js +48 -18
  165. package/dist/cli/commands/upgrade.js.map +1 -1
  166. package/dist/cli/commands/upgradeVerify.js +21 -15
  167. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  168. package/dist/cli/commands/validate.js +1 -9
  169. package/dist/cli/commands/validate.js.map +1 -1
  170. package/dist/cli/commands/verify.js.map +1 -1
  171. package/dist/cli/contracts/bundleStatus.js.map +1 -1
  172. package/dist/cli/contracts/orientationState.js.map +1 -1
  173. package/dist/cli/dispatch/argvParser.js.map +1 -1
  174. package/dist/cli/dispatch/check.js +5 -12
  175. package/dist/cli/dispatch/check.js.map +1 -1
  176. package/dist/cli/dispatch/commands.js.map +1 -1
  177. package/dist/cli/dispatch/index.js +30 -29
  178. package/dist/cli/dispatch/index.js.map +1 -1
  179. package/dist/cli/dispatch/lifecycle.js +23 -40
  180. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  181. package/dist/cli/dispatch/prime.js.map +1 -1
  182. package/dist/cli/dispatch/shared.js.map +1 -1
  183. package/dist/cli/dispatch/state.js.map +1 -1
  184. package/dist/cli/dispatch.js.map +1 -1
  185. package/dist/cli/errors.js.map +1 -1
  186. package/dist/cli/help.js +20 -100
  187. package/dist/cli/help.js.map +1 -1
  188. package/dist/cli/migrationRequired.js +22 -19
  189. package/dist/cli/migrationRequired.js.map +1 -1
  190. package/dist/cli/orientation/attention.js +1 -97
  191. package/dist/cli/orientation/attention.js.map +1 -1
  192. package/dist/cli/orientation/corpusCoverage.js.map +1 -1
  193. package/dist/cli/orientation.js +18 -4
  194. package/dist/cli/orientation.js.map +1 -1
  195. package/dist/cli/planArtifacts.js.map +1 -1
  196. package/dist/cli/planEvidence.js.map +1 -1
  197. package/dist/cli/planLifecycleState.js.map +1 -1
  198. package/dist/cli/planTaskIndex.js +12 -0
  199. package/dist/cli/planTaskIndex.js.map +1 -0
  200. package/dist/cli/prime-blob.js +1 -1
  201. package/dist/cli/prime-blob.js.map +1 -1
  202. package/dist/cli/startupCompletenessContract.js.map +1 -1
  203. package/dist/cli/stateQuery.js +1 -2
  204. package/dist/cli/stateQuery.js.map +1 -1
  205. package/dist/cli/structured.js.map +1 -1
  206. package/dist/cli/todoMarkdown.js.map +1 -1
  207. package/dist/cli/todoSeverity.js.map +1 -1
  208. package/dist/core/atomicWriter.js.map +1 -1
  209. package/dist/core/difflib.js.map +1 -1
  210. package/dist/core/envPaths.js.map +1 -1
  211. package/dist/core/jsonValue.js.map +1 -1
  212. package/dist/core/paths.js.map +1 -1
  213. package/dist/core/pyjson.js.map +1 -1
  214. package/dist/core/skillIdentity.js +24 -0
  215. package/dist/core/skillIdentity.js.map +1 -0
  216. package/dist/core/sourceRoot.js.map +1 -1
  217. package/dist/core/text.js.map +1 -1
  218. package/dist/core/toml.js.map +1 -1
  219. package/dist/core/yaml.js.map +1 -1
  220. package/dist/eval/evalSkills.js.map +1 -1
  221. package/dist/eval/semanticEval.js.map +1 -1
  222. package/dist/eval/semanticFixtures.js.map +1 -1
  223. package/dist/hooks/common.js +1 -1
  224. package/dist/hooks/common.js.map +1 -1
  225. package/dist/hooks/compaction/apply.js.map +1 -1
  226. package/dist/hooks/compaction/dryRun.js.map +1 -1
  227. package/dist/hooks/compaction/index.js.map +1 -1
  228. package/dist/hooks/compaction/parse.js.map +1 -1
  229. package/dist/hooks/compaction/retention.js.map +1 -1
  230. package/dist/hooks/compaction/status.js +2 -1
  231. package/dist/hooks/compaction/status.js.map +1 -1
  232. package/dist/hooks/compaction/types.js.map +1 -1
  233. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  234. package/dist/hooks/cursorSessionStart.js +4 -25
  235. package/dist/hooks/cursorSessionStart.js.map +1 -1
  236. package/dist/hooks/projectHookInput.js +26 -0
  237. package/dist/hooks/projectHookInput.js.map +1 -0
  238. package/dist/hooks/sessionStart.js +23 -239
  239. package/dist/hooks/sessionStart.js.map +1 -1
  240. package/dist/hooks/sessionStop.js +4 -12
  241. package/dist/hooks/sessionStop.js.map +1 -1
  242. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -1
  243. package/dist/hooks/validateArtifact/index.js.map +1 -1
  244. package/dist/hooks/validateArtifact/markdown.js.map +1 -1
  245. package/dist/hooks/validateArtifact/runtime.js.map +1 -1
  246. package/dist/hooks/validateArtifact/schema.js.map +1 -1
  247. package/dist/hooks/validateArtifact/traversal.js +1 -1
  248. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  249. package/dist/hooks/validateArtifact/violations.js.map +1 -1
  250. package/dist/migrate/v2HandoffManifest.js.map +1 -1
  251. package/dist/registries/artifactProtocolIds.js.map +1 -1
  252. package/dist/registries/artifactRegistry.js +2 -1
  253. package/dist/registries/artifactRegistry.js.map +1 -1
  254. package/dist/registries/capabilityContract.js.map +1 -1
  255. package/dist/registries/evaluatorHandoffContract.js.map +1 -1
  256. package/dist/registries/evidenceTierContract.js.map +1 -1
  257. package/dist/registries/packageRegistry.js +57 -231
  258. package/dist/registries/packageRegistry.js.map +1 -1
  259. package/dist/registries/triggerLoader.js.map +1 -1
  260. package/dist/registries/verbosityBudgetContract.js.map +1 -1
  261. package/dist/release/releaseMetadata.js +1 -13
  262. package/dist/release/releaseMetadata.js.map +1 -1
  263. package/dist/runtime/lifecycleAdapterContract.js +4 -4
  264. package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
  265. package/dist/runtime/lifecycleAdapters.js +14 -2
  266. package/dist/runtime/lifecycleAdapters.js.map +1 -1
  267. package/dist/runtime/lifecycleAuthority.js +5 -43
  268. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  269. package/dist/runtime/lifecycleOperationContract.js +3 -2
  270. package/dist/runtime/lifecycleOperationContract.js.map +1 -1
  271. package/dist/runtime/lifecycleOperations.js.map +1 -1
  272. package/dist/runtime/lifecycleOwnershipJournal.js.map +1 -1
  273. package/dist/runtime/lifecyclePublication.js +21 -0
  274. package/dist/runtime/lifecyclePublication.js.map +1 -1
  275. package/dist/runtime/lifecycleSnapshot.js.map +1 -1
  276. package/dist/runtime/retiredRuntimeCleanup.js.map +1 -1
  277. package/dist/setup/codex/agents.js.map +1 -1
  278. package/dist/setup/codex/cli.js.map +1 -1
  279. package/dist/setup/codex/configToml.js.map +1 -1
  280. package/dist/setup/codex/constants.js.map +1 -1
  281. package/dist/setup/codex/installRoot.js.map +1 -1
  282. package/dist/setup/codex/state.js.map +1 -1
  283. package/dist/setup/codex.js.map +1 -1
  284. package/dist/setup/opencode.js +20 -12
  285. package/dist/setup/opencode.js.map +1 -1
  286. package/dist/setup/opencodeConstants.js.map +1 -1
  287. package/dist/setup/sharedSkill.js +46 -0
  288. package/dist/setup/sharedSkill.js.map +1 -0
  289. package/dist/setup/smokeChecks.js +16 -43
  290. package/dist/setup/smokeChecks.js.map +1 -1
  291. package/dist/state/archiveDiscovery.js.map +1 -1
  292. package/dist/state/archivePublication.js.map +1 -1
  293. package/dist/state/archiveRecovery.js.map +1 -1
  294. package/dist/state/archiveReplay.js.map +1 -1
  295. package/dist/state/decisionEntities.js +7 -4
  296. package/dist/state/decisionEntities.js.map +1 -1
  297. package/dist/state/decisionLegacyValidation.js.map +1 -1
  298. package/dist/state/decisionOverlay.js.map +1 -1
  299. package/dist/state/decisionRevision.js.map +1 -1
  300. package/dist/state/decisionRevisionPublication.js.map +1 -1
  301. package/dist/state/directRetrieval.js.map +1 -1
  302. package/dist/state/durability.js +4 -240
  303. package/dist/state/durability.js.map +1 -1
  304. package/dist/state/entityCutover.js +90 -186
  305. package/dist/state/entityCutover.js.map +1 -1
  306. package/dist/state/entityCutoverGit.js.map +1 -1
  307. package/dist/state/entityMigrationPreview.js +3 -3
  308. package/dist/state/entityMigrationPreview.js.map +1 -1
  309. package/dist/state/entityPublicationContext.js.map +1 -1
  310. package/dist/state/entityStorage.js +49 -10
  311. package/dist/state/entityStorage.js.map +1 -1
  312. package/dist/state/experimentArchive.js.map +1 -1
  313. package/dist/state/experimentIdentity.js.map +1 -1
  314. package/dist/state/experimentRetrieval.js.map +1 -1
  315. package/dist/state/healthEntities.js +7 -4
  316. package/dist/state/healthEntities.js.map +1 -1
  317. package/dist/state/healthEntityValidation.js.map +1 -1
  318. package/dist/state/healthRepair.js.map +1 -1
  319. package/dist/state/installRoot.js.map +1 -1
  320. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -1
  321. package/dist/state/legacyIdentity.js.map +1 -1
  322. package/dist/state/listAccounting.js.map +1 -1
  323. package/dist/state/listClassification.js.map +1 -1
  324. package/dist/state/listRetrieval.js.map +1 -1
  325. package/dist/state/objectiveExperimentEntities.js +7 -5
  326. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  327. package/dist/state/planEntities.js +60 -12
  328. package/dist/state/planEntities.js.map +1 -1
  329. package/dist/state/planIdentity.js.map +1 -1
  330. package/dist/state/planRetrieval.js.map +1 -1
  331. package/dist/state/planTaskRetrieval.js.map +1 -1
  332. package/dist/state/progressEntities.js +4 -2
  333. package/dist/state/progressEntities.js.map +1 -1
  334. package/dist/state/projectRoot.js.map +1 -1
  335. package/dist/state/projectionPolicy.js.map +1 -1
  336. package/dist/state/retrievalAuthority.js.map +1 -1
  337. package/dist/state/safeProjectFile.js.map +1 -1
  338. package/dist/state/startupAnalysis/benchmark.js.map +1 -1
  339. package/dist/state/startupAnalysis/contract.js.map +1 -1
  340. package/dist/state/startupAnalysis/helpers.js.map +1 -1
  341. package/dist/state/startupAnalysis/index.js.map +1 -1
  342. package/dist/state/startupAnalysis/metrics.js.map +1 -1
  343. package/dist/state/startupAnalysis/records.js.map +1 -1
  344. package/dist/state/startupAnalysis/report.js.map +1 -1
  345. package/dist/state/startupAnalysis/threshold.js.map +1 -1
  346. package/dist/state/startupAnalysis.js.map +1 -1
  347. package/dist/state/startupProjection.js +5 -3
  348. package/dist/state/startupProjection.js.map +1 -1
  349. package/dist/state/stateMode.js +7 -0
  350. package/dist/state/stateMode.js.map +1 -1
  351. package/dist/state/todoDocsEntities.js +6 -4
  352. package/dist/state/todoDocsEntities.js.map +1 -1
  353. package/dist/state/todoDocsEntityValidation.js.map +1 -1
  354. package/dist/state/write/assign.js.map +1 -1
  355. package/dist/state/write/candidateMutation.js.map +1 -1
  356. package/dist/state/write/errors.js.map +1 -1
  357. package/dist/state/write/experimentPublication.js.map +1 -1
  358. package/dist/state/write/explain.js +10 -12
  359. package/dist/state/write/explain.js.map +1 -1
  360. package/dist/state/write/fields.js.map +1 -1
  361. package/dist/state/write/helpers.js.map +1 -1
  362. package/dist/state/write/index.js.map +1 -1
  363. package/dist/state/write/input.js.map +1 -1
  364. package/dist/state/write/lock.js.map +1 -1
  365. package/dist/state/write/mutation.js.map +1 -1
  366. package/dist/state/write/operations.js +6 -0
  367. package/dist/state/write/operations.js.map +1 -1
  368. package/dist/state/write/planEvaluation.js +19 -5
  369. package/dist/state/write/planEvaluation.js.map +1 -1
  370. package/dist/state/write/planPublication.js +7 -0
  371. package/dist/state/write/planPublication.js.map +1 -1
  372. package/dist/state/write/serialize.js.map +1 -1
  373. package/dist/state/write/transaction.js +23 -532
  374. package/dist/state/write/transaction.js.map +1 -1
  375. package/dist/state/write/validate.js.map +1 -1
  376. package/dist/upgrade/appContentRefresh.js +54 -44
  377. package/dist/upgrade/appContentRefresh.js.map +1 -1
  378. package/dist/upgrade/appModel.js.map +1 -1
  379. package/dist/upgrade/atomicWriter.js.map +1 -1
  380. package/dist/upgrade/bundleEvidence.js.map +1 -1
  381. package/dist/upgrade/channels.js.map +1 -1
  382. package/dist/upgrade/coexistenceProbe.js.map +1 -1
  383. package/dist/upgrade/compatibility.js.map +1 -1
  384. package/dist/upgrade/doctor.js +5 -1
  385. package/dist/upgrade/doctor.js.map +1 -1
  386. package/dist/upgrade/doctorClassifier.js.map +1 -1
  387. package/dist/upgrade/installedHooksRetirement.js +46 -39
  388. package/dist/upgrade/installedHooksRetirement.js.map +1 -1
  389. package/dist/upgrade/legacyAgentCleanup.js +132 -32
  390. package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
  391. package/dist/upgrade/lifecycleUpgrade.js +65 -378
  392. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  393. package/dist/upgrade/migrateArtifactsV2ToV3.js +151 -52
  394. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  395. package/dist/upgrade/migrationPublication.js +123 -0
  396. package/dist/upgrade/migrationPublication.js.map +1 -0
  397. package/dist/upgrade/nextMajorDoctor.js.map +1 -1
  398. package/dist/upgrade/npxPlatformStatus.js.map +1 -1
  399. package/dist/upgrade/projectIntegration.js +46 -113
  400. package/dist/upgrade/projectIntegration.js.map +1 -1
  401. package/dist/upgrade/projectIntegrationDecision.js +6 -96
  402. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  403. package/dist/upgrade/runtimeMigration.js +222 -402
  404. package/dist/upgrade/runtimeMigration.js.map +1 -1
  405. package/dist/upgrade/upgradeCommands.js +5 -4
  406. package/dist/upgrade/upgradeCommands.js.map +1 -1
  407. package/dist/upgrade/upgradeLock.js +73 -41
  408. package/dist/upgrade/upgradeLock.js.map +1 -1
  409. package/dist/upgrade/upgradeOrchestrator.js +91 -158
  410. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  411. package/dist/upgrade/v3CapabilitySurface.js +2 -2
  412. package/dist/upgrade/v3CapabilitySurface.js.map +1 -1
  413. package/dist/upgrade/versionResolution.js.map +1 -1
  414. package/dist/validate/appHomeContract.js +0 -4
  415. package/dist/validate/appHomeContract.js.map +1 -1
  416. package/dist/validate/capability.js.map +1 -1
  417. package/dist/validate/crossCapability.js.map +1 -1
  418. package/dist/validate/selfAudit.js.map +1 -1
  419. package/dist/validate/vocabularyAuthority.js.map +1 -1
  420. package/package.json +23 -8
  421. package/bundle/.codex-plugin/plugin.json +0 -92
  422. package/bundle/.cursor/agents/agentera.md +0 -7
  423. package/bundle/.cursor/hooks.json +0 -32
  424. package/bundle/.cursor-plugin/plugin.json +0 -34
  425. package/bundle/.github/hooks/postToolUse.json +0 -9
  426. package/bundle/.github/hooks/preToolUse.json +0 -8
  427. package/bundle/.github/hooks/sessionEnd.json +0 -8
  428. package/bundle/.github/hooks/sessionStart.json +0 -8
  429. package/bundle/.github/plugin/plugin.json +0 -7
  430. package/bundle/.opencode/agents/agentera.md +0 -12
  431. package/bundle/.opencode/commands/agentera.md +0 -5
  432. package/bundle/.opencode/package.json +0 -31
  433. package/bundle/.opencode/plugins/agentera.js +0 -820
  434. package/bundle/agents/openai.yaml +0 -87
  435. package/bundle/hooks/codex-hooks.json +0 -31
  436. package/bundle/hooks/codex-plugin-hooks.json +0 -31
  437. package/bundle/plugin.json +0 -13
  438. package/bundle/references/adapters/cursor.md +0 -224
  439. package/bundle/references/adapters/opencode.md +0 -529
  440. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -44
  441. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  442. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -387
  443. package/bundle/references/adapters/runtime-feature-parity.md +0 -129
  444. package/dist/cli/commands/backfill.js +0 -231
  445. package/dist/cli/commands/backfill.js.map +0 -1
  446. package/dist/cli/commands/migrate.js +0 -681
  447. package/dist/cli/commands/migrate.js.map +0 -1
  448. package/dist/registries/runtimeAdapterRegistry.js +0 -324
  449. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  450. package/dist/setup/copilot.js +0 -227
  451. package/dist/setup/copilot.js.map +0 -1
  452. package/dist/setup/cursor.js +0 -129
  453. package/dist/setup/cursor.js.map +0 -1
  454. package/dist/setup/cursorSurfaces.js +0 -67
  455. package/dist/setup/cursorSurfaces.js.map +0 -1
  456. package/dist/setup/doctor/core.js +0 -296
  457. package/dist/setup/doctor/core.js.map +0 -1
  458. package/dist/setup/doctor/diagnostics.js +0 -201
  459. package/dist/setup/doctor/diagnostics.js.map +0 -1
  460. package/dist/setup/doctor/opencode.js +0 -301
  461. package/dist/setup/doctor/opencode.js.map +0 -1
  462. package/dist/setup/doctor/report.js +0 -425
  463. package/dist/setup/doctor/report.js.map +0 -1
  464. package/dist/setup/doctor.js +0 -10
  465. package/dist/setup/doctor.js.map +0 -1
  466. package/dist/state/gitBackfill.js +0 -561
  467. package/dist/state/gitBackfill.js.map +0 -1
  468. package/dist/state/gitBackfillAuthority.js +0 -141
  469. package/dist/state/gitBackfillAuthority.js.map +0 -1
  470. package/dist/state/gitBackfillHistory.js +0 -278
  471. package/dist/state/gitBackfillHistory.js.map +0 -1
  472. package/dist/state/gitBackfillOutput.js +0 -209
  473. package/dist/state/gitBackfillOutput.js.map +0 -1
  474. package/dist/state/legacyMigration.js +0 -516
  475. package/dist/state/legacyMigration.js.map +0 -1
  476. package/dist/state/legacyMigrationParser.js +0 -489
  477. package/dist/state/legacyMigrationParser.js.map +0 -1
  478. package/dist/state/migrationAuthority.js +0 -413
  479. package/dist/state/migrationAuthority.js.map +0 -1
  480. package/dist/state/migrationEnrichment.js +0 -35
  481. package/dist/state/migrationEnrichment.js.map +0 -1
  482. package/dist/state/projectionRecovery.js +0 -458
  483. package/dist/state/projectionRecovery.js.map +0 -1
  484. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -568
  485. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  486. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  487. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  488. package/dist/validate/lifecycleAdapters/lifecycleMain.js +0 -154
  489. package/dist/validate/lifecycleAdapters/lifecycleMain.js.map +0 -1
  490. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -481
  491. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  492. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  493. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  494. package/dist/validate/lifecycleAdapters.js +0 -10
  495. package/dist/validate/lifecycleAdapters.js.map +0 -1
@@ -1,394 +1,15 @@
1
- /**
2
- * `state plan` query (active PLAN.yaml + immutable archive history).
3
- *
4
- * Source-contract builder for plan artifacts: declares the
5
- * `complete_for_plan_artifact` / `complete_for_normal_startup_evaluation`
6
- * flags that downstream capabilities (prime, orchestrate) read
7
- * before raw plan access.
8
- */
9
- import { emitStateStructured, filterByFieldValue, missingSchemaError, sourceMetadata, statusCounts, structuredState, } from "../../stateQuery.js";
10
- import { artifactPath } from "../../appContext.js";
11
- import { firstPresent } from "../../stateQuery.js";
12
- import { out, err } from "./shared.js";
13
- import { discoverPlanArtifacts, planDocumentParts, planCatalogEntry, } from "../../planArtifacts.js";
14
- import { planLifecycleState } from "../../planLifecycleState.js";
15
- import { resolvePlanTaskEvidence } from "../../planEvidence.js";
16
- import { STATE_FAMILY_FALLBACK_COMMANDS } from "../../capabilityContext/types.js";
17
- import { detectStateMode } from "../../../state/stateMode.js";
18
- import { currentPlanEntityView } from "../../../state/planEntities.js";
19
1
  import { emitStructured } from "../../structured.js";
2
+ import { currentPlanEntityView } from "../../../state/planEntities.js";
20
3
  import YAML from "yaml";
21
- const PLAN_HISTORY_CATALOG_LIMIT = 10;
22
- const PLAN_TEXT_TASK_LIMIT = 10;
23
- const PLAN_TEXT_MAX_UTF8_BYTES = 32_768;
24
- function planCatalogRetrieval() {
25
- return {
26
- list: "agentera state plan list --format json",
27
- get: "agentera state plan get --plan PLAN_ID --format json",
28
- };
29
- }
30
- function textScalar(value) {
31
- return String(value).replace(/\r/g, "\\r").replace(/\n/g, "\\n");
32
- }
33
- function taskTextRow(task) {
34
- const parts = [];
35
- for (const field of ["number", "status", "name", "title"]) {
36
- const value = task[field];
37
- if (value !== null && value !== undefined && value !== "" && !Array.isArray(value) && typeof value !== "object") {
38
- parts.push(`${field}=${textScalar(value)}`);
39
- }
40
- }
41
- return `Task: ${parts.join(" | ")}\n`;
42
- }
43
- function renderPlanText(data, tasks, summary, evidenceComplete, planId, diagnostics) {
44
- const rows = [{
45
- kind: "plan",
46
- text: `Plan: status=${textScalar(summary.status ?? "unknown")} | title=${textScalar(summary.title ?? "")} | created=${textScalar(summary.created ?? "-")}\n`,
47
- }];
48
- if (!evidenceComplete)
49
- rows.push({ kind: "plan", text: "Evidence: incomplete | missing authoritative task evidence\n" });
50
- for (const diagnostic of diagnostics) {
51
- rows.push({
52
- kind: "plan",
53
- text: `Plan diagnostic: path=${textScalar(diagnostic.path)} | category=${textScalar(diagnostic.category)} | diagnostic=${textScalar(diagnostic.message)}\n`,
54
- });
55
- }
56
- for (const key of ["what", "why"]) {
57
- if (data[key] !== null && data[key] !== undefined && data[key] !== "") {
58
- rows.push({ kind: "plan", text: `${key}: ${textScalar(data[key])}\n` });
59
- }
60
- }
61
- const counts = statusCounts(tasks);
62
- if (Object.keys(counts).length > 0) {
63
- rows.push({
64
- kind: "plan",
65
- text: `Task status: ${Object.keys(counts).sort().map((name) => `${name}=${counts[name]}`).join(", ")}\n`,
66
- });
67
- }
68
- rows.push(...tasks.slice(0, PLAN_TEXT_TASK_LIMIT).map((task) => ({ kind: "task", text: taskTextRow(task) })));
69
- const retained = [];
70
- const countOmitted = Math.max(0, tasks.length - PLAN_TEXT_TASK_LIMIT);
71
- let byteTaskOmitted = 0;
72
- let bytePlanOmitted = 0;
73
- const output = () => {
74
- const lines = retained.map((row) => row.text);
75
- const taskOmitted = countOmitted + byteTaskOmitted;
76
- if (taskOmitted > 0) {
77
- const reason = countOmitted > 0 && byteTaskOmitted > 0
78
- ? "text_projection_limit_and_output_byte_budget"
79
- : byteTaskOmitted > 0 ? "text_output_byte_budget" : "text_projection_limit";
80
- lines.push(`Tasks omitted: ${taskOmitted} | reason=${reason}\n`);
81
- lines.push("Continue: agentera state plan tasks list --format json\n");
82
- lines.push("Get one: agentera state plan tasks get --task N --format json\n");
83
- }
84
- if (bytePlanOmitted > 0) {
85
- lines.push(`Plan fields omitted: ${bytePlanOmitted} | reason=text_output_byte_budget\n`);
86
- lines.push(`Get plan: agentera state plan get --plan ${planId} --format json\n`);
87
- }
88
- return lines.join("");
89
- };
90
- for (const row of rows) {
91
- retained.push(row);
92
- while (Buffer.byteLength(output(), "utf8") > PLAN_TEXT_MAX_UTF8_BYTES) {
93
- const omitted = retained.pop();
94
- if (!omitted)
95
- break;
96
- if (omitted.kind === "task")
97
- byteTaskOmitted += 1;
98
- else
99
- bytePlanOmitted += 1;
100
- }
101
- }
102
- return output();
103
- }
104
- function planArtifactSummary(artifact) {
105
- const { data } = artifact;
106
- const parts = planDocumentParts(data);
107
- const header = { ...parts.header, status: parts.status };
108
- const summary = {
109
- header,
110
- title: firstPresent(header, ["title"], data.title ?? ""),
111
- status: parts.status,
112
- created: firstPresent(header, ["created"], data.created ?? ""),
113
- what: data.what,
114
- why: data.why,
115
- constraints: data.constraints,
116
- scope: data.scope,
117
- design: data.design,
118
- overall_acceptance: data.overall_acceptance,
119
- surprises: data.surprises,
120
- previous_plan_archived: data.previous_plan_archived,
121
- };
122
- const out = {};
123
- for (const [k, v] of Object.entries(summary)) {
124
- if (v !== null && v !== undefined && v !== "")
125
- out[k] = v;
126
- }
127
- return out;
128
- }
129
- function planSource(primary, discovery) {
130
- const source = sourceMetadata("plan", primary?.path ?? discovery.activePath);
131
- const archivePaths = discovery.archived.map((artifact) => artifact.path);
132
- source.active = Boolean(discovery.active);
133
- source.archived = Boolean(primary?.archived);
134
- source.active_path = discovery.activePath;
135
- source.archive_count = archivePaths.length;
136
- source.archive_paths = archivePaths.slice(0, PLAN_HISTORY_CATALOG_LIMIT);
137
- const archivePathsOmitted = Math.max(0, archivePaths.length - PLAN_HISTORY_CATALOG_LIMIT);
138
- source.archive_paths_omitted = archivePathsOmitted > 0;
139
- source.archive_paths_omitted_count = archivePathsOmitted;
140
- source.archive_paths_omission_reason = archivePathsOmitted > 0 ? "archive_path_catalog_limit" : null;
141
- source.archive_paths_retrieval = {
142
- list: "agentera state plan list --format json",
143
- get: "agentera state plan get --plan PLAN_ID --format json",
144
- };
145
- if (discovery.diagnostics.length > 0)
146
- source.diagnostics = discovery.diagnostics;
147
- const activeDiagnostics = discovery.diagnostics.filter((diagnostic) => diagnostic.path === discovery.activePath && diagnostic.category !== "legacy");
148
- if (activeDiagnostics.length > 0)
149
- source.invalid_path = discovery.activePath;
150
- if (primary && discovery.diagnostics.some((diagnostic) => diagnostic.path === primary.path && diagnostic.category === "legacy")) {
151
- source.legacy_input = true;
152
- }
153
- if (discovery.invalidArchivePaths.length > 0)
154
- source.invalid_archive_paths = discovery.invalidArchivePaths;
155
- return source;
156
- }
157
- function planCatalog(discovery) {
158
- const artifacts = [
159
- ...(discovery.active ? [discovery.active] : []),
160
- ...discovery.archived,
161
- ];
162
- return artifacts
163
- .slice(0, PLAN_HISTORY_CATALOG_LIMIT)
164
- .map((artifact) => planCatalogEntry(artifact, discovery.activePath, discovery.identities.find((identity) => identity.artifact.path === artifact.path)));
165
- }
166
- function activePlanDiagnostics(discovery) {
167
- return discovery.diagnostics.filter((diagnostic) => diagnostic.path === discovery.activePath && diagnostic.category !== "legacy");
168
- }
169
- function planSourceContract(source, summary, discovery) {
170
- const legacyEntries = Boolean(summary.legacy_entries);
171
- const evidenceIncomplete = summary.evidence_status === "incomplete";
172
- const currentDiagnostics = activePlanDiagnostics(discovery);
173
- const active = source.active === true;
174
- const verifiedAbsence = !active && currentDiagnostics.length === 0;
175
- const lifecycle = planLifecycleState({
176
- exists: source.exists,
177
- active: source.active,
178
- active_path: source.active_path,
179
- diagnostics: currentDiagnostics,
180
- });
181
- const complete = verifiedAbsence ||
182
- (Boolean(source.exists) &&
183
- !legacyEntries &&
184
- !evidenceIncomplete &&
185
- currentDiagnostics.length === 0 &&
186
- lifecycle.current_plan_degraded !== true);
187
- const startupComplete = complete;
188
- const missingState = [];
189
- if (!source.exists && !verifiedAbsence)
190
- missingState.push("plan artifact");
191
- else if (!active && !verifiedAbsence)
192
- missingState.push("active plan artifact");
193
- if (legacyEntries)
194
- missingState.push("current plan task artifact shape");
195
- if (evidenceIncomplete)
196
- missingState.push("task evidence");
197
- if (currentDiagnostics.length > 0)
198
- missingState.push("valid current plan artifact");
199
- const summaryFields = Object.keys(summary).sort();
200
- const entryFields = [
201
- "number",
202
- "name",
203
- "depends_on",
204
- "status",
205
- "acceptance",
206
- "evidence",
207
- "evidence_status",
208
- "evidence_provenance",
209
- "blocked_reason",
210
- ];
211
- return {
212
- artifact: "plan",
213
- canonical_artifact_label: "plan",
214
- persisted_artifact_path: source.path,
215
- active_plan_path: discovery.activePath,
216
- active_plan_exists: active,
217
- archived_plan_count: discovery.archived.length,
218
- archive_paths: discovery.archived
219
- .slice(0, PLAN_HISTORY_CATALOG_LIMIT)
220
- .map((artifact) => artifact.path),
221
- archive_paths_omitted: discovery.archived.length > PLAN_HISTORY_CATALOG_LIMIT,
222
- archive_paths_omitted_count: Math.max(0, discovery.archived.length - PLAN_HISTORY_CATALOG_LIMIT),
223
- archive_paths_omission_reason: discovery.archived.length > PLAN_HISTORY_CATALOG_LIMIT ? "archive_path_catalog_limit" : null,
224
- archive_paths_retrieval: {
225
- list: "agentera state plan list --format json",
226
- get: "agentera state plan get --plan PLAN_ID --format json",
227
- },
228
- invalid_archive_paths: discovery.invalidArchivePaths,
229
- lifecycle_state: lifecycle,
230
- complete_for_plan_artifact: complete,
231
- complete_for_normal_startup_evaluation: startupComplete,
232
- raw_artifact_reads_required: false,
233
- raw_artifact_read_policy: "Use `agentera state plan --format json` entries, summary, source, and source_contract before raw plan access. " +
234
- "When complete_for_plan_artifact is true, skip defensive `.agentera/plan.yaml` reads during normal read-only " +
235
- "plan startup/evaluation; raw plan artifact access is reserved for writes, archival, validation, corruption " +
236
- "diagnostics, or unavailable/incomplete CLI state.",
237
- included_state: [
238
- "header",
239
- "what",
240
- "why",
241
- "constraints",
242
- "scope",
243
- "design",
244
- "tasks",
245
- "task dependencies",
246
- "task acceptance criteria",
247
- "task evidence",
248
- "task evidence provenance",
249
- "overall_acceptance",
250
- "surprises",
251
- "previous_plan_archived",
252
- "archived plan history",
253
- ],
254
- complete_state: {
255
- summary: summaryFields,
256
- entries: entryFields,
257
- normal_startup_evaluation: startupComplete,
258
- },
259
- raw_artifact_access_boundary: {
260
- normal_read_only_startup_evaluation: "skip raw plan artifact reads when complete_for_plan_artifact is true",
261
- allowed_raw_artifact_uses: [
262
- "artifact writes",
263
- "plan archival",
264
- "artifact validation",
265
- "corruption diagnostics",
266
- "unavailable or incomplete CLI state after CLI fallbacks",
267
- ],
268
- },
269
- missing_state: missingState,
270
- fallback: complete ? [] : [STATE_FAMILY_FALLBACK_COMMANDS.docs],
271
- fallback_policy: `When plan CLI output is missing or incomplete, use supported CLI state such as \`${STATE_FAMILY_FALLBACK_COMMANDS.docs}\` ` +
272
- "for artifact mapping before any last-resort raw plan artifact read.",
273
- summary_fields: summaryFields,
274
- entry_fields: entryFields,
275
- };
276
- }
277
- export function queryPlan(args, schemas, io) {
278
- if (detectStateMode(process.cwd()) === "entities") {
279
- const o = out(io);
280
- const format = args.format ?? "text";
281
- const response = currentPlanEntityView(process.cwd(), args.limit ?? undefined, args.cursor ?? undefined, args.status ?? undefined, { format });
282
- if (format === "text")
283
- o(YAML.stringify(response));
284
- else
285
- emitStructured(response, format, o);
286
- return 0;
287
- }
288
- const o = out(io);
289
- const e = err(io);
290
- const info = schemas.plan;
291
- if (!info) {
292
- e(missingSchemaError("plan") + "\n");
293
- return 1;
294
- }
295
- const p = artifactPath(info, "plan");
296
- const discovery = discoverPlanArtifacts(p);
297
- const currentDiagnostics = activePlanDiagnostics(discovery);
298
- // Archived plans are immutable history, never executable current state.
299
- // Keep them in the catalog instead of promoting the newest archive to the
300
- // current plan when the active artifact is absent.
301
- const primary = discovery.active;
4
+ import { out } from "./shared.js";
5
+ export function queryPlan(args, _schemas, io) {
302
6
  const format = args.format ?? "text";
303
- const catalog = planCatalog(discovery);
304
- const catalogTotal = (discovery.active ? 1 : 0) + discovery.archived.length;
305
- if (!primary) {
306
- if (format !== "text") {
307
- const source = planSource(null, discovery);
308
- const lifecycle = planLifecycleState({
309
- exists: false,
310
- active: false,
311
- active_path: discovery.activePath,
312
- diagnostics: currentDiagnostics,
313
- });
314
- const summary = lifecycle.status === "degraded"
315
- ? {
316
- invalid_path: discovery.activePath,
317
- diagnostic: currentDiagnostics[0] ?? discovery.diagnostics.find((diagnostic) => diagnostic.category !== "legacy"),
318
- absence_reason: "Current plan artifact is invalid.",
319
- }
320
- : { absence_reason: "No active plan exists." };
321
- summary.lifecycle_state = lifecycle;
322
- const payload = structuredState("plan", [], source, {
323
- filters: { status: args.status ?? null },
324
- summary,
325
- sourceContract: planSourceContract(source, summary, discovery),
326
- });
327
- if (lifecycle.current_plan_degraded === true)
328
- payload.status = "incomplete";
329
- payload.plans = catalog;
330
- payload.plan_catalog = {
331
- total: catalogTotal,
332
- returned: catalog.length,
333
- omitted: catalogTotal > catalog.length,
334
- omitted_count: Math.max(0, catalogTotal - catalog.length),
335
- omission_reason: catalogTotal > catalog.length ? "archive_catalog_limit" : null,
336
- retrieval: planCatalogRetrieval(),
337
- };
338
- return emitStateStructured("plan", payload, format, args.fields, o, e);
339
- }
340
- const [diagnostic] = activePlanDiagnostics(discovery);
341
- if (diagnostic) {
342
- o(`Plan: invalid | path=${diagnostic.path} | category=${diagnostic.category} | diagnostic=${diagnostic.message}\n`);
343
- }
344
- return 0;
345
- }
346
- const dataDict = primary.data;
347
- const parts = planDocumentParts(dataDict);
348
- const evidence = resolvePlanTaskEvidence(primary, parts.tasks, schemas);
349
- const summary = {
350
- ...planArtifactSummary(primary),
351
- ...(parts.legacyEntries ? { legacy_entries: true } : {}),
352
- };
353
- if (currentDiagnostics.length > 0) {
354
- summary.invalid_path = discovery.activePath;
355
- summary.current_plan_diagnostic = currentDiagnostics[0];
356
- }
357
- summary.evidence_status = evidence.complete ? "complete" : "incomplete";
358
- summary.evidence_sources = evidence.sources;
359
- let tasks = evidence.tasks;
360
- const statusFilter = args.status ?? null;
361
- if (statusFilter)
362
- tasks = filterByFieldValue(tasks, "status", statusFilter);
363
- const source = planSource(primary, discovery);
364
- const lifecycle = planLifecycleState({
365
- exists: source.active === true || source.archived === true,
366
- active: source.active,
367
- active_path: source.active_path,
368
- diagnostics: currentDiagnostics,
369
- });
370
- summary.lifecycle_state = lifecycle;
371
- if (format !== "text") {
372
- const payload = structuredState("plan", tasks, source, {
373
- filters: { status: statusFilter },
374
- summary,
375
- sourceContract: planSourceContract(source, summary, discovery),
376
- });
377
- if (!evidence.complete || lifecycle.current_plan_degraded === true)
378
- payload.status = "incomplete";
379
- payload.plans = catalog;
380
- payload.plan_catalog = {
381
- total: catalogTotal,
382
- returned: catalog.length,
383
- omitted: catalogTotal > catalog.length,
384
- omitted_count: Math.max(0, catalogTotal - catalog.length),
385
- omission_reason: catalogTotal > catalog.length ? "archive_catalog_limit" : null,
386
- retrieval: planCatalogRetrieval(),
387
- };
388
- return emitStateStructured("plan", payload, format, args.fields, o, e);
389
- }
390
- const identity = discovery.identities.find((candidate) => candidate.artifact.path === primary.path);
391
- o(renderPlanText(dataDict, tasks, summary, evidence.complete, identity?.stableId ?? "PLAN_ID", currentDiagnostics));
7
+ const response = currentPlanEntityView(process.cwd(), args.limit ?? undefined, args.cursor ?? undefined, args.status ?? undefined, { format });
8
+ const output = out(io);
9
+ if (format === "text")
10
+ output(YAML.stringify(response));
11
+ else
12
+ emitStructured(response, format, output);
392
13
  return 0;
393
14
  }
394
15
  //# sourceMappingURL=plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/state/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../../../../home/jgabor/git/agentera/packages/cli/src/cli/commands/state/plan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAA2B,MAAM,aAAa,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAC,IAAe,EAAE,QAAoC,EAAE,EAAM;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAqB,CACpC,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,KAAK,IAAI,SAAS,EACvB,IAAI,CAAC,MAAM,IAAI,SAAS,EACxB,IAAI,CAAC,MAAM,IAAI,SAAS,EACxB,EAAE,MAAM,EAAE,CACX,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;;QACnD,cAAc,CAAC,QAAQ,EAAE,MAAyB,EAAE,MAAM,CAAC,CAAC;IACjE,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,10 +1,7 @@
1
1
  import YAML from "yaml";
2
- import { artifactPath, discoverSchemasDir, loadSchemas } from "../../appContext.js";
3
- import { emitStructured } from "../../structured.js";
4
2
  import { StateRetrievalFailure } from "../../../state/directRetrieval.js";
5
- import { getPlanTask, listPlanTasks } from "../../../state/planTaskRetrieval.js";
6
- import { detectStateMode } from "../../../state/stateMode.js";
7
3
  import { getPlanTaskEntity, listPlanTaskEntities } from "../../../state/planEntities.js";
4
+ import { emitStructured } from "../../structured.js";
8
5
  function requestedFormat(argv) {
9
6
  for (let index = 0; index < argv.length; index += 1) {
10
7
  const token = argv[index];
@@ -23,81 +20,76 @@ function readValue(argv, index, name) {
23
20
  throw new Error(`${name} requires a value`);
24
21
  return { value, next: index + 2 };
25
22
  }
26
- function parse(argv, verb, entityMode) {
23
+ function failure(message, verb) {
24
+ const list = verb === "list";
25
+ return new StateRetrievalFailure({
26
+ schemaVersion: "agentera.stateFailure.v1",
27
+ status: "fail",
28
+ error: {
29
+ class: "invalid_request",
30
+ message,
31
+ syntax: list
32
+ ? "agentera state plan tasks list [PLAN_ID] [--limit N] [--cursor TOKEN] --format json"
33
+ : "agentera state plan tasks get --id ID --format json",
34
+ example: list
35
+ ? "agentera state plan tasks list abcdefghij --limit 20 --format json"
36
+ : "agentera state plan tasks get --id qjtrmnpvka --format json",
37
+ recovery: "Correct the command using one of the valid forms and retry; no state was changed.",
38
+ valid_values: list
39
+ ? ["list", "PLAN_ID", "--limit 1..100", "--cursor TOKEN", "--format text|json|yaml"]
40
+ : ["get", "--id ID", "--format text|json|yaml"],
41
+ },
42
+ }, 2);
43
+ }
44
+ function parse(argv, verb) {
27
45
  let format = "text";
28
46
  let plan;
29
47
  let limit = 20;
30
48
  let cursor;
31
- let task;
32
49
  let id;
33
50
  const seen = new Set();
34
51
  for (let index = 0; index < argv.length;) {
35
52
  const token = argv[index];
36
- const name = ["--format", "--plan", "--plan-id", "--limit", "--cursor", "--task", "--id"].find((flag) => token === flag || token.startsWith(`${flag}=`));
37
- if (!name || (entityMode && ["--plan", "--plan-id", "--task"].includes(name)) || (verb === "list" && (name === "--task" || name === "--id")) || (verb === "get" && (name === "--limit" || name === "--cursor"))) {
38
- throw requestFailure(`unrecognized argument '${token}'`, verb, entityMode);
53
+ if (verb === "list" && !token.startsWith("--")) {
54
+ if (plan)
55
+ throw failure(`unrecognized argument '${token}'`, verb);
56
+ plan = token;
57
+ index += 1;
58
+ continue;
39
59
  }
60
+ const allowed = verb === "list" ? ["--format", "--limit", "--cursor"] : ["--format", "--id"];
61
+ const name = allowed.find((flag) => token === flag || token.startsWith(`${flag}=`));
62
+ if (!name)
63
+ throw failure(`unrecognized argument '${token}'`, verb);
40
64
  if (seen.has(name))
41
- throw requestFailure(`${name} may only be supplied once`, verb, entityMode);
65
+ throw failure(`${name} may only be supplied once`, verb);
42
66
  seen.add(name);
43
- let value;
67
+ let parsed;
44
68
  try {
45
- const parsed = readValue(argv, index, name);
46
- value = parsed.value;
47
- index = parsed.next;
69
+ parsed = readValue(argv, index, name);
48
70
  }
49
71
  catch (error) {
50
- throw requestFailure(error.message, verb, entityMode);
72
+ throw failure(error.message, verb);
51
73
  }
74
+ index = parsed.next;
52
75
  if (name === "--format") {
53
- if (!["text", "json", "yaml"].includes(value))
54
- throw requestFailure(`invalid --format '${value}'`, verb, entityMode);
55
- format = value;
56
- }
57
- else if (name === "--plan" || name === "--plan-id") {
58
- if (entityMode && name === "--plan")
59
- throw requestFailure("entity mode rejects legacy --plan; use --plan-id ID with a bare plan ID", verb, true);
60
- if (!entityMode && name === "--plan-id")
61
- throw requestFailure("legacy mode rejects --plan-id; use --plan PLAN_ID", verb, false);
62
- plan = value;
76
+ if (!["text", "json", "yaml"].includes(parsed.value))
77
+ throw failure(`invalid --format '${parsed.value}'`, verb);
78
+ format = parsed.value;
63
79
  }
64
- else if (name === "--cursor")
65
- cursor = value;
66
80
  else if (name === "--limit") {
67
- if (!/^[1-9][0-9]*$/.test(value))
68
- throw requestFailure("--limit must be an integer from 1 through 100", verb, entityMode);
69
- limit = Number(value);
70
- }
71
- else if (name === "--task") {
72
- if (!/^[1-9][0-9]*$/.test(value))
73
- throw requestFailure("--task must be a positive integer without leading zeros", verb, entityMode);
74
- task = Number(value);
81
+ if (!/^[1-9][0-9]*$/.test(parsed.value))
82
+ throw failure("--limit must be an integer from 1 through 100", verb);
83
+ limit = Number(parsed.value);
75
84
  }
85
+ else if (name === "--cursor")
86
+ cursor = parsed.value;
76
87
  else
77
- id = value;
88
+ id = parsed.value;
78
89
  }
79
- return { format, plan, limit, cursor, task, id };
80
- }
81
- function requestFailure(message, verb, entityMode = false) {
82
- const list = verb === "list";
83
- return new StateRetrievalFailure({
84
- schemaVersion: "agentera.stateFailure.v1",
85
- status: "fail",
86
- error: {
87
- class: "invalid_request",
88
- message,
89
- syntax: list
90
- ? entityMode ? "agentera state plan tasks list [--limit N] [--cursor TOKEN] --format json" : "agentera state plan tasks list [legacy plan selector] [--limit N] [--cursor TOKEN] --format json"
91
- : entityMode ? "agentera state plan tasks get --id ID --format json" : "agentera state plan tasks get [legacy plan selector] [legacy task selector] --format json",
92
- example: list
93
- ? "agentera state plan tasks list --limit 20 --format json"
94
- : entityMode ? "agentera state plan tasks get --id qjtrmnpvka --format json" : "agentera state plan tasks get --task 1 --format json",
95
- recovery: "Correct the command using one of the valid forms and retry; no state was changed.",
96
- valid_values: list
97
- ? entityMode ? ["list", "--limit 1..100", "--cursor TOKEN", "--format text|json|yaml"] : ["list", "legacy plan selector", "--limit 1..100", "--cursor TOKEN", "--format text|json|yaml"]
98
- : entityMode ? ["get", "--id ID", "--format text|json|yaml"] : ["get", "legacy selectors", "--format text|json|yaml"],
99
- },
100
- }, 2);
90
+ if (verb === "get" && !id)
91
+ throw failure("entity mode requires --id ID and rejects numeric --task selectors", verb);
92
+ return { format, limit, ...(plan ? { plan } : {}), ...(cursor ? { cursor } : {}), ...(id ? { id } : {}) };
101
93
  }
102
94
  function emitFailure(error, format, io) {
103
95
  if (format === "json" || format === "yaml")
@@ -108,54 +100,27 @@ function emitFailure(error, format, io) {
108
100
  `Error: ${detail.message}`,
109
101
  `Class: ${detail.class}`,
110
102
  `Valid forms: ${(detail.valid_values ?? [detail.syntax]).join("; ")}`,
111
- `Syntax: ${detail.syntax}`,
112
103
  `Example: ${detail.example}`,
113
104
  `Recovery: ${detail.recovery}`,
114
105
  ].join("\n") + "\n");
115
106
  }
116
107
  return error.exitCode;
117
108
  }
118
- function renderList(response) {
119
- const lines = [
120
- `Plan tasks: plan=${response.filters.plan} | order=${response.order} | returned=${response.counts.returned}/${response.counts.total}`,
121
- ];
122
- for (const value of response.entries) {
123
- const entry = value;
124
- lines.push(`Task: number=${entry.task_number} | stable_id=${entry.stable_id} | get=${entry.retrieval.get}`);
125
- }
126
- if (response.omitted === true) {
127
- lines.push(`Omitted: ${response.omitted_count} task(s) | reason=${response.omission_reason}`);
128
- lines.push(`Continue: ${response.retrieval.continue}`);
129
- lines.push(`Get one: ${response.retrieval.get}`);
130
- }
131
- return lines.join("\n") + "\n";
132
- }
133
109
  export function runPlanTasks(argv, io) {
134
110
  const format = requestedFormat(argv);
135
111
  const verb = argv[0];
136
112
  if (verb !== "list" && verb !== "get")
137
- return emitFailure(requestFailure(`expected 'list' or 'get', received '${verb ?? "nothing"}'`, "list"), format, io);
113
+ return emitFailure(failure(`expected 'list' or 'get', received '${verb ?? "nothing"}'`, "list"), format, io);
138
114
  try {
139
- const entityMode = detectStateMode(process.cwd()) === "entities";
140
- const args = parse(argv.slice(1), verb, entityMode);
141
- if (verb === "get" && entityMode && (!args.id || args.task !== undefined))
142
- throw requestFailure("entity mode requires --id ID and rejects numeric --task selectors", verb, true);
143
- if (verb === "get" && !entityMode && (args.task === undefined || args.id))
144
- throw requestFailure("legacy mode requires --task N and rejects --id", verb);
145
- const schema = loadSchemas(discoverSchemasDir()).plan;
146
- if (!schema)
147
- throw new Error("plan schema is unavailable");
148
- const activePath = artifactPath(schema, "plan");
149
- const response = entityMode
150
- ? verb === "list" ? listPlanTaskEntities(process.cwd(), undefined, args.limit, args.cursor, { format: args.format }) : getPlanTaskEntity(process.cwd(), args.id)
151
- : verb === "list" ? listPlanTasks(process.cwd(), activePath, { plan: args.plan, limit: args.limit, cursor: args.cursor, format: args.format }) : getPlanTask(process.cwd(), activePath, args.task, args.plan);
152
- const out = io.out ?? ((text) => process.stdout.write(text));
115
+ const args = parse(argv.slice(1), verb);
116
+ const response = verb === "list"
117
+ ? listPlanTaskEntities(process.cwd(), args.plan, args.limit, args.cursor, { format: args.format })
118
+ : getPlanTaskEntity(process.cwd(), args.id);
119
+ const output = io.out ?? ((text) => process.stdout.write(text));
153
120
  if (args.format === "json" || args.format === "yaml")
154
- emitStructured(response, args.format, out);
155
- else if (verb === "list")
156
- out(entityMode ? YAML.stringify(response) : renderList(response));
121
+ emitStructured(response, args.format, output);
157
122
  else
158
- out(YAML.stringify(response));
123
+ output(YAML.stringify(response));
159
124
  return 0;
160
125
  }
161
126
  catch (error) {