@jmanuelcorral/openteam 0.17.1 → 0.17.3
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.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 +16 -8
- package/dist/index.js +36 -10
- package/dist/orchestrator/coordinator.d.ts +9 -0
- package/dist/orchestrator/coordinator.d.ts.map +1 -1
- package/dist/plugin/orchestrateTool.d.ts +18 -0
- package/dist/plugin/orchestrateTool.d.ts.map +1 -1
- package/dist/router/chooseModel.d.ts.map +1 -1
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -825,7 +825,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
|
|
|
825
825
|
|
|
826
826
|
| Superficie | Versión / contrato |
|
|
827
827
|
| --- | --- |
|
|
828
|
-
| openteam | `0.17.
|
|
828
|
+
| openteam | `0.17.3`; versión actual del paquete |
|
|
829
829
|
| `@opencode-ai/plugin` | `1.18.19` |
|
|
830
830
|
| `@opencode-ai/sdk` | `1.18.19` |
|
|
831
831
|
| Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
|
package/README.md
CHANGED
|
@@ -714,7 +714,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
|
|
|
714
714
|
|
|
715
715
|
| Surface | Version / contract |
|
|
716
716
|
| --- | --- |
|
|
717
|
-
| openteam | `0.17.
|
|
717
|
+
| openteam | `0.17.3`; current package version |
|
|
718
718
|
| `@opencode-ai/plugin` | `1.18.19` |
|
|
719
719
|
| `@opencode-ai/sdk` | `1.18.19` |
|
|
720
720
|
| 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.4937800000000152,
|
|
38
38
|
"budgetMillis": 50,
|
|
39
39
|
"samples": 100
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
42
|
"verdict": "pass",
|
|
43
43
|
"failedGates": [],
|
|
44
|
-
"digest": "
|
|
44
|
+
"digest": "0306cfd170a6a7afe07bb2403b7198e50c786f07c83f128742087e6643e17186"
|
|
45
45
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"rawFindings": 0
|
|
21
21
|
},
|
|
22
22
|
"overhead": {
|
|
23
|
-
"p95Millis": 0.
|
|
23
|
+
"p95Millis": 0.3300820000000044,
|
|
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": "cb6f78ca0552d4dba4735c27a9844fd69ebb8c821dc5a9639f9e9fa432b316e3"
|
|
39
39
|
}
|
package/dist/cli.js
CHANGED
|
@@ -976,9 +976,6 @@ function chooseModel(input) {
|
|
|
976
976
|
noLocalRationale: "forced-local-unavailable"
|
|
977
977
|
}));
|
|
978
978
|
}
|
|
979
|
-
if (override === "alwaysFrontier") {
|
|
980
|
-
return finalizeDecision(input, tier, frontier, budgetAction, decision(frontier.model, "frontier", ["explicit-always-frontier"], []));
|
|
981
|
-
}
|
|
982
979
|
if (input.config.router.localOnly) {
|
|
983
980
|
if (local === null) {
|
|
984
981
|
return finalizeDecision(input, tier, frontier, budgetAction, blockedDecision(frontier.model, ["router-local-only", "forced-local-none-configured"], "forced-local-none-configured"));
|
|
@@ -989,6 +986,9 @@ function chooseModel(input) {
|
|
|
989
986
|
noLocalRationale: "forced-local-unavailable"
|
|
990
987
|
}));
|
|
991
988
|
}
|
|
989
|
+
if (override === "alwaysFrontier") {
|
|
990
|
+
return finalizeDecision(input, tier, frontier, budgetAction, decision(frontier.model, "frontier", ["explicit-always-frontier"], []));
|
|
991
|
+
}
|
|
992
992
|
if (input.config.router.frontierOnly) {
|
|
993
993
|
return finalizeDecision(input, tier, frontier, budgetAction, decision(frontier.model, "frontier", ["router-frontier-only"], []));
|
|
994
994
|
}
|
|
@@ -1980,8 +1980,8 @@ function roleLocalReachable(role, batch) {
|
|
|
1980
1980
|
function permissionsFor(roleID) {
|
|
1981
1981
|
return ROLE_PERMISSIONS[roleID] ?? [];
|
|
1982
1982
|
}
|
|
1983
|
-
function roleRequiresFrontier(role, task) {
|
|
1984
|
-
return task.explicitOverride === undefined && role.localFirst === false && role.defaultTier === "hard" && role.preferredFrontierModels.length > 0;
|
|
1983
|
+
function roleRequiresFrontier(role, task, config) {
|
|
1984
|
+
return task.explicitOverride === undefined && config.router.localOnly !== true && role.localFirst === false && role.defaultTier === "hard" && role.preferredFrontierModels.length > 0;
|
|
1985
1985
|
}
|
|
1986
1986
|
function roleAdjustedTask(role, input, requirement) {
|
|
1987
1987
|
const task = {
|
|
@@ -1991,11 +1991,19 @@ function roleAdjustedTask(role, input, requirement) {
|
|
|
1991
1991
|
if (requirement.needsTools) {
|
|
1992
1992
|
task.requiresTools = true;
|
|
1993
1993
|
}
|
|
1994
|
-
if (roleRequiresFrontier(role, task)) {
|
|
1994
|
+
if (roleRequiresFrontier(role, task, input.config)) {
|
|
1995
1995
|
task.explicitOverride = "alwaysFrontier";
|
|
1996
1996
|
}
|
|
1997
1997
|
return task;
|
|
1998
1998
|
}
|
|
1999
|
+
function roleAdjustedTaskForRole(input) {
|
|
2000
|
+
const role = roleFor(input);
|
|
2001
|
+
const tier = elevateTierForPermissions(classifyHeuristic({
|
|
2002
|
+
...input.task,
|
|
2003
|
+
prompt: input.task.prompt ?? input.prompt
|
|
2004
|
+
}).tier, permissionsFor(role.roleID));
|
|
2005
|
+
return roleAdjustedTask(role, input, roleToRequirement(role, input.task, tier));
|
|
2006
|
+
}
|
|
1999
2007
|
function satisfiesRoleRequirement(requirement, profile) {
|
|
2000
2008
|
return profile.kind === "frontier" && profile.availability !== "unavailable" && profile.contextWindow >= requirement.minContextWindow && profile.reasoningTier >= requirement.minReasoningTier && profile.codeQualityTier >= requirement.minCodeQualityTier && (!requirement.needsTools || profile.supportsToolCalling) && (!requirement.needsVision || profile.supportsVision);
|
|
2001
2009
|
}
|
|
@@ -2013,7 +2021,7 @@ function routingInput(input, role) {
|
|
|
2013
2021
|
const permissionTier = elevateTierForPermissions(classifiedTier, permissionsFor(role.roleID));
|
|
2014
2022
|
const tier = permissionTier;
|
|
2015
2023
|
const requirement = roleToRequirement(role, input.task, tier);
|
|
2016
|
-
const task =
|
|
2024
|
+
const task = roleAdjustedTaskForRole(input);
|
|
2017
2025
|
const baseInput = {
|
|
2018
2026
|
config: input.config,
|
|
2019
2027
|
task,
|
|
@@ -16459,7 +16467,7 @@ async function buildMemoryRuntimeFromConfig(config, deps, options = {}) {
|
|
|
16459
16467
|
// package.json
|
|
16460
16468
|
var package_default = {
|
|
16461
16469
|
name: "@jmanuelcorral/openteam",
|
|
16462
|
-
version: "0.17.
|
|
16470
|
+
version: "0.17.3",
|
|
16463
16471
|
packageManager: "bun@1.3.14",
|
|
16464
16472
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
16465
16473
|
license: "MIT",
|
package/dist/index.js
CHANGED
|
@@ -6145,9 +6145,6 @@ function chooseModel(input) {
|
|
|
6145
6145
|
noLocalRationale: "forced-local-unavailable"
|
|
6146
6146
|
}));
|
|
6147
6147
|
}
|
|
6148
|
-
if (override === "alwaysFrontier") {
|
|
6149
|
-
return finalizeDecision(input, tier, frontier, budgetAction, decision(frontier.model, "frontier", ["explicit-always-frontier"], []));
|
|
6150
|
-
}
|
|
6151
6148
|
if (input.config.router.localOnly) {
|
|
6152
6149
|
if (local === null) {
|
|
6153
6150
|
return finalizeDecision(input, tier, frontier, budgetAction, blockedDecision(frontier.model, ["router-local-only", "forced-local-none-configured"], "forced-local-none-configured"));
|
|
@@ -6158,6 +6155,9 @@ function chooseModel(input) {
|
|
|
6158
6155
|
noLocalRationale: "forced-local-unavailable"
|
|
6159
6156
|
}));
|
|
6160
6157
|
}
|
|
6158
|
+
if (override === "alwaysFrontier") {
|
|
6159
|
+
return finalizeDecision(input, tier, frontier, budgetAction, decision(frontier.model, "frontier", ["explicit-always-frontier"], []));
|
|
6160
|
+
}
|
|
6161
6161
|
if (input.config.router.frontierOnly) {
|
|
6162
6162
|
return finalizeDecision(input, tier, frontier, budgetAction, decision(frontier.model, "frontier", ["router-frontier-only"], []));
|
|
6163
6163
|
}
|
|
@@ -6620,8 +6620,8 @@ function roleLocalReachable(role, batch) {
|
|
|
6620
6620
|
function permissionsFor(roleID) {
|
|
6621
6621
|
return ROLE_PERMISSIONS[roleID] ?? [];
|
|
6622
6622
|
}
|
|
6623
|
-
function roleRequiresFrontier(role, task) {
|
|
6624
|
-
return task.explicitOverride === undefined && role.localFirst === false && role.defaultTier === "hard" && role.preferredFrontierModels.length > 0;
|
|
6623
|
+
function roleRequiresFrontier(role, task, config) {
|
|
6624
|
+
return task.explicitOverride === undefined && config.router.localOnly !== true && role.localFirst === false && role.defaultTier === "hard" && role.preferredFrontierModels.length > 0;
|
|
6625
6625
|
}
|
|
6626
6626
|
function roleAdjustedTask(role, input, requirement) {
|
|
6627
6627
|
const task = {
|
|
@@ -6631,11 +6631,19 @@ function roleAdjustedTask(role, input, requirement) {
|
|
|
6631
6631
|
if (requirement.needsTools) {
|
|
6632
6632
|
task.requiresTools = true;
|
|
6633
6633
|
}
|
|
6634
|
-
if (roleRequiresFrontier(role, task)) {
|
|
6634
|
+
if (roleRequiresFrontier(role, task, input.config)) {
|
|
6635
6635
|
task.explicitOverride = "alwaysFrontier";
|
|
6636
6636
|
}
|
|
6637
6637
|
return task;
|
|
6638
6638
|
}
|
|
6639
|
+
function roleAdjustedTaskForRole(input) {
|
|
6640
|
+
const role = roleFor(input);
|
|
6641
|
+
const tier = elevateTierForPermissions(classifyHeuristic({
|
|
6642
|
+
...input.task,
|
|
6643
|
+
prompt: input.task.prompt ?? input.prompt
|
|
6644
|
+
}).tier, permissionsFor(role.roleID));
|
|
6645
|
+
return roleAdjustedTask(role, input, roleToRequirement(role, input.task, tier));
|
|
6646
|
+
}
|
|
6639
6647
|
function satisfiesRoleRequirement(requirement, profile) {
|
|
6640
6648
|
return profile.kind === "frontier" && profile.availability !== "unavailable" && profile.contextWindow >= requirement.minContextWindow && profile.reasoningTier >= requirement.minReasoningTier && profile.codeQualityTier >= requirement.minCodeQualityTier && (!requirement.needsTools || profile.supportsToolCalling) && (!requirement.needsVision || profile.supportsVision);
|
|
6641
6649
|
}
|
|
@@ -6653,7 +6661,7 @@ function routingInput(input, role) {
|
|
|
6653
6661
|
const permissionTier = elevateTierForPermissions(classifiedTier, permissionsFor(role.roleID));
|
|
6654
6662
|
const tier = permissionTier;
|
|
6655
6663
|
const requirement = roleToRequirement(role, input.task, tier);
|
|
6656
|
-
const task =
|
|
6664
|
+
const task = roleAdjustedTaskForRole(input);
|
|
6657
6665
|
const baseInput = {
|
|
6658
6666
|
config: input.config,
|
|
6659
6667
|
task,
|
|
@@ -13316,12 +13324,30 @@ async function runShadowProducer(deps, payload, batch) {
|
|
|
13316
13324
|
}
|
|
13317
13325
|
return { ok: true };
|
|
13318
13326
|
}
|
|
13327
|
+
function assignableRoleIDs(config) {
|
|
13328
|
+
const ids = new Set;
|
|
13329
|
+
for (const roleID of Object.keys(TEAM_ROLES)) {
|
|
13330
|
+
ids.add(roleID);
|
|
13331
|
+
}
|
|
13332
|
+
for (const roleID of Object.keys(config.orchestrator?.roles ?? {})) {
|
|
13333
|
+
ids.add(roleID);
|
|
13334
|
+
}
|
|
13335
|
+
return [...ids].filter((roleID) => !isKnownNonWorkerRole(roleID)).sort();
|
|
13336
|
+
}
|
|
13337
|
+
function orchestrateToolDescription(config) {
|
|
13338
|
+
const roles = assignableRoleIDs(config);
|
|
13339
|
+
return "Distributes work across roster roles via openteam's coordinator. " + "Each assignment spawns a subsession with model selection driven by " + "the role profile and routing config. Use instead of manually spawning " + `tasks when a roster exists.
|
|
13340
|
+
|
|
13341
|
+
` + `Assignable roles: ${roles.join(", ")}.
|
|
13342
|
+
|
|
13343
|
+
` + "Emit one assignment per role that has genuinely distinct work, in a " + "single call — that is what parallelises the team. A call carrying only " + "one assignment has delegated nothing and is almost always a mistake " + "unless the task truly belongs to a single role. Use `dependsOn` to " + "sequence roles that must wait for another role's output; independent " + "roles are dispatched concurrently.";
|
|
13344
|
+
}
|
|
13319
13345
|
function createOrchestrateTool(deps) {
|
|
13320
13346
|
return tool4({
|
|
13321
|
-
description:
|
|
13347
|
+
description: orchestrateToolDescription(deps.config),
|
|
13322
13348
|
args: {
|
|
13323
13349
|
assignments: tool4.schema.array(tool4.schema.object({
|
|
13324
|
-
roleID: tool4.schema.string().describe("Role identifier from the roster"),
|
|
13350
|
+
roleID: tool4.schema.string().describe("Role identifier from the roster (see the assignable roles " + "listed in this tool's description)"),
|
|
13325
13351
|
prompt: tool4.schema.string().describe("Work prompt for this role"),
|
|
13326
13352
|
title: tool4.schema.string().optional().describe("Human-readable title"),
|
|
13327
13353
|
dependsOn: tool4.schema.array(tool4.schema.string()).optional().describe("Role IDs this assignment depends on")
|
|
@@ -13713,7 +13739,7 @@ var createOtlpSpanExporter = (connection, config) => {
|
|
|
13713
13739
|
// package.json
|
|
13714
13740
|
var package_default = {
|
|
13715
13741
|
name: "@jmanuelcorral/openteam",
|
|
13716
|
-
version: "0.17.
|
|
13742
|
+
version: "0.17.3",
|
|
13717
13743
|
packageManager: "bun@1.3.14",
|
|
13718
13744
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
13719
13745
|
license: "MIT",
|
|
@@ -156,6 +156,15 @@ export type BatchReachability = {
|
|
|
156
156
|
readonly any: boolean | undefined;
|
|
157
157
|
readonly set: ReadonlySet<LocalRuntimeId> | undefined;
|
|
158
158
|
};
|
|
159
|
+
/**
|
|
160
|
+
* The task signals the coordinator actually routes with for a role, including
|
|
161
|
+
* any synthesized explicit override. Exported so the override decision has a
|
|
162
|
+
* single production definition that tests can drive directly; `routingInput`
|
|
163
|
+
* is its only production caller.
|
|
164
|
+
*
|
|
165
|
+
* Pure: no I/O, clock, random, or env.
|
|
166
|
+
*/
|
|
167
|
+
export declare function roleAdjustedTaskForRole(input: RoleTaskInput): TaskSignals;
|
|
159
168
|
/**
|
|
160
169
|
* Classifies a raw failure reason into a bounded, non-free-form code for
|
|
161
170
|
* persisted telemetry AND the console failure viewer (P11c, see #195). The raw
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,6 +212,24 @@ export type ShadowProducerResult = {
|
|
|
212
212
|
readonly ok: false;
|
|
213
213
|
readonly failureClass: ShadowProducerFailureClass;
|
|
214
214
|
};
|
|
215
|
+
/**
|
|
216
|
+
* Builds the assignable-role list advertised to the coordinator model.
|
|
217
|
+
*
|
|
218
|
+
* Measured defect (2026-09): the tool asked for a "Role identifier from the
|
|
219
|
+
* roster" but never said which roles exist. A local coordinator model has no
|
|
220
|
+
* other way to learn the roster, so it guessed a single plausible id
|
|
221
|
+
* (`architect`) on every call and the agent tree never fanned out. Listing the
|
|
222
|
+
* ids is what makes delegation reachable at all.
|
|
223
|
+
*
|
|
224
|
+
* Configured roles are merged over the built-ins so a custom roster is
|
|
225
|
+
* advertised too. Known non-worker ids are excluded: they name the coordinator
|
|
226
|
+
* itself, not something it can delegate to.
|
|
227
|
+
*/
|
|
228
|
+
export declare function assignableRoleIDs(config: OpenTeamConfig): string[];
|
|
229
|
+
/**
|
|
230
|
+
* Builds the tool description. Dynamic because the roster is config-driven.
|
|
231
|
+
*/
|
|
232
|
+
export declare function orchestrateToolDescription(config: OpenTeamConfig): string;
|
|
215
233
|
/**
|
|
216
234
|
* Creates the `openteam-orchestrate` tool.
|
|
217
235
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrateTool.d.ts","sourceRoot":"","sources":["../../src/plugin/orchestrateTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAc,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,KAAK,eAAe,EAIpB,KAAK,cAAc,EAGpB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrateTool.d.ts","sourceRoot":"","sources":["../../src/plugin/orchestrateTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooseModel.d.ts","sourceRoot":"","sources":["../../src/router/chooseModel.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AA+NjB,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"chooseModel.d.ts","sourceRoot":"","sources":["../../src/router/chooseModel.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AA+NjB,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CA+PhE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jmanuelcorral/openteam",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.3",
|
|
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",
|