@jmanuelcorral/openteam 0.16.3 → 0.17.0
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/.opencode/openteam.example.json +5 -3
- package/README.es.md +1 -1
- package/README.md +1 -1
- package/dist/certificates/graph-release-certificate.json +2 -2
- package/dist/certificates/graph-shadow-certificate.json +2 -2
- package/dist/cli.js +98 -23
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/setup.d.ts +10 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/config/errors.d.ts.map +1 -1
- package/dist/config/graphFeatureGate.d.ts +10 -0
- package/dist/config/graphFeatureGate.d.ts.map +1 -1
- package/dist/config/resolve.d.ts +3 -3
- package/dist/config/schema.d.ts +7 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -22
- package/dist/orchestrator/roles.d.ts +28 -0
- package/dist/orchestrator/roles.d.ts.map +1 -1
- package/dist/orchestrator/runtimeSelection.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -40,7 +40,9 @@
|
|
|
40
40
|
"defaultModel": {
|
|
41
41
|
"providerID": "lemonade",
|
|
42
42
|
"modelID": "Qwen3-Coder-30B-A3B-Instruct-GGUF"
|
|
43
|
-
}
|
|
43
|
+
},
|
|
44
|
+
"thinkingModel": "Qwen3-30B-A3B-Thinking-GGUF",
|
|
45
|
+
"coderModel": "Qwen3-Coder-30B-A3B-Instruct-GGUF"
|
|
44
46
|
},
|
|
45
47
|
{
|
|
46
48
|
"id": "foundry-local",
|
|
@@ -61,9 +63,9 @@
|
|
|
61
63
|
},
|
|
62
64
|
"privacyMode": "forceLocalOnSensitive",
|
|
63
65
|
"graph": {
|
|
64
|
-
"mode": "
|
|
66
|
+
"mode": "active",
|
|
65
67
|
"killSwitch": false,
|
|
66
|
-
"operatorApproval":
|
|
68
|
+
"operatorApproval": true
|
|
67
69
|
},
|
|
68
70
|
"orchestrator": {
|
|
69
71
|
"roles": {
|
package/README.es.md
CHANGED
|
@@ -824,7 +824,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
|
|
|
824
824
|
|
|
825
825
|
| Superficie | Versión / contrato |
|
|
826
826
|
| --- | --- |
|
|
827
|
-
| openteam | `0.
|
|
827
|
+
| openteam | `0.17.0`; versión actual del paquete |
|
|
828
828
|
| `@opencode-ai/plugin` | `1.18.19` |
|
|
829
829
|
| `@opencode-ai/sdk` | `1.18.19` |
|
|
830
830
|
| Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
|
package/README.md
CHANGED
|
@@ -713,7 +713,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
|
|
|
713
713
|
|
|
714
714
|
| Surface | Version / contract |
|
|
715
715
|
| --- | --- |
|
|
716
|
-
| openteam | `0.
|
|
716
|
+
| openteam | `0.17.0`; current package version |
|
|
717
717
|
| `@opencode-ai/plugin` | `1.18.19` |
|
|
718
718
|
| `@opencode-ai/sdk` | `1.18.19` |
|
|
719
719
|
| Routing hook | `chat.message`; not `chat.params` for model changes |
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"idempotent": true
|
|
35
35
|
},
|
|
36
36
|
"performance": {
|
|
37
|
-
"p95Millis": 0.
|
|
37
|
+
"p95Millis": 0.4712040000000002,
|
|
38
38
|
"budgetMillis": 50,
|
|
39
39
|
"samples": 100
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
"verdict": "pass",
|
|
43
43
|
"failedGates": [],
|
|
44
|
-
"digest": "
|
|
44
|
+
"digest": "c2bae4d5fdfb94e26393cce05e69eacb8829647b091f82d64ce7c6d1a956c891"
|
|
45
45
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"rawFindings": 0
|
|
21
21
|
},
|
|
22
22
|
"overhead": {
|
|
23
|
-
"p95Millis": 0.
|
|
23
|
+
"p95Millis": 0.34261300000000006,
|
|
24
24
|
"budgetMillis": 25,
|
|
25
25
|
"samples": 1000
|
|
26
26
|
},
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
},
|
|
36
36
|
"verdict": "pass",
|
|
37
37
|
"failedGates": [],
|
|
38
|
-
"digest": "
|
|
38
|
+
"digest": "2ceb71a2556e57ea51007d88b1e94bf0081ae975eb756b1fad05641bb4515332"
|
|
39
39
|
}
|
package/dist/cli.js
CHANGED
|
@@ -19,7 +19,7 @@ import { randomBytes } from "node:crypto";
|
|
|
19
19
|
|
|
20
20
|
// src/config/resolve.ts
|
|
21
21
|
function resolveGraphConfig(config, source) {
|
|
22
|
-
const configuredMode = config.graph?.mode ?? "
|
|
22
|
+
const configuredMode = config.graph?.mode ?? "active";
|
|
23
23
|
const killSwitch = config.graph?.killSwitch ?? false;
|
|
24
24
|
const effectiveMode = killSwitch ? "off" : configuredMode;
|
|
25
25
|
return {
|
|
@@ -129,7 +129,8 @@ var AgentRoleProfileSchema = z.object({
|
|
|
129
129
|
localFirst: z.boolean(),
|
|
130
130
|
requiresLocalRuntime: z.boolean().optional(),
|
|
131
131
|
localRuntimes: z.array(z.string().min(1)).optional(),
|
|
132
|
-
localModels: z.record(z.string().min(1), z.string().min(1)).optional()
|
|
132
|
+
localModels: z.record(z.string().min(1), z.string().min(1)).optional(),
|
|
133
|
+
localModelClass: z.enum(["thinking", "coder"]).optional()
|
|
133
134
|
}).strict();
|
|
134
135
|
var TEAM_ROLES = {
|
|
135
136
|
architect: {
|
|
@@ -140,7 +141,8 @@ var TEAM_ROLES = {
|
|
|
140
141
|
minCodeQualityTier: 5,
|
|
141
142
|
needsToolCallingByDefault: true,
|
|
142
143
|
preferredFrontierModels: ["auto"],
|
|
143
|
-
localFirst: false
|
|
144
|
+
localFirst: false,
|
|
145
|
+
localModelClass: "thinking"
|
|
144
146
|
},
|
|
145
147
|
integration: {
|
|
146
148
|
roleID: "integration",
|
|
@@ -150,7 +152,8 @@ var TEAM_ROLES = {
|
|
|
150
152
|
minCodeQualityTier: 4,
|
|
151
153
|
needsToolCallingByDefault: true,
|
|
152
154
|
preferredFrontierModels: ["auto"],
|
|
153
|
-
localFirst: false
|
|
155
|
+
localFirst: false,
|
|
156
|
+
localModelClass: "coder"
|
|
154
157
|
},
|
|
155
158
|
"local-runtime": {
|
|
156
159
|
roleID: "local-runtime",
|
|
@@ -160,7 +163,8 @@ var TEAM_ROLES = {
|
|
|
160
163
|
minCodeQualityTier: 4,
|
|
161
164
|
needsToolCallingByDefault: true,
|
|
162
165
|
preferredFrontierModels: ["auto"],
|
|
163
|
-
localFirst: true
|
|
166
|
+
localFirst: true,
|
|
167
|
+
localModelClass: "coder"
|
|
164
168
|
},
|
|
165
169
|
"routing-cost": {
|
|
166
170
|
roleID: "routing-cost",
|
|
@@ -170,7 +174,8 @@ var TEAM_ROLES = {
|
|
|
170
174
|
minCodeQualityTier: 4,
|
|
171
175
|
needsToolCallingByDefault: false,
|
|
172
176
|
preferredFrontierModels: ["auto"],
|
|
173
|
-
localFirst: true
|
|
177
|
+
localFirst: true,
|
|
178
|
+
localModelClass: "thinking"
|
|
174
179
|
},
|
|
175
180
|
scribe: {
|
|
176
181
|
roleID: "scribe",
|
|
@@ -203,7 +208,8 @@ var TEAM_ROLES = {
|
|
|
203
208
|
needsToolCallingByDefault: false,
|
|
204
209
|
preferredFrontierModels: [],
|
|
205
210
|
localFirst: true,
|
|
206
|
-
requiresLocalRuntime: true
|
|
211
|
+
requiresLocalRuntime: true,
|
|
212
|
+
localModelClass: "thinking"
|
|
207
213
|
},
|
|
208
214
|
tester: {
|
|
209
215
|
roleID: "tester",
|
|
@@ -213,7 +219,8 @@ var TEAM_ROLES = {
|
|
|
213
219
|
minCodeQualityTier: 3,
|
|
214
220
|
needsToolCallingByDefault: true,
|
|
215
221
|
preferredFrontierModels: ["auto"],
|
|
216
|
-
localFirst: true
|
|
222
|
+
localFirst: true,
|
|
223
|
+
localModelClass: "coder"
|
|
217
224
|
},
|
|
218
225
|
reviewer: {
|
|
219
226
|
roleID: "reviewer",
|
|
@@ -223,7 +230,8 @@ var TEAM_ROLES = {
|
|
|
223
230
|
minCodeQualityTier: 5,
|
|
224
231
|
needsToolCallingByDefault: false,
|
|
225
232
|
preferredFrontierModels: ["auto"],
|
|
226
|
-
localFirst: true
|
|
233
|
+
localFirst: true,
|
|
234
|
+
localModelClass: "coder"
|
|
227
235
|
}
|
|
228
236
|
};
|
|
229
237
|
var LEGACY_TEAM_ROLE_ALIASES = {
|
|
@@ -326,11 +334,11 @@ var GraphEngineSchema = z2.enum(["builtin", "langgraph"]);
|
|
|
326
334
|
var DEFAULT_GRAPH_JOURNAL_ROOT = ".opencode/openteam-local/graph/runs";
|
|
327
335
|
var DEFAULT_GRAPH_WORKTREES_DIR = ".opencode/openteam-local/graph/worktrees";
|
|
328
336
|
var GraphConfigSchema = z2.object({
|
|
329
|
-
mode: GraphModeSchema.default("
|
|
337
|
+
mode: GraphModeSchema.default("active"),
|
|
330
338
|
engine: GraphEngineSchema.optional(),
|
|
331
339
|
killSwitch: z2.boolean().default(false),
|
|
332
340
|
journalRoot: z2.string().min(1).default(DEFAULT_GRAPH_JOURNAL_ROOT),
|
|
333
|
-
operatorApproval: z2.boolean().default(
|
|
341
|
+
operatorApproval: z2.boolean().default(true),
|
|
334
342
|
worktrees: z2.object({
|
|
335
343
|
enabled: z2.boolean().default(false)
|
|
336
344
|
}).strict().default({ enabled: false })
|
|
@@ -424,6 +432,9 @@ var OrchestratorRolesSchema = z2.record(z2.string().min(1), z2.unknown()).defaul
|
|
|
424
432
|
if (parsed.data.localModels !== undefined) {
|
|
425
433
|
profile.localModels = parsed.data.localModels;
|
|
426
434
|
}
|
|
435
|
+
if (parsed.data.localModelClass !== undefined) {
|
|
436
|
+
profile.localModelClass = parsed.data.localModelClass;
|
|
437
|
+
}
|
|
427
438
|
parsedRoles[roleID] = profile;
|
|
428
439
|
}
|
|
429
440
|
return parsedRoles;
|
|
@@ -450,7 +461,9 @@ var LocalRuntimeSchema = z2.object({
|
|
|
450
461
|
discovery: z2.enum(["cli", "sdk", "manual"]).optional(),
|
|
451
462
|
defaultModel: ModelRefSchema,
|
|
452
463
|
maxConcurrency: z2.number().int().positive().optional(),
|
|
453
|
-
reservedInteractiveSlots: z2.number().int().nonnegative().optional()
|
|
464
|
+
reservedInteractiveSlots: z2.number().int().nonnegative().optional(),
|
|
465
|
+
thinkingModel: z2.string().min(1).optional(),
|
|
466
|
+
coderModel: z2.string().min(1).optional()
|
|
454
467
|
}).strict().superRefine((runtime, ctx) => {
|
|
455
468
|
const resolvedKind = runtime.kind ?? runtime.id;
|
|
456
469
|
if (!LocalRuntimeKindSchema.safeParse(resolvedKind).success) {
|
|
@@ -576,10 +589,10 @@ var OpenTeamConfigObjectSchema = z2.object({
|
|
|
576
589
|
storage: StorageConfigSchema,
|
|
577
590
|
memory: MemoryConfigSchema.optional(),
|
|
578
591
|
graph: GraphConfigSchema.default({
|
|
579
|
-
mode: "
|
|
592
|
+
mode: "active",
|
|
580
593
|
killSwitch: false,
|
|
581
594
|
journalRoot: DEFAULT_GRAPH_JOURNAL_ROOT,
|
|
582
|
-
operatorApproval:
|
|
595
|
+
operatorApproval: true,
|
|
583
596
|
worktrees: { enabled: false }
|
|
584
597
|
}),
|
|
585
598
|
orchestrator: OrchestratorConfigSchema.optional()
|
|
@@ -1604,9 +1617,19 @@ function configuredRuntime(runtimeId, config) {
|
|
|
1604
1617
|
function runtimeIdOfModel(model, config) {
|
|
1605
1618
|
return config.local.runtimes.find((runtime) => sameModel(runtime.defaultModel, model))?.id;
|
|
1606
1619
|
}
|
|
1607
|
-
function roleLocalModel(role, runtimeId, fallback) {
|
|
1620
|
+
function roleLocalModel(role, runtimeId, fallback, runtime) {
|
|
1608
1621
|
const pinned = role.localModels?.[runtimeId];
|
|
1609
|
-
|
|
1622
|
+
if (pinned !== undefined) {
|
|
1623
|
+
return { ...fallback, modelID: pinned };
|
|
1624
|
+
}
|
|
1625
|
+
const classModel = runtimeClassModel(role.localModelClass, runtime);
|
|
1626
|
+
return classModel === undefined ? fallback : { ...fallback, modelID: classModel };
|
|
1627
|
+
}
|
|
1628
|
+
function runtimeClassModel(modelClass, runtime) {
|
|
1629
|
+
if (modelClass === undefined || runtime === undefined) {
|
|
1630
|
+
return;
|
|
1631
|
+
}
|
|
1632
|
+
return modelClass === "thinking" ? runtime.thinkingModel : runtime.coderModel;
|
|
1610
1633
|
}
|
|
1611
1634
|
function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
1612
1635
|
if (decision2.routeKind !== "local") {
|
|
@@ -1622,7 +1645,7 @@ function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
|
1622
1645
|
if (runtime === undefined) {
|
|
1623
1646
|
continue;
|
|
1624
1647
|
}
|
|
1625
|
-
const model = roleLocalModel(role, runtimeId, runtime.defaultModel);
|
|
1648
|
+
const model = roleLocalModel(role, runtimeId, runtime.defaultModel, runtime);
|
|
1626
1649
|
return {
|
|
1627
1650
|
runtimeId,
|
|
1628
1651
|
decision: { ...decision2, selected: model }
|
|
@@ -1631,7 +1654,7 @@ function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
|
1631
1654
|
}
|
|
1632
1655
|
const resolvedRuntimeId = runtimeIdOfModel(decision2.selected, config);
|
|
1633
1656
|
if (resolvedRuntimeId !== undefined) {
|
|
1634
|
-
const pinned = roleLocalModel(role, resolvedRuntimeId, decision2.selected);
|
|
1657
|
+
const pinned = roleLocalModel(role, resolvedRuntimeId, decision2.selected, configuredRuntime(resolvedRuntimeId, config));
|
|
1635
1658
|
if (pinned !== decision2.selected) {
|
|
1636
1659
|
return {
|
|
1637
1660
|
runtimeId: resolvedRuntimeId,
|
|
@@ -3079,7 +3102,9 @@ var KNOWN_CONFIG_KEYS_BY_PATH = new Map([
|
|
|
3079
3102
|
"discovery",
|
|
3080
3103
|
"defaultModel",
|
|
3081
3104
|
"maxConcurrency",
|
|
3082
|
-
"reservedInteractiveSlots"
|
|
3105
|
+
"reservedInteractiveSlots",
|
|
3106
|
+
"thinkingModel",
|
|
3107
|
+
"coderModel"
|
|
3083
3108
|
]
|
|
3084
3109
|
],
|
|
3085
3110
|
["local.runtimes[].defaultModel", MODEL_REF_KEYS],
|
|
@@ -11001,6 +11026,22 @@ function renderConsoleStatus(console_) {
|
|
|
11001
11026
|
}
|
|
11002
11027
|
|
|
11003
11028
|
// src/commands/doctor.ts
|
|
11029
|
+
function runtimeClassLine(runtime) {
|
|
11030
|
+
if (runtime === undefined) {
|
|
11031
|
+
return;
|
|
11032
|
+
}
|
|
11033
|
+
const thinking = runtime.thinkingModel;
|
|
11034
|
+
const coder = runtime.coderModel;
|
|
11035
|
+
if (thinking === undefined && coder === undefined) {
|
|
11036
|
+
return;
|
|
11037
|
+
}
|
|
11038
|
+
const parts = [
|
|
11039
|
+
`thinking ${thinking ?? "(default)"}`,
|
|
11040
|
+
`coder ${coder ?? "(default)"}`,
|
|
11041
|
+
`default ${runtime.defaultModel.modelID}`
|
|
11042
|
+
];
|
|
11043
|
+
return ` ↳ ${parts.join(" · ")}`;
|
|
11044
|
+
}
|
|
11004
11045
|
function runtimeLine(snapshot, runtime) {
|
|
11005
11046
|
const mark = snapshot.reachable ? "✓" : "✗";
|
|
11006
11047
|
const detail = snapshot.reachable ? `${snapshot.models.length} model(s)` : snapshot.error ?? "unreachable";
|
|
@@ -11257,7 +11298,12 @@ function renderDoctor(input) {
|
|
|
11257
11298
|
lines.push(" (no runtime enabled)");
|
|
11258
11299
|
} else {
|
|
11259
11300
|
for (const snapshot of input.snapshots) {
|
|
11260
|
-
|
|
11301
|
+
const runtime = enabledRuntimes.find((r) => r.id === snapshot.id);
|
|
11302
|
+
lines.push(runtimeLine(snapshot, runtime));
|
|
11303
|
+
const classLine = runtimeClassLine(runtime);
|
|
11304
|
+
if (classLine !== undefined) {
|
|
11305
|
+
lines.push(classLine);
|
|
11306
|
+
}
|
|
11261
11307
|
}
|
|
11262
11308
|
}
|
|
11263
11309
|
for (const snapshot of input.snapshots) {
|
|
@@ -11993,6 +12039,12 @@ function buildOpenTeamConfig(answers) {
|
|
|
11993
12039
|
},
|
|
11994
12040
|
maxConcurrency: choice.maxConcurrency ?? DEFAULT_LOCAL_MAX_CONCURRENCY
|
|
11995
12041
|
};
|
|
12042
|
+
if (choice.thinkingModelID !== undefined && choice.thinkingModelID !== choice.defaultModelID) {
|
|
12043
|
+
runtime.thinkingModel = choice.thinkingModelID;
|
|
12044
|
+
}
|
|
12045
|
+
if (choice.coderModelID !== undefined && choice.coderModelID !== choice.defaultModelID) {
|
|
12046
|
+
runtime.coderModel = choice.coderModelID;
|
|
12047
|
+
}
|
|
11996
12048
|
if (choice.kind !== undefined && choice.kind !== choice.id) {
|
|
11997
12049
|
runtime.kind = choice.kind;
|
|
11998
12050
|
}
|
|
@@ -12023,7 +12075,7 @@ function buildOpenTeamConfig(answers) {
|
|
|
12023
12075
|
},
|
|
12024
12076
|
local: { runtimes },
|
|
12025
12077
|
privacyMode: answers.privacyMode,
|
|
12026
|
-
graph: { mode: "
|
|
12078
|
+
graph: { mode: "active" }
|
|
12027
12079
|
});
|
|
12028
12080
|
}
|
|
12029
12081
|
function buildOpencodeConfig(answers) {
|
|
@@ -12270,13 +12322,36 @@ async function resolveRuntimeConnection(deps, meta, info) {
|
|
|
12270
12322
|
}
|
|
12271
12323
|
return { baseURL, models };
|
|
12272
12324
|
}
|
|
12325
|
+
async function chooseClassModel(prompt, models, meta, defaultModelID, modelClass) {
|
|
12326
|
+
const label = modelClass === "thinking" ? `Thinking model for ${meta.label} (design, analysis, review reasoning)` : `Coder model for ${meta.label} (writing and editing code)`;
|
|
12327
|
+
if (models.length === 0) {
|
|
12328
|
+
const raw = await prompt.text({
|
|
12329
|
+
message: `${label} — enter to reuse the default`,
|
|
12330
|
+
placeholder: defaultModelID,
|
|
12331
|
+
initial: defaultModelID
|
|
12332
|
+
});
|
|
12333
|
+
return raw.trim().length > 0 ? raw.trim() : defaultModelID;
|
|
12334
|
+
}
|
|
12335
|
+
return prompt.select({
|
|
12336
|
+
message: label,
|
|
12337
|
+
choices: models.map((modelID) => ({
|
|
12338
|
+
value: modelID,
|
|
12339
|
+
label: modelID === defaultModelID ? `${modelID} (default)` : modelID
|
|
12340
|
+
})),
|
|
12341
|
+
initial: defaultModelID
|
|
12342
|
+
});
|
|
12343
|
+
}
|
|
12273
12344
|
async function resolveEnabledRuntime(deps, meta, info) {
|
|
12274
12345
|
const connection = await resolveRuntimeConnection(deps, meta, info);
|
|
12275
12346
|
const defaultModelID = await chooseRuntimeModel(deps.prompt, connection.models, meta);
|
|
12347
|
+
const thinkingModelID = await chooseClassModel(deps.prompt, connection.models, meta, defaultModelID, "thinking");
|
|
12348
|
+
const coderModelID = await chooseClassModel(deps.prompt, connection.models, meta, defaultModelID, "coder");
|
|
12276
12349
|
const choice = {
|
|
12277
12350
|
id: meta.id,
|
|
12278
12351
|
enabled: true,
|
|
12279
12352
|
defaultModelID,
|
|
12353
|
+
thinkingModelID,
|
|
12354
|
+
coderModelID,
|
|
12280
12355
|
models: connection.models
|
|
12281
12356
|
};
|
|
12282
12357
|
if (connection.baseURL !== undefined) {
|
|
@@ -16164,7 +16239,7 @@ async function buildMemoryRuntimeFromConfig(config, deps, options = {}) {
|
|
|
16164
16239
|
// package.json
|
|
16165
16240
|
var package_default = {
|
|
16166
16241
|
name: "@jmanuelcorral/openteam",
|
|
16167
|
-
version: "0.
|
|
16242
|
+
version: "0.17.0",
|
|
16168
16243
|
packageManager: "bun@1.3.14",
|
|
16169
16244
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
16170
16245
|
license: "MIT",
|
|
@@ -16320,7 +16395,7 @@ async function buildGateInput(config, storage, opencodeVersion, warn, packagedRe
|
|
|
16320
16395
|
} catch {}
|
|
16321
16396
|
const soak = await readAndParseCertificate(storage, SOAK_CERT_PATH, (raw) => parseSoakCertificate(raw, DEFAULT_SOAK_POLICY, soakLedgerDigest), (cert) => cert.digest);
|
|
16322
16397
|
const migration = "complete";
|
|
16323
|
-
const operatorApproval = config.graph?.operatorApproval ??
|
|
16398
|
+
const operatorApproval = config.graph?.operatorApproval ?? true;
|
|
16324
16399
|
return { shadow, release, soak, migration, operatorApproval };
|
|
16325
16400
|
}
|
|
16326
16401
|
var OPENCODE_VERSION_UNRESOLVED_REASON = "the opencode version is not determinable outside a running opencode session, " + "so the cutover gate cannot be verified here — the running plugin logs the " + "authoritative gate result and warns loudly on a real denial";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,iEAAiE;IACjE,YAAY,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EACT,yBAAyB,GACzB,uBAAuB,GACvB,oBAAoB,GACpB,yBAAyB,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACxD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,gCAAgC,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC9E,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACpE,CAAC;AA+EF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AA+XF,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CA6JvD"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -125,6 +125,16 @@ export type RuntimeChoice = {
|
|
|
125
125
|
* to override.
|
|
126
126
|
*/
|
|
127
127
|
maxConcurrency?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Model this instance serves for reasoning-heavy roles (#210 follow-up).
|
|
130
|
+
* Optional on the answer: `buildOpenTeamConfig` omits it when it equals
|
|
131
|
+
* `defaultModelID`, because resolution already falls back to the default, so
|
|
132
|
+
* recording an identical value would add config noise with no behavioural
|
|
133
|
+
* difference.
|
|
134
|
+
*/
|
|
135
|
+
thinkingModelID?: string;
|
|
136
|
+
/** Model this instance serves for code-writing roles (#210 follow-up). */
|
|
137
|
+
coderModelID?: string;
|
|
128
138
|
};
|
|
129
139
|
export type FrontierChoice = FrontierChoiceType;
|
|
130
140
|
export type SetupAnswers = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAMpE,OAAO,EAOL,KAAK,cAAc,EAEnB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/config/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,WAAW,CAAC;AAIlC,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/config/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,WAAW,CAAC;AAIlC,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CA+GzE,CAAC;AAgIL,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,6BAAkC,GAC1C,MAAM,CA0BR;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKxD"}
|
|
@@ -34,6 +34,16 @@
|
|
|
34
34
|
* trust boundary, not a cryptographic guarantee. We say so explicitly rather
|
|
35
35
|
* than building a mechanism that *appears* to verify what it cannot.
|
|
36
36
|
*
|
|
37
|
+
* Its DEFAULT changed to `true` in v0.17.0, when `active` became the shipped
|
|
38
|
+
* graph mode. The flag was designed for a cutover FROM the legacy executor;
|
|
39
|
+
* a fresh install has nothing to migrate, so demanding the declaration made
|
|
40
|
+
* the config default and this gate contradict each other permanently —
|
|
41
|
+
* `mode: "active"` degrading to `off`, which observes even less than
|
|
42
|
+
* `shadow`. The shipped default now carries the maintainer's declaration.
|
|
43
|
+
* An operator re-arms the gate by setting it to `false`, and every other
|
|
44
|
+
* violation still blocks, including a certificate issued against a different
|
|
45
|
+
* opencode version than the one installed.
|
|
46
|
+
*
|
|
37
47
|
* 4. **Absence is not zero — it's a distinct failure.** Missing, unreadable,
|
|
38
48
|
* expired, and invalid certificates are all distinguished so the operator
|
|
39
49
|
* gets the right remediation advice.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphFeatureGate.d.ts","sourceRoot":"","sources":["../../src/config/graphFeatureGate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"graphFeatureGate.d.ts","sourceRoot":"","sources":["../../src/config/graphFeatureGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAIH,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIN;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAIjE,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC,CAAC;AAIF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,2BAA2B,GAC3B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,yBAAyB,GACzB,0BAA0B,GAC1B,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,CAAC;AAEhC,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAIF,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C,CAAC;AAuBF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CA4CxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAE3E"}
|
package/dist/config/resolve.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ import type { GraphMode, OpenTeamConfig } from "./schema";
|
|
|
6
6
|
* CLI and plugin resolve through this single function, so the same config
|
|
7
7
|
* produces the same result in both paths. Rules:
|
|
8
8
|
*
|
|
9
|
-
* - **Default
|
|
10
|
-
* is `
|
|
9
|
+
* - **Default active**: without an explicit graph section, the effective mode
|
|
10
|
+
* is `active` after schema defaults (v0.17.0; was `shadow`).
|
|
11
11
|
* - **Live kill switch**: if `killSwitch` is active, the effective mode is
|
|
12
12
|
* `off` regardless of the configured mode.
|
|
13
13
|
* - **Shadow without executor**: only `active` enables the executor; `shadow`
|
|
@@ -24,7 +24,7 @@ import type { GraphMode, OpenTeamConfig } from "./schema";
|
|
|
24
24
|
export type ConfigSource = "file" | "options" | "default";
|
|
25
25
|
/** Effective Graph config resolution. */
|
|
26
26
|
export type ResolvedGraphConfig = {
|
|
27
|
-
/** Mode declared in config (default `
|
|
27
|
+
/** Mode declared in config (default `active`). */
|
|
28
28
|
readonly configuredMode: GraphMode;
|
|
29
29
|
/** Effective mode after applying the kill switch and cutover gate. */
|
|
30
30
|
readonly effectiveMode: GraphMode;
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export declare const BaselineModeSchema: z.ZodEnum<{
|
|
|
22
22
|
/**
|
|
23
23
|
* Graph subsystem mode (GE-040). `off` keeps the legacy path only, `shadow`
|
|
24
24
|
* observes without executing effects, and `active` enables the executor behind
|
|
25
|
-
* the cutover gate. Default `
|
|
25
|
+
* the cutover gate. Default `active` since v0.17.0 so fresh/default installs get
|
|
26
26
|
* agent tree without opting in to active execution.
|
|
27
27
|
*/
|
|
28
28
|
export declare const GraphModeSchema: z.ZodEnum<{
|
|
@@ -146,6 +146,8 @@ export declare const LocalRuntimeSchema: z.ZodObject<{
|
|
|
146
146
|
}, z.core.$strict>;
|
|
147
147
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
148
148
|
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
149
|
+
thinkingModel: z.ZodOptional<z.ZodString>;
|
|
150
|
+
coderModel: z.ZodOptional<z.ZodString>;
|
|
149
151
|
}, z.core.$strict>;
|
|
150
152
|
/**
|
|
151
153
|
* Resolves the adapter {@link LocalRuntimeKind} of a configured runtime (#214).
|
|
@@ -338,6 +340,8 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
|
|
|
338
340
|
}, z.core.$strict>;
|
|
339
341
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
340
342
|
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
343
|
+
thinkingModel: z.ZodOptional<z.ZodString>;
|
|
344
|
+
coderModel: z.ZodOptional<z.ZodString>;
|
|
341
345
|
}, z.core.$strict>>>;
|
|
342
346
|
}, z.core.$strict>>;
|
|
343
347
|
budgets: z.ZodDefault<z.ZodObject<{
|
|
@@ -493,6 +497,8 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
|
|
|
493
497
|
}, z.core.$strict>;
|
|
494
498
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
495
499
|
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
500
|
+
thinkingModel: z.ZodOptional<z.ZodString>;
|
|
501
|
+
coderModel: z.ZodOptional<z.ZodString>;
|
|
496
502
|
}, z.core.$strict>>>;
|
|
497
503
|
}, z.core.$strict>>;
|
|
498
504
|
budgets: z.ZodDefault<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,cAAc;;;kBAKhB,CAAC;AAEZ,eAAO,MAAM,gBAAgB;;;;EAA6C,CAAC;AAC3E,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAC;AACH,eAAO,MAAM,kBAAkB;;;EAA6B,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;EAAsC,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;EAAmC,CAAC;AAElE;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAChF,eAAO,MAAM,2BAA2B,6CACI,CAAC;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -97,7 +97,8 @@ var AgentRoleProfileSchema = z.object({
|
|
|
97
97
|
localFirst: z.boolean(),
|
|
98
98
|
requiresLocalRuntime: z.boolean().optional(),
|
|
99
99
|
localRuntimes: z.array(z.string().min(1)).optional(),
|
|
100
|
-
localModels: z.record(z.string().min(1), z.string().min(1)).optional()
|
|
100
|
+
localModels: z.record(z.string().min(1), z.string().min(1)).optional(),
|
|
101
|
+
localModelClass: z.enum(["thinking", "coder"]).optional()
|
|
101
102
|
}).strict();
|
|
102
103
|
var TEAM_ROLES = {
|
|
103
104
|
architect: {
|
|
@@ -108,7 +109,8 @@ var TEAM_ROLES = {
|
|
|
108
109
|
minCodeQualityTier: 5,
|
|
109
110
|
needsToolCallingByDefault: true,
|
|
110
111
|
preferredFrontierModels: ["auto"],
|
|
111
|
-
localFirst: false
|
|
112
|
+
localFirst: false,
|
|
113
|
+
localModelClass: "thinking"
|
|
112
114
|
},
|
|
113
115
|
integration: {
|
|
114
116
|
roleID: "integration",
|
|
@@ -118,7 +120,8 @@ var TEAM_ROLES = {
|
|
|
118
120
|
minCodeQualityTier: 4,
|
|
119
121
|
needsToolCallingByDefault: true,
|
|
120
122
|
preferredFrontierModels: ["auto"],
|
|
121
|
-
localFirst: false
|
|
123
|
+
localFirst: false,
|
|
124
|
+
localModelClass: "coder"
|
|
122
125
|
},
|
|
123
126
|
"local-runtime": {
|
|
124
127
|
roleID: "local-runtime",
|
|
@@ -128,7 +131,8 @@ var TEAM_ROLES = {
|
|
|
128
131
|
minCodeQualityTier: 4,
|
|
129
132
|
needsToolCallingByDefault: true,
|
|
130
133
|
preferredFrontierModels: ["auto"],
|
|
131
|
-
localFirst: true
|
|
134
|
+
localFirst: true,
|
|
135
|
+
localModelClass: "coder"
|
|
132
136
|
},
|
|
133
137
|
"routing-cost": {
|
|
134
138
|
roleID: "routing-cost",
|
|
@@ -138,7 +142,8 @@ var TEAM_ROLES = {
|
|
|
138
142
|
minCodeQualityTier: 4,
|
|
139
143
|
needsToolCallingByDefault: false,
|
|
140
144
|
preferredFrontierModels: ["auto"],
|
|
141
|
-
localFirst: true
|
|
145
|
+
localFirst: true,
|
|
146
|
+
localModelClass: "thinking"
|
|
142
147
|
},
|
|
143
148
|
scribe: {
|
|
144
149
|
roleID: "scribe",
|
|
@@ -171,7 +176,8 @@ var TEAM_ROLES = {
|
|
|
171
176
|
needsToolCallingByDefault: false,
|
|
172
177
|
preferredFrontierModels: [],
|
|
173
178
|
localFirst: true,
|
|
174
|
-
requiresLocalRuntime: true
|
|
179
|
+
requiresLocalRuntime: true,
|
|
180
|
+
localModelClass: "thinking"
|
|
175
181
|
},
|
|
176
182
|
tester: {
|
|
177
183
|
roleID: "tester",
|
|
@@ -181,7 +187,8 @@ var TEAM_ROLES = {
|
|
|
181
187
|
minCodeQualityTier: 3,
|
|
182
188
|
needsToolCallingByDefault: true,
|
|
183
189
|
preferredFrontierModels: ["auto"],
|
|
184
|
-
localFirst: true
|
|
190
|
+
localFirst: true,
|
|
191
|
+
localModelClass: "coder"
|
|
185
192
|
},
|
|
186
193
|
reviewer: {
|
|
187
194
|
roleID: "reviewer",
|
|
@@ -191,7 +198,8 @@ var TEAM_ROLES = {
|
|
|
191
198
|
minCodeQualityTier: 5,
|
|
192
199
|
needsToolCallingByDefault: false,
|
|
193
200
|
preferredFrontierModels: ["auto"],
|
|
194
|
-
localFirst: true
|
|
201
|
+
localFirst: true,
|
|
202
|
+
localModelClass: "coder"
|
|
195
203
|
}
|
|
196
204
|
};
|
|
197
205
|
var LEGACY_TEAM_ROLE_ALIASES = {
|
|
@@ -294,11 +302,11 @@ var GraphEngineSchema = z2.enum(["builtin", "langgraph"]);
|
|
|
294
302
|
var DEFAULT_GRAPH_JOURNAL_ROOT = ".opencode/openteam-local/graph/runs";
|
|
295
303
|
var DEFAULT_GRAPH_WORKTREES_DIR = ".opencode/openteam-local/graph/worktrees";
|
|
296
304
|
var GraphConfigSchema = z2.object({
|
|
297
|
-
mode: GraphModeSchema.default("
|
|
305
|
+
mode: GraphModeSchema.default("active"),
|
|
298
306
|
engine: GraphEngineSchema.optional(),
|
|
299
307
|
killSwitch: z2.boolean().default(false),
|
|
300
308
|
journalRoot: z2.string().min(1).default(DEFAULT_GRAPH_JOURNAL_ROOT),
|
|
301
|
-
operatorApproval: z2.boolean().default(
|
|
309
|
+
operatorApproval: z2.boolean().default(true),
|
|
302
310
|
worktrees: z2.object({
|
|
303
311
|
enabled: z2.boolean().default(false)
|
|
304
312
|
}).strict().default({ enabled: false })
|
|
@@ -392,6 +400,9 @@ var OrchestratorRolesSchema = z2.record(z2.string().min(1), z2.unknown()).defaul
|
|
|
392
400
|
if (parsed.data.localModels !== undefined) {
|
|
393
401
|
profile.localModels = parsed.data.localModels;
|
|
394
402
|
}
|
|
403
|
+
if (parsed.data.localModelClass !== undefined) {
|
|
404
|
+
profile.localModelClass = parsed.data.localModelClass;
|
|
405
|
+
}
|
|
395
406
|
parsedRoles[roleID] = profile;
|
|
396
407
|
}
|
|
397
408
|
return parsedRoles;
|
|
@@ -418,7 +429,9 @@ var LocalRuntimeSchema = z2.object({
|
|
|
418
429
|
discovery: z2.enum(["cli", "sdk", "manual"]).optional(),
|
|
419
430
|
defaultModel: ModelRefSchema,
|
|
420
431
|
maxConcurrency: z2.number().int().positive().optional(),
|
|
421
|
-
reservedInteractiveSlots: z2.number().int().nonnegative().optional()
|
|
432
|
+
reservedInteractiveSlots: z2.number().int().nonnegative().optional(),
|
|
433
|
+
thinkingModel: z2.string().min(1).optional(),
|
|
434
|
+
coderModel: z2.string().min(1).optional()
|
|
422
435
|
}).strict().superRefine((runtime, ctx) => {
|
|
423
436
|
const resolvedKind = runtime.kind ?? runtime.id;
|
|
424
437
|
if (!LocalRuntimeKindSchema.safeParse(resolvedKind).success) {
|
|
@@ -553,10 +566,10 @@ var OpenTeamConfigObjectSchema = z2.object({
|
|
|
553
566
|
storage: StorageConfigSchema,
|
|
554
567
|
memory: MemoryConfigSchema.optional(),
|
|
555
568
|
graph: GraphConfigSchema.default({
|
|
556
|
-
mode: "
|
|
569
|
+
mode: "active",
|
|
557
570
|
killSwitch: false,
|
|
558
571
|
journalRoot: DEFAULT_GRAPH_JOURNAL_ROOT,
|
|
559
|
-
operatorApproval:
|
|
572
|
+
operatorApproval: true,
|
|
560
573
|
worktrees: { enabled: false }
|
|
561
574
|
}),
|
|
562
575
|
orchestrator: OrchestratorConfigSchema.optional()
|
|
@@ -2741,7 +2754,9 @@ var KNOWN_CONFIG_KEYS_BY_PATH = new Map([
|
|
|
2741
2754
|
"discovery",
|
|
2742
2755
|
"defaultModel",
|
|
2743
2756
|
"maxConcurrency",
|
|
2744
|
-
"reservedInteractiveSlots"
|
|
2757
|
+
"reservedInteractiveSlots",
|
|
2758
|
+
"thinkingModel",
|
|
2759
|
+
"coderModel"
|
|
2745
2760
|
]
|
|
2746
2761
|
],
|
|
2747
2762
|
["local.runtimes[].defaultModel", MODEL_REF_KEYS],
|
|
@@ -2918,7 +2933,7 @@ function loadOpenTeamConfig(raw) {
|
|
|
2918
2933
|
|
|
2919
2934
|
// src/config/resolve.ts
|
|
2920
2935
|
function resolveGraphConfig(config, source) {
|
|
2921
|
-
const configuredMode = config.graph?.mode ?? "
|
|
2936
|
+
const configuredMode = config.graph?.mode ?? "active";
|
|
2922
2937
|
const killSwitch = config.graph?.killSwitch ?? false;
|
|
2923
2938
|
const effectiveMode = killSwitch ? "off" : configuredMode;
|
|
2924
2939
|
return {
|
|
@@ -6109,9 +6124,19 @@ function configuredRuntime(runtimeId, config) {
|
|
|
6109
6124
|
function runtimeIdOfModel(model, config) {
|
|
6110
6125
|
return config.local.runtimes.find((runtime) => sameModel(runtime.defaultModel, model))?.id;
|
|
6111
6126
|
}
|
|
6112
|
-
function roleLocalModel(role, runtimeId, fallback) {
|
|
6127
|
+
function roleLocalModel(role, runtimeId, fallback, runtime) {
|
|
6113
6128
|
const pinned = role.localModels?.[runtimeId];
|
|
6114
|
-
|
|
6129
|
+
if (pinned !== undefined) {
|
|
6130
|
+
return { ...fallback, modelID: pinned };
|
|
6131
|
+
}
|
|
6132
|
+
const classModel = runtimeClassModel(role.localModelClass, runtime);
|
|
6133
|
+
return classModel === undefined ? fallback : { ...fallback, modelID: classModel };
|
|
6134
|
+
}
|
|
6135
|
+
function runtimeClassModel(modelClass, runtime) {
|
|
6136
|
+
if (modelClass === undefined || runtime === undefined) {
|
|
6137
|
+
return;
|
|
6138
|
+
}
|
|
6139
|
+
return modelClass === "thinking" ? runtime.thinkingModel : runtime.coderModel;
|
|
6115
6140
|
}
|
|
6116
6141
|
function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
6117
6142
|
if (decision2.routeKind !== "local") {
|
|
@@ -6127,7 +6152,7 @@ function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
|
6127
6152
|
if (runtime === undefined) {
|
|
6128
6153
|
continue;
|
|
6129
6154
|
}
|
|
6130
|
-
const model = roleLocalModel(role, runtimeId, runtime.defaultModel);
|
|
6155
|
+
const model = roleLocalModel(role, runtimeId, runtime.defaultModel, runtime);
|
|
6131
6156
|
return {
|
|
6132
6157
|
runtimeId,
|
|
6133
6158
|
decision: { ...decision2, selected: model }
|
|
@@ -6136,7 +6161,7 @@ function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
|
6136
6161
|
}
|
|
6137
6162
|
const resolvedRuntimeId = runtimeIdOfModel(decision2.selected, config);
|
|
6138
6163
|
if (resolvedRuntimeId !== undefined) {
|
|
6139
|
-
const pinned = roleLocalModel(role, resolvedRuntimeId, decision2.selected);
|
|
6164
|
+
const pinned = roleLocalModel(role, resolvedRuntimeId, decision2.selected, configuredRuntime(resolvedRuntimeId, config));
|
|
6140
6165
|
if (pinned !== decision2.selected) {
|
|
6141
6166
|
return {
|
|
6142
6167
|
runtimeId: resolvedRuntimeId,
|
|
@@ -8241,6 +8266,22 @@ function renderConsoleStatus(console_) {
|
|
|
8241
8266
|
}
|
|
8242
8267
|
|
|
8243
8268
|
// src/commands/doctor.ts
|
|
8269
|
+
function runtimeClassLine(runtime) {
|
|
8270
|
+
if (runtime === undefined) {
|
|
8271
|
+
return;
|
|
8272
|
+
}
|
|
8273
|
+
const thinking = runtime.thinkingModel;
|
|
8274
|
+
const coder = runtime.coderModel;
|
|
8275
|
+
if (thinking === undefined && coder === undefined) {
|
|
8276
|
+
return;
|
|
8277
|
+
}
|
|
8278
|
+
const parts = [
|
|
8279
|
+
`thinking ${thinking ?? "(default)"}`,
|
|
8280
|
+
`coder ${coder ?? "(default)"}`,
|
|
8281
|
+
`default ${runtime.defaultModel.modelID}`
|
|
8282
|
+
];
|
|
8283
|
+
return ` ↳ ${parts.join(" · ")}`;
|
|
8284
|
+
}
|
|
8244
8285
|
function runtimeLine(snapshot, runtime) {
|
|
8245
8286
|
const mark = snapshot.reachable ? "✓" : "✗";
|
|
8246
8287
|
const detail = snapshot.reachable ? `${snapshot.models.length} model(s)` : snapshot.error ?? "unreachable";
|
|
@@ -8497,7 +8538,12 @@ function renderDoctor(input) {
|
|
|
8497
8538
|
lines.push(" (no runtime enabled)");
|
|
8498
8539
|
} else {
|
|
8499
8540
|
for (const snapshot of input.snapshots) {
|
|
8500
|
-
|
|
8541
|
+
const runtime = enabledRuntimes.find((r) => r.id === snapshot.id);
|
|
8542
|
+
lines.push(runtimeLine(snapshot, runtime));
|
|
8543
|
+
const classLine = runtimeClassLine(runtime);
|
|
8544
|
+
if (classLine !== undefined) {
|
|
8545
|
+
lines.push(classLine);
|
|
8546
|
+
}
|
|
8501
8547
|
}
|
|
8502
8548
|
}
|
|
8503
8549
|
for (const snapshot of input.snapshots) {
|
|
@@ -13510,7 +13556,7 @@ var createOtlpSpanExporter = (connection, config) => {
|
|
|
13510
13556
|
// package.json
|
|
13511
13557
|
var package_default = {
|
|
13512
13558
|
name: "@jmanuelcorral/openteam",
|
|
13513
|
-
version: "0.
|
|
13559
|
+
version: "0.17.0",
|
|
13514
13560
|
packageManager: "bun@1.3.14",
|
|
13515
13561
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
13516
13562
|
license: "MIT",
|
|
@@ -13877,7 +13923,7 @@ async function buildGateInput(config, storage, opencodeVersion, warn, packagedRe
|
|
|
13877
13923
|
} catch {}
|
|
13878
13924
|
const soak = await readAndParseCertificate(storage, SOAK_CERT_PATH, (raw) => parseSoakCertificate(raw, DEFAULT_SOAK_POLICY, soakLedgerDigest), (cert) => cert.digest);
|
|
13879
13925
|
const migration = "complete";
|
|
13880
|
-
const operatorApproval = config.graph?.operatorApproval ??
|
|
13926
|
+
const operatorApproval = config.graph?.operatorApproval ?? true;
|
|
13881
13927
|
return { shadow, release, soak, migration, operatorApproval };
|
|
13882
13928
|
}
|
|
13883
13929
|
var OPENCODE_VERSION_UNRESOLVED_REASON = "the opencode version is not determinable outside a running opencode session, " + "so the cutover gate cannot be verified here — the running plugin logs the " + "authoritative gate result and warns loudly on a real denial";
|
|
@@ -51,7 +51,31 @@ export type AgentRoleProfile = {
|
|
|
51
51
|
* chosen runtime has no entry, the runtime's `defaultModel` stands.
|
|
52
52
|
*/
|
|
53
53
|
localModels?: Partial<Record<LocalRuntimeId, string>>;
|
|
54
|
+
/**
|
|
55
|
+
* Which class of local model this role should draw off a runtime that
|
|
56
|
+
* declares one (#210 follow-up).
|
|
57
|
+
*
|
|
58
|
+
* Declared explicitly rather than inferred from `minReasoningTier` versus
|
|
59
|
+
* `minCodeQualityTier`, because that comparison cannot express the roles that
|
|
60
|
+
* matter most: `architect` is 5/5, so the tiers tie and the single most
|
|
61
|
+
* reasoning-heavy role would be classified as "no preference". An explicit
|
|
62
|
+
* field is also inspectable and overridable from config, the same way
|
|
63
|
+
* `preferredFrontierModels` already declares frontier intent per role.
|
|
64
|
+
*
|
|
65
|
+
* Optional. Without it — and for every role on a runtime that declares no
|
|
66
|
+
* class model — the runtime's `defaultModel` stands, so existing rosters keep
|
|
67
|
+
* today's behaviour exactly.
|
|
68
|
+
*/
|
|
69
|
+
localModelClass?: LocalModelClass;
|
|
54
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Class of local model a role draws off a runtime (#210 follow-up).
|
|
73
|
+
*
|
|
74
|
+
* `thinking` is for design, analysis and policy judgement; `coder` is for
|
|
75
|
+
* writing and reviewing code. A role that wants neither simply omits the field
|
|
76
|
+
* and takes the runtime's `defaultModel`.
|
|
77
|
+
*/
|
|
78
|
+
export type LocalModelClass = "thinking" | "coder";
|
|
55
79
|
export declare const AgentRoleProfileSchema: z.ZodObject<{
|
|
56
80
|
roleID: z.ZodString;
|
|
57
81
|
opencodeAgent: z.ZodOptional<z.ZodString>;
|
|
@@ -72,6 +96,10 @@ export declare const AgentRoleProfileSchema: z.ZodObject<{
|
|
|
72
96
|
requiresLocalRuntime: z.ZodOptional<z.ZodBoolean>;
|
|
73
97
|
localRuntimes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
74
98
|
localModels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
99
|
+
localModelClass: z.ZodOptional<z.ZodEnum<{
|
|
100
|
+
coder: "coder";
|
|
101
|
+
thinking: "thinking";
|
|
102
|
+
}>>;
|
|
75
103
|
}, z.core.$strict>;
|
|
76
104
|
export declare const TEAM_ROLES: Record<string, AgentRoleProfile>;
|
|
77
105
|
export declare function isKnownNonWorkerRole(roleID: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/orchestrator/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,cAAc,CAAC;IAC5B,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACjC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/orchestrator/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,cAAc,CAAC;IAC5B,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACjC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAiBnD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;kBAmBxB,CAAC;AAGZ,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAqGvD,CAAC;AAcF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAI5D;AA6BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,GAC3D,gBAAgB,GAAG,SAAS,CAO9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAW1E;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,WAAW,EACjB,IAAI,CAAC,EAAE,cAAc,GACpB,qBAAqB,CAevB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeSelection.d.ts","sourceRoot":"","sources":["../../src/orchestrator/runtimeSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"runtimeSelection.d.ts","sourceRoot":"","sources":["../../src/orchestrator/runtimeSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC,CAAC;AASF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,cAAc,GACrB,cAAc,GAAG,SAAS,CAI5B;AAsDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,SAAS,EAClD,MAAM,EAAE,cAAc,GACrB,wBAAwB,CAgD1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jmanuelcorral/openteam",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"packageManager": "bun@1.3.14",
|
|
5
5
|
"description": "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
6
6
|
"license": "MIT",
|