ns-kiro-core 0.2.2 → 0.3.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.
@@ -1,7 +1,81 @@
1
- // ABOUTME: Kiro stream event type definitions and JSON-to-typed-event mapping.
2
- // ABOUTME: Binary framing is handled by @smithy/core EventStreamMarshaller in stream.ts.
1
+ // ABOUTME: Kiro stream event type definitions and modeled-key-to-typed-event mapping.
2
+ // ABOUTME: Binary framing is handled by @smithy/core EventStreamMarshaller in response-stream.ts.
3
3
  // Named `KiroWireEvent` to keep it distinct from `KiroStreamEvent`, which is what
4
4
  // this package emits outward after parsing.
5
+ /**
6
+ * Members of the `ChatResponseStream` tagged union emitted by
7
+ * `generateAssistantResponse` on `runtime.{region}.kiro.dev`.
8
+ *
9
+ * Source of truth: the generated Smithy client for the same service
10
+ * (`@amzn/kiro-runtime-service-typescript-client`, `ChatResponseStream`).
11
+ * The frame's `:event-type` header carries one of these keys, so routing is a
12
+ * switch on the key rather than a guess based on which fields happen to be set.
13
+ */
14
+ export const KIRO_EVENT_KEYS = [
15
+ "assistantResponseEvent",
16
+ "codeReferenceEvent",
17
+ "contextUsageEvent",
18
+ "documentCitationEvent",
19
+ "error",
20
+ "metadataEvent",
21
+ "meteringEvent",
22
+ "reasoningContentEvent",
23
+ "serviceUnavailableError",
24
+ "throttlingError",
25
+ "toolResultEvent",
26
+ "toolUseEvent",
27
+ "validationError",
28
+ ];
29
+ const KIRO_EVENT_KEY_SET = new Set(KIRO_EVENT_KEYS);
30
+ export function isKiroEventKey(key) {
31
+ return KIRO_EVENT_KEY_SET.has(key);
32
+ }
33
+ /**
34
+ * The four error members of `ChatResponseStream` target `@error` shapes, so the
35
+ * service frames them as `:message-type: exception` with the union member name
36
+ * in `:exception-type` — not as ordinary `event` frames. Mapping the member to
37
+ * its exception class here keeps both framings on one table.
38
+ */
39
+ export const KIRO_ERROR_MEMBERS = {
40
+ error: { kind: "internalServer", exception: "InternalServerException" },
41
+ throttlingError: { kind: "throttling", exception: "ThrottlingException" },
42
+ validationError: { kind: "validation", exception: "ValidationException" },
43
+ serviceUnavailableError: { kind: "serviceUnavailable", exception: "ServiceUnavailableException" },
44
+ };
45
+ /**
46
+ * The token the service puts in `:exception-type` is not guaranteed to be the
47
+ * union member name. The hand-written event-stream bridge in the generated
48
+ * client for THIS service (`sse-middleware.ts`, `buildStreamException`) accepts
49
+ * either form for every one of the four members — `throttlingError` OR
50
+ * `ThrottlingException` — and does so on both its exception-frame and its
51
+ * defensive event-frame path. That is the same service, so both tokens are
52
+ * observed vocabulary, not speculation.
53
+ *
54
+ * Keyed separately from `KIRO_EVENT_MEMBERS` because a class name is NOT a
55
+ * `ChatResponseStream` member: `KIRO_EVENT_KEYS` stays the union's enumeration
56
+ * and keeps guarding fixture encoding.
57
+ */
58
+ const KIRO_ERROR_TOKENS = {
59
+ ...KIRO_ERROR_MEMBERS,
60
+ InternalServerException: KIRO_ERROR_MEMBERS.error,
61
+ ThrottlingException: KIRO_ERROR_MEMBERS.throttlingError,
62
+ ValidationException: KIRO_ERROR_MEMBERS.validationError,
63
+ ServiceUnavailableException: KIRO_ERROR_MEMBERS.serviceUnavailableError,
64
+ };
65
+ /**
66
+ * Look up an error member by a token the SERVICE chose.
67
+ *
68
+ * `KIRO_ERROR_TOKENS` is an ordinary object literal, so a bare index would
69
+ * also resolve inherited `Object.prototype` members: an `:exception-type` of
70
+ * `toString` or `constructor` returns a truthy value whose `kind` and
71
+ * `exception` are both undefined, silently discarding the member name this
72
+ * routing exists to preserve. Only own properties count as modeled members.
73
+ */
74
+ export function lookupKiroErrorMember(key) {
75
+ return Object.hasOwn(KIRO_ERROR_TOKENS, key) ? KIRO_ERROR_TOKENS[key] : undefined;
76
+ }
77
+ const num = (v) => (typeof v === "number" ? v : undefined);
78
+ const str = (v) => (typeof v === "string" ? v : undefined);
5
79
  /** Accept only a finite, non-negative count; anything else is treated as absent. */
6
80
  function tokenCount(value) {
7
81
  return typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : undefined;
@@ -14,6 +88,10 @@ function firstTokenCount(source, keys) {
14
88
  }
15
89
  return undefined;
16
90
  }
91
+ /**
92
+ * Cache counters are read in every spelling the underlying services have been
93
+ * seen to use — Kiro itself has not been observed to report any of them.
94
+ */
17
95
  const CACHE_READ_KEYS = ["cacheReadInputTokens", "cache_read_input_tokens", "cacheReadTokens"];
18
96
  const CACHE_WRITE_KEYS = [
19
97
  "cacheWriteInputTokens",
@@ -21,36 +99,186 @@ const CACHE_WRITE_KEYS = [
21
99
  "cacheCreationInputTokens",
22
100
  "cacheWriteTokens",
23
101
  ];
24
- export function parseKiroEvent(parsed) {
25
- if (parsed.content !== undefined)
26
- return { type: "content", data: parsed.content };
27
- if (typeof parsed.text === "string")
28
- return { type: "thinkingText", data: parsed.text };
29
- if (typeof parsed.signature === "string")
30
- return { type: "thinkingSignature", data: parsed.signature };
102
+ /** Serialize a toolUse `input` field, collapsing the empty-object placeholder to "". */
103
+ function toolInput(raw) {
104
+ if (typeof raw === "string")
105
+ return raw;
106
+ if (raw && typeof raw === "object" && Object.keys(raw).length > 0) {
107
+ return JSON.stringify(raw);
108
+ }
109
+ return "";
110
+ }
111
+ function parseToolUse(parsed) {
112
+ // Kiro splits one logical tool call across frames: the first carries
113
+ // name+toolUseId, continuations carry only `input`, the last only `stop`.
31
114
  if (parsed.name && parsed.toolUseId) {
32
- const input = typeof parsed.input === "string"
33
- ? parsed.input
34
- : parsed.input &&
35
- typeof parsed.input === "object" &&
36
- Object.keys(parsed.input).length > 0
37
- ? JSON.stringify(parsed.input)
38
- : "";
39
115
  return {
40
116
  type: "toolUse",
41
117
  data: {
42
118
  name: parsed.name,
43
119
  toolUseId: parsed.toolUseId,
44
- input,
120
+ input: toolInput(parsed.input),
45
121
  stop: parsed.stop,
46
122
  },
47
123
  };
48
124
  }
125
+ if (parsed.input !== undefined) {
126
+ return { type: "toolUseInput", data: { input: toolInput(parsed.input) } };
127
+ }
128
+ if (parsed.stop !== undefined)
129
+ return { type: "toolUseStop", data: { stop: parsed.stop } };
130
+ return null;
131
+ }
132
+ function parseMetadata(parsed) {
133
+ const tu = (parsed.tokenUsage ?? {});
134
+ const data = {
135
+ inputTokens: tokenCount(tu.uncachedInputTokens) ?? tokenCount(tu.inputTokens),
136
+ outputTokens: tokenCount(tu.outputTokens),
137
+ totalTokens: tokenCount(tu.totalTokens),
138
+ cacheReadInputTokens: firstTokenCount(tu, CACHE_READ_KEYS),
139
+ cacheWriteInputTokens: firstTokenCount(tu, CACHE_WRITE_KEYS),
140
+ contextUsagePercentage: num(tu.contextUsagePercentage),
141
+ normalizedTokenUsage: num(tu.normalizedTokenUsage),
142
+ rawStopReason: str(parsed.stopReason),
143
+ stopDetails: parsed.stopDetails && typeof parsed.stopDetails === "object"
144
+ ? parsed.stopDetails
145
+ : undefined,
146
+ };
147
+ for (const k of Object.keys(data)) {
148
+ if (data[k] === undefined)
149
+ delete data[k];
150
+ }
151
+ return Object.keys(data).length > 0 ? { type: "usage", data } : null;
152
+ }
153
+ function parseError(parsed, kind, fallbackName) {
154
+ // Modeled exceptions carry {message, reason?, retryAfterMilliseconds?}; older
155
+ // free-form frames carry {error, message}. Accept both.
156
+ const rawError = parsed.error ?? parsed.Error;
157
+ const error = typeof rawError === "string"
158
+ ? rawError
159
+ : rawError !== undefined
160
+ ? JSON.stringify(rawError)
161
+ : (str(parsed.name) ?? fallbackName);
162
+ const message = (parsed.message ?? parsed.Message ?? parsed.reason);
163
+ const data = { error, kind };
164
+ if (typeof message === "string")
165
+ data.message = message;
166
+ const reason = str(parsed.reason);
167
+ if (reason !== undefined)
168
+ data.reason = reason;
169
+ const retryAfterMilliseconds = num(parsed.retryAfterMilliseconds);
170
+ if (retryAfterMilliseconds !== undefined)
171
+ data.retryAfterMilliseconds = retryAfterMilliseconds;
172
+ return { type: "error", data };
173
+ }
174
+ /**
175
+ * Route a decoded stream frame by its modeled `:event-type` key.
176
+ *
177
+ * `key` is the `ChatResponseStream` union member name from the frame header.
178
+ * An unrecognized key falls back to {@link parseKiroEventByShape} so a member
179
+ * added server-side degrades instead of breaking the stream.
180
+ *
181
+ * Note: a frame whose `:event-type` is the literal `$unknown` never reaches
182
+ * here. The Smithy marshaller drops any event frame for which the deserializer
183
+ * returns a `$unknown` property, and the deserializer keys its result by the
184
+ * header value, so `$unknown` is discarded one layer up. The fallback below is
185
+ * therefore reached only by a real, unrecognized member name.
186
+ */
187
+ export function parseKiroEvent(key, parsed) {
188
+ switch (key) {
189
+ case "assistantResponseEvent": {
190
+ const content = str(parsed.content);
191
+ return content !== undefined ? { type: "content", data: content } : null;
192
+ }
193
+ case "reasoningContentEvent": {
194
+ // ReasoningContentEvent = {text?, redactedContent?, signature?}
195
+ const text = str(parsed.text);
196
+ if (text !== undefined)
197
+ return { type: "thinkingText", data: text };
198
+ const signature = str(parsed.signature);
199
+ if (signature !== undefined)
200
+ return { type: "thinkingSignature", data: signature };
201
+ return { type: "ignored", data: { key } };
202
+ }
203
+ case "toolUseEvent":
204
+ return parseToolUse(parsed);
205
+ case "contextUsageEvent": {
206
+ const pct = num(parsed.contextUsagePercentage);
207
+ return pct !== undefined ? { type: "contextUsage", data: { contextUsagePercentage: pct } } : null;
208
+ }
209
+ case "metadataEvent":
210
+ return parseMetadata(parsed);
211
+ case "meteringEvent":
212
+ // MeteringEvent.usage is a NUMBER of credits — never token counts.
213
+ return {
214
+ type: "metering",
215
+ data: { credits: tokenCount(parsed.usage), unit: str(parsed.unit), unitPlural: str(parsed.unitPlural) },
216
+ };
217
+ // Reachable when a member that models an exception is delivered as an
218
+ // ordinary event frame. The real wire uses exception framing, handled by
219
+ // parseKiroExceptionFrame, but both routes must agree.
220
+ case "error":
221
+ case "throttlingError":
222
+ case "validationError":
223
+ case "serviceUnavailableError": {
224
+ // Literal case labels, so the own-property lookup always resolves.
225
+ const member = lookupKiroErrorMember(key);
226
+ return parseError(parsed, member.kind, member.exception);
227
+ }
228
+ // Known members with no consumer yet: explicitly ignored, not unparseable.
229
+ case "codeReferenceEvent":
230
+ case "documentCitationEvent":
231
+ case "toolResultEvent":
232
+ return { type: "ignored", data: { key } };
233
+ default: {
234
+ // An error member delivered under its exception CLASS name rather than its
235
+ // union member name (see KIRO_ERROR_TOKENS). Classify before shape
236
+ // sniffing: an exception payload is `{message, reason?}`, which the
237
+ // fallback ladder matches on nothing and drops — losing the class exactly
238
+ // the way the old field ladder did.
239
+ const member = lookupKiroErrorMember(key);
240
+ if (member)
241
+ return parseError(parsed, member.kind, member.exception);
242
+ return parseKiroEventByShape(parsed);
243
+ }
244
+ }
245
+ }
246
+ /**
247
+ * Route an `:message-type: exception` frame by its `:exception-type` token.
248
+ *
249
+ * The Smithy marshaller throws whatever the deserializer returns for that key,
250
+ * so this is the only place the modeled exception class, `reason`, and
251
+ * `retryAfterMilliseconds` are still structured. Accepts either token form the
252
+ * service uses (union member name or exception class name). Returns `null` for
253
+ * a token that is not one of the four modeled errors; the caller is responsible
254
+ * for still preserving that name (see `response-stream.ts`), because Smithy's
255
+ * own raw-body fallback only fires for a `$unknown` result this deserializer
256
+ * never produces.
257
+ */
258
+ export function parseKiroExceptionFrame(key, parsed) {
259
+ const member = lookupKiroErrorMember(key);
260
+ if (!member)
261
+ return null;
262
+ const event = parseError(parsed, member.kind, member.exception);
263
+ return event.data;
264
+ }
265
+ /**
266
+ * Fail-open fallback for frames carrying an unrecognized `:event-type`.
267
+ *
268
+ * Order-dependent field sniffing. Only reachable when the frame's key is not a
269
+ * known `ChatResponseStream` member; modeled frames never reach here.
270
+ */
271
+ export function parseKiroEventByShape(parsed) {
272
+ if (parsed.content !== undefined)
273
+ return { type: "content", data: parsed.content };
274
+ if (typeof parsed.text === "string")
275
+ return { type: "thinkingText", data: parsed.text };
276
+ if (typeof parsed.signature === "string")
277
+ return { type: "thinkingSignature", data: parsed.signature };
278
+ if (parsed.name && parsed.toolUseId)
279
+ return parseToolUse(parsed);
49
280
  if (parsed.input !== undefined && !parsed.name) {
50
- return {
51
- type: "toolUseInput",
52
- data: { input: typeof parsed.input === "string" ? parsed.input : JSON.stringify(parsed.input) },
53
- };
281
+ return { type: "toolUseInput", data: { input: toolInput(parsed.input) } };
54
282
  }
55
283
  if (parsed.stop !== undefined && parsed.contextUsagePercentage === undefined)
56
284
  return { type: "toolUseStop", data: { stop: parsed.stop } };
@@ -58,36 +286,16 @@ export function parseKiroEvent(parsed) {
58
286
  return { type: "contextUsage", data: { contextUsagePercentage: parsed.contextUsagePercentage } };
59
287
  if (parsed.followupPrompt !== undefined)
60
288
  return { type: "followupPrompt", data: parsed.followupPrompt };
289
+ if (parsed.tokenUsage !== undefined || parsed.stopReason !== undefined || parsed.stopDetails !== undefined) {
290
+ return parseMetadata(parsed);
291
+ }
61
292
  if (parsed.error !== undefined || parsed.Error !== undefined) {
62
- const error = (parsed.error || parsed.Error || "unknown");
63
- const message = (parsed.message || parsed.Message || parsed.reason);
64
- return { type: "error", data: { error: typeof error === "string" ? error : JSON.stringify(error), message } };
293
+ return parseError(parsed, "unknown", "unknown");
65
294
  }
66
- if (parsed.usage !== undefined) {
67
- // The billing form: `usage` is the amount itself, with the unit alongside it.
68
- if (typeof parsed.usage === "number") {
69
- const credits = tokenCount(parsed.usage);
70
- if (credits === undefined)
71
- return null;
72
- return {
73
- type: "usage",
74
- data: {
75
- credits,
76
- ...(typeof parsed.unit === "string" && parsed.unit ? { creditUnit: parsed.unit } : {}),
77
- },
78
- };
79
- }
80
- const u = parsed.usage;
81
- const cacheReadTokens = firstTokenCount(u, CACHE_READ_KEYS);
82
- const cacheWriteTokens = firstTokenCount(u, CACHE_WRITE_KEYS);
295
+ if (typeof parsed.usage === "number") {
83
296
  return {
84
- type: "usage",
85
- data: {
86
- inputTokens: tokenCount(u.inputTokens),
87
- outputTokens: tokenCount(u.outputTokens),
88
- ...(cacheReadTokens !== undefined ? { cacheReadTokens } : {}),
89
- ...(cacheWriteTokens !== undefined ? { cacheWriteTokens } : {}),
90
- },
297
+ type: "metering",
298
+ data: { credits: tokenCount(parsed.usage), unit: str(parsed.unit), unitPlural: str(parsed.unitPlural) },
91
299
  };
92
300
  }
93
301
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yFAAyF;AACzF,kFAAkF;AAClF,4CAA4C;AA0C5C,oFAAoF;AACpF,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/F,CAAC;AAED,SAAS,eAAe,CAAC,MAA+B,EAAE,IAAuB;IAC/E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,iBAAiB,CAAU,CAAC;AACxG,MAAM,gBAAgB,GAAG;IACvB,uBAAuB;IACvB,6BAA6B;IAC7B,0BAA0B;IAC1B,kBAAkB;CACV,CAAC;AAEX,MAAM,UAAU,cAAc,CAAC,MAA+B;IAC5D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,OAAiB,EAAE,CAAC;IAC7F,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACxF,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACvG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAC9B,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,MAAM,CAAC,KAAK;gBACV,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,MAAM,GAAG,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC9B,CAAC,CAAC,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC,IAAc;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAmB;gBACrC,KAAK;gBACL,IAAI,EAAE,MAAM,CAAC,IAA2B;aACzC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAChG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS;QAC1E,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAe,EAAE,EAAE,CAAC;IACzE,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS;QAC7C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,sBAAsB,EAAE,MAAM,CAAC,sBAAgC,EAAE,EAAE,CAAC;IAC7G,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,cAAwB,EAAE,CAAC;IAClH,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,SAAS,CAAW,CAAC;QACpE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAuB,CAAC;QAC1F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IAChH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,8EAA8E;QAC9E,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACJ,OAAO;oBACP,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvF;aACF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAgC,CAAC;QAClD,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE;gBACJ,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;gBACtC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;gBACxC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE;SACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"event-parser.js","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  export { KiroBlockBuffer } from "./blocks.js";
2
2
  export { parseBracketToolCalls } from "./bracket-tool-parser.js";
3
+ export { applyCacheEstimate, resetCacheEstimatorForTests } from "./cache-estimator.js";
3
4
  export { calculateKiroCost } from "./cost.js";
4
5
  export { debugEnabled, debugLog, formatSafeError, redactSensitiveText } from "./debug.js";
5
6
  export { buildKiroAdditionalModelRequestFields, clampKiroEffort, deriveKiroEffort, fallbackKiroEffort, getKiroEffortConfig, type KiroAdditionalModelRequestFields, type KiroEffortConfig, type KiroEffortField, mapEffortToKiroValue, } from "./effort.js";
6
- export { getKiroEndpoints, getKiroRegionFromEndpoint, type KiroEndpoints, resolveApiRegion, } from "./endpoints.js";
7
- export { type KiroWireEvent, type KiroWireUsage, parseKiroEvent } from "./event-parser.js";
7
+ export { getKiroEndpoints, getKiroRegionFromEndpoint, getKiroRegionFromProfileArn, type KiroEndpoints, resolveApiRegion, } from "./endpoints.js";
8
+ export { extractKiroReasonCode, KiroApiError, type KiroProviderAttempts, parseRetryAfterMs, } from "./errors.js";
9
+ export { isKiroEventKey, KIRO_ERROR_MEMBERS, KIRO_EVENT_KEYS, type KiroErrorData, type KiroErrorKind, type KiroEventKey, type KiroWireEvent, type KiroWireUsage, lookupKiroErrorMember, parseKiroEvent, parseKiroEventByShape, parseKiroExceptionFrame, } from "./event-parser.js";
8
10
  export { isKiroToolStructureRule, KIRO_TOOL_STRUCTURE_RULES, KIRO_VALIDATION_MESSAGES, type KiroRepairResult, type KiroToolStructureRule, type KiroValidationError, type KiroValidationResult, KiroValidationRule, kiroConversationEntries, repairKiroConversation, SYNTHETIC_FAILED_TOOL_RESULT_TEXT, validateKiroConversation, validateKiroToolStructure, } from "./history-validator.js";
9
11
  export { parseInvokeToolCalls } from "./invoke-tool-parser.js";
10
12
  export { getKiroCliCredentials, getKiroCliCredentialsAllowExpired, getKiroCliDbPath, getKiroCliModelRates, getKiroCliSocialToken, getKiroCliSocialTokenAllowExpired, type KiroModelRate, refreshViaKiroCli, saveKiroCliCredentials, } from "./kiro-cli.js";
@@ -24,3 +26,4 @@ export { abortableDelay, createResponseHeaderDeadline, logCapacityEvent, type Re
24
26
  export { TRUNCATION_NOTICE, wasPreviousResponseTruncated } from "./truncation.js";
25
27
  export * from "./types.js";
26
28
  export { fetchKiroUsage, type KiroProviderUsage, type KiroProviderUsageBucket } from "./usage.js";
29
+ export { DEFAULT_ESTIMATED_CACHE_TIMEOUT_MS, DEFAULT_USD_PER_CREDIT, estimateKiroCreditCost, KIRO_USAGE_TRACKING_DISABLED, type KiroUsageTracking, resolveKiroUsageTracking, } from "./usage-tracking.js";
package/dist/index.js CHANGED
@@ -1,11 +1,13 @@
1
1
  // Public surface of the host-neutral Kiro core.
2
2
  export { KiroBlockBuffer } from "./blocks.js";
3
3
  export { parseBracketToolCalls } from "./bracket-tool-parser.js";
4
+ export { applyCacheEstimate, resetCacheEstimatorForTests } from "./cache-estimator.js";
4
5
  export { calculateKiroCost } from "./cost.js";
5
6
  export { debugEnabled, debugLog, formatSafeError, redactSensitiveText } from "./debug.js";
6
7
  export { buildKiroAdditionalModelRequestFields, clampKiroEffort, deriveKiroEffort, fallbackKiroEffort, getKiroEffortConfig, mapEffortToKiroValue, } from "./effort.js";
7
- export { getKiroEndpoints, getKiroRegionFromEndpoint, resolveApiRegion, } from "./endpoints.js";
8
- export { parseKiroEvent } from "./event-parser.js";
8
+ export { getKiroEndpoints, getKiroRegionFromEndpoint, getKiroRegionFromProfileArn, resolveApiRegion, } from "./endpoints.js";
9
+ export { extractKiroReasonCode, KiroApiError, parseRetryAfterMs, } from "./errors.js";
10
+ export { isKiroEventKey, KIRO_ERROR_MEMBERS, KIRO_EVENT_KEYS, lookupKiroErrorMember, parseKiroEvent, parseKiroEventByShape, parseKiroExceptionFrame, } from "./event-parser.js";
9
11
  export { isKiroToolStructureRule, KIRO_TOOL_STRUCTURE_RULES, KIRO_VALIDATION_MESSAGES, KiroValidationRule, kiroConversationEntries, repairKiroConversation, SYNTHETIC_FAILED_TOOL_RESULT_TEXT, validateKiroConversation, validateKiroToolStructure, } from "./history-validator.js";
10
12
  export { parseInvokeToolCalls } from "./invoke-tool-parser.js";
11
13
  export { getKiroCliCredentials, getKiroCliCredentialsAllowExpired, getKiroCliDbPath, getKiroCliModelRates, getKiroCliSocialToken, getKiroCliSocialTokenAllowExpired, refreshViaKiroCli, saveKiroCliCredentials, } from "./kiro-cli.js";
@@ -32,4 +34,5 @@ export { abortableDelay, createResponseHeaderDeadline, logCapacityEvent, } from
32
34
  export { TRUNCATION_NOTICE, wasPreviousResponseTruncated } from "./truncation.js";
33
35
  export * from "./types.js";
34
36
  export { fetchKiroUsage } from "./usage.js";
37
+ export { DEFAULT_ESTIMATED_CACHE_TIMEOUT_MS, DEFAULT_USD_PER_CREDIT, estimateKiroCreditCost, KIRO_USAGE_TRACKING_DISABLED, resolveKiroUsageTracking, } from "./usage-tracking.js";
35
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EACL,qCAAqC,EACrC,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EAInB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EAEzB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA0C,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EAKxB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,iCAAiC,EAEjC,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EACL,qBAAqB,EAGrB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,0BAA0B,EAC1B,cAAc,EAEd,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,SAAS,EAGT,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,OAAO,EAGL,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EAKZ,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,sDAAsD;AACtD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EAEjB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA0B,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,yBAAyB,EAOzB,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,gBAAgB,GAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAClF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAwD,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,17 @@
3
3
  import { createHash } from "node:crypto";
4
4
  import { debugLog, redactSensitiveText } from "./debug.js";
5
5
  import { getKiroEndpoints } from "./endpoints.js";
6
- import { kiroAuthHeaders } from "./oauth.js";
6
+ import { isApiKey, kiroAuthHeaders, kiroUserAgent } from "./oauth.js";
7
7
  import { kiroTokenTypeHeaders } from "./token-type.js";
8
8
  const LIST_PROFILES_PATH = "List-Available-Profiles";
9
9
  const LIST_MODELS_PATH = "List-Available-Models";
10
+ const GET_PROFILE_TARGET = "AmazonCodeWhispererService.GetProfile";
11
+ /**
12
+ * Region Kiro issues API keys against. `ListAvailableProfiles` answers 403
13
+ * "Unsupported token type" for a `ksk_` key in every region, so an API key's
14
+ * profile — and therefore its model catalog — is only reachable here.
15
+ */
16
+ const API_KEY_REGION = "us-east-1";
10
17
  const profileArnCache = new Map();
11
18
  const pendingProfileRequests = new Map();
12
19
  /**
@@ -83,6 +90,36 @@ function profileCacheKey(auth) {
83
90
  const tokenHash = createHash("sha256").update(auth.accessToken).digest("base64url");
84
91
  return `${auth.region}:${tokenHash}`;
85
92
  }
93
+ /**
94
+ * Resolve an API key's own profile through GetProfile, the same RPC the API-key
95
+ * login flow uses. This is the only profile-discovery call a `ksk_` key can
96
+ * make: the REST-style ListAvailableProfiles path rejects the key outright.
97
+ */
98
+ async function getApiKeyProfileArn(accessToken) {
99
+ const operation = "GetProfile";
100
+ let response;
101
+ try {
102
+ response = await fetch(getKiroEndpoints(API_KEY_REGION).management, {
103
+ method: "POST",
104
+ headers: {
105
+ "Content-Type": "application/x-amz-json-1.0",
106
+ "X-Amz-Target": GET_PROFILE_TARGET,
107
+ ...kiroAuthHeaders(accessToken),
108
+ ...kiroUserAgent("codewhispererruntime", "F,C"),
109
+ },
110
+ body: "{}",
111
+ });
112
+ }
113
+ catch (error) {
114
+ throw new Error(`Kiro management ${operation} request failed in ${API_KEY_REGION}`, { cause: error });
115
+ }
116
+ const parsed = await parseManagementResponse(response, operation, API_KEY_REGION);
117
+ const arn = parsed.profile?.arn;
118
+ if (!arn) {
119
+ throw new Error(`Kiro management ${operation} returned no profile in ${API_KEY_REGION}`);
120
+ }
121
+ return arn;
122
+ }
86
123
  async function parseManagementResponse(response, operation, region) {
87
124
  if (!response.ok) {
88
125
  const statusText = response.statusText ? ` ${redactSensitiveText(response.statusText)}` : "";
@@ -127,6 +164,15 @@ export async function resolveKiroProfileArn(auth, providedArn) {
127
164
  if (pending)
128
165
  return pending;
129
166
  const request = (async () => {
167
+ // A `ksk_` API key cannot use ListAvailableProfiles at all, so route it to
168
+ // GetProfile and pin the profile region to where API keys are issued.
169
+ if (isApiKey(auth.accessToken)) {
170
+ const arn = await getApiKeyProfileArn(auth.accessToken);
171
+ profileArnCache.set(key, arn);
172
+ profileRegionCache.set(key, API_KEY_REGION);
173
+ debugLog("profile.resolve", { source: "api-key", region: API_KEY_REGION, arn });
174
+ return arn;
175
+ }
130
176
  // ListAvailableProfiles is regional to where the profile actually lives, not
131
177
  // to the SSO-derived API region. Probe the primary region first, then the
132
178
  // remaining canonical management regions, so a region-mismatched token still
@@ -192,8 +238,12 @@ export async function fetchKiroModelCatalog(auth, providedProfileArn) {
192
238
  const profileArn = await resolveKiroProfileArn(auth, providedProfileArn);
193
239
  // Route the models query to the region where the profile actually lives — it
194
240
  // may differ from the SSO-derived region (#104), and ListAvailableModels is
195
- // regional to the profile too, not to the login region.
196
- const region = profileRegionCache.get(profileCacheKey(auth)) ?? auth.region;
241
+ // regional to the profile too, not to the login region. An API key's profile
242
+ // always lives in the key-issuing region, even when a pinned KIRO_PROFILE_ARN
243
+ // skipped discovery and left no cached region behind.
244
+ const region = isApiKey(auth.accessToken)
245
+ ? API_KEY_REGION
246
+ : (profileRegionCache.get(profileCacheKey(auth)) ?? auth.region);
197
247
  if (region !== auth.region) {
198
248
  return listAvailableModels({ ...auth, region }, profileArn);
199
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"management.js","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"management.js","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,kFAAkF;AAElF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,kBAAkB,GAAG,uCAAuC,CAAC;AAEnE;;;;GAIG;AACH,MAAM,cAAc,GAAG,WAAW,CAAC;AAsCnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA2B,CAAC;AAClE;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,4BAA4B,GAAG,CAAC,WAAW,EAAE,cAAc,CAAU,CAAC;AAE5E,SAAS,0BAA0B,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,4BAA4B,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAE3C,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAGrC;IAFX,YACE,OAAe,EACN,MAAc;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,WAAM,GAAN,MAAM,CAAQ;QAGvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAwB,EACxB,SAAiB,EACjB,IAAY,EACZ,MAAsB,EACtB,IAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,OAAO,GAAgB;QAC3B,MAAM;QACN,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YACpC,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;SAC1C;KACF,CAAC;IACF,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC7E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,sBAAsB,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,uBAAuB,CAAY,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,IAAwB;IAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpF,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IACpD,MAAM,SAAS,GAAG,YAAY,CAAC;IAC/B,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,UAAU,EAAE;YAClE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,4BAA4B;gBAC5C,cAAc,EAAE,kBAAkB;gBAClC,GAAG,eAAe,CAAC,WAAW,CAAC;gBAC/B,GAAG,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAAC;aAChD;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,sBAAsB,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAyB,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC1G,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,2BAA2B,cAAc,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAAkB,EAClB,SAAiB,EACjB,MAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,uBAAuB,CAC/B,mBAAmB,SAAS,cAAc,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE,EACnF,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAc,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,6BAA6B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AACD,MAAM,UAAU,wBAAwB;IACtC,eAAe,CAAC,KAAK,EAAE,CAAC;IACxB,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAC3B,sBAAsB,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAwB;IAC/D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAwB,EAAE,WAAoB;IACxF,qEAAqE;IACrE,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,2EAA2E;QAC3E,sEAAsE;QACtE,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9B,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC5C,QAAQ,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;YAChF,OAAO,GAAG,CAAC;QACb,CAAC;QAED,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,2DAA2D;QAC3D,IAAI,YAA2D,CAAC;QAChE,IAAI,aAAkD,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,IAAI,QAA2C,CAAC;YAChD,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,iBAAiB,CAChC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,MAAM,EACN,EAAE,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sEAAsE;gBACtE,gEAAgE;gBAChE,sEAAsE;gBACtE,qEAAqE;gBACrE,oEAAoE;gBACpE,IAAI,KAAK,YAAY,uBAAuB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACrE,aAAa,GAAG,KAAK,CAAC;oBACtB,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,YAAY,GAAG,QAAQ,CAAC;YACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;YACnE,IAAI,GAAG,EAAE,CAAC;gBACR,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9B,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBACpC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChE,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QACD,IAAI,aAAa;YAAE,MAAM,aAAa,CAAC;QACvC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,gEAAgE,gBAAgB,GAAG;YACjF,wBAAwB,IAAI,CAAC,MAAM,6EAA6E;YAChH,0EAA0E,EAC5E,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnD,CAAC;IACJ,CAAC,CAAC,EAAE,CAAC;IACL,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;YAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAwB,EACxB,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CACtC,IAAI,EACJ,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL;QACE,MAAM,EAAE,UAAU;QAClB,UAAU;KACX,CACF,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,6DAA6D,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,sEAAsE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAwB,EACxB,kBAA2B;IAE3B,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,sDAAsD;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAwB,EACxB,OAAkC;IAElC,MAAM,SAAS,GAAG,gBAAgB,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAClF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;gBACpC,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACzC,YAAY,EAAE,kBAAkB;aACjC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,sBAAsB,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,OAAO,uBAAuB,CAAY,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC"}
package/dist/models.js CHANGED
@@ -438,7 +438,10 @@ export function mapKiroCatalogModels(catalogModels, region, rates) {
438
438
  return {
439
439
  id,
440
440
  kiroModelId,
441
- name: catalogName ?? existing?.name ?? humanizeModelId(id),
441
+ // Humanize the wire id, not the local one: `toLocalModelId` rewrites
442
+ // `5.1` as `5-1`, and a display name derived from it loses the dot —
443
+ // "Claude Fable 5 1" instead of "Claude Fable 5.1".
444
+ name: catalogName ?? existing?.name ?? humanizeModelId(kiroModelId),
442
445
  region,
443
446
  // Deliberately schema-only: when a schema exists the resolver returns
444
447
  // `deriveKiroEffort(schema)`, and when it does not the family-marker guess