@jmanuelcorral/openteam 0.14.0 → 0.15.1
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 +2 -2
- package/README.md +2 -2
- package/dist/cli/consoleServe.d.ts.map +1 -1
- package/dist/cli/graphViewProvider.d.ts +2 -2
- package/dist/cli/graphViewProvider.d.ts.map +1 -1
- package/dist/cli.js +256 -102
- package/dist/commands/setup.d.ts +27 -7
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/config/runtime.d.ts +1 -1
- package/dist/config/runtime.d.ts.map +1 -1
- package/dist/console/render.d.ts +3 -0
- package/dist/console/render.d.ts.map +1 -1
- package/dist/index.js +61 -19
- package/dist/orchestrator/coordinator.d.ts.map +1 -1
- package/dist/orchestrator/runtimeSelection.d.ts.map +1 -1
- package/dist/plugin/orchestrateTool.d.ts.map +1 -1
- package/dist/router/chooseModel.d.ts.map +1 -1
- package/dist/web/server.d.ts +3 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/start.d.ts +3 -1
- package/dist/web/start.d.ts.map +1 -1
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -218,7 +218,7 @@ openteam setup
|
|
|
218
218
|
El asistente:
|
|
219
219
|
|
|
220
220
|
1. Sondea los runtimes locales y marca los detectados.
|
|
221
|
-
2. Te deja habilitar runtimes (o **ninguno**: puedes usar openteam **solo con modelos frontier**) y, por cada runtime que habilites, elegir si corre **en esta máquina** o **en otra máquina de la red local** (introduciendo su URL, p. ej. `http://192.168.1.50:11434/v1`); luego eliges el modelo por defecto de cada uno (o lo escribes si no se detectan modelos).
|
|
221
|
+
2. Te deja habilitar runtimes (o **ninguno**: puedes usar openteam **solo con modelos frontier**) y, por cada runtime que habilites, elegir si corre **en esta máquina** o **en otra máquina de la red local** (introduciendo su URL, p. ej. `http://192.168.1.50:11434/v1`); luego eliges el modelo por defecto de cada uno (o lo escribes si no se detectan modelos). Si tienes **más de una máquina del mismo tipo** (p. ej. dos hosts LM Studio), declara cada una como una instancia aparte con su propio id (`lmstudio-a`, `lmstudio-b`), URL y modelos. Para cada instancia también pregunta cuántos **slots de generación concurrente** tiene el runtime (por defecto `4`), para que puedas dejar un slot libre para el trabajo interactivo en vez de saturar el servidor.
|
|
222
222
|
3. Ofrece el modelo frontier baseline a partir del **catálogo completo de [Models.dev](https://models.dev)** que openteam ya integra: una lista rápida con los más **baratos-capaces primero** (incluidos los **gratuitos**, etiquetados como `gratis`), una opción **«Ver todos los modelos por proveedor…»** para navegar el catálogo completo, y **«Otro (custom)»** para escribir un `provider/model`. Si el catálogo no se puede cargar (offline), cae a la lista curada.
|
|
223
223
|
4. Pregunta el modo de routing (`balanced`/`economy`/`quality`), la política de privacidad y si quieres activar el **modo YOLO** (auto-aprobar permisos de opencode). Si no habilitas ningún runtime local, avisa de que estás en **modo solo frontier** y recomienda `consentBeforeFrontier` (porque `forceLocalOnSensitive` no tendría destino local).
|
|
224
224
|
5. Si ya existe `opencode.json` o `.opencode/openteam.json`, pide confirmación antes de sobrescribir.
|
|
@@ -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.15.1`; 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
|
@@ -177,7 +177,7 @@ openteam setup
|
|
|
177
177
|
The wizard:
|
|
178
178
|
|
|
179
179
|
1. Probes local runtimes and marks the detected ones.
|
|
180
|
-
2. Lets you enable runtimes (or **none** — frontier-only) and, per enabled runtime, choose whether it runs **on this machine** or **on another machine on the LAN** (by entering its URL, e.g. `http://192.168.1.50:11434/v1`), then pick each default model.
|
|
180
|
+
2. Lets you enable runtimes (or **none** — frontier-only) and, per enabled runtime, choose whether it runs **on this machine** or **on another machine on the LAN** (by entering its URL, e.g. `http://192.168.1.50:11434/v1`), then pick each default model. If you run **more than one machine of the same kind** (e.g. two LM Studio hosts), it declares each as a separate instance with its own id (`lmstudio-a`, `lmstudio-b`), URL and models. For every instance it also asks how many **concurrent generation slots** the runtime has (defaulting to `4`), so you can leave a slot free for interactive work instead of saturating the server.
|
|
181
181
|
3. Offers the frontier baseline from the **full [Models.dev](https://models.dev) catalog** that openteam integrates: a quick list with the **cheapest-capable first** (including **free** models, tagged `free`), a "Browse all models by provider…" option, and "Other (custom)" to type a `provider/model`. If the catalog can't be loaded (offline), it falls back to the curated list.
|
|
182
182
|
4. Asks for the routing mode (`balanced` / `economy` / `quality`), the privacy policy, and whether to enable **YOLO mode** (auto-approve opencode permissions). If you enable no local runtime, it warns you are in **frontier-only mode** and recommends `consentBeforeFrontier`.
|
|
183
183
|
5. If `opencode.json` or `.opencode/openteam.json` already exist, it asks for confirmation before overwriting.
|
|
@@ -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.15.1`; 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 |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleServe.d.ts","sourceRoot":"","sources":["../../src/cli/consoleServe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"consoleServe.d.ts","sourceRoot":"","sources":["../../src/cli/consoleServe.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,9 @@ export type GraphViewProviderDeps = {
|
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* Builds the `readView` provider that `startConsole` expects. Reads the most
|
|
19
|
-
* recent persisted journal from `journalRoot`, projects it through
|
|
19
|
+
* recent loadable persisted journal from `journalRoot`, projects it through
|
|
20
20
|
* `buildGraphView`, and returns a `GraphViewProjectionV1`. Returns `null` when
|
|
21
|
-
* there are no runs,
|
|
21
|
+
* there are no runs, every candidate journal is corrupt, or the root is missing.
|
|
22
22
|
*
|
|
23
23
|
* This is the production wire that closes the gap: `runConsoleServe` never
|
|
24
24
|
* supplied a `graphView` to `startConsole`, so the DAG render was permanently
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphViewProvider.d.ts","sourceRoot":"","sources":["../../src/cli/graphViewProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphViewProvider.d.ts","sourceRoot":"","sources":["../../src/cli/graphViewProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AA4ChC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG;IACpE,QAAQ,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;CACvD,CAyDA"}
|
package/dist/cli.js
CHANGED
|
@@ -16,6 +16,32 @@ import { createOpencodeClient } from "@opencode-ai/sdk";
|
|
|
16
16
|
// src/cli/consoleServe.ts
|
|
17
17
|
import { randomBytes } from "node:crypto";
|
|
18
18
|
|
|
19
|
+
// src/config/resolve.ts
|
|
20
|
+
function resolveGraphConfig(config, source) {
|
|
21
|
+
const configuredMode = config.graph?.mode ?? "shadow";
|
|
22
|
+
const killSwitch = config.graph?.killSwitch ?? false;
|
|
23
|
+
const effectiveMode = killSwitch ? "off" : configuredMode;
|
|
24
|
+
return {
|
|
25
|
+
configuredMode,
|
|
26
|
+
effectiveMode,
|
|
27
|
+
executorEnabled: effectiveMode === "active",
|
|
28
|
+
killSwitch,
|
|
29
|
+
source
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function applyGraphGate(resolved, gateResult) {
|
|
33
|
+
if (gateResult.allowed) {
|
|
34
|
+
return { ...resolved, gateDenied: false, gateViolations: [] };
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
...resolved,
|
|
38
|
+
effectiveMode: "off",
|
|
39
|
+
executorEnabled: false,
|
|
40
|
+
gateDenied: true,
|
|
41
|
+
gateViolations: gateResult.violations
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
19
45
|
// src/config/schema.ts
|
|
20
46
|
import { z as z2 } from "zod";
|
|
21
47
|
|
|
@@ -877,6 +903,13 @@ function chooseModel(input) {
|
|
|
877
903
|
const override = input.task.explicitOverride;
|
|
878
904
|
if (input.task.privacySensitive === true && input.config.privacyMode === "forceLocalOnSensitive") {
|
|
879
905
|
if (local === null) {
|
|
906
|
+
if (input.config.router.localOnly) {
|
|
907
|
+
return finalizeDecision(input, tier, frontier, budgetAction, blockedDecision(frontier.model, [
|
|
908
|
+
"privacy-force-local",
|
|
909
|
+
"privacy-force-local-none-configured",
|
|
910
|
+
"router-local-only"
|
|
911
|
+
], "privacy-local-only-none-configured"));
|
|
912
|
+
}
|
|
880
913
|
return finalizeDecision(input, tier, frontier, budgetAction, resolveFrontierPrimary(input, frontier.model, [
|
|
881
914
|
"privacy-force-local",
|
|
882
915
|
"privacy-force-local-none-configured"
|
|
@@ -1568,7 +1601,7 @@ function runtimeIdOfModel(model, config) {
|
|
|
1568
1601
|
}
|
|
1569
1602
|
function roleLocalModel(role, runtimeId, fallback) {
|
|
1570
1603
|
const pinned = role.localModels?.[runtimeId];
|
|
1571
|
-
return pinned === undefined ? fallback : {
|
|
1604
|
+
return pinned === undefined ? fallback : { ...fallback, modelID: pinned };
|
|
1572
1605
|
}
|
|
1573
1606
|
function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
1574
1607
|
if (decision2.routeKind !== "local") {
|
|
@@ -2016,7 +2049,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2016
2049
|
"rate limit",
|
|
2017
2050
|
"rate-limit",
|
|
2018
2051
|
"ratelimit",
|
|
2019
|
-
|
|
2052
|
+
/(?<!\d)429(?!\d)/,
|
|
2020
2053
|
"too many requests",
|
|
2021
2054
|
"quota exceeded"
|
|
2022
2055
|
],
|
|
@@ -2026,8 +2059,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2026
2059
|
[
|
|
2027
2060
|
"unauthorized",
|
|
2028
2061
|
"authentication",
|
|
2029
|
-
|
|
2030
|
-
"403",
|
|
2062
|
+
/(?<!\d)(?:401|403)(?!\d)/,
|
|
2031
2063
|
"forbidden",
|
|
2032
2064
|
"api key",
|
|
2033
2065
|
"invalid key",
|
|
@@ -2063,7 +2095,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2063
2095
|
"invalid_request",
|
|
2064
2096
|
"validation",
|
|
2065
2097
|
"bad request",
|
|
2066
|
-
|
|
2098
|
+
/(?<!\d)400(?!\d)/,
|
|
2067
2099
|
"unprocessable",
|
|
2068
2100
|
"malformed"
|
|
2069
2101
|
],
|
|
@@ -2085,10 +2117,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2085
2117
|
[
|
|
2086
2118
|
[
|
|
2087
2119
|
"internal server error",
|
|
2088
|
-
|
|
2089
|
-
"502",
|
|
2090
|
-
"503",
|
|
2091
|
-
"504",
|
|
2120
|
+
/(?<!\d)(?:500|502|503|504)(?!\d)/,
|
|
2092
2121
|
"service unavailable",
|
|
2093
2122
|
"bad gateway",
|
|
2094
2123
|
"overloaded"
|
|
@@ -2105,7 +2134,7 @@ var TIMEOUT_NEEDLES = [
|
|
|
2105
2134
|
];
|
|
2106
2135
|
function matchFailureCause(lowerReason) {
|
|
2107
2136
|
for (const [needles, cls] of FAILURE_CAUSE_RULES) {
|
|
2108
|
-
if (needles.some((needle) => lowerReason.includes(needle))) {
|
|
2137
|
+
if (needles.some((needle) => typeof needle === "string" ? lowerReason.includes(needle) : needle.test(lowerReason))) {
|
|
2109
2138
|
return cls;
|
|
2110
2139
|
}
|
|
2111
2140
|
}
|
|
@@ -3358,9 +3387,9 @@ async function loadRuntimeOpenTeamConfig(storage, options, path = DEFAULT_CONFIG
|
|
|
3358
3387
|
}
|
|
3359
3388
|
const configOptions = configOptionsFromPluginOptions(options);
|
|
3360
3389
|
const optionsFound = configOptions !== undefined;
|
|
3361
|
-
const overlayContent = await storage.read(overlayPath);
|
|
3390
|
+
const overlayContent = overlayPath === null ? undefined : await storage.read(overlayPath);
|
|
3362
3391
|
const overlayFound = overlayContent !== undefined;
|
|
3363
|
-
const overlayRaw = overlayFound ? parseConfigFileJson(overlayPath, overlayContent) : undefined;
|
|
3392
|
+
const overlayRaw = overlayFound && overlayPath !== null ? parseConfigFileJson(overlayPath, overlayContent) : undefined;
|
|
3364
3393
|
const mergedRaw = mergeConfigInputs(mergeConfigInputs(fileRaw, configOptions), overlayRaw);
|
|
3365
3394
|
const mergedSources = [
|
|
3366
3395
|
fileFound ? path : undefined,
|
|
@@ -3376,7 +3405,7 @@ async function loadRuntimeOpenTeamConfig(storage, options, path = DEFAULT_CONFIG
|
|
|
3376
3405
|
fileFound,
|
|
3377
3406
|
optionsFound,
|
|
3378
3407
|
overlayFound,
|
|
3379
|
-
searchedPaths: [path, overlayPath]
|
|
3408
|
+
searchedPaths: overlayPath === null ? [path] : [path, overlayPath]
|
|
3380
3409
|
};
|
|
3381
3410
|
}
|
|
3382
3411
|
|
|
@@ -4551,10 +4580,10 @@ function drillPanel() {
|
|
|
4551
4580
|
"</aside>"
|
|
4552
4581
|
].join("");
|
|
4553
4582
|
}
|
|
4554
|
-
function treeGraphPanel(projection, drilldownEnabled, disabled) {
|
|
4583
|
+
function treeGraphPanel(projection, drilldownEnabled, disabled, mode) {
|
|
4555
4584
|
return [
|
|
4556
4585
|
'<section class="panel graph-panel" id="panel-graph">',
|
|
4557
|
-
|
|
4586
|
+
`<h3>${graphPanelHeading(mode, disabled)}</h3>`,
|
|
4558
4587
|
disabled || projection === null ? "" : healthBanner(projection.health),
|
|
4559
4588
|
'<div id="tree-content" data-graph-mount>',
|
|
4560
4589
|
renderGraphView(projection, { disabled }),
|
|
@@ -4563,6 +4592,39 @@ function treeGraphPanel(projection, drilldownEnabled, disabled) {
|
|
|
4563
4592
|
"</section>"
|
|
4564
4593
|
].join("");
|
|
4565
4594
|
}
|
|
4595
|
+
var ACTIVE_TREE_COPY = {
|
|
4596
|
+
label: "Live agent tree",
|
|
4597
|
+
heading: "Agent tree · live",
|
|
4598
|
+
description: "Live agent topology. Graph updates arrive over the <code>graph</code> event on <code>/events</code>."
|
|
4599
|
+
};
|
|
4600
|
+
var SHADOW_TREE_COPY = {
|
|
4601
|
+
label: "Agent tree — last completed batch",
|
|
4602
|
+
heading: "Agent tree · last completed batch",
|
|
4603
|
+
description: 'Terminal states from the most recently completed batch. This is not work in progress; live updates require <code>graph.mode</code>: <code>"active"</code>.'
|
|
4604
|
+
};
|
|
4605
|
+
var DISABLED_TREE_COPY = {
|
|
4606
|
+
label: "Agent tree",
|
|
4607
|
+
heading: "Agent tree",
|
|
4608
|
+
description: 'Agent tree is disabled because the effective graph mode is <code>"off"</code>.'
|
|
4609
|
+
};
|
|
4610
|
+
function treeScreenCopy(mode, disabled) {
|
|
4611
|
+
if (disabled || mode === "off") {
|
|
4612
|
+
return DISABLED_TREE_COPY;
|
|
4613
|
+
}
|
|
4614
|
+
if (mode === "shadow") {
|
|
4615
|
+
return SHADOW_TREE_COPY;
|
|
4616
|
+
}
|
|
4617
|
+
return ACTIVE_TREE_COPY;
|
|
4618
|
+
}
|
|
4619
|
+
function graphPanelHeading(mode, disabled) {
|
|
4620
|
+
if (disabled || mode === "off") {
|
|
4621
|
+
return "Agent tree";
|
|
4622
|
+
}
|
|
4623
|
+
if (mode === "shadow") {
|
|
4624
|
+
return "Last completed batch";
|
|
4625
|
+
}
|
|
4626
|
+
return "Live graph";
|
|
4627
|
+
}
|
|
4566
4628
|
function graphDisabledHint() {
|
|
4567
4629
|
return [
|
|
4568
4630
|
'<div class="graph-disabled" role="status">',
|
|
@@ -4652,12 +4714,14 @@ function renderConsoleHtml(state, options = {}) {
|
|
|
4652
4714
|
const graphOptionProvided = options.graphView !== undefined;
|
|
4653
4715
|
const graphDrilldown = graphOptionProvided && options.drilldownEnabled === true;
|
|
4654
4716
|
const graphProjection = options.graphView?.projection ?? null;
|
|
4655
|
-
const
|
|
4717
|
+
const graphMode = options.graphView?.mode ?? "off";
|
|
4718
|
+
const graphDisabled = options.graphView === undefined || options.graphView.disabled === true || graphMode === "off";
|
|
4656
4719
|
const liveCount = graphOptionProvided && graphProjection !== null && !graphDisabled ? graphProjection.nodes.length : state.sessionsDetail.length;
|
|
4657
4720
|
const configEnabled = options.configEditor !== undefined;
|
|
4658
|
-
const
|
|
4721
|
+
const treeCopy = treeScreenCopy(graphMode, graphDisabled);
|
|
4722
|
+
const treeBody = treeGraphPanel(graphProjection, graphDrilldown, graphDisabled, graphMode);
|
|
4659
4723
|
const body = [
|
|
4660
|
-
screenSection("tree",
|
|
4724
|
+
screenSection("tree", treeCopy.label, treeCopy.heading, treeCopy.description, treeBody, true),
|
|
4661
4725
|
screenSection("routing", "Routing and telemetry", "Routing + telemetry", "Aggregate routing and cost telemetry from <code>GET /api/state</code> across all sessions.", routingScreenBody(state)),
|
|
4662
4726
|
screenSection("logs", "Logs and session activity", "Logs / activity", "Per-session activity. Prompts are referenced by hash only and never rendered in clear text.", logsScreenBody(state, terminalEnabled, ptyEnabled)),
|
|
4663
4727
|
screenSection("config", "Editable configuration", 'Configuration <span class="pill warn">editable</span>', "Edit the whole openteam JSON configuration. Roles are editable inside the JSON when present; unsupported surfaces are not shown.", configScreenBody(options.configEditor?.hasToken === true))
|
|
@@ -5558,7 +5622,10 @@ function readAuthorized2(request, url, token) {
|
|
|
5558
5622
|
return provided !== undefined && safeEqualToken(provided, token);
|
|
5559
5623
|
}
|
|
5560
5624
|
async function renderState(deps) {
|
|
5561
|
-
const graphView = deps.graphApi !== undefined ? {
|
|
5625
|
+
const graphView = deps.graphApi !== undefined ? {
|
|
5626
|
+
projection: await deps.graphApi.readView(),
|
|
5627
|
+
mode: deps.graphMode ?? "active"
|
|
5628
|
+
} : deps.graphDisabled === true ? { projection: null, disabled: true, mode: "off" } : undefined;
|
|
5562
5629
|
const liveConfig = deps.getConsoleConfig?.() ?? deps.config;
|
|
5563
5630
|
return renderConsoleHtml(buildConsoleState(await deps.readSnapshot()), {
|
|
5564
5631
|
refreshMs: liveConfig.refreshMs,
|
|
@@ -6229,6 +6296,7 @@ async function createConsoleRuntime(deps) {
|
|
|
6229
6296
|
...deps.console !== undefined ? { console: deps.console } : {},
|
|
6230
6297
|
...deps.storageApi !== undefined ? { storageApi: deps.storageApi } : {},
|
|
6231
6298
|
...graphApi !== undefined ? { graphApi } : {},
|
|
6299
|
+
...deps.graphMode !== undefined ? { graphMode: deps.graphMode } : {},
|
|
6232
6300
|
...graphDisabled ? { graphDisabled: true } : {}
|
|
6233
6301
|
});
|
|
6234
6302
|
const watchFn = deps.watch ?? ((path, listener) => fsWatch(path, { persistent: false }, listener));
|
|
@@ -7083,20 +7151,20 @@ function buildGraphView(input) {
|
|
|
7083
7151
|
}
|
|
7084
7152
|
|
|
7085
7153
|
// src/cli/graphViewProvider.ts
|
|
7086
|
-
function
|
|
7154
|
+
function selectRunsByRecency(journalRoot) {
|
|
7087
7155
|
if (!pathExists(journalRoot)) {
|
|
7088
|
-
return;
|
|
7156
|
+
return [];
|
|
7089
7157
|
}
|
|
7090
7158
|
let entries;
|
|
7091
7159
|
try {
|
|
7092
7160
|
entries = readdirSync(journalRoot);
|
|
7093
7161
|
} catch {
|
|
7094
|
-
return;
|
|
7162
|
+
return [];
|
|
7095
7163
|
}
|
|
7096
7164
|
if (entries.length === 0) {
|
|
7097
|
-
return;
|
|
7165
|
+
return [];
|
|
7098
7166
|
}
|
|
7099
|
-
|
|
7167
|
+
const runs = [];
|
|
7100
7168
|
for (const name of entries) {
|
|
7101
7169
|
const specFile = join4(journalRoot, name, "spec.json");
|
|
7102
7170
|
let mtime;
|
|
@@ -7105,47 +7173,66 @@ function selectMostRecentRun(journalRoot) {
|
|
|
7105
7173
|
} catch {
|
|
7106
7174
|
continue;
|
|
7107
7175
|
}
|
|
7108
|
-
|
|
7109
|
-
best = { runID: name, mtime };
|
|
7110
|
-
}
|
|
7176
|
+
runs.push({ runID: name, mtime });
|
|
7111
7177
|
}
|
|
7112
|
-
return
|
|
7178
|
+
return runs.sort((a, b) => {
|
|
7179
|
+
if (a.mtime !== b.mtime) {
|
|
7180
|
+
return b.mtime - a.mtime;
|
|
7181
|
+
}
|
|
7182
|
+
if (a.runID < b.runID) {
|
|
7183
|
+
return 1;
|
|
7184
|
+
}
|
|
7185
|
+
if (a.runID > b.runID) {
|
|
7186
|
+
return -1;
|
|
7187
|
+
}
|
|
7188
|
+
return 0;
|
|
7189
|
+
}).map((run) => run.runID);
|
|
7190
|
+
}
|
|
7191
|
+
function selectMostRecentRun(journalRoot) {
|
|
7192
|
+
return selectRunsByRecency(journalRoot)[0];
|
|
7113
7193
|
}
|
|
7114
7194
|
function createGraphViewProvider(deps) {
|
|
7115
7195
|
const selectRun = deps.selectRun ?? selectMostRecentRun;
|
|
7116
7196
|
const journal = createFsGraphJournal(deps.journalRoot);
|
|
7117
7197
|
return {
|
|
7118
7198
|
async readView() {
|
|
7119
|
-
const
|
|
7120
|
-
|
|
7199
|
+
const selected = selectRun(deps.journalRoot);
|
|
7200
|
+
const runIDs = selected === undefined ? [] : deps.selectRun === undefined ? [
|
|
7201
|
+
selected,
|
|
7202
|
+
...selectRunsByRecency(deps.journalRoot).filter((runID) => runID !== selected)
|
|
7203
|
+
] : [selected];
|
|
7204
|
+
if (runIDs.length === 0) {
|
|
7121
7205
|
return null;
|
|
7122
7206
|
}
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
|
|
7126
|
-
|
|
7127
|
-
|
|
7128
|
-
|
|
7129
|
-
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
|
|
7134
|
-
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7207
|
+
for (const runID of runIDs) {
|
|
7208
|
+
try {
|
|
7209
|
+
const loaded = await journal.load(runID);
|
|
7210
|
+
const telemetry = loaded.events.map(projectGraphEvent);
|
|
7211
|
+
const health = computeGraphRuntimeHealth({
|
|
7212
|
+
events: loaded.events,
|
|
7213
|
+
journal: "clean",
|
|
7214
|
+
lease: undefined,
|
|
7215
|
+
holder: "console",
|
|
7216
|
+
killSwitch: deps.killSwitch
|
|
7217
|
+
});
|
|
7218
|
+
return buildGraphView({
|
|
7219
|
+
spec: loaded.spec,
|
|
7220
|
+
state: loaded.state,
|
|
7221
|
+
telemetry,
|
|
7222
|
+
health
|
|
7223
|
+
});
|
|
7224
|
+
} catch (error) {
|
|
7225
|
+
if (error instanceof JournalError && error.code === "corrupt") {
|
|
7226
|
+
deps.log(`Graph view: journal for run "${runID}" is corrupt (${error.detail}); skipping.`);
|
|
7227
|
+
continue;
|
|
7228
|
+
}
|
|
7229
|
+
if (error instanceof JournalError && error.code === "not-found") {
|
|
7230
|
+
continue;
|
|
7231
|
+
}
|
|
7232
|
+
throw error;
|
|
7146
7233
|
}
|
|
7147
|
-
throw error;
|
|
7148
7234
|
}
|
|
7235
|
+
return null;
|
|
7149
7236
|
}
|
|
7150
7237
|
};
|
|
7151
7238
|
}
|
|
@@ -7197,7 +7284,7 @@ async function runConsoleServe(deps, options) {
|
|
|
7197
7284
|
endpoint,
|
|
7198
7285
|
...deps.serverPassword !== undefined ? { password: deps.serverPassword } : {}
|
|
7199
7286
|
}));
|
|
7200
|
-
const graphMode = config
|
|
7287
|
+
const graphMode = resolveGraphConfig(config, "file").effectiveMode;
|
|
7201
7288
|
const graphViewEnabled = config.console.graphView?.enabled === true;
|
|
7202
7289
|
const buildGraphView2 = deps.createGraphViewProvider ?? createGraphViewProvider;
|
|
7203
7290
|
const graphViewProvider = graphMode !== "off" && graphViewEnabled ? buildGraphView2({
|
|
@@ -7246,6 +7333,7 @@ async function runConsoleServe(deps, options) {
|
|
|
7246
7333
|
createPtyClient: makePtyClient
|
|
7247
7334
|
},
|
|
7248
7335
|
...graphViewProvider !== undefined ? { graphView: graphViewProvider } : {},
|
|
7336
|
+
graphMode,
|
|
7249
7337
|
...config.console.remoteStorage ? {
|
|
7250
7338
|
storageApi: {
|
|
7251
7339
|
storage: deps.storage,
|
|
@@ -8597,34 +8685,6 @@ function createGraphOperator(options) {
|
|
|
8597
8685
|
|
|
8598
8686
|
// src/cli/graphStatusSnapshot.ts
|
|
8599
8687
|
import { z as z16 } from "zod";
|
|
8600
|
-
|
|
8601
|
-
// src/config/resolve.ts
|
|
8602
|
-
function resolveGraphConfig(config, source) {
|
|
8603
|
-
const configuredMode = config.graph?.mode ?? "shadow";
|
|
8604
|
-
const killSwitch = config.graph?.killSwitch ?? false;
|
|
8605
|
-
const effectiveMode = killSwitch ? "off" : configuredMode;
|
|
8606
|
-
return {
|
|
8607
|
-
configuredMode,
|
|
8608
|
-
effectiveMode,
|
|
8609
|
-
executorEnabled: effectiveMode === "active",
|
|
8610
|
-
killSwitch,
|
|
8611
|
-
source
|
|
8612
|
-
};
|
|
8613
|
-
}
|
|
8614
|
-
function applyGraphGate(resolved, gateResult) {
|
|
8615
|
-
if (gateResult.allowed) {
|
|
8616
|
-
return { ...resolved, gateDenied: false, gateViolations: [] };
|
|
8617
|
-
}
|
|
8618
|
-
return {
|
|
8619
|
-
...resolved,
|
|
8620
|
-
effectiveMode: "off",
|
|
8621
|
-
executorEnabled: false,
|
|
8622
|
-
gateDenied: true,
|
|
8623
|
-
gateViolations: gateResult.violations
|
|
8624
|
-
};
|
|
8625
|
-
}
|
|
8626
|
-
|
|
8627
|
-
// src/cli/graphStatusSnapshot.ts
|
|
8628
8688
|
var activeRunRegistrySchema = z16.object({
|
|
8629
8689
|
runs: z16.array(z16.string().min(1))
|
|
8630
8690
|
}).strict();
|
|
@@ -11635,23 +11695,38 @@ function knownRuntime(id) {
|
|
|
11635
11695
|
function firstEnabled(runtimes) {
|
|
11636
11696
|
return runtimes.find((runtime) => runtime.enabled);
|
|
11637
11697
|
}
|
|
11698
|
+
function choiceKind(choice) {
|
|
11699
|
+
return choice.kind ?? choice.id;
|
|
11700
|
+
}
|
|
11701
|
+
function choiceProviderID(choice) {
|
|
11702
|
+
return choice.providerID ?? choice.id;
|
|
11703
|
+
}
|
|
11638
11704
|
function buildOpenTeamConfig(answers) {
|
|
11639
11705
|
const runtimes = answers.runtimes.filter((choice) => choice.enabled).map((choice) => {
|
|
11640
11706
|
const runtime = {
|
|
11641
11707
|
id: choice.id,
|
|
11642
11708
|
enabled: choice.enabled,
|
|
11643
|
-
defaultModel: {
|
|
11709
|
+
defaultModel: {
|
|
11710
|
+
providerID: choiceProviderID(choice),
|
|
11711
|
+
modelID: choice.defaultModelID
|
|
11712
|
+
},
|
|
11644
11713
|
maxConcurrency: choice.maxConcurrency ?? DEFAULT_LOCAL_MAX_CONCURRENCY
|
|
11645
11714
|
};
|
|
11715
|
+
if (choice.kind !== undefined && choice.kind !== choice.id) {
|
|
11716
|
+
runtime.kind = choice.kind;
|
|
11717
|
+
}
|
|
11646
11718
|
if (choice.baseURL !== undefined) {
|
|
11647
11719
|
runtime.baseURL = choice.baseURL;
|
|
11648
|
-
} else if (knownRuntime(choice
|
|
11720
|
+
} else if (knownRuntime(choiceKind(choice)).dynamicPort === true) {
|
|
11649
11721
|
runtime.discovery = "cli";
|
|
11650
11722
|
}
|
|
11651
11723
|
return runtime;
|
|
11652
11724
|
});
|
|
11653
11725
|
const primaryLocal = firstEnabled(answers.runtimes);
|
|
11654
|
-
const localDefault2 = primaryLocal !== undefined ? {
|
|
11726
|
+
const localDefault2 = primaryLocal !== undefined ? {
|
|
11727
|
+
providerID: choiceProviderID(primaryLocal),
|
|
11728
|
+
modelID: primaryLocal.defaultModelID
|
|
11729
|
+
} : null;
|
|
11655
11730
|
const localOnly = answers.localOnly === true && primaryLocal !== undefined;
|
|
11656
11731
|
return OpenTeamConfigSchema.parse({
|
|
11657
11732
|
baseline: {
|
|
@@ -11672,11 +11747,12 @@ function buildOpenTeamConfig(answers) {
|
|
|
11672
11747
|
}
|
|
11673
11748
|
function buildOpencodeConfig(answers) {
|
|
11674
11749
|
const provider = {};
|
|
11750
|
+
const providerOwner = new Map;
|
|
11675
11751
|
for (const choice of answers.runtimes) {
|
|
11676
11752
|
if (!choice.enabled) {
|
|
11677
11753
|
continue;
|
|
11678
11754
|
}
|
|
11679
|
-
const meta = knownRuntime(choice
|
|
11755
|
+
const meta = knownRuntime(choiceKind(choice));
|
|
11680
11756
|
const baseURL = choice.baseURL ?? meta.defaultBaseURL;
|
|
11681
11757
|
if (baseURL === undefined) {
|
|
11682
11758
|
continue;
|
|
@@ -11686,16 +11762,33 @@ function buildOpencodeConfig(answers) {
|
|
|
11686
11762
|
for (const modelID of modelIDs) {
|
|
11687
11763
|
models[modelID] = { name: modelID };
|
|
11688
11764
|
}
|
|
11689
|
-
|
|
11765
|
+
const providerID = choiceProviderID(choice);
|
|
11766
|
+
const owner = providerOwner.get(providerID);
|
|
11767
|
+
if (owner !== undefined) {
|
|
11768
|
+
if (owner.baseURL !== baseURL) {
|
|
11769
|
+
throw new Error(`local runtimes "${owner.instanceId}" and "${choice.id}" both use ` + `opencode provider "${providerID}" but declare different baseURLs ` + `(${owner.baseURL} vs ${baseURL}); give each instance a distinct ` + "providerID so opencode can reach both machines.");
|
|
11770
|
+
}
|
|
11771
|
+
const existing = provider[providerID];
|
|
11772
|
+
if (existing !== undefined) {
|
|
11773
|
+
provider[providerID] = {
|
|
11774
|
+
...existing,
|
|
11775
|
+
models: { ...existing.models, ...models }
|
|
11776
|
+
};
|
|
11777
|
+
}
|
|
11778
|
+
continue;
|
|
11779
|
+
}
|
|
11780
|
+
const name = choice.id === choiceKind(choice) ? `${meta.label} (local)` : `${meta.label} (local · ${choice.id})`;
|
|
11781
|
+
provider[providerID] = {
|
|
11690
11782
|
npm: "@ai-sdk/openai-compatible",
|
|
11691
|
-
name
|
|
11783
|
+
name,
|
|
11692
11784
|
options: { baseURL },
|
|
11693
11785
|
models
|
|
11694
11786
|
};
|
|
11787
|
+
providerOwner.set(providerID, { instanceId: choice.id, baseURL });
|
|
11695
11788
|
}
|
|
11696
11789
|
const primaryLocal = firstEnabled(answers.runtimes);
|
|
11697
11790
|
const localOnly = answers.localOnly === true && primaryLocal !== undefined;
|
|
11698
|
-
const mainModel = localOnly && primaryLocal !== undefined ? `${primaryLocal
|
|
11791
|
+
const mainModel = localOnly && primaryLocal !== undefined ? `${choiceProviderID(primaryLocal)}/${primaryLocal.defaultModelID}` : `${answers.frontier.providerID}/${answers.frontier.modelID}`;
|
|
11699
11792
|
const config = {
|
|
11700
11793
|
$schema: "https://opencode.ai/config.json",
|
|
11701
11794
|
plugin: [OPENTEAM_PLUGIN_SPEC],
|
|
@@ -11705,7 +11798,7 @@ function buildOpencodeConfig(answers) {
|
|
|
11705
11798
|
config.provider = provider;
|
|
11706
11799
|
}
|
|
11707
11800
|
if (primaryLocal !== undefined) {
|
|
11708
|
-
config.small_model = `${primaryLocal
|
|
11801
|
+
config.small_model = `${choiceProviderID(primaryLocal)}/${primaryLocal.defaultModelID}`;
|
|
11709
11802
|
}
|
|
11710
11803
|
if (answers.yolo) {
|
|
11711
11804
|
config.permission = { "*": "allow" };
|
|
@@ -11910,6 +12003,62 @@ async function resolveEnabledRuntime(deps, meta, info) {
|
|
|
11910
12003
|
}
|
|
11911
12004
|
return choice;
|
|
11912
12005
|
}
|
|
12006
|
+
function instanceSuffix(index) {
|
|
12007
|
+
return index < 26 ? String.fromCharCode(97 + index) : String(index + 1);
|
|
12008
|
+
}
|
|
12009
|
+
async function promptSlotCount(prompt, meta) {
|
|
12010
|
+
const raw = await prompt.text({
|
|
12011
|
+
message: `How many concurrent generation slots does ${meta.label} have? (match its real capacity; leaving one free keeps interactive work responsive)`,
|
|
12012
|
+
placeholder: String(DEFAULT_LOCAL_MAX_CONCURRENCY),
|
|
12013
|
+
initial: String(DEFAULT_LOCAL_MAX_CONCURRENCY)
|
|
12014
|
+
});
|
|
12015
|
+
const parsed = Number.parseInt(raw.trim(), 10);
|
|
12016
|
+
return Number.isInteger(parsed) && parsed > 0 ? parsed : DEFAULT_LOCAL_MAX_CONCURRENCY;
|
|
12017
|
+
}
|
|
12018
|
+
async function promptInstanceId(prompt, meta, defaultId, usedIds) {
|
|
12019
|
+
for (;; ) {
|
|
12020
|
+
const raw = await prompt.text({
|
|
12021
|
+
message: `Instance id for this ${meta.label} machine (unique across your fleet)`,
|
|
12022
|
+
placeholder: defaultId,
|
|
12023
|
+
initial: defaultId
|
|
12024
|
+
});
|
|
12025
|
+
const id = raw.trim().length > 0 ? raw.trim() : defaultId;
|
|
12026
|
+
if (!usedIds.has(id)) {
|
|
12027
|
+
return id;
|
|
12028
|
+
}
|
|
12029
|
+
prompt.note(`Instance id "${id}" is already used; enter a different one.`, "Duplicate instance id");
|
|
12030
|
+
}
|
|
12031
|
+
}
|
|
12032
|
+
async function resolveRuntimeInstances(deps, meta, info, usedIds) {
|
|
12033
|
+
const fleet = await deps.prompt.confirm({
|
|
12034
|
+
message: `Do you run more than one ${meta.label} machine? (declare each host with its own URL and slot count)`,
|
|
12035
|
+
initial: false
|
|
12036
|
+
});
|
|
12037
|
+
if (!fleet) {
|
|
12038
|
+
const choice = await resolveEnabledRuntime(deps, meta, info);
|
|
12039
|
+
choice.maxConcurrency = await promptSlotCount(deps.prompt, meta);
|
|
12040
|
+
usedIds.add(choice.id);
|
|
12041
|
+
return [choice];
|
|
12042
|
+
}
|
|
12043
|
+
const instances = [];
|
|
12044
|
+
for (;; ) {
|
|
12045
|
+
const defaultId = `${meta.id}-${instanceSuffix(instances.length)}`;
|
|
12046
|
+
const id = await promptInstanceId(deps.prompt, meta, defaultId, usedIds);
|
|
12047
|
+
const choice = await resolveEnabledRuntime(deps, meta, info);
|
|
12048
|
+
choice.id = id;
|
|
12049
|
+
choice.kind = meta.id;
|
|
12050
|
+
choice.maxConcurrency = await promptSlotCount(deps.prompt, meta);
|
|
12051
|
+
usedIds.add(id);
|
|
12052
|
+
instances.push(choice);
|
|
12053
|
+
const another = await deps.prompt.confirm({
|
|
12054
|
+
message: `Add another ${meta.label} machine?`,
|
|
12055
|
+
initial: false
|
|
12056
|
+
});
|
|
12057
|
+
if (!another) {
|
|
12058
|
+
return instances;
|
|
12059
|
+
}
|
|
12060
|
+
}
|
|
12061
|
+
}
|
|
11913
12062
|
async function runSetup(deps) {
|
|
11914
12063
|
const { prompt } = deps;
|
|
11915
12064
|
try {
|
|
@@ -11937,6 +12086,7 @@ async function runSetup(deps) {
|
|
|
11937
12086
|
});
|
|
11938
12087
|
const enabled = new Set(enabledIds.filter((id) => id !== RUNTIME_NONE));
|
|
11939
12088
|
const runtimes = [];
|
|
12089
|
+
const usedIds = new Set;
|
|
11940
12090
|
for (const meta of KNOWN_RUNTIMES) {
|
|
11941
12091
|
const info = detectedById.get(meta.id);
|
|
11942
12092
|
const isEnabled = enabled.has(meta.id);
|
|
@@ -11954,7 +12104,7 @@ async function runSetup(deps) {
|
|
|
11954
12104
|
runtimes.push(choice);
|
|
11955
12105
|
continue;
|
|
11956
12106
|
}
|
|
11957
|
-
runtimes.push(await
|
|
12107
|
+
runtimes.push(...await resolveRuntimeInstances(deps, meta, info, usedIds));
|
|
11958
12108
|
}
|
|
11959
12109
|
const hasLocalEnabled = enabled.size > 0;
|
|
11960
12110
|
const localOnly = hasLocalEnabled ? await prompt.confirm({
|
|
@@ -11976,11 +12126,15 @@ async function runSetup(deps) {
|
|
|
11976
12126
|
"session itself does not reach a frontier provider either.",
|
|
11977
12127
|
"",
|
|
11978
12128
|
`A baseline is still recorded (${frontier.providerID}/${frontier.modelID})`,
|
|
11979
|
-
"but stays unused. Set router.localOnly to false to re-enable it."
|
|
12129
|
+
"but stays unused. Set router.localOnly to false to re-enable it.",
|
|
12130
|
+
"",
|
|
12131
|
+
"Routing mode set to 'balanced' and privacy to 'forceLocalOnSensitive'",
|
|
12132
|
+
"automatically — in local-only mode every task stays local regardless,",
|
|
12133
|
+
"so these settings cannot change behaviour."
|
|
11980
12134
|
].join(`
|
|
11981
12135
|
`), "Local-only mode");
|
|
11982
12136
|
}
|
|
11983
|
-
const routerMode = await prompt.select({
|
|
12137
|
+
const routerMode = localOnly ? "balanced" : await prompt.select({
|
|
11984
12138
|
message: "Routing mode",
|
|
11985
12139
|
choices: [
|
|
11986
12140
|
{ value: "balanced", label: "balanced (recommended)" },
|
|
@@ -11999,7 +12153,7 @@ async function runSetup(deps) {
|
|
|
11999
12153
|
].join(`
|
|
12000
12154
|
`), "Frontier-only mode");
|
|
12001
12155
|
}
|
|
12002
|
-
const privacyMode = await prompt.select({
|
|
12156
|
+
const privacyMode = localOnly ? "forceLocalOnSensitive" : await prompt.select({
|
|
12003
12157
|
message: "Privacy for sensitive prompts",
|
|
12004
12158
|
choices: [
|
|
12005
12159
|
{
|
|
@@ -15685,7 +15839,7 @@ async function buildMemoryRuntimeFromConfig(config, deps, options = {}) {
|
|
|
15685
15839
|
// package.json
|
|
15686
15840
|
var package_default = {
|
|
15687
15841
|
name: "@jmanuelcorral/openteam",
|
|
15688
|
-
version: "0.
|
|
15842
|
+
version: "0.15.1",
|
|
15689
15843
|
packageManager: "bun@1.3.14",
|
|
15690
15844
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
15691
15845
|
license: "MIT",
|
|
@@ -15857,12 +16011,12 @@ async function readConfigFile(path4, resolution) {
|
|
|
15857
16011
|
}
|
|
15858
16012
|
}
|
|
15859
16013
|
async function loadConfig(path4, resolution = { explicit: false }) {
|
|
15860
|
-
const
|
|
15861
|
-
|
|
15862
|
-
|
|
15863
|
-
}
|
|
15864
|
-
const
|
|
15865
|
-
return
|
|
16014
|
+
const configStorage = resolution.explicit ? {
|
|
16015
|
+
...storage,
|
|
16016
|
+
read: (requestedPath) => requestedPath === path4 ? readConfigFile(path4, resolution) : storage.read(requestedPath)
|
|
16017
|
+
} : storage;
|
|
16018
|
+
const overlayPath = resolution.explicit ? null : DEFAULT_LOCAL_OVERLAY_PATH;
|
|
16019
|
+
return (await loadRuntimeOpenTeamConfig(configStorage, undefined, path4, overlayPath)).config;
|
|
15866
16020
|
}
|
|
15867
16021
|
async function saveConfig(config, path4, resolution = { explicit: false }) {
|
|
15868
16022
|
if (!resolution.explicit) {
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ModelCapabilityProfile } from "../capabilities/types";
|
|
2
2
|
import { type OpenTeamConfig, type PrivacyMode, type RouterMode } from "../config/schema";
|
|
3
|
-
import type { LocalRuntimeId } from "../local/types";
|
|
3
|
+
import type { LocalRuntimeId, LocalRuntimeKind } from "../local/types";
|
|
4
4
|
import type { CliResult } from "./dispatch";
|
|
5
5
|
import { type FrontierChoice as FrontierChoiceType } from "./frontierCatalog";
|
|
6
6
|
/** Nombre del paquete npm del plugin, declarado en el opencode.json generado. */
|
|
@@ -73,7 +73,7 @@ export declare function buildOpencodeGitignore(existing?: string): string;
|
|
|
73
73
|
*/
|
|
74
74
|
export declare function missingGeneratedStateRules(gitignore: string): string[];
|
|
75
75
|
export type KnownRuntime = {
|
|
76
|
-
id:
|
|
76
|
+
id: LocalRuntimeKind;
|
|
77
77
|
label: string;
|
|
78
78
|
defaultBaseURL?: string;
|
|
79
79
|
fallbackModelID: string;
|
|
@@ -93,16 +93,36 @@ export type DetectedRuntime = {
|
|
|
93
93
|
};
|
|
94
94
|
export type RuntimeChoice = {
|
|
95
95
|
id: LocalRuntimeId;
|
|
96
|
+
/**
|
|
97
|
+
* Adapter kind of this instance (#214/#217). Optional so pre-fleet
|
|
98
|
+
* construction sites (where the id IS the kind) stay valid; when absent the
|
|
99
|
+
* id is treated as the kind. `buildOpenTeamConfig` emits an explicit `kind`
|
|
100
|
+
* only when it differs from the instance id, keeping single-instance output
|
|
101
|
+
* byte-identical.
|
|
102
|
+
*/
|
|
103
|
+
kind?: LocalRuntimeKind;
|
|
104
|
+
/**
|
|
105
|
+
* opencode provider this instance's model resolves against (#216/#217).
|
|
106
|
+
* Optional and defaults to the instance `id`, never the kind: opencode holds a
|
|
107
|
+
* single `baseURL` per provider entry, so two same-kind hosts must resolve to
|
|
108
|
+
* two distinct providers or the fleet silently collapses onto one machine. For
|
|
109
|
+
* a single-instance install id == kind, so the default keeps output
|
|
110
|
+
* byte-identical. Kept separately settable for the rare case where two
|
|
111
|
+
* instances genuinely share one endpoint.
|
|
112
|
+
*/
|
|
113
|
+
providerID?: string;
|
|
96
114
|
enabled: boolean;
|
|
97
115
|
baseURL?: string;
|
|
98
116
|
defaultModelID: string;
|
|
99
117
|
models: string[];
|
|
100
118
|
/**
|
|
101
|
-
* Concurrent generation slots this runtime really has (#144/#207).
|
|
102
|
-
* the
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
119
|
+
* Concurrent generation slots this runtime really has (#144/#207/#217).
|
|
120
|
+
* Elicited per instance by the wizard (gap #217 was that it never asked).
|
|
121
|
+
* Optional on the answer so existing construction sites stay valid;
|
|
122
|
+
* `buildOpenTeamConfig` falls back to `DEFAULT_LOCAL_MAX_CONCURRENCY` and
|
|
123
|
+
* always writes the resolved value, so the cap in force is visible in the
|
|
124
|
+
* generated file instead of being an invisible read-time default nobody knows
|
|
125
|
+
* to override.
|
|
106
126
|
*/
|
|
107
127
|
maxConcurrency?: number;
|
|
108
128
|
};
|
|
@@ -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,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/config/runtime.d.ts
CHANGED
|
@@ -57,6 +57,6 @@ export declare function mergeConfigInputs(fileConfig: unknown, options: unknown)
|
|
|
57
57
|
export declare function parseConfigFileJson(path: string, content: string): unknown;
|
|
58
58
|
export declare function validateConfigFile(path: string, raw: unknown): OpenTeamConfig;
|
|
59
59
|
export declare function validateConfigInput(label: string, raw: unknown): OpenTeamConfig;
|
|
60
|
-
export declare function loadRuntimeOpenTeamConfig(storage: StorageProvider, options: unknown, path?: string, overlayPath?: string): Promise<RuntimeConfigResolution>;
|
|
60
|
+
export declare function loadRuntimeOpenTeamConfig(storage: StorageProvider, options: unknown, path?: string, overlayPath?: string | null): Promise<RuntimeConfigResolution>;
|
|
61
61
|
export {};
|
|
62
62
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,WAAW,YACtB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,EACP,cAAc,EACd,eAAe,CACP,CAAC;AAGX,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAMvD,eAAO,MAAM,kCAAkC;;;;kBAMpC,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;mBAKrC,CAAC;AAEL,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;kBAM3B,CAAC;AAEZ,eAAO,MAAM,gCAAgC,EAAE,WAAW,CACxD,MAAM,EACN,SAAS,MAAM,EAAE,CAOjB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAa5E,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,CAgBrE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,gBAAgB,CAKtE;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,UAAU,GAAG,SAAS,CAcxB;AAcD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAWT;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAU1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,cAAc,CAE7E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,GACX,cAAc,CAMhB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,EAChB,IAAI,SAAsB,EAC1B,WAAW,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAM3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,WAAW,YACtB,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,EACT,aAAa,EACb,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,EACP,cAAc,EACd,eAAe,CACP,CAAC;AAGX,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAMvD,eAAO,MAAM,kCAAkC;;;;kBAMpC,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;mBAKrC,CAAC;AAEL,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;kBAM3B,CAAC;AAEZ,eAAO,MAAM,gCAAgC,EAAE,WAAW,CACxD,MAAM,EACN,SAAS,MAAM,EAAE,CAOjB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAa5E,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,CAgBrE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,gBAAgB,CAKtE;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,UAAU,GAAG,SAAS,CAcxB;AAcD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAWT;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAU1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,cAAc,CAE7E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,GACX,cAAc,CAMhB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,OAAO,EAChB,IAAI,SAAsB,EAC1B,WAAW,GAAE,MAAM,GAAG,IAAiC,GACtD,OAAO,CAAC,uBAAuB,CAAC,CAsDlC"}
|
package/dist/console/render.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { GraphMode } from "../config/schema";
|
|
1
2
|
import type { GraphViewProjectionV1 } from "../telemetry/graphView";
|
|
2
3
|
import type { ConsoleState } from "./types";
|
|
3
4
|
export declare const GRAPH_EMPTY_REMEDIATION: "No graph run yet. The tree fills when openteam-orchestrate dispatches roles; ordinary chat does not create a graph run.";
|
|
@@ -27,6 +28,8 @@ export type RenderOptions = {
|
|
|
27
28
|
*/
|
|
28
29
|
graphView?: {
|
|
29
30
|
readonly projection: GraphViewProjectionV1 | null;
|
|
31
|
+
/** Effective graph mode resolved by the caller; render stays pure. */
|
|
32
|
+
readonly mode: GraphMode;
|
|
30
33
|
/**
|
|
31
34
|
* `true` when the graph is disabled by config (`graph.mode` == `off`): the
|
|
32
35
|
* tree screen renders remediation guidance instead of the DAG.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/console/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/console/render.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAQlD,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAGV,YAAY,EAIb,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,uBAAuB,EAClC,yHAAkI,CAAC;AASrI,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AAwmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,EACxC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,MAAM,CA2BR;AAuOD,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;QAClD,sEAAsE;QACtE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QACzB;;;WAGG;QACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAmGR"}
|
package/dist/index.js
CHANGED
|
@@ -3473,9 +3473,9 @@ async function loadRuntimeOpenTeamConfig(storage, options, path = DEFAULT_CONFIG
|
|
|
3473
3473
|
}
|
|
3474
3474
|
const configOptions = configOptionsFromPluginOptions(options);
|
|
3475
3475
|
const optionsFound = configOptions !== undefined;
|
|
3476
|
-
const overlayContent = await storage.read(overlayPath);
|
|
3476
|
+
const overlayContent = overlayPath === null ? undefined : await storage.read(overlayPath);
|
|
3477
3477
|
const overlayFound = overlayContent !== undefined;
|
|
3478
|
-
const overlayRaw = overlayFound ? parseConfigFileJson(overlayPath, overlayContent) : undefined;
|
|
3478
|
+
const overlayRaw = overlayFound && overlayPath !== null ? parseConfigFileJson(overlayPath, overlayContent) : undefined;
|
|
3479
3479
|
const mergedRaw = mergeConfigInputs(mergeConfigInputs(fileRaw, configOptions), overlayRaw);
|
|
3480
3480
|
const mergedSources = [
|
|
3481
3481
|
fileFound ? path : undefined,
|
|
@@ -3491,7 +3491,7 @@ async function loadRuntimeOpenTeamConfig(storage, options, path = DEFAULT_CONFIG
|
|
|
3491
3491
|
fileFound,
|
|
3492
3492
|
optionsFound,
|
|
3493
3493
|
overlayFound,
|
|
3494
|
-
searchedPaths: [path, overlayPath]
|
|
3494
|
+
searchedPaths: overlayPath === null ? [path] : [path, overlayPath]
|
|
3495
3495
|
};
|
|
3496
3496
|
}
|
|
3497
3497
|
|
|
@@ -5820,6 +5820,13 @@ function chooseModel(input) {
|
|
|
5820
5820
|
const override = input.task.explicitOverride;
|
|
5821
5821
|
if (input.task.privacySensitive === true && input.config.privacyMode === "forceLocalOnSensitive") {
|
|
5822
5822
|
if (local === null) {
|
|
5823
|
+
if (input.config.router.localOnly) {
|
|
5824
|
+
return finalizeDecision(input, tier, frontier, budgetAction, blockedDecision(frontier.model, [
|
|
5825
|
+
"privacy-force-local",
|
|
5826
|
+
"privacy-force-local-none-configured",
|
|
5827
|
+
"router-local-only"
|
|
5828
|
+
], "privacy-local-only-none-configured"));
|
|
5829
|
+
}
|
|
5823
5830
|
return finalizeDecision(input, tier, frontier, budgetAction, resolveFrontierPrimary(input, frontier.model, [
|
|
5824
5831
|
"privacy-force-local",
|
|
5825
5832
|
"privacy-force-local-none-configured"
|
|
@@ -5985,7 +5992,7 @@ function runtimeIdOfModel(model, config) {
|
|
|
5985
5992
|
}
|
|
5986
5993
|
function roleLocalModel(role, runtimeId, fallback) {
|
|
5987
5994
|
const pinned = role.localModels?.[runtimeId];
|
|
5988
|
-
return pinned === undefined ? fallback : {
|
|
5995
|
+
return pinned === undefined ? fallback : { ...fallback, modelID: pinned };
|
|
5989
5996
|
}
|
|
5990
5997
|
function selectDispatchRuntime(role, decision2, reachable, config) {
|
|
5991
5998
|
if (decision2.routeKind !== "local") {
|
|
@@ -6433,7 +6440,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6433
6440
|
"rate limit",
|
|
6434
6441
|
"rate-limit",
|
|
6435
6442
|
"ratelimit",
|
|
6436
|
-
|
|
6443
|
+
/(?<!\d)429(?!\d)/,
|
|
6437
6444
|
"too many requests",
|
|
6438
6445
|
"quota exceeded"
|
|
6439
6446
|
],
|
|
@@ -6443,8 +6450,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6443
6450
|
[
|
|
6444
6451
|
"unauthorized",
|
|
6445
6452
|
"authentication",
|
|
6446
|
-
|
|
6447
|
-
"403",
|
|
6453
|
+
/(?<!\d)(?:401|403)(?!\d)/,
|
|
6448
6454
|
"forbidden",
|
|
6449
6455
|
"api key",
|
|
6450
6456
|
"invalid key",
|
|
@@ -6480,7 +6486,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6480
6486
|
"invalid_request",
|
|
6481
6487
|
"validation",
|
|
6482
6488
|
"bad request",
|
|
6483
|
-
|
|
6489
|
+
/(?<!\d)400(?!\d)/,
|
|
6484
6490
|
"unprocessable",
|
|
6485
6491
|
"malformed"
|
|
6486
6492
|
],
|
|
@@ -6502,10 +6508,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6502
6508
|
[
|
|
6503
6509
|
[
|
|
6504
6510
|
"internal server error",
|
|
6505
|
-
|
|
6506
|
-
"502",
|
|
6507
|
-
"503",
|
|
6508
|
-
"504",
|
|
6511
|
+
/(?<!\d)(?:500|502|503|504)(?!\d)/,
|
|
6509
6512
|
"service unavailable",
|
|
6510
6513
|
"bad gateway",
|
|
6511
6514
|
"overloaded"
|
|
@@ -6522,7 +6525,7 @@ var TIMEOUT_NEEDLES = [
|
|
|
6522
6525
|
];
|
|
6523
6526
|
function matchFailureCause(lowerReason) {
|
|
6524
6527
|
for (const [needles, cls] of FAILURE_CAUSE_RULES) {
|
|
6525
|
-
if (needles.some((needle) => lowerReason.includes(needle))) {
|
|
6528
|
+
if (needles.some((needle) => typeof needle === "string" ? lowerReason.includes(needle) : needle.test(lowerReason))) {
|
|
6526
6529
|
return cls;
|
|
6527
6530
|
}
|
|
6528
6531
|
}
|
|
@@ -12690,6 +12693,42 @@ function buildGraphSpecFromAssignments(assignments, batchID) {
|
|
|
12690
12693
|
}));
|
|
12691
12694
|
return { version: 1, runID: batchID, nodes };
|
|
12692
12695
|
}
|
|
12696
|
+
function assertNeverTelemetryFailureClass(cls) {
|
|
12697
|
+
throw new Error(`unhandled telemetry failure class: ${cls}`);
|
|
12698
|
+
}
|
|
12699
|
+
function mapTelemetryFailureClassToErrorClass(cls) {
|
|
12700
|
+
switch (cls) {
|
|
12701
|
+
case "prompt-timeout":
|
|
12702
|
+
return "timeout";
|
|
12703
|
+
case "prompt-rate-limited":
|
|
12704
|
+
case "prompt-connection":
|
|
12705
|
+
case "prompt-server":
|
|
12706
|
+
return "transient";
|
|
12707
|
+
case "create-rejected":
|
|
12708
|
+
case "create-no-id":
|
|
12709
|
+
case "prompt-rejected":
|
|
12710
|
+
case "prompt-auth":
|
|
12711
|
+
case "prompt-content-filter":
|
|
12712
|
+
case "prompt-context-length":
|
|
12713
|
+
case "prompt-validation":
|
|
12714
|
+
return "permanent";
|
|
12715
|
+
case "unknown":
|
|
12716
|
+
return "unknown";
|
|
12717
|
+
default:
|
|
12718
|
+
return assertNeverTelemetryFailureClass(cls);
|
|
12719
|
+
}
|
|
12720
|
+
}
|
|
12721
|
+
function classifyShadowNodeError(result) {
|
|
12722
|
+
if (result === undefined || result.subsession.success) {
|
|
12723
|
+
return "unknown";
|
|
12724
|
+
}
|
|
12725
|
+
const failureReason = result.subsession.failureReason ?? result.record.failureReason;
|
|
12726
|
+
const failureStage = result.subsession.failureStage ?? result.record.failureStage;
|
|
12727
|
+
if (failureReason !== undefined || failureStage !== undefined) {
|
|
12728
|
+
return mapTelemetryFailureClassToErrorClass(classifyFailureForTelemetry(failureReason ?? "", failureStage));
|
|
12729
|
+
}
|
|
12730
|
+
return "unknown";
|
|
12731
|
+
}
|
|
12693
12732
|
function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
12694
12733
|
const runID = spec.runID;
|
|
12695
12734
|
const events = [
|
|
@@ -12706,8 +12745,9 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12706
12745
|
resultByRole.set(r.subsession.roleID, r);
|
|
12707
12746
|
}
|
|
12708
12747
|
const cancelledSet = new Set(cancelled);
|
|
12748
|
+
const succeededNodes = new Set;
|
|
12709
12749
|
for (const node of spec.nodes) {
|
|
12710
|
-
if (cancelledSet.has(node.id)) {
|
|
12750
|
+
if (cancelledSet.has(node.id) || node.dependsOn.some((dep) => !succeededNodes.has(dep))) {
|
|
12711
12751
|
events.push({
|
|
12712
12752
|
v: 1,
|
|
12713
12753
|
seq: events.length,
|
|
@@ -12738,7 +12778,7 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12738
12778
|
nodeID: node.id,
|
|
12739
12779
|
operationID: operation,
|
|
12740
12780
|
attemptID: attempt,
|
|
12741
|
-
errorClass:
|
|
12781
|
+
errorClass: classifyShadowNodeError(result)
|
|
12742
12782
|
});
|
|
12743
12783
|
} else {
|
|
12744
12784
|
events.push({
|
|
@@ -12751,9 +12791,10 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12751
12791
|
attemptID: attempt,
|
|
12752
12792
|
artifact: shadowArtifact2(runID, node.id)
|
|
12753
12793
|
});
|
|
12794
|
+
succeededNodes.add(node.id);
|
|
12754
12795
|
}
|
|
12755
12796
|
}
|
|
12756
|
-
const allSucceeded = cancelled.length === 0 &&
|
|
12797
|
+
const allSucceeded = cancelled.length === 0 && spec.nodes.every((node) => succeededNodes.has(node.id));
|
|
12757
12798
|
events.push({
|
|
12758
12799
|
v: 1,
|
|
12759
12800
|
seq: events.length,
|
|
@@ -12762,8 +12803,9 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12762
12803
|
});
|
|
12763
12804
|
return events;
|
|
12764
12805
|
}
|
|
12765
|
-
function buildObservation(batchID,
|
|
12766
|
-
const
|
|
12806
|
+
function buildObservation(batchID, assignments, results, parentSessionID, cancelled = []) {
|
|
12807
|
+
const resultByRole = new Map(results.map((result) => [result.subsession.roleID, result]));
|
|
12808
|
+
const allSucceeded = cancelled.length === 0 && assignments.every((assignment) => resultByRole.get(assignment.roleID)?.subsession.success === true);
|
|
12767
12809
|
return {
|
|
12768
12810
|
runID: batchID,
|
|
12769
12811
|
executed: true,
|
|
@@ -13266,7 +13308,7 @@ var createOtlpSpanExporter = (connection, config) => {
|
|
|
13266
13308
|
// package.json
|
|
13267
13309
|
var package_default = {
|
|
13268
13310
|
name: "@jmanuelcorral/openteam",
|
|
13269
|
-
version: "0.
|
|
13311
|
+
version: "0.15.1",
|
|
13270
13312
|
packageManager: "bun@1.3.14",
|
|
13271
13313
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
13272
13314
|
license: "MIT",
|
|
@@ -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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"}
|
|
@@ -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,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;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;
|
|
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,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;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;AAuBD;;;;;;;;;;;;;;;;;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,CAsC1B"}
|
|
@@ -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,
|
|
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,CAyPhE"}
|
package/dist/web/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createServer as createHttpServer } from "node:http";
|
|
2
|
-
import type { ConsoleConfig } from "../config/schema";
|
|
2
|
+
import type { ConsoleConfig, GraphMode } from "../config/schema";
|
|
3
3
|
import type { ConsoleClient } from "../console/opencodeClient";
|
|
4
4
|
import type { PtyClient } from "../console/pty";
|
|
5
5
|
import type { ConsoleInputs } from "../console/state";
|
|
@@ -62,6 +62,8 @@ export type ConsoleServerDeps = {
|
|
|
62
62
|
graphApi?: {
|
|
63
63
|
readView: () => Promise<GraphViewProjectionV1 | null>;
|
|
64
64
|
};
|
|
65
|
+
/** Effective graph mode resolved by the caller; used only for presentation copy. */
|
|
66
|
+
graphMode?: GraphMode;
|
|
65
67
|
/**
|
|
66
68
|
* `true` when the operator enabled the console agent-tree view
|
|
67
69
|
* (`console.graphView.enabled`) but the graph engine is off (`graph.mode` ==
|
package/dist/web/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,gBAAgB,EAIjC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,gBAAgB,EAIjC,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,eAAe,CAAC;AAQxE,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAW3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iEAAiE;IACjE,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,aAAa,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACvC,sCAAsC;IACtC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,8EAA8E;IAC9E,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB;;;;;WAKG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,+DAA+D;QAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC;QAClD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;KACnD,CAAC;IACF;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;KACvD,CAAC;IACF,oFAAoF;IACpF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AA0GF;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,aAAa,CAAC,CAuNxB"}
|
package/dist/web/start.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { watch as fsWatch } from "node:fs";
|
|
2
2
|
import type { AgentFile } from "../commands/agents";
|
|
3
|
-
import type { ConsoleConfig } from "../config/schema";
|
|
3
|
+
import type { ConsoleConfig, GraphMode } from "../config/schema";
|
|
4
4
|
import type { ConsoleClient } from "../console/opencodeClient";
|
|
5
5
|
import type { PtyClient } from "../console/pty";
|
|
6
6
|
import type { CommitView } from "../console/types";
|
|
@@ -59,6 +59,8 @@ export type ConsoleRuntimeDeps = {
|
|
|
59
59
|
graphView?: {
|
|
60
60
|
readView: () => Promise<GraphViewProjectionV1 | null>;
|
|
61
61
|
};
|
|
62
|
+
/** Effective graph mode resolved by the CLI/plugin composition root. */
|
|
63
|
+
graphMode?: GraphMode;
|
|
62
64
|
/** Inyectables para tests. */
|
|
63
65
|
serve?: typeof import("./server").createConsoleServer;
|
|
64
66
|
watch?: (path: string, listener: () => void) => ReturnType<typeof fsWatch>;
|
package/dist/web/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/web/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/web/start.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jmanuelcorral/openteam",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.1",
|
|
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",
|