opencode-akane 0.1.4 → 0.1.6

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.
package/README.md CHANGED
@@ -73,12 +73,16 @@ For package-based installation, publish this repository to npm and add it to the
73
73
  Akane still reads its runtime config from `~/.config/opencode/akane.json`.
74
74
  If that file does not exist yet, the plugin now bootstraps it automatically on first load with the default config.
75
75
  You only need to edit it when you want to override the default role or artifact settings.
76
- When `oh-my-opencode` is installed, Akane now prefers OMO agents such as `prometheus`, `atlas`, `momus`, `oracle`, and `sisyphus`, then falls back to direct model routing when those agents are unavailable.
76
+ By default, Akane stays model-first and does not depend on `oh-my-opencode`.
77
+ If you want to opt into OMO agents, set `workflow.preferAgents` to `true`.
77
78
 
78
79
  `akane.json` supports both model routing and agent routing:
79
80
 
80
81
  ```json
81
82
  {
83
+ "workflow": {
84
+ "preferAgents": true
85
+ },
82
86
  "roleAgents": {
83
87
  "planner": "prometheus",
84
88
  "plan_reviewer": "hephaestus",
package/dist/config.js CHANGED
@@ -50,6 +50,7 @@ export function defaultAkaneConfig(configPath = DEFAULT_GLOBAL_CONFIG_PATH) {
50
50
  },
51
51
  workflow: {
52
52
  stageOrder: [...DEFAULT_STAGE_ORDER],
53
+ preferAgents: false,
53
54
  },
54
55
  roleAgents: { ...DEFAULT_ROLE_AGENTS },
55
56
  roles: { ...DEFAULT_ROLE_MODELS },
@@ -140,6 +141,10 @@ export function mergeAkaneConfig(base, overrides) {
140
141
  },
141
142
  workflow: {
142
143
  stageOrder: normalizeStageOrder(isRecord(overrides.workflow) ? overrides.workflow.stageOrder : undefined, base.workflow.stageOrder),
144
+ preferAgents: isRecord(overrides.workflow) &&
145
+ typeof overrides.workflow.preferAgents === "boolean"
146
+ ? overrides.workflow.preferAgents
147
+ : base.workflow.preferAgents,
143
148
  },
144
149
  roleAgents: normalizeRoleAgents(overrides.roleAgents, base.roleAgents),
145
150
  roles: normalizeRoles(overrides.roles, base.roles),
package/dist/types.d.ts CHANGED
@@ -16,6 +16,7 @@ export interface AkaneConfig {
16
16
  };
17
17
  workflow: {
18
18
  stageOrder: AkaneStageId[];
19
+ preferAgents: boolean;
19
20
  };
20
21
  roleAgents: AkaneRoleAgents;
21
22
  roles: AkaneRoles;
package/dist/workflow.js CHANGED
@@ -34,8 +34,10 @@ const DEFAULT_ROLE_AGENT_CANDIDATES = {
34
34
  reviewer_claude: ["oracle", "general"],
35
35
  synthesizer: ["sisyphus", "Sisyphus (Ultraworker)", "general"],
36
36
  };
37
- const IMPLEMENT_TIMEOUT_MS = 15 * 60 * 1000;
38
- const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000;
37
+ const PLAN_TIMEOUT_MS = 12 * 60 * 1000;
38
+ const PLAN_REVIEW_TIMEOUT_MS = 8 * 60 * 1000;
39
+ const IMPLEMENT_TIMEOUT_MS = 20 * 60 * 1000;
40
+ const DEFAULT_TIMEOUT_MS = 8 * 60 * 1000;
39
41
  const POLL_INTERVAL_MS = 800;
40
42
  const STABILITY_POLLS_REQUIRED = 2;
41
43
  function nowIso() {
@@ -115,6 +117,9 @@ function makeToolRestrictions(allowWorkspaceMutation) {
115
117
  return restrictions;
116
118
  }
117
119
  async function resolveAgentName(client, directory, role, config) {
120
+ if (!config.workflow.preferAgents) {
121
+ return undefined;
122
+ }
118
123
  const candidates = [
119
124
  config.roleAgents[role],
120
125
  ...DEFAULT_ROLE_AGENT_CANDIDATES[role],
@@ -412,6 +417,7 @@ export async function executePlanStage(input) {
412
417
  .filter(Boolean)
413
418
  .join("\n"),
414
419
  allowWorkspaceMutation: false,
420
+ timeoutMs: PLAN_TIMEOUT_MS,
415
421
  });
416
422
  const content = renderStageDocument({
417
423
  stage: result.stage,
@@ -462,6 +468,7 @@ export async function executePlanReviewStage(input) {
462
468
  .filter(Boolean)
463
469
  .join("\n"),
464
470
  allowWorkspaceMutation: false,
471
+ timeoutMs: PLAN_REVIEW_TIMEOUT_MS,
465
472
  });
466
473
  const content = renderStageDocument({
467
474
  stage: result.stage,
@@ -16,6 +16,7 @@
16
16
  }
17
17
  },
18
18
  "workflow": {
19
+ "preferAgents": false,
19
20
  "stageOrder": [
20
21
  "plan",
21
22
  "plan-review",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-akane",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Akane orchestration plugin for OpenCode",
5
5
  "license": "MIT",
6
6
  "type": "module",