@pentoshi/clai 4.11.25 → 4.11.26
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 +91 -34
- package/dist/app/adapters/agent-event-adapter.js +1 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +1 -1
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +1 -0
- package/dist/app/controllers/session-controller.js +3 -0
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-usage-ledger.d.ts +7 -1
- package/dist/app/controllers/session-usage-ledger.js +76 -2
- package/dist/app/controllers/session-usage-ledger.js.map +1 -1
- package/dist/app/events/app-event.d.ts +2 -1
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/llm/kiro-auth.d.ts +32 -0
- package/dist/llm/kiro-auth.js +162 -0
- package/dist/llm/kiro-auth.js.map +1 -1
- package/dist/llm/kiro.d.ts +5 -1
- package/dist/llm/kiro.js +135 -72
- package/dist/llm/kiro.js.map +1 -1
- package/dist/llm/model-layers/model-rules.js +22 -1
- package/dist/llm/model-layers/model-rules.js.map +1 -1
- package/dist/llm/provider-balance.d.ts +31 -0
- package/dist/llm/provider-balance.js +118 -0
- package/dist/llm/provider-balance.js.map +1 -0
- package/dist/llm/provider-info-text.js +19 -7
- package/dist/llm/provider-info-text.js.map +1 -1
- package/dist/llm/provider-profile-layers.js +1 -1
- package/dist/llm/provider-profile-layers.js.map +1 -1
- package/dist/llm/provider.d.ts +1 -0
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/reasoning-errors.d.ts +1 -0
- package/dist/llm/reasoning-errors.js +10 -1
- package/dist/llm/reasoning-errors.js.map +1 -1
- package/dist/store/history/jsonl-backend.js +2 -1
- package/dist/store/history/jsonl-backend.js.map +1 -1
- package/dist/store/history/jsonl-lock.js +23 -3
- package/dist/store/history/jsonl-lock.js.map +1 -1
- package/dist/store/history/lifecycle.js +3 -2
- package/dist/store/history/lifecycle.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/ui-core/bootstrap/composition-root.js +1 -0
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/commands/picker-commands.js +3 -0
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/pickers/search-reasoning.d.ts +2 -0
- package/dist/ui-core/commands/pickers/search-reasoning.js +1 -1
- package/dist/ui-core/commands/pickers/search-reasoning.js.map +1 -1
- package/dist/ui-core/commands/session-commands.d.ts +4 -0
- package/dist/ui-core/commands/session-commands.js +94 -2
- package/dist/ui-core/commands/session-commands.js.map +1 -1
- package/dist/ui-core/rendering/format-usage.js +29 -6
- package/dist/ui-core/rendering/format-usage.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { providerIds } from "../../types.js";
|
|
1
|
+
import { providerIds, } from "../../types.js";
|
|
2
2
|
const KNOWN_PROVIDERS = new Set(providerIds);
|
|
3
3
|
const MAX_PERSISTED_ROUTES = 64;
|
|
4
4
|
function nonNegativeInteger(value) {
|
|
@@ -47,6 +47,7 @@ function toRoute(entry) {
|
|
|
47
47
|
requests: entry.requests,
|
|
48
48
|
promptTokens: entry.promptTokens,
|
|
49
49
|
completionTokens: entry.completionTokens,
|
|
50
|
+
...(entry.completionKnown ? {} : { completionTokensKnown: false }),
|
|
50
51
|
totalTokens: entry.totalTokens,
|
|
51
52
|
cachedPromptTokens: entry.cachedPromptTokens,
|
|
52
53
|
cacheCreationTokens: entry.cacheCreationTokens,
|
|
@@ -56,11 +57,67 @@ function toRoute(entry) {
|
|
|
56
57
|
cacheBasePromptTokens: entry.cacheBasePromptTokens,
|
|
57
58
|
estimatedRequests: entry.estimatedRequests,
|
|
58
59
|
unmeasuredPromptRequests: entry.unmeasuredPromptRequests,
|
|
60
|
+
charges: Object.freeze([...entry.charges.values()]),
|
|
59
61
|
});
|
|
60
62
|
}
|
|
61
63
|
function isRecord(value) {
|
|
62
64
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
63
65
|
}
|
|
66
|
+
function normalizedCharge(value) {
|
|
67
|
+
if (!isRecord(value))
|
|
68
|
+
return undefined;
|
|
69
|
+
if (typeof value.amount !== "number" ||
|
|
70
|
+
!Number.isFinite(value.amount) ||
|
|
71
|
+
value.amount < 0 ||
|
|
72
|
+
typeof value.unit !== "string" ||
|
|
73
|
+
!value.unit.trim()) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
const currency = typeof value.currency === "string" ? value.currency.trim() : "";
|
|
77
|
+
const label = typeof value.label === "string" ? value.label.trim() : "";
|
|
78
|
+
return {
|
|
79
|
+
amount: value.amount,
|
|
80
|
+
unit: value.unit.trim(),
|
|
81
|
+
...(currency ? { currency } : {}),
|
|
82
|
+
...(label ? { label } : {}),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function chargeKey(charge) {
|
|
86
|
+
return [charge.unit, charge.currency ?? "", charge.label ?? ""]
|
|
87
|
+
.map((part) => part.toLowerCase())
|
|
88
|
+
.join("\u0000");
|
|
89
|
+
}
|
|
90
|
+
function mergeCharges(current, incoming) {
|
|
91
|
+
const merged = new Map(current.map((charge) => [chargeKey(charge), charge]));
|
|
92
|
+
for (const charge of incoming) {
|
|
93
|
+
const key = chargeKey(charge);
|
|
94
|
+
const prior = merged.get(key);
|
|
95
|
+
merged.set(key, {
|
|
96
|
+
...charge,
|
|
97
|
+
amount: (prior?.amount ?? 0) + charge.amount,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return [...merged.values()].sort((left, right) => chargeKey(left).localeCompare(chargeKey(right)));
|
|
101
|
+
}
|
|
102
|
+
function recordCharges(target, rawCharges) {
|
|
103
|
+
for (const raw of rawCharges ?? []) {
|
|
104
|
+
const charge = normalizedCharge(raw);
|
|
105
|
+
if (!charge)
|
|
106
|
+
continue;
|
|
107
|
+
const key = chargeKey(charge);
|
|
108
|
+
const prior = target.get(key);
|
|
109
|
+
target.set(key, {
|
|
110
|
+
...charge,
|
|
111
|
+
amount: (prior?.amount ?? 0) + charge.amount,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function restoredCharges(value) {
|
|
116
|
+
const charges = new Map();
|
|
117
|
+
if (Array.isArray(value))
|
|
118
|
+
recordCharges(charges, value);
|
|
119
|
+
return charges;
|
|
120
|
+
}
|
|
64
121
|
export function usageCacheHitRate(input) {
|
|
65
122
|
const cached = input.cachedPromptTokens;
|
|
66
123
|
const base = input.cacheBasePromptTokens;
|
|
@@ -84,6 +141,7 @@ export class SessionUsageLedger {
|
|
|
84
141
|
requests: 0,
|
|
85
142
|
promptTokens: 0,
|
|
86
143
|
completionTokens: 0,
|
|
144
|
+
completionKnown: true,
|
|
87
145
|
totalTokens: 0,
|
|
88
146
|
cachedPromptTokens: undefined,
|
|
89
147
|
cacheCreationTokens: undefined,
|
|
@@ -93,6 +151,7 @@ export class SessionUsageLedger {
|
|
|
93
151
|
cacheBasePromptTokens: undefined,
|
|
94
152
|
estimatedRequests: 0,
|
|
95
153
|
unmeasuredPromptRequests: 0,
|
|
154
|
+
charges: new Map(),
|
|
96
155
|
};
|
|
97
156
|
this.entries.set(key, entry);
|
|
98
157
|
}
|
|
@@ -100,13 +159,15 @@ export class SessionUsageLedger {
|
|
|
100
159
|
if (normalizedApi)
|
|
101
160
|
entry.apis.add(normalizedApi);
|
|
102
161
|
const promptMeasured = usage.promptTokensKnown !== false;
|
|
162
|
+
const completionMeasured = usage.exact !== false;
|
|
103
163
|
const promptTokens = promptMeasured ? nonNegativeInteger(usage.promptTokens) : 0;
|
|
104
|
-
const completionTokens = nonNegativeInteger(usage.completionTokens);
|
|
164
|
+
const completionTokens = completionMeasured ? nonNegativeInteger(usage.completionTokens) : 0;
|
|
105
165
|
const cached = optionalNonNegativeInteger(usage.cachedPromptTokens);
|
|
106
166
|
const rawCached = cached !== undefined && promptMeasured ? Math.min(cached, promptTokens) : cached;
|
|
107
167
|
entry.requests += 1;
|
|
108
168
|
entry.promptTokens += promptTokens;
|
|
109
169
|
entry.completionTokens += completionTokens;
|
|
170
|
+
entry.completionKnown &&= completionMeasured;
|
|
110
171
|
entry.totalTokens += nonNegativeInteger(usage.totalTokens);
|
|
111
172
|
entry.cachedPromptTokens = addOptional(entry.cachedPromptTokens, rawCached);
|
|
112
173
|
entry.cacheCreationTokens = addOptional(entry.cacheCreationTokens, optionalNonNegativeInteger(usage.cacheCreationTokens));
|
|
@@ -121,6 +182,7 @@ export class SessionUsageLedger {
|
|
|
121
182
|
entry.estimatedRequests += 1;
|
|
122
183
|
if (!promptMeasured)
|
|
123
184
|
entry.unmeasuredPromptRequests += 1;
|
|
185
|
+
recordCharges(entry.charges, usage.charges);
|
|
124
186
|
}
|
|
125
187
|
isEmpty() {
|
|
126
188
|
return this.entries.size === 0;
|
|
@@ -136,6 +198,7 @@ export class SessionUsageLedger {
|
|
|
136
198
|
let requests = 0;
|
|
137
199
|
let promptTokens = 0;
|
|
138
200
|
let completionTokens = 0;
|
|
201
|
+
let completionKnown = routes.length > 0;
|
|
139
202
|
let totalTokens = 0;
|
|
140
203
|
let cachedPromptTokens;
|
|
141
204
|
let cacheCreationTokens;
|
|
@@ -145,11 +208,13 @@ export class SessionUsageLedger {
|
|
|
145
208
|
let cacheBasePromptTokens;
|
|
146
209
|
let estimatedRequests = 0;
|
|
147
210
|
let unmeasuredPromptRequests = 0;
|
|
211
|
+
let charges = [];
|
|
148
212
|
const totalsApis = new Set();
|
|
149
213
|
for (const route of routes) {
|
|
150
214
|
requests += route.requests;
|
|
151
215
|
promptTokens += route.promptTokens;
|
|
152
216
|
completionTokens += route.completionTokens;
|
|
217
|
+
completionKnown &&= route.completionTokensKnown !== false;
|
|
153
218
|
totalTokens += route.totalTokens;
|
|
154
219
|
cachedPromptTokens = addOptional(cachedPromptTokens, route.cachedPromptTokens);
|
|
155
220
|
cacheCreationTokens = addOptional(cacheCreationTokens, route.cacheCreationTokens);
|
|
@@ -159,6 +224,7 @@ export class SessionUsageLedger {
|
|
|
159
224
|
cacheBasePromptTokens = addOptional(cacheBasePromptTokens, route.cacheBasePromptTokens);
|
|
160
225
|
estimatedRequests += route.estimatedRequests;
|
|
161
226
|
unmeasuredPromptRequests += route.unmeasuredPromptRequests;
|
|
227
|
+
charges = mergeCharges(charges, route.charges);
|
|
162
228
|
for (const api of route.apis)
|
|
163
229
|
totalsApis.add(api);
|
|
164
230
|
}
|
|
@@ -169,6 +235,7 @@ export class SessionUsageLedger {
|
|
|
169
235
|
requests,
|
|
170
236
|
promptTokens,
|
|
171
237
|
completionTokens,
|
|
238
|
+
...(completionKnown ? {} : { completionTokensKnown: false }),
|
|
172
239
|
totalTokens,
|
|
173
240
|
cachedPromptTokens,
|
|
174
241
|
cacheCreationTokens,
|
|
@@ -179,6 +246,7 @@ export class SessionUsageLedger {
|
|
|
179
246
|
estimatedRequests,
|
|
180
247
|
unmeasuredPromptRequests,
|
|
181
248
|
apis: Object.freeze([...totalsApis].sort()),
|
|
249
|
+
charges: Object.freeze(charges),
|
|
182
250
|
}),
|
|
183
251
|
});
|
|
184
252
|
}
|
|
@@ -196,6 +264,7 @@ export class SessionUsageLedger {
|
|
|
196
264
|
requests: entry.requests,
|
|
197
265
|
promptTokens: entry.promptTokens,
|
|
198
266
|
completionTokens: entry.completionTokens,
|
|
267
|
+
...(entry.completionKnown ? {} : { completionTokensKnown: false }),
|
|
199
268
|
totalTokens: entry.totalTokens,
|
|
200
269
|
...(entry.cachedPromptTokens !== undefined
|
|
201
270
|
? { cachedPromptTokens: entry.cachedPromptTokens }
|
|
@@ -219,6 +288,9 @@ export class SessionUsageLedger {
|
|
|
219
288
|
...(entry.unmeasuredPromptRequests > 0
|
|
220
289
|
? { unmeasuredPromptRequests: entry.unmeasuredPromptRequests }
|
|
221
290
|
: {}),
|
|
291
|
+
...(entry.charges.size > 0
|
|
292
|
+
? { charges: [...entry.charges.values()] }
|
|
293
|
+
: {}),
|
|
222
294
|
}));
|
|
223
295
|
return rows.length > 0 ? rows : undefined;
|
|
224
296
|
}
|
|
@@ -264,6 +336,7 @@ export class SessionUsageLedger {
|
|
|
264
336
|
requests,
|
|
265
337
|
promptTokens,
|
|
266
338
|
completionTokens,
|
|
339
|
+
completionKnown: raw.completionTokensKnown !== false,
|
|
267
340
|
totalTokens: totalTokens || promptTokens + completionTokens,
|
|
268
341
|
cachedPromptTokens: optionalNonNegativeInteger(raw.cachedPromptTokens),
|
|
269
342
|
cacheCreationTokens: optionalNonNegativeInteger(raw.cacheCreationTokens),
|
|
@@ -273,6 +346,7 @@ export class SessionUsageLedger {
|
|
|
273
346
|
cacheBasePromptTokens: optionalNonNegativeInteger(raw.cacheBasePromptTokens),
|
|
274
347
|
estimatedRequests: nonNegativeInteger(raw.estimatedRequests),
|
|
275
348
|
unmeasuredPromptRequests: nonNegativeInteger(raw.unmeasuredPromptRequests),
|
|
349
|
+
charges: restoredCharges(raw.charges),
|
|
276
350
|
});
|
|
277
351
|
}
|
|
278
352
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-usage-ledger.js","sourceRoot":"","sources":["../../../src/app/controllers/session-usage-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-usage-ledger.js","sourceRoot":"","sources":["../../../src/app/controllers/session-usage-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ContextAttemptReference, ContextSnapshotScope } from "../../llm/context-snapshot.js";
|
|
2
2
|
import type { SessionPlan } from "../../store/plan.js";
|
|
3
|
-
import type { ProviderId } from "../../types.js";
|
|
3
|
+
import type { ProviderId, UsageCharge } from "../../types.js";
|
|
4
4
|
export type Brand<T, B extends string> = T & {
|
|
5
5
|
readonly __brand: B;
|
|
6
6
|
};
|
|
@@ -137,6 +137,7 @@ export interface AppEventPayloads {
|
|
|
137
137
|
readonly cacheCreationTokens?: number | undefined;
|
|
138
138
|
readonly uncachedPromptTokens?: number | undefined;
|
|
139
139
|
readonly reasoningTokens?: number | undefined;
|
|
140
|
+
readonly charges?: readonly UsageCharge[] | undefined;
|
|
140
141
|
readonly model?: string | undefined;
|
|
141
142
|
readonly provider?: ProviderId | undefined;
|
|
142
143
|
readonly api?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-event.js","sourceRoot":"","sources":["../../../src/app/events/app-event.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE,CAAC,KAAmB,CAAC;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"app-event.js","sourceRoot":"","sources":["../../../src/app/events/app-event.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE,CAAC,KAAmB,CAAC;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,CAAC;AA4I5C,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAe;IACnE,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAkB;IAC7C,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAkB;IAClD,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/llm/kiro-auth.d.ts
CHANGED
|
@@ -111,3 +111,35 @@ export declare function candidateKiroCredentialPaths(): Promise<string[]>;
|
|
|
111
111
|
export declare function readKiroStoredAuth(): Promise<KiroCredential | undefined>;
|
|
112
112
|
export declare function importExistingKiroAuth(): Promise<KiroCredential | undefined>;
|
|
113
113
|
export declare function maybeRefreshKiroCredential(key: string, storedRefreshToken?: string): Promise<string | undefined>;
|
|
114
|
+
export interface KiroModelInfo {
|
|
115
|
+
readonly modelId: string;
|
|
116
|
+
readonly modelName?: string | undefined;
|
|
117
|
+
readonly description?: string | undefined;
|
|
118
|
+
readonly rateMultiplier?: number | undefined;
|
|
119
|
+
readonly maxInputTokens?: number | undefined;
|
|
120
|
+
readonly maxOutputTokens?: number | undefined;
|
|
121
|
+
readonly supportsImages?: boolean | undefined;
|
|
122
|
+
}
|
|
123
|
+
export interface KiroUsageBreakdown {
|
|
124
|
+
readonly resourceType?: string | undefined;
|
|
125
|
+
readonly displayName?: string | undefined;
|
|
126
|
+
readonly displayNamePlural?: string | undefined;
|
|
127
|
+
readonly unit?: string | undefined;
|
|
128
|
+
readonly currency?: string | undefined;
|
|
129
|
+
readonly currentUsage: number;
|
|
130
|
+
readonly usageLimit: number;
|
|
131
|
+
readonly currentOverages: number;
|
|
132
|
+
readonly overageCap?: number | undefined;
|
|
133
|
+
readonly overageRate?: number | undefined;
|
|
134
|
+
readonly nextDateReset?: number | undefined;
|
|
135
|
+
}
|
|
136
|
+
export interface KiroUsageLimits {
|
|
137
|
+
readonly subscriptionTitle?: string | undefined;
|
|
138
|
+
readonly subscriptionType?: string | undefined;
|
|
139
|
+
readonly overageStatus?: string | undefined;
|
|
140
|
+
readonly nextDateReset?: number | undefined;
|
|
141
|
+
readonly daysUntilReset?: number | undefined;
|
|
142
|
+
readonly breakdowns: readonly KiroUsageBreakdown[];
|
|
143
|
+
}
|
|
144
|
+
export declare function listKiroModelsDetailed(credential: KiroCredential): Promise<KiroModelInfo[]>;
|
|
145
|
+
export declare function getKiroUsageLimits(credential: KiroCredential): Promise<KiroUsageLimits>;
|
package/dist/llm/kiro-auth.js
CHANGED
|
@@ -1014,4 +1014,166 @@ export async function maybeRefreshKiroCredential(key, storedRefreshToken) {
|
|
|
1014
1014
|
return undefined;
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
|
+
function optionalNumber(value) {
|
|
1018
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
1019
|
+
}
|
|
1020
|
+
function parseModelInfo(value) {
|
|
1021
|
+
const rec = asRecord(value);
|
|
1022
|
+
if (!rec)
|
|
1023
|
+
return undefined;
|
|
1024
|
+
const modelId = typeof rec.modelId === "string"
|
|
1025
|
+
? rec.modelId
|
|
1026
|
+
: typeof rec.id === "string"
|
|
1027
|
+
? rec.id
|
|
1028
|
+
: "";
|
|
1029
|
+
if (!modelId)
|
|
1030
|
+
return undefined;
|
|
1031
|
+
const tokenLimits = asRecord(rec.tokenLimits);
|
|
1032
|
+
const inputTypes = Array.isArray(rec.supportedInputTypes)
|
|
1033
|
+
? rec.supportedInputTypes
|
|
1034
|
+
: undefined;
|
|
1035
|
+
return {
|
|
1036
|
+
modelId,
|
|
1037
|
+
modelName: typeof rec.modelName === "string" ? rec.modelName : undefined,
|
|
1038
|
+
description: typeof rec.description === "string" ? rec.description : undefined,
|
|
1039
|
+
rateMultiplier: optionalNumber(rec.rateMultiplier),
|
|
1040
|
+
maxInputTokens: tokenLimits ? optionalNumber(tokenLimits.maxInputTokens) : undefined,
|
|
1041
|
+
maxOutputTokens: tokenLimits ? optionalNumber(tokenLimits.maxOutputTokens) : undefined,
|
|
1042
|
+
supportsImages: inputTypes
|
|
1043
|
+
? inputTypes.some((t) => typeof t === "string" && t.toUpperCase() === "IMAGE")
|
|
1044
|
+
: undefined,
|
|
1045
|
+
};
|
|
1046
|
+
}
|
|
1047
|
+
function kiroCatalogHeaders(credential) {
|
|
1048
|
+
const headers = {
|
|
1049
|
+
Accept: "application/json",
|
|
1050
|
+
"User-Agent": "AWS-SDK-JS/3.0.0 kiro-ide/1.0.0",
|
|
1051
|
+
"X-Amz-User-Agent": "aws-sdk-js/3.0.0 kiro-ide/1.0.0",
|
|
1052
|
+
};
|
|
1053
|
+
if (credential.authMethod === "api_key" && credential.apiKey) {
|
|
1054
|
+
headers["Authorization"] = `Bearer ${credential.apiKey}`;
|
|
1055
|
+
headers["TokenType"] = "API_KEY";
|
|
1056
|
+
}
|
|
1057
|
+
else if (credential.accessToken) {
|
|
1058
|
+
headers["Authorization"] = `Bearer ${credential.accessToken}`;
|
|
1059
|
+
if (credential.authMethod === "external_idp") {
|
|
1060
|
+
headers["TokenType"] = "EXTERNAL_IDP";
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
return headers;
|
|
1064
|
+
}
|
|
1065
|
+
export async function listKiroModelsDetailed(credential) {
|
|
1066
|
+
const region = assertValidAwsRegion(credential.region);
|
|
1067
|
+
const params = new URLSearchParams({ origin: "AI_EDITOR" });
|
|
1068
|
+
const response = await fetch(`https://q.${region}.amazonaws.com/ListAvailableModels?${params.toString()}`, {
|
|
1069
|
+
method: "GET",
|
|
1070
|
+
headers: kiroCatalogHeaders(credential),
|
|
1071
|
+
signal: AbortSignal.timeout(15_000),
|
|
1072
|
+
});
|
|
1073
|
+
if (!response.ok) {
|
|
1074
|
+
throw new Error(`ListAvailableModels failed (HTTP ${response.status})`);
|
|
1075
|
+
}
|
|
1076
|
+
const json = asRecord(await response.json().catch(() => ({})));
|
|
1077
|
+
const models = Array.isArray(json?.models) ? json.models : [];
|
|
1078
|
+
return models
|
|
1079
|
+
.map(parseModelInfo)
|
|
1080
|
+
.filter((info) => info !== undefined);
|
|
1081
|
+
}
|
|
1082
|
+
export async function getKiroUsageLimits(credential) {
|
|
1083
|
+
const region = assertValidAwsRegion(credential.region);
|
|
1084
|
+
const body = {
|
|
1085
|
+
origin: "AI_EDITOR",
|
|
1086
|
+
resourceType: "AGENTIC_REQUEST",
|
|
1087
|
+
isEmailRequired: false,
|
|
1088
|
+
};
|
|
1089
|
+
if (credential.profileArn)
|
|
1090
|
+
body.profileArn = credential.profileArn;
|
|
1091
|
+
const headers = {
|
|
1092
|
+
"Content-Type": "application/x-amz-json-1.0",
|
|
1093
|
+
"x-amz-target": "AmazonCodeWhispererService.GetUsageLimits",
|
|
1094
|
+
Accept: "application/json",
|
|
1095
|
+
...(credential.authMethod === "api_key" && credential.apiKey
|
|
1096
|
+
? { Authorization: `Bearer ${credential.apiKey}`, TokenType: "API_KEY" }
|
|
1097
|
+
: { Authorization: `Bearer ${credential.accessToken}` }),
|
|
1098
|
+
};
|
|
1099
|
+
const endpoints = [
|
|
1100
|
+
`https://q.${region}.amazonaws.com/`,
|
|
1101
|
+
`https://codewhisperer.${region}.amazonaws.com/`,
|
|
1102
|
+
`https://runtime.${region}.kiro.dev/`,
|
|
1103
|
+
];
|
|
1104
|
+
let lastError;
|
|
1105
|
+
for (const endpoint of endpoints) {
|
|
1106
|
+
try {
|
|
1107
|
+
const response = await fetch(endpoint, {
|
|
1108
|
+
method: "POST",
|
|
1109
|
+
headers,
|
|
1110
|
+
body: JSON.stringify(body),
|
|
1111
|
+
signal: AbortSignal.timeout(15_000),
|
|
1112
|
+
});
|
|
1113
|
+
if (!response.ok) {
|
|
1114
|
+
const text = await response.text().catch(() => "");
|
|
1115
|
+
lastError = new Error(`GetUsageLimits failed (HTTP ${response.status})${text ? `: ${text.slice(0, 200)}` : ""}`);
|
|
1116
|
+
continue;
|
|
1117
|
+
}
|
|
1118
|
+
const json = asRecord(await response.json().catch(() => ({})));
|
|
1119
|
+
if (!json) {
|
|
1120
|
+
lastError = new Error("GetUsageLimits returned an invalid payload");
|
|
1121
|
+
continue;
|
|
1122
|
+
}
|
|
1123
|
+
const subscription = asRecord(json.subscriptionInfo);
|
|
1124
|
+
const overage = asRecord(json.overageConfiguration);
|
|
1125
|
+
const list = Array.isArray(json.usageBreakdownList)
|
|
1126
|
+
? json.usageBreakdownList
|
|
1127
|
+
: [];
|
|
1128
|
+
const breakdowns = [];
|
|
1129
|
+
for (const entry of list) {
|
|
1130
|
+
const rec = asRecord(entry);
|
|
1131
|
+
if (!rec)
|
|
1132
|
+
continue;
|
|
1133
|
+
const used = optionalNumber(rec.currentUsageWithPrecision) ??
|
|
1134
|
+
optionalNumber(rec.currentUsage);
|
|
1135
|
+
const limit = optionalNumber(rec.usageLimitWithPrecision) ??
|
|
1136
|
+
optionalNumber(rec.usageLimit);
|
|
1137
|
+
if (used === undefined || limit === undefined)
|
|
1138
|
+
continue;
|
|
1139
|
+
breakdowns.push({
|
|
1140
|
+
resourceType: typeof rec.resourceType === "string" ? rec.resourceType : undefined,
|
|
1141
|
+
displayName: typeof rec.displayName === "string" ? rec.displayName : undefined,
|
|
1142
|
+
displayNamePlural: typeof rec.displayNamePlural === "string"
|
|
1143
|
+
? rec.displayNamePlural
|
|
1144
|
+
: undefined,
|
|
1145
|
+
unit: typeof rec.unit === "string" ? rec.unit : undefined,
|
|
1146
|
+
currency: typeof rec.currency === "string" ? rec.currency : undefined,
|
|
1147
|
+
currentUsage: used,
|
|
1148
|
+
usageLimit: limit,
|
|
1149
|
+
currentOverages: optionalNumber(rec.currentOveragesWithPrecision) ??
|
|
1150
|
+
optionalNumber(rec.currentOverages) ??
|
|
1151
|
+
0,
|
|
1152
|
+
overageCap: optionalNumber(rec.overageCapWithPrecision) ??
|
|
1153
|
+
optionalNumber(rec.overageCap),
|
|
1154
|
+
overageRate: optionalNumber(rec.overageRate),
|
|
1155
|
+
nextDateReset: optionalNumber(rec.nextDateReset),
|
|
1156
|
+
});
|
|
1157
|
+
}
|
|
1158
|
+
return {
|
|
1159
|
+
subscriptionTitle: typeof subscription?.subscriptionTitle === "string"
|
|
1160
|
+
? subscription.subscriptionTitle
|
|
1161
|
+
: undefined,
|
|
1162
|
+
subscriptionType: typeof subscription?.type === "string" ? subscription.type : undefined,
|
|
1163
|
+
overageStatus: typeof overage?.overageStatus === "string"
|
|
1164
|
+
? overage.overageStatus
|
|
1165
|
+
: undefined,
|
|
1166
|
+
nextDateReset: optionalNumber(json.nextDateReset),
|
|
1167
|
+
daysUntilReset: optionalNumber(json.daysUntilReset),
|
|
1168
|
+
breakdowns,
|
|
1169
|
+
};
|
|
1170
|
+
}
|
|
1171
|
+
catch (error) {
|
|
1172
|
+
if (error instanceof Error && error.name === "AbortError")
|
|
1173
|
+
throw error;
|
|
1174
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
1175
|
+
}
|
|
1176
|
+
}
|
|
1177
|
+
throw lastError ?? new Error("GetUsageLimits failed on all Kiro endpoints");
|
|
1178
|
+
}
|
|
1017
1179
|
//# sourceMappingURL=kiro-auth.js.map
|