agentera 3.0.0-dev.8 → 3.0.0-dev.81

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 (725) 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 +1389 -0
  5. package/bundle/DESIGN.md +229 -0
  6. package/bundle/LICENSE +201 -0
  7. package/bundle/README.md +142 -0
  8. package/bundle/UPGRADE.md +275 -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 +357 -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 +262 -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 +3075 -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 +162 -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 +618 -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 +894 -0
  356. package/dist/state/entityWriterLock.js +18 -0
  357. package/dist/state/exactReplacementRecovery.js +18 -0
  358. package/dist/state/experimentArchive.js +63 -0
  359. package/dist/state/experimentIdentity.js +202 -0
  360. package/dist/state/healthEntities.js +262 -0
  361. package/dist/state/healthEntityValidation.js +18 -0
  362. package/dist/state/healthRepair.js +69 -0
  363. package/dist/state/installRoot.js +15 -7
  364. package/dist/state/legacyEntityCutoverEvidence.js +65 -0
  365. package/dist/state/legacyIdentity.js +47 -0
  366. package/dist/state/legacySummaryRecord.js +6 -0
  367. package/dist/state/listAccounting.js +54 -0
  368. package/dist/state/listClassification.js +17 -0
  369. package/dist/state/listCursor.js +42 -0
  370. package/dist/state/listRetrieval.js +781 -0
  371. package/dist/state/migrationSourceBinding.js +30 -0
  372. package/dist/state/objectiveExperimentEntities.js +322 -0
  373. package/dist/state/planEntities.js +1027 -0
  374. package/dist/state/planIdentity.js +47 -0
  375. package/dist/state/planLineageValidation.js +52 -0
  376. package/dist/state/planReplacementTransaction.js +475 -0
  377. package/dist/state/planRetrieval.js +313 -0
  378. package/dist/state/planTaskRetrieval.js +294 -0
  379. package/dist/state/progressEntities.js +512 -0
  380. package/dist/state/progressGlossaryCaveat.js +168 -0
  381. package/dist/state/progressPublicationOrder.js +19 -0
  382. package/dist/state/progressWritePolicy.js +33 -0
  383. package/dist/state/projectRoot.js +62 -0
  384. package/dist/state/projectionPolicy.js +190 -0
  385. package/dist/state/retrievalAuthority.js +156 -0
  386. package/dist/state/safeProjectFile.js +155 -0
  387. package/dist/state/startupAnalysis/benchmark.js +70 -9
  388. package/dist/state/startupAnalysis/contract.js +44 -10
  389. package/dist/state/startupAnalysis/helpers.js +1 -2
  390. package/dist/state/startupAnalysis/index.js +0 -1
  391. package/dist/state/startupAnalysis/metrics.js +0 -1
  392. package/dist/state/startupAnalysis/records.js +0 -1
  393. package/dist/state/startupAnalysis/report.js +0 -1
  394. package/dist/state/startupAnalysis/threshold.js +13 -1
  395. package/dist/state/startupAnalysis.js +0 -1
  396. package/dist/state/startupProjection.js +499 -0
  397. package/dist/state/stateMode.js +222 -0
  398. package/dist/state/stateStorageAuthority.js +47 -0
  399. package/dist/state/summaryEntityRead.js +25 -0
  400. package/dist/state/summaryMigrationProvenance.js +66 -0
  401. package/dist/state/summarySourceRowAuthority.js +36 -0
  402. package/dist/state/todoActivationSafety.js +58 -0
  403. package/dist/state/todoCreateBatch.js +69 -0
  404. package/dist/state/todoDocsEntities.js +1339 -0
  405. package/dist/state/todoDocsEntityValidation.js +158 -0
  406. package/dist/state/todoMarkdownProjection.js +63 -0
  407. package/dist/state/todoReconciliationActivation.js +182 -0
  408. package/dist/state/todoReconciliationInspection.js +184 -0
  409. package/dist/state/todoReconciliationRepair.js +320 -0
  410. package/dist/state/todoReconciliationTransaction.js +628 -0
  411. package/dist/state/todoSeverityHeadings.js +71 -0
  412. package/dist/state/todoTransitionBatch.js +65 -0
  413. package/dist/state/todoUpdateBatch.js +50 -0
  414. package/dist/state/write/assign.js +20 -0
  415. package/dist/state/write/candidateMutation.js +269 -0
  416. package/dist/state/write/errors.js +11 -0
  417. package/dist/state/write/experimentPublication.js +192 -0
  418. package/dist/state/write/explain.js +380 -0
  419. package/dist/state/write/fields.js +61 -0
  420. package/dist/state/write/glossaryPublication.js +263 -0
  421. package/dist/state/write/grammar.js +285 -0
  422. package/dist/state/write/helpers.js +29 -0
  423. package/dist/state/write/index.js +12 -0
  424. package/dist/state/write/input.js +391 -0
  425. package/dist/state/write/lock.js +837 -0
  426. package/dist/state/write/mutation.js +234 -0
  427. package/dist/state/write/operations.js +170 -0
  428. package/dist/state/write/planEvaluation.js +128 -0
  429. package/dist/state/write/planPublication.js +179 -0
  430. package/dist/state/write/runtimeOperations.js +146 -0
  431. package/dist/state/write/serialize.js +1 -0
  432. package/dist/state/write/transaction.js +57 -0
  433. package/dist/state/write/validate.js +7 -0
  434. package/dist/upgrade/appContentRefresh.js +77 -36
  435. package/dist/upgrade/appModel.js +0 -1
  436. package/dist/upgrade/atomicWriter.js +1 -0
  437. package/dist/upgrade/bundleEvidence.js +0 -1
  438. package/dist/upgrade/channels.js +6 -9
  439. package/dist/upgrade/compatibility.js +43 -17
  440. package/dist/upgrade/doctor.js +55 -32
  441. package/dist/upgrade/doctorClassifier.js +11 -1
  442. package/dist/upgrade/installedHooksRetirement.js +46 -40
  443. package/dist/upgrade/legacyAgentCleanup.js +133 -34
  444. package/dist/upgrade/lifecycleUpgrade.js +126 -0
  445. package/dist/upgrade/migrateArtifactsV2ToV3.js +325 -82
  446. package/dist/upgrade/migrationPublication.js +122 -0
  447. package/dist/upgrade/nextMajorDoctor.js +0 -22
  448. package/dist/upgrade/npxPlatformStatus.js +2 -2
  449. package/dist/upgrade/productV1Reset.js +515 -0
  450. package/dist/upgrade/productV1ResetAuthority.js +139 -0
  451. package/dist/upgrade/projectIntegration.js +126 -134
  452. package/dist/upgrade/projectIntegrationDecision.js +21 -13
  453. package/dist/upgrade/retiredResourceDiagnostics.js +117 -0
  454. package/dist/upgrade/runtimeMigration.js +210 -430
  455. package/dist/upgrade/upgradeCommands.js +14 -1
  456. package/dist/upgrade/upgradeLock.js +85 -0
  457. package/dist/upgrade/upgradeOrchestrator.js +257 -48
  458. package/dist/upgrade/v3CapabilitySurface.js +2 -3
  459. package/dist/upgrade/versionResolution.js +0 -1
  460. package/dist/validate/activationArtifactEvidence.js +866 -0
  461. package/dist/validate/activationArtifactEvidenceTypes.js +12 -0
  462. package/dist/validate/activationConjunction.js +816 -0
  463. package/dist/validate/activationEvidenceManifest.js +610 -0
  464. package/dist/validate/activationPackageSemantics.js +29 -0
  465. package/dist/validate/appHomeContract.js +1 -7
  466. package/dist/validate/bootstrapAuthority.js +44 -0
  467. package/dist/validate/capability.js +11 -3
  468. package/dist/validate/crossCapability.js +14 -9
  469. package/dist/validate/glossaryVariantGuard.js +96 -0
  470. package/dist/validate/retainedReferenceAuthority.js +879 -0
  471. package/dist/validate/selfAudit.js +39 -45
  472. package/dist/validate/vocabularyAuthority.js +8 -8
  473. package/package.json +39 -13
  474. package/bundle/references/adapters/cursor.md +0 -214
  475. package/bundle/references/adapters/opencode.md +0 -530
  476. package/bundle/references/adapters/package-manifest-interface-model.yaml +0 -337
  477. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -79
  478. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  479. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -554
  480. package/bundle/references/adapters/runtime-feature-parity.md +0 -189
  481. package/bundle/references/analysis/benchmark.md +0 -267
  482. package/bundle/references/analysis/startup-measurement-contract.yaml +0 -424
  483. package/bundle/references/cli/agent-ready-state-contract.yaml +0 -953
  484. package/bundle/references/cli/audience-namespace-cli-migration.yaml +0 -369
  485. package/bundle/references/cli/bundle-skill-vocabulary.yaml +0 -250
  486. package/bundle/references/cli/capability-tool-classification.yaml +0 -53
  487. package/bundle/references/cli/coexistence-probe.yaml +0 -13
  488. package/bundle/references/cli/parity-expected-actual-template.md +0 -30
  489. package/bundle/references/cli/routing-execution-vocabulary.yaml +0 -281
  490. package/bundle/references/cli/single-name-protocol.yaml +0 -42
  491. package/bundle/references/cli/upgrade-repair-wording.md +0 -45
  492. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +0 -98
  493. package/bundle/references/meta/documentation-inventory.md +0 -49
  494. package/bundle/skills/agentera/.claude-plugin/plugin.json +0 -27
  495. package/bundle/skills/agentera/agents/audit.toml +0 -6
  496. package/bundle/skills/agentera/agents/build.toml +0 -6
  497. package/bundle/skills/agentera/agents/design.toml +0 -6
  498. package/bundle/skills/agentera/agents/discuss.toml +0 -6
  499. package/bundle/skills/agentera/agents/document.toml +0 -6
  500. package/bundle/skills/agentera/agents/optimize.toml +0 -6
  501. package/bundle/skills/agentera/agents/orchestrate.toml +0 -6
  502. package/bundle/skills/agentera/agents/plan.toml +0 -6
  503. package/bundle/skills/agentera/agents/profile.toml +0 -6
  504. package/bundle/skills/agentera/agents/research.toml +0 -6
  505. package/bundle/skills/agentera/agents/status.toml +0 -6
  506. package/bundle/skills/agentera/agents/vision.toml +0 -6
  507. package/bundle/skills/agentera/references/contract.md +0 -1048
  508. package/dist/analytics/extractCorpus/cli.js.map +0 -1
  509. package/dist/analytics/extractCorpus/copilotSessions.js.map +0 -1
  510. package/dist/analytics/extractCorpus/core.js.map +0 -1
  511. package/dist/analytics/extractCorpus/corpus.js.map +0 -1
  512. package/dist/analytics/extractCorpus/coverageAudit.js.map +0 -1
  513. package/dist/analytics/extractCorpus/cursorSessions.js.map +0 -1
  514. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +0 -1
  515. package/dist/analytics/extractCorpus/filesystemSources.js.map +0 -1
  516. package/dist/analytics/extractCorpus/index.js.map +0 -1
  517. package/dist/analytics/extractCorpus/jsonlSessions.js.map +0 -1
  518. package/dist/analytics/extractCorpus/sqliteCaps.js.map +0 -1
  519. package/dist/analytics/extractCorpus/sqliteSessions.js.map +0 -1
  520. package/dist/analytics/extractCorpus.js.map +0 -1
  521. package/dist/analytics/usageStats.js.map +0 -1
  522. package/dist/bin/agentera.js.map +0 -1
  523. package/dist/capabilities/audit/instructions.js.map +0 -1
  524. package/dist/capabilities/build/instructions.js.map +0 -1
  525. package/dist/capabilities/design/instructions.js.map +0 -1
  526. package/dist/capabilities/discuss/instructions.js.map +0 -1
  527. package/dist/capabilities/document/instructions.js.map +0 -1
  528. package/dist/capabilities/index.js.map +0 -1
  529. package/dist/capabilities/optimize/instructions.js.map +0 -1
  530. package/dist/capabilities/orchestrate/instructions.js.map +0 -1
  531. package/dist/capabilities/plan/instructions.js.map +0 -1
  532. package/dist/capabilities/profile/instructions.js.map +0 -1
  533. package/dist/capabilities/research/instructions.js.map +0 -1
  534. package/dist/capabilities/status/instructions.js.map +0 -1
  535. package/dist/capabilities/vision/instructions.js.map +0 -1
  536. package/dist/cli/appContext.js.map +0 -1
  537. package/dist/cli/argvalidate.js.map +0 -1
  538. package/dist/cli/capabilityContext/benchmark.js.map +0 -1
  539. package/dist/cli/capabilityContext/bespoke.js.map +0 -1
  540. package/dist/cli/capabilityContext/build.js.map +0 -1
  541. package/dist/cli/capabilityContext/closeout.js.map +0 -1
  542. package/dist/cli/capabilityContext/contract.js.map +0 -1
  543. package/dist/cli/capabilityContext/evidence.js.map +0 -1
  544. package/dist/cli/capabilityContext/index.js.map +0 -1
  545. package/dist/cli/capabilityContext/orchestration.js.map +0 -1
  546. package/dist/cli/capabilityContext/planState.js.map +0 -1
  547. package/dist/cli/capabilityContext/progress.js.map +0 -1
  548. package/dist/cli/capabilityContext/shared.js.map +0 -1
  549. package/dist/cli/capabilityContext/slim.js.map +0 -1
  550. package/dist/cli/capabilityContext/startup.js.map +0 -1
  551. package/dist/cli/capabilityContext/types.js.map +0 -1
  552. package/dist/cli/capabilityContext.js.map +0 -1
  553. package/dist/cli/commands/appHome.js.map +0 -1
  554. package/dist/cli/commands/capability.js.map +0 -1
  555. package/dist/cli/commands/compact.js.map +0 -1
  556. package/dist/cli/commands/doctor.js.map +0 -1
  557. package/dist/cli/commands/lint.js.map +0 -1
  558. package/dist/cli/commands/prime/bundleStatus.js.map +0 -1
  559. package/dist/cli/commands/prime/collectOrientationState.js.map +0 -1
  560. package/dist/cli/commands/prime/orientationOutput.js.map +0 -1
  561. package/dist/cli/commands/prime/types.js.map +0 -1
  562. package/dist/cli/commands/prime/v1Migration.js +0 -39
  563. package/dist/cli/commands/prime/v1Migration.js.map +0 -1
  564. package/dist/cli/commands/prime.js.map +0 -1
  565. package/dist/cli/commands/query.js.map +0 -1
  566. package/dist/cli/commands/report.js.map +0 -1
  567. package/dist/cli/commands/schema.js.map +0 -1
  568. package/dist/cli/commands/state/decisions.js.map +0 -1
  569. package/dist/cli/commands/state/docs.js.map +0 -1
  570. package/dist/cli/commands/state/experiments.js.map +0 -1
  571. package/dist/cli/commands/state/health.js.map +0 -1
  572. package/dist/cli/commands/state/index.js.map +0 -1
  573. package/dist/cli/commands/state/objective.js.map +0 -1
  574. package/dist/cli/commands/state/plan.js.map +0 -1
  575. package/dist/cli/commands/state/progress.js.map +0 -1
  576. package/dist/cli/commands/state/shared.js.map +0 -1
  577. package/dist/cli/commands/state/todo.js.map +0 -1
  578. package/dist/cli/commands/upgrade.js.map +0 -1
  579. package/dist/cli/commands/validate.js.map +0 -1
  580. package/dist/cli/commands/verify.js.map +0 -1
  581. package/dist/cli/contracts/bundleStatus.js.map +0 -1
  582. package/dist/cli/contracts/orientationState.js.map +0 -1
  583. package/dist/cli/dispatch/argvParser.js.map +0 -1
  584. package/dist/cli/dispatch/check.js.map +0 -1
  585. package/dist/cli/dispatch/commands.js.map +0 -1
  586. package/dist/cli/dispatch/index.js.map +0 -1
  587. package/dist/cli/dispatch/lifecycle.js.map +0 -1
  588. package/dist/cli/dispatch/prime.js.map +0 -1
  589. package/dist/cli/dispatch/shared.js.map +0 -1
  590. package/dist/cli/dispatch/state.js.map +0 -1
  591. package/dist/cli/dispatch.js.map +0 -1
  592. package/dist/cli/errors.js.map +0 -1
  593. package/dist/cli/help.js.map +0 -1
  594. package/dist/cli/orientation/attention.js.map +0 -1
  595. package/dist/cli/orientation/corpusCoverage.js.map +0 -1
  596. package/dist/cli/orientation.js.map +0 -1
  597. package/dist/cli/prime-blob.js.map +0 -1
  598. package/dist/cli/startupCompletenessContract.js.map +0 -1
  599. package/dist/cli/stateQuery.js.map +0 -1
  600. package/dist/cli/structured.js.map +0 -1
  601. package/dist/cli/todoMarkdown.js.map +0 -1
  602. package/dist/cli/todoSeverity.js.map +0 -1
  603. package/dist/core/difflib.js.map +0 -1
  604. package/dist/core/envPaths.js.map +0 -1
  605. package/dist/core/jsonValue.js.map +0 -1
  606. package/dist/core/paths.js.map +0 -1
  607. package/dist/core/pyjson.js.map +0 -1
  608. package/dist/core/sourceRoot.js.map +0 -1
  609. package/dist/core/toml.js.map +0 -1
  610. package/dist/core/yaml.js.map +0 -1
  611. package/dist/eval/evalSkills.js.map +0 -1
  612. package/dist/eval/semanticEval.js.map +0 -1
  613. package/dist/eval/semanticFixtures.js.map +0 -1
  614. package/dist/hooks/common.js.map +0 -1
  615. package/dist/hooks/compaction/apply.js.map +0 -1
  616. package/dist/hooks/compaction/dryRun.js.map +0 -1
  617. package/dist/hooks/compaction/index.js.map +0 -1
  618. package/dist/hooks/compaction/parse.js.map +0 -1
  619. package/dist/hooks/compaction/retention.js.map +0 -1
  620. package/dist/hooks/compaction/status.js.map +0 -1
  621. package/dist/hooks/compaction/types.js.map +0 -1
  622. package/dist/hooks/cursorPreToolUse.js +0 -19
  623. package/dist/hooks/cursorPreToolUse.js.map +0 -1
  624. package/dist/hooks/cursorSessionStart.js +0 -79
  625. package/dist/hooks/cursorSessionStart.js.map +0 -1
  626. package/dist/hooks/sessionStart.js +0 -216
  627. package/dist/hooks/sessionStart.js.map +0 -1
  628. package/dist/hooks/sessionStop.js +0 -206
  629. package/dist/hooks/sessionStop.js.map +0 -1
  630. package/dist/hooks/validateArtifact/agentFacing.js.map +0 -1
  631. package/dist/hooks/validateArtifact/index.js.map +0 -1
  632. package/dist/hooks/validateArtifact/markdown.js.map +0 -1
  633. package/dist/hooks/validateArtifact/runtime.js +0 -86
  634. package/dist/hooks/validateArtifact/runtime.js.map +0 -1
  635. package/dist/hooks/validateArtifact/schema.js.map +0 -1
  636. package/dist/hooks/validateArtifact/traversal.js.map +0 -1
  637. package/dist/hooks/validateArtifact/violations.js.map +0 -1
  638. package/dist/migrate/v2HandoffManifest.js.map +0 -1
  639. package/dist/registries/artifactProtocolIds.js.map +0 -1
  640. package/dist/registries/artifactRegistry.js.map +0 -1
  641. package/dist/registries/capabilityContract.js.map +0 -1
  642. package/dist/registries/evaluatorHandoffContract.js.map +0 -1
  643. package/dist/registries/packageRegistry.js.map +0 -1
  644. package/dist/registries/runtimeAdapterRegistry.js +0 -316
  645. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  646. package/dist/registries/triggerLoader.js.map +0 -1
  647. package/dist/release/releaseMetadata.js.map +0 -1
  648. package/dist/setup/codex/agents.js +0 -96
  649. package/dist/setup/codex/agents.js.map +0 -1
  650. package/dist/setup/codex/cli.js +0 -161
  651. package/dist/setup/codex/cli.js.map +0 -1
  652. package/dist/setup/codex/configToml.js +0 -639
  653. package/dist/setup/codex/configToml.js.map +0 -1
  654. package/dist/setup/codex/constants.js +0 -29
  655. package/dist/setup/codex/constants.js.map +0 -1
  656. package/dist/setup/codex/installRoot.js +0 -64
  657. package/dist/setup/codex/installRoot.js.map +0 -1
  658. package/dist/setup/codex/state.js +0 -270
  659. package/dist/setup/codex/state.js.map +0 -1
  660. package/dist/setup/codex.js +0 -12
  661. package/dist/setup/codex.js.map +0 -1
  662. package/dist/setup/copilot.js +0 -227
  663. package/dist/setup/copilot.js.map +0 -1
  664. package/dist/setup/cursor.js +0 -129
  665. package/dist/setup/cursor.js.map +0 -1
  666. package/dist/setup/cursorSurfaces.js +0 -67
  667. package/dist/setup/cursorSurfaces.js.map +0 -1
  668. package/dist/setup/doctor/core.js +0 -300
  669. package/dist/setup/doctor/core.js.map +0 -1
  670. package/dist/setup/doctor/diagnostics.js +0 -240
  671. package/dist/setup/doctor/diagnostics.js.map +0 -1
  672. package/dist/setup/doctor/opencode.js +0 -313
  673. package/dist/setup/doctor/opencode.js.map +0 -1
  674. package/dist/setup/doctor/report.js +0 -425
  675. package/dist/setup/doctor/report.js.map +0 -1
  676. package/dist/setup/doctor.js +0 -10
  677. package/dist/setup/doctor.js.map +0 -1
  678. package/dist/setup/opencode.js.map +0 -1
  679. package/dist/setup/smokeChecks.js.map +0 -1
  680. package/dist/state/installRoot.js.map +0 -1
  681. package/dist/state/startupAnalysis/benchmark.js.map +0 -1
  682. package/dist/state/startupAnalysis/contract.js.map +0 -1
  683. package/dist/state/startupAnalysis/helpers.js.map +0 -1
  684. package/dist/state/startupAnalysis/index.js.map +0 -1
  685. package/dist/state/startupAnalysis/metrics.js.map +0 -1
  686. package/dist/state/startupAnalysis/records.js.map +0 -1
  687. package/dist/state/startupAnalysis/report.js.map +0 -1
  688. package/dist/state/startupAnalysis/threshold.js.map +0 -1
  689. package/dist/state/startupAnalysis.js.map +0 -1
  690. package/dist/upgrade/appContentRefresh.js.map +0 -1
  691. package/dist/upgrade/appModel.js.map +0 -1
  692. package/dist/upgrade/bundleEvidence.js.map +0 -1
  693. package/dist/upgrade/channels.js.map +0 -1
  694. package/dist/upgrade/coexistenceProbe.js +0 -107
  695. package/dist/upgrade/coexistenceProbe.js.map +0 -1
  696. package/dist/upgrade/compatibility.js.map +0 -1
  697. package/dist/upgrade/doctor.js.map +0 -1
  698. package/dist/upgrade/doctorClassifier.js.map +0 -1
  699. package/dist/upgrade/installedHooksRetirement.js.map +0 -1
  700. package/dist/upgrade/legacyAgentCleanup.js.map +0 -1
  701. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -570
  702. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  703. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +0 -1
  704. package/dist/upgrade/nextMajorDoctor.js.map +0 -1
  705. package/dist/upgrade/npxPlatformStatus.js.map +0 -1
  706. package/dist/upgrade/projectIntegration.js.map +0 -1
  707. package/dist/upgrade/projectIntegrationDecision.js.map +0 -1
  708. package/dist/upgrade/runtimeMigration.js.map +0 -1
  709. package/dist/upgrade/upgradeCommands.js.map +0 -1
  710. package/dist/upgrade/upgradeOrchestrator.js.map +0 -1
  711. package/dist/upgrade/v3CapabilitySurface.js.map +0 -1
  712. package/dist/upgrade/versionResolution.js.map +0 -1
  713. package/dist/validate/appHomeContract.js.map +0 -1
  714. package/dist/validate/capability.js.map +0 -1
  715. package/dist/validate/crossCapability.js.map +0 -1
  716. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  717. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  718. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -488
  719. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  720. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  721. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  722. package/dist/validate/lifecycleAdapters.js +0 -62
  723. package/dist/validate/lifecycleAdapters.js.map +0 -1
  724. package/dist/validate/selfAudit.js.map +0 -1
  725. package/dist/validate/vocabularyAuthority.js.map +0 -1
@@ -1,639 +0,0 @@
1
- import crypto from "node:crypto";
2
- import fs from "node:fs";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import { pathExists, resolvePath } from "../../core/paths.js";
6
- import { parseToml } from "../../core/toml.js";
7
- import { CODEX_HOOK_COMMAND, CODEX_HOOK_MATCHER, CODEX_HOOK_STATUS_MESSAGE, CODEX_HOOK_TIMEOUT, CODEX_PLUGIN_HOOK_COMMAND, CODEX_PLUGIN_HOOK_SOURCE, CODEX_PLUGIN_ID, DEFAULT_AGENT_LIMITS, MANAGED_KEY, SECTION_NAME, SET_SUBTABLE_NAME, } from "./constants.js";
8
- /** Python repr() for a scalar, used to display non-string sibling set values. */
9
- function pyRepr(value) {
10
- if (value === null || value === undefined)
11
- return "None";
12
- if (value === true)
13
- return "True";
14
- if (value === false)
15
- return "False";
16
- if (typeof value === "string") {
17
- return value.includes("'") && !value.includes('"') ? `"${value}"` : `'${value}'`;
18
- }
19
- return String(value);
20
- }
21
- export function classifyToml(text) {
22
- if (!text.trim()) {
23
- return { sectionPresent: false, setPresent: false, setTable: {}, sectionLevelHome: null };
24
- }
25
- const parsed = parseToml(text);
26
- const section = parsed[SECTION_NAME];
27
- if (!section || typeof section !== "object" || Array.isArray(section)) {
28
- return { sectionPresent: false, setPresent: false, setTable: {}, sectionLevelHome: null };
29
- }
30
- const sectionJsonObject = section;
31
- const sectionHome = sectionJsonObject[MANAGED_KEY];
32
- const sectionLevelHome = typeof sectionHome === "string" && sectionHome ? sectionHome : null;
33
- const setValue = sectionJsonObject.set;
34
- if (!setValue || typeof setValue !== "object" || Array.isArray(setValue)) {
35
- return { sectionPresent: true, setPresent: false, setTable: {}, sectionLevelHome };
36
- }
37
- const coerced = {};
38
- for (const [key, value] of Object.entries(setValue)) {
39
- coerced[String(key)] = typeof value === "string" ? value : pyRepr(value);
40
- }
41
- return { sectionPresent: true, setPresent: true, setTable: coerced, sectionLevelHome };
42
- }
43
- export function hasInlineSetLine(text) {
44
- const plainLines = splitKeepEnds(text).map(rstripEol);
45
- const sectionIdx = findSectionHeaderIndex(plainLines);
46
- if (sectionIdx === null)
47
- return false;
48
- return findSetLineIndex(plainLines, sectionIdx) !== null;
49
- }
50
- export function hasSetSubtableHeader(text) {
51
- const plainLines = splitKeepEnds(text).map(rstripEol);
52
- return findTableHeaderIndex(plainLines, SET_SUBTABLE_NAME) !== null;
53
- }
54
- export function managedHomeInSet(section) {
55
- const setValue = section.set;
56
- if (!setValue || typeof setValue !== "object" || Array.isArray(setValue))
57
- return null;
58
- const value = setValue[MANAGED_KEY];
59
- return typeof value === "string" && value ? value : null;
60
- }
61
- export function codexManagedHomeConfigured(text) {
62
- if (!text || !text.trim())
63
- return false;
64
- const parsed = parseToml(text);
65
- const section = parsed[SECTION_NAME];
66
- if (!section || typeof section !== "object" || Array.isArray(section))
67
- return false;
68
- return managedHomeInSet(section) !== null;
69
- }
70
- export function needsShellEnvNormalize(state, text) {
71
- if (state.sectionLevelHome !== null)
72
- return true;
73
- if (state.setPresent && !hasInlineSetLine(text))
74
- return true;
75
- if (hasSetSubtableHeader(text))
76
- return true;
77
- return false;
78
- }
79
- export function mergeSetPairs(section, installRoot) {
80
- const pairs = {};
81
- const setValue = section.set;
82
- if (setValue && typeof setValue === "object" && !Array.isArray(setValue)) {
83
- for (const [key, value] of Object.entries(setValue)) {
84
- if (key === MANAGED_KEY)
85
- continue;
86
- pairs[String(key)] = typeof value === "string" ? value : pyRepr(value);
87
- }
88
- }
89
- pairs[MANAGED_KEY] = installRoot;
90
- return pairs;
91
- }
92
- function shellPolicySectionEnd(plainLines, sectionIdx) {
93
- let idx = sectionIdx + 1;
94
- while (idx < plainLines.length) {
95
- const line = plainLines[idx];
96
- if (SECTION_HEADER_RE.test(line))
97
- return idx;
98
- if (tableHeaderRe(SET_SUBTABLE_NAME).test(line)) {
99
- idx += 1;
100
- while (idx < plainLines.length && !/^\s*\[/.test(plainLines[idx]))
101
- idx += 1;
102
- continue;
103
- }
104
- if (/^\s*\[/.test(line))
105
- return idx;
106
- idx += 1;
107
- }
108
- return plainLines.length;
109
- }
110
- export function normalizeShellEnvironmentPolicy(text, installRoot) {
111
- const parsed = parseToml(text);
112
- const section = parsed[SECTION_NAME];
113
- if (!section || typeof section !== "object" || Array.isArray(section)) {
114
- throw new Error(`normalize_shell_environment_policy: [${SECTION_NAME}] missing`);
115
- }
116
- const pairs = mergeSetPairs(section, installRoot);
117
- const linesWithEnds = splitKeepEnds(text);
118
- const plainLines = linesWithEnds.map(rstripEol);
119
- const sectionIdx = findSectionHeaderIndex(plainLines);
120
- if (sectionIdx === null) {
121
- throw new Error(`normalize_shell_environment_policy: [${SECTION_NAME}] header not found`);
122
- }
123
- const endIdx = shellPolicySectionEnd(plainLines, sectionIdx);
124
- const terminator = lineTerminator(linesWithEnds[sectionIdx]);
125
- const setLine = `set = ${emitSetInlineTable(pairs)}${terminator}`;
126
- return [...linesWithEnds.slice(0, sectionIdx + 1), setLine, ...linesWithEnds.slice(endIdx)].join("");
127
- }
128
- // ── TOML emission ──────────────────────────────────────────────────
129
- const BASIC_STRING_ESCAPE = {
130
- "\\": "\\\\",
131
- '"': '\\"',
132
- "\b": "\\b",
133
- "\f": "\\f",
134
- "\n": "\\n",
135
- "\r": "\\r",
136
- "\t": "\\t",
137
- };
138
- export function tomlBasicString(value) {
139
- const escapedChars = [];
140
- for (const char of value) {
141
- if (char in BASIC_STRING_ESCAPE) {
142
- escapedChars.push(BASIC_STRING_ESCAPE[char]);
143
- }
144
- else if (char.charCodeAt(0) < 0x20) {
145
- escapedChars.push("\\u" + char.charCodeAt(0).toString(16).toUpperCase().padStart(4, "0"));
146
- }
147
- else {
148
- escapedChars.push(char);
149
- }
150
- }
151
- return '"' + escapedChars.join("") + '"';
152
- }
153
- export function emitSetInlineTable(pairs) {
154
- const entries = Object.entries(pairs);
155
- const rendered = entries.map(([key, value]) => `${key} = ${tomlBasicString(value)}`).join(", ");
156
- return entries.length > 0 ? `{ ${rendered} }` : "{ }";
157
- }
158
- export function renderAgentsConfigSection() {
159
- return "[agents]\n" + Object.entries(DEFAULT_AGENT_LIMITS).map(([k, v]) => `${k} = ${v}`).join("\n") + "\n";
160
- }
161
- export function renderFreshConfig(installRoot) {
162
- const setValue = emitSetInlineTable({ [MANAGED_KEY]: installRoot });
163
- return (`[${SECTION_NAME}]\nset = ${setValue}\n\n` +
164
- `${renderAgentsConfigSection()}\n` +
165
- `[features.multi_agent_v2]\n` +
166
- `max_concurrent_threads_per_session = 6\n`);
167
- }
168
- // ── Codex hook trust hashing ───────────────────────────────────────
169
- /** Compact canonical JSON: sort_keys=True, separators=(",",":"), ensure_ascii. */
170
- function canonicalJson(value) {
171
- if (value === null || value === undefined)
172
- return "null";
173
- if (value === true)
174
- return "true";
175
- if (value === false)
176
- return "false";
177
- if (typeof value === "number")
178
- return String(value);
179
- if (typeof value === "string")
180
- return jsonStringAscii(value);
181
- if (Array.isArray(value))
182
- return "[" + value.map((v) => canonicalJson(v)).join(",") + "]";
183
- if (typeof value === "object") {
184
- const keys = Object.keys(value).sort();
185
- return "{" + keys.map((k) => `${jsonStringAscii(k)}:${canonicalJson(value[k])}`).join(",") + "}";
186
- }
187
- return "null";
188
- }
189
- function jsonStringAscii(str) {
190
- let out = '"';
191
- for (const ch of str) {
192
- const cp = ch.codePointAt(0);
193
- if (ch === '"')
194
- out += '\\"';
195
- else if (ch === "\\")
196
- out += "\\\\";
197
- else if (cp === 0x08)
198
- out += "\\b";
199
- else if (cp === 0x09)
200
- out += "\\t";
201
- else if (cp === 0x0a)
202
- out += "\\n";
203
- else if (cp === 0x0c)
204
- out += "\\f";
205
- else if (cp === 0x0d)
206
- out += "\\r";
207
- else if (cp < 0x20)
208
- out += "\\u" + cp.toString(16).padStart(4, "0");
209
- else if (cp < 0x80)
210
- out += ch;
211
- else if (cp > 0xffff) {
212
- const v = cp - 0x10000;
213
- out += "\\u" + (0xd800 + (v >> 10)).toString(16).padStart(4, "0");
214
- out += "\\u" + (0xdc00 + (v & 0x3ff)).toString(16).padStart(4, "0");
215
- }
216
- else {
217
- out += "\\u" + cp.toString(16).padStart(4, "0");
218
- }
219
- }
220
- return out + '"';
221
- }
222
- export function codexHookTrustedHash(eventLabel, matcher, command = CODEX_HOOK_COMMAND, timeout = CODEX_HOOK_TIMEOUT, statusMessage = CODEX_HOOK_STATUS_MESSAGE) {
223
- const handler = { type: "command", command, timeout, async: false };
224
- if (statusMessage !== null)
225
- handler.statusMessage = statusMessage;
226
- const identity = { event_name: eventLabel, hooks: [handler] };
227
- if (matcher !== null)
228
- identity.matcher = matcher;
229
- const payload = canonicalJson(identity);
230
- return "sha256:" + crypto.createHash("sha256").update(payload, "utf8").digest("hex");
231
- }
232
- export function codexValidatorCommand(_installRoot) {
233
- return CODEX_HOOK_COMMAND;
234
- }
235
- export function renderCodexHooksConfig(command) {
236
- const hooks = {};
237
- for (const event of ["PreToolUse", "PostToolUse"]) {
238
- hooks[event] = [
239
- {
240
- matcher: CODEX_HOOK_MATCHER,
241
- hooks: [
242
- { type: "command", command, timeout: CODEX_HOOK_TIMEOUT, statusMessage: CODEX_HOOK_STATUS_MESSAGE },
243
- ],
244
- },
245
- ];
246
- }
247
- const payload = {
248
- description: "agentera v2 Codex hooks: schema-backed apply_patch artifact validation",
249
- hooks,
250
- };
251
- return JSON.stringify(payload, null, 2) + "\n";
252
- }
253
- export function codexHookStateEntries(hooksPath, command = CODEX_HOOK_COMMAND) {
254
- const resolved = resolvePath(hooksPath);
255
- return {
256
- [`${resolved}:pre_tool_use:0:0`]: codexHookTrustedHash("pre_tool_use", CODEX_HOOK_MATCHER, command),
257
- [`${resolved}:post_tool_use:0:0`]: codexHookTrustedHash("post_tool_use", CODEX_HOOK_MATCHER, command),
258
- };
259
- }
260
- export function codexPluginHookStateEntries(command = CODEX_PLUGIN_HOOK_COMMAND) {
261
- return {
262
- [`${CODEX_PLUGIN_HOOK_SOURCE}:pre_tool_use:0:0`]: codexHookTrustedHash("pre_tool_use", CODEX_HOOK_MATCHER, command),
263
- [`${CODEX_PLUGIN_HOOK_SOURCE}:post_tool_use:0:0`]: codexHookTrustedHash("post_tool_use", CODEX_HOOK_MATCHER, command),
264
- };
265
- }
266
- export function codexPluginHooksEnabled(text) {
267
- if (!text || !text.trim())
268
- return false;
269
- const parsed = parseToml(text);
270
- const plugins = parsed.plugins;
271
- if (!plugins || typeof plugins !== "object" || Array.isArray(plugins))
272
- return false;
273
- const agentera = plugins[CODEX_PLUGIN_ID];
274
- return Boolean(agentera && typeof agentera === "object" && !Array.isArray(agentera) && agentera.enabled === true);
275
- }
276
- // ===========================================================================
277
- // Slice 2: line-based TOML mutation engine
278
- // ===========================================================================
279
- function splitKeepEnds(text) {
280
- return text.match(/[^\n]*\n|[^\n]+/g) ?? [];
281
- }
282
- function rstripEol(line) {
283
- return line.replace(/[\r\n]+$/, "");
284
- }
285
- function lineTerminator(lineWithEnd) {
286
- if (lineWithEnd.endsWith("\r\n"))
287
- return "\r\n";
288
- if (lineWithEnd.endsWith("\n"))
289
- return "\n";
290
- return "\n";
291
- }
292
- const SECTION_HEADER_RE = new RegExp(`^\\s*\\[\\s*${SECTION_NAME.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s*\\]\\s*$`);
293
- const SET_LINE_RE = /^\s*set\s*=\s*/;
294
- export function findSectionHeaderIndex(lines) {
295
- for (let idx = 0; idx < lines.length; idx++) {
296
- if (SECTION_HEADER_RE.test(lines[idx]))
297
- return idx;
298
- }
299
- return null;
300
- }
301
- export function findSetLineIndex(lines, sectionIdx) {
302
- for (let idx = sectionIdx + 1; idx < lines.length; idx++) {
303
- const line = lines[idx];
304
- if (SECTION_HEADER_RE.test(line))
305
- return null;
306
- if (/^\s*\[/.test(line))
307
- return null;
308
- if (SET_LINE_RE.test(line))
309
- return idx;
310
- }
311
- return null;
312
- }
313
- export function insertSetLine(text, installRoot) {
314
- const linesWithEnds = splitKeepEnds(text);
315
- const plainLines = linesWithEnds.map(rstripEol);
316
- const sectionIdx = findSectionHeaderIndex(plainLines);
317
- if (sectionIdx === null) {
318
- throw new Error(`insert_set_line called but [${SECTION_NAME}] header not found`);
319
- }
320
- const terminator = lineTerminator(linesWithEnds[sectionIdx]);
321
- const setValue = emitSetInlineTable({ [MANAGED_KEY]: installRoot });
322
- const insertedLine = `set = ${setValue}${terminator}`;
323
- return [...linesWithEnds.slice(0, sectionIdx + 1), insertedLine, ...linesWithEnds.slice(sectionIdx + 1)].join("");
324
- }
325
- export function rewriteSetLine(text, mergedPairs) {
326
- const linesWithEnds = splitKeepEnds(text);
327
- const plainLines = linesWithEnds.map(rstripEol);
328
- const sectionIdx = findSectionHeaderIndex(plainLines);
329
- if (sectionIdx === null) {
330
- throw new Error(`rewrite_set_line called but [${SECTION_NAME}] header not found`);
331
- }
332
- const setIdx = findSetLineIndex(plainLines, sectionIdx);
333
- if (setIdx === null) {
334
- throw new Error(`rewrite_set_line called but no set line found in [${SECTION_NAME}]`);
335
- }
336
- const setLine = plainLines[setIdx];
337
- if (setLine.includes("{") && !setLine.includes("}")) {
338
- throw new Error("existing set value spans multiple lines; cannot safely merge");
339
- }
340
- const setLineWithEnd = linesWithEnds[setIdx];
341
- const terminator = setLineWithEnd.endsWith("\r\n") ? "\r\n" : setLineWithEnd.endsWith("\n") ? "\n" : "";
342
- const setValue = emitSetInlineTable(mergedPairs);
343
- const newLine = `set = ${setValue}${terminator}`;
344
- return [...linesWithEnds.slice(0, setIdx), newLine, ...linesWithEnds.slice(setIdx + 1)].join("");
345
- }
346
- function tableHeaderRe(table) {
347
- const dotted = table
348
- .split(".")
349
- .map((part) => part.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))
350
- .join("\\s*\\.\\s*");
351
- return new RegExp(`^\\s*\\[\\s*${dotted}\\s*\\]\\s*$`);
352
- }
353
- function findTableHeaderIndex(lines, table) {
354
- const pattern = tableHeaderRe(table);
355
- for (let idx = 0; idx < lines.length; idx++) {
356
- if (pattern.test(lines[idx]))
357
- return idx;
358
- }
359
- return null;
360
- }
361
- function findTableKeyIndex(lines, tableIdx, keyLiteral) {
362
- const keyRe = new RegExp(`^\\s*${keyLiteral.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s*=`);
363
- for (let idx = tableIdx + 1; idx < lines.length; idx++) {
364
- const line = lines[idx];
365
- if (/^\s*\[/.test(line))
366
- return null;
367
- if (keyRe.test(line))
368
- return idx;
369
- }
370
- return null;
371
- }
372
- function insertTableKeyLine(text, table, line) {
373
- const linesWithEnds = splitKeepEnds(text);
374
- const plainLines = linesWithEnds.map(rstripEol);
375
- const tableIdx = findTableHeaderIndex(plainLines, table);
376
- if (tableIdx === null)
377
- throw new Error(`[${table}] header not found`);
378
- const terminator = lineTerminator(linesWithEnds[tableIdx]);
379
- return [...linesWithEnds.slice(0, tableIdx + 1), line + terminator, ...linesWithEnds.slice(tableIdx + 1)].join("");
380
- }
381
- function replaceTableKeyLine(text, table, keyLiteral, line) {
382
- const linesWithEnds = splitKeepEnds(text);
383
- const plainLines = linesWithEnds.map(rstripEol);
384
- const tableIdx = findTableHeaderIndex(plainLines, table);
385
- if (tableIdx === null)
386
- throw new Error(`[${table}] header not found`);
387
- const keyIdx = findTableKeyIndex(plainLines, tableIdx, keyLiteral);
388
- if (keyIdx === null)
389
- throw new Error(`${keyLiteral} not found in [${table}]`);
390
- if (plainLines[keyIdx].includes("{") && !plainLines[keyIdx].includes("}")) {
391
- throw new Error(`${keyLiteral} spans multiple lines in [${table}]`);
392
- }
393
- const terminator = lineTerminator(linesWithEnds[keyIdx]);
394
- return [...linesWithEnds.slice(0, keyIdx), line + terminator, ...linesWithEnds.slice(keyIdx + 1)].join("");
395
- }
396
- function appendTable(text, table, lines) {
397
- let prefix = text;
398
- if (!prefix.endsWith("\n"))
399
- prefix += "\n";
400
- if (!prefix.endsWith("\n\n"))
401
- prefix += "\n";
402
- return prefix + `[${table}]\n` + lines.join("\n") + "\n";
403
- }
404
- function tomlLoadOrEmpty(text) {
405
- return text.trim() ? parseToml(text) : {};
406
- }
407
- function ensureFeatureEnabled(text, key) {
408
- const parsed = tomlLoadOrEmpty(text);
409
- const features = parsed.features;
410
- if (features && typeof features === "object" && !Array.isArray(features) && features[key] === true) {
411
- return text;
412
- }
413
- const lines = splitKeepEnds(text).map(rstripEol);
414
- const tableIdx = findTableHeaderIndex(lines, "features");
415
- if (tableIdx === null) {
416
- if (features && typeof features === "object" && !Array.isArray(features)) {
417
- if (lines.some((line) => /^\s*features\s*=/.test(line))) {
418
- throw new Error("[features] uses an unsupported inline or dotted-table form");
419
- }
420
- }
421
- return appendTable(text, "features", [`${key} = true`]);
422
- }
423
- const keyIdx = findTableKeyIndex(lines, tableIdx, key);
424
- if (keyIdx === null)
425
- return insertTableKeyLine(text, "features", `${key} = true`);
426
- return replaceTableKeyLine(text, "features", key, `${key} = true`);
427
- }
428
- function ensureFeaturesHooksEnabled(text) {
429
- return ensureFeatureEnabled(text, "hooks");
430
- }
431
- function ensureFeaturesPluginHooksEnabled(text) {
432
- return ensureFeatureEnabled(ensureFeaturesHooksEnabled(text), "plugin_hooks");
433
- }
434
- function removeTableKeyLine(text, table, key) {
435
- const linesWithEnds = splitKeepEnds(text);
436
- const plainLines = linesWithEnds.map(rstripEol);
437
- const tableIdx = findTableHeaderIndex(plainLines, table);
438
- if (tableIdx === null)
439
- return text;
440
- const keyLiteral = tomlBasicString(key);
441
- let keyIdx = findTableKeyIndex(plainLines, tableIdx, keyLiteral);
442
- if (keyIdx === null)
443
- keyIdx = findTableKeyIndex(plainLines, tableIdx, key);
444
- if (keyIdx === null)
445
- return text;
446
- return [...linesWithEnds.slice(0, keyIdx), ...linesWithEnds.slice(keyIdx + 1)].join("");
447
- }
448
- function codexMultiAgentThreadLimit(parsed) {
449
- const agents = parsed.agents;
450
- if (agents && typeof agents === "object" && !Array.isArray(agents) && "max_threads" in agents) {
451
- const n = Number(agents.max_threads);
452
- if (Number.isInteger(n))
453
- return n;
454
- }
455
- const features = parsed.features;
456
- if (features && typeof features === "object" && !Array.isArray(features)) {
457
- const multi = features.multi_agent_v2;
458
- if (multi && typeof multi === "object" && "max_concurrent_threads_per_session" in multi) {
459
- const n = Number(multi.max_concurrent_threads_per_session);
460
- if (Number.isInteger(n))
461
- return n;
462
- }
463
- }
464
- return 6;
465
- }
466
- function ensureCodexMultiAgentV2(text, maxThreadsVal) {
467
- const parsed = tomlLoadOrEmpty(text);
468
- const features = parsed.features;
469
- let multi = {};
470
- if (features && typeof features === "object" && !Array.isArray(features)) {
471
- const m = features.multi_agent_v2;
472
- if (m && typeof m === "object" && !Array.isArray(m))
473
- multi = m;
474
- }
475
- if (multi.max_concurrent_threads_per_session === maxThreadsVal)
476
- return text;
477
- const lines = splitKeepEnds(text).map(rstripEol);
478
- const tableIdx = findTableHeaderIndex(lines, "features.multi_agent_v2");
479
- const key = "max_concurrent_threads_per_session";
480
- const line = `${key} = ${maxThreadsVal}`;
481
- if (tableIdx === null)
482
- return appendTable(text, "features.multi_agent_v2", [line]);
483
- const keyIdx = findTableKeyIndex(lines, tableIdx, key);
484
- if (keyIdx === null)
485
- return insertTableKeyLine(text, "features.multi_agent_v2", line);
486
- return replaceTableKeyLine(text, "features.multi_agent_v2", key, line);
487
- }
488
- export function ensureCodexAgentLimits(text) {
489
- let parsed = tomlLoadOrEmpty(text);
490
- const maxThreadsVal = codexMultiAgentThreadLimit(parsed);
491
- text = removeTableKeyLine(text, "agents", "max_threads");
492
- parsed = tomlLoadOrEmpty(text);
493
- const agents = parsed.agents;
494
- const agentsMatches = agents && typeof agents === "object" && !Array.isArray(agents) &&
495
- Object.entries(DEFAULT_AGENT_LIMITS).every(([k, v]) => agents[k] === v);
496
- if (!agentsMatches) {
497
- const lines = splitKeepEnds(text).map(rstripEol);
498
- const tableIdx = findTableHeaderIndex(lines, "agents");
499
- if (tableIdx === null) {
500
- if (agents && typeof agents === "object" && !Array.isArray(agents) && Object.keys(agents).length > 0) {
501
- throw new Error("[agents] uses an unsupported inline or child-table-only form");
502
- }
503
- text = appendTable(text, "agents", Object.entries(DEFAULT_AGENT_LIMITS).map(([k, v]) => `${k} = ${v}`));
504
- }
505
- else {
506
- for (const [key, value] of Object.entries(DEFAULT_AGENT_LIMITS)) {
507
- const line = `${key} = ${value}`;
508
- const curLines = splitKeepEnds(text).map(rstripEol);
509
- const curTableIdx = findTableHeaderIndex(curLines, "agents");
510
- if (curTableIdx === null)
511
- throw new Error("[agents] header disappeared during update");
512
- if (findTableKeyIndex(curLines, curTableIdx, key) === null) {
513
- text = insertTableKeyLine(text, "agents", line);
514
- }
515
- else {
516
- text = replaceTableKeyLine(text, "agents", key, line);
517
- }
518
- }
519
- }
520
- }
521
- return ensureCodexMultiAgentV2(text, maxThreadsVal);
522
- }
523
- function hookStateLine(key, trustedHash) {
524
- return `${tomlBasicString(key)} = { trusted_hash = ${tomlBasicString(trustedHash)}, enabled = true }`;
525
- }
526
- function ensureCodexHookStateEntries(text, entries) {
527
- const parsed = tomlLoadOrEmpty(text);
528
- const hooks = parsed.hooks;
529
- let state = {};
530
- if (hooks && typeof hooks === "object" && !Array.isArray(hooks)) {
531
- const s = hooks.state;
532
- if (s && typeof s === "object" && !Array.isArray(s))
533
- state = s;
534
- }
535
- const allPresent = Object.entries(entries).every(([key, trustedHash]) => {
536
- const e = state[key];
537
- return e && typeof e === "object" && !Array.isArray(e) && e.trusted_hash === trustedHash && e.enabled === true;
538
- });
539
- if (allPresent)
540
- return text;
541
- const lines = splitKeepEnds(text).map(rstripEol);
542
- const tableIdx = findTableHeaderIndex(lines, "hooks.state");
543
- if (tableIdx === null) {
544
- if (Object.keys(state).length > 0) {
545
- throw new Error("[hooks.state] uses an unsupported inline or dotted-table form");
546
- }
547
- return appendTable(text, "hooks.state", Object.entries(entries).map(([key, trustedHash]) => hookStateLine(key, trustedHash)));
548
- }
549
- for (const [key, trustedHash] of Object.entries(entries)) {
550
- const keyLiteral = tomlBasicString(key);
551
- const line = hookStateLine(key, trustedHash);
552
- const curLines = splitKeepEnds(text).map(rstripEol);
553
- const curTableIdx = findTableHeaderIndex(curLines, "hooks.state");
554
- if (curTableIdx === null)
555
- throw new Error("[hooks.state] header disappeared during update");
556
- if (findTableKeyIndex(curLines, curTableIdx, keyLiteral) === null) {
557
- text = insertTableKeyLine(text, "hooks.state", line);
558
- }
559
- else {
560
- text = replaceTableKeyLine(text, "hooks.state", keyLiteral, line);
561
- }
562
- }
563
- return text;
564
- }
565
- export function ensureCodexHookTrust(text, hooksPath, command = CODEX_HOOK_COMMAND) {
566
- return ensureCodexHookStateEntries(ensureFeaturesHooksEnabled(text), codexHookStateEntries(hooksPath, command));
567
- }
568
- export function codexCopiedHooksAreAgenteraOnly(text) {
569
- let payload;
570
- try {
571
- payload = JSON.parse(text);
572
- }
573
- catch {
574
- return false;
575
- }
576
- if (!payload || typeof payload !== "object" || Array.isArray(payload))
577
- return false;
578
- const p = payload;
579
- if (typeof p.description !== "string" || !p.description.includes("agentera v2 Codex hooks"))
580
- return false;
581
- const hooks = p.hooks;
582
- if (!hooks || typeof hooks !== "object" || Array.isArray(hooks))
583
- return false;
584
- const keys = Object.keys(hooks);
585
- if (keys.length === 0)
586
- return false;
587
- for (const key of keys) {
588
- if (key !== "PreToolUse" && key !== "PostToolUse")
589
- return false;
590
- }
591
- for (const [event, entries] of Object.entries(hooks)) {
592
- if (event !== "PreToolUse" && event !== "PostToolUse")
593
- return false;
594
- if (!Array.isArray(entries) || entries.length !== 1)
595
- return false;
596
- const entry = entries[0];
597
- if (!entry || typeof entry !== "object" || Array.isArray(entry) || entry.matcher !== CODEX_HOOK_MATCHER)
598
- return false;
599
- const handlers = entry.hooks;
600
- if (!Array.isArray(handlers) || handlers.length !== 1)
601
- return false;
602
- const handler = handlers[0];
603
- if (!handler || typeof handler !== "object" || Array.isArray(handler))
604
- return false;
605
- const command = handler.command;
606
- if (handler.type !== "command" || typeof command !== "string")
607
- return false;
608
- if (!command.includes("hooks/validate_artifact.py") && !command.includes("hook validate-artifact"))
609
- return false;
610
- if (handler.timeout !== undefined && handler.timeout !== CODEX_HOOK_TIMEOUT)
611
- return false;
612
- if (handler.statusMessage !== undefined && handler.statusMessage !== CODEX_HOOK_STATUS_MESSAGE)
613
- return false;
614
- }
615
- return true;
616
- }
617
- export function retireCodexCopiedHookTrust(text, hooksPath) {
618
- if (pathExists(hooksPath)) {
619
- let hooksText;
620
- try {
621
- hooksText = fs.readFileSync(hooksPath, "utf8");
622
- }
623
- catch {
624
- return text;
625
- }
626
- if (!codexCopiedHooksAreAgenteraOnly(hooksText))
627
- return text;
628
- }
629
- const resolved = resolvePath(hooksPath);
630
- text = removeTableKeyLine(text, "hooks.state", `${resolved}:pre_tool_use:0:0`);
631
- text = removeTableKeyLine(text, "hooks.state", `${resolved}:post_tool_use:0:0`);
632
- return text;
633
- }
634
- export function ensureCodexPluginHookTrust(text, command = CODEX_PLUGIN_HOOK_COMMAND, hooksPath = null) {
635
- text = ensureCodexHookStateEntries(ensureFeaturesPluginHooksEnabled(text), codexPluginHookStateEntries(command));
636
- const target = hooksPath ?? path.join(os.homedir(), ".codex", "hooks.json");
637
- return retireCodexCopiedHookTrust(text, target);
638
- }
639
- //# sourceMappingURL=configToml.js.map