agentera 3.0.0-dev.5 → 3.0.0-next.1

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 (336) hide show
  1. package/README.md +4 -3
  2. package/bundle/extract-corpus-parity.json +23 -0
  3. package/bundle/references/adapters/cursor.md +9 -8
  4. package/bundle/references/adapters/opencode.md +1 -1
  5. package/bundle/references/adapters/package-registry.yaml +0 -1
  6. package/bundle/references/adapters/package-surface-characterization.md +1 -2
  7. package/bundle/references/analysis/startup-measurement-contract.yaml +15 -15
  8. package/bundle/references/cli/audience-namespace-cli-migration.yaml +40 -26
  9. package/bundle/references/cli/bundle-skill-vocabulary.yaml +1 -29
  10. package/bundle/references/cli/coexistence-probe.yaml +9 -0
  11. package/bundle/references/cli/parity-expected-actual-template.md +30 -0
  12. package/bundle/references/cli/single-name-protocol.yaml +42 -0
  13. package/bundle/references/cli/update-channels.yaml +16 -0
  14. package/bundle/references/cli/upgrade-repair-wording.md +31 -0
  15. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +98 -0
  16. package/bundle/references/cli/vocabulary-index.yaml +6 -4
  17. package/bundle/references/cli/vocabulary.md +307 -301
  18. package/bundle/references/meta/documentation-inventory.md +9 -3
  19. package/bundle/skills/agentera/SKILL.md +49 -41
  20. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +4 -1
  21. package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +2 -1
  22. package/bundle/skills/agentera/capability_schema_contract.yaml +28 -0
  23. package/bundle/skills/agentera/references/contract.md +324 -315
  24. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +38 -33
  25. package/dist/analytics/extractCorpus/cli.js +149 -0
  26. package/dist/analytics/extractCorpus/cli.js.map +1 -0
  27. package/dist/analytics/extractCorpus/copilotSessions.js +273 -0
  28. package/dist/analytics/extractCorpus/copilotSessions.js.map +1 -0
  29. package/dist/analytics/extractCorpus/core.js +363 -0
  30. package/dist/analytics/extractCorpus/core.js.map +1 -0
  31. package/dist/analytics/extractCorpus/corpus.js +145 -0
  32. package/dist/analytics/extractCorpus/corpus.js.map +1 -0
  33. package/dist/analytics/extractCorpus/coverageAudit.js +261 -0
  34. package/dist/analytics/extractCorpus/coverageAudit.js.map +1 -0
  35. package/dist/analytics/extractCorpus/cursorSessions.js +423 -0
  36. package/dist/analytics/extractCorpus/cursorSessions.js.map +1 -0
  37. package/dist/analytics/extractCorpus/extractCorpusParity.js +105 -0
  38. package/dist/analytics/extractCorpus/extractCorpusParity.js.map +1 -0
  39. package/dist/analytics/extractCorpus/filesystemSources.js +122 -0
  40. package/dist/analytics/extractCorpus/filesystemSources.js.map +1 -0
  41. package/dist/analytics/extractCorpus/index.js +12 -0
  42. package/dist/analytics/extractCorpus/index.js.map +1 -0
  43. package/dist/analytics/extractCorpus/jsonlSessions.js +185 -0
  44. package/dist/analytics/extractCorpus/jsonlSessions.js.map +1 -0
  45. package/dist/analytics/extractCorpus/sqliteCaps.js +44 -0
  46. package/dist/analytics/extractCorpus/sqliteCaps.js.map +1 -0
  47. package/dist/analytics/extractCorpus/sqliteSessions.js +368 -0
  48. package/dist/analytics/extractCorpus/sqliteSessions.js.map +1 -0
  49. package/dist/analytics/extractCorpus.js +2 -1790
  50. package/dist/analytics/extractCorpus.js.map +1 -1
  51. package/dist/analytics/usageStats.js +1 -1
  52. package/dist/analytics/usageStats.js.map +1 -1
  53. package/dist/capabilities/inspirera/instructions.js +1 -1
  54. package/dist/capabilities/inspirera/instructions.js.map +1 -1
  55. package/dist/capabilities/planera/instructions.js +1 -1
  56. package/dist/capabilities/planera/instructions.js.map +1 -1
  57. package/dist/capabilities/profilera/instructions.js +1 -1
  58. package/dist/capabilities/profilera/instructions.js.map +1 -1
  59. package/dist/capabilities/realisera/instructions.js +1 -1
  60. package/dist/capabilities/realisera/instructions.js.map +1 -1
  61. package/dist/capabilities/resonera/instructions.js +1 -1
  62. package/dist/capabilities/resonera/instructions.js.map +1 -1
  63. package/dist/capabilities/visionera/instructions.js +1 -1
  64. package/dist/capabilities/visionera/instructions.js.map +1 -1
  65. package/dist/capabilities/visualisera/instructions.js +3 -4
  66. package/dist/capabilities/visualisera/instructions.js.map +1 -1
  67. package/dist/cli/appContext.js +2 -14
  68. package/dist/cli/appContext.js.map +1 -1
  69. package/dist/cli/capabilityContext/benchmark.js +557 -0
  70. package/dist/cli/capabilityContext/benchmark.js.map +1 -0
  71. package/dist/cli/capabilityContext/bespoke.js +25 -0
  72. package/dist/cli/capabilityContext/bespoke.js.map +1 -0
  73. package/dist/cli/capabilityContext/closeout.js +230 -0
  74. package/dist/cli/capabilityContext/closeout.js.map +1 -0
  75. package/dist/cli/capabilityContext/contract.js +186 -0
  76. package/dist/cli/capabilityContext/contract.js.map +1 -0
  77. package/dist/cli/capabilityContext/evidence.js +446 -0
  78. package/dist/cli/capabilityContext/evidence.js.map +1 -0
  79. package/dist/cli/capabilityContext/index.js +4 -0
  80. package/dist/cli/capabilityContext/index.js.map +1 -0
  81. package/dist/cli/capabilityContext/orchestration.js +107 -0
  82. package/dist/cli/capabilityContext/orchestration.js.map +1 -0
  83. package/dist/cli/capabilityContext/planState.js +271 -0
  84. package/dist/cli/capabilityContext/planState.js.map +1 -0
  85. package/dist/cli/capabilityContext/progress.js +96 -0
  86. package/dist/cli/capabilityContext/progress.js.map +1 -0
  87. package/dist/cli/capabilityContext/realisera.js +174 -0
  88. package/dist/cli/capabilityContext/realisera.js.map +1 -0
  89. package/dist/cli/capabilityContext/shared.js +94 -0
  90. package/dist/cli/capabilityContext/shared.js.map +1 -0
  91. package/dist/cli/capabilityContext/slim.js +106 -0
  92. package/dist/cli/capabilityContext/slim.js.map +1 -0
  93. package/dist/cli/capabilityContext/startup.js +208 -0
  94. package/dist/cli/capabilityContext/startup.js.map +1 -0
  95. package/dist/cli/capabilityContext/types.js +43 -0
  96. package/dist/cli/capabilityContext/types.js.map +1 -0
  97. package/dist/cli/capabilityContext.js +1 -2486
  98. package/dist/cli/capabilityContext.js.map +1 -1
  99. package/dist/cli/commands/appHome.js +23 -0
  100. package/dist/cli/commands/appHome.js.map +1 -0
  101. package/dist/cli/commands/compact.js +1 -1
  102. package/dist/cli/commands/compact.js.map +1 -1
  103. package/dist/cli/commands/doctor.js +18 -96
  104. package/dist/cli/commands/doctor.js.map +1 -1
  105. package/dist/cli/commands/lint.js +4 -36
  106. package/dist/cli/commands/lint.js.map +1 -1
  107. package/dist/cli/commands/prime/bundleStatus.js +126 -0
  108. package/dist/cli/commands/prime/bundleStatus.js.map +1 -0
  109. package/dist/cli/commands/prime/collectOrientationState.js +143 -0
  110. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -0
  111. package/dist/cli/commands/prime/orientationOutput.js +172 -0
  112. package/dist/cli/commands/prime/orientationOutput.js.map +1 -0
  113. package/dist/cli/commands/prime/types.js +2 -0
  114. package/dist/cli/commands/prime/types.js.map +1 -0
  115. package/dist/cli/commands/prime/v1Migration.js +39 -0
  116. package/dist/cli/commands/prime/v1Migration.js.map +1 -0
  117. package/dist/cli/commands/prime.js +10 -549
  118. package/dist/cli/commands/prime.js.map +1 -1
  119. package/dist/cli/commands/query.js +1 -1
  120. package/dist/cli/commands/query.js.map +1 -1
  121. package/dist/cli/commands/report.js +19 -4
  122. package/dist/cli/commands/report.js.map +1 -1
  123. package/dist/cli/commands/schema.js +1 -2
  124. package/dist/cli/commands/schema.js.map +1 -1
  125. package/dist/cli/commands/state/decisions.js +397 -0
  126. package/dist/cli/commands/state/decisions.js.map +1 -0
  127. package/dist/cli/commands/state/docs.js +93 -0
  128. package/dist/cli/commands/state/docs.js.map +1 -0
  129. package/dist/cli/commands/state/experiments.js +67 -0
  130. package/dist/cli/commands/state/experiments.js.map +1 -0
  131. package/dist/cli/commands/state/health.js +114 -0
  132. package/dist/cli/commands/state/health.js.map +1 -0
  133. package/dist/cli/commands/state/index.js +51 -0
  134. package/dist/cli/commands/state/index.js.map +1 -0
  135. package/dist/cli/commands/state/objective.js +68 -0
  136. package/dist/cli/commands/state/objective.js.map +1 -0
  137. package/dist/cli/commands/state/plan.js +172 -0
  138. package/dist/cli/commands/state/plan.js.map +1 -0
  139. package/dist/cli/commands/state/progress.js +47 -0
  140. package/dist/cli/commands/state/progress.js.map +1 -0
  141. package/dist/cli/commands/state/shared.js +15 -0
  142. package/dist/cli/commands/state/shared.js.map +1 -0
  143. package/dist/cli/commands/state/todo.js +121 -0
  144. package/dist/cli/commands/state/todo.js.map +1 -0
  145. package/dist/cli/commands/validate.js +38 -24
  146. package/dist/cli/commands/validate.js.map +1 -1
  147. package/dist/cli/contracts/bundleStatus.js +2 -0
  148. package/dist/cli/contracts/bundleStatus.js.map +1 -0
  149. package/dist/cli/contracts/orientationState.js +2 -0
  150. package/dist/cli/contracts/orientationState.js.map +1 -0
  151. package/dist/cli/dispatch/argvParser.js +33 -0
  152. package/dist/cli/dispatch/argvParser.js.map +1 -0
  153. package/dist/cli/dispatch/check.js +328 -0
  154. package/dist/cli/dispatch/check.js.map +1 -0
  155. package/dist/cli/dispatch/commands.js +27 -0
  156. package/dist/cli/dispatch/commands.js.map +1 -0
  157. package/dist/cli/dispatch/index.js +179 -0
  158. package/dist/cli/dispatch/index.js.map +1 -0
  159. package/dist/cli/dispatch/lifecycle.js +537 -0
  160. package/dist/cli/dispatch/lifecycle.js.map +1 -0
  161. package/dist/cli/dispatch/prime.js +104 -0
  162. package/dist/cli/dispatch/prime.js.map +1 -0
  163. package/dist/cli/dispatch/shared.js +64 -0
  164. package/dist/cli/dispatch/shared.js.map +1 -0
  165. package/dist/cli/dispatch/state.js +144 -0
  166. package/dist/cli/dispatch/state.js.map +1 -0
  167. package/dist/cli/dispatch.js +1 -1293
  168. package/dist/cli/dispatch.js.map +1 -1
  169. package/dist/cli/help.js +30 -2
  170. package/dist/cli/help.js.map +1 -1
  171. package/dist/cli/orientation/attention.js +57 -0
  172. package/dist/cli/orientation/attention.js.map +1 -0
  173. package/dist/cli/orientation/corpusCoverage.js +71 -0
  174. package/dist/cli/orientation/corpusCoverage.js.map +1 -0
  175. package/dist/cli/orientation.js +41 -28
  176. package/dist/cli/orientation.js.map +1 -1
  177. package/dist/cli/startupCompletenessContract.js +49 -0
  178. package/dist/cli/startupCompletenessContract.js.map +1 -0
  179. package/dist/cli/todoSeverity.js +19 -0
  180. package/dist/cli/todoSeverity.js.map +1 -0
  181. package/dist/core/jsonValue.js +6 -0
  182. package/dist/core/jsonValue.js.map +1 -0
  183. package/dist/core/pyjson.js +67 -2
  184. package/dist/core/pyjson.js.map +1 -1
  185. package/dist/hooks/common.js +8 -23
  186. package/dist/hooks/common.js.map +1 -1
  187. package/dist/hooks/compaction/apply.js +263 -0
  188. package/dist/hooks/compaction/apply.js.map +1 -0
  189. package/dist/hooks/compaction/dryRun.js +181 -0
  190. package/dist/hooks/compaction/dryRun.js.map +1 -0
  191. package/dist/hooks/compaction/index.js +23 -0
  192. package/dist/hooks/compaction/index.js.map +1 -0
  193. package/dist/hooks/compaction/parse.js +258 -0
  194. package/dist/hooks/compaction/parse.js.map +1 -0
  195. package/dist/hooks/compaction/retention.js +197 -0
  196. package/dist/hooks/compaction/retention.js.map +1 -0
  197. package/dist/hooks/compaction/status.js +241 -0
  198. package/dist/hooks/compaction/status.js.map +1 -0
  199. package/dist/hooks/compaction/types.js +6 -0
  200. package/dist/hooks/compaction/types.js.map +1 -0
  201. package/dist/hooks/cursorPreToolUse.js +1 -1
  202. package/dist/hooks/cursorPreToolUse.js.map +1 -1
  203. package/dist/hooks/cursorSessionStart.js +10 -2
  204. package/dist/hooks/cursorSessionStart.js.map +1 -1
  205. package/dist/hooks/sessionStart.js +4 -4
  206. package/dist/hooks/sessionStart.js.map +1 -1
  207. package/dist/hooks/sessionStop.js +3 -12
  208. package/dist/hooks/sessionStop.js.map +1 -1
  209. package/dist/hooks/validateArtifact/agentFacing.js +10 -0
  210. package/dist/hooks/validateArtifact/agentFacing.js.map +1 -0
  211. package/dist/hooks/validateArtifact/index.js +149 -0
  212. package/dist/hooks/validateArtifact/index.js.map +1 -0
  213. package/dist/hooks/validateArtifact/markdown.js +146 -0
  214. package/dist/hooks/validateArtifact/markdown.js.map +1 -0
  215. package/dist/hooks/validateArtifact/runtime.js +83 -0
  216. package/dist/hooks/validateArtifact/runtime.js.map +1 -0
  217. package/dist/hooks/validateArtifact/schema.js +455 -0
  218. package/dist/hooks/validateArtifact/schema.js.map +1 -0
  219. package/dist/hooks/validateArtifact/traversal.js +105 -0
  220. package/dist/hooks/validateArtifact/traversal.js.map +1 -0
  221. package/dist/hooks/validateArtifact/violations.js +105 -0
  222. package/dist/hooks/validateArtifact/violations.js.map +1 -0
  223. package/dist/migrate/v2HandoffManifest.js +333 -0
  224. package/dist/migrate/v2HandoffManifest.js.map +1 -0
  225. package/dist/registries/artifactProtocolIds.js +77 -0
  226. package/dist/registries/artifactProtocolIds.js.map +1 -0
  227. package/dist/release/releaseMetadata.js +235 -0
  228. package/dist/release/releaseMetadata.js.map +1 -0
  229. package/dist/setup/codex/agents.js +96 -0
  230. package/dist/setup/codex/agents.js.map +1 -0
  231. package/dist/setup/codex/cli.js +161 -0
  232. package/dist/setup/codex/cli.js.map +1 -0
  233. package/dist/setup/codex/configToml.js +644 -0
  234. package/dist/setup/codex/configToml.js.map +1 -0
  235. package/dist/setup/codex/constants.js +29 -0
  236. package/dist/setup/codex/constants.js.map +1 -0
  237. package/dist/setup/codex/installRoot.js +64 -0
  238. package/dist/setup/codex/installRoot.js.map +1 -0
  239. package/dist/setup/codex/state.js +270 -0
  240. package/dist/setup/codex/state.js.map +1 -0
  241. package/dist/setup/codex.js +11 -1196
  242. package/dist/setup/codex.js.map +1 -1
  243. package/dist/setup/cursor.js +1 -1
  244. package/dist/setup/cursor.js.map +1 -1
  245. package/dist/setup/doctor/core.js +300 -0
  246. package/dist/setup/doctor/core.js.map +1 -0
  247. package/dist/setup/doctor/diagnostics.js +247 -0
  248. package/dist/setup/doctor/diagnostics.js.map +1 -0
  249. package/dist/setup/doctor/opencode.js +281 -0
  250. package/dist/setup/doctor/opencode.js.map +1 -0
  251. package/dist/setup/doctor/report.js +418 -0
  252. package/dist/setup/doctor/report.js.map +1 -0
  253. package/dist/setup/doctor.js +9 -1296
  254. package/dist/setup/doctor.js.map +1 -1
  255. package/dist/setup/opencode.js +13 -0
  256. package/dist/setup/opencode.js.map +1 -0
  257. package/dist/setup/smokeChecks.js +1 -1
  258. package/dist/setup/smokeChecks.js.map +1 -1
  259. package/dist/state/installRoot.js +49 -18
  260. package/dist/state/installRoot.js.map +1 -1
  261. package/dist/state/startupAnalysis/benchmark.js +367 -0
  262. package/dist/state/startupAnalysis/benchmark.js.map +1 -0
  263. package/dist/state/startupAnalysis/contract.js +122 -0
  264. package/dist/state/startupAnalysis/contract.js.map +1 -0
  265. package/dist/state/startupAnalysis/helpers.js +287 -0
  266. package/dist/state/startupAnalysis/helpers.js.map +1 -0
  267. package/dist/state/startupAnalysis/index.js +7 -0
  268. package/dist/state/startupAnalysis/index.js.map +1 -0
  269. package/dist/state/startupAnalysis/metrics.js +334 -0
  270. package/dist/state/startupAnalysis/metrics.js.map +1 -0
  271. package/dist/state/startupAnalysis/records.js +195 -0
  272. package/dist/state/startupAnalysis/records.js.map +1 -0
  273. package/dist/state/startupAnalysis/report.js +101 -0
  274. package/dist/state/startupAnalysis/report.js.map +1 -0
  275. package/dist/state/startupAnalysis/threshold.js +500 -0
  276. package/dist/state/startupAnalysis/threshold.js.map +1 -0
  277. package/dist/state/startupAnalysis.js +2 -1952
  278. package/dist/state/startupAnalysis.js.map +1 -1
  279. package/dist/upgrade/appModel.js +1 -4
  280. package/dist/upgrade/appModel.js.map +1 -1
  281. package/dist/upgrade/bundleEvidence.js +34 -0
  282. package/dist/upgrade/bundleEvidence.js.map +1 -0
  283. package/dist/upgrade/channels.js +8 -1
  284. package/dist/upgrade/channels.js.map +1 -1
  285. package/dist/upgrade/cliProbe.js +22 -0
  286. package/dist/upgrade/cliProbe.js.map +1 -0
  287. package/dist/upgrade/coexistenceProbe.js +80 -0
  288. package/dist/upgrade/coexistenceProbe.js.map +1 -0
  289. package/dist/upgrade/compatibility.js +1 -4
  290. package/dist/upgrade/compatibility.js.map +1 -1
  291. package/dist/upgrade/doctor.js +204 -170
  292. package/dist/upgrade/doctor.js.map +1 -1
  293. package/dist/upgrade/doctorClassifier.js +208 -0
  294. package/dist/upgrade/doctorClassifier.js.map +1 -0
  295. package/dist/upgrade/migrateArtifactsV2ToV3.js +6 -84
  296. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  297. package/dist/upgrade/nextMajorDoctor.js +20 -1
  298. package/dist/upgrade/nextMajorDoctor.js.map +1 -1
  299. package/dist/upgrade/npxPlatformStatus.js +24 -0
  300. package/dist/upgrade/npxPlatformStatus.js.map +1 -0
  301. package/dist/upgrade/projectIntegration.js +55 -70
  302. package/dist/upgrade/projectIntegration.js.map +1 -1
  303. package/dist/upgrade/projectIntegrationDecision.js +93 -0
  304. package/dist/upgrade/projectIntegrationDecision.js.map +1 -0
  305. package/dist/upgrade/runtimeMigration.js +13 -2
  306. package/dist/upgrade/runtimeMigration.js.map +1 -1
  307. package/dist/upgrade/v3CapabilitySurface.js +15 -0
  308. package/dist/upgrade/v3CapabilitySurface.js.map +1 -0
  309. package/dist/upgrade/versionResolution.js +8 -0
  310. package/dist/upgrade/versionResolution.js.map +1 -1
  311. package/dist/validate/appHomeContract.js +3 -3
  312. package/dist/validate/appHomeContract.js.map +1 -1
  313. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +93 -0
  314. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +1 -0
  315. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +488 -0
  316. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +1 -0
  317. package/dist/validate/lifecycleAdapters/shared.js +198 -0
  318. package/dist/validate/lifecycleAdapters/shared.js.map +1 -0
  319. package/dist/validate/lifecycleAdapters.js +12 -722
  320. package/dist/validate/lifecycleAdapters.js.map +1 -1
  321. package/dist/validate/selfAudit.js +62 -20
  322. package/dist/validate/selfAudit.js.map +1 -1
  323. package/dist/validate/vocabularyAuthority.js +298 -0
  324. package/dist/validate/vocabularyAuthority.js.map +1 -0
  325. package/package.json +3 -3
  326. package/bundle/references/v1-section-mapping.md +0 -47
  327. package/bundle/skills/hej/.claude-plugin/plugin.json +0 -6
  328. package/bundle/skills/hej/SKILL.md +0 -69
  329. package/bundle/skills/hej/agents/hej.toml +0 -11
  330. package/bundle/skills/hej/agents/openai.yaml +0 -8
  331. package/dist/cli/commands/state.js +0 -1023
  332. package/dist/cli/commands/state.js.map +0 -1
  333. package/dist/hooks/compaction.js +0 -935
  334. package/dist/hooks/compaction.js.map +0 -1
  335. package/dist/hooks/validateArtifact.js +0 -935
  336. package/dist/hooks/validateArtifact.js.map +0 -1
@@ -0,0 +1,235 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { resolvePath } from "../core/paths.js";
4
+ import { resolveSourceRoot } from "../core/sourceRoot.js";
5
+ import { loadYamlMappingFile } from "../core/yaml.js";
6
+ export const RELEASE_METADATA_AUTHORITY_FILES = [
7
+ "registry.json",
8
+ "packages/cli/package.json",
9
+ "references/cli/update-channels.yaml",
10
+ ];
11
+ export const RELEASE_METADATA_ADVISORY_FILES = [
12
+ "packages/cli/bundle/.agentera-npx-bundle.json",
13
+ ];
14
+ const SEMVER_CORE_RE = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
15
+ const SEMVER_STRICT_RE = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
16
+ const PRE_RELEASE_RE = /-(.+)$/;
17
+ const GIT_REF_HEX_RE = /^[0-9a-f]{40}$/i;
18
+ function rootDefault() {
19
+ return resolveSourceRoot();
20
+ }
21
+ function readJson(pathname) {
22
+ try {
23
+ return JSON.parse(fs.readFileSync(pathname, "utf8"));
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ function readRegistryVersion(root) {
30
+ const source = "registry.json";
31
+ const data = readJson(path.join(root, source));
32
+ if (data === null) {
33
+ return { version: null, source };
34
+ }
35
+ const skills = data.skills;
36
+ if (!Array.isArray(skills) || skills.length === 0) {
37
+ return { version: null, source };
38
+ }
39
+ const first = skills[0];
40
+ if (!first || typeof first !== "object") {
41
+ return { version: null, source };
42
+ }
43
+ const version = first.version;
44
+ return { version: typeof version === "string" ? version : null, source };
45
+ }
46
+ function readPackageJson(root) {
47
+ const candidate = path.join(root, "packages/cli/package.json");
48
+ if (!fs.existsSync(candidate)) {
49
+ return null;
50
+ }
51
+ return readJson(candidate);
52
+ }
53
+ function readUpdateChannels(root) {
54
+ const candidate = path.join(root, "references/cli/update-channels.yaml");
55
+ if (!fs.existsSync(candidate)) {
56
+ return null;
57
+ }
58
+ try {
59
+ return loadYamlMappingFile(candidate);
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ }
65
+ function readBundleSentinel(root) {
66
+ const source = "packages/cli/bundle/.agentera-npx-bundle.json";
67
+ const candidate = path.join(root, source);
68
+ if (!fs.existsSync(candidate)) {
69
+ return { version: null, source };
70
+ }
71
+ const data = readJson(candidate);
72
+ if (data === null) {
73
+ return { version: null, source };
74
+ }
75
+ const version = data.suiteVersion;
76
+ return { version: typeof version === "string" ? version : null, source };
77
+ }
78
+ /** Parse `X.Y.Z` core (ignore pre-release and build metadata). */
79
+ function parseSemverCore(version) {
80
+ const match = SEMVER_CORE_RE.exec(version);
81
+ if (!match) {
82
+ return null;
83
+ }
84
+ const core = `${match[1]}.${match[2]}.${match[3]}`;
85
+ const preMatch = PRE_RELEASE_RE.exec(version);
86
+ return { core, preRelease: preMatch ? preMatch[1] : null };
87
+ }
88
+ function pickChannelDefaults(authority) {
89
+ if (authority === null) {
90
+ return { development: null, stable: null };
91
+ }
92
+ const versionResolution = authority.version_resolution;
93
+ const latestOnChannel = versionResolution?.latest_on_channel;
94
+ const defaults = (latestOnChannel?.offline_defaults ?? {});
95
+ return {
96
+ development: typeof defaults.development === "string" ? defaults.development : null,
97
+ stable: typeof defaults.stable === "string" ? defaults.stable : null,
98
+ };
99
+ }
100
+ export function readReleaseMetadata(root = rootDefault()) {
101
+ const resolved = resolvePath(root);
102
+ const registry = readRegistryVersion(resolved);
103
+ const pkg = readPackageJson(resolved);
104
+ const channels = readUpdateChannels(resolved);
105
+ const bundle = readBundleSentinel(resolved);
106
+ const topVersion = pkg && typeof pkg.version === "string" ? pkg.version : null;
107
+ const agenteraBlock = pkg && typeof pkg.agentera === "object" && pkg.agentera !== null
108
+ ? pkg.agentera
109
+ : null;
110
+ const suiteVersion = agenteraBlock && typeof agenteraBlock.suiteVersion === "string"
111
+ ? agenteraBlock.suiteVersion
112
+ : null;
113
+ const gitRef = agenteraBlock && typeof agenteraBlock.gitRef === "string"
114
+ ? agenteraBlock.gitRef
115
+ : null;
116
+ const { development, stable } = pickChannelDefaults(channels);
117
+ return {
118
+ authoritativeVersion: registry.version,
119
+ authoritativeSource: registry.source,
120
+ packageVersion: topVersion,
121
+ packageSuiteVersion: suiteVersion,
122
+ packageGitRef: gitRef,
123
+ developmentChannelDefault: development,
124
+ stableChannelDefault: stable,
125
+ bundleSuiteVersion: bundle.version,
126
+ };
127
+ }
128
+ /**
129
+ * Validate release-metadata coherence. Returns an empty array when the
130
+ * source-tree version surfaces agree on a single release train.
131
+ */
132
+ export function validateReleaseMetadata(root = rootDefault()) {
133
+ const errors = [];
134
+ const snap = readReleaseMetadata(root);
135
+ const rootLabel = path.basename(resolvePath(root)) || "repo root";
136
+ // 1. registry.json must publish a valid semver `skills[0].version`.
137
+ if (snap.authoritativeVersion === null) {
138
+ errors.push("registry.json: skills[0].version is required for release-metadata validation");
139
+ }
140
+ else {
141
+ const parsed = parseSemverCore(snap.authoritativeVersion);
142
+ if (parsed === null) {
143
+ errors.push(`registry.json: skills[0].version ${JSON.stringify(snap.authoritativeVersion)} is not a valid semver`);
144
+ }
145
+ else if (parsed.preRelease !== null) {
146
+ // registry.json is the suite authority and stays on the released core;
147
+ // pre-release suffixes belong only to packages/cli/package.json.
148
+ errors.push(`registry.json: skills[0].version must be a released core version (no pre-release suffix); got ${JSON.stringify(snap.authoritativeVersion)}`);
149
+ }
150
+ }
151
+ // 2. packages/cli/package.json must exist and parse.
152
+ if (snap.packageVersion === null && snap.packageSuiteVersion === null && snap.packageGitRef === null) {
153
+ errors.push("packages/cli/package.json: missing or unreadable; cannot validate release-metadata");
154
+ }
155
+ else {
156
+ // 2a. top-level `version` must be valid semver and share its core with registry.
157
+ if (snap.packageVersion === null) {
158
+ errors.push("packages/cli/package.json: top-level `version` is required");
159
+ }
160
+ else {
161
+ const parsed = parseSemverCore(snap.packageVersion);
162
+ if (parsed === null) {
163
+ errors.push(`packages/cli/package.json: top-level version ${JSON.stringify(snap.packageVersion)} is not a valid semver`);
164
+ }
165
+ else if (snap.authoritativeVersion !== null &&
166
+ parseSemverCore(snap.authoritativeVersion)?.core !== parsed.core) {
167
+ errors.push(`release-metadata divergence: registry.json skills[0].version core is ${JSON.stringify(parseSemverCore(snap.authoritativeVersion)?.core)} ` +
168
+ `but packages/cli/package.json top-level version core is ${JSON.stringify(parsed.core)}; ` +
169
+ `the npm package version must share its major.minor.patch with the registry suite version`);
170
+ }
171
+ }
172
+ // 2b. `agentera.suiteVersion` must match registry exactly.
173
+ if (snap.packageSuiteVersion === null) {
174
+ errors.push("packages/cli/package.json: `agentera.suiteVersion` is required");
175
+ }
176
+ else if (snap.authoritativeVersion !== null &&
177
+ snap.packageSuiteVersion !== snap.authoritativeVersion) {
178
+ errors.push(`release-metadata divergence: registry.json skills[0].version is ${JSON.stringify(snap.authoritativeVersion)} ` +
179
+ `but packages/cli/package.json agentera.suiteVersion is ${JSON.stringify(snap.packageSuiteVersion)}; ` +
180
+ `the agentera.suiteVersion mirror must equal the registry version exactly`);
181
+ }
182
+ else if (!SEMVER_STRICT_RE.test(snap.packageSuiteVersion)) {
183
+ errors.push(`packages/cli/package.json: agentera.suiteVersion ${JSON.stringify(snap.packageSuiteVersion)} is not a released core semver`);
184
+ }
185
+ // 2c. `agentera.gitRef` must be a 40-character hex SHA.
186
+ if (snap.packageGitRef === null || snap.packageGitRef === "") {
187
+ errors.push("packages/cli/package.json: `agentera.gitRef` is required for release-metadata validation");
188
+ }
189
+ else if (!GIT_REF_HEX_RE.test(snap.packageGitRef)) {
190
+ errors.push(`packages/cli/package.json: agentera.gitRef ${JSON.stringify(snap.packageGitRef)} must be a 40-character hex SHA; ` +
191
+ `short SHAs and branch names are not reproducible release references`);
192
+ }
193
+ }
194
+ // 3. update-channels.yaml development default must equal the registry version.
195
+ if (snap.developmentChannelDefault === null) {
196
+ errors.push("references/cli/update-channels.yaml: version_resolution.latest_on_channel.offline_defaults.development is required");
197
+ }
198
+ else if (snap.authoritativeVersion !== null &&
199
+ snap.developmentChannelDefault !== snap.authoritativeVersion) {
200
+ errors.push(`release-metadata divergence: registry.json skills[0].version is ${JSON.stringify(snap.authoritativeVersion)} ` +
201
+ `but update-channels.yaml offline_defaults.development is ${JSON.stringify(snap.developmentChannelDefault)}; ` +
202
+ `the development channel default must match the registry version exactly`);
203
+ }
204
+ // 4. Stable channel default is informational on the @next branch; the
205
+ // validator surfaces it so maintainers can confirm the stable line still
206
+ // resolves to its declared 2.x version. A drift on the stable channel
207
+ // alone is not an error here — that lane is owned by the `main` branch
208
+ // compatibility boundary per `references/cli/update-channels.yaml`.
209
+ void snap.stableChannelDefault;
210
+ // 5. Advisory check on the local bundle sentinel.
211
+ if (snap.bundleSuiteVersion !== null) {
212
+ if (snap.authoritativeVersion !== null &&
213
+ snap.bundleSuiteVersion !== snap.authoritativeVersion) {
214
+ errors.push(`release-metadata drift (advisory): packages/cli/bundle/.agentera-npx-bundle.json suiteVersion is ${JSON.stringify(snap.bundleSuiteVersion)} ` +
215
+ `but registry.json skills[0].version is ${JSON.stringify(snap.authoritativeVersion)}; ` +
216
+ `run \`npm run bundle:data\` (or \`pnpm -C packages/cli run bundle:data\`) at ${rootLabel} to refresh the local bundle copy before publishing`);
217
+ }
218
+ }
219
+ return errors;
220
+ }
221
+ export function releaseMetadataMain(opts = {}) {
222
+ const root = resolvePath(opts.root ?? rootDefault());
223
+ const out = opts.out ?? ((line) => process.stdout.write(line + "\n"));
224
+ const err = opts.err ?? ((line) => process.stderr.write(line + "\n"));
225
+ const errors = validateReleaseMetadata(root);
226
+ if (errors.length > 0) {
227
+ out("release-metadata validation failed:");
228
+ for (const message of errors)
229
+ out(`- ${message}`);
230
+ return 1;
231
+ }
232
+ out("release-metadata ok");
233
+ return 0;
234
+ }
235
+ //# sourceMappingURL=releaseMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/release/releaseMetadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { expanduser, isFile, pathExists } from "../../core/paths.js";
4
+ import { CAPABILITY_AGENT_NAMES } from "./constants.js";
5
+ export function codexAgentSourceDir(installRoot) {
6
+ const candidates = [
7
+ path.join(installRoot, "app", "skills", "agentera", "agents"),
8
+ path.join(installRoot, "skills", "agentera", "agents"),
9
+ ];
10
+ for (const candidate of candidates) {
11
+ try {
12
+ if (fs.statSync(candidate).isDirectory())
13
+ return candidate;
14
+ }
15
+ catch {
16
+ /* not a dir */
17
+ }
18
+ }
19
+ return candidates[0];
20
+ }
21
+ export function defaultAgentsDirForConfig(configPath) {
22
+ const expanded = expanduser(configPath);
23
+ if (path.basename(expanded) === "config.toml" && path.basename(path.dirname(expanded)) === ".codex") {
24
+ return path.join(path.dirname(expanded), "agents");
25
+ }
26
+ throw new Error("Codex agent descriptors can be inferred only for documented config layouts: " +
27
+ "~/.codex/config.toml or <project>/.codex/config.toml. " +
28
+ "Pass --agents-dir for nonstandard --config-file paths.");
29
+ }
30
+ function codexDescriptorManaged(text) {
31
+ const lines = text.split(/\r\n|\r|\n/).slice(0, 5);
32
+ return lines.some((line) => line.trim() === "# agentera_managed: true");
33
+ }
34
+ export function planAgentDescriptorChanges(installRoot, agentsDir, opts) {
35
+ const sourceDir = codexAgentSourceDir(installRoot);
36
+ const changes = [];
37
+ for (const name of CAPABILITY_AGENT_NAMES) {
38
+ const source = path.join(sourceDir, `${name}.toml`);
39
+ const target = path.join(agentsDir, `${name}.toml`);
40
+ let sourceText;
41
+ try {
42
+ sourceText = fs.readFileSync(source, "utf8");
43
+ }
44
+ catch {
45
+ changes.push({ action: "blocked", name, source, target, message: "source descriptor is missing", content: "" });
46
+ continue;
47
+ }
48
+ if (!pathExists(target)) {
49
+ changes.push({ action: "pending", name, source, target, message: "would install Codex agent descriptor", content: sourceText });
50
+ continue;
51
+ }
52
+ if (!isFile(target)) {
53
+ changes.push({ action: "blocked", name, source, target, message: "target exists but is not a regular file", content: sourceText });
54
+ continue;
55
+ }
56
+ let targetText;
57
+ try {
58
+ targetText = fs.readFileSync(target, "utf8");
59
+ }
60
+ catch (exc) {
61
+ changes.push({ action: "blocked", name, source, target, message: `cannot read target descriptor: ${exc.message}`, content: sourceText });
62
+ continue;
63
+ }
64
+ if (targetText === sourceText) {
65
+ changes.push({ action: "noop", name, source, target, message: "Codex agent descriptor is current", content: sourceText });
66
+ }
67
+ else if (opts.force || codexDescriptorManaged(targetText)) {
68
+ changes.push({ action: "pending", name, source, target, message: "would refresh Codex agent descriptor", content: sourceText });
69
+ }
70
+ else {
71
+ changes.push({
72
+ action: "blocked",
73
+ name,
74
+ source,
75
+ target,
76
+ message: "target exists without Agentera ownership proof; treating it as user-owned",
77
+ content: sourceText,
78
+ });
79
+ }
80
+ }
81
+ return changes;
82
+ }
83
+ export function writeAgentDescriptorChanges(changes) {
84
+ for (const change of changes) {
85
+ if (change.action !== "pending")
86
+ continue;
87
+ fs.mkdirSync(path.dirname(change.target), { recursive: true });
88
+ fs.writeFileSync(change.target, change.content, "utf8");
89
+ }
90
+ }
91
+ function readTextOrNull(p) {
92
+ if (!pathExists(p))
93
+ return null;
94
+ return fs.readFileSync(p, "utf8");
95
+ }
96
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/setup/codex/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { parseToml } from "../../core/toml.js";
4
+ import { pathExists } from "../../core/paths.js";
5
+ import { DEFAULT_CONFIG_PATH, InstallRootError, resolveInstallRoot } from "./installRoot.js";
6
+ import { planAgentDescriptorChanges, writeAgentDescriptorChanges, defaultAgentsDirForConfig } from "./agents.js";
7
+ import { planChange } from "./state.js";
8
+ function readTextOrNull(p) {
9
+ if (!pathExists(p))
10
+ return null;
11
+ return fs.readFileSync(p, "utf8");
12
+ }
13
+ export function codexMain(argv = [], io = {}) {
14
+ const writeOut = io.out ?? ((text) => process.stdout.write(text));
15
+ const writeErr = io.err ?? ((text) => process.stderr.write(text));
16
+ const out = (line) => writeOut(line + "\n");
17
+ const err = (line) => writeErr(line + "\n");
18
+ const env = io.env ?? process.env;
19
+ const args = {
20
+ installRoot: null,
21
+ configFile: DEFAULT_CONFIG_PATH,
22
+ agentsDir: null,
23
+ dryRun: false,
24
+ force: false,
25
+ enableAgents: false,
26
+ };
27
+ const valueFlag = (a, name) => {
28
+ if (a === name)
29
+ return "__NEXT__";
30
+ if (a.startsWith(name + "="))
31
+ return a.slice(name.length + 1);
32
+ return null;
33
+ };
34
+ for (let i = 0; i < argv.length; i++) {
35
+ const a = argv[i];
36
+ let v;
37
+ if ((v = valueFlag(a, "--install-root")) !== null) {
38
+ args.installRoot = v === "__NEXT__" ? argv[++i] : v;
39
+ }
40
+ else if ((v = valueFlag(a, "--config-file")) !== null) {
41
+ args.configFile = v === "__NEXT__" ? argv[++i] : v;
42
+ }
43
+ else if ((v = valueFlag(a, "--agents-dir")) !== null) {
44
+ args.agentsDir = v === "__NEXT__" ? argv[++i] : v;
45
+ }
46
+ else if (a === "--dry-run") {
47
+ args.dryRun = true;
48
+ }
49
+ else if (a === "--force") {
50
+ args.force = true;
51
+ }
52
+ else if (a === "--enable-agents") {
53
+ args.enableAgents = true;
54
+ }
55
+ else {
56
+ err(`setup_codex: error: unrecognized arguments: ${a}`);
57
+ return 2;
58
+ }
59
+ }
60
+ // Step 1: resolve and verify the Agentera directory.
61
+ let installRoot;
62
+ try {
63
+ installRoot = resolveInstallRoot(args.installRoot, env);
64
+ }
65
+ catch (errx) {
66
+ if (errx instanceof InstallRootError) {
67
+ err(errx.message);
68
+ return 2;
69
+ }
70
+ throw errx;
71
+ }
72
+ // Step 2: read current config (None if absent).
73
+ const configPath = args.configFile;
74
+ let currentText;
75
+ try {
76
+ currentText = readTextOrNull(configPath);
77
+ }
78
+ catch (errx) {
79
+ err(`error reading ${configPath}: ${errx.message}`);
80
+ return 2;
81
+ }
82
+ // Step 3: parse-check existing content.
83
+ if (currentText !== null && currentText.trim()) {
84
+ try {
85
+ parseToml(currentText);
86
+ }
87
+ catch (errx) {
88
+ err(`error: ${configPath} is not valid TOML (${errx.message}). ` +
89
+ "Repair it manually before running this helper.");
90
+ return 2;
91
+ }
92
+ }
93
+ // Step 4: plan the AGENTERA_HOME change and runtime-native descriptors.
94
+ const outcome = planChange(currentText, installRoot, { force: args.force });
95
+ let agentsDir;
96
+ try {
97
+ agentsDir = args.agentsDir ?? defaultAgentsDirForConfig(configPath);
98
+ }
99
+ catch (errx) {
100
+ err(`error: ${errx.message}`);
101
+ return 2;
102
+ }
103
+ const descriptorChanges = planAgentDescriptorChanges(installRoot, agentsDir, { force: args.force });
104
+ const pendingDescriptors = descriptorChanges.filter((c) => c.action === "pending");
105
+ const blockedDescriptors = descriptorChanges.filter((c) => c.action === "blocked");
106
+ if (args.enableAgents) {
107
+ err("--enable-agents is deprecated in Agentera v2; no [agents.*] " +
108
+ "blocks will be written; runtime-native descriptor files are managed separately.");
109
+ }
110
+ // Step 5: dispatch on the outcome.
111
+ if (outcome.action === "conflict") {
112
+ err(outcome.message);
113
+ if (outcome.diff)
114
+ err(outcome.diff);
115
+ return 2;
116
+ }
117
+ if (blockedDescriptors.length > 0) {
118
+ for (const change of blockedDescriptors) {
119
+ err(`error: ${change.target}: ${change.message}`);
120
+ }
121
+ return 2;
122
+ }
123
+ if (outcome.action === "noop" && pendingDescriptors.length === 0) {
124
+ out(outcome.message);
125
+ return 0;
126
+ }
127
+ if (args.dryRun) {
128
+ out(outcome.message);
129
+ if (outcome.diff) {
130
+ writeOut(outcome.diff);
131
+ if (!outcome.diff.endsWith("\n"))
132
+ out("");
133
+ }
134
+ for (const change of pendingDescriptors) {
135
+ out(`${change.message}: ${change.target}`);
136
+ }
137
+ return 1;
138
+ }
139
+ try {
140
+ if (outcome.action !== "noop") {
141
+ fs.mkdirSync(path.dirname(configPath), { recursive: true });
142
+ fs.writeFileSync(configPath, outcome.newText, "utf8");
143
+ }
144
+ writeAgentDescriptorChanges(pendingDescriptors);
145
+ }
146
+ catch (errx) {
147
+ err(`error writing Codex setup targets: ${errx.message}`);
148
+ return 2;
149
+ }
150
+ if (outcome.action !== "noop") {
151
+ out(`wrote ${configPath}: ${outcome.message.replaceAll("would ", "")}`);
152
+ }
153
+ else {
154
+ out(outcome.message);
155
+ }
156
+ for (const change of pendingDescriptors) {
157
+ out(`wrote ${change.target}: ${change.message.replaceAll("would ", "")}`);
158
+ }
159
+ return 0;
160
+ }
161
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/setup/codex/cli.ts"],"names":[],"mappings":"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"}