@jmanuelcorral/openteam 0.15.0 → 0.16.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/README.es.md +1 -1
- package/README.md +1 -1
- 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 +157 -87
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/config/errors.d.ts.map +1 -1
- package/dist/config/schema.d.ts +22 -0
- package/dist/config/schema.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.d.ts.map +1 -1
- package/dist/index.js +162 -33
- package/dist/local/concurrency.d.ts +74 -16
- package/dist/local/concurrency.d.ts.map +1 -1
- package/dist/orchestrator/coordinator.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
|
@@ -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.16.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.16.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 |
|
|
@@ -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
|
|
|
@@ -422,7 +448,8 @@ var LocalRuntimeSchema = z2.object({
|
|
|
422
448
|
baseURL: z2.string().url().optional(),
|
|
423
449
|
discovery: z2.enum(["cli", "sdk", "manual"]).optional(),
|
|
424
450
|
defaultModel: ModelRefSchema,
|
|
425
|
-
maxConcurrency: z2.number().int().positive().optional()
|
|
451
|
+
maxConcurrency: z2.number().int().positive().optional(),
|
|
452
|
+
reservedInteractiveSlots: z2.number().int().nonnegative().optional()
|
|
426
453
|
}).strict().superRefine((runtime, ctx) => {
|
|
427
454
|
const resolvedKind = runtime.kind ?? runtime.id;
|
|
428
455
|
if (!LocalRuntimeKindSchema.safeParse(resolvedKind).success) {
|
|
@@ -877,6 +904,13 @@ function chooseModel(input) {
|
|
|
877
904
|
const override = input.task.explicitOverride;
|
|
878
905
|
if (input.task.privacySensitive === true && input.config.privacyMode === "forceLocalOnSensitive") {
|
|
879
906
|
if (local === null) {
|
|
907
|
+
if (input.config.router.localOnly) {
|
|
908
|
+
return finalizeDecision(input, tier, frontier, budgetAction, blockedDecision(frontier.model, [
|
|
909
|
+
"privacy-force-local",
|
|
910
|
+
"privacy-force-local-none-configured",
|
|
911
|
+
"router-local-only"
|
|
912
|
+
], "privacy-local-only-none-configured"));
|
|
913
|
+
}
|
|
880
914
|
return finalizeDecision(input, tier, frontier, budgetAction, resolveFrontierPrimary(input, frontier.model, [
|
|
881
915
|
"privacy-force-local",
|
|
882
916
|
"privacy-force-local-none-configured"
|
|
@@ -1867,6 +1901,9 @@ function warnUnknownRole(roleID, warn, warnedRoles) {
|
|
|
1867
1901
|
function roleFor(input) {
|
|
1868
1902
|
return getRoleProfile(input.roleID, input.config.orchestrator?.roles) ?? synthesiseFallbackProfile(input.roleID);
|
|
1869
1903
|
}
|
|
1904
|
+
function priorityForRole(role) {
|
|
1905
|
+
return role.roleID === "scribe" ? "background" : "worker";
|
|
1906
|
+
}
|
|
1870
1907
|
function mandatoryLocalRuntimeMessage(roleID) {
|
|
1871
1908
|
return `openteam: role "${roleID}" requires a local runtime, but no local runtime is reachable. ` + `This role must run locally and will not fall back to a frontier provider. ` + `Start one of the supported local runtimes (Ollama, LM Studio, or Lemonade) and try again. ` + "Run `openteam doctor` to diagnose your local runtime configuration.";
|
|
1872
1909
|
}
|
|
@@ -2016,7 +2053,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2016
2053
|
"rate limit",
|
|
2017
2054
|
"rate-limit",
|
|
2018
2055
|
"ratelimit",
|
|
2019
|
-
|
|
2056
|
+
/(?<!\d)429(?!\d)/,
|
|
2020
2057
|
"too many requests",
|
|
2021
2058
|
"quota exceeded"
|
|
2022
2059
|
],
|
|
@@ -2026,8 +2063,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2026
2063
|
[
|
|
2027
2064
|
"unauthorized",
|
|
2028
2065
|
"authentication",
|
|
2029
|
-
|
|
2030
|
-
"403",
|
|
2066
|
+
/(?<!\d)(?:401|403)(?!\d)/,
|
|
2031
2067
|
"forbidden",
|
|
2032
2068
|
"api key",
|
|
2033
2069
|
"invalid key",
|
|
@@ -2063,7 +2099,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2063
2099
|
"invalid_request",
|
|
2064
2100
|
"validation",
|
|
2065
2101
|
"bad request",
|
|
2066
|
-
|
|
2102
|
+
/(?<!\d)400(?!\d)/,
|
|
2067
2103
|
"unprocessable",
|
|
2068
2104
|
"malformed"
|
|
2069
2105
|
],
|
|
@@ -2085,10 +2121,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
2085
2121
|
[
|
|
2086
2122
|
[
|
|
2087
2123
|
"internal server error",
|
|
2088
|
-
|
|
2089
|
-
"502",
|
|
2090
|
-
"503",
|
|
2091
|
-
"504",
|
|
2124
|
+
/(?<!\d)(?:500|502|503|504)(?!\d)/,
|
|
2092
2125
|
"service unavailable",
|
|
2093
2126
|
"bad gateway",
|
|
2094
2127
|
"overloaded"
|
|
@@ -2105,7 +2138,7 @@ var TIMEOUT_NEEDLES = [
|
|
|
2105
2138
|
];
|
|
2106
2139
|
function matchFailureCause(lowerReason) {
|
|
2107
2140
|
for (const [needles, cls] of FAILURE_CAUSE_RULES) {
|
|
2108
|
-
if (needles.some((needle) => lowerReason.includes(needle))) {
|
|
2141
|
+
if (needles.some((needle) => typeof needle === "string" ? lowerReason.includes(needle) : needle.test(lowerReason))) {
|
|
2109
2142
|
return cls;
|
|
2110
2143
|
}
|
|
2111
2144
|
}
|
|
@@ -2229,10 +2262,11 @@ async function runRoleTaskWithCorrelation(input, deps, correlation, batch) {
|
|
|
2229
2262
|
let queueObservation;
|
|
2230
2263
|
if (runtimeId !== undefined && deps.runtimeLimiter !== undefined) {
|
|
2231
2264
|
const limiter = deps.runtimeLimiter;
|
|
2232
|
-
|
|
2265
|
+
const priority = priorityForRole(role);
|
|
2266
|
+
release = limiter.tryAcquire(runtimeId, priority);
|
|
2233
2267
|
let waitedMs = 0;
|
|
2234
2268
|
if (release === undefined) {
|
|
2235
|
-
const acquisition = await limiter.acquire(runtimeId);
|
|
2269
|
+
const acquisition = await limiter.acquire(runtimeId, priority);
|
|
2236
2270
|
release = acquisition.release;
|
|
2237
2271
|
waitedMs = acquisition.waitedMs;
|
|
2238
2272
|
}
|
|
@@ -3040,7 +3074,8 @@ var KNOWN_CONFIG_KEYS_BY_PATH = new Map([
|
|
|
3040
3074
|
"baseURL",
|
|
3041
3075
|
"discovery",
|
|
3042
3076
|
"defaultModel",
|
|
3043
|
-
"maxConcurrency"
|
|
3077
|
+
"maxConcurrency",
|
|
3078
|
+
"reservedInteractiveSlots"
|
|
3044
3079
|
]
|
|
3045
3080
|
],
|
|
3046
3081
|
["local.runtimes[].defaultModel", MODEL_REF_KEYS],
|
|
@@ -4551,10 +4586,10 @@ function drillPanel() {
|
|
|
4551
4586
|
"</aside>"
|
|
4552
4587
|
].join("");
|
|
4553
4588
|
}
|
|
4554
|
-
function treeGraphPanel(projection, drilldownEnabled, disabled) {
|
|
4589
|
+
function treeGraphPanel(projection, drilldownEnabled, disabled, mode) {
|
|
4555
4590
|
return [
|
|
4556
4591
|
'<section class="panel graph-panel" id="panel-graph">',
|
|
4557
|
-
|
|
4592
|
+
`<h3>${graphPanelHeading(mode, disabled)}</h3>`,
|
|
4558
4593
|
disabled || projection === null ? "" : healthBanner(projection.health),
|
|
4559
4594
|
'<div id="tree-content" data-graph-mount>',
|
|
4560
4595
|
renderGraphView(projection, { disabled }),
|
|
@@ -4563,6 +4598,39 @@ function treeGraphPanel(projection, drilldownEnabled, disabled) {
|
|
|
4563
4598
|
"</section>"
|
|
4564
4599
|
].join("");
|
|
4565
4600
|
}
|
|
4601
|
+
var ACTIVE_TREE_COPY = {
|
|
4602
|
+
label: "Live agent tree",
|
|
4603
|
+
heading: "Agent tree · live",
|
|
4604
|
+
description: "Live agent topology. Graph updates arrive over the <code>graph</code> event on <code>/events</code>."
|
|
4605
|
+
};
|
|
4606
|
+
var SHADOW_TREE_COPY = {
|
|
4607
|
+
label: "Agent tree — last completed batch",
|
|
4608
|
+
heading: "Agent tree · last completed batch",
|
|
4609
|
+
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>.'
|
|
4610
|
+
};
|
|
4611
|
+
var DISABLED_TREE_COPY = {
|
|
4612
|
+
label: "Agent tree",
|
|
4613
|
+
heading: "Agent tree",
|
|
4614
|
+
description: 'Agent tree is disabled because the effective graph mode is <code>"off"</code>.'
|
|
4615
|
+
};
|
|
4616
|
+
function treeScreenCopy(mode, disabled) {
|
|
4617
|
+
if (disabled || mode === "off") {
|
|
4618
|
+
return DISABLED_TREE_COPY;
|
|
4619
|
+
}
|
|
4620
|
+
if (mode === "shadow") {
|
|
4621
|
+
return SHADOW_TREE_COPY;
|
|
4622
|
+
}
|
|
4623
|
+
return ACTIVE_TREE_COPY;
|
|
4624
|
+
}
|
|
4625
|
+
function graphPanelHeading(mode, disabled) {
|
|
4626
|
+
if (disabled || mode === "off") {
|
|
4627
|
+
return "Agent tree";
|
|
4628
|
+
}
|
|
4629
|
+
if (mode === "shadow") {
|
|
4630
|
+
return "Last completed batch";
|
|
4631
|
+
}
|
|
4632
|
+
return "Live graph";
|
|
4633
|
+
}
|
|
4566
4634
|
function graphDisabledHint() {
|
|
4567
4635
|
return [
|
|
4568
4636
|
'<div class="graph-disabled" role="status">',
|
|
@@ -4652,12 +4720,14 @@ function renderConsoleHtml(state, options = {}) {
|
|
|
4652
4720
|
const graphOptionProvided = options.graphView !== undefined;
|
|
4653
4721
|
const graphDrilldown = graphOptionProvided && options.drilldownEnabled === true;
|
|
4654
4722
|
const graphProjection = options.graphView?.projection ?? null;
|
|
4655
|
-
const
|
|
4723
|
+
const graphMode = options.graphView?.mode ?? "off";
|
|
4724
|
+
const graphDisabled = options.graphView === undefined || options.graphView.disabled === true || graphMode === "off";
|
|
4656
4725
|
const liveCount = graphOptionProvided && graphProjection !== null && !graphDisabled ? graphProjection.nodes.length : state.sessionsDetail.length;
|
|
4657
4726
|
const configEnabled = options.configEditor !== undefined;
|
|
4658
|
-
const
|
|
4727
|
+
const treeCopy = treeScreenCopy(graphMode, graphDisabled);
|
|
4728
|
+
const treeBody = treeGraphPanel(graphProjection, graphDrilldown, graphDisabled, graphMode);
|
|
4659
4729
|
const body = [
|
|
4660
|
-
screenSection("tree",
|
|
4730
|
+
screenSection("tree", treeCopy.label, treeCopy.heading, treeCopy.description, treeBody, true),
|
|
4661
4731
|
screenSection("routing", "Routing and telemetry", "Routing + telemetry", "Aggregate routing and cost telemetry from <code>GET /api/state</code> across all sessions.", routingScreenBody(state)),
|
|
4662
4732
|
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
4733
|
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 +5628,10 @@ function readAuthorized2(request, url, token) {
|
|
|
5558
5628
|
return provided !== undefined && safeEqualToken(provided, token);
|
|
5559
5629
|
}
|
|
5560
5630
|
async function renderState(deps) {
|
|
5561
|
-
const graphView = deps.graphApi !== undefined ? {
|
|
5631
|
+
const graphView = deps.graphApi !== undefined ? {
|
|
5632
|
+
projection: await deps.graphApi.readView(),
|
|
5633
|
+
mode: deps.graphMode ?? "active"
|
|
5634
|
+
} : deps.graphDisabled === true ? { projection: null, disabled: true, mode: "off" } : undefined;
|
|
5562
5635
|
const liveConfig = deps.getConsoleConfig?.() ?? deps.config;
|
|
5563
5636
|
return renderConsoleHtml(buildConsoleState(await deps.readSnapshot()), {
|
|
5564
5637
|
refreshMs: liveConfig.refreshMs,
|
|
@@ -6229,6 +6302,7 @@ async function createConsoleRuntime(deps) {
|
|
|
6229
6302
|
...deps.console !== undefined ? { console: deps.console } : {},
|
|
6230
6303
|
...deps.storageApi !== undefined ? { storageApi: deps.storageApi } : {},
|
|
6231
6304
|
...graphApi !== undefined ? { graphApi } : {},
|
|
6305
|
+
...deps.graphMode !== undefined ? { graphMode: deps.graphMode } : {},
|
|
6232
6306
|
...graphDisabled ? { graphDisabled: true } : {}
|
|
6233
6307
|
});
|
|
6234
6308
|
const watchFn = deps.watch ?? ((path, listener) => fsWatch(path, { persistent: false }, listener));
|
|
@@ -7083,20 +7157,20 @@ function buildGraphView(input) {
|
|
|
7083
7157
|
}
|
|
7084
7158
|
|
|
7085
7159
|
// src/cli/graphViewProvider.ts
|
|
7086
|
-
function
|
|
7160
|
+
function selectRunsByRecency(journalRoot) {
|
|
7087
7161
|
if (!pathExists(journalRoot)) {
|
|
7088
|
-
return;
|
|
7162
|
+
return [];
|
|
7089
7163
|
}
|
|
7090
7164
|
let entries;
|
|
7091
7165
|
try {
|
|
7092
7166
|
entries = readdirSync(journalRoot);
|
|
7093
7167
|
} catch {
|
|
7094
|
-
return;
|
|
7168
|
+
return [];
|
|
7095
7169
|
}
|
|
7096
7170
|
if (entries.length === 0) {
|
|
7097
|
-
return;
|
|
7171
|
+
return [];
|
|
7098
7172
|
}
|
|
7099
|
-
|
|
7173
|
+
const runs = [];
|
|
7100
7174
|
for (const name of entries) {
|
|
7101
7175
|
const specFile = join4(journalRoot, name, "spec.json");
|
|
7102
7176
|
let mtime;
|
|
@@ -7105,47 +7179,66 @@ function selectMostRecentRun(journalRoot) {
|
|
|
7105
7179
|
} catch {
|
|
7106
7180
|
continue;
|
|
7107
7181
|
}
|
|
7108
|
-
|
|
7109
|
-
best = { runID: name, mtime };
|
|
7110
|
-
}
|
|
7182
|
+
runs.push({ runID: name, mtime });
|
|
7111
7183
|
}
|
|
7112
|
-
return
|
|
7184
|
+
return runs.sort((a, b) => {
|
|
7185
|
+
if (a.mtime !== b.mtime) {
|
|
7186
|
+
return b.mtime - a.mtime;
|
|
7187
|
+
}
|
|
7188
|
+
if (a.runID < b.runID) {
|
|
7189
|
+
return 1;
|
|
7190
|
+
}
|
|
7191
|
+
if (a.runID > b.runID) {
|
|
7192
|
+
return -1;
|
|
7193
|
+
}
|
|
7194
|
+
return 0;
|
|
7195
|
+
}).map((run) => run.runID);
|
|
7196
|
+
}
|
|
7197
|
+
function selectMostRecentRun(journalRoot) {
|
|
7198
|
+
return selectRunsByRecency(journalRoot)[0];
|
|
7113
7199
|
}
|
|
7114
7200
|
function createGraphViewProvider(deps) {
|
|
7115
7201
|
const selectRun = deps.selectRun ?? selectMostRecentRun;
|
|
7116
7202
|
const journal = createFsGraphJournal(deps.journalRoot);
|
|
7117
7203
|
return {
|
|
7118
7204
|
async readView() {
|
|
7119
|
-
const
|
|
7120
|
-
|
|
7205
|
+
const selected = selectRun(deps.journalRoot);
|
|
7206
|
+
const runIDs = selected === undefined ? [] : deps.selectRun === undefined ? [
|
|
7207
|
+
selected,
|
|
7208
|
+
...selectRunsByRecency(deps.journalRoot).filter((runID) => runID !== selected)
|
|
7209
|
+
] : [selected];
|
|
7210
|
+
if (runIDs.length === 0) {
|
|
7121
7211
|
return null;
|
|
7122
7212
|
}
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
|
|
7126
|
-
|
|
7127
|
-
|
|
7128
|
-
|
|
7129
|
-
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
|
|
7134
|
-
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7213
|
+
for (const runID of runIDs) {
|
|
7214
|
+
try {
|
|
7215
|
+
const loaded = await journal.load(runID);
|
|
7216
|
+
const telemetry = loaded.events.map(projectGraphEvent);
|
|
7217
|
+
const health = computeGraphRuntimeHealth({
|
|
7218
|
+
events: loaded.events,
|
|
7219
|
+
journal: "clean",
|
|
7220
|
+
lease: undefined,
|
|
7221
|
+
holder: "console",
|
|
7222
|
+
killSwitch: deps.killSwitch
|
|
7223
|
+
});
|
|
7224
|
+
return buildGraphView({
|
|
7225
|
+
spec: loaded.spec,
|
|
7226
|
+
state: loaded.state,
|
|
7227
|
+
telemetry,
|
|
7228
|
+
health
|
|
7229
|
+
});
|
|
7230
|
+
} catch (error) {
|
|
7231
|
+
if (error instanceof JournalError && error.code === "corrupt") {
|
|
7232
|
+
deps.log(`Graph view: journal for run "${runID}" is corrupt (${error.detail}); skipping.`);
|
|
7233
|
+
continue;
|
|
7234
|
+
}
|
|
7235
|
+
if (error instanceof JournalError && error.code === "not-found") {
|
|
7236
|
+
continue;
|
|
7237
|
+
}
|
|
7238
|
+
throw error;
|
|
7146
7239
|
}
|
|
7147
|
-
throw error;
|
|
7148
7240
|
}
|
|
7241
|
+
return null;
|
|
7149
7242
|
}
|
|
7150
7243
|
};
|
|
7151
7244
|
}
|
|
@@ -7197,7 +7290,7 @@ async function runConsoleServe(deps, options) {
|
|
|
7197
7290
|
endpoint,
|
|
7198
7291
|
...deps.serverPassword !== undefined ? { password: deps.serverPassword } : {}
|
|
7199
7292
|
}));
|
|
7200
|
-
const graphMode = config
|
|
7293
|
+
const graphMode = resolveGraphConfig(config, "file").effectiveMode;
|
|
7201
7294
|
const graphViewEnabled = config.console.graphView?.enabled === true;
|
|
7202
7295
|
const buildGraphView2 = deps.createGraphViewProvider ?? createGraphViewProvider;
|
|
7203
7296
|
const graphViewProvider = graphMode !== "off" && graphViewEnabled ? buildGraphView2({
|
|
@@ -7246,6 +7339,7 @@ async function runConsoleServe(deps, options) {
|
|
|
7246
7339
|
createPtyClient: makePtyClient
|
|
7247
7340
|
},
|
|
7248
7341
|
...graphViewProvider !== undefined ? { graphView: graphViewProvider } : {},
|
|
7342
|
+
graphMode,
|
|
7249
7343
|
...config.console.remoteStorage ? {
|
|
7250
7344
|
storageApi: {
|
|
7251
7345
|
storage: deps.storage,
|
|
@@ -8597,34 +8691,6 @@ function createGraphOperator(options) {
|
|
|
8597
8691
|
|
|
8598
8692
|
// src/cli/graphStatusSnapshot.ts
|
|
8599
8693
|
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
8694
|
var activeRunRegistrySchema = z16.object({
|
|
8629
8695
|
runs: z16.array(z16.string().min(1))
|
|
8630
8696
|
}).strict();
|
|
@@ -12066,11 +12132,15 @@ async function runSetup(deps) {
|
|
|
12066
12132
|
"session itself does not reach a frontier provider either.",
|
|
12067
12133
|
"",
|
|
12068
12134
|
`A baseline is still recorded (${frontier.providerID}/${frontier.modelID})`,
|
|
12069
|
-
"but stays unused. Set router.localOnly to false to re-enable it."
|
|
12135
|
+
"but stays unused. Set router.localOnly to false to re-enable it.",
|
|
12136
|
+
"",
|
|
12137
|
+
"Routing mode set to 'balanced' and privacy to 'forceLocalOnSensitive'",
|
|
12138
|
+
"automatically — in local-only mode every task stays local regardless,",
|
|
12139
|
+
"so these settings cannot change behaviour."
|
|
12070
12140
|
].join(`
|
|
12071
12141
|
`), "Local-only mode");
|
|
12072
12142
|
}
|
|
12073
|
-
const routerMode = await prompt.select({
|
|
12143
|
+
const routerMode = localOnly ? "balanced" : await prompt.select({
|
|
12074
12144
|
message: "Routing mode",
|
|
12075
12145
|
choices: [
|
|
12076
12146
|
{ value: "balanced", label: "balanced (recommended)" },
|
|
@@ -12089,7 +12159,7 @@ async function runSetup(deps) {
|
|
|
12089
12159
|
].join(`
|
|
12090
12160
|
`), "Frontier-only mode");
|
|
12091
12161
|
}
|
|
12092
|
-
const privacyMode = await prompt.select({
|
|
12162
|
+
const privacyMode = localOnly ? "forceLocalOnSensitive" : await prompt.select({
|
|
12093
12163
|
message: "Privacy for sensitive prompts",
|
|
12094
12164
|
choices: [
|
|
12095
12165
|
{
|
|
@@ -15775,7 +15845,7 @@ async function buildMemoryRuntimeFromConfig(config, deps, options = {}) {
|
|
|
15775
15845
|
// package.json
|
|
15776
15846
|
var package_default = {
|
|
15777
15847
|
name: "@jmanuelcorral/openteam",
|
|
15778
|
-
version: "0.
|
|
15848
|
+
version: "0.16.0",
|
|
15779
15849
|
packageManager: "bun@1.3.14",
|
|
15780
15850
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
15781
15851
|
license: "MIT",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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
|
|
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,CA6GzE,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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -145,6 +145,7 @@ export declare const LocalRuntimeSchema: z.ZodObject<{
|
|
|
145
145
|
modelID: z.ZodString;
|
|
146
146
|
}, z.core.$strict>;
|
|
147
147
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
148
|
+
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
148
149
|
}, z.core.$strict>;
|
|
149
150
|
/**
|
|
150
151
|
* Resolves the adapter {@link LocalRuntimeKind} of a configured runtime (#214).
|
|
@@ -153,6 +154,25 @@ export declare const LocalRuntimeSchema: z.ZodObject<{
|
|
|
153
154
|
* whose effective kind is not a known adapter kind.
|
|
154
155
|
*/
|
|
155
156
|
export declare function localRuntimeKind(runtime: Pick<LocalRuntime, "id" | "kind">): LocalRuntimeKind;
|
|
157
|
+
/**
|
|
158
|
+
* Resolves the effective concurrency cap for a runtime (#144): its declared
|
|
159
|
+
* `maxConcurrency`, or {@link DEFAULT_LOCAL_MAX_CONCURRENCY} when unset. This is
|
|
160
|
+
* the value fed to the limiter's `capacityFor`.
|
|
161
|
+
*/
|
|
162
|
+
export declare function effectiveMaxConcurrency(runtime: Pick<LocalRuntime, "maxConcurrency">): number;
|
|
163
|
+
/**
|
|
164
|
+
* Resolves the number of interactive-reserved slots for a runtime (#213), fed to
|
|
165
|
+
* the limiter's `reservedInteractiveFor`.
|
|
166
|
+
*
|
|
167
|
+
* When `reservedInteractiveSlots` is declared it is honoured verbatim; otherwise
|
|
168
|
+
* the default is **1 for a runtime with >= 2 effective slots** and **0 for a
|
|
169
|
+
* single-slot runtime**. That default gives Jose's 4-slot Lemonade box a
|
|
170
|
+
* 3-worker + 1-reserved split with ZERO config changes — exactly the requested
|
|
171
|
+
* behaviour — while never reserving the only slot of a single-slot runtime. The
|
|
172
|
+
* limiter additionally clamps the value to `[0, capacity - 1]`, so an explicit
|
|
173
|
+
* over-reservation still cannot starve the worker budget.
|
|
174
|
+
*/
|
|
175
|
+
export declare function effectiveReservedInteractiveSlots(runtime: Pick<LocalRuntime, "maxConcurrency" | "reservedInteractiveSlots">): number;
|
|
156
176
|
/**
|
|
157
177
|
* Bloque de memoria semántica long-term (capa de conocimiento). Opt-in y
|
|
158
178
|
* desactivado por defecto (ADR-1..6). Privacy-first: `storeContent=false` guarda
|
|
@@ -317,6 +337,7 @@ export declare const OpenTeamConfigObjectSchema: z.ZodObject<{
|
|
|
317
337
|
modelID: z.ZodString;
|
|
318
338
|
}, z.core.$strict>;
|
|
319
339
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
340
|
+
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
320
341
|
}, z.core.$strict>>>;
|
|
321
342
|
}, z.core.$strict>>;
|
|
322
343
|
budgets: z.ZodDefault<z.ZodObject<{
|
|
@@ -471,6 +492,7 @@ export declare const OpenTeamConfigSchema: z.ZodObject<{
|
|
|
471
492
|
modelID: z.ZodString;
|
|
472
493
|
}, z.core.$strict>;
|
|
473
494
|
maxConcurrency: z.ZodOptional<z.ZodNumber>;
|
|
495
|
+
reservedInteractiveSlots: z.ZodOptional<z.ZodNumber>;
|
|
474
496
|
}, z.core.$strict>>>;
|
|
475
497
|
}, z.core.$strict>>;
|
|
476
498
|
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;;;;;;;;;;;;;;;;kBAmCnB,CAAC;AAEZ,eAAO,MAAM,iBAAiB;;;EAAqC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;mBAiD5B,CAAC;AAEL;;GAEG;AAEH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,0CACL,CAAC;AAE1C,eAAO,MAAM,mBAAmB;;;;;mBAa5B,CAAC;AAqFL;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AAEH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
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.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,MAAM,EAEX,KAAK,YAAY,EAGlB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,OAAO,EAAwB,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -416,7 +416,8 @@ var LocalRuntimeSchema = z2.object({
|
|
|
416
416
|
baseURL: z2.string().url().optional(),
|
|
417
417
|
discovery: z2.enum(["cli", "sdk", "manual"]).optional(),
|
|
418
418
|
defaultModel: ModelRefSchema,
|
|
419
|
-
maxConcurrency: z2.number().int().positive().optional()
|
|
419
|
+
maxConcurrency: z2.number().int().positive().optional(),
|
|
420
|
+
reservedInteractiveSlots: z2.number().int().nonnegative().optional()
|
|
420
421
|
}).strict().superRefine((runtime, ctx) => {
|
|
421
422
|
const resolvedKind = runtime.kind ?? runtime.id;
|
|
422
423
|
if (!LocalRuntimeKindSchema.safeParse(resolvedKind).success) {
|
|
@@ -430,6 +431,15 @@ var LocalRuntimeSchema = z2.object({
|
|
|
430
431
|
function localRuntimeKind(runtime) {
|
|
431
432
|
return runtime.kind ?? runtime.id;
|
|
432
433
|
}
|
|
434
|
+
function effectiveMaxConcurrency(runtime) {
|
|
435
|
+
return runtime.maxConcurrency ?? DEFAULT_LOCAL_MAX_CONCURRENCY;
|
|
436
|
+
}
|
|
437
|
+
function effectiveReservedInteractiveSlots(runtime) {
|
|
438
|
+
if (runtime.reservedInteractiveSlots !== undefined) {
|
|
439
|
+
return runtime.reservedInteractiveSlots;
|
|
440
|
+
}
|
|
441
|
+
return effectiveMaxConcurrency(runtime) >= 2 ? 1 : 0;
|
|
442
|
+
}
|
|
433
443
|
var MemoryScopeSchema = z2.enum(["project", "user"]);
|
|
434
444
|
var MemoryExtractionModeSchema = z2.enum([
|
|
435
445
|
"local",
|
|
@@ -2721,7 +2731,8 @@ var KNOWN_CONFIG_KEYS_BY_PATH = new Map([
|
|
|
2721
2731
|
"baseURL",
|
|
2722
2732
|
"discovery",
|
|
2723
2733
|
"defaultModel",
|
|
2724
|
-
"maxConcurrency"
|
|
2734
|
+
"maxConcurrency",
|
|
2735
|
+
"reservedInteractiveSlots"
|
|
2725
2736
|
]
|
|
2726
2737
|
],
|
|
2727
2738
|
["local.runtimes[].defaultModel", MODEL_REF_KEYS],
|
|
@@ -5061,50 +5072,106 @@ var realCacheAdapter = {
|
|
|
5061
5072
|
};
|
|
5062
5073
|
|
|
5063
5074
|
// src/local/concurrency.ts
|
|
5075
|
+
var PRIORITY_BANDS = [
|
|
5076
|
+
"interactive",
|
|
5077
|
+
"worker",
|
|
5078
|
+
"background"
|
|
5079
|
+
];
|
|
5064
5080
|
function createRuntimeConcurrencyLimiter(options) {
|
|
5065
5081
|
const states = new Map;
|
|
5066
5082
|
function stateFor(runtimeId) {
|
|
5067
5083
|
let state = states.get(runtimeId);
|
|
5068
5084
|
if (state === undefined) {
|
|
5069
|
-
state = {
|
|
5085
|
+
state = {
|
|
5086
|
+
active: 0,
|
|
5087
|
+
nonInteractiveActive: 0,
|
|
5088
|
+
queues: { interactive: [], worker: [], background: [] }
|
|
5089
|
+
};
|
|
5070
5090
|
states.set(runtimeId, state);
|
|
5071
5091
|
}
|
|
5072
5092
|
return state;
|
|
5073
5093
|
}
|
|
5074
|
-
function
|
|
5094
|
+
function reservedFor(runtimeId, capacity) {
|
|
5095
|
+
const maxReserved = Math.max(0, capacity - 1);
|
|
5096
|
+
const raw = options.reservedInteractiveFor?.(runtimeId);
|
|
5097
|
+
if (raw === undefined || Number.isNaN(raw)) {
|
|
5098
|
+
return 0;
|
|
5099
|
+
}
|
|
5100
|
+
const truncated = Math.trunc(raw);
|
|
5101
|
+
if (truncated < 0) {
|
|
5102
|
+
return 0;
|
|
5103
|
+
}
|
|
5104
|
+
return Math.min(truncated, maxReserved);
|
|
5105
|
+
}
|
|
5106
|
+
function limitsFor(runtimeId) {
|
|
5107
|
+
const capacity = options.capacityFor(runtimeId);
|
|
5108
|
+
const reserved = reservedFor(runtimeId, capacity);
|
|
5109
|
+
return { capacity, nonInteractiveBudget: capacity - reserved };
|
|
5110
|
+
}
|
|
5111
|
+
function grantNext(state, runtimeId, nonInteractiveAfterRelease) {
|
|
5112
|
+
const interactiveWaiter = state.queues.interactive.shift();
|
|
5113
|
+
if (interactiveWaiter !== undefined) {
|
|
5114
|
+
return { waiter: interactiveWaiter, nonInteractive: false };
|
|
5115
|
+
}
|
|
5116
|
+
const { nonInteractiveBudget } = limitsFor(runtimeId);
|
|
5117
|
+
if (nonInteractiveAfterRelease < nonInteractiveBudget) {
|
|
5118
|
+
const workerWaiter = state.queues.worker.shift();
|
|
5119
|
+
if (workerWaiter !== undefined) {
|
|
5120
|
+
return { waiter: workerWaiter, nonInteractive: true };
|
|
5121
|
+
}
|
|
5122
|
+
const backgroundWaiter = state.queues.background.shift();
|
|
5123
|
+
if (backgroundWaiter !== undefined) {
|
|
5124
|
+
return { waiter: backgroundWaiter, nonInteractive: true };
|
|
5125
|
+
}
|
|
5126
|
+
}
|
|
5127
|
+
return;
|
|
5128
|
+
}
|
|
5129
|
+
function makeRelease(state, runtimeId, heldNonInteractive) {
|
|
5075
5130
|
let released = false;
|
|
5076
5131
|
return () => {
|
|
5077
5132
|
if (released) {
|
|
5078
5133
|
return;
|
|
5079
5134
|
}
|
|
5080
5135
|
released = true;
|
|
5081
|
-
const
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
} else {
|
|
5136
|
+
const nonInteractiveAfterRelease = state.nonInteractiveActive - (heldNonInteractive ? 1 : 0);
|
|
5137
|
+
const next = grantNext(state, runtimeId, nonInteractiveAfterRelease);
|
|
5138
|
+
if (next === undefined) {
|
|
5085
5139
|
state.active -= 1;
|
|
5140
|
+
state.nonInteractiveActive = nonInteractiveAfterRelease;
|
|
5141
|
+
return;
|
|
5086
5142
|
}
|
|
5143
|
+
state.nonInteractiveActive = nonInteractiveAfterRelease + (next.nonInteractive ? 1 : 0);
|
|
5144
|
+
next.waiter(makeRelease(state, runtimeId, next.nonInteractive));
|
|
5087
5145
|
};
|
|
5088
5146
|
}
|
|
5089
|
-
function tryAcquire(runtimeId) {
|
|
5147
|
+
function tryAcquire(runtimeId, priority = "worker") {
|
|
5090
5148
|
const state = stateFor(runtimeId);
|
|
5091
|
-
|
|
5149
|
+
const { capacity, nonInteractiveBudget } = limitsFor(runtimeId);
|
|
5150
|
+
if (priority === "interactive") {
|
|
5151
|
+
if (state.active < capacity) {
|
|
5152
|
+
state.active += 1;
|
|
5153
|
+
return makeRelease(state, runtimeId, false);
|
|
5154
|
+
}
|
|
5155
|
+
return;
|
|
5156
|
+
}
|
|
5157
|
+
if (state.active < capacity && state.nonInteractiveActive < nonInteractiveBudget) {
|
|
5092
5158
|
state.active += 1;
|
|
5093
|
-
|
|
5159
|
+
state.nonInteractiveActive += 1;
|
|
5160
|
+
return makeRelease(state, runtimeId, true);
|
|
5094
5161
|
}
|
|
5095
5162
|
return;
|
|
5096
5163
|
}
|
|
5097
5164
|
return {
|
|
5098
5165
|
tryAcquire,
|
|
5099
|
-
acquire(runtimeId) {
|
|
5100
|
-
const immediate = tryAcquire(runtimeId);
|
|
5166
|
+
acquire(runtimeId, priority = "worker") {
|
|
5167
|
+
const immediate = tryAcquire(runtimeId, priority);
|
|
5101
5168
|
if (immediate !== undefined) {
|
|
5102
5169
|
return Promise.resolve({ release: immediate, waitedMs: 0 });
|
|
5103
5170
|
}
|
|
5104
5171
|
const state = stateFor(runtimeId);
|
|
5105
5172
|
const queuedAt = options.now();
|
|
5106
5173
|
return new Promise((resolve3) => {
|
|
5107
|
-
state.
|
|
5174
|
+
state.queues[priority].push((release) => {
|
|
5108
5175
|
resolve3({ release, waitedMs: options.now() - queuedAt });
|
|
5109
5176
|
});
|
|
5110
5177
|
});
|
|
@@ -5113,7 +5180,15 @@ function createRuntimeConcurrencyLimiter(options) {
|
|
|
5113
5180
|
return states.get(runtimeId)?.active ?? 0;
|
|
5114
5181
|
},
|
|
5115
5182
|
queuedCount(runtimeId) {
|
|
5116
|
-
|
|
5183
|
+
const state = states.get(runtimeId);
|
|
5184
|
+
if (state === undefined) {
|
|
5185
|
+
return 0;
|
|
5186
|
+
}
|
|
5187
|
+
let total = 0;
|
|
5188
|
+
for (const band of PRIORITY_BANDS) {
|
|
5189
|
+
total += state.queues[band].length;
|
|
5190
|
+
}
|
|
5191
|
+
return total;
|
|
5117
5192
|
}
|
|
5118
5193
|
};
|
|
5119
5194
|
}
|
|
@@ -5820,6 +5895,13 @@ function chooseModel(input) {
|
|
|
5820
5895
|
const override = input.task.explicitOverride;
|
|
5821
5896
|
if (input.task.privacySensitive === true && input.config.privacyMode === "forceLocalOnSensitive") {
|
|
5822
5897
|
if (local === null) {
|
|
5898
|
+
if (input.config.router.localOnly) {
|
|
5899
|
+
return finalizeDecision(input, tier, frontier, budgetAction, blockedDecision(frontier.model, [
|
|
5900
|
+
"privacy-force-local",
|
|
5901
|
+
"privacy-force-local-none-configured",
|
|
5902
|
+
"router-local-only"
|
|
5903
|
+
], "privacy-local-only-none-configured"));
|
|
5904
|
+
}
|
|
5823
5905
|
return finalizeDecision(input, tier, frontier, budgetAction, resolveFrontierPrimary(input, frontier.model, [
|
|
5824
5906
|
"privacy-force-local",
|
|
5825
5907
|
"privacy-force-local-none-configured"
|
|
@@ -6284,6 +6366,9 @@ function warnUnknownRole(roleID, warn, warnedRoles) {
|
|
|
6284
6366
|
function roleFor(input) {
|
|
6285
6367
|
return getRoleProfile(input.roleID, input.config.orchestrator?.roles) ?? synthesiseFallbackProfile(input.roleID);
|
|
6286
6368
|
}
|
|
6369
|
+
function priorityForRole(role) {
|
|
6370
|
+
return role.roleID === "scribe" ? "background" : "worker";
|
|
6371
|
+
}
|
|
6287
6372
|
function mandatoryLocalRuntimeMessage(roleID) {
|
|
6288
6373
|
return `openteam: role "${roleID}" requires a local runtime, but no local runtime is reachable. ` + `This role must run locally and will not fall back to a frontier provider. ` + `Start one of the supported local runtimes (Ollama, LM Studio, or Lemonade) and try again. ` + "Run `openteam doctor` to diagnose your local runtime configuration.";
|
|
6289
6374
|
}
|
|
@@ -6433,7 +6518,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6433
6518
|
"rate limit",
|
|
6434
6519
|
"rate-limit",
|
|
6435
6520
|
"ratelimit",
|
|
6436
|
-
|
|
6521
|
+
/(?<!\d)429(?!\d)/,
|
|
6437
6522
|
"too many requests",
|
|
6438
6523
|
"quota exceeded"
|
|
6439
6524
|
],
|
|
@@ -6443,8 +6528,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6443
6528
|
[
|
|
6444
6529
|
"unauthorized",
|
|
6445
6530
|
"authentication",
|
|
6446
|
-
|
|
6447
|
-
"403",
|
|
6531
|
+
/(?<!\d)(?:401|403)(?!\d)/,
|
|
6448
6532
|
"forbidden",
|
|
6449
6533
|
"api key",
|
|
6450
6534
|
"invalid key",
|
|
@@ -6480,7 +6564,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6480
6564
|
"invalid_request",
|
|
6481
6565
|
"validation",
|
|
6482
6566
|
"bad request",
|
|
6483
|
-
|
|
6567
|
+
/(?<!\d)400(?!\d)/,
|
|
6484
6568
|
"unprocessable",
|
|
6485
6569
|
"malformed"
|
|
6486
6570
|
],
|
|
@@ -6502,10 +6586,7 @@ var FAILURE_CAUSE_RULES = [
|
|
|
6502
6586
|
[
|
|
6503
6587
|
[
|
|
6504
6588
|
"internal server error",
|
|
6505
|
-
|
|
6506
|
-
"502",
|
|
6507
|
-
"503",
|
|
6508
|
-
"504",
|
|
6589
|
+
/(?<!\d)(?:500|502|503|504)(?!\d)/,
|
|
6509
6590
|
"service unavailable",
|
|
6510
6591
|
"bad gateway",
|
|
6511
6592
|
"overloaded"
|
|
@@ -6522,7 +6603,7 @@ var TIMEOUT_NEEDLES = [
|
|
|
6522
6603
|
];
|
|
6523
6604
|
function matchFailureCause(lowerReason) {
|
|
6524
6605
|
for (const [needles, cls] of FAILURE_CAUSE_RULES) {
|
|
6525
|
-
if (needles.some((needle) => lowerReason.includes(needle))) {
|
|
6606
|
+
if (needles.some((needle) => typeof needle === "string" ? lowerReason.includes(needle) : needle.test(lowerReason))) {
|
|
6526
6607
|
return cls;
|
|
6527
6608
|
}
|
|
6528
6609
|
}
|
|
@@ -6651,10 +6732,11 @@ async function runRoleTaskWithCorrelation(input, deps, correlation, batch) {
|
|
|
6651
6732
|
let queueObservation;
|
|
6652
6733
|
if (runtimeId !== undefined && deps.runtimeLimiter !== undefined) {
|
|
6653
6734
|
const limiter = deps.runtimeLimiter;
|
|
6654
|
-
|
|
6735
|
+
const priority = priorityForRole(role);
|
|
6736
|
+
release = limiter.tryAcquire(runtimeId, priority);
|
|
6655
6737
|
let waitedMs = 0;
|
|
6656
6738
|
if (release === undefined) {
|
|
6657
|
-
const acquisition = await limiter.acquire(runtimeId);
|
|
6739
|
+
const acquisition = await limiter.acquire(runtimeId, priority);
|
|
6658
6740
|
release = acquisition.release;
|
|
6659
6741
|
waitedMs = acquisition.waitedMs;
|
|
6660
6742
|
}
|
|
@@ -12690,6 +12772,42 @@ function buildGraphSpecFromAssignments(assignments, batchID) {
|
|
|
12690
12772
|
}));
|
|
12691
12773
|
return { version: 1, runID: batchID, nodes };
|
|
12692
12774
|
}
|
|
12775
|
+
function assertNeverTelemetryFailureClass(cls) {
|
|
12776
|
+
throw new Error(`unhandled telemetry failure class: ${cls}`);
|
|
12777
|
+
}
|
|
12778
|
+
function mapTelemetryFailureClassToErrorClass(cls) {
|
|
12779
|
+
switch (cls) {
|
|
12780
|
+
case "prompt-timeout":
|
|
12781
|
+
return "timeout";
|
|
12782
|
+
case "prompt-rate-limited":
|
|
12783
|
+
case "prompt-connection":
|
|
12784
|
+
case "prompt-server":
|
|
12785
|
+
return "transient";
|
|
12786
|
+
case "create-rejected":
|
|
12787
|
+
case "create-no-id":
|
|
12788
|
+
case "prompt-rejected":
|
|
12789
|
+
case "prompt-auth":
|
|
12790
|
+
case "prompt-content-filter":
|
|
12791
|
+
case "prompt-context-length":
|
|
12792
|
+
case "prompt-validation":
|
|
12793
|
+
return "permanent";
|
|
12794
|
+
case "unknown":
|
|
12795
|
+
return "unknown";
|
|
12796
|
+
default:
|
|
12797
|
+
return assertNeverTelemetryFailureClass(cls);
|
|
12798
|
+
}
|
|
12799
|
+
}
|
|
12800
|
+
function classifyShadowNodeError(result) {
|
|
12801
|
+
if (result === undefined || result.subsession.success) {
|
|
12802
|
+
return "unknown";
|
|
12803
|
+
}
|
|
12804
|
+
const failureReason = result.subsession.failureReason ?? result.record.failureReason;
|
|
12805
|
+
const failureStage = result.subsession.failureStage ?? result.record.failureStage;
|
|
12806
|
+
if (failureReason !== undefined || failureStage !== undefined) {
|
|
12807
|
+
return mapTelemetryFailureClassToErrorClass(classifyFailureForTelemetry(failureReason ?? "", failureStage));
|
|
12808
|
+
}
|
|
12809
|
+
return "unknown";
|
|
12810
|
+
}
|
|
12693
12811
|
function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
12694
12812
|
const runID = spec.runID;
|
|
12695
12813
|
const events = [
|
|
@@ -12706,8 +12824,9 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12706
12824
|
resultByRole.set(r.subsession.roleID, r);
|
|
12707
12825
|
}
|
|
12708
12826
|
const cancelledSet = new Set(cancelled);
|
|
12827
|
+
const succeededNodes = new Set;
|
|
12709
12828
|
for (const node of spec.nodes) {
|
|
12710
|
-
if (cancelledSet.has(node.id)) {
|
|
12829
|
+
if (cancelledSet.has(node.id) || node.dependsOn.some((dep) => !succeededNodes.has(dep))) {
|
|
12711
12830
|
events.push({
|
|
12712
12831
|
v: 1,
|
|
12713
12832
|
seq: events.length,
|
|
@@ -12738,7 +12857,7 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12738
12857
|
nodeID: node.id,
|
|
12739
12858
|
operationID: operation,
|
|
12740
12859
|
attemptID: attempt,
|
|
12741
|
-
errorClass:
|
|
12860
|
+
errorClass: classifyShadowNodeError(result)
|
|
12742
12861
|
});
|
|
12743
12862
|
} else {
|
|
12744
12863
|
events.push({
|
|
@@ -12751,9 +12870,10 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12751
12870
|
attemptID: attempt,
|
|
12752
12871
|
artifact: shadowArtifact2(runID, node.id)
|
|
12753
12872
|
});
|
|
12873
|
+
succeededNodes.add(node.id);
|
|
12754
12874
|
}
|
|
12755
12875
|
}
|
|
12756
|
-
const allSucceeded = cancelled.length === 0 &&
|
|
12876
|
+
const allSucceeded = cancelled.length === 0 && spec.nodes.every((node) => succeededNodes.has(node.id));
|
|
12757
12877
|
events.push({
|
|
12758
12878
|
v: 1,
|
|
12759
12879
|
seq: events.length,
|
|
@@ -12762,8 +12882,9 @@ function synthesizeJournalEvents(spec, results, cancelled = []) {
|
|
|
12762
12882
|
});
|
|
12763
12883
|
return events;
|
|
12764
12884
|
}
|
|
12765
|
-
function buildObservation(batchID,
|
|
12766
|
-
const
|
|
12885
|
+
function buildObservation(batchID, assignments, results, parentSessionID, cancelled = []) {
|
|
12886
|
+
const resultByRole = new Map(results.map((result) => [result.subsession.roleID, result]));
|
|
12887
|
+
const allSucceeded = cancelled.length === 0 && assignments.every((assignment) => resultByRole.get(assignment.roleID)?.subsession.success === true);
|
|
12767
12888
|
return {
|
|
12768
12889
|
runID: batchID,
|
|
12769
12890
|
executed: true,
|
|
@@ -13266,7 +13387,7 @@ var createOtlpSpanExporter = (connection, config) => {
|
|
|
13266
13387
|
// package.json
|
|
13267
13388
|
var package_default = {
|
|
13268
13389
|
name: "@jmanuelcorral/openteam",
|
|
13269
|
-
version: "0.
|
|
13390
|
+
version: "0.16.0",
|
|
13270
13391
|
packageManager: "bun@1.3.14",
|
|
13271
13392
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
13272
13393
|
license: "MIT",
|
|
@@ -14005,8 +14126,16 @@ var server = async (ctx, rawOptions) => {
|
|
|
14005
14126
|
const snapshots = await registry.probe(config.local.runtimes.filter((runtime) => runtime.enabled));
|
|
14006
14127
|
return reachableRuntimeIds(snapshots);
|
|
14007
14128
|
};
|
|
14129
|
+
const runtimeById = (id) => config.local.runtimes.find((runtime) => runtime.id === id);
|
|
14008
14130
|
const runtimeLimiter = createRuntimeConcurrencyLimiter({
|
|
14009
|
-
capacityFor: (id) =>
|
|
14131
|
+
capacityFor: (id) => {
|
|
14132
|
+
const runtime = runtimeById(id);
|
|
14133
|
+
return runtime === undefined ? DEFAULT_LOCAL_MAX_CONCURRENCY : effectiveMaxConcurrency(runtime);
|
|
14134
|
+
},
|
|
14135
|
+
reservedInteractiveFor: (id) => {
|
|
14136
|
+
const runtime = runtimeById(id);
|
|
14137
|
+
return runtime === undefined ? 0 : effectiveReservedInteractiveSlots(runtime);
|
|
14138
|
+
},
|
|
14010
14139
|
now
|
|
14011
14140
|
});
|
|
14012
14141
|
const orchestrateTool = createOrchestrateTool({
|
|
@@ -7,8 +7,8 @@ import type { LocalRuntimeId } from "./types";
|
|
|
7
7
|
export type RuntimeSlotRelease = () => void;
|
|
8
8
|
/**
|
|
9
9
|
* Outcome of an `acquire`: the slot release plus how long the caller waited in
|
|
10
|
-
* the
|
|
11
|
-
* free and the acquisition resolved without queuing. It is measured with the
|
|
10
|
+
* the priority queue before the slot was granted. `waitedMs` is `0` when a slot
|
|
11
|
+
* was free and the acquisition resolved without queuing. It is measured with the
|
|
12
12
|
* injected clock (`RuntimeConcurrencyLimiterOptions.now`), so tests are
|
|
13
13
|
* deterministic and the limiter never reads wall-clock time inline.
|
|
14
14
|
*/
|
|
@@ -17,7 +17,22 @@ export type RuntimeSlotAcquisition = {
|
|
|
17
17
|
readonly waitedMs: number;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Priority band a caller acquires a runtime slot under (#213), highest first:
|
|
21
|
+
*
|
|
22
|
+
* - `"interactive"` — latency-sensitive, coordinator-facing work. May use the
|
|
23
|
+
* runtime's FULL capacity.
|
|
24
|
+
* - `"worker"` — ordinary fan-out generations. The DEFAULT, so every pre-#213
|
|
25
|
+
* caller keeps its behaviour unchanged.
|
|
26
|
+
* - `"background"` — bookkeeping/telemetry work (e.g. the scribe role).
|
|
27
|
+
*
|
|
28
|
+
* Queue ordering is STRICT PRIORITY ACROSS bands and FIFO WITHIN a band: on
|
|
29
|
+
* release the freed slot is granted to the longest-waiting waiter in the highest
|
|
30
|
+
* non-empty admissible band.
|
|
31
|
+
*/
|
|
32
|
+
export type RuntimeSlotPriority = "interactive" | "worker" | "background";
|
|
33
|
+
/**
|
|
34
|
+
* Per-runtime concurrency limiter with a PRIORITY queue and RESERVED interactive
|
|
35
|
+
* capacity (#144, #213).
|
|
21
36
|
*
|
|
22
37
|
* A runtime has a fixed number of slots (its configured `maxConcurrency`). The
|
|
23
38
|
* limiter caps concurrent generations to that number and QUEUES excess work
|
|
@@ -32,21 +47,55 @@ export type RuntimeSlotAcquisition = {
|
|
|
32
47
|
* concurrent-telemetry emission order of a wave is unperturbed. Only when a
|
|
33
48
|
* runtime is saturated does `acquire` return a promise that settles when a slot
|
|
34
49
|
* frees.
|
|
50
|
+
*
|
|
51
|
+
* ## Priority bands
|
|
52
|
+
*
|
|
53
|
+
* Callers pass a {@link RuntimeSlotPriority}; when omitted it defaults to
|
|
54
|
+
* `"worker"` so existing callers are unchanged. Queuing is strict priority
|
|
55
|
+
* across bands and FIFO within a band: an interactive waiter is always served
|
|
56
|
+
* before any worker, and workers before background, but two waiters of the same
|
|
57
|
+
* band keep their arrival order (so existing ordering guarantees survive).
|
|
58
|
+
*
|
|
59
|
+
* ## Reserved interactive capacity — the core of #213
|
|
60
|
+
*
|
|
61
|
+
* `reservedInteractiveFor` withholds a slice of a runtime's capacity from the
|
|
62
|
+
* non-interactive bands: `worker`/`background` callers may occupy at most
|
|
63
|
+
* `capacity - reserved` slots, while `interactive` callers may use the FULL
|
|
64
|
+
* capacity. The reserved count is clamped to `[0, capacity - 1]` so the
|
|
65
|
+
* non-interactive budget is never driven to 0 (a single-slot runtime with
|
|
66
|
+
* `reserved = 1` would otherwise deadlock every worker forever); non-integer,
|
|
67
|
+
* negative and NaN inputs are sanitised too.
|
|
68
|
+
*
|
|
69
|
+
* The non-obvious part: openteam's own INTERACTIVE/coordinator traffic reaches
|
|
70
|
+
* the local runtime as ordinary opencode chat and never passes through this
|
|
71
|
+
* limiter. Reserving a slot still helps, because the reservation caps how many
|
|
72
|
+
* slots openteam's WORKERS occupy on the shared runtime. By refusing to let
|
|
73
|
+
* workers fill the last slot, the limiter guarantees the runtime SERVER always
|
|
74
|
+
* has free headroom for the ungoverned interactive request — turning a
|
|
75
|
+
* `maxConcurrency` that equals the server's real slot count (the reported
|
|
76
|
+
* incident: a 4-slot Lemonade box with `DEFAULT_LOCAL_MAX_CONCURRENCY === 4`)
|
|
77
|
+
* from full saturation into a 3-worker + 1-reserved split with no config change.
|
|
78
|
+
* The `interactive` band exists so an in-process interactive caller can still
|
|
79
|
+
* claim the reserved slot when one is wired up.
|
|
35
80
|
*/
|
|
36
81
|
export type RuntimeConcurrencyLimiter = {
|
|
37
82
|
/**
|
|
38
|
-
* Attempts to take a slot for `runtimeId` synchronously
|
|
39
|
-
* when a slot was free
|
|
83
|
+
* Attempts to take a slot for `runtimeId` synchronously under `priority`
|
|
84
|
+
* (default `"worker"`). Returns a release when a slot was free within the
|
|
85
|
+
* band's admissible budget, or `undefined` when the runtime is at its cap (for
|
|
86
|
+
* `interactive`) or at its reserved-adjusted budget (for `worker`/
|
|
87
|
+
* `background`).
|
|
40
88
|
*/
|
|
41
|
-
tryAcquire(runtimeId: LocalRuntimeId): RuntimeSlotRelease | undefined;
|
|
89
|
+
tryAcquire(runtimeId: LocalRuntimeId, priority?: RuntimeSlotPriority): RuntimeSlotRelease | undefined;
|
|
42
90
|
/**
|
|
43
|
-
* Takes a slot for `runtimeId
|
|
44
|
-
*
|
|
45
|
-
* available. Prefer `tryAcquire` first and
|
|
46
|
-
* returns `undefined`, so the common free path
|
|
47
|
-
* is free, resolves immediately with
|
|
91
|
+
* Takes a slot for `runtimeId` under `priority` (default `"worker"`), queuing
|
|
92
|
+
* when the runtime is saturated for that band. Resolves with a release and the
|
|
93
|
+
* measured queue wait once a slot is available. Prefer `tryAcquire` first and
|
|
94
|
+
* only `await acquire` when it returns `undefined`, so the common free path
|
|
95
|
+
* stays synchronous. When a slot is free, resolves immediately with
|
|
96
|
+
* `waitedMs === 0`.
|
|
48
97
|
*/
|
|
49
|
-
acquire(runtimeId: LocalRuntimeId): Promise<RuntimeSlotAcquisition>;
|
|
98
|
+
acquire(runtimeId: LocalRuntimeId, priority?: RuntimeSlotPriority): Promise<RuntimeSlotAcquisition>;
|
|
50
99
|
/** Current in-flight count for a runtime. Exposed for tests and diagnostics. */
|
|
51
100
|
activeCount(runtimeId: LocalRuntimeId): number;
|
|
52
101
|
/** Current queued (waiting) count for a runtime. Exposed for tests. */
|
|
@@ -59,12 +108,21 @@ export type RuntimeConcurrencyLimiterOptions = {
|
|
|
59
108
|
* runtime does not declare a cap. Must return a positive integer.
|
|
60
109
|
*/
|
|
61
110
|
capacityFor: (runtimeId: LocalRuntimeId) => number;
|
|
111
|
+
/**
|
|
112
|
+
* Resolves how many of a runtime's slots are RESERVED for interactive work
|
|
113
|
+
* (#213). Optional and injected so the limiter carries no config coupling;
|
|
114
|
+
* when absent, no capacity is reserved and behaviour matches the pre-#213
|
|
115
|
+
* FIFO limiter exactly. The returned value is clamped to `[0, capacity - 1]`
|
|
116
|
+
* and sanitised (non-integer/negative/NaN handled conservatively), so it can
|
|
117
|
+
* never starve the non-interactive budget to 0.
|
|
118
|
+
*/
|
|
119
|
+
reservedInteractiveFor?: (runtimeId: LocalRuntimeId) => number;
|
|
62
120
|
/**
|
|
63
121
|
* Injected clock in epoch milliseconds, used ONLY to measure how long a
|
|
64
|
-
* saturated `acquire` waited in the
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
122
|
+
* saturated `acquire` waited in the queue. The free `tryAcquire` path never
|
|
123
|
+
* reads it, so the happy path stays allocation-free and clock-free. Injected
|
|
124
|
+
* (never `Date.now()` inline) so queue-wait telemetry is deterministic under
|
|
125
|
+
* test.
|
|
68
126
|
*/
|
|
69
127
|
now: () => number;
|
|
70
128
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../../src/local/concurrency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../../src/local/concurrency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;AAQ1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;;;OAMG;IACH,UAAU,CACR,SAAS,EAAE,cAAc,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,kBAAkB,GAAG,SAAS,CAAC;IAClC;;;;;;;OAOG;IACH,OAAO,CACL,SAAS,EAAE,cAAc,EACzB,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,gFAAgF;IAChF,WAAW,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/C,uEAAuE;IACvE,WAAW,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAAC;CAChD,CAAC;AAaF,MAAM,MAAM,gCAAgC,GAAG;IAC7C;;;;OAIG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,MAAM,CAAC;IACnD;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,MAAM,CAAC;IAC/D;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,yBAAyB,CAuK3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,
|
|
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":"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.16.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",
|