agentera 3.0.0-dev.23 → 3.0.0-dev.26

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 (376) hide show
  1. package/README.md +18 -22
  2. package/bundle/CHANGELOG.md +25 -27
  3. package/bundle/README.md +22 -42
  4. package/bundle/UPGRADE.md +71 -179
  5. package/bundle/references/adapters/package-manifest-interface-model.yaml +41 -240
  6. package/bundle/references/adapters/package-registry.yaml +9 -145
  7. package/bundle/references/adapters/package-surface-characterization.md +13 -38
  8. package/bundle/references/adapters/runtime-lifecycle-adapters.yaml +5 -219
  9. package/bundle/references/adapters/runtime-lifecycle-authority.yaml +2 -29
  10. package/bundle/references/adapters/runtime-lifecycle-operation-contract.yaml +1 -1
  11. package/bundle/references/artifacts/state-storage-authority.yaml +729 -412
  12. package/bundle/references/cli/agent-ready-state-contract.yaml +12 -12
  13. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +3 -4
  14. package/bundle/references/cli/bundle-skill-vocabulary.yaml +9 -18
  15. package/bundle/references/cli/capability-tool-classification.yaml +2 -2
  16. package/bundle/references/cli/prime-consumer-compatibility.yaml +28 -98
  17. package/bundle/references/cli/routing-execution-vocabulary.yaml +4 -22
  18. package/bundle/references/cli/update-channels.yaml +4 -2
  19. package/bundle/references/cli/upgrade-repair-wording.md +8 -28
  20. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +2 -3
  21. package/bundle/references/cli/vocabulary.md +22 -27
  22. package/bundle/references/meta/documentation-inventory.md +1 -1
  23. package/bundle/skills/agentera/SKILL.md +28 -14
  24. package/bundle/skills/agentera/capabilities/audit/schemas/artifacts.yaml +12 -12
  25. package/bundle/skills/agentera/capabilities/audit/schemas/validation.yaml +2 -2
  26. package/bundle/skills/agentera/capabilities/build/schemas/artifacts.yaml +12 -12
  27. package/bundle/skills/agentera/capabilities/build/schemas/validation.yaml +8 -8
  28. package/bundle/skills/agentera/capabilities/design/schemas/artifacts.yaml +6 -6
  29. package/bundle/skills/agentera/capabilities/discuss/schemas/artifacts.yaml +7 -7
  30. package/bundle/skills/agentera/capabilities/document/schemas/artifacts.yaml +12 -12
  31. package/bundle/skills/agentera/capabilities/optimize/schemas/artifacts.yaml +9 -9
  32. package/bundle/skills/agentera/capabilities/orchestrate/schemas/artifacts.yaml +11 -11
  33. package/bundle/skills/agentera/capabilities/plan/schemas/artifacts.yaml +9 -9
  34. package/bundle/skills/agentera/capabilities/profile/schemas/artifacts.yaml +2 -2
  35. package/bundle/skills/agentera/capabilities/research/schemas/artifacts.yaml +3 -3
  36. package/bundle/skills/agentera/capabilities/status/schemas/artifacts.yaml +11 -11
  37. package/bundle/skills/agentera/capabilities/vision/schemas/artifacts.yaml +8 -8
  38. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +15 -2
  39. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +7 -12
  40. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +21 -21
  41. package/bundle/skills/agentera/schemas/artifacts/health.yaml +15 -2
  42. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +36 -15
  43. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +15 -2
  44. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +4 -4
  45. package/dist/capabilities/audit/instructions.js +13 -1
  46. package/dist/capabilities/audit/instructions.js.map +1 -1
  47. package/dist/capabilities/build/instructions.js +14 -1
  48. package/dist/capabilities/build/instructions.js.map +1 -1
  49. package/dist/capabilities/discuss/instructions.js +11 -1
  50. package/dist/capabilities/discuss/instructions.js.map +1 -1
  51. package/dist/capabilities/document/instructions.js +9 -1
  52. package/dist/capabilities/document/instructions.js.map +1 -1
  53. package/dist/capabilities/index.js +7 -7
  54. package/dist/capabilities/index.js.map +1 -1
  55. package/dist/capabilities/optimize/instructions.js +10 -1
  56. package/dist/capabilities/optimize/instructions.js.map +1 -1
  57. package/dist/capabilities/orchestrate/instructions.js +13 -2
  58. package/dist/capabilities/orchestrate/instructions.js.map +1 -1
  59. package/dist/capabilities/plan/instructions.js +10 -1
  60. package/dist/capabilities/plan/instructions.js.map +1 -1
  61. package/dist/cli/capabilityContext/bespoke.js +8 -2
  62. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  63. package/dist/cli/capabilityContext/closeout.js +3 -3
  64. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  65. package/dist/cli/capabilityContext/contract.js +10 -15
  66. package/dist/cli/capabilityContext/contract.js.map +1 -1
  67. package/dist/cli/capabilityContext/evidence.js +55 -43
  68. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  69. package/dist/cli/capabilityContext/planState.js +5 -5
  70. package/dist/cli/capabilityContext/planState.js.map +1 -1
  71. package/dist/cli/capabilityContext/progress.js +1 -1
  72. package/dist/cli/capabilityContext/progress.js.map +1 -1
  73. package/dist/cli/capabilityContext/shared.js +8 -2
  74. package/dist/cli/capabilityContext/shared.js.map +1 -1
  75. package/dist/cli/capabilityContext/slim.js +2 -1
  76. package/dist/cli/capabilityContext/slim.js.map +1 -1
  77. package/dist/cli/capabilityContext/startup.js +19 -8
  78. package/dist/cli/capabilityContext/startup.js.map +1 -1
  79. package/dist/cli/capabilityContext/types.js +4 -4
  80. package/dist/cli/capabilityContext/types.js.map +1 -1
  81. package/dist/cli/commands/doctor.js +6 -64
  82. package/dist/cli/commands/doctor.js.map +1 -1
  83. package/dist/cli/commands/durability.js +27 -30
  84. package/dist/cli/commands/durability.js.map +1 -1
  85. package/dist/cli/commands/entityMigrate.js +128 -0
  86. package/dist/cli/commands/entityMigrate.js.map +1 -0
  87. package/dist/cli/commands/prime/briefOrientation.js +7 -22
  88. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  89. package/dist/cli/commands/prime/bundleStatus.js +8 -2
  90. package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
  91. package/dist/cli/commands/prime/collectEntityOrientation.js +161 -0
  92. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -0
  93. package/dist/cli/commands/prime/collectOrientationState.js +32 -59
  94. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  95. package/dist/cli/commands/prime/orientationOutput.js +4 -12
  96. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  97. package/dist/cli/commands/prime.js +2 -5
  98. package/dist/cli/commands/prime.js.map +1 -1
  99. package/dist/cli/commands/query.js +43 -49
  100. package/dist/cli/commands/query.js.map +1 -1
  101. package/dist/cli/commands/schema.js +26 -83
  102. package/dist/cli/commands/schema.js.map +1 -1
  103. package/dist/cli/commands/state/decisions.js +14 -47
  104. package/dist/cli/commands/state/decisions.js.map +1 -1
  105. package/dist/cli/commands/state/docs.js +58 -84
  106. package/dist/cli/commands/state/docs.js.map +1 -1
  107. package/dist/cli/commands/state/experimentRecords.js +27 -44
  108. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  109. package/dist/cli/commands/state/experiments.js +11 -64
  110. package/dist/cli/commands/state/experiments.js.map +1 -1
  111. package/dist/cli/commands/state/get.js +74 -88
  112. package/dist/cli/commands/state/get.js.map +1 -1
  113. package/dist/cli/commands/state/health.js +11 -112
  114. package/dist/cli/commands/state/health.js.map +1 -1
  115. package/dist/cli/commands/state/index.js +11 -2
  116. package/dist/cli/commands/state/index.js.map +1 -1
  117. package/dist/cli/commands/state/list.js +30 -13
  118. package/dist/cli/commands/state/list.js.map +1 -1
  119. package/dist/cli/commands/state/objective.js +21 -64
  120. package/dist/cli/commands/state/objective.js.map +1 -1
  121. package/dist/cli/commands/state/plan.js +11 -376
  122. package/dist/cli/commands/state/plan.js.map +1 -1
  123. package/dist/cli/commands/state/planTasks.js +58 -80
  124. package/dist/cli/commands/state/planTasks.js.map +1 -1
  125. package/dist/cli/commands/state/plans.js +27 -38
  126. package/dist/cli/commands/state/plans.js.map +1 -1
  127. package/dist/cli/commands/state/progress.js +11 -44
  128. package/dist/cli/commands/state/progress.js.map +1 -1
  129. package/dist/cli/commands/state/shared.js.map +1 -1
  130. package/dist/cli/commands/state/todo.js +27 -106
  131. package/dist/cli/commands/state/todo.js.map +1 -1
  132. package/dist/cli/commands/state/write.js +57 -4
  133. package/dist/cli/commands/state/write.js.map +1 -1
  134. package/dist/cli/commands/upgrade.js +99 -35
  135. package/dist/cli/commands/upgrade.js.map +1 -1
  136. package/dist/cli/commands/upgradeVerify.js +52 -14
  137. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  138. package/dist/cli/commands/validate.js +66 -9
  139. package/dist/cli/commands/validate.js.map +1 -1
  140. package/dist/cli/dispatch/check.js +13 -13
  141. package/dist/cli/dispatch/check.js.map +1 -1
  142. package/dist/cli/dispatch/index.js +35 -28
  143. package/dist/cli/dispatch/index.js.map +1 -1
  144. package/dist/cli/dispatch/lifecycle.js +23 -43
  145. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  146. package/dist/cli/dispatch/prime.js +15 -0
  147. package/dist/cli/dispatch/prime.js.map +1 -1
  148. package/dist/cli/dispatch/state.js +7 -1
  149. package/dist/cli/dispatch/state.js.map +1 -1
  150. package/dist/cli/help.js +90 -112
  151. package/dist/cli/help.js.map +1 -1
  152. package/dist/cli/migrationRequired.js +87 -0
  153. package/dist/cli/migrationRequired.js.map +1 -0
  154. package/dist/cli/orientation/attention.js +3 -99
  155. package/dist/cli/orientation/attention.js.map +1 -1
  156. package/dist/cli/orientation.js +10 -7
  157. package/dist/cli/orientation.js.map +1 -1
  158. package/dist/cli/planArtifacts.js +192 -42
  159. package/dist/cli/planArtifacts.js.map +1 -1
  160. package/dist/cli/prime-blob.js +5 -5
  161. package/dist/cli/prime-blob.js.map +1 -1
  162. package/dist/cli/stateQuery.js +6 -7
  163. package/dist/cli/stateQuery.js.map +1 -1
  164. package/dist/core/skillIdentity.js +24 -0
  165. package/dist/core/skillIdentity.js.map +1 -0
  166. package/dist/hooks/common.js +1 -1
  167. package/dist/hooks/common.js.map +1 -1
  168. package/dist/hooks/compaction/status.js +27 -2
  169. package/dist/hooks/compaction/status.js.map +1 -1
  170. package/dist/hooks/cursorSessionStart.js +4 -19
  171. package/dist/hooks/cursorSessionStart.js.map +1 -1
  172. package/dist/hooks/projectHookInput.js +26 -0
  173. package/dist/hooks/projectHookInput.js.map +1 -0
  174. package/dist/hooks/sessionStart.js +58 -212
  175. package/dist/hooks/sessionStart.js.map +1 -1
  176. package/dist/hooks/sessionStop.js +4 -12
  177. package/dist/hooks/sessionStop.js.map +1 -1
  178. package/dist/hooks/validateArtifact/traversal.js +1 -1
  179. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  180. package/dist/registries/artifactRegistry.js +24 -14
  181. package/dist/registries/artifactRegistry.js.map +1 -1
  182. package/dist/registries/packageRegistry.js +58 -232
  183. package/dist/registries/packageRegistry.js.map +1 -1
  184. package/dist/release/releaseMetadata.js +1 -13
  185. package/dist/release/releaseMetadata.js.map +1 -1
  186. package/dist/runtime/lifecycleAdapterContract.js +4 -4
  187. package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
  188. package/dist/runtime/lifecycleAdapters.js +14 -2
  189. package/dist/runtime/lifecycleAdapters.js.map +1 -1
  190. package/dist/runtime/lifecycleAuthority.js +5 -43
  191. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  192. package/dist/runtime/lifecycleOperationContract.js +3 -2
  193. package/dist/runtime/lifecycleOperationContract.js.map +1 -1
  194. package/dist/runtime/lifecyclePublication.js +21 -0
  195. package/dist/runtime/lifecyclePublication.js.map +1 -1
  196. package/dist/setup/opencode.js +20 -12
  197. package/dist/setup/opencode.js.map +1 -1
  198. package/dist/setup/sharedSkill.js +46 -0
  199. package/dist/setup/sharedSkill.js.map +1 -0
  200. package/dist/setup/smokeChecks.js +16 -43
  201. package/dist/setup/smokeChecks.js.map +1 -1
  202. package/dist/state/archivePublication.js +3 -2
  203. package/dist/state/archivePublication.js.map +1 -1
  204. package/dist/state/decisionEntities.js +282 -0
  205. package/dist/state/decisionEntities.js.map +1 -0
  206. package/dist/state/decisionOverlay.js +2 -2
  207. package/dist/state/decisionOverlay.js.map +1 -1
  208. package/dist/state/decisionRevision.js +44 -34
  209. package/dist/state/decisionRevision.js.map +1 -1
  210. package/dist/state/directRetrieval.js.map +1 -1
  211. package/dist/state/durability.js +81 -226
  212. package/dist/state/durability.js.map +1 -1
  213. package/dist/state/entityCutover.js +294 -0
  214. package/dist/state/entityCutover.js.map +1 -0
  215. package/dist/state/entityCutoverGit.js +128 -0
  216. package/dist/state/entityCutoverGit.js.map +1 -0
  217. package/dist/state/entityMigrationPreview.js +803 -0
  218. package/dist/state/entityMigrationPreview.js.map +1 -0
  219. package/dist/state/entityPublicationContext.js +612 -0
  220. package/dist/state/entityPublicationContext.js.map +1 -0
  221. package/dist/state/entityStorage.js +826 -0
  222. package/dist/state/entityStorage.js.map +1 -0
  223. package/dist/state/experimentIdentity.js +23 -11
  224. package/dist/state/experimentIdentity.js.map +1 -1
  225. package/dist/state/healthEntities.js +230 -0
  226. package/dist/state/healthEntities.js.map +1 -0
  227. package/dist/state/healthEntityValidation.js +6 -0
  228. package/dist/state/healthEntityValidation.js.map +1 -0
  229. package/dist/state/legacyEntityCutoverEvidence.js +66 -0
  230. package/dist/state/legacyEntityCutoverEvidence.js.map +1 -0
  231. package/dist/state/listRetrieval.js.map +1 -1
  232. package/dist/state/objectiveExperimentEntities.js +323 -0
  233. package/dist/state/objectiveExperimentEntities.js.map +1 -0
  234. package/dist/state/planEntities.js +362 -0
  235. package/dist/state/planEntities.js.map +1 -0
  236. package/dist/state/progressEntities.js +384 -0
  237. package/dist/state/progressEntities.js.map +1 -0
  238. package/dist/state/projectRoot.js +63 -0
  239. package/dist/state/projectRoot.js.map +1 -0
  240. package/dist/state/retrievalAuthority.js +13 -6
  241. package/dist/state/retrievalAuthority.js.map +1 -1
  242. package/dist/state/safeProjectFile.js +153 -0
  243. package/dist/state/safeProjectFile.js.map +1 -0
  244. package/dist/state/startupProjection.js +3 -2
  245. package/dist/state/startupProjection.js.map +1 -1
  246. package/dist/state/stateMode.js +83 -0
  247. package/dist/state/stateMode.js.map +1 -0
  248. package/dist/state/todoDocsEntities.js +225 -0
  249. package/dist/state/todoDocsEntities.js.map +1 -0
  250. package/dist/state/todoDocsEntityValidation.js +26 -0
  251. package/dist/state/todoDocsEntityValidation.js.map +1 -0
  252. package/dist/state/write/candidateMutation.js +5 -55
  253. package/dist/state/write/candidateMutation.js.map +1 -1
  254. package/dist/state/write/explain.js +119 -28
  255. package/dist/state/write/explain.js.map +1 -1
  256. package/dist/state/write/lock.js +794 -87
  257. package/dist/state/write/lock.js.map +1 -1
  258. package/dist/state/write/mutation.js +5 -2
  259. package/dist/state/write/mutation.js.map +1 -1
  260. package/dist/state/write/operations.js +52 -7
  261. package/dist/state/write/operations.js.map +1 -1
  262. package/dist/state/write/planEvaluation.js +107 -0
  263. package/dist/state/write/planEvaluation.js.map +1 -0
  264. package/dist/state/write/planPublication.js +11 -55
  265. package/dist/state/write/planPublication.js.map +1 -1
  266. package/dist/state/write/transaction.js +32 -455
  267. package/dist/state/write/transaction.js.map +1 -1
  268. package/dist/upgrade/appContentRefresh.js +43 -28
  269. package/dist/upgrade/appContentRefresh.js.map +1 -1
  270. package/dist/upgrade/compatibility.js +4 -4
  271. package/dist/upgrade/compatibility.js.map +1 -1
  272. package/dist/upgrade/doctor.js +5 -1
  273. package/dist/upgrade/doctor.js.map +1 -1
  274. package/dist/upgrade/installedHooksRetirement.js +46 -39
  275. package/dist/upgrade/installedHooksRetirement.js.map +1 -1
  276. package/dist/upgrade/legacyAgentCleanup.js +132 -32
  277. package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
  278. package/dist/upgrade/lifecycleUpgrade.js +65 -378
  279. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  280. package/dist/upgrade/migrateArtifactsV2ToV3.js +164 -66
  281. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  282. package/dist/upgrade/migrationPublication.js +123 -0
  283. package/dist/upgrade/migrationPublication.js.map +1 -0
  284. package/dist/upgrade/projectIntegration.js +46 -113
  285. package/dist/upgrade/projectIntegration.js.map +1 -1
  286. package/dist/upgrade/projectIntegrationDecision.js +6 -96
  287. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  288. package/dist/upgrade/runtimeMigration.js +222 -402
  289. package/dist/upgrade/runtimeMigration.js.map +1 -1
  290. package/dist/upgrade/upgradeCommands.js +5 -4
  291. package/dist/upgrade/upgradeCommands.js.map +1 -1
  292. package/dist/upgrade/upgradeLock.js +73 -41
  293. package/dist/upgrade/upgradeLock.js.map +1 -1
  294. package/dist/upgrade/upgradeOrchestrator.js +181 -145
  295. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  296. package/dist/upgrade/v3CapabilitySurface.js +2 -2
  297. package/dist/validate/appHomeContract.js +0 -4
  298. package/dist/validate/appHomeContract.js.map +1 -1
  299. package/dist/validate/crossCapability.js +2 -2
  300. package/dist/validate/crossCapability.js.map +1 -1
  301. package/package.json +8 -6
  302. package/bundle/.codex-plugin/plugin.json +0 -92
  303. package/bundle/.cursor/agents/agentera.md +0 -7
  304. package/bundle/.cursor/hooks.json +0 -32
  305. package/bundle/.cursor-plugin/plugin.json +0 -34
  306. package/bundle/.github/hooks/postToolUse.json +0 -9
  307. package/bundle/.github/hooks/preToolUse.json +0 -8
  308. package/bundle/.github/hooks/sessionEnd.json +0 -8
  309. package/bundle/.github/hooks/sessionStart.json +0 -8
  310. package/bundle/.github/plugin/plugin.json +0 -7
  311. package/bundle/.opencode/agents/agentera.md +0 -12
  312. package/bundle/.opencode/commands/agentera.md +0 -5
  313. package/bundle/.opencode/package.json +0 -31
  314. package/bundle/.opencode/plugins/agentera.js +0 -820
  315. package/bundle/agents/openai.yaml +0 -87
  316. package/bundle/hooks/codex-hooks.json +0 -31
  317. package/bundle/hooks/codex-plugin-hooks.json +0 -31
  318. package/bundle/plugin.json +0 -13
  319. package/bundle/references/adapters/cursor.md +0 -224
  320. package/bundle/references/adapters/opencode.md +0 -529
  321. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -44
  322. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  323. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -387
  324. package/bundle/references/adapters/runtime-feature-parity.md +0 -129
  325. package/dist/cli/commands/backfill.js +0 -194
  326. package/dist/cli/commands/backfill.js.map +0 -1
  327. package/dist/cli/commands/migrate.js +0 -677
  328. package/dist/cli/commands/migrate.js.map +0 -1
  329. package/dist/registries/runtimeAdapterRegistry.js +0 -324
  330. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  331. package/dist/setup/copilot.js +0 -227
  332. package/dist/setup/copilot.js.map +0 -1
  333. package/dist/setup/cursor.js +0 -129
  334. package/dist/setup/cursor.js.map +0 -1
  335. package/dist/setup/cursorSurfaces.js +0 -67
  336. package/dist/setup/cursorSurfaces.js.map +0 -1
  337. package/dist/setup/doctor/core.js +0 -296
  338. package/dist/setup/doctor/core.js.map +0 -1
  339. package/dist/setup/doctor/diagnostics.js +0 -201
  340. package/dist/setup/doctor/diagnostics.js.map +0 -1
  341. package/dist/setup/doctor/opencode.js +0 -301
  342. package/dist/setup/doctor/opencode.js.map +0 -1
  343. package/dist/setup/doctor/report.js +0 -425
  344. package/dist/setup/doctor/report.js.map +0 -1
  345. package/dist/setup/doctor.js +0 -10
  346. package/dist/setup/doctor.js.map +0 -1
  347. package/dist/state/gitBackfill.js +0 -561
  348. package/dist/state/gitBackfill.js.map +0 -1
  349. package/dist/state/gitBackfillAuthority.js +0 -141
  350. package/dist/state/gitBackfillAuthority.js.map +0 -1
  351. package/dist/state/gitBackfillHistory.js +0 -278
  352. package/dist/state/gitBackfillHistory.js.map +0 -1
  353. package/dist/state/gitBackfillOutput.js +0 -209
  354. package/dist/state/gitBackfillOutput.js.map +0 -1
  355. package/dist/state/legacyMigration.js +0 -516
  356. package/dist/state/legacyMigration.js.map +0 -1
  357. package/dist/state/legacyMigrationParser.js +0 -489
  358. package/dist/state/legacyMigrationParser.js.map +0 -1
  359. package/dist/state/migrationAuthority.js +0 -413
  360. package/dist/state/migrationAuthority.js.map +0 -1
  361. package/dist/state/migrationEnrichment.js +0 -35
  362. package/dist/state/migrationEnrichment.js.map +0 -1
  363. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -568
  364. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  365. package/dist/upgrade/upgradeSnapshot.js +0 -93
  366. package/dist/upgrade/upgradeSnapshot.js.map +0 -1
  367. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  368. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  369. package/dist/validate/lifecycleAdapters/lifecycleMain.js +0 -154
  370. package/dist/validate/lifecycleAdapters/lifecycleMain.js.map +0 -1
  371. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -481
  372. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  373. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  374. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  375. package/dist/validate/lifecycleAdapters.js +0 -10
  376. package/dist/validate/lifecycleAdapters.js.map +0 -1
@@ -1,201 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { expanduser, isFile, resolvePath } from "../../core/paths.js";
4
- import { parseToml as parseTomlLocal } from "../../core/toml.js";
5
- import { mkCheck, runtimeResult, configuredRootCheck, diagnosticCheckNames, diagnosticMessages, diagnosticStatusLabels, diagnosticGapLabels, COPILOT_MARKER, } from "./core.js";
6
- import { CURSOR_MANAGED_AGENT, findCursorAgentsSurface, findExistingCursorHooks, formatCursorProbePaths, hasAgenteraHookReferences, resolveCursorProject, } from "../cursorSurfaces.js";
7
- import { diagnoseOpencode } from "./opencode.js";
8
- // Copilot
9
- const COPILOT_HOME_CHECK = diagnosticCheckNames("copilot")[0];
10
- const CO_MSG = diagnosticMessages("copilot");
11
- const COPILOT_MISSING_MESSAGE = CO_MSG[1];
12
- const COPILOT_RC_CONFIGURED_MESSAGE = CO_MSG[2];
13
- const COPILOT_PASS_STATUS = diagnosticStatusLabels("copilot")[0];
14
- const COPILOT_WARN_STATUS = diagnosticStatusLabels("copilot")[1];
15
- const COPILOT_RUNTIME_CONFIG_GAP = diagnosticGapLabels("copilot")[0];
16
- // Codex
17
- export const CODEX_HOME_CHECK = diagnosticCheckNames("codex")[0];
18
- const CODEX_CONFIG_ERROR_MESSAGE = diagnosticMessages("codex")[1];
19
- const CODEX_WARN_STATUS = diagnosticStatusLabels("codex")[1];
20
- const CODEX_FAIL_STATUS = diagnosticStatusLabels("codex")[2];
21
- export const CODEX_RUNTIME_CONFIG_GAP = diagnosticGapLabels("codex")[0];
22
- // Cursor
23
- const CURSOR_HOME_CHECK = diagnosticCheckNames("cursor")[0];
24
- const CURSOR_HOOKS_CHECK = diagnosticCheckNames("cursor")[1];
25
- const CURSOR_AGENTS_CHECK = diagnosticCheckNames("cursor")[2];
26
- const CURSOR_HELPER_MESSAGE = diagnosticMessages("cursor")[0];
27
- const CURSOR_PASS_STATUS = diagnosticStatusLabels("cursor")[0];
28
- const CURSOR_WARN_STATUS = diagnosticStatusLabels("cursor")[1];
29
- const CURSOR_FAIL_STATUS = diagnosticStatusLabels("cursor")[2];
30
- const CURSOR_USER_ENVIRONMENT_GAP = diagnosticGapLabels("cursor")[1];
31
- const CURSOR_HOOK_DRIFT_GAP = diagnosticGapLabels("cursor")[2];
32
- const CURSOR_AGENT_DRIFT_GAP = diagnosticGapLabels("cursor")[3];
33
- function copilotRcPaths(home) {
34
- return [
35
- path.join(home, ".bashrc"),
36
- path.join(home, ".zshrc"),
37
- path.join(home, ".config", "fish", "config.fish"),
38
- ];
39
- }
40
- function extractCopilotMarkerRoot(text) {
41
- const lines = text.split(/\r\n|\r|\n/);
42
- for (let index = 0; index < lines.length; index++) {
43
- if (lines[index].replace(/\s+$/, "") !== COPILOT_MARKER)
44
- continue;
45
- if (index + 1 >= lines.length)
46
- return null;
47
- const exportLine = lines[index + 1].trim();
48
- for (const prefix of ['export AGENTERA_HOME="', 'set -x AGENTERA_HOME "']) {
49
- if (exportLine.startsWith(prefix) && exportLine.endsWith('"')) {
50
- return exportLine.slice(prefix.length, -1);
51
- }
52
- }
53
- }
54
- return null;
55
- }
56
- function copilotShellManualBoundaryMessage(prefix = "") {
57
- const lead = prefix ? `${prefix} ` : "";
58
- return (`${lead}Agentera will not edit shell startup files; cleanup is a ` +
59
- "user-owned manual boundary. For Copilot app context, pass " +
60
- "AGENTERA_HOME for a single invocation or use runtime-native " +
61
- "environment support when available.");
62
- }
63
- export function diagnoseCopilot(installRoot, home, env) {
64
- const value = env.AGENTERA_HOME;
65
- if (value) {
66
- const checks = [
67
- configuredRootCheck("copilot", COPILOT_HOME_CHECK, resolvePath(expanduser(value)), installRoot, "environment"),
68
- ];
69
- return runtimeResult("copilot", env, checks);
70
- }
71
- for (const rcPath of copilotRcPaths(home)) {
72
- if (!isFile(rcPath))
73
- continue;
74
- const rcText = fs.readFileSync(rcPath, "utf8");
75
- const markerRoot = extractCopilotMarkerRoot(rcText);
76
- if (markerRoot === null)
77
- continue;
78
- const check = configuredRootCheck("copilot", COPILOT_HOME_CHECK, resolvePath(expanduser(markerRoot)), installRoot, rcPath);
79
- if (check.status === COPILOT_PASS_STATUS) {
80
- check.message = COPILOT_RC_CONFIGURED_MESSAGE;
81
- }
82
- check.message = copilotShellManualBoundaryMessage(typeof check.message === "string" ? check.message : undefined);
83
- return runtimeResult("copilot", env, [check]);
84
- }
85
- const checks = [
86
- mkCheck(COPILOT_HOME_CHECK, COPILOT_WARN_STATUS, COPILOT_MISSING_MESSAGE, {
87
- source: "environment/rc",
88
- gap: COPILOT_RUNTIME_CONFIG_GAP,
89
- }),
90
- ];
91
- return runtimeResult("copilot", env, checks);
92
- }
93
- export function readCodexAgenteraHome(configPath) {
94
- if (!isFile(configPath))
95
- return [null, "missing"];
96
- let data;
97
- try {
98
- data = parseTomlLocal(fs.readFileSync(configPath, "utf8")); // cast: TOML parse IO boundary
99
- }
100
- catch (exc) {
101
- return [null, `invalid TOML: ${exc.message}`];
102
- }
103
- const policy = data.shell_environment_policy;
104
- if (!policy || typeof policy !== "object" || Array.isArray(policy)) {
105
- return [null, "missing shell_environment_policy.set.AGENTERA_HOME"];
106
- }
107
- const setTable = policy.set;
108
- if (!setTable || typeof setTable !== "object" || Array.isArray(setTable)) {
109
- return [null, "missing shell_environment_policy.set.AGENTERA_HOME"];
110
- }
111
- const value = setTable.AGENTERA_HOME;
112
- if (typeof value !== "string" || !value) {
113
- return [null, "missing shell_environment_policy.set.AGENTERA_HOME"];
114
- }
115
- return [value, null];
116
- }
117
- export function diagnoseCodex(installRoot, home, env) {
118
- const config = path.join(home, ".codex", "config.toml");
119
- const [value, error] = readCodexAgenteraHome(config);
120
- let checks;
121
- if (error !== null) {
122
- const status = error === "missing" || error.startsWith("missing ") ? CODEX_WARN_STATUS : CODEX_FAIL_STATUS;
123
- checks = [
124
- mkCheck(CODEX_HOME_CHECK, status, `${CODEX_CONFIG_ERROR_MESSAGE}: ${error}`, {
125
- source: config,
126
- path: config,
127
- gap: CODEX_RUNTIME_CONFIG_GAP,
128
- }),
129
- ];
130
- }
131
- else {
132
- checks = [
133
- configuredRootCheck("codex", CODEX_HOME_CHECK, resolvePath(expanduser(value)), installRoot, config),
134
- ];
135
- }
136
- return runtimeResult("codex", env, checks);
137
- }
138
- export function diagnoseCursor(installRoot, home, env) {
139
- const checks = [];
140
- const value = env.AGENTERA_HOME;
141
- if (value) {
142
- checks.push(configuredRootCheck("cursor", CURSOR_HOME_CHECK, resolvePath(expanduser(value)), installRoot, "environment"));
143
- }
144
- else {
145
- checks.push(mkCheck(CURSOR_HOME_CHECK, CURSOR_WARN_STATUS, CURSOR_HELPER_MESSAGE, {
146
- source: "environment",
147
- gap: CURSOR_USER_ENVIRONMENT_GAP,
148
- }));
149
- }
150
- const project = resolveCursorProject(env);
151
- const probePaths = formatCursorProbePaths(project, home, "hooks.json");
152
- const hooksPath = findExistingCursorHooks(project, home);
153
- if (hooksPath) {
154
- const text = fs.readFileSync(hooksPath, "utf8");
155
- if (hasAgenteraHookReferences(text)) {
156
- checks.push(mkCheck(CURSOR_HOOKS_CHECK, CURSOR_PASS_STATUS, "Cursor hooks.json is present and references Agentera helpers", {
157
- path: hooksPath,
158
- }));
159
- }
160
- else {
161
- checks.push(mkCheck(CURSOR_HOOKS_CHECK, CURSOR_WARN_STATUS, "Cursor hooks.json is present but missing Agentera hook references", {
162
- path: hooksPath,
163
- gap: CURSOR_HOOK_DRIFT_GAP,
164
- }));
165
- }
166
- }
167
- else {
168
- checks.push(mkCheck(CURSOR_HOOKS_CHECK, CURSOR_FAIL_STATUS, `Cursor hooks.json is missing at ${probePaths}`, {
169
- path: probePaths,
170
- gap: CURSOR_HOOK_DRIFT_GAP,
171
- }));
172
- }
173
- const agentsProbePaths = formatCursorProbePaths(project, home, "agents");
174
- const { dir: agentsDir, managed, hasManagedAgent } = findCursorAgentsSurface(project, home);
175
- if (hasManagedAgent) {
176
- checks.push(mkCheck(CURSOR_AGENTS_CHECK, CURSOR_PASS_STATUS, "Cursor managed capability agents are current", {
177
- path: agentsDir,
178
- details: managed,
179
- }));
180
- }
181
- else if (managed.length > 0) {
182
- checks.push(mkCheck(CURSOR_AGENTS_CHECK, CURSOR_WARN_STATUS, `Cursor managed agents incomplete (missing ${CURSOR_MANAGED_AGENT})`, {
183
- path: agentsDir,
184
- gap: CURSOR_AGENT_DRIFT_GAP,
185
- }));
186
- }
187
- else {
188
- checks.push(mkCheck(CURSOR_AGENTS_CHECK, CURSOR_FAIL_STATUS, `Cursor managed capability agents are missing at ${agentsProbePaths}`, {
189
- path: agentsProbePaths,
190
- gap: CURSOR_AGENT_DRIFT_GAP,
191
- }));
192
- }
193
- return runtimeResult("cursor", env, checks);
194
- }
195
- export const DIAGNOSTICS = {
196
- opencode: diagnoseOpencode,
197
- copilot: diagnoseCopilot,
198
- codex: diagnoseCodex,
199
- cursor: diagnoseCursor,
200
- };
201
- //# sourceMappingURL=diagnostics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/setup/doctor/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,301 +0,0 @@
1
- import fs from "node:fs";
2
- import path from "node:path";
3
- import { expanduser, isFile, pathExists, resolvePath } from "../../core/paths.js";
4
- import { pluginSourceHasUnmigratedProfileDirSchema, PROFILERA_PROFILE_DIR_ENV, } from "../../core/envPaths.js";
5
- import { configuredRootCheck, mkCheck, runtimeResult, diagnosticCheckNames, diagnosticMessages, diagnosticStatusLabels, diagnosticGapLabels, OPENCODE_SKILL_NAMES, } from "./core.js";
6
- const OPENCODE_PLUGIN_CHECK = diagnosticCheckNames("opencode")[0];
7
- const OPENCODE_HOME_CHECK = diagnosticCheckNames("opencode")[1];
8
- const OPENCODE_COMMANDS_CHECK = diagnosticCheckNames("opencode")[2];
9
- const OPENCODE_SKILL_PATHS_CHECK = diagnosticCheckNames("opencode")[3];
10
- const OPENCODE_SUPPORT_CHECK = diagnosticCheckNames("opencode")[4];
11
- const OPENCODE_PROFILE_DIR_CHECK = diagnosticCheckNames("opencode")[5];
12
- const OPENCODE_PROFILE_DIR_SCHEMA_CHECK = diagnosticCheckNames("opencode")[6];
13
- const OC_MSG = diagnosticMessages("opencode");
14
- const OPENCODE_COMMANDS_CURRENT_MESSAGE = OC_MSG[4];
15
- const OPENCODE_COMMANDS_DRIFT_MESSAGE = OC_MSG[5];
16
- const OPENCODE_SKILL_PATHS_CURRENT_MESSAGE = OC_MSG[6];
17
- const OPENCODE_SKILL_PATHS_DRIFT_MESSAGE = OC_MSG[7];
18
- const OPENCODE_SUPPORT_REFERENCES_PASS_MESSAGE = OC_MSG[8];
19
- const OPENCODE_SUPPORT_REFERENCES_DRIFT_MESSAGE = OC_MSG[9];
20
- const OPENCODE_PROFILE_DIR_CURRENT_MESSAGE = OC_MSG[10];
21
- const OPENCODE_PROFILE_DIR_DEPRECATED_MESSAGE = OC_MSG[11];
22
- const OPENCODE_PROFILE_DIR_SCHEMA_CURRENT_MESSAGE = OC_MSG[12];
23
- const OPENCODE_PROFILE_DIR_SCHEMA_UNMIGRATED_MESSAGE = OC_MSG[13];
24
- const OPENCODE_PASS_STATUS = diagnosticStatusLabels("opencode")[0];
25
- const OPENCODE_WARN_STATUS = diagnosticStatusLabels("opencode")[1];
26
- const OC_GAP = diagnosticGapLabels("opencode");
27
- const OPENCODE_COMMAND_DRIFT_GAP = OC_GAP[2];
28
- const OPENCODE_SKILL_PATH_DRIFT_GAP = OC_GAP[3];
29
- const OPENCODE_VALIDATION_DRIFT_GAP = OC_GAP[4];
30
- const OPENCODE_USER_ENVIRONMENT_GAP = OC_GAP[1];
31
- export function opencodeConfigDir(home, env) {
32
- const explicit = env.OPENCODE_CONFIG_DIR;
33
- if (explicit) {
34
- return resolvePath(expanduser(explicit));
35
- }
36
- const xdg = env.XDG_CONFIG_HOME;
37
- if (xdg) {
38
- return path.join(resolvePath(expanduser(xdg)), "opencode");
39
- }
40
- return path.join(home, ".config", "opencode");
41
- }
42
- export function hasManagedMarker(text) {
43
- const lines = text.split("\n");
44
- if (lines.length === 0 || lines[0] !== "---")
45
- return false;
46
- const closing = lines.indexOf("---", 1);
47
- if (closing === -1)
48
- return false;
49
- return lines.slice(1, closing).some((line) => line.trim() === "agentera_managed: true");
50
- }
51
- export function diagnoseOpencodeCommands(installRoot, home, env) {
52
- const commandsDir = path.join(opencodeConfigDir(home, env), "commands");
53
- const sourceCommandsDir = path.join(installRoot, ".opencode", "commands");
54
- const missing = [];
55
- const stale = [];
56
- const userOwned = [];
57
- for (const name of OPENCODE_SKILL_NAMES) {
58
- const source = path.join(sourceCommandsDir, `${name}.md`);
59
- if (!isFile(source))
60
- continue;
61
- const sourceBytes = fs.readFileSync(source);
62
- const command = path.join(commandsDir, `${name}.md`);
63
- let installedBytes;
64
- try {
65
- installedBytes = fs.readFileSync(command);
66
- }
67
- catch {
68
- missing.push(name);
69
- continue;
70
- }
71
- if (installedBytes.equals(sourceBytes))
72
- continue;
73
- if (hasManagedMarker(installedBytes.toString("utf8")))
74
- stale.push(name);
75
- else
76
- userOwned.push(name);
77
- }
78
- if (missing.length === 0 && stale.length === 0) {
79
- const details = userOwned.map((name) => `user-owned command preserved: ${name}`);
80
- return mkCheck(OPENCODE_COMMANDS_CHECK, OPENCODE_PASS_STATUS, OPENCODE_COMMANDS_CURRENT_MESSAGE, {
81
- path: commandsDir,
82
- details,
83
- });
84
- }
85
- const details = [...missing.map((n) => `missing: ${n}`), ...stale.map((n) => `stale: ${n}`)];
86
- if (userOwned.length > 0)
87
- details.push(...userOwned.map((n) => `user-owned command preserved: ${n}`));
88
- details.push("action: start OpenCode with the Agentera plugin to restore managed commands");
89
- return mkCheck(OPENCODE_COMMANDS_CHECK, OPENCODE_WARN_STATUS, OPENCODE_COMMANDS_DRIFT_MESSAGE, {
90
- path: commandsDir,
91
- gap: OPENCODE_COMMAND_DRIFT_GAP,
92
- details,
93
- });
94
- }
95
- function isAgenteraManagedSkillPath(target, name) {
96
- let linkTarget;
97
- try {
98
- linkTarget = fs.readlinkSync(target);
99
- }
100
- catch {
101
- return false;
102
- }
103
- const normalized = linkTarget.toLowerCase();
104
- return normalized.includes("agentera") || path.basename(linkTarget) === name;
105
- }
106
- function isSymlink(p) {
107
- try {
108
- return fs.lstatSync(p).isSymbolicLink();
109
- }
110
- catch {
111
- return false;
112
- }
113
- }
114
- export function diagnoseOpencodeSkillPaths(installRoot, home, env) {
115
- const skillsDir = path.join(opencodeConfigDir(home, env), "skills");
116
- const missing = [];
117
- const broken = [];
118
- const userOwned = [];
119
- for (const name of OPENCODE_SKILL_NAMES) {
120
- const source = path.join(installRoot, "skills", name, "SKILL.md");
121
- if (!isFile(source))
122
- continue;
123
- const target = path.join(skillsDir, name);
124
- if (!pathExists(target) && !isSymlink(target)) {
125
- missing.push(name);
126
- continue;
127
- }
128
- if (isFile(path.join(target, "SKILL.md")))
129
- continue;
130
- if (isAgenteraManagedSkillPath(target, name))
131
- broken.push(name);
132
- else
133
- userOwned.push(name);
134
- }
135
- if (missing.length === 0 && broken.length === 0) {
136
- const details = userOwned.map((name) => `user-owned skill path preserved: ${name}`);
137
- return mkCheck(OPENCODE_SKILL_PATHS_CHECK, OPENCODE_PASS_STATUS, OPENCODE_SKILL_PATHS_CURRENT_MESSAGE, {
138
- path: skillsDir,
139
- details,
140
- });
141
- }
142
- const details = [...missing.map((n) => `missing: ${n}`), ...broken.map((n) => `broken: ${n}`)];
143
- details.push("action: start OpenCode with the Agentera plugin to restore managed skill paths");
144
- if (userOwned.length > 0)
145
- details.push(...userOwned.map((n) => `user-owned skill path preserved: ${n}`));
146
- return mkCheck(OPENCODE_SKILL_PATHS_CHECK, OPENCODE_WARN_STATUS, OPENCODE_SKILL_PATHS_DRIFT_MESSAGE, {
147
- path: skillsDir,
148
- gap: OPENCODE_SKILL_PATH_DRIFT_GAP,
149
- details,
150
- });
151
- }
152
- // ── bundled reference validation ────────────────────────────────────
153
- function trimChars(s, chars) {
154
- let start = 0;
155
- let end = s.length;
156
- while (start < end && chars.includes(s[start]))
157
- start++;
158
- while (end > start && chars.includes(s[end - 1]))
159
- end--;
160
- return s.slice(start, end);
161
- }
162
- export function normalizeReference(raw) {
163
- const candidate = trimChars(raw, "`'\"()[]{}.,:;");
164
- if (!candidate || path.isAbsolute(candidate) || candidate.includes("\\"))
165
- return null;
166
- const parts = candidate.split("/");
167
- if (parts.some((part) => part === "" || part === "." || part === ".."))
168
- return null;
169
- return candidate;
170
- }
171
- export function extractReferencePaths(text) {
172
- const refs = [];
173
- const seen = new Set();
174
- const re = /(?<![\w/.$-])(?<path>references\/[A-Za-z0-9][A-Za-z0-9_./-]*)/g;
175
- for (const match of text.matchAll(re)) {
176
- const ref = normalizeReference(match.groups.path);
177
- if (ref !== null && !seen.has(ref)) {
178
- refs.push(ref);
179
- seen.add(ref);
180
- }
181
- }
182
- return refs;
183
- }
184
- function globSkillFiles(skillsDir) {
185
- let entries;
186
- try {
187
- entries = fs.readdirSync(skillsDir);
188
- }
189
- catch {
190
- return [];
191
- }
192
- const out = [];
193
- for (const entry of entries) {
194
- const skillFile = path.join(skillsDir, entry, "SKILL.md");
195
- if (isFile(skillFile))
196
- out.push(skillFile);
197
- }
198
- return out.sort();
199
- }
200
- export function diagnoseBundledReferenceValidation(installRoot) {
201
- const skillsDir = path.join(installRoot, "skills");
202
- const missing = [];
203
- for (const skillFile of globSkillFiles(skillsDir)) {
204
- const text = fs.readFileSync(skillFile, "utf8");
205
- const parentName = path.basename(path.dirname(skillFile));
206
- for (const ref of extractReferencePaths(text)) {
207
- if (!pathExists(path.join(path.dirname(skillFile), ref))) {
208
- missing.push(`${parentName}: ${ref}`);
209
- }
210
- }
211
- }
212
- if (missing.length === 0) {
213
- return mkCheck(OPENCODE_SUPPORT_CHECK, OPENCODE_PASS_STATUS, OPENCODE_SUPPORT_REFERENCES_PASS_MESSAGE, {
214
- path: skillsDir,
215
- });
216
- }
217
- return mkCheck(OPENCODE_SUPPORT_CHECK, OPENCODE_WARN_STATUS, OPENCODE_SUPPORT_REFERENCES_DRIFT_MESSAGE, {
218
- path: skillsDir,
219
- gap: OPENCODE_VALIDATION_DRIFT_GAP,
220
- details: missing,
221
- });
222
- }
223
- export function smokeCheck(name, category, status, message, opts = {}) {
224
- return {
225
- name,
226
- category,
227
- status,
228
- message,
229
- command: opts.command ?? [],
230
- path: opts.path ?? null,
231
- details: opts.details ?? [],
232
- };
233
- }
234
- const OPENCODE_PLUGIN_PRESENT_MESSAGE = OC_MSG[0];
235
- const OPENCODE_PLUGIN_MISSING_MESSAGE = OC_MSG[1];
236
- const OPENCODE_HOME_MISSING_MESSAGE = OC_MSG[3];
237
- const OPENCODE_RUNTIME_CONFIG_GAP = OC_GAP[0];
238
- export function diagnoseOpencodeProfileDir(installRoot, home, env) {
239
- if (env[PROFILERA_PROFILE_DIR_ENV]) {
240
- return mkCheck(OPENCODE_PROFILE_DIR_CHECK, OPENCODE_WARN_STATUS, OPENCODE_PROFILE_DIR_DEPRECATED_MESSAGE, {
241
- gap: OPENCODE_USER_ENVIRONMENT_GAP,
242
- });
243
- }
244
- return mkCheck(OPENCODE_PROFILE_DIR_CHECK, OPENCODE_PASS_STATUS, OPENCODE_PROFILE_DIR_CURRENT_MESSAGE, {});
245
- }
246
- export function diagnoseOpencodeProfileDirSchemaLiteral(home, env) {
247
- const plugin = path.join(opencodeConfigDir(home, env), "plugins", "agentera.js");
248
- if (!isFile(plugin)) {
249
- return mkCheck(OPENCODE_PROFILE_DIR_SCHEMA_CHECK, OPENCODE_PASS_STATUS, OPENCODE_PROFILE_DIR_SCHEMA_CURRENT_MESSAGE, {});
250
- }
251
- const text = fs.readFileSync(plugin, "utf8");
252
- if (pluginSourceHasUnmigratedProfileDirSchema(text)) {
253
- return mkCheck(OPENCODE_PROFILE_DIR_SCHEMA_CHECK, OPENCODE_WARN_STATUS, OPENCODE_PROFILE_DIR_SCHEMA_UNMIGRATED_MESSAGE, {
254
- path: plugin,
255
- gap: OPENCODE_RUNTIME_CONFIG_GAP,
256
- });
257
- }
258
- return mkCheck(OPENCODE_PROFILE_DIR_SCHEMA_CHECK, OPENCODE_PASS_STATUS, OPENCODE_PROFILE_DIR_SCHEMA_CURRENT_MESSAGE, { path: plugin });
259
- }
260
- export function diagnoseOpencode(installRoot, home, env) {
261
- const checks = [];
262
- const configDir = opencodeConfigDir(home, env);
263
- const plugin = path.join(configDir, "plugins", "agentera.js");
264
- if (isFile(plugin)) {
265
- checks.push(mkCheck(OPENCODE_PLUGIN_CHECK, OPENCODE_PASS_STATUS, OPENCODE_PLUGIN_PRESENT_MESSAGE, { path: plugin }));
266
- }
267
- else {
268
- checks.push(mkCheck(OPENCODE_PLUGIN_CHECK, OPENCODE_WARN_STATUS, OPENCODE_PLUGIN_MISSING_MESSAGE, {
269
- path: plugin,
270
- gap: OPENCODE_RUNTIME_CONFIG_GAP,
271
- }));
272
- }
273
- if (env.AGENTERA_HOME) {
274
- const p = resolvePath(expanduser(env.AGENTERA_HOME));
275
- checks.push(configuredRootCheck("opencode", OPENCODE_HOME_CHECK, p, installRoot, "environment"));
276
- }
277
- else {
278
- const candidates = [
279
- ["default-install-root", path.join(home, ".agents", "agentera")],
280
- ["default-skill-root", path.join(home, ".agents", "skills", "agentera")],
281
- ];
282
- const existing = candidates.filter(([, p]) => pathExists(p));
283
- if (existing.length > 0) {
284
- const [source, p] = existing[0];
285
- checks.push(configuredRootCheck("opencode", OPENCODE_HOME_CHECK, resolvePath(p), installRoot, source));
286
- }
287
- else {
288
- checks.push(mkCheck(OPENCODE_HOME_CHECK, OPENCODE_WARN_STATUS, OPENCODE_HOME_MISSING_MESSAGE, {
289
- source: "environment/defaults",
290
- gap: OPENCODE_RUNTIME_CONFIG_GAP,
291
- }));
292
- }
293
- }
294
- checks.push(diagnoseOpencodeCommands(installRoot, home, env));
295
- checks.push(diagnoseOpencodeSkillPaths(installRoot, home, env));
296
- checks.push(diagnoseBundledReferenceValidation(installRoot));
297
- checks.push(diagnoseOpencodeProfileDir(installRoot, home, env));
298
- checks.push(diagnoseOpencodeProfileDirSchemaLiteral(home, env));
299
- return runtimeResult("opencode", env, checks);
300
- }
301
- //# sourceMappingURL=opencode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/setup/doctor/opencode.ts"],"names":[],"mappings":"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"}