agentera 3.0.0-dev.4 → 3.0.0-dev.46

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 (585) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +108 -22
  3. package/bundle/.agentera-npx-bundle.json +1 -1
  4. package/bundle/CHANGELOG.md +1351 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +143 -0
  8. package/bundle/UPGRADE.md +236 -0
  9. package/bundle/extract-corpus-parity.json +21 -0
  10. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  11. package/bundle/references/adapters/package-publication.json +437 -0
  12. package/bundle/references/adapters/package-registry.yaml +434 -189
  13. package/bundle/references/adapters/package-surface-characterization.md +66 -35
  14. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  15. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  16. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  17. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  18. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  19. package/bundle/references/analysis/verification-policy.yaml +191 -0
  20. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  21. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  22. package/bundle/references/artifacts/state-storage-authority.yaml +2982 -0
  23. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  24. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  25. package/bundle/references/cli/capability-instruction-contract.yaml +97 -59
  26. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  27. package/bundle/references/cli/routing-model.md +155 -0
  28. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  29. package/bundle/references/cli/update-channels.yaml +35 -2
  30. package/bundle/references/cli/vocabulary-index.yaml +23 -20
  31. package/bundle/references/cli/vocabulary.md +337 -366
  32. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  33. package/bundle/registry.json +14 -14
  34. package/bundle/skills/agentera/SKILL.md +218 -408
  35. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  36. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  37. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  38. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  39. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
  40. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
  41. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  42. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  44. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  45. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  46. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  47. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  48. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  50. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  52. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  53. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  55. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  56. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  57. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  58. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  59. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  61. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  62. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  63. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  64. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  65. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  66. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  67. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  68. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  69. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  71. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  72. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  73. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  74. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  75. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  77. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  78. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  79. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  80. package/bundle/skills/agentera/capability_schema_contract.yaml +200 -37
  81. package/bundle/skills/agentera/protocol.yaml +31 -31
  82. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  83. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  84. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +40 -22
  85. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  86. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  87. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  88. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  89. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  90. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  91. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +421 -33
  92. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +143 -53
  93. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +345 -31
  94. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  95. package/dist/analytics/extractCorpus/cli.js +190 -0
  96. package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
  97. package/dist/analytics/extractCorpus/core.js +392 -0
  98. package/dist/analytics/extractCorpus/corpus.js +167 -0
  99. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  100. package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
  101. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  102. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  103. package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
  104. package/dist/analytics/extractCorpus/index.js +14 -0
  105. package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
  106. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  107. package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
  108. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  109. package/dist/analytics/extractCorpus.js +2 -1791
  110. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  111. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  112. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  113. package/dist/analytics/personalGlossaryProfile.js +219 -0
  114. package/dist/analytics/profileSignals.js +211 -0
  115. package/dist/analytics/usageStats.js +169 -42
  116. package/dist/audit/terminologyDrift.js +281 -0
  117. package/dist/bin/agentera.js +3 -2
  118. package/dist/capabilities/audit/instructions.js +16 -0
  119. package/dist/capabilities/build/instructions.js +56 -0
  120. package/dist/capabilities/design/instructions.js +4 -0
  121. package/dist/capabilities/discuss/instructions.js +29 -0
  122. package/dist/capabilities/document/instructions.js +11 -0
  123. package/dist/capabilities/index.js +40 -0
  124. package/dist/capabilities/optimize/instructions.js +14 -0
  125. package/dist/capabilities/orchestrate/instructions.js +40 -0
  126. package/dist/capabilities/plan/instructions.js +32 -0
  127. package/dist/capabilities/profile/instructions.js +70 -0
  128. package/dist/capabilities/research/instructions.js +5 -0
  129. package/dist/capabilities/status/instructions.js +11 -0
  130. package/dist/capabilities/status/startupInstructions.js +34 -0
  131. package/dist/capabilities/vision/instructions.js +4 -0
  132. package/dist/cli/appContext.js +30 -24
  133. package/dist/cli/argvalidate.js +0 -1
  134. package/dist/cli/capabilityContext/benchmark.js +565 -0
  135. package/dist/cli/capabilityContext/bespoke.js +44 -0
  136. package/dist/cli/capabilityContext/build.js +242 -0
  137. package/dist/cli/capabilityContext/closeout.js +233 -0
  138. package/dist/cli/capabilityContext/contract.js +179 -0
  139. package/dist/cli/capabilityContext/evidence.js +463 -0
  140. package/dist/cli/capabilityContext/index.js +3 -0
  141. package/dist/cli/capabilityContext/orchestration.js +131 -0
  142. package/dist/cli/capabilityContext/planState.js +260 -0
  143. package/dist/cli/capabilityContext/progress.js +142 -0
  144. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  145. package/dist/cli/capabilityContext/shared.js +83 -0
  146. package/dist/cli/capabilityContext/slim.js +152 -0
  147. package/dist/cli/capabilityContext/startup.js +150 -0
  148. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  149. package/dist/cli/capabilityContext/types.js +56 -0
  150. package/dist/cli/capabilityContext.js +1 -2421
  151. package/dist/cli/commands/appHome.js +22 -0
  152. package/dist/cli/commands/capability.js +5 -12
  153. package/dist/cli/commands/compact.js +41 -13
  154. package/dist/cli/commands/doctor.js +127 -97
  155. package/dist/cli/commands/durability.js +81 -0
  156. package/dist/cli/commands/glossaryAdvice.js +138 -0
  157. package/dist/cli/commands/lint.js +26 -44
  158. package/dist/cli/commands/personalGlossary.js +176 -0
  159. package/dist/cli/commands/prime/briefOrientation.js +747 -0
  160. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  161. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  162. package/dist/cli/commands/prime/collectEntityOrientation.js +311 -0
  163. package/dist/cli/commands/prime/collectOrientationState.js +212 -0
  164. package/dist/cli/commands/prime/orientationOutput.js +397 -0
  165. package/dist/cli/commands/prime/types.js +1 -0
  166. package/dist/cli/commands/prime/v1Migration.js +38 -0
  167. package/dist/cli/commands/prime.js +80 -558
  168. package/dist/cli/commands/profileGrounding.js +55 -0
  169. package/dist/cli/commands/query.js +78 -53
  170. package/dist/cli/commands/report.js +96 -25
  171. package/dist/cli/commands/route.js +142 -0
  172. package/dist/cli/commands/schema.js +266 -143
  173. package/dist/cli/commands/state/decisions.js +387 -0
  174. package/dist/cli/commands/state/docs.js +70 -0
  175. package/dist/cli/commands/state/experimentRecords.js +151 -0
  176. package/dist/cli/commands/state/experiments.js +14 -0
  177. package/dist/cli/commands/state/get.js +129 -0
  178. package/dist/cli/commands/state/health.js +14 -0
  179. package/dist/cli/commands/state/index.js +16 -0
  180. package/dist/cli/commands/state/list.js +194 -0
  181. package/dist/cli/commands/state/objective.js +25 -0
  182. package/dist/cli/commands/state/plan.js +14 -0
  183. package/dist/cli/commands/state/planTasks.js +154 -0
  184. package/dist/cli/commands/state/plans.js +154 -0
  185. package/dist/cli/commands/state/progress.js +13 -0
  186. package/dist/cli/commands/state/shared.js +14 -0
  187. package/dist/cli/commands/state/todo.js +42 -0
  188. package/dist/cli/commands/state/write.js +434 -0
  189. package/dist/cli/commands/upgrade.js +146 -5
  190. package/dist/cli/commands/upgradeVerify.js +118 -0
  191. package/dist/cli/commands/validate.js +272 -213
  192. package/dist/cli/commands/verify.js +24 -9
  193. package/dist/cli/contracts/bundleStatus.js +1 -0
  194. package/dist/cli/contracts/orientationState.js +1 -0
  195. package/dist/cli/dispatch/argvParser.js +32 -0
  196. package/dist/cli/dispatch/check.js +372 -0
  197. package/dist/cli/dispatch/commands.js +27 -0
  198. package/dist/cli/dispatch/index.js +207 -0
  199. package/dist/cli/dispatch/lifecycle.js +652 -0
  200. package/dist/cli/dispatch/prime.js +139 -0
  201. package/dist/cli/dispatch/projections.js +17 -0
  202. package/dist/cli/dispatch/shared.js +63 -0
  203. package/dist/cli/dispatch/state.js +140 -0
  204. package/dist/cli/dispatch.js +1 -996
  205. package/dist/cli/errors.js +52 -0
  206. package/dist/cli/help.js +390 -43
  207. package/dist/cli/migrationRequired.js +87 -0
  208. package/dist/cli/orientation/attention.js +59 -0
  209. package/dist/cli/orientation/corpusCoverage.js +102 -0
  210. package/dist/cli/orientation.js +444 -173
  211. package/dist/cli/planArtifacts.js +350 -0
  212. package/dist/cli/planEvidence.js +157 -0
  213. package/dist/cli/planLifecycleState.js +36 -0
  214. package/dist/cli/planTaskIndex.js +11 -0
  215. package/dist/cli/preCutoverCommand.js +32 -0
  216. package/dist/cli/prime-blob.js +71 -3
  217. package/dist/cli/profileAcquisition.js +167 -0
  218. package/dist/cli/startupCompletenessContract.js +59 -0
  219. package/dist/cli/stateQuery.js +63 -14
  220. package/dist/cli/structured.js +0 -1
  221. package/dist/cli/todoMarkdown.js +46 -0
  222. package/dist/cli/todoReadinessSelection.js +192 -0
  223. package/dist/cli/todoSeverity.js +18 -0
  224. package/dist/core/atomicWriter.js +20 -0
  225. package/dist/core/developmentChannel.js +1 -0
  226. package/dist/core/developmentInvocation.js +374 -0
  227. package/dist/core/difflib.js +0 -1
  228. package/dist/core/envPaths.js +20 -0
  229. package/dist/core/jsonValue.js +5 -0
  230. package/dist/core/paths.js +0 -1
  231. package/dist/core/pyjson.js +67 -3
  232. package/dist/core/shell.js +4 -0
  233. package/dist/core/skillIdentity.js +23 -0
  234. package/dist/core/sourceRoot.js +9 -12
  235. package/dist/core/text.js +10 -0
  236. package/dist/core/toml.js +0 -1
  237. package/dist/core/yaml.js +8 -1
  238. package/dist/eval/evalSkills.js +30 -26
  239. package/dist/eval/hybridRouteEvaluation.js +155 -0
  240. package/dist/eval/semanticEval.js +43 -20
  241. package/dist/eval/semanticFixtures.js +16 -5
  242. package/dist/hooks/common.js +11 -81
  243. package/dist/hooks/compaction/apply.js +446 -0
  244. package/dist/hooks/compaction/dryRun.js +184 -0
  245. package/dist/hooks/compaction/index.js +22 -0
  246. package/dist/hooks/compaction/parse.js +325 -0
  247. package/dist/hooks/compaction/retention.js +202 -0
  248. package/dist/hooks/compaction/status.js +360 -0
  249. package/dist/hooks/compaction/types.js +5 -0
  250. package/dist/hooks/validateArtifact/agentFacing.js +9 -0
  251. package/dist/hooks/validateArtifact/index.js +92 -0
  252. package/dist/hooks/validateArtifact/markdown.js +145 -0
  253. package/dist/hooks/validateArtifact/schema.js +546 -0
  254. package/dist/hooks/validateArtifact/traversal.js +107 -0
  255. package/dist/hooks/validateArtifact/violations.js +107 -0
  256. package/dist/migrate/v2HandoffManifest.js +452 -0
  257. package/dist/registries/activationContract.js +2 -0
  258. package/dist/registries/activationTuples.js +106 -0
  259. package/dist/registries/artifactProtocolIds.js +78 -0
  260. package/dist/registries/artifactRegistry.js +224 -63
  261. package/dist/registries/artifactSchemaProjection.js +45 -0
  262. package/dist/registries/capabilityContract.js +141 -13
  263. package/dist/registries/evaluatorHandoffContract.js +170 -0
  264. package/dist/registries/evidenceTierContract.js +371 -0
  265. package/dist/registries/glossaryAdviceContract.js +79 -0
  266. package/dist/registries/glossaryCaveatContract.js +67 -0
  267. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  268. package/dist/registries/glossaryEntryContract.js +757 -0
  269. package/dist/registries/glossaryTermIdentity.js +17 -0
  270. package/dist/registries/glossaryTermOccurrence.js +20 -0
  271. package/dist/registries/hybridRoute.js +274 -0
  272. package/dist/registries/hybridRouteReceipt.js +221 -0
  273. package/dist/registries/packagePublication.js +229 -0
  274. package/dist/registries/packageRegistry.js +187 -211
  275. package/dist/registries/todoReadinessContract.js +448 -0
  276. package/dist/registries/triggerLoader.js +174 -0
  277. package/dist/registries/verbosityBudgetContract.js +205 -0
  278. package/dist/release/releaseMetadata.js +385 -0
  279. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  280. package/dist/runtime/lifecycleAdapters.js +777 -0
  281. package/dist/runtime/lifecycleAuthority.js +453 -0
  282. package/dist/runtime/lifecycleOperationContract.js +123 -0
  283. package/dist/runtime/lifecycleOperations.js +634 -0
  284. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  285. package/dist/runtime/lifecyclePublication.js +415 -0
  286. package/dist/runtime/lifecycleSnapshot.js +438 -0
  287. package/dist/runtime/nativeResourceCleanup.js +502 -0
  288. package/dist/setup/opencode.js +20 -0
  289. package/dist/setup/opencodeConstants.js +1 -0
  290. package/dist/setup/sharedSkill.js +45 -0
  291. package/dist/setup/smokeChecks.js +21 -82
  292. package/dist/state/archiveDiscovery.js +580 -0
  293. package/dist/state/archivePublication.js +225 -0
  294. package/dist/state/archiveRecovery.js +237 -0
  295. package/dist/state/archiveReplay.js +53 -0
  296. package/dist/state/canonicalMigrationRecord.js +36 -0
  297. package/dist/state/changelog.js +221 -0
  298. package/dist/state/decisionEntities.js +367 -0
  299. package/dist/state/decisionLegacyValidation.js +215 -0
  300. package/dist/state/decisionMigrationProvenance.js +199 -0
  301. package/dist/state/decisionOverlay.js +254 -0
  302. package/dist/state/decisionRevision.js +256 -0
  303. package/dist/state/decisionRevisionMigration.js +89 -0
  304. package/dist/state/directRetrieval.js +323 -0
  305. package/dist/state/durability.js +324 -0
  306. package/dist/state/entityCutover.js +459 -0
  307. package/dist/state/entityCutoverGit.js +127 -0
  308. package/dist/state/entityGlossaryAuthority.js +13 -0
  309. package/dist/state/entityListProjection.js +187 -0
  310. package/dist/state/entityListRuntimeRegistry.js +85 -0
  311. package/dist/state/entityMigrationCausality.js +97 -0
  312. package/dist/state/entityMigrationIdentity.js +5 -0
  313. package/dist/state/entityMigrationPreview.js +846 -0
  314. package/dist/state/entityMigrationTodo.js +133 -0
  315. package/dist/state/entityPublicationContext.js +806 -0
  316. package/dist/state/entityRetrievalHelp.js +506 -0
  317. package/dist/state/entityStorage.js +896 -0
  318. package/dist/state/exactReplacementRecovery.js +18 -0
  319. package/dist/state/experimentArchive.js +63 -0
  320. package/dist/state/experimentIdentity.js +202 -0
  321. package/dist/state/healthEntities.js +262 -0
  322. package/dist/state/healthEntityValidation.js +18 -0
  323. package/dist/state/healthRepair.js +69 -0
  324. package/dist/state/installRoot.js +64 -25
  325. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  326. package/dist/state/legacyIdentity.js +47 -0
  327. package/dist/state/legacySummaryRecord.js +6 -0
  328. package/dist/state/listAccounting.js +54 -0
  329. package/dist/state/listClassification.js +17 -0
  330. package/dist/state/listCursor.js +42 -0
  331. package/dist/state/listRetrieval.js +781 -0
  332. package/dist/state/migrationSourceBinding.js +30 -0
  333. package/dist/state/objectiveExperimentEntities.js +322 -0
  334. package/dist/state/planEntities.js +530 -0
  335. package/dist/state/planIdentity.js +47 -0
  336. package/dist/state/planRetrieval.js +313 -0
  337. package/dist/state/planTaskRetrieval.js +294 -0
  338. package/dist/state/progressEntities.js +512 -0
  339. package/dist/state/progressGlossaryCaveat.js +168 -0
  340. package/dist/state/progressPublicationOrder.js +19 -0
  341. package/dist/state/projectRoot.js +62 -0
  342. package/dist/state/projectionPolicy.js +190 -0
  343. package/dist/state/retrievalAuthority.js +156 -0
  344. package/dist/state/safeProjectFile.js +155 -0
  345. package/dist/state/startupAnalysis/benchmark.js +432 -0
  346. package/dist/state/startupAnalysis/contract.js +160 -0
  347. package/dist/state/startupAnalysis/helpers.js +286 -0
  348. package/dist/state/startupAnalysis/index.js +6 -0
  349. package/dist/state/startupAnalysis/metrics.js +340 -0
  350. package/dist/state/startupAnalysis/records.js +198 -0
  351. package/dist/state/startupAnalysis/report.js +111 -0
  352. package/dist/state/startupAnalysis/threshold.js +512 -0
  353. package/dist/state/startupAnalysis.js +2 -1953
  354. package/dist/state/startupProjection.js +499 -0
  355. package/dist/state/stateMode.js +85 -0
  356. package/dist/state/stateStorageAuthority.js +47 -0
  357. package/dist/state/summaryEntityRead.js +25 -0
  358. package/dist/state/summaryMigrationProvenance.js +66 -0
  359. package/dist/state/summarySourceRowAuthority.js +36 -0
  360. package/dist/state/todoDocsEntities.js +1064 -0
  361. package/dist/state/todoDocsEntityValidation.js +158 -0
  362. package/dist/state/todoMarkdownProjection.js +51 -0
  363. package/dist/state/todoReconciliationActivation.js +132 -0
  364. package/dist/state/todoReconciliationInspection.js +173 -0
  365. package/dist/state/todoReconciliationRepair.js +170 -0
  366. package/dist/state/todoReconciliationTransaction.js +582 -0
  367. package/dist/state/write/assign.js +20 -0
  368. package/dist/state/write/candidateMutation.js +269 -0
  369. package/dist/state/write/errors.js +11 -0
  370. package/dist/state/write/experimentPublication.js +192 -0
  371. package/dist/state/write/explain.js +332 -0
  372. package/dist/state/write/fields.js +61 -0
  373. package/dist/state/write/glossaryPublication.js +263 -0
  374. package/dist/state/write/grammar.js +280 -0
  375. package/dist/state/write/helpers.js +29 -0
  376. package/dist/state/write/index.js +12 -0
  377. package/dist/state/write/input.js +367 -0
  378. package/dist/state/write/lock.js +837 -0
  379. package/dist/state/write/mutation.js +234 -0
  380. package/dist/state/write/operations.js +169 -0
  381. package/dist/state/write/planEvaluation.js +128 -0
  382. package/dist/state/write/planPublication.js +179 -0
  383. package/dist/state/write/runtimeOperations.js +142 -0
  384. package/dist/state/write/serialize.js +1 -0
  385. package/dist/state/write/transaction.js +52 -0
  386. package/dist/state/write/validate.js +7 -0
  387. package/dist/upgrade/appContentRefresh.js +383 -0
  388. package/dist/upgrade/appModel.js +8 -7
  389. package/dist/upgrade/atomicWriter.js +1 -0
  390. package/dist/upgrade/bundleEvidence.js +33 -0
  391. package/dist/upgrade/channels.js +12 -8
  392. package/dist/upgrade/compatibility.js +56 -21
  393. package/dist/upgrade/doctor.js +197 -192
  394. package/dist/upgrade/doctorClassifier.js +187 -0
  395. package/dist/upgrade/installedHooksRetirement.js +196 -0
  396. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  397. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  398. package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
  399. package/dist/upgrade/migrationPublication.js +122 -0
  400. package/dist/upgrade/nextMajorDoctor.js +155 -0
  401. package/dist/upgrade/npxPlatformStatus.js +22 -0
  402. package/dist/upgrade/projectIntegration.js +145 -187
  403. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  404. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  405. package/dist/upgrade/runtimeMigration.js +278 -352
  406. package/dist/upgrade/upgradeCommands.js +14 -1
  407. package/dist/upgrade/upgradeLock.js +85 -0
  408. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  409. package/dist/upgrade/v3CapabilitySurface.js +14 -0
  410. package/dist/upgrade/versionResolution.js +12 -5
  411. package/dist/validate/activationArtifactEvidence.js +844 -0
  412. package/dist/validate/activationConjunction.js +816 -0
  413. package/dist/validate/activationEvidenceManifest.js +515 -0
  414. package/dist/validate/activationPackageSemantics.js +29 -0
  415. package/dist/validate/appHomeContract.js +5 -11
  416. package/dist/validate/bootstrapAuthority.js +44 -0
  417. package/dist/validate/capability.js +144 -15
  418. package/dist/validate/crossCapability.js +15 -10
  419. package/dist/validate/retainedReferenceAuthority.js +879 -0
  420. package/dist/validate/selfAudit.js +73 -37
  421. package/dist/validate/v1LegacyCruft.js +131 -0
  422. package/dist/validate/vocabularyAuthority.js +303 -0
  423. package/package.json +53 -27
  424. package/bundle/references/adapters/cursor.md +0 -213
  425. package/bundle/references/adapters/opencode.md +0 -530
  426. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  427. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  428. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  429. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  430. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  431. package/bundle/references/analysis/benchmark.md +0 -267
  432. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  433. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  434. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -355
  435. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
  436. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  437. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  438. package/bundle/references/meta/documentation-inventory.md +0 -43
  439. package/bundle/references/v1-section-mapping.md +0 -47
  440. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  441. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  442. package/bundle/skills/agentera/agents/hej.toml +0 -6
  443. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  444. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  445. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  446. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  447. package/bundle/skills/agentera/agents/planera.toml +0 -6
  448. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  449. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  450. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  451. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  452. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  453. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  454. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  455. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  456. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  457. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +0 -69
  458. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +0 -58
  459. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  460. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +0 -76
  461. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  462. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  463. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  464. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  465. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  466. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  467. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  468. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  469. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  470. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -107
  471. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  472. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  473. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  474. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  475. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  476. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  477. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  478. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  479. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  480. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  481. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  482. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  483. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  484. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  485. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  486. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  487. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  488. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  489. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  490. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  491. package/bundle/skills/agentera/references/contract.md +0 -1039
  492. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  493. package/bundle/skills/hej/SKILL.md +0 -69
  494. package/bundle/skills/hej/agents/hej.toml +0 -11
  495. package/bundle/skills/hej/agents/openai.yaml +0 -8
  496. package/dist/analytics/extractCorpus.js.map +0 -1
  497. package/dist/analytics/usageStats.js.map +0 -1
  498. package/dist/bin/agentera.js.map +0 -1
  499. package/dist/cli/appContext.js.map +0 -1
  500. package/dist/cli/argvalidate.js.map +0 -1
  501. package/dist/cli/capabilityContext.js.map +0 -1
  502. package/dist/cli/commands/backfill.js +0 -84
  503. package/dist/cli/commands/backfill.js.map +0 -1
  504. package/dist/cli/commands/capability.js.map +0 -1
  505. package/dist/cli/commands/compact.js.map +0 -1
  506. package/dist/cli/commands/doctor.js.map +0 -1
  507. package/dist/cli/commands/lint.js.map +0 -1
  508. package/dist/cli/commands/prime.js.map +0 -1
  509. package/dist/cli/commands/query.js.map +0 -1
  510. package/dist/cli/commands/report.js.map +0 -1
  511. package/dist/cli/commands/schema.js.map +0 -1
  512. package/dist/cli/commands/state.js +0 -1012
  513. package/dist/cli/commands/state.js.map +0 -1
  514. package/dist/cli/commands/upgrade.js.map +0 -1
  515. package/dist/cli/commands/validate.js.map +0 -1
  516. package/dist/cli/commands/verify.js.map +0 -1
  517. package/dist/cli/dispatch.js.map +0 -1
  518. package/dist/cli/help.js.map +0 -1
  519. package/dist/cli/orientation.js.map +0 -1
  520. package/dist/cli/prime-blob.js.map +0 -1
  521. package/dist/cli/stateQuery.js.map +0 -1
  522. package/dist/cli/structured.js.map +0 -1
  523. package/dist/core/difflib.js.map +0 -1
  524. package/dist/core/git.js +0 -43
  525. package/dist/core/git.js.map +0 -1
  526. package/dist/core/paths.js.map +0 -1
  527. package/dist/core/pyjson.js.map +0 -1
  528. package/dist/core/sourceRoot.js.map +0 -1
  529. package/dist/core/toml.js.map +0 -1
  530. package/dist/core/yaml.js.map +0 -1
  531. package/dist/eval/evalSkills.js.map +0 -1
  532. package/dist/eval/semanticEval.js.map +0 -1
  533. package/dist/eval/semanticFixtures.js.map +0 -1
  534. package/dist/hooks/common.js.map +0 -1
  535. package/dist/hooks/compaction.js +0 -935
  536. package/dist/hooks/compaction.js.map +0 -1
  537. package/dist/hooks/cursorPreToolUse.js +0 -19
  538. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  539. package/dist/hooks/cursorSessionStart.js +0 -71
  540. package/dist/hooks/cursorSessionStart.js.map +0 -1
  541. package/dist/hooks/sessionStart.js +0 -209
  542. package/dist/hooks/sessionStart.js.map +0 -1
  543. package/dist/hooks/sessionStop.js +0 -212
  544. package/dist/hooks/sessionStop.js.map +0 -1
  545. package/dist/hooks/validateArtifact.js +0 -933
  546. package/dist/hooks/validateArtifact.js.map +0 -1
  547. package/dist/registries/artifactRegistry.js.map +0 -1
  548. package/dist/registries/capabilityContract.js.map +0 -1
  549. package/dist/registries/packageRegistry.js.map +0 -1
  550. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  551. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  552. package/dist/setup/codex.js +0 -1056
  553. package/dist/setup/codex.js.map +0 -1
  554. package/dist/setup/copilot.js +0 -227
  555. package/dist/setup/copilot.js.map +0 -1
  556. package/dist/setup/cursor.js +0 -127
  557. package/dist/setup/cursor.js.map +0 -1
  558. package/dist/setup/doctor.js +0 -1297
  559. package/dist/setup/doctor.js.map +0 -1
  560. package/dist/setup/smokeChecks.js.map +0 -1
  561. package/dist/state/installRoot.js.map +0 -1
  562. package/dist/state/progressCommit.js +0 -289
  563. package/dist/state/progressCommit.js.map +0 -1
  564. package/dist/state/startupAnalysis.js.map +0 -1
  565. package/dist/upgrade/appModel.js.map +0 -1
  566. package/dist/upgrade/channels.js.map +0 -1
  567. package/dist/upgrade/compatibility.js.map +0 -1
  568. package/dist/upgrade/doctor.js.map +0 -1
  569. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -571
  570. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  571. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  572. package/dist/upgrade/projectIntegration.js.map +0 -1
  573. package/dist/upgrade/runtimeMigration.js.map +0 -1
  574. package/dist/upgrade/upgradeCommands.js.map +0 -1
  575. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  576. package/dist/upgrade/versionResolution.js.map +0 -1
  577. package/dist/validate/appHomeContract.js.map +0 -1
  578. package/dist/validate/capability.js.map +0 -1
  579. package/dist/validate/crossCapability.js.map +0 -1
  580. package/dist/validate/lifecycleAdapters.js +0 -772
  581. package/dist/validate/lifecycleAdapters.js.map +0 -1
  582. package/dist/validate/selfAudit.js.map +0 -1
  583. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  584. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  585. /package/bundle/skills/agentera/capabilities/{hej → status}/schemas/exit.yaml +0 -0
@@ -1,9 +1,11 @@
1
1
  import { main as evalSkillsMain } from "../../eval/evalSkills.js";
2
2
  import { main as semanticEvalMain } from "../../eval/semanticEval.js";
3
+ import { evaluateHybridRoute } from "../../eval/hybridRouteEvaluation.js";
4
+ import { routeEvaluationExitCode } from "./route.js";
3
5
  export const VERIFY_FAMILIES = ["eval"];
4
6
  export const RETIRED_VERIFY_FAMILIES = ["smoke"];
5
7
  export const VERIFY_TARGETS = {
6
- eval: ["skills", "semantic"],
8
+ eval: ["skills", "semantic", "routing"],
7
9
  };
8
10
  export const VERIFY_FORMATS = ["text", "json"];
9
11
  export const VERIFY_DIAGNOSTIC_LINE_LIMIT = 20;
@@ -43,14 +45,14 @@ export function validateVerifyRequest(args) {
43
45
  if (family === "eval" && target === "skills" && args.run && args.dryRun) {
44
46
  throw new Error("unsupported eval skills request combines --run and --dry-run; choose one mode. " +
45
47
  "Safe default: omit --run to list the bounded dry-run plan without invoking a runtime. " +
46
- "Syntax: agentera verify eval skills [--run] [--skill NAME] [--timeout SECONDS] [--parallel N] [--runtime auto|claude|opencode] [--format text|json]. " +
48
+ "Syntax: agentera verify eval skills [--run] [--skill NAME] [--timeout SECONDS] [--parallel N] [--runtime auto|opencode|cursor] [--format text|json]. " +
47
49
  "Example: agentera verify eval skills --dry-run --format json");
48
50
  }
49
51
  if (family === "eval" && target === "skills") {
50
52
  const runtime = String(args.runtime ?? "auto");
51
- if (!["auto", "claude", "opencode"].includes(runtime)) {
52
- throw new Error(`unsupported eval skills runtime '${runtime}'; valid runtimes: auto, claude, opencode. ` +
53
- "Syntax: agentera verify eval skills [--run] [--runtime auto|claude|opencode] [--format text|json]. " +
53
+ if (!["auto", "opencode", "cursor"].includes(runtime)) {
54
+ throw new Error(`unsupported eval skills runtime '${runtime}'; valid runtimes: auto, opencode, cursor. ` +
55
+ "Syntax: agentera verify eval skills [--run] [--runtime auto|opencode|cursor] [--format text|json]. " +
54
56
  "Example: agentera verify eval skills --format json");
55
57
  }
56
58
  if ((args.parallel ?? 1) < 1 || (args.timeout ?? 120) < 1) {
@@ -63,7 +65,7 @@ export function validateVerifyRequest(args) {
63
65
  throw new Error("semantic verify requires explicit fixture path(s); broad fixture discovery is not a safe default. " +
64
66
  "Valid targets for eval: skills, semantic. " +
65
67
  "Syntax: agentera verify eval semantic <fixture> [<fixture>...] [--format text|json]. " +
66
- "Example: agentera verify eval semantic fixtures/semantic/hej-bare-message.md --format json");
68
+ "Example: agentera verify eval semantic fixtures/semantic/bare-agentera-message.md --format json");
67
69
  }
68
70
  return [family, target, outputFormat];
69
71
  }
@@ -92,11 +94,11 @@ function runVerifyEngine(family, target, args) {
92
94
  }
93
95
  else {
94
96
  // Pin a concrete runtime for safe discovery unless explicitly chosen.
95
- const dryRunRuntime = runtime !== "auto" ? runtime : "claude";
97
+ const dryRunRuntime = runtime !== "auto" ? runtime : "opencode";
96
98
  engineArgs.push("--parallel", parallel, "--timeout", timeout, "--runtime", dryRunRuntime, "--dry-run");
97
99
  safety = {
98
100
  mode: "dry-run",
99
- summary: "default lists skill prompts without invoking Claude Code, OpenCode, or long-running evals",
101
+ summary: "default lists skill prompts without invoking OpenCode, Cursor, or long-running evals",
100
102
  live: false,
101
103
  long_running_default: false,
102
104
  };
@@ -115,6 +117,20 @@ function runVerifyEngine(family, target, args) {
115
117
  const result = runInProcess(["eval", "semantic", ...fixtures], (out) => semanticEvalMain(fixtures, (l) => out(l)));
116
118
  return { result, safety };
117
119
  }
120
+ if (family === "eval" && target === "routing") {
121
+ const safety = {
122
+ mode: "offline-frozen-corpus",
123
+ summary: "runs the contract-owned frozen synthetic corpus only; it never sends requests or invokes a semantic host",
124
+ live: false,
125
+ long_running_default: false,
126
+ };
127
+ const result = runInProcess(["eval", "routing"], (out) => {
128
+ const report = evaluateHybridRoute();
129
+ out(JSON.stringify(report, null, 2) + "\n");
130
+ return routeEvaluationExitCode(report);
131
+ });
132
+ return { result, safety };
133
+ }
118
134
  throw new Error(`unhandled verify target ${family}/${target}`);
119
135
  }
120
136
  function runInProcess(command, invoke) {
@@ -207,4 +223,3 @@ export function cmdVerify(args, io = {}) {
207
223
  }
208
224
  return result.returncode;
209
225
  }
210
- //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ /** Shared argv flag helpers for dispatch-layer parsers. */
2
+ /** Read `--flag` or `--flag=value` at argv[index]. */
3
+ export function readArgvFlag(argv, index, name) {
4
+ const a = argv[index];
5
+ if (a === name)
6
+ return argv[index + 1] ?? null;
7
+ if (a.startsWith(name + "="))
8
+ return a.slice(name.length + 1);
9
+ return null;
10
+ }
11
+ /** True when argv[index] is `name` or `name=value`. */
12
+ export function matchesArgvFlag(argv, index, name) {
13
+ const a = argv[index];
14
+ return a === name || a.startsWith(name + "=");
15
+ }
16
+ /**
17
+ * Factory matching the inline `value(name)` closures used across dispatch parsers.
18
+ * Space-separated values advance the outer loop index via setIndex.
19
+ */
20
+ export function makeArgvValueReader(argv, getIndex, setIndex) {
21
+ return (name) => {
22
+ const i = getIndex();
23
+ const a = argv[i];
24
+ if (a === name) {
25
+ setIndex(i + 1);
26
+ return argv[i + 1] ?? null;
27
+ }
28
+ if (a.startsWith(name + "="))
29
+ return a.slice(name.length + 1);
30
+ return null;
31
+ };
32
+ }
@@ -0,0 +1,372 @@
1
+ import { cmdLint } from "../commands/lint.js";
2
+ import { cmdCompact } from "../commands/compact.js";
3
+ import { cmdSchema } from "../commands/schema.js";
4
+ import { cmdValidate, cmdValidateCapability, cmdValidateCapabilityContract, cmdValidateArtifact, cmdValidateState, isDelegatedValidateFamily, VALIDATE_FAMILY_NAMES, cmdValidateActivationConjunction, } from "../commands/validate.js";
5
+ import { makeArgvValueReader } from "./argvParser.js";
6
+ import { asEnvelopeFormat, classifyParseError, detectTopLevelFormat } from "./shared.js";
7
+ import { emitInvalidInput } from "../errors.js";
8
+ import { StateWriteInputError } from "../../state/write/errors.js";
9
+ import { cmdDurability, entityDurabilityFailure, emitDurabilityFailure, requestedDurabilityFormat, validateDurabilityArgs, } from "../commands/durability.js";
10
+ import { resolveSourceRoot } from "../../core/sourceRoot.js";
11
+ import { StateRetrievalFailure } from "../../state/directRetrieval.js";
12
+ /** Minimal flag parser for the `lint` command surface. */
13
+ export function parseLintArgs(argv) {
14
+ const args = { artifact: "", file: null, text: null, strict: false, format: "text" };
15
+ let sawArtifact = false;
16
+ let i = 0;
17
+ const value = makeArgvValueReader(argv, () => i, (n) => {
18
+ i = n;
19
+ });
20
+ for (; i < argv.length; i++) {
21
+ const a = argv[i];
22
+ let v;
23
+ if ((v = value("--artifact")) !== null) {
24
+ args.artifact = v;
25
+ sawArtifact = true;
26
+ }
27
+ else if ((v = value("--file")) !== null) {
28
+ args.file = v;
29
+ }
30
+ else if ((v = value("--text")) !== null) {
31
+ args.text = v;
32
+ }
33
+ else if (a === "--strict") {
34
+ args.strict = true;
35
+ }
36
+ else if ((v = value("--format")) !== null) {
37
+ if (v !== "text" && v !== "json") {
38
+ return { error: `argument --format: invalid choice: '${v}' (choose from 'text', 'json')` };
39
+ }
40
+ args.format = v;
41
+ }
42
+ else {
43
+ return { error: `unrecognized arguments: ${a}` };
44
+ }
45
+ }
46
+ if (!sawArtifact)
47
+ return { error: "the following arguments are required: --artifact" };
48
+ if (args.file !== null && args.text !== null) {
49
+ return { error: "argument --text: not allowed with argument --file" };
50
+ }
51
+ return args;
52
+ }
53
+ export function runLint(argv, io, prog = "agentera lint") {
54
+ const parsed = parseLintArgs(argv);
55
+ if ("error" in parsed) {
56
+ return emitInvalidInput(io, {
57
+ format: detectTopLevelFormat(argv),
58
+ body: classifyParseError(parsed.error),
59
+ });
60
+ }
61
+ try {
62
+ return cmdLint(parsed, io);
63
+ }
64
+ catch (exc) {
65
+ return emitInvalidInput(io, {
66
+ format: asEnvelopeFormat(parsed.format),
67
+ body: { class: "unsupported_target", message: exc.message },
68
+ });
69
+ }
70
+ }
71
+ export function compactModeOf(argv) {
72
+ for (let i = 0; i < argv.length; i++) {
73
+ if (argv[i] === "--apply")
74
+ return "fix";
75
+ if (argv[i] === "--mode")
76
+ return argv[i + 1] ?? "check";
77
+ if (argv[i].startsWith("--mode="))
78
+ return argv[i].slice("--mode=".length);
79
+ }
80
+ return "check";
81
+ }
82
+ export function parseCompactArgs(argv) {
83
+ const args = { project: null, mode: "check", format: "text" };
84
+ let i = 0;
85
+ const value = makeArgvValueReader(argv, () => i, (n) => {
86
+ i = n;
87
+ });
88
+ for (; i < argv.length; i++) {
89
+ const a = argv[i];
90
+ let v;
91
+ if (a === "--apply") {
92
+ args.mode = "fix";
93
+ }
94
+ else if ((v = value("--project")) !== null)
95
+ args.project = v;
96
+ else if ((v = value("--mode")) !== null) {
97
+ if (v !== "check" && v !== "fix") {
98
+ return { error: `argument --mode: invalid choice: '${v}' (choose from 'check', 'fix')` };
99
+ }
100
+ args.mode = v;
101
+ }
102
+ else if ((v = value("--format")) !== null) {
103
+ if (v !== "text" && v !== "json") {
104
+ return { error: `argument --format: invalid choice: '${v}' (choose from 'text', 'json')` };
105
+ }
106
+ args.format = v;
107
+ }
108
+ else
109
+ return { error: `unrecognized arguments: ${a}` };
110
+ }
111
+ return args;
112
+ }
113
+ export function runCompact(argv, io, prog) {
114
+ const parsed = parseCompactArgs(argv);
115
+ if ("error" in parsed) {
116
+ return emitInvalidInput(io, {
117
+ format: "text",
118
+ body: classifyParseError(parsed.error),
119
+ });
120
+ }
121
+ try {
122
+ return cmdCompact(parsed, io);
123
+ }
124
+ catch (exc) {
125
+ if (exc instanceof StateWriteInputError)
126
+ return emitInvalidInput(io, { format: asEnvelopeFormat(parsed.format), body: exc.body });
127
+ return emitInvalidInput(io, {
128
+ format: asEnvelopeFormat(parsed.format),
129
+ body: { class: "unsupported_target", message: exc.message },
130
+ });
131
+ }
132
+ }
133
+ export function parseDurabilityArgs(argv) {
134
+ const args = { project: null, artifact: null, format: "text" };
135
+ let i = 0;
136
+ const value = makeArgvValueReader(argv, () => i, (n) => {
137
+ i = n;
138
+ });
139
+ for (; i < argv.length; i++) {
140
+ const token = argv[i];
141
+ let parsed;
142
+ if ((parsed = value("--project")) !== null)
143
+ args.project = parsed;
144
+ else if ((parsed = value("--artifact")) !== null)
145
+ args.artifact = parsed;
146
+ else if ((parsed = value("--id")) !== null)
147
+ args.id = parsed;
148
+ else if ((parsed = value("--number")) !== null) {
149
+ if (!/^[1-9][0-9]*$/.test(parsed))
150
+ return { error: `argument --number: invalid int value: '${parsed}'` };
151
+ const number = Number(parsed);
152
+ if (!Number.isSafeInteger(number))
153
+ return { error: `argument --number: invalid int value: '${parsed}'` };
154
+ args.number = number;
155
+ }
156
+ else if ((parsed = value("--limit")) !== null) {
157
+ if (!/^[1-9][0-9]*$/.test(parsed))
158
+ return { error: `argument --limit: invalid int value: '${parsed}'` };
159
+ const limit = Number(parsed);
160
+ if (!Number.isSafeInteger(limit))
161
+ return { error: `argument --limit: invalid int value: '${parsed}'` };
162
+ args.limit = limit;
163
+ }
164
+ else if ((parsed = value("--format")) !== null) {
165
+ if (parsed !== "text" && parsed !== "json" && parsed !== "yaml") {
166
+ return { error: `argument --format: invalid choice: '${parsed}' (choose from 'text', 'json', 'yaml')` };
167
+ }
168
+ args.format = parsed;
169
+ }
170
+ else
171
+ return { error: `unrecognized arguments: ${token}` };
172
+ }
173
+ if (args.number !== undefined && !args.artifact) {
174
+ return { error: "the following arguments are required: --artifact when --number is supplied" };
175
+ }
176
+ return args;
177
+ }
178
+ export function runDurability(argv, io, prog) {
179
+ const format = requestedDurabilityFormat(argv);
180
+ const sourceRoot = resolveSourceRoot();
181
+ const parsed = parseDurabilityArgs(argv);
182
+ if ("error" in parsed) {
183
+ return emitDurabilityFailure(entityDurabilityFailure(parsed.error), format, io);
184
+ }
185
+ try {
186
+ validateDurabilityArgs(parsed, sourceRoot);
187
+ return cmdDurability(parsed, io);
188
+ }
189
+ catch (exc) {
190
+ if (exc instanceof StateRetrievalFailure)
191
+ return emitDurabilityFailure(exc, format, io);
192
+ return emitDurabilityFailure(entityDurabilityFailure(exc.message, parsed.artifact, parsed.id ?? undefined), format, io);
193
+ }
194
+ }
195
+ export function runValidate(argv, io, prog) {
196
+ const requestedFormat = detectTopLevelFormat(argv);
197
+ let family = null;
198
+ let capabilityTarget = null;
199
+ let artifactFlag = null;
200
+ let fileFlag = null;
201
+ let cwdFlag = null;
202
+ let format = "text";
203
+ for (let i = 0; i < argv.length; i++) {
204
+ const a = argv[i];
205
+ if (a === "--format") {
206
+ const v = argv[++i];
207
+ if (v !== "text" && v !== "json") {
208
+ return emitInvalidInput(io, {
209
+ format,
210
+ body: {
211
+ class: "invalid_choice",
212
+ message: `argument --format: invalid choice: '${v}' (choose from 'text', 'json')`,
213
+ valid_values: ["text", "json"],
214
+ },
215
+ });
216
+ }
217
+ format = v;
218
+ }
219
+ else if (a.startsWith("--format=")) {
220
+ const v = a.slice("--format=".length);
221
+ if (v !== "text" && v !== "json") {
222
+ return emitInvalidInput(io, {
223
+ format,
224
+ body: {
225
+ class: "invalid_choice",
226
+ message: `argument --format: invalid choice: '${v}' (choose from 'text', 'json')`,
227
+ valid_values: ["text", "json"],
228
+ },
229
+ });
230
+ }
231
+ format = v;
232
+ }
233
+ else if (a === "--artifact" || a.startsWith("--artifact=")) {
234
+ artifactFlag = a === "--artifact" ? argv[++i] : a.slice("--artifact=".length);
235
+ }
236
+ else if (a === "--file" || a.startsWith("--file=")) {
237
+ fileFlag = a === "--file" ? argv[++i] : a.slice("--file=".length);
238
+ }
239
+ else if (a === "--cwd" || a.startsWith("--cwd=")) {
240
+ cwdFlag = a === "--cwd" ? argv[++i] : a.slice("--cwd=".length);
241
+ }
242
+ else if (a.startsWith("--")) {
243
+ return emitInvalidInput(io, {
244
+ format: requestedFormat,
245
+ body: {
246
+ class: "unrecognized_argument",
247
+ message: `unrecognized arguments: ${a}`,
248
+ },
249
+ });
250
+ }
251
+ else if (family === null) {
252
+ family = a;
253
+ }
254
+ else if (capabilityTarget === null) {
255
+ capabilityTarget = a;
256
+ }
257
+ else {
258
+ return emitInvalidInput(io, {
259
+ format: requestedFormat,
260
+ body: {
261
+ class: "unrecognized_argument",
262
+ message: `unrecognized arguments: ${a}`,
263
+ },
264
+ });
265
+ }
266
+ }
267
+ if (family === null) {
268
+ return emitInvalidInput(io, {
269
+ format,
270
+ body: {
271
+ class: "missing_argument",
272
+ message: "the following arguments are required: validate_family",
273
+ valid_values: [...VALIDATE_FAMILY_NAMES],
274
+ example: "agentera check validate cross-capability",
275
+ },
276
+ });
277
+ }
278
+ try {
279
+ if (family === "capability") {
280
+ if (capabilityTarget === null) {
281
+ return emitInvalidInput(io, {
282
+ format,
283
+ body: {
284
+ class: "missing_argument",
285
+ message: "the following arguments are required: target",
286
+ example: "agentera check validate capability plan",
287
+ },
288
+ });
289
+ }
290
+ return cmdValidateCapability(capabilityTarget, { format }, io);
291
+ }
292
+ if (family === "capability-contract") {
293
+ return cmdValidateCapabilityContract({ format }, io);
294
+ }
295
+ if (family === "activation-conjunction") {
296
+ return cmdValidateActivationConjunction(io);
297
+ }
298
+ if (family === "artifact") {
299
+ if (artifactFlag === null) {
300
+ return emitInvalidInput(io, {
301
+ format,
302
+ body: {
303
+ class: "missing_argument",
304
+ message: "the following arguments are required: --artifact",
305
+ example: "agentera check validate artifact --artifact plan",
306
+ },
307
+ });
308
+ }
309
+ return cmdValidateArtifact({ artifact: artifactFlag, file: fileFlag, cwd: cwdFlag, format }, io);
310
+ }
311
+ if (family === "state") {
312
+ return cmdValidateState({ cwd: cwdFlag, format }, io);
313
+ }
314
+ if (isDelegatedValidateFamily(family)) {
315
+ return cmdValidate(family, { format }, io);
316
+ }
317
+ return emitInvalidInput(io, {
318
+ format,
319
+ body: {
320
+ class: "unsupported_target",
321
+ message: `unsupported validate family '${family}'; valid families are listed in valid_values.`,
322
+ valid_values: [...VALIDATE_FAMILY_NAMES],
323
+ },
324
+ });
325
+ }
326
+ catch (exc) {
327
+ return emitInvalidInput(io, {
328
+ format,
329
+ body: {
330
+ class: "unsupported_target",
331
+ message: exc.message,
332
+ },
333
+ });
334
+ }
335
+ }
336
+ export function runSchema(argv, io, prog) {
337
+ let format = "json";
338
+ for (let i = 0; i < argv.length; i++) {
339
+ const a = argv[i];
340
+ let v = null;
341
+ if (a === "--format")
342
+ v = argv[++i];
343
+ else if (a.startsWith("--format="))
344
+ v = a.slice("--format=".length);
345
+ else {
346
+ return emitInvalidInput(io, {
347
+ format: asEnvelopeFormat(format),
348
+ body: { class: "unrecognized_argument", message: `unrecognized arguments: ${a}` },
349
+ });
350
+ }
351
+ if (v !== "json" && v !== "yaml") {
352
+ return emitInvalidInput(io, {
353
+ format: asEnvelopeFormat(format),
354
+ body: {
355
+ class: "invalid_choice",
356
+ message: `argument --format: invalid choice: '${v}' (choose from 'json', 'yaml')`,
357
+ valid_values: ["json", "yaml"],
358
+ },
359
+ });
360
+ }
361
+ format = v;
362
+ }
363
+ try {
364
+ return cmdSchema({ format }, io);
365
+ }
366
+ catch (exc) {
367
+ return emitInvalidInput(io, {
368
+ format: asEnvelopeFormat(format),
369
+ body: { class: "unsupported_target", message: exc.message },
370
+ });
371
+ }
372
+ }
@@ -0,0 +1,27 @@
1
+ import { CAPABILITY_ROUTING_NAMES } from "../commands/capability.js";
2
+ import { DIAGNOSTIC_TOP_LEVEL_COMMANDS } from "./projections.js";
3
+ /**
4
+ * Top-level commands routed by `dispatch/main` (includes migration aliases still
5
+ * accepted at the CLI surface).
6
+ */
7
+ export const DISPATCHER_TOP_LEVEL_COMMANDS = [
8
+ "prime",
9
+ "app-home",
10
+ "doctor",
11
+ "usage",
12
+ "upgrade",
13
+ "verify",
14
+ "report",
15
+ "stats",
16
+ "schema",
17
+ "lint",
18
+ "check",
19
+ "state",
20
+ "query",
21
+ "compact",
22
+ "validate",
23
+ "route",
24
+ ...CAPABILITY_ROUTING_NAMES,
25
+ ];
26
+ /** Set view for doctor in-process CLI probe checks. */
27
+ export const DISPATCHER_COMMANDS = new Set(DIAGNOSTIC_TOP_LEVEL_COMMANDS);