@mono-agent/agent-app 0.20.11 → 0.20.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -18
- package/dist/app-controller-channels.d.ts +4 -0
- package/dist/app-controller-channels.d.ts.map +1 -1
- package/dist/app-controller-channels.js +20 -2
- package/dist/app-controller-channels.js.map +1 -1
- package/dist/app-controller-continuation.d.ts.map +1 -1
- package/dist/app-controller-continuation.js +2 -3
- package/dist/app-controller-continuation.js.map +1 -1
- package/dist/app-controller-lifecycle.d.ts +4 -0
- package/dist/app-controller-lifecycle.d.ts.map +1 -1
- package/dist/app-controller-lifecycle.js +7 -0
- package/dist/app-controller-lifecycle.js.map +1 -1
- package/dist/app-controller-monitors.d.ts +26 -0
- package/dist/app-controller-monitors.d.ts.map +1 -0
- package/dist/app-controller-monitors.js +127 -0
- package/dist/app-controller-monitors.js.map +1 -0
- package/dist/app-controller-responder.d.ts +7 -17
- package/dist/app-controller-responder.d.ts.map +1 -1
- package/dist/app-controller-responder.js +33 -69
- package/dist/app-controller-responder.js.map +1 -1
- package/dist/app-controller-utils.d.ts +1 -5
- package/dist/app-controller-utils.d.ts.map +1 -1
- package/dist/app-controller-utils.js +4 -21
- package/dist/app-controller-utils.js.map +1 -1
- package/dist/app-controller.d.ts +24 -10
- package/dist/app-controller.d.ts.map +1 -1
- package/dist/app-controller.js +36 -1
- package/dist/app-controller.js.map +1 -1
- package/dist/channel-drivers/slack.d.ts.map +1 -1
- package/dist/channel-drivers/slack.js +18 -0
- package/dist/channel-drivers/slack.js.map +1 -1
- package/dist/channel-drivers/telegram.d.ts.map +1 -1
- package/dist/channel-drivers/telegram.js +26 -0
- package/dist/channel-drivers/telegram.js.map +1 -1
- package/dist/channel-drivers/tui.d.ts +68 -8
- package/dist/channel-drivers/tui.d.ts.map +1 -1
- package/dist/channel-drivers/tui.js +388 -89
- package/dist/channel-drivers/tui.js.map +1 -1
- package/dist/channel-runtime-controls.d.ts +2 -1
- package/dist/channel-runtime-controls.d.ts.map +1 -1
- package/dist/channel-runtime-controls.js +79 -22
- package/dist/channel-runtime-controls.js.map +1 -1
- package/dist/cli-args.d.ts +4 -6
- package/dist/cli-args.d.ts.map +1 -1
- package/dist/cli-args.js +16 -36
- package/dist/cli-args.js.map +1 -1
- package/dist/cli-commands.d.ts.map +1 -1
- package/dist/cli-commands.js +11 -0
- package/dist/cli-commands.js.map +1 -1
- package/dist/cli-help.d.ts +26 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +25 -34
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-init-command.d.ts +1 -2
- package/dist/cli-init-command.d.ts.map +1 -1
- package/dist/cli-init-command.js +5 -49
- package/dist/cli-init-command.js.map +1 -1
- package/dist/config-reference.d.ts.map +1 -1
- package/dist/config-reference.js +153 -52
- package/dist/config-reference.js.map +1 -1
- package/dist/configuration-proposal-tool.d.ts.map +1 -1
- package/dist/configuration-proposal-tool.js +3 -11
- package/dist/configuration-proposal-tool.js.map +1 -1
- package/dist/configured-agent.d.ts +18 -3
- package/dist/configured-agent.d.ts.map +1 -1
- package/dist/configured-agent.js +67 -86
- package/dist/configured-agent.js.map +1 -1
- package/dist/conversation-title.d.ts.map +1 -1
- package/dist/conversation-title.js +9 -2
- package/dist/conversation-title.js.map +1 -1
- package/dist/doctor.d.ts +7 -13
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +191 -725
- package/dist/doctor.js.map +1 -1
- package/dist/first-run-readiness.d.ts.map +1 -1
- package/dist/first-run-readiness.js +0 -6
- package/dist/first-run-readiness.js.map +1 -1
- package/dist/local-configuration.d.ts.map +1 -1
- package/dist/local-configuration.js +9 -37
- package/dist/local-configuration.js.map +1 -1
- package/dist/memory-remember.d.ts +49 -0
- package/dist/memory-remember.d.ts.map +1 -0
- package/dist/memory-remember.js +190 -0
- package/dist/memory-remember.js.map +1 -0
- package/dist/memory-retrieval.d.ts +24 -0
- package/dist/memory-retrieval.d.ts.map +1 -1
- package/dist/memory-retrieval.js +23 -0
- package/dist/memory-retrieval.js.map +1 -1
- package/dist/model-effort-capabilities.d.ts +8 -9
- package/dist/model-effort-capabilities.d.ts.map +1 -1
- package/dist/model-effort-capabilities.js +17 -35
- package/dist/model-effort-capabilities.js.map +1 -1
- package/dist/modules/base.d.ts +3 -4
- package/dist/modules/base.d.ts.map +1 -1
- package/dist/modules/base.js +3 -5
- package/dist/modules/base.js.map +1 -1
- package/dist/modules/catalog.d.ts.map +1 -1
- package/dist/modules/catalog.js +11 -9
- package/dist/modules/catalog.js.map +1 -1
- package/dist/modules/known-tools.d.ts +2 -2
- package/dist/modules/known-tools.d.ts.map +1 -1
- package/dist/modules/known-tools.js +6 -0
- package/dist/modules/known-tools.js.map +1 -1
- package/dist/monitor-channel-routing.d.ts +20 -0
- package/dist/monitor-channel-routing.d.ts.map +1 -0
- package/dist/monitor-channel-routing.js +73 -0
- package/dist/monitor-channel-routing.js.map +1 -0
- package/dist/monitors-command.d.ts +23 -0
- package/dist/monitors-command.d.ts.map +1 -0
- package/dist/monitors-command.js +207 -0
- package/dist/monitors-command.js.map +1 -0
- package/dist/monitors-config.d.ts +74 -0
- package/dist/monitors-config.d.ts.map +1 -0
- package/dist/monitors-config.js +146 -0
- package/dist/monitors-config.js.map +1 -0
- package/dist/monitors-context.d.ts +58 -0
- package/dist/monitors-context.d.ts.map +1 -0
- package/dist/monitors-context.js +182 -0
- package/dist/monitors-context.js.map +1 -0
- package/dist/monitors-runtime.d.ts +36 -0
- package/dist/monitors-runtime.d.ts.map +1 -0
- package/dist/monitors-runtime.js +103 -0
- package/dist/monitors-runtime.js.map +1 -0
- package/dist/monitors-service.d.ts +71 -0
- package/dist/monitors-service.d.ts.map +1 -0
- package/dist/monitors-service.js +1665 -0
- package/dist/monitors-service.js.map +1 -0
- package/dist/monitors-store.d.ts +83 -0
- package/dist/monitors-store.d.ts.map +1 -0
- package/dist/monitors-store.js +283 -0
- package/dist/monitors-store.js.map +1 -0
- package/dist/process-jobs-context.d.ts +8 -0
- package/dist/process-jobs-context.d.ts.map +1 -1
- package/dist/process-jobs-context.js +11 -0
- package/dist/process-jobs-context.js.map +1 -1
- package/dist/process-jobs-protection.js +1 -1
- package/dist/process-jobs-protection.js.map +1 -1
- package/dist/process-jobs-runtime.d.ts.map +1 -1
- package/dist/process-jobs-runtime.js +1 -12
- package/dist/process-jobs-runtime.js.map +1 -1
- package/dist/process-jobs-service.d.ts.map +1 -1
- package/dist/process-jobs-service.js +3 -149
- package/dist/process-jobs-service.js.map +1 -1
- package/dist/process-output-redaction.d.ts +33 -0
- package/dist/process-output-redaction.d.ts.map +1 -0
- package/dist/process-output-redaction.js +149 -0
- package/dist/process-output-redaction.js.map +1 -0
- package/dist/provider-model-catalog.d.ts +78 -0
- package/dist/provider-model-catalog.d.ts.map +1 -0
- package/dist/provider-model-catalog.js +439 -0
- package/dist/provider-model-catalog.js.map +1 -0
- package/dist/provider-setup.d.ts +4 -13
- package/dist/provider-setup.d.ts.map +1 -1
- package/dist/provider-setup.js +5 -115
- package/dist/provider-setup.js.map +1 -1
- package/dist/readiness-probe-worker.d.ts +1 -2
- package/dist/readiness-probe-worker.d.ts.map +1 -1
- package/dist/readiness-probe-worker.js +3 -8
- package/dist/readiness-probe-worker.js.map +1 -1
- package/dist/readiness-probe.d.ts +1 -1
- package/dist/readiness-probe.d.ts.map +1 -1
- package/dist/readiness-probe.js +3 -33
- package/dist/readiness-probe.js.map +1 -1
- package/dist/request-model-override.d.ts +4 -36
- package/dist/request-model-override.d.ts.map +1 -1
- package/dist/request-model-override.js +58 -146
- package/dist/request-model-override.js.map +1 -1
- package/dist/runtime-option-extensions.d.ts +2 -4
- package/dist/runtime-option-extensions.d.ts.map +1 -1
- package/dist/runtime-option-extensions.js +4 -8
- package/dist/runtime-option-extensions.js.map +1 -1
- package/dist/runtime-routes.d.ts +5 -5
- package/dist/runtime-routes.d.ts.map +1 -1
- package/dist/runtime-routes.js +29 -18
- package/dist/runtime-routes.js.map +1 -1
- package/dist/sandbox-settings-cleanup.d.ts +15 -0
- package/dist/sandbox-settings-cleanup.d.ts.map +1 -0
- package/dist/sandbox-settings-cleanup.js +88 -0
- package/dist/sandbox-settings-cleanup.js.map +1 -0
- package/dist/trigger-overrides.d.ts +6 -0
- package/dist/trigger-overrides.d.ts.map +1 -1
- package/dist/trigger-overrides.js +36 -4
- package/dist/trigger-overrides.js.map +1 -1
- package/dist/untrusted-text.d.ts +36 -0
- package/dist/untrusted-text.d.ts.map +1 -0
- package/dist/untrusted-text.js +150 -0
- package/dist/untrusted-text.js.map +1 -0
- package/dist/wizard/answers.d.ts +3 -9
- package/dist/wizard/answers.d.ts.map +1 -1
- package/dist/wizard/answers.js +11 -36
- package/dist/wizard/answers.js.map +1 -1
- package/dist/wizard/from-flags.d.ts +1 -2
- package/dist/wizard/from-flags.d.ts.map +1 -1
- package/dist/wizard/from-flags.js +8 -3
- package/dist/wizard/from-flags.js.map +1 -1
- package/dist/wizard/model-discovery.d.ts +7 -8
- package/dist/wizard/model-discovery.d.ts.map +1 -1
- package/dist/wizard/model-discovery.js +58 -431
- package/dist/wizard/model-discovery.js.map +1 -1
- package/dist/wizard/presets.js +2 -2
- package/dist/wizard/presets.js.map +1 -1
- package/dist/wizard/prompts.d.ts +13 -12
- package/dist/wizard/prompts.d.ts.map +1 -1
- package/dist/wizard/prompts.js +24 -45
- package/dist/wizard/prompts.js.map +1 -1
- package/dist/wizard/run.d.ts.map +1 -1
- package/dist/wizard/run.js +29 -152
- package/dist/wizard/run.js.map +1 -1
- package/package.json +17 -17
- package/schema/mono-agent.config.schema.json +183 -47
- package/skills/mono-agent-composer/SKILL.md +2 -2
- package/skills/mono-agent-composer/references/config-blueprint.md +43 -40
- package/skills/mono-agent-composer/references/discovery-questions.md +8 -13
- package/skills/mono-agent-composer/references/feature-coverage.md +10 -8
- package/skills/mono-agent-composer/references/package-map.md +21 -15
- package/skills/mono-agent-composer/references/playbooks.md +19 -23
- package/dist/codex-model-catalog.d.ts +0 -15
- package/dist/codex-model-catalog.d.ts.map +0 -1
- package/dist/codex-model-catalog.js +0 -220
- package/dist/codex-model-catalog.js.map +0 -1
|
@@ -1,36 +1,204 @@
|
|
|
1
1
|
import { realpath } from "node:fs/promises";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { MAX_INFO_BODY_BYTES, MAX_INFO_PROVIDER_ITEMS } from "@mono-agent/agent-contracts";
|
|
4
|
+
import { resolveConfiguredProviders } from "@mono-agent/config";
|
|
5
|
+
import { discoverLocalProviderModels, discoverLocalProviders, modelReferenceKey, parseMonoRuntimeModelReference, } from "@mono-agent/runtime-adapter";
|
|
5
6
|
import { ACP_BRIDGE_SOURCE_SCHEMA, ACP_BRIDGE_VERSION, ACP_PROTOCOL_VERSION, deliverWebNotification, } from "@mono-agent/web";
|
|
6
7
|
import { buildChannelConfigView } from "../channel-config-view.js";
|
|
7
|
-
import { codexModelDiscoveryEnvironment, requestCodexModelList, } from "../codex-model-catalog.js";
|
|
8
|
-
import { resolveAdvertisedModelEffort, } from "../model-effort-capabilities.js";
|
|
9
8
|
import { agentAppPackageVersion } from "../package-version.js";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
9
|
+
import { buildProviderModelCatalog } from "../provider-model-catalog.js";
|
|
10
|
+
import { configuredRuntimeModels } from "../runtime-routes.js";
|
|
11
|
+
import { createSkillRegistryMonitor, MAX_SKILL_REGISTRY_BYTES } from "../skill-registry.js";
|
|
12
12
|
let tuiModule;
|
|
13
13
|
const loadTuiModule = async () => (tuiModule ??= await import("@mono-agent/operator-adapter"));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Producer-side payload budgets for `/v1/info`.
|
|
16
|
+
*
|
|
17
|
+
* `/v1/info` shares ONE 1 MiB body cap ({@link MAX_INFO_BODY_BYTES}) across
|
|
18
|
+
* every field it carries, and `sendBoundedInfo` in the operator adapter is what
|
|
19
|
+
* enforces it: it measures the exact string it is about to send, sheds whole
|
|
20
|
+
* optional fields largest-first, logs the shed at error level, and falls back to
|
|
21
|
+
* a fixed liveness body. That fence is TOTAL — no body leaves this process over
|
|
22
|
+
* the cap whatever these numbers say — so the fence, and only the fence, is what
|
|
23
|
+
* decides that something genuinely cannot ship.
|
|
24
|
+
*
|
|
25
|
+
* What a budget HERE is for is bounding the AGGREGATE growth of a contributor
|
|
26
|
+
* whose size nobody authored, so one such contributor cannot flood the body and
|
|
27
|
+
* cost an unrelated field its place at the fence:
|
|
28
|
+
*
|
|
29
|
+
* discovered model refs 384 KiB advisory: whatever a local endpoint said
|
|
30
|
+
* provider summary 128 KiB advisory tail behind the declared vendors
|
|
31
|
+
* skills 256 KiB `MAX_SKILL_REGISTRY_BYTES`, skill-registry.ts
|
|
32
|
+
*
|
|
33
|
+
* Configured routes get NO budget here, and that is the correction to a defect
|
|
34
|
+
* this file carried through three review rounds. A budget is not an opinion
|
|
35
|
+
* about which content deserves to ship, and a fixed per-contributor slice
|
|
36
|
+
* becomes exactly that the moment one VALID item is bigger than the slice.
|
|
37
|
+
* Round 3 bounded the model projection at 128 KiB and dropped a valid
|
|
38
|
+
* configured fallback; round 4 kept the rule and raised the constant to
|
|
39
|
+
* 512 KiB, and a then-valid 270,000-byte OpenRouter fallback was still dropped —
|
|
40
|
+
* from a body that would have been 540,778 bytes against a 1,048,576-byte cap.
|
|
41
|
+
* No constant was the right one; the shape was wrong. Dropping an authored
|
|
42
|
+
* route served neither purpose a budget has (the body fit, and nothing was
|
|
43
|
+
* being starved), and it cost real function: the TUI never calls `/v1/models`
|
|
44
|
+
* and rebuilds its picker from `info.models` alone, so a withheld route is an
|
|
45
|
+
* unselectable primary or fallback in the operator's own console.
|
|
46
|
+
*
|
|
47
|
+
* Nor is a single reference bounded. Two rounds put a byte ceiling in the
|
|
48
|
+
* reference parser so that no ONE item could be pathological, and both numbers
|
|
49
|
+
* refused a model that really exists — 96 bytes a Hugging Face GGUF repo Ollama
|
|
50
|
+
* serves, 160 bytes an `ollama:<model>:<tag>` reference whose two halves Ollama
|
|
51
|
+
* itself validates at 80 bytes each. A grammar layer does not get to decide what
|
|
52
|
+
* a provider calls a model, so the ceiling is gone and a single reference can be
|
|
53
|
+
* any size again. That changes nothing here, because the rule was never about
|
|
54
|
+
* item size: nothing bounds how MANY routes an operator may declare or how many
|
|
55
|
+
* rows a local `/v1/models` may report either, so a per-contributor slice would
|
|
56
|
+
* still be an opinion about authored content, and configured routes still get
|
|
57
|
+
* none. What it does mean is that the fence below is load-bearing for a case it
|
|
58
|
+
* briefly was not — one authored route larger than the whole cap — which
|
|
59
|
+
* `tui-info-wire.test.ts` drives over a real socket.
|
|
60
|
+
*
|
|
61
|
+
* So every configured route is admitted, and a result that cannot fit is the
|
|
62
|
+
* fence's call, made loudly. Advisory discovery then spends its own aggregate
|
|
63
|
+
* budget on top — but never room the body no longer has
|
|
64
|
+
* ({@link INFO_NON_MODEL_RESERVE_BYTES}) — so discovery can never be the reason
|
|
65
|
+
* the fence fires.
|
|
66
|
+
*
|
|
67
|
+
* The discovery budget is exported because it is the whole contract between
|
|
68
|
+
* authored routes and advisory content, and a test that keeps its own copy of a
|
|
69
|
+
* constant cannot notice that constant changing.
|
|
70
|
+
*/
|
|
71
|
+
export const MAX_DISCOVERED_INFO_MODEL_BYTES = 384 * 1024;
|
|
72
|
+
const MAX_INFO_PROVIDER_BYTES = 128 * 1024;
|
|
73
|
+
/**
|
|
74
|
+
* Room the model projections leave for the rest of the body when deciding how
|
|
75
|
+
* much ADVISORY discovery may spend.
|
|
76
|
+
*
|
|
77
|
+
* Reserving against the other contributors' own budgets is sound here precisely
|
|
78
|
+
* because it constrains discovery alone: no authored content is ever measured
|
|
79
|
+
* against it, so a conservative reserve costs at worst a few discovered refs
|
|
80
|
+
* nobody declared. Measuring the real rest-of-body instead is not available —
|
|
81
|
+
* `skills` is re-snapshotted per request while these projections are resolved
|
|
82
|
+
* once at start — and it is not needed, because the fence measures the real
|
|
83
|
+
* thing.
|
|
84
|
+
*
|
|
85
|
+
* The trailing 64 KiB covers the `schema`/`pid`/`capabilities` half of the
|
|
86
|
+
* body: a fixed shape carrying no operator-authored data beyond a short cron
|
|
87
|
+
* status, so it is headroom rather than a budget anything can spend.
|
|
88
|
+
*/
|
|
89
|
+
const INFO_NON_MODEL_RESERVE_BYTES = MAX_INFO_PROVIDER_BYTES + MAX_SKILL_REGISTRY_BYTES + 64 * 1024;
|
|
90
|
+
/**
|
|
91
|
+
* JSON framing each projection costs before a single entry is admitted, charged
|
|
92
|
+
* once against the running total exactly as `boundSkillItems`
|
|
93
|
+
* (`skill-registry.ts`) charges its prefix and suffix.
|
|
94
|
+
*/
|
|
95
|
+
const INFO_MODEL_FRAME_BYTES = Buffer.byteLength('"models":[],"modelOptions":{},', "utf8");
|
|
96
|
+
const INFO_PROVIDER_FRAME_BYTES = Buffer.byteLength('"providers":[],', "utf8");
|
|
97
|
+
/**
|
|
98
|
+
* The REAL serialized cost of publishing one ref in BOTH `/v1/info` model
|
|
99
|
+
* projections: its JSON string as a `models` element, and its `modelOptions`
|
|
100
|
+
* entry (that same string again as a key, a colon, the materialized option),
|
|
101
|
+
* plus one separating comma in each collection.
|
|
102
|
+
*
|
|
103
|
+
* Measured from the payload that will actually be sent, never estimated ahead
|
|
104
|
+
* of it. An arithmetic estimate over the raw ref is not an upper bound here for
|
|
105
|
+
* two independent, separately proven reasons:
|
|
106
|
+
* - JSON escaping is invisible to it. One C0 byte serializes to six (`\u0000`)
|
|
107
|
+
* in both projections, so a ref of control bytes costs 12x its length while
|
|
108
|
+
* a `4 x length + 512` estimate charges roughly 4x.
|
|
109
|
+
* - The option is not materialized yet. `effortLevels` comes from a local
|
|
110
|
+
* provider's `capabilities.reasoning_levels`; the catalog now bounds it, but
|
|
111
|
+
* only measurement can charge what the bound actually left behind.
|
|
112
|
+
*/
|
|
113
|
+
function infoModelEntryBytes(key, option) {
|
|
114
|
+
const keyBytes = Buffer.byteLength(JSON.stringify(key), "utf8");
|
|
115
|
+
// `models` element + comma.
|
|
116
|
+
const arrayBytes = keyBytes + 1;
|
|
117
|
+
// `modelOptions` key + colon + value + comma.
|
|
118
|
+
const optionBytes = option === undefined
|
|
119
|
+
? 0
|
|
120
|
+
: keyBytes + 1 + Buffer.byteLength(JSON.stringify(option), "utf8") + 1;
|
|
121
|
+
return arrayBytes + optionBytes;
|
|
19
122
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
123
|
+
/**
|
|
124
|
+
* Admit refs into the `/v1/info` model projections, measuring each candidate's
|
|
125
|
+
* materialized payload against the running total.
|
|
126
|
+
*
|
|
127
|
+
* `budgetBytes` is a ceiling on that RUNNING TOTAL and it is OPTIONAL. Omitting
|
|
128
|
+
* it admits every ref, which is what configured routes get: see the budget note
|
|
129
|
+
* above — the fence adjudicates an oversized body, this function does not.
|
|
130
|
+
*
|
|
131
|
+
* `continue`, not `break`, where a ceiling does apply: one pathological entry
|
|
132
|
+
* must cost only itself. The TUI never calls `/v1/models` — there is no call
|
|
133
|
+
* site under `packages/tui/`, and `applyAgentInfo` builds the model picker from
|
|
134
|
+
* `/v1/info.models` alone — so a ref withheld here is UNSELECTABLE, not merely
|
|
135
|
+
* un-paginated. Breaking would delete every runnable ref sitting behind one
|
|
136
|
+
* oversized row.
|
|
137
|
+
*/
|
|
138
|
+
function admitInfoModels(refs, describe, into, budgetBytes = Number.POSITIVE_INFINITY) {
|
|
139
|
+
for (const ref of refs) {
|
|
140
|
+
const key = modelReferenceKey(ref);
|
|
141
|
+
if (into.seen.has(key))
|
|
142
|
+
continue;
|
|
143
|
+
const option = describe(ref);
|
|
144
|
+
const cost = infoModelEntryBytes(key, option);
|
|
145
|
+
if (into.bytes + cost > budgetBytes)
|
|
146
|
+
continue;
|
|
147
|
+
into.bytes += cost;
|
|
148
|
+
into.seen.add(key);
|
|
149
|
+
into.keys.push(key);
|
|
150
|
+
if (option !== undefined)
|
|
151
|
+
into.options[key] = option;
|
|
23
152
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Project the `/v1/info` provider summary onto its own measured slice, with the
|
|
156
|
+
* providers the agent's OWN routes use placed where every consumer can see
|
|
157
|
+
* them.
|
|
158
|
+
*
|
|
159
|
+
* Two independent cuts land on this list, and the catalog's order is wrong for
|
|
160
|
+
* both. Route providers sit LAST in it (declared providers, then route
|
|
161
|
+
* providers, then discovered ones), while the byte slice and the console's
|
|
162
|
+
* {@link MAX_INFO_PROVIDER_ITEMS} parse window are both PREFIX cuts. Admitting
|
|
163
|
+
* routes first but emitting in catalog order — which is what this did — put the
|
|
164
|
+
* prioritized entry at position 71 of 71 and let the console throw it away at
|
|
165
|
+
* 64: a probe really did receive `anthropic` and parse 64 vendors without it.
|
|
166
|
+
* Prioritizing at the producer only means something if it survives to the
|
|
167
|
+
* consumer, so the priority has to be expressed as ORDER on the wire.
|
|
168
|
+
*
|
|
169
|
+
* Reordering is not subtractive — no entry is removed and no field changes — so
|
|
170
|
+
* it is legal at a wire schema compared with `!==`. It is also confined to the
|
|
171
|
+
* case that needs it: a catalog that fits both the slice and the window is
|
|
172
|
+
* emitted exactly as the catalog built it, frozen identity included, because
|
|
173
|
+
* `/v1/info` is polled every 5 s and hands back the very same object each time.
|
|
174
|
+
*
|
|
175
|
+
* Unlike the model projections, an aggregate slice is the right shape HERE: one
|
|
176
|
+
* entry's id and label are bounded by the shared wire contract
|
|
177
|
+
* (`MAX_INFO_PROVIDER_ID_BYTES`/`..._LABEL_BYTES`), so no single valid provider
|
|
178
|
+
* can be larger than the slice and the cut can only ever fall on the advisory
|
|
179
|
+
* tail — never on a route provider, which is admitted first.
|
|
180
|
+
*/
|
|
181
|
+
function projectInfoProviders(providers, routeProviderIds) {
|
|
182
|
+
const costs = providers.map((provider) => Buffer.byteLength(JSON.stringify(provider), "utf8") + 1);
|
|
183
|
+
const total = costs.reduce((sum, cost) => sum + cost, INFO_PROVIDER_FRAME_BYTES);
|
|
184
|
+
if (total <= MAX_INFO_PROVIDER_BYTES && providers.length <= MAX_INFO_PROVIDER_ITEMS) {
|
|
185
|
+
return providers;
|
|
32
186
|
}
|
|
33
|
-
|
|
187
|
+
const admitted = [];
|
|
188
|
+
let bytes = INFO_PROVIDER_FRAME_BYTES;
|
|
189
|
+
for (const routesFirst of [true, false]) {
|
|
190
|
+
for (const [index, provider] of providers.entries()) {
|
|
191
|
+
if (routeProviderIds.has(provider.id) !== routesFirst)
|
|
192
|
+
continue;
|
|
193
|
+
const cost = costs[index];
|
|
194
|
+
// `continue`, not `break`: an entry that does not fit costs only itself.
|
|
195
|
+
if (bytes + cost > MAX_INFO_PROVIDER_BYTES)
|
|
196
|
+
continue;
|
|
197
|
+
bytes += cost;
|
|
198
|
+
admitted.push(provider);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return Object.freeze(admitted);
|
|
34
202
|
}
|
|
35
203
|
const APP_OWNED_TUI_START = Symbol("app-owned-tui-start");
|
|
36
204
|
const appOwnedTuiDrivers = new WeakSet();
|
|
@@ -39,10 +207,10 @@ const appOwnedTuiDrivers = new WeakSet();
|
|
|
39
207
|
* private symbol plus exact object identity prevents a plugin or arbitrary
|
|
40
208
|
* driver named `tui` from opting into the owner path.
|
|
41
209
|
*/
|
|
42
|
-
export function startAppOwnedTuiChannel(driver, input, processJobs) {
|
|
210
|
+
export function startAppOwnedTuiChannel(driver, input, processJobs, monitors) {
|
|
43
211
|
if (!appOwnedTuiDrivers.has(driver))
|
|
44
212
|
return undefined;
|
|
45
|
-
return driver[APP_OWNED_TUI_START](input, processJobs);
|
|
213
|
+
return driver[APP_OWNED_TUI_START](input, processJobs, monitors);
|
|
46
214
|
}
|
|
47
215
|
/**
|
|
48
216
|
* The TUI stream endpoint deviates from the channels-off convention: with no
|
|
@@ -69,17 +237,14 @@ export function createTuiChannelDriver(overrides = {}, cronOperator) {
|
|
|
69
237
|
return config.enabled ? undefined : "TUI stream endpoint is disabled.";
|
|
70
238
|
},
|
|
71
239
|
async start(input) {
|
|
72
|
-
return await this[APP_OWNED_TUI_START](input, undefined);
|
|
240
|
+
return await this[APP_OWNED_TUI_START](input, undefined, undefined);
|
|
73
241
|
},
|
|
74
|
-
async [APP_OWNED_TUI_START](input, processJobs) {
|
|
242
|
+
async [APP_OWNED_TUI_START](input, processJobs, monitors) {
|
|
75
243
|
const adapterModule = await loadTuiModule();
|
|
76
244
|
const adapterFactory = overrides.adapterFactory ?? adapterModule.startTuiAdapter;
|
|
77
245
|
const deliverNotification = overrides.deliverNotification ?? deliverWebNotification;
|
|
78
246
|
const discoverModels = overrides.discoverModels ?? discoverLocalProviderModels;
|
|
79
|
-
const
|
|
80
|
-
?? ((authoredModelRefs) => discoverClaudeSdkModels({ authoredModelRefs }));
|
|
81
|
-
const discoverCodexModels = overrides.discoverCodexModels
|
|
82
|
-
?? (() => requestCodexModelList(1_200, codexModelDiscoveryEnvironment()));
|
|
247
|
+
const discoverProviders = overrides.discoverProviders ?? discoverLocalProviders;
|
|
83
248
|
const localProviders = input.coreConfig.providers?.local;
|
|
84
249
|
const skillRegistry = createSkillRegistryMonitor({
|
|
85
250
|
...(input.coreConfig.context.skillsRoot === undefined
|
|
@@ -96,78 +261,135 @@ export function createTuiChannelDriver(overrides = {}, cronOperator) {
|
|
|
96
261
|
// Subsequent /v1/info reads are memory-only and cannot block on skill I/O.
|
|
97
262
|
await skillRegistry.prime();
|
|
98
263
|
const configuredRefs = [...configuredRuntimeModels(input.coreConfig.runtime)];
|
|
99
|
-
const configModelKeys = [];
|
|
100
|
-
for (const ref of configuredRefs) {
|
|
101
|
-
const key = modelReferenceKey(ref);
|
|
102
|
-
if (!configModelKeys.includes(key)) {
|
|
103
|
-
configModelKeys.push(key);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
const directOpenCodeInFallbacks = configuredRuntimeFallbackModels(input.coreConfig.runtime)
|
|
107
|
-
.some((ref) => ref.sdk === "opencode");
|
|
108
|
-
const claudeRefs = configuredRefs
|
|
109
|
-
.filter((ref) => ref.sdk === "claude")
|
|
110
|
-
.map((ref) => modelReferenceKey(ref));
|
|
111
|
-
const needsCodex = configuredRefs.some((ref) => ref.sdk === "codex");
|
|
112
|
-
let claudeCatalog = [];
|
|
113
|
-
let codexCatalog = [];
|
|
114
|
-
const [claudeResult, codexResult] = await Promise.allSettled([
|
|
115
|
-
claudeRefs.length > 0 ? discoverClaudeModels(claudeRefs) : Promise.resolve([]),
|
|
116
|
-
needsCodex ? discoverCodexModels() : Promise.resolve([]),
|
|
117
|
-
]);
|
|
118
|
-
if (claudeResult.status === "fulfilled")
|
|
119
|
-
claudeCatalog = claudeResult.value;
|
|
120
|
-
if (codexResult.status === "fulfilled")
|
|
121
|
-
codexCatalog = codexResult.value;
|
|
122
264
|
let discoveredModels = [];
|
|
265
|
+
let discoveredLocalProviders = [];
|
|
123
266
|
try {
|
|
124
|
-
|
|
267
|
+
// Two discovery paths, both advisory. `discoverModels` covers every
|
|
268
|
+
// explicitly configured local provider, including custom
|
|
269
|
+
// openai_compat endpoints. `discoverLocalProviders` is the zero-config
|
|
270
|
+
// half: it probes localhost:11434 and localhost:1234 even when nothing
|
|
271
|
+
// is declared, which is the only way `runtime.model: "ollama:..."`
|
|
272
|
+
// works without a `providers` entry. Without it that route validates,
|
|
273
|
+
// advertises nothing, and dies at turn time with `pi model not found`.
|
|
274
|
+
const [configuredModels, probed] = await Promise.all([
|
|
275
|
+
discoverModels(localProviders).catch(() => []),
|
|
276
|
+
discoverProviders({ configured: resolveConfiguredProviders(input.coreConfig).entries })
|
|
277
|
+
.catch(() => []),
|
|
278
|
+
]);
|
|
279
|
+
discoveredLocalProviders = probed.map(({ models: _models, ...definition }) => definition);
|
|
280
|
+
const byRef = new Map();
|
|
281
|
+
for (const model of configuredModels)
|
|
282
|
+
byRef.set(model.ref, model);
|
|
283
|
+
for (const provider of probed) {
|
|
284
|
+
for (const model of provider.models) {
|
|
285
|
+
const ref = `${provider.id}:${model.name}`;
|
|
286
|
+
if (byRef.has(ref))
|
|
287
|
+
continue;
|
|
288
|
+
byRef.set(ref, {
|
|
289
|
+
ref,
|
|
290
|
+
label: model.displayName ?? model.alias ?? model.name,
|
|
291
|
+
providerId: provider.id,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
discoveredModels = [...byRef.values()];
|
|
125
296
|
}
|
|
126
297
|
catch {
|
|
127
298
|
// Provider discovery is advisory. A failed startup snapshot must not
|
|
128
299
|
// make /v1/info block or expand unknown capabilities later.
|
|
129
300
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
301
|
+
// The provider-widened catalog is precomputed once here. `/v1/info` reads
|
|
302
|
+
// the frozen provider list and the configured-route shortlist from memory
|
|
303
|
+
// only; the lazy `/v1/models` endpoint slices already-frozen pages.
|
|
304
|
+
const catalog = buildProviderModelCatalog({
|
|
305
|
+
providers: resolveConfiguredProviders(input.coreConfig).entries,
|
|
306
|
+
...(localProviders === undefined && discoveredLocalProviders.length === 0
|
|
307
|
+
? {}
|
|
308
|
+
: { localProviders: [...(localProviders ?? []), ...discoveredLocalProviders] }),
|
|
309
|
+
configuredRoutes: configuredRefs,
|
|
310
|
+
discoveredModels,
|
|
311
|
+
});
|
|
312
|
+
// `/v1/info.models` must keep listing live-discovered local models
|
|
313
|
+
// alongside the configured routes. Narrowing it to configured routes was
|
|
314
|
+
// a SUBTRACTIVE wire change at an unchanged schema: a console that only
|
|
315
|
+
// reads `models` (every client predating `/v1/models`) silently lost the
|
|
316
|
+
// `ollama:*` entry it used to offer, with no skew error to explain it.
|
|
317
|
+
//
|
|
318
|
+
// Bound this projection on its OWN payload budget, never on catalog
|
|
319
|
+
// membership. The catalog's `MAX_CATALOG_ID_BYTES` is a display/paging
|
|
320
|
+
// bound, not a validity bound, and the two answer different questions: a
|
|
321
|
+
// reference that clears the parser is runnable whether or not any page
|
|
322
|
+
// would show it, so gating `models` on `catalog.resolve()` deleted a
|
|
323
|
+
// runnable model from every schema-1 client — subtractive at a schema that
|
|
324
|
+
// cannot be bumped (`TUI_WIRE_SCHEMA` is compared with `!==`).
|
|
325
|
+
// Both divergences are reachable: the per-provider advertised cap, which
|
|
326
|
+
// strands hundreds of live rows outside the page, and an id past
|
|
327
|
+
// `MAX_CATALOG_ID_BYTES`, which a local endpoint can report now that the
|
|
328
|
+
// reference parser has no length rule to refuse it first. Every one of
|
|
329
|
+
// those refs stays selectable here.
|
|
330
|
+
// What genuinely must stay bounded is the ONE 1 MiB body `/v1/info` shares
|
|
331
|
+
// across every field, and `sendBoundedInfo` is what enforces it. So the
|
|
332
|
+
// only reasons a DISCOVERED ref is withheld here are that it names nothing
|
|
333
|
+
// a turn could route to (it does not parse), or that advisory discovery
|
|
334
|
+
// has spent its aggregate budget. A configured route is withheld for
|
|
335
|
+
// neither reason: see the budget note at the top of this file.
|
|
336
|
+
const discoveredRefs = [];
|
|
337
|
+
for (const model of discoveredModels) {
|
|
338
|
+
try {
|
|
339
|
+
discoveredRefs.push(parseMonoRuntimeModelReference(model.ref));
|
|
137
340
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
341
|
+
catch {
|
|
342
|
+
// A provider that reports an unparseable ref is skipped, not fatal.
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// Resolve both /v1/info projections once, here. `/v1/info` is polled every
|
|
346
|
+
// 5s per connected console, and a throwing or slow info provider returns
|
|
347
|
+
// 500 for the WHOLE response — showing the agent offline rather than
|
|
348
|
+
// degraded. Neither projection may run per request.
|
|
349
|
+
const describeModelOption = (ref) => catalog.describe([ref])[modelReferenceKey(ref)];
|
|
350
|
+
const projection = {
|
|
351
|
+
keys: [],
|
|
352
|
+
seen: new Set(),
|
|
353
|
+
options: {},
|
|
354
|
+
bytes: INFO_MODEL_FRAME_BYTES,
|
|
355
|
+
};
|
|
356
|
+
// Every configured route, unconditionally. These are the operator's
|
|
357
|
+
// declared routes; a route the picker cannot offer is a route nobody can
|
|
358
|
+
// run, and no producer-side number gets to decide that a valid one is too
|
|
359
|
+
// big to mention. If the whole body then will not fit, `sendBoundedInfo`
|
|
360
|
+
// sheds a field and logs it — one loud, visible degradation instead of a
|
|
361
|
+
// silent hole in the middle of the picker.
|
|
362
|
+
admitInfoModels(configuredRefs, describeModelOption, projection);
|
|
363
|
+
// Advisory discovery on top: its own aggregate budget, and never room the
|
|
364
|
+
// body no longer has. When authored routes have already spent past the
|
|
365
|
+
// reserve this ceiling sits below the running total and discovery admits
|
|
366
|
+
// nothing, which is the correct order of yielding.
|
|
367
|
+
admitInfoModels(discoveredRefs, describeModelOption, projection, Math.min(projection.bytes + MAX_DISCOVERED_INFO_MODEL_BYTES, MAX_INFO_BODY_BYTES - INFO_NON_MODEL_RESERVE_BYTES));
|
|
368
|
+
const infoModelKeys = Object.freeze(projection.keys);
|
|
369
|
+
const infoModelOptions = Object.freeze(projection.options);
|
|
370
|
+
const infoProviders = projectInfoProviders(catalog.listProviders(), new Set(configuredRefs.map((ref) => ref.provider)));
|
|
371
|
+
const modelCatalog = (request) => {
|
|
372
|
+
if (request.provider !== undefined) {
|
|
373
|
+
return catalog.listModels(request.provider, {
|
|
374
|
+
...(request.cursor === undefined ? {} : { cursor: request.cursor }),
|
|
375
|
+
limit: request.limit,
|
|
152
376
|
});
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
...(resolved.reasoningMode === undefined ? {} : { reasoningMode: resolved.reasoningMode }),
|
|
159
|
-
...(label === undefined ? {} : { label }),
|
|
160
|
-
...(contextWindow === undefined ? {} : { contextWindow }),
|
|
377
|
+
}
|
|
378
|
+
if (request.query !== undefined) {
|
|
379
|
+
return {
|
|
380
|
+
models: catalog.searchModels(request.query, request.limit),
|
|
381
|
+
truncated: false,
|
|
161
382
|
};
|
|
162
|
-
if (Object.keys(entry).length > 0) {
|
|
163
|
-
modelOptions[ref] = entry;
|
|
164
|
-
}
|
|
165
383
|
}
|
|
384
|
+
return { models: [], truncated: false };
|
|
385
|
+
};
|
|
386
|
+
const buildInfo = async () => {
|
|
166
387
|
return {
|
|
167
388
|
model: modelReferenceKey(input.coreConfig.runtime.model),
|
|
168
389
|
...(input.coreConfig.runtime.effort === undefined ? {} : { effort: input.coreConfig.runtime.effort }),
|
|
169
|
-
models,
|
|
170
|
-
|
|
390
|
+
models: infoModelKeys,
|
|
391
|
+
modelOptions: infoModelOptions,
|
|
392
|
+
providers: infoProviders,
|
|
171
393
|
skills: skillRegistry.snapshot(),
|
|
172
394
|
};
|
|
173
395
|
};
|
|
@@ -188,12 +410,16 @@ export function createTuiChannelDriver(overrides = {}, cronOperator) {
|
|
|
188
410
|
? {}
|
|
189
411
|
: { requestToolEnvironment: input.config.requestToolEnvironment }),
|
|
190
412
|
responder: input.responder,
|
|
413
|
+
...(monitors === undefined
|
|
414
|
+
? {}
|
|
415
|
+
: { monitors, monitorsBearer: monitors.operatorToken }),
|
|
191
416
|
...(processJobs === undefined
|
|
192
417
|
? {}
|
|
193
418
|
: { processJobs, processJobsBearer: processJobs.operatorToken }),
|
|
194
419
|
...(input.interaction === undefined ? {} : { interaction: input.interaction }),
|
|
195
420
|
...(cronOperator?.configured === true ? { cron: cronOperator } : {}),
|
|
196
421
|
info: buildInfo,
|
|
422
|
+
modelCatalog,
|
|
197
423
|
onServerError: (reason) => input.onFailure(reason),
|
|
198
424
|
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
199
425
|
});
|
|
@@ -310,6 +536,79 @@ export function createTuiChannelDriver(overrides = {}, cronOperator) {
|
|
|
310
536
|
};
|
|
311
537
|
},
|
|
312
538
|
},
|
|
539
|
+
monitors: {
|
|
540
|
+
wake: async ({ conversationId, text, deliveryKey, monitor }) => {
|
|
541
|
+
const threadId = webThreadId(conversationId);
|
|
542
|
+
const expectedConversationId = baseConversationId(monitor.origin.conversationId);
|
|
543
|
+
const expectedDeliveryKey = `monitor:${monitor.monitorId}:${String(monitor.counters.seq)}`;
|
|
544
|
+
if (monitor.origin.channel !== "web"
|
|
545
|
+
|| conversationId !== expectedConversationId
|
|
546
|
+
|| threadId === undefined
|
|
547
|
+
|| deliveryKey !== expectedDeliveryKey) {
|
|
548
|
+
return {
|
|
549
|
+
delivered: false,
|
|
550
|
+
code: "monitor_origin_mismatch",
|
|
551
|
+
reason: "The monitor origin does not match the web destination.",
|
|
552
|
+
retryable: false,
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
if (input.sourceId === undefined) {
|
|
556
|
+
return {
|
|
557
|
+
delivered: false,
|
|
558
|
+
code: "destination_channel_unavailable",
|
|
559
|
+
reason: "The web monitor destination is unavailable.",
|
|
560
|
+
retryable: true,
|
|
561
|
+
channelId: "tui",
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
let delivered;
|
|
565
|
+
try {
|
|
566
|
+
delivered = await deliverNotification({
|
|
567
|
+
sourceId: input.sourceId,
|
|
568
|
+
triggerKind: "monitor",
|
|
569
|
+
deliveryKey,
|
|
570
|
+
threadId,
|
|
571
|
+
monitor,
|
|
572
|
+
wakePrompt: text,
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
catch (error) {
|
|
576
|
+
if (webConsoleErrorCode(error) === "notification_ingress_unavailable") {
|
|
577
|
+
return {
|
|
578
|
+
delivered: false,
|
|
579
|
+
code: "destination_channel_unavailable",
|
|
580
|
+
reason: "The web console notification ingress is unavailable.",
|
|
581
|
+
retryable: true,
|
|
582
|
+
channelId: "tui",
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
return {
|
|
586
|
+
delivered: false,
|
|
587
|
+
code: "monitor_wake_failed",
|
|
588
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
589
|
+
retryable: false,
|
|
590
|
+
ambiguous: true,
|
|
591
|
+
channelId: "tui",
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
const receipt = delivered.delivery;
|
|
595
|
+
if (receipt === undefined) {
|
|
596
|
+
return {
|
|
597
|
+
delivered: false,
|
|
598
|
+
code: "monitor_wake_failed",
|
|
599
|
+
reason: "The web console returned no Monitor wake receipt.",
|
|
600
|
+
retryable: false,
|
|
601
|
+
ambiguous: true,
|
|
602
|
+
channelId: "tui",
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
return {
|
|
606
|
+
...receipt,
|
|
607
|
+
...(receipt.delivered ? { code: "delivered", historyRecorded: true } : {}),
|
|
608
|
+
channelId: "tui",
|
|
609
|
+
};
|
|
610
|
+
},
|
|
611
|
+
},
|
|
313
612
|
notify: async ({ conversationId, text, verbatim, deliveryKey, processJob }) => {
|
|
314
613
|
if (verbatim === true
|
|
315
614
|
|| deliveryKey === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/channel-drivers/tui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/channel-drivers/tui.ts"],"names":[],"mappings":"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"}
|