@genesislcap/ai-assistant 15.33.1-GENC-1601.2 → 15.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-assistant.api.json +2 -2
- package/dist/ai-assistant.d.ts +11 -1
- package/dist/chat-driver.cjs +20 -4
- package/dist/chat-driver.cjs.map +2 -2
- package/dist/chat-driver.mjs +20 -4
- package/dist/chat-driver.mjs.map +2 -2
- package/dist/dts/components/settings-modal/settings-modal.template.d.ts.map +1 -1
- package/dist/dts/main/budget-controller.d.ts +11 -6
- package/dist/dts/main/budget-controller.d.ts.map +1 -1
- package/dist/dts/provider/tiered-provider-switcher.d.ts.map +1 -1
- package/dist/dts/state/ai-assistant-slice.d.ts +11 -1
- package/dist/dts/state/ai-assistant-slice.d.ts.map +1 -1
- package/dist/dts/state/session-store.d.ts.map +1 -1
- package/dist/esm/components/settings-modal/settings-modal.template.js +14 -3
- package/dist/esm/main/budget-controller.js +79 -31
- package/dist/esm/provider/tiered-provider-switcher.js +13 -0
- package/docs/styling.md +16 -8
- package/package.json +16 -16
|
@@ -24530,7 +24530,7 @@
|
|
|
24530
24530
|
{
|
|
24531
24531
|
"kind": "PropertySignature",
|
|
24532
24532
|
"canonicalReference": "@genesislcap/ai-assistant!VendorBudgetFigures#segments:member",
|
|
24533
|
-
"docComment": "/**\n * Optional breakdown of {@link VendorBudgetFigures.spentUsd} by whatever the host meters spend by — a surface, a team, an environment. Given, the vendor's bar is drawn stacked with a legend; omitted, it is the single bar it has always been.\n *\n * Host-named, with no platform vocabulary: the assistant has no idea what a host's spend sources are, and inventing labels for them is how a product word ends up in the platform. Segments may cover less than the total (the remainder simply draws unlabelled); they may not cover more, which would be a breakdown of a figure other than the one on screen.\n */\n",
|
|
24533
|
+
"docComment": "/**\n * Optional breakdown of {@link VendorBudgetFigures.spentUsd} by whatever the host meters spend by — a surface, a team, an environment. Given, the vendor's bar is drawn stacked with a legend; omitted, it is the single bar it has always been.\n *\n * Host-named, with no platform vocabulary: the assistant has no idea what a host's spend sources are, and inventing labels for them is how a product word ends up in the platform. Segments may cover less than the total (the remainder simply draws unlabelled); they may not cover more, which would be a breakdown of a figure other than the one on screen.\n *\n * ORDER IS SIGNIFICANT: the bar and legend are drawn in array order, and the first segment gets the strongest tone (full strength whenever the whole spend is attributed). Feed the sources in a fixed, meaningful order — the one you want drawn first, first — and keep it across re-feeds; a host that re-sorts its sources per response moves the strongest tone between them with no change in the money.\n */\n",
|
|
24534
24534
|
"excerptTokens": [
|
|
24535
24535
|
{
|
|
24536
24536
|
"kind": "Content",
|
|
@@ -24607,7 +24607,7 @@
|
|
|
24607
24607
|
{
|
|
24608
24608
|
"kind": "PropertySignature",
|
|
24609
24609
|
"canonicalReference": "@genesislcap/ai-assistant!VendorBudgetSegment#id:member",
|
|
24610
|
-
"docComment": "/**\n *
|
|
24610
|
+
"docComment": "/**\n * Identifies the source. Must be unique within a breakdown, and must not be `__remainder__`, which the meter reserves for unattributed spend; a breakdown that breaks either rule is dropped. It does not decide drawing order or tone — array order does.\n */\n",
|
|
24611
24611
|
"excerptTokens": [
|
|
24612
24612
|
{
|
|
24613
24613
|
"kind": "Content",
|
package/dist/ai-assistant.d.ts
CHANGED
|
@@ -6488,6 +6488,12 @@ export declare interface VendorBudgetFigures {
|
|
|
6488
6488
|
* sources are, and inventing labels for them is how a product word ends up in the platform.
|
|
6489
6489
|
* Segments may cover less than the total (the remainder simply draws unlabelled); they may
|
|
6490
6490
|
* not cover more, which would be a breakdown of a figure other than the one on screen.
|
|
6491
|
+
*
|
|
6492
|
+
* ORDER IS SIGNIFICANT: the bar and legend are drawn in array order, and the first segment
|
|
6493
|
+
* gets the strongest tone (full strength whenever the whole spend is attributed). Feed the
|
|
6494
|
+
* sources in a fixed, meaningful order — the one you want drawn first, first — and keep it
|
|
6495
|
+
* across re-feeds; a host that re-sorts its sources per response moves the strongest tone
|
|
6496
|
+
* between them with no change in the money.
|
|
6491
6497
|
*/
|
|
6492
6498
|
segments?: VendorBudgetSegment[];
|
|
6493
6499
|
}
|
|
@@ -6498,7 +6504,11 @@ export declare interface VendorBudgetFigures {
|
|
|
6498
6504
|
* @beta
|
|
6499
6505
|
*/
|
|
6500
6506
|
export declare interface VendorBudgetSegment {
|
|
6501
|
-
/**
|
|
6507
|
+
/**
|
|
6508
|
+
* Identifies the source. Must be unique within a breakdown, and must not be
|
|
6509
|
+
* `__remainder__`, which the meter reserves for unattributed spend; a breakdown that breaks
|
|
6510
|
+
* either rule is dropped. It does not decide drawing order or tone — array order does.
|
|
6511
|
+
*/
|
|
6502
6512
|
id: string;
|
|
6503
6513
|
/** What the host calls this slice of the spend; rendered verbatim in the legend. */
|
|
6504
6514
|
label: string;
|
package/dist/chat-driver.cjs
CHANGED
|
@@ -3570,8 +3570,12 @@ var DEFAULT_AI_TIERS = Object.freeze({
|
|
|
3570
3570
|
}),
|
|
3571
3571
|
// One-shot judgement calls rather than tool loops, so a smaller ceiling is ample:
|
|
3572
3572
|
// `max_tokens` is only a cap, and this tier never emits a whole file.
|
|
3573
|
+
//
|
|
3574
|
+
// Opus 4.8 rather than the 4.7 Create benched: the same price ($5 / $25) and the same 1M
|
|
3575
|
+
// window, but 4.8 supports native structured output where 4.7 takes the forced-tool
|
|
3576
|
+
// fallback — and structured judgement is what this tier is asked for most (review of #2540).
|
|
3573
3577
|
reasoning: Object.freeze({
|
|
3574
|
-
model: "claude-opus-4-
|
|
3578
|
+
model: "claude-opus-4-8",
|
|
3575
3579
|
maxTokens: 32e3,
|
|
3576
3580
|
stallTimeoutMs: AI_STALL_TIMEOUT_MS,
|
|
3577
3581
|
timeoutMs: AI_NO_RESPONSE_TIMEOUT_MS
|
|
@@ -3583,11 +3587,18 @@ var DEFAULT_AI_TIERS = Object.freeze({
|
|
|
3583
3587
|
stallTimeoutMs: AI_STALL_TIMEOUT_MS,
|
|
3584
3588
|
timeoutMs: AI_NO_RESPONSE_TIMEOUT_MS
|
|
3585
3589
|
}),
|
|
3590
|
+
// On an INTRODUCTORY rate that doubles to $1.50 / $7.50 on 2027-01-01, from which point it
|
|
3591
|
+
// is dearer on input than the gemini-3.5-flash it replaced. Chosen at the introductory rate
|
|
3592
|
+
// knowingly; `ai-tiers.test.ts` fails that day to force the re-bench.
|
|
3586
3593
|
high: Object.freeze({
|
|
3587
3594
|
model: "gemini-3.8-flash",
|
|
3588
3595
|
stallTimeoutMs: AI_STALL_TIMEOUT_MS,
|
|
3589
3596
|
timeoutMs: AI_NO_RESPONSE_TIMEOUT_MS
|
|
3590
3597
|
}),
|
|
3598
|
+
// A PREVIEW model: no stability guarantee, and it may be withdrawn at short notice (its
|
|
3599
|
+
// transport warns on every construction). Accepted knowingly as the platform default because
|
|
3600
|
+
// no stable Gemini Pro was on offer when the tiers were benched; revisit as soon as Google
|
|
3601
|
+
// promotes, deprecates or withdraws it, since every app on this default inherits the risk.
|
|
3591
3602
|
reasoning: Object.freeze({
|
|
3592
3603
|
model: "gemini-3.1-pro-preview",
|
|
3593
3604
|
stallTimeoutMs: AI_STALL_TIMEOUT_MS,
|
|
@@ -3598,16 +3609,21 @@ var DEFAULT_AI_TIERS = Object.freeze({
|
|
|
3598
3609
|
function resolveAITiers(overrides) {
|
|
3599
3610
|
if (!(overrides === null || overrides === void 0 ? void 0 : overrides.anthropic) && !(overrides === null || overrides === void 0 ? void 0 : overrides.gemini))
|
|
3600
3611
|
return DEFAULT_AI_TIERS;
|
|
3601
|
-
return {
|
|
3612
|
+
return Object.freeze({
|
|
3602
3613
|
anthropic: mergeVendor(DEFAULT_AI_TIERS.anthropic, overrides.anthropic),
|
|
3603
3614
|
gemini: mergeVendor(DEFAULT_AI_TIERS.gemini, overrides.gemini)
|
|
3604
|
-
};
|
|
3615
|
+
});
|
|
3605
3616
|
}
|
|
3606
3617
|
function mergeVendor(defaults, overrides) {
|
|
3618
|
+
var _a;
|
|
3607
3619
|
const merged = {};
|
|
3608
3620
|
for (const tier of AI_TIER_IDS) {
|
|
3609
|
-
|
|
3621
|
+
const defined = Object.fromEntries(Object.entries((_a = overrides === null || overrides === void 0 ? void 0 : overrides[tier]) !== null && _a !== void 0 ? _a : {}).filter(([, value]) => value !== void 0));
|
|
3622
|
+
const entry = Object.assign(Object.assign({}, defaults[tier]), defined);
|
|
3623
|
+
Object.freeze(entry);
|
|
3624
|
+
merged[tier] = entry;
|
|
3610
3625
|
}
|
|
3626
|
+
Object.freeze(merged);
|
|
3611
3627
|
return merged;
|
|
3612
3628
|
}
|
|
3613
3629
|
|