ns-kiro-core 0.1.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.
Files changed (78) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +51 -0
  3. package/dist/blocks.d.ts +32 -0
  4. package/dist/blocks.js +83 -0
  5. package/dist/blocks.js.map +1 -0
  6. package/dist/bracket-tool-parser.d.ts +11 -0
  7. package/dist/bracket-tool-parser.js +78 -0
  8. package/dist/bracket-tool-parser.js.map +1 -0
  9. package/dist/cost.d.ts +3 -0
  10. package/dist/cost.js +10 -0
  11. package/dist/cost.js.map +1 -0
  12. package/dist/debug.d.ts +6 -0
  13. package/dist/debug.js +63 -0
  14. package/dist/debug.js.map +1 -0
  15. package/dist/effort.d.ts +36 -0
  16. package/dist/effort.js +138 -0
  17. package/dist/effort.js.map +1 -0
  18. package/dist/endpoints.d.ts +8 -0
  19. package/dist/endpoints.js +43 -0
  20. package/dist/endpoints.js.map +1 -0
  21. package/dist/event-parser.d.ts +49 -0
  22. package/dist/event-parser.js +56 -0
  23. package/dist/event-parser.js.map +1 -0
  24. package/dist/history-validator.d.ts +91 -0
  25. package/dist/history-validator.js +370 -0
  26. package/dist/history-validator.js.map +1 -0
  27. package/dist/history.d.ts +21 -0
  28. package/dist/history.js +130 -0
  29. package/dist/history.js.map +1 -0
  30. package/dist/index.d.ts +22 -0
  31. package/dist/index.js +28 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/invoke-tool-parser.d.ts +16 -0
  34. package/dist/invoke-tool-parser.js +152 -0
  35. package/dist/invoke-tool-parser.js.map +1 -0
  36. package/dist/kiro-cli.d.ts +31 -0
  37. package/dist/kiro-cli.js +308 -0
  38. package/dist/kiro-cli.js.map +1 -0
  39. package/dist/kiro-ide.d.ts +12 -0
  40. package/dist/kiro-ide.js +74 -0
  41. package/dist/kiro-ide.js.map +1 -0
  42. package/dist/management.d.ts +34 -0
  43. package/dist/management.js +226 -0
  44. package/dist/management.js.map +1 -0
  45. package/dist/models.d.ts +58 -0
  46. package/dist/models.js +462 -0
  47. package/dist/models.js.map +1 -0
  48. package/dist/oauth.d.ts +50 -0
  49. package/dist/oauth.js +295 -0
  50. package/dist/oauth.js.map +1 -0
  51. package/dist/retry.d.ts +74 -0
  52. package/dist/retry.js +156 -0
  53. package/dist/retry.js.map +1 -0
  54. package/dist/stream.d.ts +36 -0
  55. package/dist/stream.js +898 -0
  56. package/dist/stream.js.map +1 -0
  57. package/dist/thinking-parser.d.ts +21 -0
  58. package/dist/thinking-parser.js +150 -0
  59. package/dist/thinking-parser.js.map +1 -0
  60. package/dist/token-type.d.ts +18 -0
  61. package/dist/token-type.js +45 -0
  62. package/dist/token-type.js.map +1 -0
  63. package/dist/tokenizer.d.ts +1 -0
  64. package/dist/tokenizer.js +19 -0
  65. package/dist/tokenizer.js.map +1 -0
  66. package/dist/transform.d.ts +111 -0
  67. package/dist/transform.js +268 -0
  68. package/dist/transform.js.map +1 -0
  69. package/dist/truncation.d.ts +3 -0
  70. package/dist/truncation.js +12 -0
  71. package/dist/truncation.js.map +1 -0
  72. package/dist/types.d.ts +159 -0
  73. package/dist/types.js +4 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/usage.d.ts +86 -0
  76. package/dist/usage.js +85 -0
  77. package/dist/usage.js.map +1 -0
  78. package/package.json +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"management.js","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { type KiroEffortConfig } from "./effort.js";
2
+ import { type KiroCatalogModel } from "./management.js";
3
+ import { type KiroEffort, type KiroModelSpec } from "./types.js";
4
+ export { resolveApiRegion } from "./endpoints.js";
5
+ export declare const KIRO_MANAGEMENT_CACHE_VERSION = 1;
6
+ export declare const KIRO_MANAGEMENT_CACHE_SOURCE = "ns-kiro-provider-management";
7
+ /**
8
+ * Deliberately not `~/.kiro-management-models-cache.json`: that path belongs to
9
+ * pi-provider-kiro, whose cached rows carry pi-ai model fields this package does
10
+ * not write. Sharing it would make each tool reject the other's cache as
11
+ * malformed and refetch on every call.
12
+ */
13
+ export declare const KIRO_MANAGEMENT_CACHE_PATH: string;
14
+ type KiroTokenLimits = NonNullable<KiroCatalogModel["tokenLimits"]>;
15
+ export interface KiroModel extends KiroModelSpec {
16
+ /** Exact model ID returned by the Kiro management catalog. */
17
+ kiroModelId: string;
18
+ /** Catalog metadata consumed by request-time effort handling. */
19
+ additionalModelRequestFieldsSchema?: Record<string, unknown>;
20
+ tokenLimits?: KiroTokenLimits;
21
+ firstTokenTimeout?: number;
22
+ /** Kiro can return a summarized thinking block for this model. */
23
+ supportsSummarizedThinking?: boolean;
24
+ /**
25
+ * Whether text-dialect tool calls should be recovered from the response.
26
+ * Claude models emit native tool-use events, so scanning their prose for
27
+ * `[Called …]` or `<invoke …>` only produces false positives.
28
+ */
29
+ recoverTextToolCalls?: boolean;
30
+ }
31
+ /**
32
+ * Bootstrap models carry no catalog schema, so their ladder comes from the same
33
+ * `getKiroEffortConfig` fallback the request path uses. Deriving here instead of
34
+ * hardcoding per-model literals keeps one source of truth: `effort.ts` decides
35
+ * which model gets which rungs, and discovery overwrites this once it runs.
36
+ */
37
+ export declare const kiroModels: KiroModel[];
38
+ /** Exact service IDs known from either the bootstrap list or a valid management cache. */
39
+ export declare const KIRO_MODEL_IDS: Set<string>;
40
+ /**
41
+ * Project a Kiro effort enum onto the neutral ladder, lowest rung first. Values
42
+ * are filtered through {@link KIRO_EFFORT_ORDER} because Kiro may report one
43
+ * outside it (`none`). No `effortMap` is produced: the wire spelling equals the
44
+ * rung name here, and {@link KiroModelSpec.effortMap} exists for hosts whose
45
+ * own vocabulary does not.
46
+ */
47
+ export declare function applyEffortLadder(config: KiroEffortConfig | undefined): {
48
+ efforts?: readonly KiroEffort[];
49
+ supportsSummarizedThinking?: boolean;
50
+ };
51
+ /** Map an authenticated management catalog into models without discarding fresh metadata for bootstrap IDs. */
52
+ export declare function mapKiroCatalogModels(catalogModels: KiroCatalogModel[], region: string): KiroModel[];
53
+ export declare function loadCachedModelIds(): void;
54
+ /** Return the authenticated regional catalog, or the static list only as a pre-discovery bootstrap. */
55
+ export declare function getCachedModels(region: string): KiroModel[];
56
+ export declare function isCacheStale(region: string): boolean;
57
+ export declare function updateKiroModelsCache(accessToken: string, region: string, profileArn?: string): Promise<void>;
58
+ export declare function resolveKiroModel(modelId: string, exactKiroModelId?: string): string;
package/dist/models.js ADDED
@@ -0,0 +1,462 @@
1
+ // Model catalog: the bootstrap list, the authenticated catalog, and its cache.
2
+ import { randomUUID } from "node:crypto";
3
+ import { existsSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
4
+ import { homedir } from "node:os";
5
+ import { join } from "node:path";
6
+ import { getKiroEffortConfig } from "./effort.js";
7
+ import { fetchKiroModelCatalog } from "./management.js";
8
+ import { KIRO_EFFORT_ORDER } from "./types.js";
9
+ export { resolveApiRegion } from "./endpoints.js";
10
+ export const KIRO_MANAGEMENT_CACHE_VERSION = 1;
11
+ export const KIRO_MANAGEMENT_CACHE_SOURCE = "ns-kiro-provider-management";
12
+ /**
13
+ * Deliberately not `~/.kiro-management-models-cache.json`: that path belongs to
14
+ * pi-provider-kiro, whose cached rows carry pi-ai model fields this package does
15
+ * not write. Sharing it would make each tool reject the other's cache as
16
+ * malformed and refetch on every call.
17
+ */
18
+ export const KIRO_MANAGEMENT_CACHE_PATH = join(homedir(), ".ns-kiro-provider-models-cache.json");
19
+ const CACHE_MAX_AGE_MS = 3600_000;
20
+ const DEFAULT_CONTEXT_WINDOW = 200_000;
21
+ const DEFAULT_MAX_TOKENS = 8_192;
22
+ const ZERO_COST = Object.freeze({ input: 0, output: 0, cacheRead: 0, cacheWrite: 0 });
23
+ const REASONING_FAMILY_MARKERS = ["opus", "sonnet", "fable", "coder", "deepseek", "gpt", "glm", "qwen"];
24
+ /** Non-Claude models whose Kiro runtime vision support has been verified end to end. */
25
+ const VERIFIED_IMAGE_MODEL_IDS = new Set(["gpt-5.6-luna"]);
26
+ const bootstrapKiroModels = [
27
+ {
28
+ id: "claude-opus-4-8",
29
+ kiroModelId: "claude-opus-4.8",
30
+ name: "Claude Opus 4.8",
31
+ reasoning: true,
32
+ input: ["text", "image"],
33
+ cost: ZERO_COST,
34
+ contextWindow: 1000000,
35
+ maxTokens: 128000,
36
+ firstTokenTimeout: 180_000,
37
+ },
38
+ {
39
+ id: "claude-opus-4-7",
40
+ kiroModelId: "claude-opus-4.7",
41
+ name: "Claude Opus 4.7",
42
+ reasoning: true,
43
+ input: ["text", "image"],
44
+ cost: ZERO_COST,
45
+ contextWindow: 1000000,
46
+ maxTokens: 128000,
47
+ firstTokenTimeout: 180_000,
48
+ },
49
+ {
50
+ id: "claude-opus-4-6",
51
+ kiroModelId: "claude-opus-4.6",
52
+ name: "Claude Opus 4.6",
53
+ reasoning: true,
54
+ input: ["text", "image"],
55
+ cost: ZERO_COST,
56
+ contextWindow: 1000000,
57
+ maxTokens: 32768,
58
+ },
59
+ {
60
+ id: "claude-sonnet-5",
61
+ kiroModelId: "claude-sonnet-5",
62
+ name: "Claude Sonnet 5",
63
+ reasoning: true,
64
+ input: ["text", "image"],
65
+ cost: ZERO_COST,
66
+ contextWindow: 1000000,
67
+ maxTokens: 65536,
68
+ },
69
+ {
70
+ id: "claude-sonnet-4-6",
71
+ kiroModelId: "claude-sonnet-4.6",
72
+ name: "Claude Sonnet 4.6",
73
+ reasoning: true,
74
+ input: ["text", "image"],
75
+ cost: ZERO_COST,
76
+ contextWindow: 1000000,
77
+ maxTokens: 65536,
78
+ },
79
+ {
80
+ id: "claude-sonnet-4-5",
81
+ kiroModelId: "claude-sonnet-4.5",
82
+ name: "Claude Sonnet 4.5",
83
+ reasoning: true,
84
+ input: ["text", "image"],
85
+ cost: ZERO_COST,
86
+ contextWindow: 200000,
87
+ maxTokens: 65536,
88
+ },
89
+ {
90
+ id: "claude-sonnet-4",
91
+ kiroModelId: "claude-sonnet-4",
92
+ name: "Claude Sonnet 4",
93
+ reasoning: true,
94
+ input: ["text", "image"],
95
+ cost: ZERO_COST,
96
+ contextWindow: 200000,
97
+ maxTokens: 65536,
98
+ },
99
+ {
100
+ id: "claude-haiku-4-5",
101
+ kiroModelId: "claude-haiku-4.5",
102
+ name: "Claude Haiku 4.5",
103
+ reasoning: false,
104
+ input: ["text", "image"],
105
+ cost: ZERO_COST,
106
+ contextWindow: 200000,
107
+ maxTokens: 65536,
108
+ },
109
+ {
110
+ id: "claude-fable-5",
111
+ kiroModelId: "claude-fable-5",
112
+ name: "Claude Fable 5",
113
+ reasoning: true,
114
+ input: ["text", "image"],
115
+ cost: ZERO_COST,
116
+ contextWindow: 1000000,
117
+ maxTokens: 65536,
118
+ },
119
+ {
120
+ id: "deepseek-3-2",
121
+ kiroModelId: "deepseek-3.2",
122
+ name: "DeepSeek 3.2",
123
+ reasoning: true,
124
+ input: ["text"],
125
+ cost: ZERO_COST,
126
+ contextWindow: 164000,
127
+ maxTokens: 8192,
128
+ },
129
+ {
130
+ id: "minimax-m2-5",
131
+ kiroModelId: "minimax-m2.5",
132
+ name: "MiniMax M2.5",
133
+ reasoning: false,
134
+ input: ["text"],
135
+ cost: ZERO_COST,
136
+ contextWindow: 196000,
137
+ maxTokens: 8192,
138
+ },
139
+ {
140
+ id: "minimax-m2-1",
141
+ kiroModelId: "minimax-m2.1",
142
+ name: "MiniMax M2.1",
143
+ reasoning: false,
144
+ input: ["text"],
145
+ cost: ZERO_COST,
146
+ contextWindow: 196000,
147
+ maxTokens: 8192,
148
+ },
149
+ {
150
+ id: "glm-5",
151
+ kiroModelId: "glm-5",
152
+ name: "GLM 5",
153
+ reasoning: true,
154
+ input: ["text"],
155
+ cost: ZERO_COST,
156
+ contextWindow: 200000,
157
+ maxTokens: 8192,
158
+ },
159
+ {
160
+ id: "qwen3-coder-next",
161
+ kiroModelId: "qwen3-coder-next",
162
+ name: "Qwen3 Coder Next",
163
+ reasoning: true,
164
+ input: ["text"],
165
+ cost: ZERO_COST,
166
+ contextWindow: 256000,
167
+ maxTokens: 8192,
168
+ },
169
+ {
170
+ id: "auto",
171
+ kiroModelId: "auto",
172
+ name: "Auto",
173
+ reasoning: true,
174
+ input: ["text", "image"],
175
+ cost: ZERO_COST,
176
+ contextWindow: 1000000,
177
+ maxTokens: 65536,
178
+ },
179
+ ];
180
+ /**
181
+ * Bootstrap models carry no catalog schema, so their ladder comes from the same
182
+ * `getKiroEffortConfig` fallback the request path uses. Deriving here instead of
183
+ * hardcoding per-model literals keeps one source of truth: `effort.ts` decides
184
+ * which model gets which rungs, and discovery overwrites this once it runs.
185
+ */
186
+ export const kiroModels = bootstrapKiroModels.map((model) => ({
187
+ ...model,
188
+ ...applyEffortLadder(model.reasoning ? getKiroEffortConfig(model.additionalModelRequestFieldsSchema, model.kiroModelId) : undefined),
189
+ ...(model.id.startsWith("claude-") ? { recoverTextToolCalls: false } : {}),
190
+ }));
191
+ const BOOTSTRAP_KIRO_MODEL_IDS = kiroModels.map((model) => model.kiroModelId);
192
+ /** Exact service IDs known from either the bootstrap list or a valid management cache. */
193
+ export const KIRO_MODEL_IDS = new Set(BOOTSTRAP_KIRO_MODEL_IDS);
194
+ function isRecord(value) {
195
+ return typeof value === "object" && value !== null && !Array.isArray(value);
196
+ }
197
+ function isPositiveNumber(value) {
198
+ return typeof value === "number" && Number.isFinite(value) && value > 0;
199
+ }
200
+ function isEffortList(value) {
201
+ return (Array.isArray(value) &&
202
+ value.length > 0 &&
203
+ value.every((effort) => KIRO_EFFORT_ORDER.includes(effort)));
204
+ }
205
+ function isEffortMap(value) {
206
+ return isRecord(value) && Object.values(value).every((mapped) => typeof mapped === "string");
207
+ }
208
+ function isCachedKiroModel(value) {
209
+ if (!isRecord(value))
210
+ return false;
211
+ const cost = value.cost;
212
+ const input = value.input;
213
+ const schema = value.additionalModelRequestFieldsSchema;
214
+ const tokenLimits = value.tokenLimits;
215
+ return (typeof value.id === "string" &&
216
+ value.id.length > 0 &&
217
+ typeof value.kiroModelId === "string" &&
218
+ value.kiroModelId.length > 0 &&
219
+ typeof value.name === "string" &&
220
+ value.name.length > 0 &&
221
+ typeof value.reasoning === "boolean" &&
222
+ Array.isArray(input) &&
223
+ input.length > 0 &&
224
+ input.every((modality) => modality === "text" || modality === "image") &&
225
+ isRecord(cost) &&
226
+ typeof cost.input === "number" &&
227
+ typeof cost.output === "number" &&
228
+ typeof cost.cacheRead === "number" &&
229
+ typeof cost.cacheWrite === "number" &&
230
+ isPositiveNumber(value.contextWindow) &&
231
+ isPositiveNumber(value.maxTokens) &&
232
+ (value.efforts === undefined || isEffortList(value.efforts)) &&
233
+ (value.effortMap === undefined || isEffortMap(value.effortMap)) &&
234
+ (schema === undefined || isRecord(schema)) &&
235
+ (tokenLimits === undefined || isRecord(tokenLimits)) &&
236
+ (value.firstTokenTimeout === undefined || isPositiveNumber(value.firstTokenTimeout)));
237
+ }
238
+ function parseManagementCache(raw) {
239
+ let value;
240
+ try {
241
+ value = JSON.parse(raw);
242
+ }
243
+ catch {
244
+ return undefined;
245
+ }
246
+ if (!isRecord(value) ||
247
+ value.version !== KIRO_MANAGEMENT_CACHE_VERSION ||
248
+ value.source !== KIRO_MANAGEMENT_CACHE_SOURCE ||
249
+ !isRecord(value.regions)) {
250
+ return undefined;
251
+ }
252
+ const regions = {};
253
+ for (const [region, rawEntry] of Object.entries(value.regions)) {
254
+ if (!isRecord(rawEntry) ||
255
+ rawEntry.region !== region ||
256
+ !isPositiveNumber(rawEntry.fetchedAt) ||
257
+ !Array.isArray(rawEntry.models) ||
258
+ rawEntry.models.length === 0 ||
259
+ !rawEntry.models.every(isCachedKiroModel)) {
260
+ return undefined;
261
+ }
262
+ const modelIds = new Set();
263
+ for (const model of rawEntry.models) {
264
+ if (modelIds.has(model.id))
265
+ return undefined;
266
+ modelIds.add(model.id);
267
+ }
268
+ regions[region] = rawEntry;
269
+ }
270
+ return {
271
+ version: KIRO_MANAGEMENT_CACHE_VERSION,
272
+ source: KIRO_MANAGEMENT_CACHE_SOURCE,
273
+ regions,
274
+ };
275
+ }
276
+ function readManagementCache() {
277
+ if (!existsSync(KIRO_MANAGEMENT_CACHE_PATH))
278
+ return undefined;
279
+ try {
280
+ return parseManagementCache(readFileSync(KIRO_MANAGEMENT_CACHE_PATH, "utf-8"));
281
+ }
282
+ catch {
283
+ return undefined;
284
+ }
285
+ }
286
+ function writeManagementCache(cache) {
287
+ const temporaryPath = `${KIRO_MANAGEMENT_CACHE_PATH}.${process.pid}.${randomUUID()}.tmp`;
288
+ try {
289
+ writeFileSync(temporaryPath, JSON.stringify(cache, null, 2), "utf-8");
290
+ renameSync(temporaryPath, KIRO_MANAGEMENT_CACHE_PATH);
291
+ }
292
+ finally {
293
+ rmSync(temporaryPath, { force: true });
294
+ }
295
+ }
296
+ function toLocalModelId(kiroModelId) {
297
+ return kiroModelId.replace(/(\d)\.(\d)/g, "$1-$2");
298
+ }
299
+ function humanizeModelId(modelId) {
300
+ return modelId
301
+ .split("-")
302
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
303
+ .join(" ");
304
+ }
305
+ /**
306
+ * Project a Kiro effort enum onto the neutral ladder, lowest rung first. Values
307
+ * are filtered through {@link KIRO_EFFORT_ORDER} because Kiro may report one
308
+ * outside it (`none`). No `effortMap` is produced: the wire spelling equals the
309
+ * rung name here, and {@link KiroModelSpec.effortMap} exists for hosts whose
310
+ * own vocabulary does not.
311
+ */
312
+ export function applyEffortLadder(config) {
313
+ if (!config || config.values.length === 0)
314
+ return {};
315
+ const efforts = KIRO_EFFORT_ORDER.filter((effort) => config.values.includes(effort));
316
+ if (efforts.length === 0)
317
+ return {};
318
+ return { efforts, ...(config.summarizedThinking ? { supportsSummarizedThinking: true } : {}) };
319
+ }
320
+ function hasReasoningFamilyFallback(modelId) {
321
+ const normalizedId = modelId.toLowerCase();
322
+ return normalizedId === "auto" || REASONING_FAMILY_MARKERS.some((marker) => normalizedId.includes(marker));
323
+ }
324
+ function hasVerifiedImageInput(kiroModelId) {
325
+ return kiroModelId.startsWith("claude-") || VERIFIED_IMAGE_MODEL_IDS.has(kiroModelId.toLowerCase());
326
+ }
327
+ /** Correct capability metadata from older caches without rewriting the user's cache file. */
328
+ function applyVerifiedCapabilities(model) {
329
+ if (!hasVerifiedImageInput(model.kiroModelId) || model.input.includes("image"))
330
+ return model;
331
+ return { ...model, input: ["text", "image"] };
332
+ }
333
+ function validateCatalogMetadata(model) {
334
+ const rawSchema = model.additionalModelRequestFieldsSchema;
335
+ const schema = rawSchema ?? undefined;
336
+ if (schema !== undefined && !isRecord(schema)) {
337
+ throw new Error(`Kiro management catalog model ${model.modelId} has an invalid request-fields schema`);
338
+ }
339
+ const tokenLimits = model.tokenLimits;
340
+ if (tokenLimits !== undefined && !isRecord(tokenLimits)) {
341
+ throw new Error(`Kiro management catalog model ${model.modelId} has invalid token limits`);
342
+ }
343
+ if (tokenLimits &&
344
+ ((tokenLimits.maxInputTokens !== undefined && !isPositiveNumber(tokenLimits.maxInputTokens)) ||
345
+ (tokenLimits.maxOutputTokens !== undefined && !isPositiveNumber(tokenLimits.maxOutputTokens)))) {
346
+ throw new Error(`Kiro management catalog model ${model.modelId} has invalid token limits`);
347
+ }
348
+ return { schema, tokenLimits };
349
+ }
350
+ /** Map an authenticated management catalog into models without discarding fresh metadata for bootstrap IDs. */
351
+ export function mapKiroCatalogModels(catalogModels, region) {
352
+ if (catalogModels.length === 0) {
353
+ throw new Error(`Kiro management catalog returned no models in ${region}`);
354
+ }
355
+ const seenIds = new Set();
356
+ return catalogModels.map((catalogModel) => {
357
+ const kiroModelId = catalogModel.modelId;
358
+ if (!kiroModelId || kiroModelId.trim() !== kiroModelId) {
359
+ throw new Error(`Kiro management catalog returned an invalid model ID in ${region}`);
360
+ }
361
+ const id = toLocalModelId(kiroModelId);
362
+ if (seenIds.has(id)) {
363
+ throw new Error(`Kiro management catalog contains conflicting model ID ${id} in ${region}`);
364
+ }
365
+ seenIds.add(id);
366
+ const existing = kiroModels.find((model) => model.id === id);
367
+ const { schema, tokenLimits } = validateCatalogMetadata(catalogModel);
368
+ // Two-tier resolution, same as the request path: an authoritative schema
369
+ // wins, and a known-model guess fills in only when the catalog carried no
370
+ // schema. So a model that arrives schema-less still advertises the rungs its
371
+ // requests send.
372
+ const effortConfig = getKiroEffortConfig(schema, kiroModelId);
373
+ const catalogName = typeof catalogModel.displayName === "string" && catalogModel.displayName.length > 0
374
+ ? catalogModel.displayName
375
+ : undefined;
376
+ return {
377
+ id,
378
+ kiroModelId,
379
+ name: catalogName ?? existing?.name ?? humanizeModelId(id),
380
+ region,
381
+ // Deliberately schema-only: when a schema exists the resolver returns
382
+ // `deriveKiroEffort(schema)`, and when it does not the family-marker guess
383
+ // decides. The fallback tier feeds the ladders, not this flag.
384
+ reasoning: (schema !== undefined && effortConfig !== undefined) ||
385
+ (schema === undefined && hasReasoningFamilyFallback(id)),
386
+ ...applyEffortLadder(effortConfig),
387
+ input: existing ? [...existing.input] : hasVerifiedImageInput(kiroModelId) ? ["text", "image"] : ["text"],
388
+ ...(id.startsWith("claude-") ? { recoverTextToolCalls: false } : {}),
389
+ cost: ZERO_COST,
390
+ contextWindow: tokenLimits?.maxInputTokens ?? DEFAULT_CONTEXT_WINDOW,
391
+ maxTokens: tokenLimits?.maxOutputTokens ?? DEFAULT_MAX_TOKENS,
392
+ ...(existing?.firstTokenTimeout ? { firstTokenTimeout: existing.firstTokenTimeout } : {}),
393
+ ...(schema ? { additionalModelRequestFieldsSchema: schema } : {}),
394
+ ...(tokenLimits ? { tokenLimits } : {}),
395
+ };
396
+ });
397
+ }
398
+ function refreshKnownModelIds(cache) {
399
+ KIRO_MODEL_IDS.clear();
400
+ for (const modelId of BOOTSTRAP_KIRO_MODEL_IDS)
401
+ KIRO_MODEL_IDS.add(modelId);
402
+ if (!cache)
403
+ return;
404
+ for (const entry of Object.values(cache.regions)) {
405
+ for (const model of entry.models)
406
+ KIRO_MODEL_IDS.add(model.kiroModelId);
407
+ }
408
+ }
409
+ export function loadCachedModelIds() {
410
+ refreshKnownModelIds(readManagementCache());
411
+ }
412
+ /** Return the authenticated regional catalog, or the static list only as a pre-discovery bootstrap. */
413
+ export function getCachedModels(region) {
414
+ const cache = readManagementCache();
415
+ refreshKnownModelIds(cache);
416
+ const models = cache?.regions[region]?.models ?? kiroModels;
417
+ let changed = false;
418
+ const corrected = models.map((model) => {
419
+ const result = applyVerifiedCapabilities(model);
420
+ if (result !== model)
421
+ changed = true;
422
+ return result;
423
+ });
424
+ return changed ? corrected : models;
425
+ }
426
+ export function isCacheStale(region) {
427
+ const entry = readManagementCache()?.regions[region];
428
+ return !entry || Date.now() - entry.fetchedAt > CACHE_MAX_AGE_MS;
429
+ }
430
+ export async function updateKiroModelsCache(accessToken, region, profileArn) {
431
+ const response = await fetchKiroModelCatalog({ accessToken, region }, profileArn);
432
+ const models = mapKiroCatalogModels(response.models, region);
433
+ const cache = readManagementCache() ?? {
434
+ version: KIRO_MANAGEMENT_CACHE_VERSION,
435
+ source: KIRO_MANAGEMENT_CACHE_SOURCE,
436
+ regions: {},
437
+ };
438
+ cache.regions[region] = { region, fetchedAt: Date.now(), models };
439
+ writeManagementCache(cache);
440
+ refreshKnownModelIds(cache);
441
+ }
442
+ export function resolveKiroModel(modelId, exactKiroModelId) {
443
+ if (exactKiroModelId)
444
+ return exactKiroModelId;
445
+ const cachedModel = Object.values(readManagementCache()?.regions ?? {})
446
+ .flatMap((entry) => entry.models)
447
+ .find((model) => model.id === modelId);
448
+ if (cachedModel) {
449
+ KIRO_MODEL_IDS.add(cachedModel.kiroModelId);
450
+ return cachedModel.kiroModelId;
451
+ }
452
+ const bootstrapModel = kiroModels.find((model) => model.id === modelId);
453
+ if (bootstrapModel)
454
+ return bootstrapModel.kiroModelId;
455
+ const normalizedId = modelId.replace(/(\d)-(\d)/g, "$1.$2");
456
+ loadCachedModelIds();
457
+ if (!KIRO_MODEL_IDS.has(normalizedId)) {
458
+ throw new Error(`Unknown Kiro model ID: ${modelId}`);
459
+ }
460
+ return normalizedId;
461
+ }
462
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export declare const SSO_OIDC_ENDPOINT = "https://oidc.us-east-1.amazonaws.com";
2
+ export declare const BUILDER_ID_START_URL = "https://view.awsapps.com/start";
3
+ export declare const BUILDER_ID_PROFILE_ARN = "arn:aws:codewhisperer:us-east-1:638616132270:profile/AAAACCCCXXXX";
4
+ export declare const KIRO_DESKTOP_REFRESH_URL = "https://prod.{region}.auth.desktop.kiro.dev/refreshToken";
5
+ export declare const SSO_SCOPES: string[];
6
+ export type KiroAuthMethod = "idc" | "desktop" | "external-idp" | "apikey";
7
+ export interface KiroCredentials {
8
+ /** Bearer token sent on every runtime and management request. */
9
+ access: string;
10
+ /** Pipe-packed refresh material; the last segment names the auth method. */
11
+ refresh: string;
12
+ /** Epoch milliseconds, already reduced by {@link EXPIRES_BUFFER_MS}. */
13
+ expires: number;
14
+ clientId: string;
15
+ clientSecret: string;
16
+ region: string;
17
+ authMethod: KiroAuthMethod;
18
+ /** Required for Google/GitHub social profiles; ListAvailableProfiles may return empty for these tokens. */
19
+ profileArn?: string;
20
+ startUrl?: string;
21
+ isEnterprise?: boolean;
22
+ }
23
+ export declare const KIRO_DESKTOP_USER_AGENT = "Kiro-Desktop/0.2.13 (darwin; arm64)";
24
+ export declare function kiroUserAgent(service: string, sdkVersion: string): Record<string, string>;
25
+ export declare function kiroAuthHeaders(token: string): Record<string, string>;
26
+ export declare function isApiKey(token: string): boolean;
27
+ /**
28
+ * Validate a `ksk_` API key and resolve the profile it bills against.
29
+ *
30
+ * Unlike an SSO session this needs no browser round trip, so it is the one
31
+ * credential this package can establish on its own: GetProfile with an empty
32
+ * body returns the key's own profile, which both proves the key works and
33
+ * supplies the ARN every runtime request needs.
34
+ */
35
+ export declare function loginKiroWithApiKey(apiKey: string, onProgress?: (message: string) => void): Promise<KiroCredentials>;
36
+ export declare function isExpired(credentials: KiroCredentials): boolean;
37
+ /**
38
+ * Refresh a session and kick off a catalog refresh for its region. The catalog
39
+ * call is deliberately not awaited: a stale catalog degrades model metadata,
40
+ * while a slow one would delay every request that had to reauthenticate.
41
+ */
42
+ export declare function refreshKiroToken(credentials: KiroCredentials): Promise<KiroCredentials>;
43
+ /**
44
+ * Resolve a usable session from the stores this machine already has: the
45
+ * kiro-cli database first, then the Kiro IDE's token file. Expired material is
46
+ * accepted and refreshed rather than rejected, because a refresh token outlives
47
+ * its access token and rejecting here would ask the user to log in again for a
48
+ * session that is still good.
49
+ */
50
+ export declare function resolveKiroCredentials(): Promise<KiroCredentials | undefined>;