instar 1.3.785 → 1.3.787
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 +48 -20
- package/dist/core/routingSpendView.d.ts +20 -0
- package/dist/core/routingSpendView.d.ts.map +1 -1
- package/dist/core/routingSpendView.js +47 -0
- package/dist/core/routingSpendView.js.map +1 -1
- package/dist/core/types.d.ts +12 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +2 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/lint-scrape-fixture-realness.js +17 -0
- package/scripts/routing-price-refresh.mjs +146 -4
- package/src/data/builtin-manifest.json +46 -46
- package/src/scaffold/templates/jobs/instar/routing-price-web-verify.md +32 -0
- package/upgrades/1.3.786.md +42 -0
- package/upgrades/1.3.787.md +42 -0
- package/upgrades/side-effects/dashboard-responsive-fix.md +51 -0
- package/upgrades/side-effects/routing-spend-pr4-operator-additions.md +50 -0
package/dashboard/index.html
CHANGED
|
@@ -527,6 +527,21 @@
|
|
|
527
527
|
background: var(--bg);
|
|
528
528
|
}
|
|
529
529
|
|
|
530
|
+
/* ── REQUIRED placement for every tab panel declared after </main> ──
|
|
531
|
+
Those panels are direct .app grid children. switchTab() hides the
|
|
532
|
+
sidebar too, so WITHOUT explicit grid placement the lone visible
|
|
533
|
+
panel auto-places into the 280px sidebar COLUMN — the "squished to
|
|
534
|
+
the side" bug (operator report 2026-07-08). Every after-main panel
|
|
535
|
+
MUST carry class="tab-panel" (or one of the container classes that
|
|
536
|
+
already sets grid-column: files/jobs/systems/features/dropzone, or
|
|
537
|
+
ph-root). Enforced structurally:
|
|
538
|
+
tests/unit/dashboard-panel-placement.test.ts fails on a bare panel. */
|
|
539
|
+
.tab-panel {
|
|
540
|
+
grid-column: 1 / -1;
|
|
541
|
+
min-width: 0;
|
|
542
|
+
background: var(--bg);
|
|
543
|
+
}
|
|
544
|
+
|
|
530
545
|
.terminal-header {
|
|
531
546
|
display: flex;
|
|
532
547
|
align-items: center;
|
|
@@ -884,10 +899,10 @@
|
|
|
884
899
|
maturation "you're here" marker. */
|
|
885
900
|
.ph-root {
|
|
886
901
|
--ph-accent: #4ade80;
|
|
887
|
-
/*
|
|
888
|
-
|
|
889
|
-
placement
|
|
890
|
-
|
|
902
|
+
/* Grid placement for after-main panels is now the shared .tab-panel
|
|
903
|
+
contract (see the .tab-panel rule + the placement floor test:
|
|
904
|
+
tests/unit/dashboard-panel-placement.test.ts). ph-root keeps its own
|
|
905
|
+
grid-column because it ALSO constrains width for prose readability. */
|
|
891
906
|
grid-column: 1 / -1;
|
|
892
907
|
max-width: 760px;
|
|
893
908
|
width: 100%;
|
|
@@ -2990,7 +3005,7 @@
|
|
|
2990
3005
|
</div>
|
|
2991
3006
|
|
|
2992
3007
|
<!-- Integrated-Being Tab (Integrated-Being v1) -->
|
|
2993
|
-
<div id="integratedBeingPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3008
|
+
<div id="integratedBeingPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
2994
3009
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
2995
3010
|
<h2 style="margin:0">Integrated-Being</h2>
|
|
2996
3011
|
<div>
|
|
@@ -3111,7 +3126,7 @@
|
|
|
3111
3126
|
<!-- Read-only: NO action buttons that mutate eligibility. All PR-authored -->
|
|
3112
3127
|
<!-- content rendered via textContent, never innerHTML — XSS defense rule -->
|
|
3113
3128
|
<!-- for the dashboard per spec §"Dashboard surface rules". -->
|
|
3114
|
-
<div id="prPipelinePanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3129
|
+
<div id="prPipelinePanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3115
3130
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3116
3131
|
<h2 style="margin:0">PR Pipeline</h2>
|
|
3117
3132
|
<div>
|
|
@@ -3126,7 +3141,7 @@
|
|
|
3126
3141
|
</div>
|
|
3127
3142
|
|
|
3128
3143
|
<!-- Projects Tab — PROJECT-SCOPE-SPEC Phase 1.10 read-only view -->
|
|
3129
|
-
<div id="projectsPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3144
|
+
<div id="projectsPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3130
3145
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3131
3146
|
<h2 style="margin:0">Projects</h2>
|
|
3132
3147
|
<button onclick="loadProjects()" style="padding:6px 12px">Refresh</button>
|
|
@@ -3141,7 +3156,7 @@
|
|
|
3141
3156
|
</div>
|
|
3142
3157
|
|
|
3143
3158
|
<!-- Initiatives Tab — multi-phase long-running work -->
|
|
3144
|
-
<div id="initiativesPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3159
|
+
<div id="initiativesPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3145
3160
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3146
3161
|
<h2 style="margin:0">Initiatives</h2>
|
|
3147
3162
|
<div style="display:flex;gap:8px;align-items:center">
|
|
@@ -3172,7 +3187,7 @@
|
|
|
3172
3187
|
</div>
|
|
3173
3188
|
|
|
3174
3189
|
<!-- Commitments Tab (Open Promises) -->
|
|
3175
|
-
<div id="secretsPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3190
|
+
<div id="secretsPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3176
3191
|
<div style="display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap">
|
|
3177
3192
|
<h2 style="margin:0">Secrets</h2>
|
|
3178
3193
|
<div style="display:flex;gap:8px">
|
|
@@ -3190,7 +3205,7 @@
|
|
|
3190
3205
|
<div id="secretsList" style="display:flex;flex-direction:column;gap:12px"></div>
|
|
3191
3206
|
</div>
|
|
3192
3207
|
|
|
3193
|
-
<div id="commitmentsPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3208
|
+
<div id="commitmentsPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3194
3209
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3195
3210
|
<h2 style="margin:0">Commitments</h2>
|
|
3196
3211
|
<button onclick="loadCommitments()" style="padding:6px 12px">Refresh</button>
|
|
@@ -3208,7 +3223,7 @@
|
|
|
3208
3223
|
</div>
|
|
3209
3224
|
|
|
3210
3225
|
<!-- Tokens Tab — read-only token-usage observability -->
|
|
3211
|
-
<div id="tokensPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3226
|
+
<div id="tokensPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3212
3227
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3213
3228
|
<h2 style="margin:0">Tokens</h2>
|
|
3214
3229
|
<button onclick="loadTokens()" style="padding:6px 12px">Refresh</button>
|
|
@@ -3244,7 +3259,7 @@
|
|
|
3244
3259
|
|
|
3245
3260
|
<!-- Resource Usage tab — per-agent CPU + memory (ResourceLedger Phase B).
|
|
3246
3261
|
Read-only observability; mirrors the Tokens tab. -->
|
|
3247
|
-
<div id="resourcesPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3262
|
+
<div id="resourcesPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3248
3263
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3249
3264
|
<h2 style="margin:0">Resource Usage</h2>
|
|
3250
3265
|
<button onclick="loadResources()" style="padding:6px 12px">Refresh</button>
|
|
@@ -3284,7 +3299,7 @@
|
|
|
3284
3299
|
true-blocker. A true-blocker is "best current understanding — recheck after <date>",
|
|
3285
3300
|
never "stop trying". Read-only here; data from GET /blockers. detectedText and all
|
|
3286
3301
|
free-text are UNTRUSTED and HTML-escaped before render. 503 = feature off. -->
|
|
3287
|
-
<div id="blockersPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3302
|
+
<div id="blockersPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3288
3303
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3289
3304
|
<h2 style="margin:0">Blockers</h2>
|
|
3290
3305
|
<button onclick="loadBlockers()" style="padding:6px 12px">Refresh</button>
|
|
@@ -3303,7 +3318,7 @@
|
|
|
3303
3318
|
Every LLM call the system makes on its own behalf: which component, which
|
|
3304
3319
|
provider/model, whether it acted or no-op'd, was skipped, cost + latency.
|
|
3305
3320
|
Read-only; data from /metrics/features. -->
|
|
3306
|
-
<div id="llmActivityPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3321
|
+
<div id="llmActivityPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3307
3322
|
<div style="display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap">
|
|
3308
3323
|
<h2 style="margin:0">LLM Activity</h2>
|
|
3309
3324
|
<div style="display:flex;gap:8px;align-items:center">
|
|
@@ -3344,7 +3359,7 @@
|
|
|
3344
3359
|
model it uses and its full ordered fallback tier list, with injection-safe /
|
|
3345
3360
|
money-gated / critical-gate flags. Read-only display; data from
|
|
3346
3361
|
/intelligence/routing/chains. No controls — the map only DISPLAYS the routing. -->
|
|
3347
|
-
<div id="routingMapPanel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3362
|
+
<div id="routingMapPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3348
3363
|
<div style="display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap">
|
|
3349
3364
|
<h2 style="margin:0">Routing Map</h2>
|
|
3350
3365
|
<button onclick="loadRoutingMap()" style="padding:6px 12px">Refresh</button>
|
|
@@ -3379,7 +3394,7 @@
|
|
|
3379
3394
|
READ + every metered paid-door key with its caps and honest not-live/$0 state.
|
|
3380
3395
|
Read-only: data from /routing-spend/summary + /routing-spend/caps. No money controls
|
|
3381
3396
|
(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">
|
|
3397
|
+
<div id="spendPanel" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3383
3398
|
<div style="display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap">
|
|
3384
3399
|
<h2 style="margin:0">Spend</h2>
|
|
3385
3400
|
<div style="display:flex;gap:8px;align-items:center">
|
|
@@ -3622,7 +3637,7 @@
|
|
|
3622
3637
|
</section>
|
|
3623
3638
|
</div>
|
|
3624
3639
|
|
|
3625
|
-
<div id="evidenceTab" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3640
|
+
<div id="evidenceTab" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3626
3641
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3627
3642
|
<h2 style="margin:0">Evidence</h2>
|
|
3628
3643
|
<div style="font-size:12px;color:var(--text-dim)">Per-entity evidence + reverse citations</div>
|
|
@@ -3681,7 +3696,7 @@
|
|
|
3681
3696
|
</div>
|
|
3682
3697
|
|
|
3683
3698
|
<!-- Threadline Tab — agent-to-agent conversations + Telegram bridge settings -->
|
|
3684
|
-
<div id="threadlineTab" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3699
|
+
<div id="threadlineTab" class="tab-panel" style="display:none;flex-direction:column;padding:20px;gap:16px;overflow-y:auto">
|
|
3685
3700
|
<div style="display:flex;justify-content:space-between;align-items:center">
|
|
3686
3701
|
<h2 style="margin:0">Threadline</h2>
|
|
3687
3702
|
<button onclick="loadThreadlineBridgeConfig()" style="padding:6px 12px">Refresh</button>
|
|
@@ -5893,6 +5908,7 @@
|
|
|
5893
5908
|
stat('Gross', usd(t.grossUsd)) +
|
|
5894
5909
|
stat('Net (of subsidy/credits)', usd(t.netUsd)) +
|
|
5895
5910
|
stat('Committed (cap-enforced)', usd(t.committedUsd)) +
|
|
5911
|
+
(typeof t.amortizedSubscriptionUsd === 'number' ? stat('Subscriptions (amortized)', '~' + usd(t.amortizedSubscriptionUsd)) : '') +
|
|
5896
5912
|
stat('Tokens in', num(t.tokensIn)) +
|
|
5897
5913
|
stat('Tokens out', num(t.tokensOut)) +
|
|
5898
5914
|
(unpriced > 0 ? stat('Unpriced tokens', num(unpriced)) : '') +
|
|
@@ -5923,7 +5939,11 @@
|
|
|
5923
5939
|
if (r.priceBasis === 'subscription-zero') basis = '<span style="color:var(--text-dim)">subscription — not per-token billed</span>';
|
|
5924
5940
|
else if (r.priceBasis === 'no-matching-point') basis = '<span style="color:var(--red)">unpriced (no matching price)</span>';
|
|
5925
5941
|
else basis = escapeHtml(String(r.priceBasis)) + (r.priceStale ? ' <span style="color:var(--red)">(stale)</span>' : '');
|
|
5926
|
-
const netCell = r.priceBasis === 'subscription-zero'
|
|
5942
|
+
const netCell = r.priceBasis === 'subscription-zero'
|
|
5943
|
+
? (typeof r.amortizedSubscriptionUsd === 'number'
|
|
5944
|
+
? '<span title="' + escapeHtml(String(r.amortizationDerivation || '')) + '">~' + usd(r.amortizedSubscriptionUsd) + ' <span style="color:var(--text-dim);font-size:10px">amortized ⓘ</span></span>'
|
|
5945
|
+
: '<span style="color:var(--text-dim)">$0 (subscription)</span>')
|
|
5946
|
+
: usd(r.netUsd);
|
|
5927
5947
|
return '<tr style="border-top:1px solid var(--border)">' +
|
|
5928
5948
|
td('<b>' + escapeHtml(String(r.door)) + '</b>') +
|
|
5929
5949
|
td(escapeHtml(String(r.modelId))) +
|
|
@@ -5935,7 +5955,15 @@
|
|
|
5935
5955
|
td(basis) +
|
|
5936
5956
|
'</tr>';
|
|
5937
5957
|
}).join('') +
|
|
5938
|
-
'</tbody></table>'
|
|
5958
|
+
'</tbody></table>' +
|
|
5959
|
+
(function () {
|
|
5960
|
+
// "Show the math": each door's amortization derivation, verbatim, once.
|
|
5961
|
+
const der = {}; rows.forEach((r) => { if (r.amortizationDerivation) der[r.door] = r.amortizationDerivation; });
|
|
5962
|
+
const lines = Object.values(der);
|
|
5963
|
+
return lines.length
|
|
5964
|
+
? '<div style="font-size:11px;color:var(--text-dim);margin-top:8px;line-height:1.5"><b>Amortization math:</b><br>' + lines.map((l) => escapeHtml(String(l))).join('<br>') + '</div>'
|
|
5965
|
+
: '';
|
|
5966
|
+
})();
|
|
5939
5967
|
}
|
|
5940
5968
|
|
|
5941
5969
|
// Paid-door caps
|
|
@@ -44,6 +44,14 @@ export interface SpendSummaryRow {
|
|
|
44
44
|
netUsd: number;
|
|
45
45
|
/** The cap-enforced (committed-at-time-of-use) figure — 0 until Increment B's money ledger exists. */
|
|
46
46
|
committedUsd: number;
|
|
47
|
+
/**
|
|
48
|
+
* Amortized subscription cost for a CLI door with an operator-declared monthly
|
|
49
|
+
* price (REPORTING-only; operator decision 2026-07-07). Null when undeclared
|
|
50
|
+
* or not a subscription door.
|
|
51
|
+
*/
|
|
52
|
+
amortizedSubscriptionUsd: number | null;
|
|
53
|
+
/** The VISIBLE derivation of the amortized figure — the "show the math" contract. */
|
|
54
|
+
amortizationDerivation: string | null;
|
|
47
55
|
priceBasis: PriceBasis;
|
|
48
56
|
/** How the dollar figure was derived (Layer 1c). Always internal-derived / subscription / unpriced in Increment A. */
|
|
49
57
|
costBasis: CostBasis;
|
|
@@ -68,6 +76,8 @@ export interface SpendSummaryTotals {
|
|
|
68
76
|
committedUsd: number;
|
|
69
77
|
unpricedTokensIn: number;
|
|
70
78
|
unpricedTokensOut: number;
|
|
79
|
+
/** Amortized subscription total (counted ONCE per door) — null when none declared. */
|
|
80
|
+
amortizedSubscriptionUsd?: number | null;
|
|
71
81
|
}
|
|
72
82
|
export interface SpendSummary {
|
|
73
83
|
grain: SpendGrain;
|
|
@@ -161,6 +171,16 @@ export interface BuildSpendSummaryOptions {
|
|
|
161
171
|
}>;
|
|
162
172
|
/** Layer 1c: latest signed reconciliation driftPct per door (display-only). */
|
|
163
173
|
driftByDoor?: Record<string, number>;
|
|
174
|
+
/**
|
|
175
|
+
* Operator-declared subscription costs per CLI door (reporting-only). The
|
|
176
|
+
* composer amortizes by CALENDAR TIME over the door's ACTIVE days in the
|
|
177
|
+
* window and emits the full derivation string (operator decision 2026-07-07:
|
|
178
|
+
* "amortize but make sure we can show the math and how everything is derived").
|
|
179
|
+
*/
|
|
180
|
+
subscriptions?: Record<string, {
|
|
181
|
+
monthlyUsd: number;
|
|
182
|
+
label?: string;
|
|
183
|
+
}>;
|
|
164
184
|
}
|
|
165
185
|
/**
|
|
166
186
|
* Compose the priced spend summary. Buckets are priced AS-OF each bucket's start
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routingSpendView.d.ts","sourceRoot":"","sources":["../../src/core/routingSpendView.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,kCAAkC,GAClC,mBAAmB,GACnB,UAAU,CAAC;AAEf,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,sHAAsH;IACtH,SAAS,EAAE,SAAS,CAAC;IACrB,qHAAqH;IACrH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,uGAAuG;IACvG,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"routingSpendView.d.ts","sourceRoot":"","sources":["../../src/core/routingSpendView.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,8 @@ function regrain(buckets, grain) {
|
|
|
84
84
|
export function buildRoutingSpendSummary(opts) {
|
|
85
85
|
const graded = regrain(opts.buckets, opts.grain);
|
|
86
86
|
const rowAcc = new Map();
|
|
87
|
+
/** Distinct ACTIVE UTC days per door (for calendar-time subscription amortization). */
|
|
88
|
+
const activeDaysByDoor = new Map();
|
|
87
89
|
for (const b of graded) {
|
|
88
90
|
// For total-grain the as-of is "now" (a single collapsed bucket has no meaningful
|
|
89
91
|
// per-day price regime); every other grain prices at its own bucket start.
|
|
@@ -108,6 +110,8 @@ export function buildRoutingSpendSummary(opts) {
|
|
|
108
110
|
costBasis: costBasisFor(res.priceBasis),
|
|
109
111
|
providerReportedUsd: null,
|
|
110
112
|
providerDriftPct: null,
|
|
113
|
+
amortizedSubscriptionUsd: null,
|
|
114
|
+
amortizationDerivation: null,
|
|
111
115
|
priceStale: res.priceStale,
|
|
112
116
|
notLiveYet: METERED_ROUTING_DOORS.has(b.door),
|
|
113
117
|
unpricedTokensIn: 0,
|
|
@@ -123,9 +127,43 @@ export function buildRoutingSpendSummary(opts) {
|
|
|
123
127
|
// The row's basis reflects its latest bucket (buckets arrive day-ASC).
|
|
124
128
|
row.priceBasis = res.priceBasis;
|
|
125
129
|
row.costBasis = costBasisFor(res.priceBasis);
|
|
130
|
+
{
|
|
131
|
+
const days = activeDaysByDoor.get(b.door) ?? new Set();
|
|
132
|
+
days.add(new Date(b.bucketStartMs).toISOString().slice(0, 10));
|
|
133
|
+
activeDaysByDoor.set(b.door, days);
|
|
134
|
+
}
|
|
126
135
|
row.priceStale = res.priceStale;
|
|
127
136
|
rowAcc.set(key, row);
|
|
128
137
|
}
|
|
138
|
+
// Amortized subscription display (operator decision 2026-07-07 — reporting-only,
|
|
139
|
+
// never a gate input): a CLI door with a declared monthly price is amortized by
|
|
140
|
+
// CALENDAR TIME over its ACTIVE days in the window, with the FULL derivation
|
|
141
|
+
// visible ("show the math and how everything is derived"). 30.4375 = the average
|
|
142
|
+
// Gregorian month (365.25 / 12) — named in the derivation, never hidden.
|
|
143
|
+
if (opts.subscriptions) {
|
|
144
|
+
const AVG_DAYS_PER_MONTH = 30.4375;
|
|
145
|
+
for (const row of rowAcc.values()) {
|
|
146
|
+
const sub = opts.subscriptions[row.door];
|
|
147
|
+
if (!sub || !(sub.monthlyUsd > 0) || row.doorClass !== 'cli')
|
|
148
|
+
continue;
|
|
149
|
+
const days = activeDaysByDoor.get(row.door)?.size ?? 0;
|
|
150
|
+
if (days === 0)
|
|
151
|
+
continue;
|
|
152
|
+
const perDay = sub.monthlyUsd / AVG_DAYS_PER_MONTH;
|
|
153
|
+
// A door's subscription is shared across its models: allocate the door's
|
|
154
|
+
// per-day cost across the door's rows proportionally by token volume so the
|
|
155
|
+
// door-level sum stays exact. Simpler and exact-at-door-level: attach the
|
|
156
|
+
// full door figure to each row but label it DOOR-LEVEL in the derivation,
|
|
157
|
+
// and count it ONCE per door in the totals.
|
|
158
|
+
const amortized = Math.round(perDay * days * 1e4) / 1e4;
|
|
159
|
+
row.amortizedSubscriptionUsd = amortized;
|
|
160
|
+
row.amortizationDerivation =
|
|
161
|
+
`${sub.label ?? row.door}: $${sub.monthlyUsd.toFixed(2)}/mo ÷ 30.4375 avg days/mo = ` +
|
|
162
|
+
`$${perDay.toFixed(4)}/day × ${days} active day(s) in this window = $${amortized.toFixed(4)} ` +
|
|
163
|
+
`(DOOR-level calendar-time allocation — subscriptions bill by time, not tokens; ` +
|
|
164
|
+
`shown once per door, token volume alongside for context; reporting-only, never cap-enforced).`;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
129
167
|
// Layer 1c provider-preferred basis: sum the daily provider aggregates per
|
|
130
168
|
// (door, modelId) and prefer them where present (spec §Layer 2 read contract).
|
|
131
169
|
if (opts.providerDaily && opts.providerDaily.length > 0) {
|
|
@@ -175,6 +213,15 @@ export function buildRoutingSpendSummary(opts) {
|
|
|
175
213
|
totals.subsidyUsd = round6(totals.subsidyUsd);
|
|
176
214
|
totals.creditUsd = round6(creditTotal);
|
|
177
215
|
totals.netUsd = round6(Math.max(0, totals.grossUsd - totals.subsidyUsd - totals.creditUsd));
|
|
216
|
+
{
|
|
217
|
+
// Amortized subscription total: each door's DOOR-LEVEL figure counted once.
|
|
218
|
+
const perDoor = new Map();
|
|
219
|
+
for (const r of rows) {
|
|
220
|
+
if (typeof r.amortizedSubscriptionUsd === 'number')
|
|
221
|
+
perDoor.set(r.door, r.amortizedSubscriptionUsd);
|
|
222
|
+
}
|
|
223
|
+
totals.amortizedSubscriptionUsd = perDoor.size > 0 ? round6([...perDoor.values()].reduce((a, b) => a + b, 0)) : null;
|
|
224
|
+
}
|
|
178
225
|
const horizonNote = opts.grain === 'hour'
|
|
179
226
|
? 'Hourly detail is computed on read from raw rows within the short raw-retention window; hourly beyond that horizon is not offered.'
|
|
180
227
|
: `Total is within the ${opts.tokenRollupRetentionDays}-day rollup horizon (daily/monthly/total survive; hourly does not).`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routingSpendView.js","sourceRoot":"","sources":["../../src/core/routingSpendView.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routingSpendView.js","sourceRoot":"","sources":["../../src/core/routingSpendView.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -3148,6 +3148,18 @@ export interface InstarConfig {
|
|
|
3148
3148
|
};
|
|
3149
3149
|
/** Provider-report store retention (days); default 400 (Layer 1c — capture lands with the reconciliation PR). */
|
|
3150
3150
|
providerReportRetentionDays?: number;
|
|
3151
|
+
/**
|
|
3152
|
+
* Operator-declared subscription costs per CLI door (REPORTING-ONLY — never a
|
|
3153
|
+
* gate input; operator decision 2026-07-07: "amortize but show the math").
|
|
3154
|
+
* The spend view amortizes each declared monthly price over the reporting
|
|
3155
|
+
* window by CALENDAR TIME (subscriptions bill by time, not tokens) and shows
|
|
3156
|
+
* the full derivation next to the figure. Absent doors keep the honest
|
|
3157
|
+
* "$0 (subscription — not per-token billed)" display.
|
|
3158
|
+
*/
|
|
3159
|
+
subscriptions?: Record<string, {
|
|
3160
|
+
monthlyUsd: number;
|
|
3161
|
+
label?: string;
|
|
3162
|
+
}>;
|
|
3151
3163
|
/** Provider-reconciliation sweep config (Layer 1c — inert until the reconciliation PR). */
|
|
3152
3164
|
reconciliation?: {
|
|
3153
3165
|
sweepIntervalHours?: number;
|