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 +5 -1
- package/dist/config.js +5 -0
- package/dist/types.d.ts +1 -0
- package/dist/workflow.js +9 -2
- package/examples/akane.example.json +1 -0
- package/package.json +1 -1
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
|
-
|
|
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
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
|
|
38
|
-
const
|
|
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,
|