agentera 3.0.0-dev.25 → 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 (270) hide show
  1. package/README.md +16 -20
  2. package/bundle/CHANGELOG.md +15 -25
  3. package/bundle/README.md +13 -34
  4. package/bundle/UPGRADE.md +71 -165
  5. package/bundle/references/adapters/package-manifest-interface-model.yaml +40 -241
  6. package/bundle/references/adapters/package-registry.yaml +0 -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 +43 -447
  12. package/bundle/references/cli/agent-ready-state-contract.yaml +9 -9
  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/upgrade-repair-wording.md +8 -28
  19. package/bundle/references/cli/v3-handoff-manifest.schema.yaml +2 -3
  20. package/bundle/references/cli/vocabulary.md +18 -23
  21. package/bundle/references/meta/documentation-inventory.md +1 -1
  22. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +3 -11
  23. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +1 -1
  24. package/dist/cli/capabilityContext/bespoke.js +8 -2
  25. package/dist/cli/capabilityContext/bespoke.js.map +1 -1
  26. package/dist/cli/capabilityContext/closeout.js +3 -3
  27. package/dist/cli/capabilityContext/closeout.js.map +1 -1
  28. package/dist/cli/capabilityContext/evidence.js +52 -40
  29. package/dist/cli/capabilityContext/evidence.js.map +1 -1
  30. package/dist/cli/capabilityContext/startup.js +1 -1
  31. package/dist/cli/capabilityContext/startup.js.map +1 -1
  32. package/dist/cli/commands/doctor.js +6 -64
  33. package/dist/cli/commands/doctor.js.map +1 -1
  34. package/dist/cli/commands/durability.js +12 -48
  35. package/dist/cli/commands/durability.js.map +1 -1
  36. package/dist/cli/commands/prime/briefOrientation.js +2 -19
  37. package/dist/cli/commands/prime/briefOrientation.js.map +1 -1
  38. package/dist/cli/commands/prime/bundleStatus.js +8 -2
  39. package/dist/cli/commands/prime/bundleStatus.js.map +1 -1
  40. package/dist/cli/commands/prime/collectEntityOrientation.js +27 -14
  41. package/dist/cli/commands/prime/collectEntityOrientation.js.map +1 -1
  42. package/dist/cli/commands/prime/collectOrientationState.js +31 -52
  43. package/dist/cli/commands/prime/collectOrientationState.js.map +1 -1
  44. package/dist/cli/commands/prime/orientationOutput.js +3 -11
  45. package/dist/cli/commands/prime/orientationOutput.js.map +1 -1
  46. package/dist/cli/commands/prime.js +0 -5
  47. package/dist/cli/commands/prime.js.map +1 -1
  48. package/dist/cli/commands/query.js +17 -49
  49. package/dist/cli/commands/query.js.map +1 -1
  50. package/dist/cli/commands/schema.js +19 -78
  51. package/dist/cli/commands/schema.js.map +1 -1
  52. package/dist/cli/commands/state/decisions.js +11 -57
  53. package/dist/cli/commands/state/decisions.js.map +1 -1
  54. package/dist/cli/commands/state/docs.js +56 -120
  55. package/dist/cli/commands/state/docs.js.map +1 -1
  56. package/dist/cli/commands/state/experimentRecords.js +22 -121
  57. package/dist/cli/commands/state/experimentRecords.js.map +1 -1
  58. package/dist/cli/commands/state/experiments.js +9 -75
  59. package/dist/cli/commands/state/experiments.js.map +1 -1
  60. package/dist/cli/commands/state/get.js +62 -143
  61. package/dist/cli/commands/state/get.js.map +1 -1
  62. package/dist/cli/commands/state/health.js +9 -123
  63. package/dist/cli/commands/state/health.js.map +1 -1
  64. package/dist/cli/commands/state/index.js +2 -2
  65. package/dist/cli/commands/state/index.js.map +1 -1
  66. package/dist/cli/commands/state/list.js +20 -36
  67. package/dist/cli/commands/state/list.js.map +1 -1
  68. package/dist/cli/commands/state/objective.js +19 -86
  69. package/dist/cli/commands/state/objective.js.map +1 -1
  70. package/dist/cli/commands/state/plan.js +9 -388
  71. package/dist/cli/commands/state/plan.js.map +1 -1
  72. package/dist/cli/commands/state/planTasks.js +58 -93
  73. package/dist/cli/commands/state/planTasks.js.map +1 -1
  74. package/dist/cli/commands/state/plans.js +13 -40
  75. package/dist/cli/commands/state/plans.js.map +1 -1
  76. package/dist/cli/commands/state/progress.js +10 -55
  77. package/dist/cli/commands/state/progress.js.map +1 -1
  78. package/dist/cli/commands/state/todo.js +24 -133
  79. package/dist/cli/commands/state/todo.js.map +1 -1
  80. package/dist/cli/commands/state/write.js +11 -33
  81. package/dist/cli/commands/state/write.js.map +1 -1
  82. package/dist/cli/commands/upgrade.js +48 -18
  83. package/dist/cli/commands/upgrade.js.map +1 -1
  84. package/dist/cli/commands/upgradeVerify.js +21 -15
  85. package/dist/cli/commands/upgradeVerify.js.map +1 -1
  86. package/dist/cli/commands/validate.js +1 -9
  87. package/dist/cli/commands/validate.js.map +1 -1
  88. package/dist/cli/dispatch/check.js +5 -12
  89. package/dist/cli/dispatch/check.js.map +1 -1
  90. package/dist/cli/dispatch/index.js +30 -29
  91. package/dist/cli/dispatch/index.js.map +1 -1
  92. package/dist/cli/dispatch/lifecycle.js +23 -40
  93. package/dist/cli/dispatch/lifecycle.js.map +1 -1
  94. package/dist/cli/help.js +20 -100
  95. package/dist/cli/help.js.map +1 -1
  96. package/dist/cli/migrationRequired.js +22 -19
  97. package/dist/cli/migrationRequired.js.map +1 -1
  98. package/dist/cli/orientation/attention.js +1 -97
  99. package/dist/cli/orientation/attention.js.map +1 -1
  100. package/dist/cli/stateQuery.js +1 -2
  101. package/dist/cli/stateQuery.js.map +1 -1
  102. package/dist/core/skillIdentity.js +24 -0
  103. package/dist/core/skillIdentity.js.map +1 -0
  104. package/dist/hooks/common.js +1 -1
  105. package/dist/hooks/common.js.map +1 -1
  106. package/dist/hooks/compaction/status.js +2 -1
  107. package/dist/hooks/compaction/status.js.map +1 -1
  108. package/dist/hooks/cursorSessionStart.js +4 -25
  109. package/dist/hooks/cursorSessionStart.js.map +1 -1
  110. package/dist/hooks/projectHookInput.js +26 -0
  111. package/dist/hooks/projectHookInput.js.map +1 -0
  112. package/dist/hooks/sessionStart.js +23 -239
  113. package/dist/hooks/sessionStart.js.map +1 -1
  114. package/dist/hooks/sessionStop.js +4 -12
  115. package/dist/hooks/sessionStop.js.map +1 -1
  116. package/dist/hooks/validateArtifact/traversal.js +1 -1
  117. package/dist/hooks/validateArtifact/traversal.js.map +1 -1
  118. package/dist/registries/artifactRegistry.js +2 -1
  119. package/dist/registries/artifactRegistry.js.map +1 -1
  120. package/dist/registries/packageRegistry.js +57 -231
  121. package/dist/registries/packageRegistry.js.map +1 -1
  122. package/dist/release/releaseMetadata.js +1 -13
  123. package/dist/release/releaseMetadata.js.map +1 -1
  124. package/dist/runtime/lifecycleAdapterContract.js +4 -4
  125. package/dist/runtime/lifecycleAdapterContract.js.map +1 -1
  126. package/dist/runtime/lifecycleAdapters.js +14 -2
  127. package/dist/runtime/lifecycleAdapters.js.map +1 -1
  128. package/dist/runtime/lifecycleAuthority.js +5 -43
  129. package/dist/runtime/lifecycleAuthority.js.map +1 -1
  130. package/dist/runtime/lifecycleOperationContract.js +3 -2
  131. package/dist/runtime/lifecycleOperationContract.js.map +1 -1
  132. package/dist/runtime/lifecyclePublication.js +21 -0
  133. package/dist/runtime/lifecyclePublication.js.map +1 -1
  134. package/dist/setup/opencode.js +20 -12
  135. package/dist/setup/opencode.js.map +1 -1
  136. package/dist/setup/sharedSkill.js +46 -0
  137. package/dist/setup/sharedSkill.js.map +1 -0
  138. package/dist/setup/smokeChecks.js +16 -43
  139. package/dist/setup/smokeChecks.js.map +1 -1
  140. package/dist/state/decisionEntities.js +7 -4
  141. package/dist/state/decisionEntities.js.map +1 -1
  142. package/dist/state/durability.js +4 -240
  143. package/dist/state/durability.js.map +1 -1
  144. package/dist/state/entityCutover.js +90 -186
  145. package/dist/state/entityCutover.js.map +1 -1
  146. package/dist/state/entityStorage.js +27 -8
  147. package/dist/state/entityStorage.js.map +1 -1
  148. package/dist/state/healthEntities.js +7 -4
  149. package/dist/state/healthEntities.js.map +1 -1
  150. package/dist/state/objectiveExperimentEntities.js +7 -5
  151. package/dist/state/objectiveExperimentEntities.js.map +1 -1
  152. package/dist/state/planEntities.js +14 -10
  153. package/dist/state/planEntities.js.map +1 -1
  154. package/dist/state/progressEntities.js +4 -2
  155. package/dist/state/progressEntities.js.map +1 -1
  156. package/dist/state/startupProjection.js +3 -2
  157. package/dist/state/startupProjection.js.map +1 -1
  158. package/dist/state/stateMode.js +7 -0
  159. package/dist/state/stateMode.js.map +1 -1
  160. package/dist/state/todoDocsEntities.js +6 -4
  161. package/dist/state/todoDocsEntities.js.map +1 -1
  162. package/dist/state/write/explain.js +1 -9
  163. package/dist/state/write/explain.js.map +1 -1
  164. package/dist/state/write/transaction.js +22 -532
  165. package/dist/state/write/transaction.js.map +1 -1
  166. package/dist/upgrade/appContentRefresh.js +43 -28
  167. package/dist/upgrade/appContentRefresh.js.map +1 -1
  168. package/dist/upgrade/doctor.js +5 -1
  169. package/dist/upgrade/doctor.js.map +1 -1
  170. package/dist/upgrade/installedHooksRetirement.js +46 -39
  171. package/dist/upgrade/installedHooksRetirement.js.map +1 -1
  172. package/dist/upgrade/legacyAgentCleanup.js +132 -32
  173. package/dist/upgrade/legacyAgentCleanup.js.map +1 -1
  174. package/dist/upgrade/lifecycleUpgrade.js +65 -378
  175. package/dist/upgrade/lifecycleUpgrade.js.map +1 -1
  176. package/dist/upgrade/migrateArtifactsV2ToV3.js +151 -52
  177. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -1
  178. package/dist/upgrade/migrationPublication.js +123 -0
  179. package/dist/upgrade/migrationPublication.js.map +1 -0
  180. package/dist/upgrade/projectIntegration.js +46 -113
  181. package/dist/upgrade/projectIntegration.js.map +1 -1
  182. package/dist/upgrade/projectIntegrationDecision.js +6 -96
  183. package/dist/upgrade/projectIntegrationDecision.js.map +1 -1
  184. package/dist/upgrade/runtimeMigration.js +222 -402
  185. package/dist/upgrade/runtimeMigration.js.map +1 -1
  186. package/dist/upgrade/upgradeCommands.js +5 -4
  187. package/dist/upgrade/upgradeCommands.js.map +1 -1
  188. package/dist/upgrade/upgradeLock.js +73 -41
  189. package/dist/upgrade/upgradeLock.js.map +1 -1
  190. package/dist/upgrade/upgradeOrchestrator.js +91 -158
  191. package/dist/upgrade/upgradeOrchestrator.js.map +1 -1
  192. package/dist/upgrade/v3CapabilitySurface.js +2 -2
  193. package/dist/validate/appHomeContract.js +0 -4
  194. package/dist/validate/appHomeContract.js.map +1 -1
  195. package/package.json +7 -5
  196. package/bundle/.codex-plugin/plugin.json +0 -92
  197. package/bundle/.cursor/agents/agentera.md +0 -7
  198. package/bundle/.cursor/hooks.json +0 -32
  199. package/bundle/.cursor-plugin/plugin.json +0 -34
  200. package/bundle/.github/hooks/postToolUse.json +0 -9
  201. package/bundle/.github/hooks/preToolUse.json +0 -8
  202. package/bundle/.github/hooks/sessionEnd.json +0 -8
  203. package/bundle/.github/hooks/sessionStart.json +0 -8
  204. package/bundle/.github/plugin/plugin.json +0 -7
  205. package/bundle/.opencode/agents/agentera.md +0 -12
  206. package/bundle/.opencode/commands/agentera.md +0 -5
  207. package/bundle/.opencode/package.json +0 -31
  208. package/bundle/.opencode/plugins/agentera.js +0 -820
  209. package/bundle/agents/openai.yaml +0 -87
  210. package/bundle/hooks/codex-hooks.json +0 -31
  211. package/bundle/hooks/codex-plugin-hooks.json +0 -31
  212. package/bundle/plugin.json +0 -13
  213. package/bundle/references/adapters/cursor.md +0 -224
  214. package/bundle/references/adapters/opencode.md +0 -529
  215. package/bundle/references/adapters/runtime-adapter-characterization.md +0 -44
  216. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +0 -200
  217. package/bundle/references/adapters/runtime-adapter-registry.yaml +0 -387
  218. package/bundle/references/adapters/runtime-feature-parity.md +0 -129
  219. package/dist/cli/commands/backfill.js +0 -231
  220. package/dist/cli/commands/backfill.js.map +0 -1
  221. package/dist/cli/commands/migrate.js +0 -681
  222. package/dist/cli/commands/migrate.js.map +0 -1
  223. package/dist/registries/runtimeAdapterRegistry.js +0 -324
  224. package/dist/registries/runtimeAdapterRegistry.js.map +0 -1
  225. package/dist/setup/copilot.js +0 -227
  226. package/dist/setup/copilot.js.map +0 -1
  227. package/dist/setup/cursor.js +0 -129
  228. package/dist/setup/cursor.js.map +0 -1
  229. package/dist/setup/cursorSurfaces.js +0 -67
  230. package/dist/setup/cursorSurfaces.js.map +0 -1
  231. package/dist/setup/doctor/core.js +0 -296
  232. package/dist/setup/doctor/core.js.map +0 -1
  233. package/dist/setup/doctor/diagnostics.js +0 -201
  234. package/dist/setup/doctor/diagnostics.js.map +0 -1
  235. package/dist/setup/doctor/opencode.js +0 -301
  236. package/dist/setup/doctor/opencode.js.map +0 -1
  237. package/dist/setup/doctor/report.js +0 -425
  238. package/dist/setup/doctor/report.js.map +0 -1
  239. package/dist/setup/doctor.js +0 -10
  240. package/dist/setup/doctor.js.map +0 -1
  241. package/dist/state/gitBackfill.js +0 -561
  242. package/dist/state/gitBackfill.js.map +0 -1
  243. package/dist/state/gitBackfillAuthority.js +0 -141
  244. package/dist/state/gitBackfillAuthority.js.map +0 -1
  245. package/dist/state/gitBackfillHistory.js +0 -278
  246. package/dist/state/gitBackfillHistory.js.map +0 -1
  247. package/dist/state/gitBackfillOutput.js +0 -209
  248. package/dist/state/gitBackfillOutput.js.map +0 -1
  249. package/dist/state/legacyMigration.js +0 -516
  250. package/dist/state/legacyMigration.js.map +0 -1
  251. package/dist/state/legacyMigrationParser.js +0 -489
  252. package/dist/state/legacyMigrationParser.js.map +0 -1
  253. package/dist/state/migrationAuthority.js +0 -413
  254. package/dist/state/migrationAuthority.js.map +0 -1
  255. package/dist/state/migrationEnrichment.js +0 -35
  256. package/dist/state/migrationEnrichment.js.map +0 -1
  257. package/dist/state/projectionRecovery.js +0 -458
  258. package/dist/state/projectionRecovery.js.map +0 -1
  259. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -568
  260. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +0 -1
  261. package/dist/validate/lifecycleAdapters/legacyPythonParity.js +0 -93
  262. package/dist/validate/lifecycleAdapters/legacyPythonParity.js.map +0 -1
  263. package/dist/validate/lifecycleAdapters/lifecycleMain.js +0 -154
  264. package/dist/validate/lifecycleAdapters/lifecycleMain.js.map +0 -1
  265. package/dist/validate/lifecycleAdapters/nodeFormChecks.js +0 -481
  266. package/dist/validate/lifecycleAdapters/nodeFormChecks.js.map +0 -1
  267. package/dist/validate/lifecycleAdapters/shared.js +0 -198
  268. package/dist/validate/lifecycleAdapters/shared.js.map +0 -1
  269. package/dist/validate/lifecycleAdapters.js +0 -10
  270. 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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EACL,OAAO,EACP,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,UAAU;AACV,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC7C,MAAM,uBAAuB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,6BAA6B,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,0BAA0B,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,QAAQ;AACR,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,SAAS;AACT,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,2BAA2B,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,cAAc;YAAE,SAAS;QAClE,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,EAAE,CAAC;YAC1E,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9D,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iCAAiC,CAAC,MAAM,GAAG,EAAE;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,CACL,GAAG,IAAI,2DAA2D;QAClE,4DAA4D;QAC5D,8DAA8D;QAC9D,qCAAqC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY,EAAE,GAAQ;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,MAAM,GAAG;YACb,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC;SAC/G,CAAC;QACF,OAAO,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,SAAS;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QAClC,MAAM,KAAK,GAAG,mBAAmB,CAC/B,SAAS,EACT,kBAAkB,EAClB,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EACnC,WAAW,EACX,MAAM,CACP,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YACzC,KAAK,CAAC,OAAO,GAAG,6BAA6B,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,iCAAiC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjH,OAAO,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG;QACb,OAAO,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE;YACxE,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,0BAA0B;SAChC,CAAC;KACH,CAAC;IACF,OAAO,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAe,CAAC,CAAC,+BAA+B;IAC3G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;IAC7C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,IAAI,EAAE,oDAAoD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,QAAQ,GAAI,MAAqB,CAAC,GAAG,CAAC;IAC5C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,IAAI,EAAE,oDAAoD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,KAAK,GAAI,QAAuB,CAAC,aAAa,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,EAAE,oDAAoD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,IAAY,EAAE,GAAQ;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,MAAoB,CAAC;IACzB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC3G,MAAM,GAAG;YACP,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,0BAA0B,KAAK,KAAK,EAAE,EAAE;gBAC3E,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,wBAAwB;aAC9B,CAAC;SACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG;YACP,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC;SAC9G,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,IAAY,EAAE,GAAQ;IACxE,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAC7G,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE;YACpE,MAAM,EAAE,aAAa;YACrB,GAAG,EAAE,2BAA2B;SACjC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,8DAA8D,EAAE;gBAC9G,IAAI,EAAE,SAAS;aAChB,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,mEAAmE,EAAE;gBACnH,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,qBAAqB;aAC3B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,mCAAmC,UAAU,EAAE,EAAE;YAC/F,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,qBAAqB;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5F,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,8CAA8C,EAAE;YAC/F,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,OAAO,CACL,mBAAmB,EACnB,kBAAkB,EAClB,6CAA6C,oBAAoB,GAAG,EACpE;YACE,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,sBAAsB;SAC5B,CACF,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,mDAAmD,gBAAgB,EAAE,EAAE;YACtH,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,sBAAsB;SAC5B,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAgF;IACtG,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;CACvB,CAAC"}
@@ -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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"}