agentera 3.0.0-dev.5 → 3.0.0-dev.51

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 (598) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +119 -22
  3. package/bundle/CHANGELOG.md +1351 -0
  4. package/bundle/DESIGN.md +229 -0
  5. package/bundle/LICENSE +201 -0
  6. package/bundle/README.md +143 -0
  7. package/bundle/UPGRADE.md +236 -0
  8. package/bundle/extract-corpus-parity.json +21 -0
  9. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  10. package/bundle/references/adapters/package-publication.json +437 -0
  11. package/bundle/references/adapters/package-registry.yaml +435 -189
  12. package/bundle/references/adapters/package-surface-characterization.md +66 -35
  13. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  14. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  15. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  16. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  17. package/bundle/references/analysis/evidence-tier-authority.yaml +518 -0
  18. package/bundle/references/analysis/verification-policy.yaml +191 -0
  19. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +20 -10
  20. package/bundle/references/artifacts/glossary-entry-contract.yaml +1254 -0
  21. package/bundle/references/artifacts/state-storage-authority.yaml +3022 -0
  22. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  23. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +7 -8
  24. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  25. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  26. package/bundle/references/cli/routing-model.md +155 -0
  27. package/bundle/references/cli/trigger-schema-enrichment.md +147 -0
  28. package/bundle/references/cli/update-channels.yaml +19 -1
  29. package/bundle/references/cli/vocabulary-index.yaml +20 -17
  30. package/bundle/references/cli/vocabulary.md +326 -361
  31. package/bundle/references/meta/retained-reference-authority.yaml +151 -0
  32. package/bundle/registry.json +13 -13
  33. package/bundle/skills/agentera/SKILL.md +224 -422
  34. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +84 -0
  35. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/exit.yaml +2 -2
  36. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +25 -0
  37. package/bundle/skills/agentera/capabilities/{inspektera → audit}/schemas/validation.yaml +37 -18
  38. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +102 -0
  39. package/bundle/skills/agentera/capabilities/{realisera → build}/schemas/exit.yaml +6 -5
  40. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +27 -0
  41. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +176 -0
  42. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/artifacts.yaml +12 -12
  43. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/exit.yaml +5 -5
  44. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +16 -0
  45. package/bundle/skills/agentera/capabilities/{visualisera → design}/schemas/validation.yaml +7 -7
  46. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +51 -0
  47. package/bundle/skills/agentera/capabilities/{resonera → discuss}/schemas/exit.yaml +2 -2
  48. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +20 -0
  49. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +144 -0
  50. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +80 -0
  51. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +16 -0
  52. package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/validation.yaml +18 -18
  53. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/artifacts.yaml +18 -18
  54. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/exit.yaml +2 -2
  55. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +16 -0
  56. package/bundle/skills/agentera/capabilities/{optimera → optimize}/schemas/validation.yaml +9 -9
  57. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +76 -0
  58. package/bundle/skills/agentera/capabilities/{orkestrera → orchestrate}/schemas/exit.yaml +9 -7
  59. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +23 -0
  60. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +121 -0
  61. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +66 -0
  62. package/bundle/skills/agentera/capabilities/{planera → plan}/schemas/exit.yaml +2 -2
  63. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +23 -0
  64. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +121 -0
  65. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +23 -0
  66. package/bundle/skills/agentera/capabilities/{profilera → profile}/schemas/exit.yaml +6 -5
  67. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +20 -0
  68. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +115 -0
  69. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +24 -0
  70. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +16 -0
  71. package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/validation.yaml +2 -2
  72. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +73 -0
  73. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +22 -0
  74. package/bundle/skills/agentera/capabilities/{hej → status}/schemas/validation.yaml +5 -5
  75. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/artifacts.yaml +16 -16
  76. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/exit.yaml +7 -6
  77. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +23 -0
  78. package/bundle/skills/agentera/capabilities/{visionera → vision}/schemas/validation.yaml +18 -20
  79. package/bundle/skills/agentera/capability_schema_contract.yaml +178 -34
  80. package/bundle/skills/agentera/protocol.yaml +31 -31
  81. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  82. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +5 -4
  83. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +39 -21
  84. package/bundle/skills/agentera/schemas/artifacts/design.yaml +5 -4
  85. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +15 -19
  86. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +145 -14
  87. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +82 -0
  88. package/bundle/skills/agentera/schemas/artifacts/health.yaml +58 -21
  89. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +22 -8
  90. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +458 -36
  91. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +128 -17
  92. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +342 -42
  93. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +3 -3
  94. package/dist/analytics/extractCorpus/cli.js +190 -0
  95. package/dist/analytics/extractCorpus/copilotSessions.js +275 -0
  96. package/dist/analytics/extractCorpus/core.js +392 -0
  97. package/dist/analytics/extractCorpus/corpus.js +167 -0
  98. package/dist/analytics/extractCorpus/coverageAudit.js +260 -0
  99. package/dist/analytics/extractCorpus/cursorSessions.js +425 -0
  100. package/dist/analytics/extractCorpus/evidenceTiers.js +603 -0
  101. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  102. package/dist/analytics/extractCorpus/filesystemSources.js +118 -0
  103. package/dist/analytics/extractCorpus/index.js +14 -0
  104. package/dist/analytics/extractCorpus/jsonlSessions.js +204 -0
  105. package/dist/analytics/extractCorpus/sqliteCaps.js +43 -0
  106. package/dist/analytics/extractCorpus/sqliteSessions.js +367 -0
  107. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  108. package/dist/analytics/extractCorpus.js +2 -1791
  109. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  110. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  111. package/dist/analytics/personalGlossaryAdmission.js +133 -0
  112. package/dist/analytics/personalGlossaryProfile.js +219 -0
  113. package/dist/analytics/profileSignals.js +211 -0
  114. package/dist/analytics/usageStats.js +169 -42
  115. package/dist/audit/terminologyDrift.js +281 -0
  116. package/dist/bin/agentera.js +3 -2
  117. package/dist/capabilities/audit/instructions.js +16 -0
  118. package/dist/capabilities/build/instructions.js +56 -0
  119. package/dist/capabilities/design/instructions.js +4 -0
  120. package/dist/capabilities/discuss/instructions.js +29 -0
  121. package/dist/capabilities/document/instructions.js +11 -0
  122. package/dist/capabilities/index.js +29 -27
  123. package/dist/capabilities/optimize/instructions.js +14 -0
  124. package/dist/capabilities/orchestrate/instructions.js +42 -0
  125. package/dist/capabilities/plan/instructions.js +33 -0
  126. package/dist/capabilities/profile/instructions.js +70 -0
  127. package/dist/capabilities/research/instructions.js +5 -0
  128. package/dist/capabilities/status/instructions.js +15 -0
  129. package/dist/capabilities/status/startupInstructions.js +34 -0
  130. package/dist/capabilities/vision/instructions.js +4 -0
  131. package/dist/cli/appContext.js +30 -24
  132. package/dist/cli/argvalidate.js +0 -1
  133. package/dist/cli/capabilityContext/benchmark.js +565 -0
  134. package/dist/cli/capabilityContext/bespoke.js +44 -0
  135. package/dist/cli/capabilityContext/build.js +242 -0
  136. package/dist/cli/capabilityContext/closeout.js +233 -0
  137. package/dist/cli/capabilityContext/contract.js +179 -0
  138. package/dist/cli/capabilityContext/evidence.js +463 -0
  139. package/dist/cli/capabilityContext/index.js +3 -0
  140. package/dist/cli/capabilityContext/orchestration.js +131 -0
  141. package/dist/cli/capabilityContext/planState.js +260 -0
  142. package/dist/cli/capabilityContext/progress.js +142 -0
  143. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  144. package/dist/cli/capabilityContext/shared.js +83 -0
  145. package/dist/cli/capabilityContext/slim.js +152 -0
  146. package/dist/cli/capabilityContext/startup.js +150 -0
  147. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  148. package/dist/cli/capabilityContext/types.js +56 -0
  149. package/dist/cli/capabilityContext.js +1 -2487
  150. package/dist/cli/commands/appHome.js +22 -0
  151. package/dist/cli/commands/capability.js +4 -4
  152. package/dist/cli/commands/compact.js +164 -14
  153. package/dist/cli/commands/doctor.js +122 -97
  154. package/dist/cli/commands/durability.js +81 -0
  155. package/dist/cli/commands/glossaryAdvice.js +138 -0
  156. package/dist/cli/commands/lint.js +26 -44
  157. package/dist/cli/commands/personalGlossary.js +176 -0
  158. package/dist/cli/commands/prime/briefOrientation.js +747 -0
  159. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  160. package/dist/cli/commands/prime/bundleStatus.js +190 -0
  161. package/dist/cli/commands/prime/collectEntityOrientation.js +326 -0
  162. package/dist/cli/commands/prime/collectOrientationState.js +212 -0
  163. package/dist/cli/commands/prime/orientationOutput.js +399 -0
  164. package/dist/cli/commands/prime/types.js +1 -0
  165. package/dist/cli/commands/prime/v1Migration.js +38 -0
  166. package/dist/cli/commands/prime.js +80 -558
  167. package/dist/cli/commands/profileGrounding.js +55 -0
  168. package/dist/cli/commands/query.js +78 -53
  169. package/dist/cli/commands/report.js +96 -25
  170. package/dist/cli/commands/route.js +142 -0
  171. package/dist/cli/commands/schema.js +266 -143
  172. package/dist/cli/commands/state/decisions.js +387 -0
  173. package/dist/cli/commands/state/docs.js +70 -0
  174. package/dist/cli/commands/state/experimentRecords.js +151 -0
  175. package/dist/cli/commands/state/experiments.js +14 -0
  176. package/dist/cli/commands/state/get.js +129 -0
  177. package/dist/cli/commands/state/health.js +14 -0
  178. package/dist/cli/commands/state/index.js +16 -0
  179. package/dist/cli/commands/state/list.js +194 -0
  180. package/dist/cli/commands/state/objective.js +25 -0
  181. package/dist/cli/commands/state/plan.js +14 -0
  182. package/dist/cli/commands/state/planTasks.js +154 -0
  183. package/dist/cli/commands/state/plans.js +154 -0
  184. package/dist/cli/commands/state/progress.js +13 -0
  185. package/dist/cli/commands/state/shared.js +14 -0
  186. package/dist/cli/commands/state/todo.js +42 -0
  187. package/dist/cli/commands/state/write.js +430 -0
  188. package/dist/cli/commands/upgrade.js +146 -5
  189. package/dist/cli/commands/upgradeVerify.js +118 -0
  190. package/dist/cli/commands/validate.js +272 -223
  191. package/dist/cli/commands/verify.js +24 -9
  192. package/dist/cli/contracts/bundleStatus.js +1 -0
  193. package/dist/cli/contracts/orientationState.js +1 -0
  194. package/dist/cli/dispatch/argvParser.js +32 -0
  195. package/dist/cli/dispatch/check.js +372 -0
  196. package/dist/cli/dispatch/commands.js +27 -0
  197. package/dist/cli/dispatch/index.js +207 -0
  198. package/dist/cli/dispatch/lifecycle.js +652 -0
  199. package/dist/cli/dispatch/prime.js +139 -0
  200. package/dist/cli/dispatch/projections.js +17 -0
  201. package/dist/cli/dispatch/shared.js +63 -0
  202. package/dist/cli/dispatch/state.js +140 -0
  203. package/dist/cli/dispatch.js +1 -1294
  204. package/dist/cli/errors.js +16 -17
  205. package/dist/cli/help.js +394 -43
  206. package/dist/cli/migrationRequired.js +87 -0
  207. package/dist/cli/orientation/attention.js +61 -0
  208. package/dist/cli/orientation/corpusCoverage.js +102 -0
  209. package/dist/cli/orientation.js +438 -170
  210. package/dist/cli/planArtifacts.js +350 -0
  211. package/dist/cli/planEvidence.js +157 -0
  212. package/dist/cli/planLifecycleState.js +36 -0
  213. package/dist/cli/planTaskIndex.js +11 -0
  214. package/dist/cli/preCutoverCommand.js +32 -0
  215. package/dist/cli/prime-blob.js +71 -3
  216. package/dist/cli/profileAcquisition.js +167 -0
  217. package/dist/cli/startupCompletenessContract.js +59 -0
  218. package/dist/cli/stateQuery.js +56 -14
  219. package/dist/cli/structured.js +0 -1
  220. package/dist/cli/todoMarkdown.js +25 -12
  221. package/dist/cli/todoReadinessSelection.js +192 -0
  222. package/dist/cli/todoSeverity.js +18 -0
  223. package/dist/core/atomicWriter.js +20 -0
  224. package/dist/core/developmentChannel.js +1 -0
  225. package/dist/core/developmentInvocation.js +374 -0
  226. package/dist/core/difflib.js +0 -1
  227. package/dist/core/envPaths.js +20 -0
  228. package/dist/core/jsonValue.js +5 -0
  229. package/dist/core/paths.js +0 -1
  230. package/dist/core/pyjson.js +67 -3
  231. package/dist/core/shell.js +4 -0
  232. package/dist/core/skillIdentity.js +23 -0
  233. package/dist/core/sourceRoot.js +9 -12
  234. package/dist/core/text.js +10 -0
  235. package/dist/core/toml.js +0 -1
  236. package/dist/core/yaml.js +8 -1
  237. package/dist/eval/evalSkills.js +30 -26
  238. package/dist/eval/hybridRouteEvaluation.js +155 -0
  239. package/dist/eval/semanticEval.js +43 -20
  240. package/dist/eval/semanticFixtures.js +16 -5
  241. package/dist/hooks/common.js +11 -79
  242. package/dist/hooks/compaction/apply.js +446 -0
  243. package/dist/hooks/compaction/dryRun.js +184 -0
  244. package/dist/hooks/compaction/index.js +22 -0
  245. package/dist/hooks/compaction/parse.js +325 -0
  246. package/dist/hooks/compaction/retention.js +202 -0
  247. package/dist/hooks/compaction/status.js +360 -0
  248. package/dist/hooks/compaction/types.js +5 -0
  249. package/dist/hooks/validateArtifact/agentFacing.js +9 -0
  250. package/dist/hooks/validateArtifact/index.js +92 -0
  251. package/dist/hooks/validateArtifact/markdown.js +145 -0
  252. package/dist/hooks/validateArtifact/schema.js +546 -0
  253. package/dist/hooks/validateArtifact/traversal.js +107 -0
  254. package/dist/hooks/validateArtifact/violations.js +107 -0
  255. package/dist/migrate/v2HandoffManifest.js +452 -0
  256. package/dist/registries/activationContract.js +2 -0
  257. package/dist/registries/activationTuples.js +107 -0
  258. package/dist/registries/artifactProtocolIds.js +78 -0
  259. package/dist/registries/artifactRegistry.js +224 -63
  260. package/dist/registries/artifactSchemaProjection.js +45 -0
  261. package/dist/registries/capabilityContract.js +129 -2
  262. package/dist/registries/evaluatorHandoffContract.js +2 -3
  263. package/dist/registries/evidenceTierContract.js +371 -0
  264. package/dist/registries/glossaryAdviceContract.js +79 -0
  265. package/dist/registries/glossaryCaveatContract.js +67 -0
  266. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  267. package/dist/registries/glossaryEntryContract.js +757 -0
  268. package/dist/registries/glossaryTermIdentity.js +17 -0
  269. package/dist/registries/glossaryTermOccurrence.js +20 -0
  270. package/dist/registries/hybridRoute.js +274 -0
  271. package/dist/registries/hybridRouteReceipt.js +221 -0
  272. package/dist/registries/packagePublication.js +229 -0
  273. package/dist/registries/packageRegistry.js +187 -211
  274. package/dist/registries/todoReadinessContract.js +448 -0
  275. package/dist/registries/triggerLoader.js +174 -0
  276. package/dist/registries/verbosityBudgetContract.js +205 -0
  277. package/dist/release/releaseMetadata.js +385 -0
  278. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  279. package/dist/runtime/lifecycleAdapters.js +777 -0
  280. package/dist/runtime/lifecycleAuthority.js +453 -0
  281. package/dist/runtime/lifecycleOperationContract.js +123 -0
  282. package/dist/runtime/lifecycleOperations.js +634 -0
  283. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  284. package/dist/runtime/lifecyclePublication.js +415 -0
  285. package/dist/runtime/lifecycleSnapshot.js +438 -0
  286. package/dist/runtime/nativeResourceCleanup.js +502 -0
  287. package/dist/setup/opencode.js +20 -0
  288. package/dist/setup/opencodeConstants.js +1 -0
  289. package/dist/setup/sharedSkill.js +45 -0
  290. package/dist/setup/smokeChecks.js +21 -82
  291. package/dist/state/archiveDiscovery.js +580 -0
  292. package/dist/state/archivePublication.js +225 -0
  293. package/dist/state/archiveRecovery.js +237 -0
  294. package/dist/state/archiveReplay.js +53 -0
  295. package/dist/state/canonicalMigrationRecord.js +36 -0
  296. package/dist/state/changelog.js +221 -0
  297. package/dist/state/decisionEntities.js +367 -0
  298. package/dist/state/decisionLegacyValidation.js +215 -0
  299. package/dist/state/decisionMigrationProvenance.js +199 -0
  300. package/dist/state/decisionOverlay.js +254 -0
  301. package/dist/state/decisionRevision.js +256 -0
  302. package/dist/state/decisionRevisionMigration.js +89 -0
  303. package/dist/state/directRetrieval.js +323 -0
  304. package/dist/state/durability.js +324 -0
  305. package/dist/state/entityCutover.js +459 -0
  306. package/dist/state/entityCutoverGit.js +127 -0
  307. package/dist/state/entityGlossaryAuthority.js +13 -0
  308. package/dist/state/entityListProjection.js +187 -0
  309. package/dist/state/entityListRuntimeRegistry.js +85 -0
  310. package/dist/state/entityMigrationCausality.js +97 -0
  311. package/dist/state/entityMigrationIdentity.js +5 -0
  312. package/dist/state/entityMigrationPreview.js +846 -0
  313. package/dist/state/entityMigrationTodo.js +133 -0
  314. package/dist/state/entityPublicationContext.js +806 -0
  315. package/dist/state/entityRetrievalHelp.js +506 -0
  316. package/dist/state/entityStorage.js +899 -0
  317. package/dist/state/exactReplacementRecovery.js +18 -0
  318. package/dist/state/experimentArchive.js +63 -0
  319. package/dist/state/experimentIdentity.js +202 -0
  320. package/dist/state/healthEntities.js +262 -0
  321. package/dist/state/healthEntityValidation.js +18 -0
  322. package/dist/state/healthRepair.js +69 -0
  323. package/dist/state/installRoot.js +64 -25
  324. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  325. package/dist/state/legacyIdentity.js +47 -0
  326. package/dist/state/legacySummaryRecord.js +6 -0
  327. package/dist/state/listAccounting.js +54 -0
  328. package/dist/state/listClassification.js +17 -0
  329. package/dist/state/listCursor.js +42 -0
  330. package/dist/state/listRetrieval.js +781 -0
  331. package/dist/state/migrationSourceBinding.js +30 -0
  332. package/dist/state/objectiveExperimentEntities.js +322 -0
  333. package/dist/state/planEntities.js +982 -0
  334. package/dist/state/planIdentity.js +47 -0
  335. package/dist/state/planLineageValidation.js +52 -0
  336. package/dist/state/planReplacementTransaction.js +475 -0
  337. package/dist/state/planRetrieval.js +313 -0
  338. package/dist/state/planTaskRetrieval.js +294 -0
  339. package/dist/state/progressEntities.js +512 -0
  340. package/dist/state/progressGlossaryCaveat.js +168 -0
  341. package/dist/state/progressPublicationOrder.js +19 -0
  342. package/dist/state/projectRoot.js +62 -0
  343. package/dist/state/projectionPolicy.js +190 -0
  344. package/dist/state/retrievalAuthority.js +156 -0
  345. package/dist/state/safeProjectFile.js +155 -0
  346. package/dist/state/startupAnalysis/benchmark.js +432 -0
  347. package/dist/state/startupAnalysis/contract.js +160 -0
  348. package/dist/state/startupAnalysis/helpers.js +286 -0
  349. package/dist/state/startupAnalysis/index.js +6 -0
  350. package/dist/state/startupAnalysis/metrics.js +340 -0
  351. package/dist/state/startupAnalysis/records.js +198 -0
  352. package/dist/state/startupAnalysis/report.js +111 -0
  353. package/dist/state/startupAnalysis/threshold.js +512 -0
  354. package/dist/state/startupAnalysis.js +2 -1953
  355. package/dist/state/startupProjection.js +499 -0
  356. package/dist/state/stateMode.js +85 -0
  357. package/dist/state/stateStorageAuthority.js +47 -0
  358. package/dist/state/summaryEntityRead.js +25 -0
  359. package/dist/state/summaryMigrationProvenance.js +66 -0
  360. package/dist/state/summarySourceRowAuthority.js +36 -0
  361. package/dist/state/todoActivationSafety.js +58 -0
  362. package/dist/state/todoDocsEntities.js +1069 -0
  363. package/dist/state/todoDocsEntityValidation.js +158 -0
  364. package/dist/state/todoMarkdownProjection.js +51 -0
  365. package/dist/state/todoReconciliationActivation.js +140 -0
  366. package/dist/state/todoReconciliationInspection.js +169 -0
  367. package/dist/state/todoReconciliationRepair.js +170 -0
  368. package/dist/state/todoReconciliationTransaction.js +582 -0
  369. package/dist/state/write/assign.js +20 -0
  370. package/dist/state/write/candidateMutation.js +269 -0
  371. package/dist/state/write/errors.js +11 -0
  372. package/dist/state/write/experimentPublication.js +192 -0
  373. package/dist/state/write/explain.js +363 -0
  374. package/dist/state/write/fields.js +61 -0
  375. package/dist/state/write/glossaryPublication.js +263 -0
  376. package/dist/state/write/grammar.js +285 -0
  377. package/dist/state/write/helpers.js +29 -0
  378. package/dist/state/write/index.js +12 -0
  379. package/dist/state/write/input.js +367 -0
  380. package/dist/state/write/lock.js +837 -0
  381. package/dist/state/write/mutation.js +234 -0
  382. package/dist/state/write/operations.js +170 -0
  383. package/dist/state/write/planEvaluation.js +128 -0
  384. package/dist/state/write/planPublication.js +179 -0
  385. package/dist/state/write/runtimeOperations.js +144 -0
  386. package/dist/state/write/serialize.js +1 -0
  387. package/dist/state/write/transaction.js +52 -0
  388. package/dist/state/write/validate.js +7 -0
  389. package/dist/upgrade/appContentRefresh.js +383 -0
  390. package/dist/upgrade/appModel.js +8 -7
  391. package/dist/upgrade/atomicWriter.js +1 -0
  392. package/dist/upgrade/bundleEvidence.js +33 -0
  393. package/dist/upgrade/channels.js +12 -8
  394. package/dist/upgrade/compatibility.js +56 -21
  395. package/dist/upgrade/doctor.js +197 -192
  396. package/dist/upgrade/doctorClassifier.js +187 -0
  397. package/dist/upgrade/installedHooksRetirement.js +196 -0
  398. package/dist/upgrade/legacyAgentCleanup.js +282 -0
  399. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  400. package/dist/upgrade/migrateArtifactsV2ToV3.js +367 -149
  401. package/dist/upgrade/migrationPublication.js +122 -0
  402. package/dist/upgrade/nextMajorDoctor.js +42 -8
  403. package/dist/upgrade/npxPlatformStatus.js +22 -0
  404. package/dist/upgrade/projectIntegration.js +145 -187
  405. package/dist/upgrade/projectIntegrationDecision.js +50 -0
  406. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  407. package/dist/upgrade/runtimeMigration.js +273 -363
  408. package/dist/upgrade/upgradeCommands.js +14 -1
  409. package/dist/upgrade/upgradeLock.js +85 -0
  410. package/dist/upgrade/upgradeOrchestrator.js +263 -59
  411. package/dist/upgrade/v3CapabilitySurface.js +14 -0
  412. package/dist/upgrade/versionResolution.js +8 -1
  413. package/dist/validate/activationArtifactEvidence.js +844 -0
  414. package/dist/validate/activationConjunction.js +816 -0
  415. package/dist/validate/activationEvidenceManifest.js +515 -0
  416. package/dist/validate/activationPackageSemantics.js +29 -0
  417. package/dist/validate/appHomeContract.js +5 -11
  418. package/dist/validate/bootstrapAuthority.js +44 -0
  419. package/dist/validate/capability.js +133 -12
  420. package/dist/validate/crossCapability.js +15 -10
  421. package/dist/validate/retainedReferenceAuthority.js +879 -0
  422. package/dist/validate/selfAudit.js +73 -37
  423. package/dist/validate/v1LegacyCruft.js +131 -0
  424. package/dist/validate/vocabularyAuthority.js +303 -0
  425. package/package.json +53 -27
  426. package/bundle/references/adapters/cursor.md +0 -213
  427. package/bundle/references/adapters/opencode.md +0 -530
  428. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  429. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  430. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  431. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -548
  432. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  433. package/bundle/references/analysis/benchmark.md +0 -267
  434. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  435. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  436. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -355
  437. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -278
  438. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  439. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  440. package/bundle/references/meta/documentation-inventory.md +0 -43
  441. package/bundle/references/v1-section-mapping.md +0 -47
  442. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  443. package/bundle/skills/agentera/agents/dokumentera.toml +0 -6
  444. package/bundle/skills/agentera/agents/hej.toml +0 -6
  445. package/bundle/skills/agentera/agents/inspektera.toml +0 -6
  446. package/bundle/skills/agentera/agents/inspirera.toml +0 -6
  447. package/bundle/skills/agentera/agents/optimera.toml +0 -6
  448. package/bundle/skills/agentera/agents/orkestrera.toml +0 -6
  449. package/bundle/skills/agentera/agents/planera.toml +0 -6
  450. package/bundle/skills/agentera/agents/profilera.toml +0 -6
  451. package/bundle/skills/agentera/agents/realisera.toml +0 -6
  452. package/bundle/skills/agentera/agents/resonera.toml +0 -6
  453. package/bundle/skills/agentera/agents/visionera.toml +0 -6
  454. package/bundle/skills/agentera/agents/visualisera.toml +0 -6
  455. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +0 -73
  456. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +0 -35
  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/schemas/artifacts.yaml +0 -76
  460. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +0 -38
  461. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +0 -24
  462. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +0 -34
  463. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +0 -39
  464. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +0 -64
  465. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +0 -42
  466. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +0 -120
  467. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +0 -62
  468. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +0 -34
  469. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +0 -61
  470. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +0 -18
  471. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +0 -45
  472. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +0 -57
  473. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +0 -80
  474. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +0 -39
  475. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +0 -110
  476. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +0 -47
  477. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +0 -46
  478. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +0 -77
  479. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +0 -41
  480. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +0 -33
  481. package/bundle/skills/agentera/references/contract.md +0 -1039
  482. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  483. package/bundle/skills/hej/SKILL.md +0 -69
  484. package/bundle/skills/hej/agents/hej.toml +0 -11
  485. package/bundle/skills/hej/agents/openai.yaml +0 -8
  486. package/dist/analytics/extractCorpus.js.map +0 -1
  487. package/dist/analytics/usageStats.js.map +0 -1
  488. package/dist/bin/agentera.js.map +0 -1
  489. package/dist/capabilities/dokumentera/instructions.js +0 -6
  490. package/dist/capabilities/dokumentera/instructions.js.map +0 -1
  491. package/dist/capabilities/hej/instructions.js +0 -6
  492. package/dist/capabilities/hej/instructions.js.map +0 -1
  493. package/dist/capabilities/index.js.map +0 -1
  494. package/dist/capabilities/inspektera/instructions.js +0 -6
  495. package/dist/capabilities/inspektera/instructions.js.map +0 -1
  496. package/dist/capabilities/inspirera/instructions.js +0 -6
  497. package/dist/capabilities/inspirera/instructions.js.map +0 -1
  498. package/dist/capabilities/optimera/instructions.js +0 -6
  499. package/dist/capabilities/optimera/instructions.js.map +0 -1
  500. package/dist/capabilities/orkestrera/instructions.js +0 -6
  501. package/dist/capabilities/orkestrera/instructions.js.map +0 -1
  502. package/dist/capabilities/planera/instructions.js +0 -6
  503. package/dist/capabilities/planera/instructions.js.map +0 -1
  504. package/dist/capabilities/profilera/instructions.js +0 -6
  505. package/dist/capabilities/profilera/instructions.js.map +0 -1
  506. package/dist/capabilities/realisera/instructions.js +0 -6
  507. package/dist/capabilities/realisera/instructions.js.map +0 -1
  508. package/dist/capabilities/resonera/instructions.js +0 -6
  509. package/dist/capabilities/resonera/instructions.js.map +0 -1
  510. package/dist/capabilities/visionera/instructions.js +0 -6
  511. package/dist/capabilities/visionera/instructions.js.map +0 -1
  512. package/dist/capabilities/visualisera/instructions.js +0 -6
  513. package/dist/capabilities/visualisera/instructions.js.map +0 -1
  514. package/dist/cli/appContext.js.map +0 -1
  515. package/dist/cli/argvalidate.js.map +0 -1
  516. package/dist/cli/capabilityContext.js.map +0 -1
  517. package/dist/cli/commands/capability.js.map +0 -1
  518. package/dist/cli/commands/compact.js.map +0 -1
  519. package/dist/cli/commands/doctor.js.map +0 -1
  520. package/dist/cli/commands/lint.js.map +0 -1
  521. package/dist/cli/commands/prime.js.map +0 -1
  522. package/dist/cli/commands/query.js.map +0 -1
  523. package/dist/cli/commands/report.js.map +0 -1
  524. package/dist/cli/commands/schema.js.map +0 -1
  525. package/dist/cli/commands/state.js +0 -1023
  526. package/dist/cli/commands/state.js.map +0 -1
  527. package/dist/cli/commands/upgrade.js.map +0 -1
  528. package/dist/cli/commands/validate.js.map +0 -1
  529. package/dist/cli/commands/verify.js.map +0 -1
  530. package/dist/cli/dispatch.js.map +0 -1
  531. package/dist/cli/errors.js.map +0 -1
  532. package/dist/cli/help.js.map +0 -1
  533. package/dist/cli/orientation.js.map +0 -1
  534. package/dist/cli/prime-blob.js.map +0 -1
  535. package/dist/cli/stateQuery.js.map +0 -1
  536. package/dist/cli/structured.js.map +0 -1
  537. package/dist/cli/todoMarkdown.js.map +0 -1
  538. package/dist/core/difflib.js.map +0 -1
  539. package/dist/core/paths.js.map +0 -1
  540. package/dist/core/pyjson.js.map +0 -1
  541. package/dist/core/sourceRoot.js.map +0 -1
  542. package/dist/core/toml.js.map +0 -1
  543. package/dist/core/yaml.js.map +0 -1
  544. package/dist/eval/evalSkills.js.map +0 -1
  545. package/dist/eval/semanticEval.js.map +0 -1
  546. package/dist/eval/semanticFixtures.js.map +0 -1
  547. package/dist/hooks/common.js.map +0 -1
  548. package/dist/hooks/compaction.js +0 -935
  549. package/dist/hooks/compaction.js.map +0 -1
  550. package/dist/hooks/cursorPreToolUse.js +0 -19
  551. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  552. package/dist/hooks/cursorSessionStart.js +0 -71
  553. package/dist/hooks/cursorSessionStart.js.map +0 -1
  554. package/dist/hooks/sessionStart.js +0 -209
  555. package/dist/hooks/sessionStart.js.map +0 -1
  556. package/dist/hooks/sessionStop.js +0 -212
  557. package/dist/hooks/sessionStop.js.map +0 -1
  558. package/dist/hooks/validateArtifact.js +0 -935
  559. package/dist/hooks/validateArtifact.js.map +0 -1
  560. package/dist/registries/artifactRegistry.js.map +0 -1
  561. package/dist/registries/capabilityContract.js.map +0 -1
  562. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  563. package/dist/registries/packageRegistry.js.map +0 -1
  564. package/dist/registries/runtimeAdapterRegistry.js +0 -315
  565. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  566. package/dist/setup/codex.js +0 -1197
  567. package/dist/setup/codex.js.map +0 -1
  568. package/dist/setup/copilot.js +0 -227
  569. package/dist/setup/copilot.js.map +0 -1
  570. package/dist/setup/cursor.js +0 -127
  571. package/dist/setup/cursor.js.map +0 -1
  572. package/dist/setup/doctor.js +0 -1297
  573. package/dist/setup/doctor.js.map +0 -1
  574. package/dist/setup/smokeChecks.js.map +0 -1
  575. package/dist/state/installRoot.js.map +0 -1
  576. package/dist/state/startupAnalysis.js.map +0 -1
  577. package/dist/upgrade/appModel.js.map +0 -1
  578. package/dist/upgrade/channels.js.map +0 -1
  579. package/dist/upgrade/compatibility.js.map +0 -1
  580. package/dist/upgrade/doctor.js.map +0 -1
  581. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  582. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  583. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  584. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  585. package/dist/upgrade/projectIntegration.js.map +0 -1
  586. package/dist/upgrade/runtimeMigration.js.map +0 -1
  587. package/dist/upgrade/upgradeCommands.js.map +0 -1
  588. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  589. package/dist/upgrade/versionResolution.js.map +0 -1
  590. package/dist/validate/appHomeContract.js.map +0 -1
  591. package/dist/validate/capability.js.map +0 -1
  592. package/dist/validate/crossCapability.js.map +0 -1
  593. package/dist/validate/lifecycleAdapters.js +0 -772
  594. package/dist/validate/lifecycleAdapters.js.map +0 -1
  595. package/dist/validate/selfAudit.js.map +0 -1
  596. /package/bundle/skills/agentera/capabilities/{dokumentera → document}/schemas/exit.yaml +0 -0
  597. /package/bundle/skills/agentera/capabilities/{inspirera → research}/schemas/exit.yaml +0 -0
  598. /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);