instar 1.3.780 → 1.3.781
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/dashboard/index.html +161 -0
- package/dist/core/PostUpdateMigrator.d.ts +21 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +59 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/routingPriceAuthority.d.ts +0 -0
- package/dist/core/routingPriceAuthority.d.ts.map +1 -0
- package/dist/core/routingPriceAuthority.js +0 -0
- package/dist/core/routingPriceAuthority.js.map +1 -0
- package/dist/core/routingSpendView.d.ts +172 -0
- package/dist/core/routingSpendView.d.ts.map +1 -0
- package/dist/core/routingSpendView.js +215 -0
- package/dist/core/routingSpendView.js.map +1 -0
- package/dist/core/types.d.ts +25 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.d.ts +74 -2
- package/dist/monitoring/FeatureMetricsLedger.d.ts.map +1 -1
- package/dist/monitoring/FeatureMetricsLedger.js +233 -8
- package/dist/monitoring/FeatureMetricsLedger.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +2 -1
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +1 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +35 -2
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +12 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +3 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +46 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/routing-price-refresh.mjs +216 -0
- package/scripts/routing-prices.manifest.json +64 -0
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates/jobs/instar/routing-price-refresh.md +30 -0
- package/src/scaffold/templates.ts +2 -1
- package/upgrades/1.3.781.md +25 -0
- package/upgrades/side-effects/routing-spend-increment-a.md +84 -0
package/dashboard/index.html
CHANGED
|
@@ -2752,6 +2752,7 @@
|
|
|
2752
2752
|
<button class="tab" data-tab="resources" onclick="switchTab('resources')">Resource Usage</button>
|
|
2753
2753
|
<button class="tab" data-tab="llm-activity" onclick="switchTab('llm-activity')">LLM Activity</button>
|
|
2754
2754
|
<button class="tab" data-tab="routing-map" onclick="switchTab('routing-map')">Routing Map</button>
|
|
2755
|
+
<button class="tab" data-tab="spend" onclick="switchTab('spend')">Spend</button>
|
|
2755
2756
|
<button class="tab" data-tab="threadline" onclick="switchTab('threadline')">Threadline</button>
|
|
2756
2757
|
<button class="tab" data-tab="evidence" onclick="switchTab('evidence')">Evidence</button>
|
|
2757
2758
|
<button class="tab" data-tab="process-health" onclick="switchTab('process-health')">Process Health</button>
|
|
@@ -3373,6 +3374,56 @@
|
|
|
3373
3374
|
</div>
|
|
3374
3375
|
</div>
|
|
3375
3376
|
|
|
3377
|
+
<!-- Spend tab — the read-only Routing Control Room spend/caps view (Increment A,
|
|
3378
|
+
docs/specs/routing-control-room-spend-alerts.md). Immutable token usage priced ON
|
|
3379
|
+
READ + every metered paid-door key with its caps and honest not-live/$0 state.
|
|
3380
|
+
Read-only: data from /routing-spend/summary + /routing-spend/caps. No money controls
|
|
3381
|
+
(caps adjust, go-live, alerts are later, dark increments). -->
|
|
3382
|
+
<div id="spendPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3383
|
+
<div style="display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap">
|
|
3384
|
+
<h2 style="margin:0">Spend</h2>
|
|
3385
|
+
<div style="display:flex;gap:8px;align-items:center">
|
|
3386
|
+
<select id="spendGrain" onchange="loadRoutingSpend()" style="padding:6px 8px">
|
|
3387
|
+
<option value="day" selected>Daily</option>
|
|
3388
|
+
<option value="hour">Hourly (30d)</option>
|
|
3389
|
+
<option value="month">Monthly</option>
|
|
3390
|
+
<option value="total">Total</option>
|
|
3391
|
+
</select>
|
|
3392
|
+
<button onclick="loadRoutingSpend()" style="padding:6px 12px">Refresh</button>
|
|
3393
|
+
</div>
|
|
3394
|
+
</div>
|
|
3395
|
+
<div style="font-size:12px;color:var(--text-dim);line-height:1.4">
|
|
3396
|
+
What the internal AI calls cost, and where the paid-door caps sit. The dollar figures are a
|
|
3397
|
+
<b>reporting</b> view — immutable token counts priced against a reviewed price list on read, so a
|
|
3398
|
+
price correction reflows automatically. <b>No paid door is live yet</b>, so metered spend is $0;
|
|
3399
|
+
subscription/CLI doors are <b>$0 (not per-token billed)</b>. This is read-only — money caps and the
|
|
3400
|
+
go-live control are a later increment.
|
|
3401
|
+
</div>
|
|
3402
|
+
|
|
3403
|
+
<!-- Headline totals -->
|
|
3404
|
+
<div id="spendHeadlineCard" style="border:1px solid var(--border);border-radius:8px;padding:16px">
|
|
3405
|
+
<div id="spendHeadlineBody" style="font-size:13px;overflow-x:auto">
|
|
3406
|
+
<div style="color:var(--text-dim)">Loading...</div>
|
|
3407
|
+
</div>
|
|
3408
|
+
</div>
|
|
3409
|
+
|
|
3410
|
+
<!-- Per door/model spend -->
|
|
3411
|
+
<div style="border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px">
|
|
3412
|
+
<div style="font-weight:600">By door & model</div>
|
|
3413
|
+
<div id="spendRowsBody" style="font-size:13px;overflow-x:auto">
|
|
3414
|
+
<div style="color:var(--text-dim)">Loading...</div>
|
|
3415
|
+
</div>
|
|
3416
|
+
</div>
|
|
3417
|
+
|
|
3418
|
+
<!-- Paid-door caps -->
|
|
3419
|
+
<div style="border:1px solid var(--border);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px">
|
|
3420
|
+
<div style="font-weight:600">Paid-door caps</div>
|
|
3421
|
+
<div id="spendCapsBody" style="font-size:13px;overflow-x:auto">
|
|
3422
|
+
<div style="color:var(--text-dim)">Loading...</div>
|
|
3423
|
+
</div>
|
|
3424
|
+
</div>
|
|
3425
|
+
</div>
|
|
3426
|
+
|
|
3376
3427
|
<!-- Evidence Tab (WikiClaim Phase 4) — per-entity evidence + reverse "what cites this?" view.
|
|
3377
3428
|
Spec: docs/specs/OPENCLAW-IMPORT-WIKICLAIM-EVIDENCE-SPEC.md § Phase 4 (line 343). -->
|
|
3378
3429
|
<!-- process-health tab -->
|
|
@@ -5046,6 +5097,12 @@
|
|
|
5046
5097
|
display: ['flex'],
|
|
5047
5098
|
onActivate: () => { if (typeof loadRoutingMap === 'function') loadRoutingMap(); },
|
|
5048
5099
|
},
|
|
5100
|
+
{
|
|
5101
|
+
id: 'spend',
|
|
5102
|
+
panels: ['spendPanel'],
|
|
5103
|
+
display: ['flex'],
|
|
5104
|
+
onActivate: () => { if (typeof loadRoutingSpend === 'function') loadRoutingSpend(); },
|
|
5105
|
+
},
|
|
5049
5106
|
{
|
|
5050
5107
|
id: 'threadline',
|
|
5051
5108
|
panels: ['threadlineTab'],
|
|
@@ -5810,6 +5867,110 @@
|
|
|
5810
5867
|
}
|
|
5811
5868
|
}
|
|
5812
5869
|
|
|
5870
|
+
// Routing Control Room — read-only spend/caps view (Increment A). Data from
|
|
5871
|
+
// /routing-spend/summary + /routing-spend/caps. Honest $0 / not-live-yet labelling.
|
|
5872
|
+
async function loadRoutingSpend() {
|
|
5873
|
+
const headEl = document.getElementById('spendHeadlineBody');
|
|
5874
|
+
const rowsEl = document.getElementById('spendRowsBody');
|
|
5875
|
+
const capsEl = document.getElementById('spendCapsBody');
|
|
5876
|
+
const grain = (document.getElementById('spendGrain') || {}).value || 'day';
|
|
5877
|
+
const usd = (n) => '$' + (Number(n) || 0).toFixed(4);
|
|
5878
|
+
const num = (n) => (Number(n) || 0).toLocaleString();
|
|
5879
|
+
const th = (t, right) => '<th style="padding:6px 8px;' + (right ? 'text-align:right' : 'text-align:left') + '">' + t + '</th>';
|
|
5880
|
+
const td = (v, right) => '<td style="padding:6px 8px;vertical-align:top;' + (right ? 'text-align:right' : '') + '">' + v + '</td>';
|
|
5881
|
+
try {
|
|
5882
|
+
const [summary, caps] = await Promise.all([
|
|
5883
|
+
apiFetch('/routing-spend/summary?grain=' + encodeURIComponent(grain)),
|
|
5884
|
+
apiFetch('/routing-spend/caps'),
|
|
5885
|
+
]);
|
|
5886
|
+
|
|
5887
|
+
// Headline totals
|
|
5888
|
+
const t = summary.totals || {};
|
|
5889
|
+
const unpriced = (Number(t.unpricedTokensIn) || 0) + (Number(t.unpricedTokensOut) || 0);
|
|
5890
|
+
const stat = (label, val) => '<div style="min-width:120px"><div style="font-size:11px;color:var(--text-dim)">' + label + '</div><div style="font-size:18px;font-weight:600">' + val + '</div></div>';
|
|
5891
|
+
headEl.innerHTML =
|
|
5892
|
+
'<div style="display:flex;gap:20px;flex-wrap:wrap">' +
|
|
5893
|
+
stat('Gross', usd(t.grossUsd)) +
|
|
5894
|
+
stat('Net (of subsidy/credits)', usd(t.netUsd)) +
|
|
5895
|
+
stat('Committed (cap-enforced)', usd(t.committedUsd)) +
|
|
5896
|
+
stat('Tokens in', num(t.tokensIn)) +
|
|
5897
|
+
stat('Tokens out', num(t.tokensOut)) +
|
|
5898
|
+
(unpriced > 0 ? stat('Unpriced tokens', num(unpriced)) : '') +
|
|
5899
|
+
'</div>' +
|
|
5900
|
+
'<div style="font-size:11px;color:var(--text-dim);margin-top:10px;line-height:1.4">' +
|
|
5901
|
+
escapeHtml(String(summary.note || '')) + '<br>' +
|
|
5902
|
+
escapeHtml(String(summary.horizonNote || '')) +
|
|
5903
|
+
(summary.providerGroundingNote ? '<br>' + escapeHtml(String(summary.providerGroundingNote)) : '') +
|
|
5904
|
+
(summary.reportingBasis ? '<br>Basis: ' + escapeHtml(String(summary.reportingBasis.note || '')) : '') +
|
|
5905
|
+
'</div>';
|
|
5906
|
+
|
|
5907
|
+
// Per door/model rows
|
|
5908
|
+
const rows = summary.rows || [];
|
|
5909
|
+
if (rows.length === 0) {
|
|
5910
|
+
rowsEl.innerHTML = '<div style="color:var(--text-dim)">No internal-LLM usage recorded in this window yet.</div>';
|
|
5911
|
+
} else {
|
|
5912
|
+
rowsEl.innerHTML =
|
|
5913
|
+
'<table style="width:100%;border-collapse:collapse;font-size:12px;min-width:720px">' +
|
|
5914
|
+
'<thead><tr style="color:var(--text-dim)">' +
|
|
5915
|
+
th('Door') + th('Model') + th('Class') + th('Tokens in', true) + th('Tokens out', true) +
|
|
5916
|
+
th('Gross', true) + th('Net', true) + th('Price basis') +
|
|
5917
|
+
'</tr></thead><tbody>' +
|
|
5918
|
+
rows.map((r) => {
|
|
5919
|
+
const cls = r.doorClass === 'metered'
|
|
5920
|
+
? 'metered' + (r.notLiveYet ? ' · not live' : '')
|
|
5921
|
+
: escapeHtml(String(r.doorClass));
|
|
5922
|
+
let basis;
|
|
5923
|
+
if (r.priceBasis === 'subscription-zero') basis = '<span style="color:var(--text-dim)">subscription — not per-token billed</span>';
|
|
5924
|
+
else if (r.priceBasis === 'no-matching-point') basis = '<span style="color:var(--red)">unpriced (no matching price)</span>';
|
|
5925
|
+
else basis = escapeHtml(String(r.priceBasis)) + (r.priceStale ? ' <span style="color:var(--red)">(stale)</span>' : '');
|
|
5926
|
+
const netCell = r.priceBasis === 'subscription-zero' ? '<span style="color:var(--text-dim)">$0 (subscription)</span>' : usd(r.netUsd);
|
|
5927
|
+
return '<tr style="border-top:1px solid var(--border)">' +
|
|
5928
|
+
td('<b>' + escapeHtml(String(r.door)) + '</b>') +
|
|
5929
|
+
td(escapeHtml(String(r.modelId))) +
|
|
5930
|
+
td(escapeHtml(cls)) +
|
|
5931
|
+
td(num(r.tokensIn), true) +
|
|
5932
|
+
td(num(r.tokensOut), true) +
|
|
5933
|
+
td(usd(r.grossUsd), true) +
|
|
5934
|
+
td(netCell, true) +
|
|
5935
|
+
td(basis) +
|
|
5936
|
+
'</tr>';
|
|
5937
|
+
}).join('') +
|
|
5938
|
+
'</tbody></table>';
|
|
5939
|
+
}
|
|
5940
|
+
|
|
5941
|
+
// Paid-door caps
|
|
5942
|
+
const keys = caps.keys || [];
|
|
5943
|
+
capsEl.innerHTML =
|
|
5944
|
+
'<div style="font-size:11px;color:var(--text-dim);margin-bottom:8px">' + escapeHtml(String(caps.note || '')) + '</div>' +
|
|
5945
|
+
'<table style="width:100%;border-collapse:collapse;font-size:12px;min-width:640px">' +
|
|
5946
|
+
'<thead><tr style="color:var(--text-dim)">' +
|
|
5947
|
+
th('Key') + th('Provider') + th('Door') + th('Daily cap', true) + th('Lifetime cap', true) +
|
|
5948
|
+
th('Committed', true) + th('Status') +
|
|
5949
|
+
'</tr></thead><tbody>' +
|
|
5950
|
+
keys.map((k) =>
|
|
5951
|
+
'<tr style="border-top:1px solid var(--border)">' +
|
|
5952
|
+
td('<b>' + escapeHtml(String(k.keyRef)) + '</b>') +
|
|
5953
|
+
td(escapeHtml(String(k.provider))) +
|
|
5954
|
+
td(escapeHtml(String(k.door))) +
|
|
5955
|
+
td(usd(k.dailyCapUsd), true) +
|
|
5956
|
+
td(usd(k.lifetimeCapUsd), true) +
|
|
5957
|
+
td(usd(k.committedDayUsd) + ' / ' + usd(k.committedLifetimeUsd), true) +
|
|
5958
|
+
td('<span style="color:var(--text-dim)">' + escapeHtml(String(k.goLiveState)) + (k.frozen ? ' · frozen' : '') + '</span>') +
|
|
5959
|
+
'</tr>').join('') +
|
|
5960
|
+
'</tbody></table>' +
|
|
5961
|
+
'<div style="font-size:11px;color:var(--text-dim);margin-top:8px">' + escapeHtml(String(caps.singleMachineNote || '')) + '</div>';
|
|
5962
|
+
} catch (err) {
|
|
5963
|
+
const m = err && err.message ? String(err.message) : String(err);
|
|
5964
|
+
if (/503|not enabled|unavailable/i.test(m)) {
|
|
5965
|
+
headEl.innerHTML = '<div style="color:var(--text-dim)">The spend view isn\'t enabled on this agent (it\'s a development-agent surface, dark on the fleet).</div>';
|
|
5966
|
+
} else {
|
|
5967
|
+
headEl.innerHTML = '<div style="color:var(--red)">Error: ' + escapeHtml(m) + '</div>';
|
|
5968
|
+
}
|
|
5969
|
+
rowsEl.innerHTML = '';
|
|
5970
|
+
capsEl.innerHTML = '';
|
|
5971
|
+
}
|
|
5972
|
+
}
|
|
5973
|
+
|
|
5813
5974
|
async function loadResources() {
|
|
5814
5975
|
const headlineEl = document.getElementById('resourcesHeadlineBody');
|
|
5815
5976
|
const sourcesEl = document.getElementById('resourcesSourcesBody');
|
|
@@ -43,6 +43,13 @@ export declare function PLAYWRIGHT_PROFILE_REGISTRY_CLAUDEMD_SECTION(port: numbe
|
|
|
43
43
|
* migrateClaudeMd (Migration Parity).
|
|
44
44
|
*/
|
|
45
45
|
export declare function DOORWAY_REGISTRY_CLAUDEMD_SECTION(port: number): string;
|
|
46
|
+
/**
|
|
47
|
+
* CLAUDE.md awareness block for the Routing Control Room spend VIEW (Increment A — the
|
|
48
|
+
* read-only spend/caps surface). The unique heading substring `Routing Spend view` is the
|
|
49
|
+
* content-sniff marker used by migrateClaudeMd (Migration Parity). Read-only; the money
|
|
50
|
+
* controls (caps adjust, go-live, gate) are Increment B and NOT surfaced as capabilities.
|
|
51
|
+
*/
|
|
52
|
+
export declare function ROUTING_SPEND_CLAUDEMD_SECTION(port: number): string;
|
|
46
53
|
export interface MigrationResult {
|
|
47
54
|
/** What was upgraded */
|
|
48
55
|
upgraded: string[];
|
|
@@ -175,6 +182,20 @@ export declare function migrateConfigActionClaimSlackDevGate(config: Record<stri
|
|
|
175
182
|
* reaches agents on a `schemaVersion` bump, not by writing a chain blob into every config.
|
|
176
183
|
*/
|
|
177
184
|
export declare function migrateConfigNatureRoutingDark(config: Record<string, unknown>): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Routing Control Room spend VIEW (docs/specs/routing-control-room-spend-alerts.md,
|
|
187
|
+
* § Migration parity): SEED the top-level `routingSpend` block DARK on existing agents so
|
|
188
|
+
* the update path reaches deployed agents (not only new agents via init). Added ONLY when
|
|
189
|
+
* ABSENT — never clobbers an operator/agent that already configured it (existence-checked,
|
|
190
|
+
* idempotent).
|
|
191
|
+
*
|
|
192
|
+
* CRITICAL — `enabled` is DELIBERATELY OMITTED (the #1001 pattern): the route + the ledger
|
|
193
|
+
* construction resolve it via `resolveDevAgentGate(routingSpend.enabled, config)`, so a
|
|
194
|
+
* seeded `enabled:false` would force-dark even a development agent. Only the INERT retention
|
|
195
|
+
* knob is seeded; NO money-authority value ever lives in config (those are Increment B's
|
|
196
|
+
* PIN-only store).
|
|
197
|
+
*/
|
|
198
|
+
export declare function migrateConfigRoutingSpendDark(config: Record<string, unknown>): boolean;
|
|
178
199
|
/**
|
|
179
200
|
* "Self-Unblock Before Escalating" (docs/specs/self-unblock-before-escalating.md):
|
|
180
201
|
* the two nested blockerLedger sub-features — selfUnblockChecklist + durableVaultSession
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA0CH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAUjC;;;;;;GAMG;AACH,wBAAgB,wCAAwC,IAAI,MAAM,CAQjE;AAED,wBAAgB,iCAAiC,IAAI,MAAM,CAO1D;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASlE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvE;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED,wBAAgB,4CAA4C,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcjF;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQtE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUnE;AAuBD,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAYnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAUnF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wCAAwC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAUjG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sCAAsC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQ/F;AAED;;;;;;;;;GASG;AACH,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAUhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAU9F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6CAA6C,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAUtG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAa7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAWvF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOtF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wCAAwC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAgBjG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAahG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAwB3F;AAaD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAsB5F;AA0BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAwBzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAoB5F;AAED;;;;;;;GAOG;AACH,wBAAgB,8CAA8C,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQvG;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAiC;gBAEvC,MAAM,EAAE,cAAc;IAIlC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAItC;;;;;;OAMG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;IAIjC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IASpB;;;OAGG;IACH,OAAO,IAAI,eAAe;IAkE1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gCAAgC;IA8ExC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kCAAkC;IA4E1C,OAAO,CAAC,gCAAgC;IAwCxC,OAAO,CAAC,8BAA8B;IAkFtC,OAAO,CAAC,6BAA6B;IA4DrC,OAAO,CAAC,yCAAyC;IA8DjD,OAAO,CAAC,iCAAiC;IAkDzC,OAAO,CAAC,8CAA8C;IAoDtD,OAAO,CAAC,0BAA0B;IAsFlC,OAAO,CAAC,wBAAwB;IAiFhC,OAAO,CAAC,sCAAsC;IAmE9C;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,uCAAuC;IAqC/C;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,0BAA0B;IAmFlC,OAAO,CAAC,0BAA0B;IAmDlC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kCAAkC;IAwH1C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,kCAAkC;IA8C1C;;;;;;;;OAQG;IACH,OAAO,CAAC,kCAAkC;IA2B1C,OAAO,CAAC,uBAAuB;IAwE/B,OAAO,CAAC,4CAA4C;IA+CpD;;;;;;;OAOG;IACH,OAAO,CAAC,iCAAiC;IA0BzC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oCAAoC;IAmB5C;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,yCAAyC;IAWjD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,yBAAyB;IA6FjC;;;;;;;;;;OAUG;IACG,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;YA4BhC,uBAAuB;IAkGrC,OAAO,CAAC,0BAA0B;IAkGlC,OAAO,CAAC,0BAA0B;IAoElC,OAAO,CAAC,oBAAoB;IAuH5B,OAAO,CAAC,8BAA8B;IA2EtC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,4BAA4B;IAwBpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;;;;;;OASG;IACH,OAAO,CAAC,wCAAwC;IAuBhD;;;;;;;;OAQG;IACH,OAAO,CAAC,2CAA2C;IAuBnD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,2CAA2C;IA0BnD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,kCAAkC;IAuB1C;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,mCAAmC;IA+L3C;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,yBAAyB;IA4HjC;6EACyE;IACzE,OAAO,CAAC,wBAAwB;IAShC;sDACkD;IAClD,OAAO,CAAC,wBAAwB;IAQhC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IA8RpB;;;;;;;;OAQG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IA6CvE;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkEzB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;IAoEhC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAiE5B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IA8BnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,0BAA0B;IAyClC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAyIhC;;;;;;OAMG;IACH,OAAO,CAAC,8BAA8B;IAwDtC,OAAO,CAAC,0BAA0B;IAuElC;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0uGvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,kCAAkC;IA2Q1C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAyMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,yCAAyC;IAyDjD;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6ZvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmSrB;;;OAGG;IACH;;;OAGG;IACH;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,wBAAwB;IAmEhC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,6BAA6B;IAwDrC;;;;;;;;;OASG;IACH,OAAO,CAAC,yBAAyB;IAsDjC,OAAO,CAAC,wBAAwB;IAqChC,OAAO,CAAC,gBAAgB;IAuBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,OAAO,CAAC,qBAAqB;IAqH7B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,0BAA0B;IAgDlC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IA2C1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,oBAAoB;IAgC5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAyBrB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqC9B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,yBAAyB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,8BAA8B,GAAG,2BAA2B,GAAG,4BAA4B,GAAG,iBAAiB,GAAG,0BAA0B,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,0BAA0B,GAAG,uBAAuB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,MAAM;IA0BxiB,oFAAoF;IACpF,iCAAiC,IAAI,MAAM;IAI3C,6EAA6E;IAC7E,yBAAyB,IAAI,MAAM;IAInC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,2BAA2B;IAmFnC,OAAO,CAAC,mBAAmB;IA6jB3B,OAAO,CAAC,wBAAwB;IA6JhC,OAAO,CAAC,2BAA2B;IAwEnC,OAAO,CAAC,yBAAyB;IA8IjC,OAAO,CAAC,2BAA2B;IAqKnC,OAAO,CAAC,qBAAqB;IA2Y7B,OAAO,CAAC,uBAAuB;IAmS/B,OAAO,CAAC,oBAAoB;IAgG5B,OAAO,CAAC,qBAAqB;IA8H7B,OAAO,CAAC,2BAA2B;IAoHnC,OAAO,CAAC,iCAAiC;IA6DzC,OAAO,CAAC,+BAA+B;IAkFvC,OAAO,CAAC,iCAAiC;IAkFzC,OAAO,CAAC,uBAAuB;IA0F/B,OAAO,CAAC,uBAAuB;IAgL/B,OAAO,CAAC,4BAA4B;IA+MpC;;;;;;;;;;OAUG;IACH;;;;;;;;;;;OAWG;IAEH,gBAAuB,iCAAiC,EAAE,WAAW,CAAC,MAAM,CAAC,CAkD1E;IAEH;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,8BAA8B;IAiHtC,OAAO,CAAC,uBAAuB;IAwD/B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,8BAA8B;IA6HtC,OAAO,CAAC,+BAA+B;IAuKvC,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,qBAAqB;IAqO7B,OAAO,CAAC,qBAAqB;IAwI7B,OAAO,CAAC,qBAAqB;IAyV7B,OAAO,CAAC,6BAA6B;IAkLrC,OAAO,CAAC,0BAA0B;IAiClC,OAAO,CAAC,0BAA0B;IA8ElC,OAAO,CAAC,0BAA0B;IA8IlC,OAAO,CAAC,gBAAgB;IAmJxB,OAAO,CAAC,6BAA6B;CAoCtC"}
|
|
@@ -162,6 +162,23 @@ A durable map from each of my **doorways** (the ways I reach LLMs — Claude Cod
|
|
|
162
162
|
- **When to use** (PROACTIVE — this is the trigger): user asks "what models can I reach?" / "is my model map current?" / "which doorways are live?" → read \`GET /doorways\`, don't guess. A \`503 registry-unavailable-no-instar-source\` just means this is a pure end-user install with no source registry.
|
|
163
163
|
`;
|
|
164
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* CLAUDE.md awareness block for the Routing Control Room spend VIEW (Increment A — the
|
|
167
|
+
* read-only spend/caps surface). The unique heading substring `Routing Spend view` is the
|
|
168
|
+
* content-sniff marker used by migrateClaudeMd (Migration Parity). Read-only; the money
|
|
169
|
+
* controls (caps adjust, go-live, gate) are Increment B and NOT surfaced as capabilities.
|
|
170
|
+
*/
|
|
171
|
+
export function ROUTING_SPEND_CLAUDEMD_SECTION(port) {
|
|
172
|
+
return `\n### Routing Spend view — what am I spending on routing? (\`GET /routing-spend/summary\`, \`GET /routing-spend/caps\`)
|
|
173
|
+
|
|
174
|
+
A READ-ONLY window on internal-LLM spend and the paid-door caps (docs/specs/routing-control-room-spend-alerts.md, Increment A). It turns the immutable token record (\`feature_metrics\`) into dollars by joining a reviewed price manifest ON READ — so "what did we spend, and where do the caps sit?" is a READ, not a guess. It gates NOTHING and books NOTHING (the money ledger + O(1) gate + PIN cap controls are Increment B, not built yet).
|
|
175
|
+
- Spend rollup (per door/model + totals): \`curl -H "Authorization: Bearer $AUTH" "http://localhost:${port}/routing-spend/summary?grain=day"\` → per-row \`{ door, modelId, doorClass, tokensIn/Out/Cached, grossUsd, subsidyUsd, netUsd, committedUsd, priceBasis, priceStale, notLiveYet, unpricedTokens* }\` + \`totals\` + \`reportingBasis\`. Grains: \`hour|day|month|total\`.
|
|
176
|
+
- Caps + paid-door status: \`curl -H "Authorization: Bearer $AUTH" http://localhost:${port}/routing-spend/caps\` → each metered key \`{ keyRef, provider, door, lifetimeCapUsd, dailyCapUsd, frozen, committedLifetimeUsd, committedDayUsd, goLiveState }\`. **Honest state:** no paid door is live yet, so committed spend is \`$0\` and \`goLiveState:"not-live"\` everywhere; subscription/CLI doors show \`$0 (subscription — not per-token billed)\`.
|
|
177
|
+
- Dashboard: the **Spend** tab renders both surfaces in plain language — point the user there rather than pasting curl output.
|
|
178
|
+
- Dev-gated: the routes are LIVE on a development agent, DARK on the fleet (\`503\` when off; \`routingSpend.enabled\` overrides the gate). Money caps + go-live + alerts are later, dark increments.
|
|
179
|
+
- **When to use** (PROACTIVE — this is the trigger): user asks "what am I spending on routing / the internal LLM calls?" / "where do my paid-door caps sit?" / "is any paid door live?" → read \`GET /routing-spend/summary\` + \`/caps\`, or send them to the Spend tab; do NOT guess.
|
|
180
|
+
`;
|
|
181
|
+
}
|
|
165
182
|
/**
|
|
166
183
|
* CLAUDE.md note for the second wedge-signature family (2026-06-05 EXO
|
|
167
184
|
* incident) + the API fresh-respawn lever. Appended to NEW installs as part of
|
|
@@ -428,6 +445,28 @@ export function migrateConfigNatureRoutingDark(config) {
|
|
|
428
445
|
};
|
|
429
446
|
return true;
|
|
430
447
|
}
|
|
448
|
+
/**
|
|
449
|
+
* Routing Control Room spend VIEW (docs/specs/routing-control-room-spend-alerts.md,
|
|
450
|
+
* § Migration parity): SEED the top-level `routingSpend` block DARK on existing agents so
|
|
451
|
+
* the update path reaches deployed agents (not only new agents via init). Added ONLY when
|
|
452
|
+
* ABSENT — never clobbers an operator/agent that already configured it (existence-checked,
|
|
453
|
+
* idempotent).
|
|
454
|
+
*
|
|
455
|
+
* CRITICAL — `enabled` is DELIBERATELY OMITTED (the #1001 pattern): the route + the ledger
|
|
456
|
+
* construction resolve it via `resolveDevAgentGate(routingSpend.enabled, config)`, so a
|
|
457
|
+
* seeded `enabled:false` would force-dark even a development agent. Only the INERT retention
|
|
458
|
+
* knob is seeded; NO money-authority value ever lives in config (those are Increment B's
|
|
459
|
+
* PIN-only store).
|
|
460
|
+
*/
|
|
461
|
+
export function migrateConfigRoutingSpendDark(config) {
|
|
462
|
+
if (Object.prototype.hasOwnProperty.call(config, 'routingSpend'))
|
|
463
|
+
return false; // already present
|
|
464
|
+
config.routingSpend = {
|
|
465
|
+
// `enabled` OMITTED so resolveDevAgentGate decides (live on a dev agent, dark fleet).
|
|
466
|
+
tokenRollupRetentionDays: 400,
|
|
467
|
+
};
|
|
468
|
+
return true;
|
|
469
|
+
}
|
|
431
470
|
/**
|
|
432
471
|
* "Self-Unblock Before Escalating" (docs/specs/self-unblock-before-escalating.md):
|
|
433
472
|
* the two nested blockerLedger sub-features — selfUnblockChecklist + durableVaultSession
|
|
@@ -4625,6 +4664,15 @@ setTimeout(() => process.exit(0), 2000);
|
|
|
4625
4664
|
patched = true;
|
|
4626
4665
|
result.upgraded.push('CLAUDE.md: added Doorway/Model Knowledge Registry section');
|
|
4627
4666
|
}
|
|
4667
|
+
// Routing Spend view (routing-control-room-spend-alerts, Increment A) — Agent
|
|
4668
|
+
// Awareness Standard + Migration Parity: existing agents learn the read-only spend/caps
|
|
4669
|
+
// surfaces + the Spend tab via this appended section. Same text as generateClaudeMd.
|
|
4670
|
+
// Content-sniff on the unique heading keeps it idempotent.
|
|
4671
|
+
if (!content.includes('Routing Spend view')) {
|
|
4672
|
+
content += ROUTING_SPEND_CLAUDEMD_SECTION(port);
|
|
4673
|
+
patched = true;
|
|
4674
|
+
result.upgraded.push('CLAUDE.md: added Routing Spend view section');
|
|
4675
|
+
}
|
|
4628
4676
|
// The Agent Carries the Loop (agent-owned-followthrough C1+C2) — agent
|
|
4629
4677
|
// awareness for the owner⟂blockedOn commitment model + the probe + that the
|
|
4630
4678
|
// user is never status-pinged for an agent-owned commitment. Content-sniffed.
|
|
@@ -8768,6 +8816,17 @@ Two layers keep my machine-to-machine \"ropes\" (Tailscale / LAN / Cloudflare) h
|
|
|
8768
8816
|
else {
|
|
8769
8817
|
result.skipped.push('config.json: sessions.natureRouting already present or no sessions block (no seed)');
|
|
8770
8818
|
}
|
|
8819
|
+
// Routing Control Room spend VIEW (Increment A): SEED the top-level routingSpend block
|
|
8820
|
+
// DARK (tokenRollupRetentionDays only; `enabled` OMITTED so the developmentAgent gate
|
|
8821
|
+
// resolves it live-on-dev / dark-fleet). Existence-checked — never clobbers an operator
|
|
8822
|
+
// who already configured it.
|
|
8823
|
+
if (migrateConfigRoutingSpendDark(config)) {
|
|
8824
|
+
patched = true;
|
|
8825
|
+
result.upgraded.push('config.json: seeded dark routingSpend (tokenRollupRetentionDays:400; enabled omitted for the developmentAgent gate)');
|
|
8826
|
+
}
|
|
8827
|
+
else {
|
|
8828
|
+
result.skipped.push('config.json: routingSpend already present (no seed)');
|
|
8829
|
+
}
|
|
8771
8830
|
// "Self-Unblock Before Escalating" (CMT-1519): the two nested blockerLedger
|
|
8772
8831
|
// dev-gated sub-features (selfUnblockChecklist + durableVaultSession) OMIT
|
|
8773
8832
|
// `enabled`. Strip a default-shaped `false` so the developmentAgent gate resolves
|