akm-cli 0.9.0-rc.1 → 0.9.0-rc.2

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 (228) hide show
  1. package/CHANGELOG.md +223 -9
  2. package/SECURITY.md +23 -24
  3. package/dist/assets/help/help-improve.md +10 -10
  4. package/dist/assets/hints/cli-hints-full.md +44 -10
  5. package/dist/assets/hints/cli-hints-short.md +6 -2
  6. package/dist/assets/{profiles → improve-strategies}/default.json +1 -0
  7. package/dist/assets/{profiles → improve-strategies}/graph-refresh.json +1 -1
  8. package/dist/assets/{profiles → improve-strategies}/proactive-maintenance.json +2 -3
  9. package/dist/assets/{profiles → improve-strategies}/reflect-distill.json +3 -4
  10. package/dist/assets/stash-skeleton/README.md +28 -0
  11. package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +6 -0
  12. package/dist/assets/stash-skeleton/facts/conventions/assets/command.md +6 -0
  13. package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +12 -1
  14. package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +11 -1
  15. package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +6 -0
  16. package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +9 -0
  17. package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +7 -0
  18. package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +7 -0
  19. package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +6 -0
  20. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +98 -0
  21. package/dist/assets/stash-skeleton/facts/conventions/domains.md +63 -0
  22. package/dist/assets/stash-skeleton/facts/conventions/organization.md +127 -0
  23. package/dist/assets/tasks/core/backup.yml +1 -0
  24. package/dist/assets/tasks/core/extract.yml +1 -0
  25. package/dist/assets/tasks/core/improve.yml +1 -0
  26. package/dist/assets/tasks/core/index-refresh.yml +1 -0
  27. package/dist/assets/tasks/core/sync.yml +1 -0
  28. package/dist/assets/tasks/core/version-check.yml +1 -0
  29. package/dist/assets/tasks/graph-refresh-weekly.yml +4 -4
  30. package/dist/assets/templates/html/health.html +5 -1
  31. package/dist/cli/config-migrate.js +31 -138
  32. package/dist/cli/config-validate.js +10 -8
  33. package/dist/cli.js +48 -14
  34. package/dist/commands/agent/agent-dispatch.js +17 -16
  35. package/dist/commands/agent/agent-support.js +0 -24
  36. package/dist/commands/agent/contribute-cli.js +5 -15
  37. package/dist/commands/backup-cli.js +54 -0
  38. package/dist/commands/config-cli.js +45 -159
  39. package/dist/commands/env/secret.js +8 -5
  40. package/dist/commands/health/checks.js +130 -83
  41. package/dist/commands/health/html-report.js +4 -0
  42. package/dist/commands/health/improve-metrics.js +30 -32
  43. package/dist/commands/health/llm-usage.js +19 -19
  44. package/dist/commands/health/md-report.js +4 -0
  45. package/dist/commands/health/metrics.js +2 -1
  46. package/dist/commands/health/surfaces.js +5 -4
  47. package/dist/commands/health.js +1 -1
  48. package/dist/commands/improve/consolidate/chunking.js +2 -2
  49. package/dist/commands/improve/consolidate.js +28 -25
  50. package/dist/commands/improve/distill/promote-memory.js +5 -12
  51. package/dist/commands/improve/distill/quality-gate.js +5 -7
  52. package/dist/commands/improve/distill.js +16 -5
  53. package/dist/commands/improve/eligibility.js +22 -12
  54. package/dist/commands/improve/extract-cli.js +47 -19
  55. package/dist/commands/improve/extract.js +110 -62
  56. package/dist/commands/improve/improve-cli.js +38 -16
  57. package/dist/commands/improve/improve-result-file.js +30 -24
  58. package/dist/commands/improve/improve-strategies.js +137 -0
  59. package/dist/commands/improve/improve.js +60 -30
  60. package/dist/commands/improve/locks.js +66 -45
  61. package/dist/commands/improve/loop-stages.js +75 -33
  62. package/dist/commands/improve/memory/memory-belief.js +79 -7
  63. package/dist/commands/improve/memory/memory-contradiction-detect.js +12 -4
  64. package/dist/commands/improve/preparation.js +71 -73
  65. package/dist/commands/improve/procedural.js +3 -2
  66. package/dist/commands/improve/recombine.js +2 -1
  67. package/dist/commands/improve/reflect.js +119 -214
  68. package/dist/commands/improve/shared.js +11 -5
  69. package/dist/commands/lint/base-linter.js +152 -42
  70. package/dist/commands/mv-cli.js +809 -0
  71. package/dist/commands/proposal/proposal-cli.js +18 -8
  72. package/dist/commands/proposal/propose.js +64 -69
  73. package/dist/commands/read/knowledge.js +436 -4
  74. package/dist/commands/read/remember-cli.js +39 -2
  75. package/dist/commands/read/search-cli.js +6 -1
  76. package/dist/commands/registry-cli.js +29 -14
  77. package/dist/commands/remember.js +2 -0
  78. package/dist/commands/sources/init.js +13 -14
  79. package/dist/commands/sources/schema-repair.js +2 -4
  80. package/dist/commands/sources/source-add.js +62 -73
  81. package/dist/commands/sources/source-manage.js +50 -46
  82. package/dist/commands/sources/stash-cli.js +41 -4
  83. package/dist/commands/tasks/default-tasks.js +12 -12
  84. package/dist/commands/tasks/tasks-cli.js +7 -3
  85. package/dist/commands/tasks/tasks.js +113 -18
  86. package/dist/commands/wiki-cli.js +9 -10
  87. package/dist/core/asset/frontmatter.js +12 -2
  88. package/dist/core/common.js +5 -3
  89. package/dist/core/config/config-io.js +28 -17
  90. package/dist/core/config/config-schema.js +358 -66
  91. package/dist/core/config/config-types.js +3 -3
  92. package/dist/core/config/config-version.js +29 -0
  93. package/dist/core/config/config-walker.js +98 -27
  94. package/dist/core/config/config.js +132 -266
  95. package/dist/core/config/deep-merge.js +41 -0
  96. package/dist/core/config/engine-semantics.js +32 -0
  97. package/dist/core/errors.js +2 -2
  98. package/dist/core/extra-params.js +61 -0
  99. package/dist/core/file-lock.js +201 -56
  100. package/dist/core/improve-result.js +178 -0
  101. package/dist/core/maintenance-barrier.js +119 -0
  102. package/dist/core/migration-backup.js +416 -0
  103. package/dist/core/paths.js +3 -0
  104. package/dist/core/redaction.js +358 -0
  105. package/dist/core/state/migrations.js +17 -2
  106. package/dist/core/state-db.js +44 -1
  107. package/dist/indexer/db/db.js +116 -1
  108. package/dist/indexer/graph/graph-extraction.js +28 -16
  109. package/dist/indexer/index-writer-lock.js +31 -24
  110. package/dist/indexer/index-written-assets.js +15 -6
  111. package/dist/indexer/indexer.js +47 -2
  112. package/dist/indexer/passes/memory-inference.js +10 -6
  113. package/dist/indexer/passes/metadata.js +250 -0
  114. package/dist/indexer/search/db-search.js +111 -44
  115. package/dist/indexer/search/fts-query.js +41 -0
  116. package/dist/indexer/search/ranking-contributors.js +48 -0
  117. package/dist/indexer/search/ranking.js +36 -23
  118. package/dist/indexer/search/search-fields.js +11 -1
  119. package/dist/integrations/agent/builder-shared.js +7 -0
  120. package/dist/integrations/agent/builders.js +5 -52
  121. package/dist/integrations/agent/config.js +3 -143
  122. package/dist/integrations/agent/detect.js +17 -2
  123. package/dist/integrations/agent/engine-resolution.js +202 -0
  124. package/dist/integrations/agent/index.js +1 -2
  125. package/dist/integrations/agent/model-aliases.js +7 -2
  126. package/dist/integrations/agent/profiles.js +6 -99
  127. package/dist/integrations/agent/runner-dispatch.js +76 -13
  128. package/dist/integrations/agent/runner.js +76 -207
  129. package/dist/integrations/agent/spawn.js +4 -6
  130. package/dist/integrations/harnesses/aider/agent-builder.js +2 -3
  131. package/dist/integrations/harnesses/aider/index.js +0 -1
  132. package/dist/integrations/harnesses/amazonq/agent-builder.js +2 -3
  133. package/dist/integrations/harnesses/amazonq/index.js +0 -1
  134. package/dist/integrations/harnesses/claude/agent-builder.js +2 -3
  135. package/dist/integrations/harnesses/claude/index.js +0 -2
  136. package/dist/integrations/harnesses/codex/agent-builder.js +2 -3
  137. package/dist/integrations/harnesses/codex/index.js +0 -1
  138. package/dist/integrations/harnesses/copilot/agent-builder.js +2 -3
  139. package/dist/integrations/harnesses/copilot/index.js +0 -1
  140. package/dist/integrations/harnesses/gemini/agent-builder.js +2 -3
  141. package/dist/integrations/harnesses/gemini/index.js +0 -1
  142. package/dist/integrations/harnesses/index.js +1 -24
  143. package/dist/integrations/harnesses/opencode/agent-builder.js +2 -3
  144. package/dist/integrations/harnesses/opencode/index.js +0 -6
  145. package/dist/integrations/harnesses/opencode-sdk/harness.js +1 -6
  146. package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +274 -191
  147. package/dist/integrations/harnesses/openhands/agent-builder.js +2 -3
  148. package/dist/integrations/harnesses/openhands/index.js +0 -1
  149. package/dist/integrations/harnesses/pi/agent-builder.js +2 -3
  150. package/dist/integrations/harnesses/pi/index.js +0 -1
  151. package/dist/integrations/harnesses/types.js +1 -32
  152. package/dist/integrations/lockfile.js +32 -21
  153. package/dist/llm/client.js +48 -14
  154. package/dist/llm/feature-gate.js +15 -47
  155. package/dist/llm/graph-extract.js +1 -1
  156. package/dist/llm/index-passes.js +8 -42
  157. package/dist/llm/memory-infer-impl.js +1 -1
  158. package/dist/llm/usage-persist.js +4 -0
  159. package/dist/llm/usage-telemetry.js +35 -5
  160. package/dist/output/shapes/helpers.js +2 -1
  161. package/dist/output/shapes/passthrough.js +2 -0
  162. package/dist/output/text/helpers.js +3 -1
  163. package/dist/schemas/akm-config.json +11013 -8600
  164. package/dist/schemas/akm-task.json +87 -0
  165. package/dist/schemas/akm-workflow.json +57 -13
  166. package/dist/scripts/migrate-storage.js +8591 -509
  167. package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +8623 -484
  168. package/dist/setup/detected-engines.js +142 -0
  169. package/dist/setup/engine-config.js +89 -0
  170. package/dist/setup/setup.js +236 -132
  171. package/dist/setup/steps/connection.js +61 -32
  172. package/dist/setup/steps/platforms.js +4 -4
  173. package/dist/setup/steps.js +3 -2
  174. package/dist/storage/database.js +13 -1
  175. package/dist/storage/engines/sqlite-migrations.js +1 -0
  176. package/dist/storage/repositories/improve-runs-repository.js +5 -5
  177. package/dist/storage/repositories/task-history-repository.js +78 -0
  178. package/dist/storage/repositories/workflow-runs-repository.js +9 -8
  179. package/dist/tasks/parser.js +138 -52
  180. package/dist/tasks/runner.js +71 -75
  181. package/dist/tasks/schema.js +1 -1
  182. package/dist/tasks/validator.js +11 -6
  183. package/dist/wiki/wiki.js +9 -8
  184. package/dist/workflows/authoring/workflow-program-template.yaml +3 -3
  185. package/dist/workflows/concurrency-policy.js +15 -0
  186. package/dist/workflows/db.js +65 -13
  187. package/dist/workflows/exec/brief.js +18 -24
  188. package/dist/workflows/exec/frozen-judge.js +47 -0
  189. package/dist/workflows/exec/native-executor.js +124 -65
  190. package/dist/workflows/exec/report.js +93 -33
  191. package/dist/workflows/exec/run-workflow.js +38 -25
  192. package/dist/workflows/exec/scheduler.js +12 -41
  193. package/dist/workflows/exec/step-work.js +91 -35
  194. package/dist/workflows/ir/compile.js +13 -26
  195. package/dist/workflows/ir/freeze.js +243 -0
  196. package/dist/workflows/ir/plan-hash.js +40 -5
  197. package/dist/workflows/ir/schema.js +542 -1
  198. package/dist/workflows/parser.js +7 -0
  199. package/dist/workflows/program/parser.js +132 -23
  200. package/dist/workflows/program/project.js +3 -4
  201. package/dist/workflows/program/schema.js +2 -2
  202. package/dist/workflows/resource-limits.js +20 -0
  203. package/dist/workflows/runtime/plan-classifier.js +187 -0
  204. package/dist/workflows/runtime/runs.js +54 -47
  205. package/dist/workflows/runtime/workflow-asset-loader.js +0 -22
  206. package/dist/workflows/validator.js +25 -0
  207. package/docs/data-and-telemetry.md +2 -2
  208. package/docs/migration/release-notes/0.6.0.md +1 -1
  209. package/docs/migration/release-notes/0.7.0.md +5 -4
  210. package/docs/migration/v0.8-to-v0.9.md +401 -0
  211. package/package.json +4 -2
  212. package/schemas/akm-config.json +16638 -0
  213. package/schemas/akm-task.json +87 -0
  214. package/schemas/akm-workflow.json +372 -0
  215. package/dist/commands/improve/improve-profiles.js +0 -168
  216. package/dist/core/config/config-migration.js +0 -602
  217. package/dist/core/deep-merge.js +0 -38
  218. package/dist/llm/call-ai.js +0 -62
  219. package/dist/setup/legacy-config.js +0 -106
  220. package/docs/README.md +0 -104
  221. /package/dist/assets/{profiles → improve-strategies}/catchup.json +0 -0
  222. /package/dist/assets/{profiles → improve-strategies}/consolidate.json +0 -0
  223. /package/dist/assets/{profiles → improve-strategies}/frequent.json +0 -0
  224. /package/dist/assets/{profiles → improve-strategies}/memory-focus.json +0 -0
  225. /package/dist/assets/{profiles → improve-strategies}/quick.json +0 -0
  226. /package/dist/assets/{profiles → improve-strategies}/recombine-only.json +0 -0
  227. /package/dist/assets/{profiles → improve-strategies}/synthesize.json +0 -0
  228. /package/dist/assets/{profiles → improve-strategies}/thorough.json +0 -0
@@ -34,8 +34,7 @@
34
34
  *
35
35
  * The builder's `platform` stays `'claude'` (the canonical harness id).
36
36
  */
37
- import { assertNotFlag, normalizeTools, } from "../../agent/builder-shared.js";
38
- import { resolveModel } from "../../agent/model-aliases.js";
37
+ import { assertNotFlag, normalizeTools, resolveDispatchModel, } from "../../agent/builder-shared.js";
39
38
  /**
40
39
  * Assemble the positional prompt: the task prompt and — when a schema is
41
40
  * requested — the same schema directive the workflow engine's prompt assembly
@@ -67,7 +66,7 @@ export const claudeBuilder = {
67
66
  args.push("--system-prompt", req.systemPrompt);
68
67
  }
69
68
  if (req.model) {
70
- const resolved = resolveModel(req.model, "claude", profile.modelAliases, profile.globalModelAliases);
69
+ const resolved = resolveDispatchModel(req, profile, "claude");
71
70
  args.push("--model", resolved);
72
71
  }
73
72
  if (req.tools) {
@@ -16,7 +16,6 @@ function caps(c) {
16
16
  detection: false,
17
17
  configImport: false,
18
18
  runtimeIdentity: false,
19
- v1Migration: false,
20
19
  ...c,
21
20
  };
22
21
  }
@@ -63,6 +62,5 @@ export class ClaudeHarness extends BaseHarness {
63
62
  detection: true,
64
63
  configImport: true,
65
64
  runtimeIdentity: true,
66
- v1Migration: true,
67
65
  });
68
66
  }
@@ -52,8 +52,7 @@
52
52
  import { mkdtempSync, writeFileSync } from "node:fs";
53
53
  import { tmpdir } from "node:os";
54
54
  import { join } from "node:path";
55
- import { assertNotFlag } from "../../agent/builder-shared.js";
56
- import { resolveModel } from "../../agent/model-aliases.js";
55
+ import { assertNotFlag, resolveDispatchModel } from "../../agent/builder-shared.js";
57
56
  /**
58
57
  * Write a node's JSON Schema to a fresh temp file for `--output-schema`.
59
58
  *
@@ -119,7 +118,7 @@ export const codexBuilder = {
119
118
  const sandboxArgs = ensureSandboxFlags(extra);
120
119
  const args = ["exec", ...sandboxArgs];
121
120
  if (req.model) {
122
- const resolved = resolveModel(req.model, "codex", profile.modelAliases, profile.globalModelAliases);
121
+ const resolved = resolveDispatchModel(req, profile, "codex");
123
122
  args.push("--model", resolved);
124
123
  }
125
124
  // JSONL event stream on stdout — the codex result extractor's input.
@@ -24,7 +24,6 @@ function caps(c) {
24
24
  detection: false,
25
25
  configImport: false,
26
26
  runtimeIdentity: false,
27
- v1Migration: false,
28
27
  ...c,
29
28
  };
30
29
  }
@@ -44,8 +44,7 @@
44
44
  * follow-up integration task. Exported standalone so that task only adds a
45
45
  * registry entry.
46
46
  */
47
- import { assertNotFlag } from "../../agent/builder-shared.js";
48
- import { resolveModel } from "../../agent/model-aliases.js";
47
+ import { assertNotFlag, resolveDispatchModel, } from "../../agent/builder-shared.js";
49
48
  /** Canonical harness/platform id used for model-alias resolution. */
50
49
  export const COPILOT_PLATFORM = "copilot";
51
50
  /**
@@ -94,7 +93,7 @@ export const copilotBuilder = {
94
93
  assertNotFlag(req.model, "model");
95
94
  const args = [...profile.args];
96
95
  if (req.model) {
97
- const resolved = resolveModel(req.model, COPILOT_PLATFORM, profile.modelAliases, profile.globalModelAliases);
96
+ const resolved = resolveDispatchModel(req, profile, COPILOT_PLATFORM);
98
97
  args.push("--model", resolved);
99
98
  }
100
99
  if (req.tools) {
@@ -25,7 +25,6 @@ function caps(c) {
25
25
  detection: false,
26
26
  configImport: false,
27
27
  runtimeIdentity: false,
28
- v1Migration: false,
29
28
  ...c,
30
29
  };
31
30
  }
@@ -49,8 +49,7 @@
49
49
  * follow-up integration task. Exported standalone so that task only adds a
50
50
  * registry entry.
51
51
  */
52
- import { assertNotFlag } from "../../agent/builder-shared.js";
53
- import { resolveModel } from "../../agent/model-aliases.js";
52
+ import { assertNotFlag, resolveDispatchModel, } from "../../agent/builder-shared.js";
54
53
  /** Canonical harness/platform id used for model-alias resolution. */
55
54
  export const GEMINI_PLATFORM = "gemini";
56
55
  /**
@@ -99,7 +98,7 @@ export const geminiBuilder = {
99
98
  assertNotFlag(req.model, "model");
100
99
  const args = [...profile.args];
101
100
  if (req.model) {
102
- const resolved = resolveModel(req.model, GEMINI_PLATFORM, profile.modelAliases, profile.globalModelAliases);
101
+ const resolved = resolveDispatchModel(req, profile, GEMINI_PLATFORM);
103
102
  args.push("--model", resolved);
104
103
  }
105
104
  if (req.tools) {
@@ -24,7 +24,6 @@ function caps(c) {
24
24
  detection: false,
25
25
  configImport: false,
26
26
  runtimeIdentity: false,
27
- v1Migration: false,
28
27
  ...c,
29
28
  };
30
29
  }
@@ -82,7 +82,7 @@ const HARNESS_BY_ANY_ID = (() => {
82
82
  })();
83
83
  /**
84
84
  * Canonical, ordered list of valid harness / platform ids. The Zod
85
- * `AgentPlatformSchema` enum, the `AgentProfileConfig` platform union, and
85
+ * `AgentPlatformSchema` enum, the agent-engine platform union, and
86
86
  * setup's `DetectedHarness` union all derive from this so they cannot drift.
87
87
  */
88
88
  export const VALID_HARNESS_IDS = Object.freeze(HARNESS_REGISTRY.map((h) => h.id));
@@ -112,29 +112,6 @@ export function getHarness(id) {
112
112
  export function normalizeHarnessId(id) {
113
113
  return HARNESS_BY_ANY_ID.get(id)?.id ?? id;
114
114
  }
115
- /**
116
- * Resolve a legacy v1 agent-profile name to its v2 platform id (#566).
117
- *
118
- * v1 agent profiles never carried an explicit `platform`; it had to be inferred
119
- * from the profile name. This is the SINGLE registry-backed resolver that
120
- * replaces both the old standalone `guessAgentPlatform()` in config-migration
121
- * and the `name.includes("claude") ? "claude" : "opencode"` heuristic in setup.
122
- * Each harness owns its own `matchesV1ProfileName()`; an unknown name matches no
123
- * harness and returns `undefined`, so the caller drops it instead of silently
124
- * defaulting to `'opencode'`.
125
- *
126
- * Harnesses are consulted most-specific-id-first (longest id wins) so a
127
- * decorated name like `"opencode-sdk-fast"` resolves to `'opencode-sdk'` rather
128
- * than being over-matched by OpenCode's `"opencode"` prefix.
129
- */
130
- const V1_RESOLUTION_ORDER = [...HARNESS_REGISTRY].sort((a, b) => b.id.length - a.id.length);
131
- export function v1ProfilePlatform(name) {
132
- for (const h of V1_RESOLUTION_ORDER) {
133
- if (h.matchesV1ProfileName(name))
134
- return h.id;
135
- }
136
- return undefined;
137
- }
138
115
  /**
139
116
  * Default agent-profile name for a detected harness id (#566).
140
117
  *
@@ -14,8 +14,7 @@
14
14
  * pre-migration `opencodeBuilder`. The builder's `platform` stays `'opencode'`
15
15
  * (the canonical harness id).
16
16
  */
17
- import { assertNotFlag } from "../../agent/builder-shared.js";
18
- import { resolveModel } from "../../agent/model-aliases.js";
17
+ import { assertNotFlag, resolveDispatchModel } from "../../agent/builder-shared.js";
19
18
  /**
20
19
  * OpenCode builder.
21
20
  * Command shape: opencode run [--system-prompt "..."] [--model <m>] "<prompt>"
@@ -33,7 +32,7 @@ export const opencodeBuilder = {
33
32
  args.push("--system-prompt", req.systemPrompt);
34
33
  }
35
34
  if (req.model) {
36
- const resolved = resolveModel(req.model, "opencode", profile.modelAliases, profile.globalModelAliases);
35
+ const resolved = resolveDispatchModel(req, profile, "opencode");
37
36
  args.push("--model", resolved);
38
37
  }
39
38
  args.push("--");
@@ -14,7 +14,6 @@ function caps(c) {
14
14
  detection: false,
15
15
  configImport: false,
16
16
  runtimeIdentity: false,
17
- v1Migration: false,
18
17
  ...c,
19
18
  };
20
19
  }
@@ -30,10 +29,6 @@ export class OpencodeHarness extends BaseHarness {
30
29
  // Home-relative config dir scanned by `akm setup` (#567). OpenCode has a
31
30
  // session-log provider, so offering it as a stash source is functional.
32
31
  setupDetectionDir = ".config/opencode";
33
- // Decorated v1 profile names like "opencode-fast" still belong to OpenCode.
34
- // `v1ProfilePlatform()` resolves most-specific-id-first, so "opencode-sdk-*"
35
- // is claimed by OpencodeSdkHarness before this prefix can over-match it.
36
- v1ProfilePrefixes = ["opencode"];
37
32
  agentBuilder = opencodeBuilder;
38
33
  // ── Workflow-engine descriptor (plan §"Capability matrix", P2) ────────────
39
34
  // This entry is the CLI spawn path (`opencode run …`): akm launches the
@@ -55,6 +50,5 @@ export class OpencodeHarness extends BaseHarness {
55
50
  detection: true,
56
51
  configImport: true,
57
52
  runtimeIdentity: true,
58
- v1Migration: true,
59
53
  });
60
54
  }
@@ -29,22 +29,18 @@ function caps(c) {
29
29
  detection: false,
30
30
  configImport: false,
31
31
  runtimeIdentity: false,
32
- v1Migration: false,
33
32
  ...c,
34
33
  };
35
34
  }
36
35
  /**
37
36
  * OpenCode SDK (embedded-SDK dispatch path).
38
37
  *
39
- * Dispatch-only: no native session logs, but detected at setup and migrated
40
- * from v1 profile names.
38
+ * Dispatch-only: no native session logs, but detected at setup.
41
39
  */
42
40
  export class OpencodeSdkHarness extends BaseHarness {
43
41
  id = "opencode-sdk";
44
42
  displayName = "OpenCode SDK";
45
43
  aliases = [];
46
- // Decorated v1 profile names like "opencode-sdk-fast" belong to the SDK path.
47
- v1ProfilePrefixes = ["opencode-sdk"];
48
44
  // ── Workflow-engine descriptor (plan §"Capability matrix", P2) ────────────
49
45
  // Embedded-SDK dispatch on this machine ⇒ local-runner (the matrix's
50
46
  // "local (sdk/cli)" row, SDK half).
@@ -60,6 +56,5 @@ export class OpencodeSdkHarness extends BaseHarness {
60
56
  capabilities = caps({
61
57
  agentDispatch: true,
62
58
  detection: true,
63
- v1Migration: true,
64
59
  });
65
60
  }