agentera 3.0.0-dev.8 → 3.0.0-dev.80

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 (724) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +252 -22
  3. package/bundle/.agentera-build-source.json +8 -0
  4. package/bundle/CHANGELOG.md +1387 -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 +271 -0
  9. package/bundle/extract-corpus-parity.json +2 -4
  10. package/bundle/fixtures/routing/hybrid-corpus.yaml +154 -0
  11. package/bundle/references/adapters/package-publication.json +484 -0
  12. package/bundle/references/adapters/package-registry.yaml +443 -188
  13. package/bundle/references/adapters/package-surface-characterization.md +68 -34
  14. package/bundle/references/adapters/product-v1-reset.yaml +101 -0
  15. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +74 -0
  16. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +62 -0
  17. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +84 -0
  18. package/bundle/references/adapters/runtime-retired-resources.yaml +333 -0
  19. package/bundle/references/analysis/evidence-tier-authority.yaml +559 -0
  20. package/bundle/references/analysis/personal-glossary-evaluation-authority.yaml +175 -0
  21. package/bundle/references/analysis/personal-glossary-evaluation-corpus.yaml +291 -0
  22. package/bundle/references/analysis/personal-glossary-holdout.yaml +192 -0
  23. package/bundle/references/analysis/verification-policy.yaml +261 -0
  24. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +17 -8
  25. package/bundle/references/artifacts/glossary-entry-contract.yaml +2906 -0
  26. package/bundle/references/artifacts/state-storage-authority.yaml +3065 -0
  27. package/bundle/references/artifacts/verbosity-budget-authority.yaml +42 -0
  28. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  29. package/bundle/references/cli/capability-instruction-contract.yaml +11 -14
  30. package/bundle/references/cli/hybrid-route-contract.yaml +438 -0
  31. package/bundle/references/cli/routing-model.md +152 -93
  32. package/bundle/references/cli/trigger-schema-enrichment.md +57 -46
  33. package/bundle/references/cli/update-channels.yaml +7 -5
  34. package/bundle/references/cli/vocabulary-index.yaml +7 -9
  35. package/bundle/references/cli/vocabulary.md +54 -97
  36. package/bundle/references/meta/retained-reference-authority.yaml +171 -0
  37. package/bundle/skills/agentera/SKILL.md +183 -63
  38. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +27 -19
  39. package/bundle/skills/agentera/capabilities/audit/schemas/exit.yaml +2 -2
  40. package/bundle/skills/agentera/capabilities/audit/schemas/triggers.yaml +13 -35
  41. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +30 -11
  42. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +44 -21
  43. package/bundle/skills/agentera/capabilities/build/schemas/exit.yaml +8 -6
  44. package/bundle/skills/agentera/capabilities/build/schemas/triggers.yaml +14 -36
  45. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +95 -21
  46. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  47. package/bundle/skills/agentera/capabilities/design/schemas/exit.yaml +5 -5
  48. package/bundle/skills/agentera/capabilities/design/schemas/triggers.yaml +5 -34
  49. package/bundle/skills/agentera/capabilities/design/schemas/validation.yaml +2 -2
  50. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +17 -13
  51. package/bundle/skills/agentera/capabilities/discuss/schemas/exit.yaml +2 -2
  52. package/bundle/skills/agentera/capabilities/discuss/schemas/triggers.yaml +6 -40
  53. package/bundle/skills/agentera/capabilities/discuss/schemas/validation.yaml +72 -5
  54. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +24 -17
  55. package/bundle/skills/agentera/capabilities/document/schemas/triggers.yaml +5 -35
  56. package/bundle/skills/agentera/capabilities/document/schemas/validation.yaml +13 -13
  57. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +10 -10
  58. package/bundle/skills/agentera/capabilities/optimize/schemas/exit.yaml +2 -2
  59. package/bundle/skills/agentera/capabilities/optimize/schemas/triggers.yaml +4 -35
  60. package/bundle/skills/agentera/capabilities/optimize/schemas/validation.yaml +3 -3
  61. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +34 -22
  62. package/bundle/skills/agentera/capabilities/orchestrate/schemas/exit.yaml +9 -7
  63. package/bundle/skills/agentera/capabilities/orchestrate/schemas/triggers.yaml +5 -37
  64. package/bundle/skills/agentera/capabilities/orchestrate/schemas/validation.yaml +38 -37
  65. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +20 -16
  66. package/bundle/skills/agentera/capabilities/plan/schemas/triggers.yaml +8 -31
  67. package/bundle/skills/agentera/capabilities/plan/schemas/validation.yaml +66 -6
  68. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +13 -4
  69. package/bundle/skills/agentera/capabilities/profile/schemas/exit.yaml +8 -5
  70. package/bundle/skills/agentera/capabilities/profile/schemas/triggers.yaml +8 -37
  71. package/bundle/skills/agentera/capabilities/profile/schemas/validation.yaml +67 -3
  72. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +6 -6
  73. package/bundle/skills/agentera/capabilities/research/schemas/triggers.yaml +5 -29
  74. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +13 -12
  75. package/bundle/skills/agentera/capabilities/status/schemas/triggers.yaml +7 -49
  76. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  77. package/bundle/skills/agentera/capabilities/vision/schemas/exit.yaml +7 -6
  78. package/bundle/skills/agentera/capabilities/vision/schemas/triggers.yaml +7 -39
  79. package/bundle/skills/agentera/capabilities/vision/schemas/validation.yaml +14 -16
  80. package/bundle/skills/agentera/capability_schema_contract.yaml +32 -32
  81. package/bundle/skills/agentera/protocol.yaml +4 -4
  82. package/bundle/skills/agentera/route-phrases.yaml +81 -0
  83. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +1 -0
  84. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +29 -30
  85. package/bundle/skills/agentera/schemas/artifacts/design.yaml +1 -0
  86. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -43
  87. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +140 -34
  88. package/bundle/skills/agentera/schemas/artifacts/glossary.yaml +87 -0
  89. package/bundle/skills/agentera/schemas/artifacts/health.yaml +53 -51
  90. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +18 -35
  91. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +453 -55
  92. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +128 -39
  93. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +305 -7
  94. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +0 -19
  95. package/dist/.agentera-build-source.json +8 -0
  96. package/dist/analytics/extractCorpus/cli.js +52 -11
  97. package/dist/analytics/extractCorpus/copilotSessions.js +19 -8
  98. package/dist/analytics/extractCorpus/core.js +262 -14
  99. package/dist/analytics/extractCorpus/corpus.js +57 -18
  100. package/dist/analytics/extractCorpus/coverageAudit.js +44 -45
  101. package/dist/analytics/extractCorpus/cursorSessions.js +28 -8
  102. package/dist/analytics/extractCorpus/evidenceTiers.js +709 -0
  103. package/dist/analytics/extractCorpus/extractCorpusParity.js +4 -4
  104. package/dist/analytics/extractCorpus/filesystemSources.js +5 -5
  105. package/dist/analytics/extractCorpus/index.js +4 -2
  106. package/dist/analytics/extractCorpus/jsonlSessions.js +76 -8
  107. package/dist/analytics/extractCorpus/sqliteCaps.js +0 -1
  108. package/dist/analytics/extractCorpus/sqliteSessions.js +12 -4
  109. package/dist/analytics/extractCorpus/tierReader.js +108 -0
  110. package/dist/analytics/extractCorpus.js +0 -1
  111. package/dist/analytics/glossaryAdviceResolution.js +166 -0
  112. package/dist/analytics/glossaryInputAcquisition.js +319 -0
  113. package/dist/analytics/personalGlossaryAdmission.js +113 -0
  114. package/dist/analytics/personalGlossaryCandidateProjection.js +788 -0
  115. package/dist/analytics/personalGlossaryCandidateProjectionExcerpts.js +144 -0
  116. package/dist/analytics/personalGlossaryCandidateProjectionModel.js +1 -0
  117. package/dist/analytics/personalGlossaryCandidateReadView.js +23 -0
  118. package/dist/analytics/personalGlossaryCurrentGeneration.js +25 -0
  119. package/dist/analytics/personalGlossaryDecision.js +203 -0
  120. package/dist/analytics/personalGlossaryExplicit.js +788 -0
  121. package/dist/analytics/personalGlossaryExplicitMining.js +285 -0
  122. package/dist/analytics/personalGlossaryExplicitScope.js +41 -0
  123. package/dist/analytics/personalGlossaryExplicitSegments.js +418 -0
  124. package/dist/analytics/personalGlossaryExplicitTypes.js +26 -0
  125. package/dist/analytics/personalGlossaryLexicalClassifier.js +175 -0
  126. package/dist/analytics/personalGlossaryProfile.js +229 -0
  127. package/dist/analytics/personalGlossaryRecurrence.js +618 -0
  128. package/dist/analytics/personalGlossaryRefreshProjection.js +351 -0
  129. package/dist/analytics/personalGlossaryReviewRecordStorage.js +428 -0
  130. package/dist/analytics/personalGlossaryReviewRecords.js +332 -0
  131. package/dist/analytics/profileSignals.js +211 -0
  132. package/dist/analytics/usageStats.js +150 -23
  133. package/dist/audit/terminologyDrift.js +281 -0
  134. package/dist/bin/agentera.js +3 -2
  135. package/dist/capabilities/audit/instructions.js +16 -6
  136. package/dist/capabilities/build/instructions.js +59 -6
  137. package/dist/capabilities/design/instructions.js +3 -4
  138. package/dist/capabilities/discuss/instructions.js +29 -6
  139. package/dist/capabilities/document/instructions.js +11 -6
  140. package/dist/capabilities/index.js +20 -14
  141. package/dist/capabilities/optimize/instructions.js +14 -6
  142. package/dist/capabilities/orchestrate/instructions.js +42 -6
  143. package/dist/capabilities/plan/instructions.js +30 -3
  144. package/dist/capabilities/profile/instructions.js +104 -5
  145. package/dist/capabilities/research/instructions.js +4 -5
  146. package/dist/capabilities/status/instructions.js +15 -6
  147. package/dist/capabilities/status/startupInstructions.js +34 -0
  148. package/dist/capabilities/vision/instructions.js +3 -5
  149. package/dist/cli/appContext.js +14 -7
  150. package/dist/cli/argvalidate.js +0 -1
  151. package/dist/cli/capabilityContext/benchmark.js +5 -4
  152. package/dist/cli/capabilityContext/bespoke.js +14 -6
  153. package/dist/cli/capabilityContext/build.js +116 -42
  154. package/dist/cli/capabilityContext/closeout.js +30 -27
  155. package/dist/cli/capabilityContext/contract.js +18 -27
  156. package/dist/cli/capabilityContext/evidence.js +84 -77
  157. package/dist/cli/capabilityContext/index.js +0 -1
  158. package/dist/cli/capabilityContext/orchestration.js +42 -18
  159. package/dist/cli/capabilityContext/planState.js +89 -96
  160. package/dist/cli/capabilityContext/progress.js +52 -12
  161. package/dist/cli/capabilityContext/projectVerification.js +409 -0
  162. package/dist/cli/capabilityContext/shared.js +9 -20
  163. package/dist/cli/capabilityContext/slim.js +52 -8
  164. package/dist/cli/capabilityContext/startup.js +51 -114
  165. package/dist/cli/capabilityContext/startupAggregation.js +68 -0
  166. package/dist/cli/capabilityContext/types.js +26 -10
  167. package/dist/cli/capabilityContext.js +0 -1
  168. package/dist/cli/commands/appHome.js +0 -1
  169. package/dist/cli/commands/capability.js +2 -2
  170. package/dist/cli/commands/compact.js +163 -13
  171. package/dist/cli/commands/doctor.js +118 -11
  172. package/dist/cli/commands/durability.js +81 -0
  173. package/dist/cli/commands/glossaryAdvice.js +138 -0
  174. package/dist/cli/commands/lint.js +22 -8
  175. package/dist/cli/commands/personalGlossaryCandidateReads.js +755 -0
  176. package/dist/cli/commands/personalGlossaryDecision.js +349 -0
  177. package/dist/cli/commands/personalGlossaryPublish.js +484 -0
  178. package/dist/cli/commands/personalGlossaryReviewRecordReads.js +209 -0
  179. package/dist/cli/commands/personalGlossaryReviewRecords.js +623 -0
  180. package/dist/cli/commands/prime/briefOrientation.js +845 -0
  181. package/dist/cli/commands/prime/buildExecutionRequest.js +165 -0
  182. package/dist/cli/commands/prime/bundleStatus.js +54 -4
  183. package/dist/cli/commands/prime/collectEntityOrientation.js +338 -0
  184. package/dist/cli/commands/prime/collectOrientationState.js +124 -68
  185. package/dist/cli/commands/prime/orientationOutput.js +271 -59
  186. package/dist/cli/commands/prime/types.js +0 -1
  187. package/dist/cli/commands/prime.js +89 -11
  188. package/dist/cli/commands/profileGrounding.js +55 -0
  189. package/dist/cli/commands/query.js +74 -52
  190. package/dist/cli/commands/report.js +187 -27
  191. package/dist/cli/commands/route.js +142 -0
  192. package/dist/cli/commands/schema.js +436 -138
  193. package/dist/cli/commands/state/decisions.js +40 -56
  194. package/dist/cli/commands/state/docs.js +58 -85
  195. package/dist/cli/commands/state/experimentRecords.js +151 -0
  196. package/dist/cli/commands/state/experiments.js +11 -65
  197. package/dist/cli/commands/state/get.js +129 -0
  198. package/dist/cli/commands/state/health.js +11 -113
  199. package/dist/cli/commands/state/index.js +6 -41
  200. package/dist/cli/commands/state/list.js +194 -0
  201. package/dist/cli/commands/state/objective.js +21 -65
  202. package/dist/cli/commands/state/plan.js +11 -170
  203. package/dist/cli/commands/state/planTasks.js +154 -0
  204. package/dist/cli/commands/state/plans.js +154 -0
  205. package/dist/cli/commands/state/progress.js +11 -45
  206. package/dist/cli/commands/state/shared.js +0 -1
  207. package/dist/cli/commands/state/todo.js +28 -107
  208. package/dist/cli/commands/state/write.js +459 -0
  209. package/dist/cli/commands/upgrade.js +176 -5
  210. package/dist/cli/commands/upgradeVerify.js +118 -0
  211. package/dist/cli/commands/validate.js +235 -136
  212. package/dist/cli/commands/verify.js +73 -16
  213. package/dist/cli/contracts/bundleStatus.js +0 -1
  214. package/dist/cli/contracts/orientationState.js +0 -1
  215. package/dist/cli/dispatch/argvParser.js +0 -1
  216. package/dist/cli/dispatch/check.js +84 -40
  217. package/dist/cli/dispatch/commands.js +3 -3
  218. package/dist/cli/dispatch/index.js +84 -52
  219. package/dist/cli/dispatch/lifecycle.js +182 -62
  220. package/dist/cli/dispatch/prime.js +37 -2
  221. package/dist/cli/dispatch/projections.js +17 -0
  222. package/dist/cli/dispatch/shared.js +1 -2
  223. package/dist/cli/dispatch/state.js +62 -66
  224. package/dist/cli/dispatch.js +0 -1
  225. package/dist/cli/errors.js +16 -17
  226. package/dist/cli/help.js +419 -41
  227. package/dist/cli/migrationRequired.js +125 -0
  228. package/dist/cli/orientation/attention.js +19 -22
  229. package/dist/cli/orientation/corpusCoverage.js +32 -1
  230. package/dist/cli/orientation.js +346 -129
  231. package/dist/cli/planArtifacts.js +350 -0
  232. package/dist/cli/planEvidence.js +157 -0
  233. package/dist/cli/planLifecycleState.js +36 -0
  234. package/dist/cli/planTaskIndex.js +11 -0
  235. package/dist/cli/preCutoverCommand.js +32 -0
  236. package/dist/cli/prime-blob.js +71 -3
  237. package/dist/cli/productV1Eol.js +55 -0
  238. package/dist/cli/profileAcquisition.js +167 -0
  239. package/dist/cli/startupCompletenessContract.js +11 -9
  240. package/dist/cli/stateQuery.js +47 -12
  241. package/dist/cli/structured.js +0 -1
  242. package/dist/cli/todoMarkdown.js +25 -12
  243. package/dist/cli/todoReadinessSelection.js +192 -0
  244. package/dist/cli/todoSeverity.js +0 -1
  245. package/dist/core/atomicWriter.js +23 -0
  246. package/dist/core/developmentChannel.js +1 -0
  247. package/dist/core/developmentInvocation.js +377 -0
  248. package/dist/core/difflib.js +0 -1
  249. package/dist/core/envPaths.js +0 -1
  250. package/dist/core/jsonValue.js +0 -1
  251. package/dist/core/paths.js +0 -1
  252. package/dist/core/pyjson.js +0 -1
  253. package/dist/core/shell.js +4 -0
  254. package/dist/core/skillIdentity.js +23 -0
  255. package/dist/core/sourceRoot.js +9 -12
  256. package/dist/core/text.js +10 -0
  257. package/dist/core/toml.js +0 -1
  258. package/dist/core/yaml.js +61 -2
  259. package/dist/eval/evalSkills.js +13 -14
  260. package/dist/eval/glossaryEvaluation.js +751 -0
  261. package/dist/eval/glossaryEvaluationProcess.js +29 -0
  262. package/dist/eval/glossaryEvaluationRunner.js +571 -0
  263. package/dist/eval/glossaryEvaluationSuccessReport.js +297 -0
  264. package/dist/eval/hybridRouteEvaluation.js +155 -0
  265. package/dist/eval/semanticEval.js +0 -1
  266. package/dist/eval/semanticFixtures.js +0 -1
  267. package/dist/hooks/common.js +3 -56
  268. package/dist/hooks/compaction/apply.js +224 -47
  269. package/dist/hooks/compaction/dryRun.js +2 -1
  270. package/dist/hooks/compaction/index.js +5 -6
  271. package/dist/hooks/compaction/parse.js +73 -6
  272. package/dist/hooks/compaction/retention.js +28 -25
  273. package/dist/hooks/compaction/status.js +145 -26
  274. package/dist/hooks/compaction/types.js +0 -1
  275. package/dist/hooks/validateArtifact/agentFacing.js +0 -1
  276. package/dist/hooks/validateArtifact/index.js +6 -65
  277. package/dist/hooks/validateArtifact/markdown.js +9 -10
  278. package/dist/hooks/validateArtifact/schema.js +96 -9
  279. package/dist/hooks/validateArtifact/traversal.js +12 -11
  280. package/dist/hooks/validateArtifact/violations.js +5 -3
  281. package/dist/migrate/v2HandoffManifest.js +8 -3
  282. package/dist/registries/activationContract.js +2 -0
  283. package/dist/registries/activationTuples.js +145 -0
  284. package/dist/registries/artifactProtocolIds.js +2 -1
  285. package/dist/registries/artifactRegistry.js +207 -60
  286. package/dist/registries/artifactSchemaProjection.js +45 -0
  287. package/dist/registries/capabilityContract.js +5 -21
  288. package/dist/registries/evaluatorHandoffContract.js +0 -1
  289. package/dist/registries/evidenceTierContract.js +375 -0
  290. package/dist/registries/explicitSegmentGrammarContract.js +619 -0
  291. package/dist/registries/glossaryAdviceContract.js +79 -0
  292. package/dist/registries/glossaryCandidateContractPaths.js +6 -0
  293. package/dist/registries/glossaryCandidateContracts.js +820 -0
  294. package/dist/registries/glossaryCandidateDecisionAuthority.js +119 -0
  295. package/dist/registries/glossaryCandidateDecisionContract.js +62 -0
  296. package/dist/registries/glossaryCandidateProjectionAuthority.js +345 -0
  297. package/dist/registries/glossaryCandidateProjectionContract.js +108 -0
  298. package/dist/registries/glossaryCaveatContract.js +67 -0
  299. package/dist/registries/glossaryConsumerContractValidation.js +787 -0
  300. package/dist/registries/glossaryEntryContract.js +759 -0
  301. package/dist/registries/glossaryEntryTemporal.js +12 -0
  302. package/dist/registries/glossaryMiningAuthority.js +764 -0
  303. package/dist/registries/glossaryProfileFullContract.js +24 -0
  304. package/dist/registries/glossaryReviewRecordsAuthority.js +426 -0
  305. package/dist/registries/glossaryReviewRecordsContract.js +129 -0
  306. package/dist/registries/glossaryTermIdentity.js +139 -0
  307. package/dist/registries/glossaryTermOccurrence.js +20 -0
  308. package/dist/registries/hybridRoute.js +274 -0
  309. package/dist/registries/hybridRouteReceipt.js +221 -0
  310. package/dist/registries/packagePublication.js +273 -0
  311. package/dist/registries/packageRegistry.js +184 -209
  312. package/dist/registries/personalGlossaryContracts.js +1 -0
  313. package/dist/registries/todoReadinessContract.js +448 -0
  314. package/dist/registries/triggerLoader.js +7 -44
  315. package/dist/registries/verbosityBudgetContract.js +205 -0
  316. package/dist/release/releaseMetadata.js +168 -11
  317. package/dist/runtime/lifecycleAdapterContract.js +457 -0
  318. package/dist/runtime/lifecycleAdapters.js +777 -0
  319. package/dist/runtime/lifecycleAuthority.js +453 -0
  320. package/dist/runtime/lifecycleOperationContract.js +123 -0
  321. package/dist/runtime/lifecycleOperations.js +634 -0
  322. package/dist/runtime/lifecycleOwnershipJournal.js +622 -0
  323. package/dist/runtime/lifecyclePublication.js +415 -0
  324. package/dist/runtime/lifecycleSnapshot.js +438 -0
  325. package/dist/runtime/nativeResourceCleanup.js +503 -0
  326. package/dist/setup/opencode.js +20 -13
  327. package/dist/setup/opencodeConstants.js +1 -0
  328. package/dist/setup/sharedSkill.js +45 -0
  329. package/dist/setup/smokeChecks.js +14 -75
  330. package/dist/state/archiveDiscovery.js +580 -0
  331. package/dist/state/archivePublication.js +225 -0
  332. package/dist/state/archiveRecovery.js +237 -0
  333. package/dist/state/archiveReplay.js +53 -0
  334. package/dist/state/canonicalMigrationRecord.js +36 -0
  335. package/dist/state/changelog.js +221 -0
  336. package/dist/state/decisionEntities.js +367 -0
  337. package/dist/state/decisionLegacyValidation.js +215 -0
  338. package/dist/state/decisionMigrationProvenance.js +199 -0
  339. package/dist/state/decisionOverlay.js +254 -0
  340. package/dist/state/decisionRevision.js +256 -0
  341. package/dist/state/decisionRevisionMigration.js +89 -0
  342. package/dist/state/directRetrieval.js +323 -0
  343. package/dist/state/durability.js +324 -0
  344. package/dist/state/entityCutover.js +459 -0
  345. package/dist/state/entityCutoverGit.js +127 -0
  346. package/dist/state/entityGlossaryAuthority.js +13 -0
  347. package/dist/state/entityListProjection.js +187 -0
  348. package/dist/state/entityListRuntimeRegistry.js +85 -0
  349. package/dist/state/entityMigrationCausality.js +97 -0
  350. package/dist/state/entityMigrationIdentity.js +5 -0
  351. package/dist/state/entityMigrationPreview.js +840 -0
  352. package/dist/state/entityMigrationTodo.js +133 -0
  353. package/dist/state/entityPublicationContext.js +859 -0
  354. package/dist/state/entityRetrievalHelp.js +506 -0
  355. package/dist/state/entityStorage.js +899 -0
  356. package/dist/state/exactReplacementRecovery.js +18 -0
  357. package/dist/state/experimentArchive.js +63 -0
  358. package/dist/state/experimentIdentity.js +202 -0
  359. package/dist/state/healthEntities.js +262 -0
  360. package/dist/state/healthEntityValidation.js +18 -0
  361. package/dist/state/healthRepair.js +69 -0
  362. package/dist/state/installRoot.js +15 -7
  363. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  364. package/dist/state/legacyIdentity.js +47 -0
  365. package/dist/state/legacySummaryRecord.js +6 -0
  366. package/dist/state/listAccounting.js +54 -0
  367. package/dist/state/listClassification.js +17 -0
  368. package/dist/state/listCursor.js +42 -0
  369. package/dist/state/listRetrieval.js +781 -0
  370. package/dist/state/migrationSourceBinding.js +30 -0
  371. package/dist/state/objectiveExperimentEntities.js +322 -0
  372. package/dist/state/planEntities.js +1027 -0
  373. package/dist/state/planIdentity.js +47 -0
  374. package/dist/state/planLineageValidation.js +52 -0
  375. package/dist/state/planReplacementTransaction.js +475 -0
  376. package/dist/state/planRetrieval.js +313 -0
  377. package/dist/state/planTaskRetrieval.js +294 -0
  378. package/dist/state/progressEntities.js +512 -0
  379. package/dist/state/progressGlossaryCaveat.js +168 -0
  380. package/dist/state/progressPublicationOrder.js +19 -0
  381. package/dist/state/progressWritePolicy.js +33 -0
  382. package/dist/state/projectRoot.js +62 -0
  383. package/dist/state/projectionPolicy.js +190 -0
  384. package/dist/state/retrievalAuthority.js +156 -0
  385. package/dist/state/safeProjectFile.js +155 -0
  386. package/dist/state/startupAnalysis/benchmark.js +70 -9
  387. package/dist/state/startupAnalysis/contract.js +44 -10
  388. package/dist/state/startupAnalysis/helpers.js +1 -2
  389. package/dist/state/startupAnalysis/index.js +0 -1
  390. package/dist/state/startupAnalysis/metrics.js +0 -1
  391. package/dist/state/startupAnalysis/records.js +0 -1
  392. package/dist/state/startupAnalysis/report.js +0 -1
  393. package/dist/state/startupAnalysis/threshold.js +13 -1
  394. package/dist/state/startupAnalysis.js +0 -1
  395. package/dist/state/startupProjection.js +499 -0
  396. package/dist/state/stateMode.js +222 -0
  397. package/dist/state/stateStorageAuthority.js +47 -0
  398. package/dist/state/summaryEntityRead.js +25 -0
  399. package/dist/state/summaryMigrationProvenance.js +66 -0
  400. package/dist/state/summarySourceRowAuthority.js +36 -0
  401. package/dist/state/todoActivationSafety.js +58 -0
  402. package/dist/state/todoCreateBatch.js +69 -0
  403. package/dist/state/todoDocsEntities.js +1339 -0
  404. package/dist/state/todoDocsEntityValidation.js +158 -0
  405. package/dist/state/todoMarkdownProjection.js +63 -0
  406. package/dist/state/todoReconciliationActivation.js +182 -0
  407. package/dist/state/todoReconciliationInspection.js +184 -0
  408. package/dist/state/todoReconciliationRepair.js +320 -0
  409. package/dist/state/todoReconciliationTransaction.js +628 -0
  410. package/dist/state/todoSeverityHeadings.js +71 -0
  411. package/dist/state/todoTransitionBatch.js +65 -0
  412. package/dist/state/todoUpdateBatch.js +50 -0
  413. package/dist/state/write/assign.js +20 -0
  414. package/dist/state/write/candidateMutation.js +269 -0
  415. package/dist/state/write/errors.js +11 -0
  416. package/dist/state/write/experimentPublication.js +192 -0
  417. package/dist/state/write/explain.js +380 -0
  418. package/dist/state/write/fields.js +61 -0
  419. package/dist/state/write/glossaryPublication.js +263 -0
  420. package/dist/state/write/grammar.js +285 -0
  421. package/dist/state/write/helpers.js +29 -0
  422. package/dist/state/write/index.js +12 -0
  423. package/dist/state/write/input.js +391 -0
  424. package/dist/state/write/lock.js +837 -0
  425. package/dist/state/write/mutation.js +234 -0
  426. package/dist/state/write/operations.js +170 -0
  427. package/dist/state/write/planEvaluation.js +128 -0
  428. package/dist/state/write/planPublication.js +179 -0
  429. package/dist/state/write/runtimeOperations.js +146 -0
  430. package/dist/state/write/serialize.js +1 -0
  431. package/dist/state/write/transaction.js +57 -0
  432. package/dist/state/write/validate.js +7 -0
  433. package/dist/upgrade/appContentRefresh.js +77 -36
  434. package/dist/upgrade/appModel.js +0 -1
  435. package/dist/upgrade/atomicWriter.js +1 -0
  436. package/dist/upgrade/bundleEvidence.js +0 -1
  437. package/dist/upgrade/channels.js +6 -9
  438. package/dist/upgrade/compatibility.js +43 -17
  439. package/dist/upgrade/doctor.js +55 -32
  440. package/dist/upgrade/doctorClassifier.js +11 -1
  441. package/dist/upgrade/installedHooksRetirement.js +46 -40
  442. package/dist/upgrade/legacyAgentCleanup.js +133 -34
  443. package/dist/upgrade/lifecycleUpgrade.js +113 -0
  444. package/dist/upgrade/migrateArtifactsV2ToV3.js +325 -82
  445. package/dist/upgrade/migrationPublication.js +122 -0
  446. package/dist/upgrade/nextMajorDoctor.js +0 -22
  447. package/dist/upgrade/npxPlatformStatus.js +2 -2
  448. package/dist/upgrade/productV1Reset.js +515 -0
  449. package/dist/upgrade/productV1ResetAuthority.js +139 -0
  450. package/dist/upgrade/projectIntegration.js +126 -134
  451. package/dist/upgrade/projectIntegrationDecision.js +21 -13
  452. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  453. package/dist/upgrade/runtimeMigration.js +210 -430
  454. package/dist/upgrade/upgradeCommands.js +14 -1
  455. package/dist/upgrade/upgradeLock.js +85 -0
  456. package/dist/upgrade/upgradeOrchestrator.js +253 -48
  457. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  458. package/dist/upgrade/versionResolution.js +0 -1
  459. package/dist/validate/activationArtifactEvidence.js +866 -0
  460. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  461. package/dist/validate/activationConjunction.js +816 -0
  462. package/dist/validate/activationEvidenceManifest.js +610 -0
  463. package/dist/validate/activationPackageSemantics.js +29 -0
  464. package/dist/validate/appHomeContract.js +1 -7
  465. package/dist/validate/bootstrapAuthority.js +44 -0
  466. package/dist/validate/capability.js +11 -3
  467. package/dist/validate/crossCapability.js +14 -9
  468. package/dist/validate/glossaryVariantGuard.js +96 -0
  469. package/dist/validate/retainedReferenceAuthority.js +879 -0
  470. package/dist/validate/selfAudit.js +39 -45
  471. package/dist/validate/vocabularyAuthority.js +8 -8
  472. package/package.json +39 -13
  473. package/bundle/references/adapters/cursor.md +0 -214
  474. package/bundle/references/adapters/opencode.md +0 -530
  475. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  476. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  477. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  478. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  479. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  480. package/bundle/references/analysis/benchmark.md +0 -267
  481. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  482. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  483. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  484. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  485. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  486. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  487. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  488. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  489. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  490. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  491. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  492. package/bundle/references/meta/documentation-inventory.md +0 -49
  493. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  494. package/bundle/skills/agentera/agents/audit.toml +0 -6
  495. package/bundle/skills/agentera/agents/build.toml +0 -6
  496. package/bundle/skills/agentera/agents/design.toml +0 -6
  497. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  498. package/bundle/skills/agentera/agents/document.toml +0 -6
  499. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  500. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  501. package/bundle/skills/agentera/agents/plan.toml +0 -6
  502. package/bundle/skills/agentera/agents/profile.toml +0 -6
  503. package/bundle/skills/agentera/agents/research.toml +0 -6
  504. package/bundle/skills/agentera/agents/status.toml +0 -6
  505. package/bundle/skills/agentera/agents/vision.toml +0 -6
  506. package/bundle/skills/agentera/references/contract.md +0 -1048
  507. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  508. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  509. package/dist/analytics/extractCorpus/core.js.map +0 -1
  510. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  511. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  512. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  513. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  514. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  515. package/dist/analytics/extractCorpus/index.js.map +0 -1
  516. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  517. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  518. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  519. package/dist/analytics/extractCorpus.js.map +0 -1
  520. package/dist/analytics/usageStats.js.map +0 -1
  521. package/dist/bin/agentera.js.map +0 -1
  522. package/dist/capabilities/audit/instructions.js.map +0 -1
  523. package/dist/capabilities/build/instructions.js.map +0 -1
  524. package/dist/capabilities/design/instructions.js.map +0 -1
  525. package/dist/capabilities/discuss/instructions.js.map +0 -1
  526. package/dist/capabilities/document/instructions.js.map +0 -1
  527. package/dist/capabilities/index.js.map +0 -1
  528. package/dist/capabilities/optimize/instructions.js.map +0 -1
  529. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  530. package/dist/capabilities/plan/instructions.js.map +0 -1
  531. package/dist/capabilities/profile/instructions.js.map +0 -1
  532. package/dist/capabilities/research/instructions.js.map +0 -1
  533. package/dist/capabilities/status/instructions.js.map +0 -1
  534. package/dist/capabilities/vision/instructions.js.map +0 -1
  535. package/dist/cli/appContext.js.map +0 -1
  536. package/dist/cli/argvalidate.js.map +0 -1
  537. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  538. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  539. package/dist/cli/capabilityContext/build.js.map +0 -1
  540. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  541. package/dist/cli/capabilityContext/contract.js.map +0 -1
  542. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  543. package/dist/cli/capabilityContext/index.js.map +0 -1
  544. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  545. package/dist/cli/capabilityContext/planState.js.map +0 -1
  546. package/dist/cli/capabilityContext/progress.js.map +0 -1
  547. package/dist/cli/capabilityContext/shared.js.map +0 -1
  548. package/dist/cli/capabilityContext/slim.js.map +0 -1
  549. package/dist/cli/capabilityContext/startup.js.map +0 -1
  550. package/dist/cli/capabilityContext/types.js.map +0 -1
  551. package/dist/cli/capabilityContext.js.map +0 -1
  552. package/dist/cli/commands/appHome.js.map +0 -1
  553. package/dist/cli/commands/capability.js.map +0 -1
  554. package/dist/cli/commands/compact.js.map +0 -1
  555. package/dist/cli/commands/doctor.js.map +0 -1
  556. package/dist/cli/commands/lint.js.map +0 -1
  557. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  558. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  559. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  560. package/dist/cli/commands/prime/types.js.map +0 -1
  561. package/dist/cli/commands/prime/v1Migration.js +0 -39
  562. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  563. package/dist/cli/commands/prime.js.map +0 -1
  564. package/dist/cli/commands/query.js.map +0 -1
  565. package/dist/cli/commands/report.js.map +0 -1
  566. package/dist/cli/commands/schema.js.map +0 -1
  567. package/dist/cli/commands/state/decisions.js.map +0 -1
  568. package/dist/cli/commands/state/docs.js.map +0 -1
  569. package/dist/cli/commands/state/experiments.js.map +0 -1
  570. package/dist/cli/commands/state/health.js.map +0 -1
  571. package/dist/cli/commands/state/index.js.map +0 -1
  572. package/dist/cli/commands/state/objective.js.map +0 -1
  573. package/dist/cli/commands/state/plan.js.map +0 -1
  574. package/dist/cli/commands/state/progress.js.map +0 -1
  575. package/dist/cli/commands/state/shared.js.map +0 -1
  576. package/dist/cli/commands/state/todo.js.map +0 -1
  577. package/dist/cli/commands/upgrade.js.map +0 -1
  578. package/dist/cli/commands/validate.js.map +0 -1
  579. package/dist/cli/commands/verify.js.map +0 -1
  580. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  581. package/dist/cli/contracts/orientationState.js.map +0 -1
  582. package/dist/cli/dispatch/argvParser.js.map +0 -1
  583. package/dist/cli/dispatch/check.js.map +0 -1
  584. package/dist/cli/dispatch/commands.js.map +0 -1
  585. package/dist/cli/dispatch/index.js.map +0 -1
  586. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  587. package/dist/cli/dispatch/prime.js.map +0 -1
  588. package/dist/cli/dispatch/shared.js.map +0 -1
  589. package/dist/cli/dispatch/state.js.map +0 -1
  590. package/dist/cli/dispatch.js.map +0 -1
  591. package/dist/cli/errors.js.map +0 -1
  592. package/dist/cli/help.js.map +0 -1
  593. package/dist/cli/orientation/attention.js.map +0 -1
  594. package/dist/cli/orientation/corpusCoverage.js.map +0 -1
  595. package/dist/cli/orientation.js.map +0 -1
  596. package/dist/cli/prime-blob.js.map +0 -1
  597. package/dist/cli/startupCompletenessContract.js.map +0 -1
  598. package/dist/cli/stateQuery.js.map +0 -1
  599. package/dist/cli/structured.js.map +0 -1
  600. package/dist/cli/todoMarkdown.js.map +0 -1
  601. package/dist/cli/todoSeverity.js.map +0 -1
  602. package/dist/core/difflib.js.map +0 -1
  603. package/dist/core/envPaths.js.map +0 -1
  604. package/dist/core/jsonValue.js.map +0 -1
  605. package/dist/core/paths.js.map +0 -1
  606. package/dist/core/pyjson.js.map +0 -1
  607. package/dist/core/sourceRoot.js.map +0 -1
  608. package/dist/core/toml.js.map +0 -1
  609. package/dist/core/yaml.js.map +0 -1
  610. package/dist/eval/evalSkills.js.map +0 -1
  611. package/dist/eval/semanticEval.js.map +0 -1
  612. package/dist/eval/semanticFixtures.js.map +0 -1
  613. package/dist/hooks/common.js.map +0 -1
  614. package/dist/hooks/compaction/apply.js.map +0 -1
  615. package/dist/hooks/compaction/dryRun.js.map +0 -1
  616. package/dist/hooks/compaction/index.js.map +0 -1
  617. package/dist/hooks/compaction/parse.js.map +0 -1
  618. package/dist/hooks/compaction/retention.js.map +0 -1
  619. package/dist/hooks/compaction/status.js.map +0 -1
  620. package/dist/hooks/compaction/types.js.map +0 -1
  621. package/dist/hooks/cursorPreToolUse.js +0 -19
  622. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  623. package/dist/hooks/cursorSessionStart.js +0 -79
  624. package/dist/hooks/cursorSessionStart.js.map +0 -1
  625. package/dist/hooks/sessionStart.js +0 -216
  626. package/dist/hooks/sessionStart.js.map +0 -1
  627. package/dist/hooks/sessionStop.js +0 -206
  628. package/dist/hooks/sessionStop.js.map +0 -1
  629. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  630. package/dist/hooks/validateArtifact/index.js.map +0 -1
  631. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  632. package/dist/hooks/validateArtifact/runtime.js +0 -86
  633. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  634. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  635. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  636. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  637. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  638. package/dist/registries/artifactProtocolIds.js.map +0 -1
  639. package/dist/registries/artifactRegistry.js.map +0 -1
  640. package/dist/registries/capabilityContract.js.map +0 -1
  641. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  642. package/dist/registries/packageRegistry.js.map +0 -1
  643. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  644. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  645. package/dist/registries/triggerLoader.js.map +0 -1
  646. package/dist/release/releaseMetadata.js.map +0 -1
  647. package/dist/setup/codex/agents.js +0 -96
  648. package/dist/setup/codex/agents.js.map +0 -1
  649. package/dist/setup/codex/cli.js +0 -161
  650. package/dist/setup/codex/cli.js.map +0 -1
  651. package/dist/setup/codex/configToml.js +0 -639
  652. package/dist/setup/codex/configToml.js.map +0 -1
  653. package/dist/setup/codex/constants.js +0 -29
  654. package/dist/setup/codex/constants.js.map +0 -1
  655. package/dist/setup/codex/installRoot.js +0 -64
  656. package/dist/setup/codex/installRoot.js.map +0 -1
  657. package/dist/setup/codex/state.js +0 -270
  658. package/dist/setup/codex/state.js.map +0 -1
  659. package/dist/setup/codex.js +0 -12
  660. package/dist/setup/codex.js.map +0 -1
  661. package/dist/setup/copilot.js +0 -227
  662. package/dist/setup/copilot.js.map +0 -1
  663. package/dist/setup/cursor.js +0 -129
  664. package/dist/setup/cursor.js.map +0 -1
  665. package/dist/setup/cursorSurfaces.js +0 -67
  666. package/dist/setup/cursorSurfaces.js.map +0 -1
  667. package/dist/setup/doctor/core.js +0 -300
  668. package/dist/setup/doctor/core.js.map +0 -1
  669. package/dist/setup/doctor/diagnostics.js +0 -240
  670. package/dist/setup/doctor/diagnostics.js.map +0 -1
  671. package/dist/setup/doctor/opencode.js +0 -313
  672. package/dist/setup/doctor/opencode.js.map +0 -1
  673. package/dist/setup/doctor/report.js +0 -425
  674. package/dist/setup/doctor/report.js.map +0 -1
  675. package/dist/setup/doctor.js +0 -10
  676. package/dist/setup/doctor.js.map +0 -1
  677. package/dist/setup/opencode.js.map +0 -1
  678. package/dist/setup/smokeChecks.js.map +0 -1
  679. package/dist/state/installRoot.js.map +0 -1
  680. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  681. package/dist/state/startupAnalysis/contract.js.map +0 -1
  682. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  683. package/dist/state/startupAnalysis/index.js.map +0 -1
  684. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  685. package/dist/state/startupAnalysis/records.js.map +0 -1
  686. package/dist/state/startupAnalysis/report.js.map +0 -1
  687. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  688. package/dist/state/startupAnalysis.js.map +0 -1
  689. package/dist/upgrade/appContentRefresh.js.map +0 -1
  690. package/dist/upgrade/appModel.js.map +0 -1
  691. package/dist/upgrade/bundleEvidence.js.map +0 -1
  692. package/dist/upgrade/channels.js.map +0 -1
  693. package/dist/upgrade/coexistenceProbe.js +0 -107
  694. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  695. package/dist/upgrade/compatibility.js.map +0 -1
  696. package/dist/upgrade/doctor.js.map +0 -1
  697. package/dist/upgrade/doctorClassifier.js.map +0 -1
  698. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  699. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  700. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  701. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  702. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  703. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  704. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  705. package/dist/upgrade/projectIntegration.js.map +0 -1
  706. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  707. package/dist/upgrade/runtimeMigration.js.map +0 -1
  708. package/dist/upgrade/upgradeCommands.js.map +0 -1
  709. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  710. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  711. package/dist/upgrade/versionResolution.js.map +0 -1
  712. package/dist/validate/appHomeContract.js.map +0 -1
  713. package/dist/validate/capability.js.map +0 -1
  714. package/dist/validate/crossCapability.js.map +0 -1
  715. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  716. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  717. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  718. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  719. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  720. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  721. package/dist/validate/lifecycleAdapters.js +0 -62
  722. package/dist/validate/lifecycleAdapters.js.map +0 -1
  723. package/dist/validate/selfAudit.js.map +0 -1
  724. package/dist/validate/vocabularyAuthority.js.map +0 -1
@@ -9,9 +9,8 @@ export const REQUIRED_GROUPS = [
9
9
  "identity",
10
10
  "version_authority",
11
11
  "version_surfaces",
12
- "runtime_package_manifests",
13
12
  "bundle_surfaces",
14
- "package_commands",
13
+ "bootstrap_command_authority",
15
14
  "docs_targets",
16
15
  "release_policy",
17
16
  ];
@@ -23,11 +22,10 @@ const REQUIRED_FIELDS = {
23
22
  "access_interface",
24
23
  "future_authority_change_requires",
25
24
  ],
26
- version_surfaces: ["surfaces", "excluded_runtime_manifests"],
27
- runtime_package_manifests: ["manifests", "shared_paths", "shared_paths_policy"],
28
- bundle_surfaces: ["directories", "files", "skip_parts", "skip_suffixes"],
29
- package_commands: ["commands", "safety"],
30
- docs_targets: ["version_files_source", "version_files", "index_targets", "excluded_version_files"],
25
+ version_surfaces: ["surfaces"],
26
+ bundle_surfaces: ["directories", "files", "generated_files", "skip_parts", "skip_suffixes"],
27
+ bootstrap_command_authority: ["scanned_formats", "scalar_classifications", "emitted_producers", "constructor_non_producers"],
28
+ docs_targets: ["version_files_source", "version_files", "index_targets"],
31
29
  release_policy: [
32
30
  "semver_policy_source",
33
31
  "version_bump_required_for_interface_only_change",
@@ -35,17 +33,11 @@ const REQUIRED_FIELDS = {
35
33
  ],
36
34
  };
37
35
  const CONSUMER_GROUPS = {
38
- validator: ["identity", "version_authority", "version_surfaces", "runtime_package_manifests"],
39
- upgrade: ["identity", "version_authority", "bundle_surfaces", "package_commands"],
36
+ validator: ["identity", "version_authority", "version_surfaces"],
37
+ upgrade: ["identity", "version_authority", "bundle_surfaces", "bootstrap_command_authority"],
40
38
  docs: ["identity", "version_authority", "docs_targets", "release_policy"],
41
39
  tests: REQUIRED_GROUPS,
42
40
  };
43
- const APPROVED_EXECUTABLES = new Set(["npx"]);
44
- const APPROVED_ACTIONS = new Set(["remove-legacy-skills", "install-agentera-skill"]);
45
- const APPROVED_RUNTIMES = new Set(["all", "claude", "opencode"]);
46
- const APPROVED_RUNTIME_AGENTS = new Set(["claude-code", "opencode"]);
47
- const CLEANUP_ACTIONS = new Set(["remove-legacy-skills"]);
48
- const RUNTIME_INSTALL_ACTIONS = new Set(["install-agentera-skill"]);
49
41
  const FORBIDDEN_INSTALL_ROOT_FIELDS = new Set([
50
42
  "install_root",
51
43
  "install_root_classification",
@@ -81,6 +73,29 @@ function isMapping(value) {
81
73
  function isStringList(value) {
82
74
  return Array.isArray(value) && value.every((item) => typeof item === "string");
83
75
  }
76
+ function selectorParts(selector) {
77
+ const parts = [];
78
+ for (const match of selector.matchAll(/([^[.\]]+)|\[(\d+)\]/g)) {
79
+ parts.push(match[2] === undefined ? match[1] : Number(match[2]));
80
+ }
81
+ return parts;
82
+ }
83
+ function selectedVersion(root, surface) {
84
+ const source = fs.readFileSync(path.join(root, surface.path), "utf8");
85
+ if (surface.selector === "frontmatter.version") {
86
+ return /^version:\s*["']?([^"'\s]+)["']?\s*$/m.exec(source)?.[1] ?? null;
87
+ }
88
+ let value = JSON.parse(source);
89
+ for (const part of selectorParts(surface.selector)) {
90
+ if (typeof part === "number") {
91
+ value = Array.isArray(value) ? value[part] : undefined;
92
+ }
93
+ else {
94
+ value = isMapping(value) ? value[part] : undefined;
95
+ }
96
+ }
97
+ return typeof value === "string" ? value : null;
98
+ }
84
99
  export class PackageRegistry {
85
100
  records;
86
101
  root;
@@ -110,7 +125,7 @@ export class PackageRegistry {
110
125
  try {
111
126
  data = JSON.parse(fs.readFileSync(path.join(this.root, authority.persisted_authority), "utf8"));
112
127
  }
113
- catch (exc) {
128
+ catch {
114
129
  throw new RegistryError(`registry.json missing skills[0].version`);
115
130
  }
116
131
  const version = data?.skills?.[0]?.version;
@@ -138,34 +153,12 @@ export class PackageRegistry {
138
153
  versionSurfaceIds(packageId = "agentera") {
139
154
  return this.get(packageId).version_surfaces.surfaces.map((s) => s.id);
140
155
  }
141
- runtimeManifestIds(packageId = "agentera") {
142
- return this.get(packageId).runtime_package_manifests.manifests.map((m) => m.id);
143
- }
144
- runtimeManifestPaths(packageId = "agentera") {
145
- const paths = {};
146
- for (const manifest of this.get(packageId).runtime_package_manifests.manifests) {
147
- if (!(manifest.runtime in paths)) {
148
- paths[manifest.runtime] = manifest.path;
149
- }
150
- }
151
- return paths;
152
- }
153
- runtimePackageShapes(packageId = "agentera") {
154
- const shapes = {};
155
- for (const manifest of this.get(packageId).runtime_package_manifests.manifests) {
156
- shapes[manifest.runtime] = manifest.package_shape;
157
- }
158
- return shapes;
159
- }
160
- sharedPathRequirements(packageId = "agentera") {
161
- const requirements = {};
162
- for (const entry of this.get(packageId).runtime_package_manifests.shared_paths) {
163
- requirements[entry.path] = entry.kind;
156
+ versionSurfaceValues(packageId = "agentera") {
157
+ const values = {};
158
+ for (const surface of this.get(packageId).version_surfaces.surfaces) {
159
+ values[surface.id] = selectedVersion(this.root, surface);
164
160
  }
165
- return requirements;
166
- }
167
- nonVersionBearingRuntimeManifests(packageId = "agentera") {
168
- return this.get(packageId).runtime_package_manifests.manifests.filter((m) => m.version_bearing === false);
161
+ return values;
169
162
  }
170
163
  }
171
164
  export function loadRegistry(registryPath = defaultRegistryPath(), root = defaultRoot()) {
@@ -264,14 +257,11 @@ function validateGroup(prefix, group, value, root) {
264
257
  case "version_surfaces":
265
258
  errors.push(...validateVersionSurfaces(prefix, value, root));
266
259
  break;
267
- case "runtime_package_manifests":
268
- errors.push(...validateRuntimeManifests(prefix, value, root));
269
- break;
270
260
  case "bundle_surfaces":
271
- errors.push(...validateBundleSurfaces(prefix, value, root));
261
+ errors.push(...validateBundleSurfaces(prefix, value));
272
262
  break;
273
- case "package_commands":
274
- errors.push(...validatePackageCommands(prefix, value));
263
+ case "bootstrap_command_authority":
264
+ errors.push(...validateBootstrapCommandAuthority(prefix, value, root));
275
265
  break;
276
266
  case "docs_targets":
277
267
  errors.push(...validateDocsTargets(prefix, value, root));
@@ -326,141 +316,196 @@ function validateVersionSurfaces(prefix, value, root) {
326
316
  errors.push(...validateRepoPath(`${surfacePrefix}.path`, surface.path, root));
327
317
  });
328
318
  }
329
- errors.push(...validatePathList(`${prefix}.excluded_runtime_manifests`, value.excluded_runtime_manifests, root));
330
319
  return errors;
331
320
  }
332
- function validateRuntimeManifests(prefix, value, root) {
321
+ function validateBundleSurfaces(prefix, value) {
333
322
  const errors = [];
334
- const manifests = value.manifests;
335
- if (!Array.isArray(manifests)) {
336
- errors.push(`${prefix}.manifests must be a list`);
337
- }
338
- else {
339
- errors.push(...validateIdList(`${prefix}.manifests`, manifests));
340
- let nonVersionBearing = 0;
341
- manifests.forEach((manifest, index) => {
342
- const manifestPrefix = `${prefix}.manifests[${index}]`;
343
- if (!isMapping(manifest)) {
344
- errors.push(`${manifestPrefix} must be an object`);
323
+ const ids = new Map();
324
+ const paths = new Map();
325
+ for (const field of ["directories", "files"]) {
326
+ const entries = value[field];
327
+ if (!Array.isArray(entries)) {
328
+ errors.push(`${prefix}.${field} must be a list`);
329
+ continue;
330
+ }
331
+ entries.forEach((entry, index) => {
332
+ const entryPrefix = `${prefix}.${field}[${index}]`;
333
+ if (!isMapping(entry)) {
334
+ errors.push(`${entryPrefix} must be an object`);
345
335
  return;
346
336
  }
347
- errors.push(...validateRequiredObjectFields(manifestPrefix, manifest, [
348
- "id",
349
- "runtime",
350
- "path",
351
- "version_bearing",
352
- "package_shape",
353
- ]));
354
- errors.push(...validateRepoPath(`${manifestPrefix}.path`, manifest.path, root));
355
- if (typeof manifest.version_bearing !== "boolean") {
356
- errors.push(`${manifestPrefix}.version_bearing must be a boolean`);
337
+ errors.push(...validateRequiredObjectFields(entryPrefix, entry, ["id", "path"]));
338
+ const entryId = entry.id;
339
+ if (typeof entryId === "string" && entryId.length > 0) {
340
+ const previous = ids.get(entryId);
341
+ if (previous !== undefined) {
342
+ errors.push(`${entryPrefix}.id ${JSON.stringify(entryId)} duplicates ${previous}.id; ` +
343
+ "correction: use a unique id across bundle directories and files");
344
+ }
345
+ else {
346
+ ids.set(entryId, entryPrefix);
347
+ }
357
348
  }
358
- else if (manifest.version_bearing === false) {
359
- nonVersionBearing += 1;
349
+ const entryPath = entry.path;
350
+ errors.push(...validateBundlePath(entryPrefix, entryId, entryPath));
351
+ if (typeof entryPath === "string" && entryPath.length > 0) {
352
+ const previous = paths.get(entryPath);
353
+ if (previous !== undefined) {
354
+ errors.push(`${entryPrefix}.path ${JSON.stringify(entryPath)} for id ${JSON.stringify(entryId)} ` +
355
+ `duplicates ${previous}.path; correction: use a unique path across bundle directories and files`);
356
+ }
357
+ else {
358
+ paths.set(entryPath, entryPrefix);
359
+ }
360
360
  }
361
361
  });
362
- if (nonVersionBearing === 0) {
363
- errors.push(`${prefix}.manifests must include non-version-bearing runtime package manifests separately`);
362
+ }
363
+ for (const field of ["skip_parts", "skip_suffixes"]) {
364
+ if (!isStringList(value[field])) {
365
+ errors.push(`${prefix}.${field} must be a list of strings`);
364
366
  }
365
367
  }
366
- const sharedPaths = value.shared_paths;
367
- if (!Array.isArray(sharedPaths)) {
368
- errors.push(`${prefix}.shared_paths must be a list`);
368
+ const generated = value.generated_files;
369
+ if (!Array.isArray(generated)) {
370
+ errors.push(`${prefix}.generated_files must be a list`);
369
371
  }
370
372
  else {
371
- errors.push(...validateIdList(`${prefix}.shared_paths`, sharedPaths));
372
- sharedPaths.forEach((entry, index) => {
373
- const entryPrefix = `${prefix}.shared_paths[${index}]`;
373
+ generated.forEach((entry, index) => {
374
+ const entryPrefix = `${prefix}.generated_files[${index}]`;
374
375
  if (!isMapping(entry)) {
375
376
  errors.push(`${entryPrefix} must be an object`);
376
377
  return;
377
378
  }
378
- errors.push(...validateRequiredObjectFields(entryPrefix, entry, ["id", "path", "kind"]));
379
- errors.push(...validateRepoPath(`${entryPrefix}.path`, entry.path, root));
380
- if (entry.kind !== "dir" && entry.kind !== "file") {
381
- errors.push(`${entryPrefix}.kind must be dir or file`);
379
+ errors.push(...validateRequiredObjectFields(entryPrefix, entry, ["id", "path", "format", "classification", "command_authority_reason"]));
380
+ errors.push(...validateBundlePath(entryPrefix, entry.id, entry.path));
381
+ if (typeof entry.id === "string" && entry.id) {
382
+ const previous = ids.get(entry.id);
383
+ if (previous)
384
+ errors.push(`${entryPrefix}.id ${JSON.stringify(entry.id)} duplicates ${previous}.id; correction: use a unique id across all bundle surfaces`);
385
+ else
386
+ ids.set(entry.id, entryPrefix);
387
+ }
388
+ if (typeof entry.path === "string" && entry.path) {
389
+ const previous = paths.get(entry.path);
390
+ if (previous)
391
+ errors.push(`${entryPrefix}.path ${JSON.stringify(entry.path)} for id ${JSON.stringify(entry.id)} duplicates ${previous}.path; correction: use a unique path across all bundle surfaces`);
392
+ else
393
+ paths.set(entry.path, entryPrefix);
394
+ }
395
+ if (entry.format !== "json")
396
+ errors.push(`${entryPrefix}.format must be json`);
397
+ if (entry.classification !== "active")
398
+ errors.push(`${entryPrefix}.classification must be active`);
399
+ if (typeof entry.command_authority_reason !== "string" || !entry.command_authority_reason) {
400
+ errors.push(`${entryPrefix}.command_authority_reason must be a non-empty string`);
382
401
  }
383
402
  });
384
403
  }
385
- if (typeof value.shared_paths_policy !== "string" || !value.shared_paths_policy) {
386
- errors.push(`${prefix}.shared_paths_policy must be a non-empty string`);
387
- }
388
404
  return errors;
389
405
  }
390
- function validateBundleSurfaces(prefix, value, root) {
406
+ function validateBootstrapCommandAuthority(prefix, value, root) {
391
407
  const errors = [];
392
- for (const field of ["directories", "files"]) {
408
+ const formats = value.scanned_formats;
409
+ if (!Array.isArray(formats) || !formats.every((item) => typeof item === "string") || new Set(formats).size !== 3 || !["markdown", "yaml", "json"].every((format) => formats.includes(format))) {
410
+ errors.push(`${prefix}.scanned_formats must contain exactly markdown, yaml, and json`);
411
+ }
412
+ for (const field of ["emitted_producers", "constructor_non_producers"]) {
393
413
  const entries = value[field];
394
414
  if (!Array.isArray(entries)) {
395
415
  errors.push(`${prefix}.${field} must be a list`);
396
416
  continue;
397
417
  }
398
- errors.push(...validateIdList(`${prefix}.${field}`, entries));
418
+ const paths = new Set();
399
419
  entries.forEach((entry, index) => {
400
420
  const entryPrefix = `${prefix}.${field}[${index}]`;
401
421
  if (!isMapping(entry)) {
402
422
  errors.push(`${entryPrefix} must be an object`);
403
423
  return;
404
424
  }
405
- errors.push(...validateRequiredObjectFields(entryPrefix, entry, ["id", "path"]));
425
+ errors.push(...validateRequiredObjectFields(entryPrefix, entry, ["path", "reason"]));
406
426
  errors.push(...validateRepoPath(`${entryPrefix}.path`, entry.path, root));
427
+ if (typeof entry.reason !== "string" || !entry.reason)
428
+ errors.push(`${entryPrefix}.reason must be a non-empty string`);
429
+ if (typeof entry.path === "string") {
430
+ if (paths.has(entry.path))
431
+ errors.push(`${entryPrefix}.path duplicates ${JSON.stringify(entry.path)}`);
432
+ paths.add(entry.path);
433
+ }
407
434
  });
408
435
  }
409
- for (const field of ["skip_parts", "skip_suffixes"]) {
410
- if (!isStringList(value[field])) {
411
- errors.push(`${prefix}.${field} must be a list of strings`);
412
- }
413
- }
414
- return errors;
415
- }
416
- function validatePackageCommands(prefix, value) {
417
- const errors = [];
418
- const commands = value.commands;
419
- if (!Array.isArray(commands)) {
420
- errors.push(`${prefix}.commands must be a list`);
436
+ const classifications = value.scalar_classifications;
437
+ if (!Array.isArray(classifications)) {
438
+ errors.push(`${prefix}.scalar_classifications must be a list`);
421
439
  }
422
440
  else {
423
- errors.push(...validateIdList(`${prefix}.commands`, commands));
424
- commands.forEach((command, index) => {
425
- const commandPrefix = `${prefix}.commands[${index}]`;
426
- if (!isMapping(command)) {
427
- errors.push(`${commandPrefix} must be an object`);
441
+ const identities = new Set();
442
+ const reasons = new Set();
443
+ classifications.forEach((entry, index) => {
444
+ const entryPrefix = `${prefix}.scalar_classifications[${index}]`;
445
+ if (!isMapping(entry)) {
446
+ errors.push(`${entryPrefix} must be an object`);
428
447
  return;
429
448
  }
430
- errors.push(...validateRequiredObjectFields(commandPrefix, command, [
431
- "id",
432
- "runtime",
433
- "action",
434
- "phase",
435
- "argv",
436
- "skipped_without_update_packages_message",
449
+ errors.push(...validateRequiredObjectFields(entryPrefix, entry, [
450
+ "path",
451
+ "region",
452
+ "category",
453
+ "classification",
454
+ "normalized_sha256",
455
+ "reason",
437
456
  ]));
438
- errors.push(...validateCommandSpec(commandPrefix, command));
457
+ errors.push(...validateRepoPath(`${entryPrefix}.path`, entry.path, root));
458
+ if (typeof entry.region !== "string" || !entry.region)
459
+ errors.push(`${entryPrefix}.region must be a non-empty string`);
460
+ if (!["identity_only", "argument_bearing", "other_vocabulary"].includes(String(entry.category)))
461
+ errors.push(`${entryPrefix}.category is invalid`);
462
+ if (!["bounded_descriptive", "exact_exemption"].includes(String(entry.classification)))
463
+ errors.push(`${entryPrefix}.classification is invalid`);
464
+ if (typeof entry.normalized_sha256 !== "string" || !/^[a-f0-9]{64}$/u.test(entry.normalized_sha256))
465
+ errors.push(`${entryPrefix}.normalized_sha256 must be lowercase SHA-256`);
466
+ if (typeof entry.reason !== "string" || !entry.reason)
467
+ errors.push(`${entryPrefix}.reason must be a non-empty string`);
468
+ else if (reasons.has(entry.reason))
469
+ errors.push(`${entryPrefix}.reason duplicates another scalar-specific reason`);
470
+ else
471
+ reasons.add(entry.reason);
472
+ if (typeof entry.path === "string" && typeof entry.region === "string") {
473
+ const identity = `${entry.path}\u0000${entry.region}`;
474
+ if (identities.has(identity))
475
+ errors.push(`${entryPrefix} duplicates path and region ${JSON.stringify(entry.path)} ${JSON.stringify(entry.region)}`);
476
+ identities.add(identity);
477
+ }
439
478
  });
440
479
  }
441
- const safety = value.safety;
442
- const expectedSafety = {
443
- argv_only: true,
444
- update_packages_required_to_plan: true,
445
- yes_required_to_execute: true,
446
- preserve_existing_write_gates: true,
447
- cleanup_phase: "cleanup",
448
- runtime_install_phase: "runtime-install",
449
- };
450
- if (!isMapping(safety)) {
451
- errors.push(`${prefix}.safety must be an object`);
452
- }
453
- else if (!shallowEqual(safety, expectedSafety)) {
454
- errors.push(`${prefix}.safety must preserve approved write gates and phase names`);
455
- }
456
480
  return errors;
457
481
  }
482
+ function validateBundlePath(prefix, id, value) {
483
+ const segments = typeof value === "string" ? value.split("/") : [];
484
+ const invalid = typeof value !== "string" ||
485
+ value.length === 0 ||
486
+ path.posix.isAbsolute(value) ||
487
+ path.win32.isAbsolute(value) ||
488
+ /^[A-Za-z]:/.test(value) ||
489
+ value.includes("\\") ||
490
+ value.startsWith("./") ||
491
+ value.endsWith("/") ||
492
+ segments.includes(".") ||
493
+ segments.includes("..") ||
494
+ path.posix.normalize(value) !== value;
495
+ if (!invalid)
496
+ return [];
497
+ return [
498
+ `${prefix}.path ${JSON.stringify(value)} for id ${JSON.stringify(id)} is invalid; ` +
499
+ "correction: use a non-empty normalized relative POSIX path without absolute roots, " +
500
+ "drive prefixes, backslashes, leading './', trailing separators, or '.'/'..' segments",
501
+ ];
502
+ }
458
503
  function validateDocsTargets(prefix, value, root) {
459
504
  const errors = [];
460
505
  if (typeof value.version_files_source !== "string" || !value.version_files_source) {
461
506
  errors.push(`${prefix}.version_files_source must be a non-empty string`);
462
507
  }
463
- for (const field of ["version_files", "index_targets", "excluded_version_files"]) {
508
+ for (const field of ["version_files", "index_targets"]) {
464
509
  errors.push(...validatePathList(`${prefix}.${field}`, value[field], root));
465
510
  }
466
511
  return errors;
@@ -480,51 +525,6 @@ function validateReleasePolicy(prefix, value) {
480
525
  }
481
526
  return errors;
482
527
  }
483
- function validateCommandSpec(prefix, command) {
484
- const errors = [];
485
- const runtime = command.runtime; // cast: parsed registry IO data
486
- const action = command.action;
487
- const phase = command.phase;
488
- const argv = command.argv;
489
- if (!APPROVED_RUNTIMES.has(runtime)) {
490
- errors.push(`${prefix}.runtime ${pyRepr(runtime)} is not approved`);
491
- }
492
- if (!APPROVED_ACTIONS.has(action)) {
493
- errors.push(`${prefix}.action ${pyRepr(action)} is not approved`);
494
- }
495
- if (!Array.isArray(argv) || argv.length === 0 || !argv.every((part) => typeof part === "string")) {
496
- errors.push(`${prefix}.argv must be a list of strings`);
497
- return errors;
498
- }
499
- if (!APPROVED_EXECUTABLES.has(argv[0])) {
500
- errors.push(`${prefix}.argv uses unapproved executable ${pyRepr(argv[0])}`);
501
- }
502
- if (argv.length < 3 || argv[1] !== "skills" || !["remove", "add"].includes(argv[2])) {
503
- errors.push(`${prefix}.argv must use approved skills action`);
504
- }
505
- if (CLEANUP_ACTIONS.has(action) && (runtime !== "all" || phase !== "cleanup" || argv[2] !== "remove")) {
506
- errors.push(`${prefix}: cleanup commands must stay separate from runtime installs`);
507
- }
508
- if (RUNTIME_INSTALL_ACTIONS.has(action)) {
509
- if (runtime === "all" || phase !== "runtime-install" || argv[2] !== "add") {
510
- errors.push(`${prefix}: runtime install commands must stay out of cleanup`);
511
- }
512
- if (!argv.includes("-a")) {
513
- errors.push(`${prefix}: runtime install commands must declare runtime agent`);
514
- }
515
- else {
516
- const agentIndex = argv.indexOf("-a") + 1;
517
- const agent = agentIndex < argv.length ? argv[agentIndex] : null;
518
- if (agent === null || !APPROVED_RUNTIME_AGENTS.has(agent)) {
519
- errors.push(`${prefix}: runtime install agent ${pyRepr(agent)} is not approved`);
520
- }
521
- }
522
- }
523
- if (typeof command.skipped_without_update_packages_message !== "string") {
524
- errors.push(`${prefix}.skipped_without_update_packages_message must be a string`);
525
- }
526
- return errors;
527
- }
528
528
  function validateRequiredObjectFields(prefix, value, expected) {
529
529
  const errors = [];
530
530
  for (const field of expected) {
@@ -537,7 +537,7 @@ function validateRequiredObjectFields(prefix, value, expected) {
537
537
  errors.push(`${prefix}: unknown field ${field}`);
538
538
  }
539
539
  }
540
- for (const field of ["id", "runtime", "action", "phase", "selector", "package_shape"]) {
540
+ for (const field of ["id", "selector"]) {
541
541
  if (field in value && (typeof value[field] !== "string" || !value[field])) {
542
542
  errors.push(`${prefix}.${field} must be a non-empty string`);
543
543
  }
@@ -586,11 +586,10 @@ function validateRepoPath(prefix, value, root) {
586
586
  if (rel !== "" && (rel.startsWith("..") || path.isAbsolute(rel))) {
587
587
  return [`${prefix} must stay inside repo root`];
588
588
  }
589
- // Existence is advisory for a package DISTRIBUTION spec: surfaces such as
590
- // version files, plugin manifests, and build outputs may be generated at
591
- // build/release time or be runtime-specific, and need not be present in every
592
- // checkout (e.g. a node-only tree without the Python build files). Structural
593
- // and traversal safety above still apply.
589
+ // Existence is advisory for a package distribution spec: version files and
590
+ // build outputs may be generated at build/release time and need not be
591
+ // present in every checkout. Structural and traversal safety above still
592
+ // apply.
594
593
  return [];
595
594
  }
596
595
  function validateForbiddenFields(prefix, value) {
@@ -616,27 +615,3 @@ function validateForbiddenFields(prefix, value) {
616
615
  }
617
616
  return errors;
618
617
  }
619
- function shallowEqual(a, b) {
620
- const ak = Object.keys(a);
621
- const bk = Object.keys(b);
622
- if (ak.length !== bk.length) {
623
- return false;
624
- }
625
- for (const k of ak) {
626
- if (a[k] !== b[k]) {
627
- return false;
628
- }
629
- }
630
- return true;
631
- }
632
- /** Mirror Python repr() for the scalar values used in validator messages. */
633
- function pyRepr(value) {
634
- if (value === null || value === undefined) {
635
- return "None";
636
- }
637
- if (typeof value === "string") {
638
- return `'${value}'`;
639
- }
640
- return String(value);
641
- }
642
- //# sourceMappingURL=packageRegistry.js.map
@@ -0,0 +1 @@
1
+ export {};