@javargasm/opencode-kiro-auth 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.
@@ -6,14 +6,26 @@ export interface RequestMetrics {
6
6
  outputTokens: number;
7
7
  credits: number;
8
8
  stream: boolean;
9
+ effort?: string;
10
+ usd?: number;
9
11
  }
12
+ interface TokenPrice {
13
+ input: number;
14
+ output: number;
15
+ }
16
+ export declare function getModelPricing(modelId: string): TokenPrice;
10
17
  declare class DashboardStats {
11
18
  private requests;
12
- recordRequest(metrics: Omit<RequestMetrics, "timestamp">): void;
19
+ private totalRequests;
20
+ private totalTokens;
21
+ private totalCredits;
22
+ private totalUsd;
23
+ recordRequest(metrics: Omit<RequestMetrics, "timestamp" | "usd">): void;
13
24
  getStats(): {
14
25
  totalRequests: number;
15
26
  totalTokens: number;
16
27
  totalCredits: number;
28
+ totalUsd: number;
17
29
  requests: RequestMetrics[];
18
30
  };
19
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-stats.d.ts","sourceRoot":"","sources":["../src/dashboard-stats.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAwB;IAExC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;IAOxD,QAAQ;;;;;;CAYT;AAED,eAAO,MAAM,KAAK,gBAAuB,CAAC"}
1
+ {"version":3,"file":"dashboard-stats.d.ts","sourceRoot":"","sources":["../src/dashboard-stats.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA2BD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAgB3D;AAED,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAK;IAErB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,KAAK,CAAC;IAehE,QAAQ;;;;;;;CAST;AAED,eAAO,MAAM,KAAK,gBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-ui.d.ts","sourceRoot":"","sources":["../src/dashboard-ui.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,IAAI,MAAM,CA8TzC"}
1
+ {"version":3,"file":"dashboard-ui.d.ts","sourceRoot":"","sources":["../src/dashboard-ui.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,IAAI,MAAM,CA4WzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-parser.d.ts","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B/D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,CAqItF;AAoCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAqElD"}
1
+ {"version":3,"file":"event-parser.d.ts","sourceRoot":"","sources":["../src/event-parser.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B/D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,CA4ItF;AAqCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAqElD"}
package/dist/index.js CHANGED
@@ -248,23 +248,14 @@ var init_models = __esm(() => {
248
248
  "claude-opus-4.8",
249
249
  "claude-opus-4.7",
250
250
  "claude-opus-4.6",
251
- "claude-opus-4.6-1m",
252
251
  "claude-sonnet-4.6",
253
- "claude-sonnet-4.6-1m",
254
252
  "claude-opus-4.5",
255
253
  "claude-sonnet-4.5",
256
- "claude-sonnet-4.5-1m",
257
254
  "claude-sonnet-4",
258
255
  "claude-haiku-4.5",
259
- "deepseek-3.2",
260
- "kimi-k2.5",
261
256
  "minimax-m2.1",
262
257
  "minimax-m2.5",
263
- "glm-4.7",
264
- "glm-4.7-flash",
265
258
  "qwen3-coder-next",
266
- "agi-nova-beta-1m",
267
- "qwen3-coder-480b",
268
259
  "auto"
269
260
  ]);
270
261
  API_REGION_MAP = {
@@ -346,17 +337,6 @@ var init_models = __esm(() => {
346
337
  supportedEfforts: ["low", "medium", "high", "max"],
347
338
  supportsThinkingConfig: true
348
339
  },
349
- {
350
- ...KIRO_DEFAULTS,
351
- id: "claude-opus-4-6-1m",
352
- name: "Claude Opus 4.6 (1M)",
353
- reasoning: true,
354
- input: MULTIMODAL,
355
- contextWindow: 1e6,
356
- maxTokens: 64000,
357
- supportedEfforts: ["low", "medium", "high", "max"],
358
- supportsThinkingConfig: true
359
- },
360
340
  {
361
341
  ...KIRO_DEFAULTS,
362
342
  id: "claude-sonnet-4-6",
@@ -368,17 +348,6 @@ var init_models = __esm(() => {
368
348
  supportedEfforts: ["low", "medium", "high", "max"],
369
349
  supportsThinkingConfig: true
370
350
  },
371
- {
372
- ...KIRO_DEFAULTS,
373
- id: "claude-sonnet-4-6-1m",
374
- name: "Claude Sonnet 4.6 (1M)",
375
- reasoning: true,
376
- input: MULTIMODAL,
377
- contextWindow: 1e6,
378
- maxTokens: 64000,
379
- supportedEfforts: ["low", "medium", "high", "max"],
380
- supportsThinkingConfig: true
381
- },
382
351
  {
383
352
  ...KIRO_DEFAULTS,
384
353
  id: "claude-opus-4-5",
@@ -397,15 +366,6 @@ var init_models = __esm(() => {
397
366
  contextWindow: 200000,
398
367
  maxTokens: 65536
399
368
  },
400
- {
401
- ...KIRO_DEFAULTS,
402
- id: "claude-sonnet-4-5-1m",
403
- name: "Claude Sonnet 4.5 (1M)",
404
- reasoning: true,
405
- input: MULTIMODAL,
406
- contextWindow: 1e6,
407
- maxTokens: 65536
408
- },
409
369
  {
410
370
  ...KIRO_DEFAULTS,
411
371
  id: "claude-sonnet-4",
@@ -424,24 +384,6 @@ var init_models = __esm(() => {
424
384
  contextWindow: 200000,
425
385
  maxTokens: 65536
426
386
  },
427
- {
428
- ...KIRO_DEFAULTS,
429
- id: "deepseek-3-2",
430
- name: "DeepSeek 3.2",
431
- reasoning: true,
432
- input: TEXT_ONLY,
433
- contextWindow: 128000,
434
- maxTokens: 8192
435
- },
436
- {
437
- ...KIRO_DEFAULTS,
438
- id: "kimi-k2-5",
439
- name: "Kimi K2.5",
440
- reasoning: true,
441
- input: TEXT_ONLY,
442
- contextWindow: 200000,
443
- maxTokens: 8192
444
- },
445
387
  {
446
388
  ...KIRO_DEFAULTS,
447
389
  id: "minimax-m2-5",
@@ -460,24 +402,6 @@ var init_models = __esm(() => {
460
402
  contextWindow: 196000,
461
403
  maxTokens: 64000
462
404
  },
463
- {
464
- ...KIRO_DEFAULTS,
465
- id: "glm-4-7",
466
- name: "GLM 4.7",
467
- reasoning: true,
468
- input: TEXT_ONLY,
469
- contextWindow: 128000,
470
- maxTokens: 8192
471
- },
472
- {
473
- ...KIRO_DEFAULTS,
474
- id: "glm-4-7-flash",
475
- name: "GLM 4.7 Flash",
476
- reasoning: false,
477
- input: TEXT_ONLY,
478
- contextWindow: 128000,
479
- maxTokens: 8192
480
- },
481
405
  {
482
406
  ...KIRO_DEFAULTS,
483
407
  id: "qwen3-coder-next",
@@ -487,24 +411,6 @@ var init_models = __esm(() => {
487
411
  contextWindow: 256000,
488
412
  maxTokens: 64000
489
413
  },
490
- {
491
- ...KIRO_DEFAULTS,
492
- id: "qwen3-coder-480b",
493
- name: "Qwen3 Coder 480B",
494
- reasoning: true,
495
- input: TEXT_ONLY,
496
- contextWindow: 128000,
497
- maxTokens: 8192
498
- },
499
- {
500
- ...KIRO_DEFAULTS,
501
- id: "agi-nova-beta-1m",
502
- name: "AGI Nova Beta (1M)",
503
- reasoning: true,
504
- input: MULTIMODAL,
505
- contextWindow: 1e6,
506
- maxTokens: 65536
507
- },
508
414
  {
509
415
  ...KIRO_DEFAULTS,
510
416
  id: "auto",
@@ -1145,13 +1051,14 @@ function parseKiroEventMulti(parsed) {
1145
1051
  }
1146
1052
  });
1147
1053
  }
1148
- if (parsed.usage !== undefined) {
1149
- const u = parsed.usage;
1054
+ const usageBlock = parsed.usage || parsed.Usage;
1055
+ if (usageBlock !== undefined && typeof usageBlock === "object" && usageBlock !== null) {
1056
+ const u = usageBlock;
1150
1057
  events.push({
1151
1058
  type: "usage",
1152
1059
  data: {
1153
- inputTokens: u.inputTokens,
1154
- outputTokens: u.outputTokens
1060
+ inputTokens: u.inputTokens ?? u.InputTokens,
1061
+ outputTokens: u.outputTokens ?? u.OutputTokens
1155
1062
  }
1156
1063
  });
1157
1064
  }
@@ -1195,6 +1102,7 @@ var EVENT_PATTERNS = [
1195
1102
  '{"contextUsagePercentage":',
1196
1103
  '{"followupPrompt":',
1197
1104
  '{"usage":',
1105
+ '{"Usage":',
1198
1106
  '{"toolUseId":',
1199
1107
  '{"unit":',
1200
1108
  '{"error":',
@@ -2203,6 +2111,22 @@ var COMPACTION_THRESHOLD_PCT = 95;
2203
2111
  function normalizeMessages(messages) {
2204
2112
  return messages.filter((msg) => msg.role !== "assistant" || msg.stopReason !== "error" && msg.stopReason !== "aborted");
2205
2113
  }
2114
+ var KIRO_PLACEHOLDER_TOOL = {
2115
+ toolSpecification: {
2116
+ name: "noop",
2117
+ description: "Placeholder tool. Do not call it. Present only to satisfy the toolConfig requirement when replayed history contains tool blocks.",
2118
+ inputSchema: { json: { type: "object", properties: {} } }
2119
+ }
2120
+ };
2121
+ function historyHasToolBlocks(history) {
2122
+ for (const entry of history) {
2123
+ if (entry.assistantResponseMessage?.toolUses?.length)
2124
+ return true;
2125
+ if (entry.userInputMessage?.userInputMessageContext?.toolResults?.length)
2126
+ return true;
2127
+ }
2128
+ return false;
2129
+ }
2206
2130
  var TOOL_RESULT_LIMIT = 250000;
2207
2131
  var MAX_KIRO_IMAGES = 4;
2208
2132
  var MAX_KIRO_IMAGE_BYTES = 3750000;
@@ -2298,6 +2222,14 @@ function sanitizeSchema(obj) {
2298
2222
  if (Math.abs(value) > 1e9)
2299
2223
  continue;
2300
2224
  }
2225
+ if (key === "properties" && value && typeof value === "object" && !Array.isArray(value)) {
2226
+ const props = {};
2227
+ for (const [propName, propSchema] of Object.entries(value)) {
2228
+ props[propName] = sanitizeSchema(propSchema);
2229
+ }
2230
+ result[key] = props;
2231
+ continue;
2232
+ }
2301
2233
  result[key] = sanitizeSchema(value);
2302
2234
  }
2303
2235
  return result;
@@ -2641,7 +2573,7 @@ function emitToolCall(state, output, stream) {
2641
2573
  const toolCall = { type: "toolCall", id: state.toolUseId, name: state.name, arguments: args };
2642
2574
  output.content.push(toolCall);
2643
2575
  stream.push({ type: "toolcall_start", contentIndex, partial: output });
2644
- stream.push({ type: "toolcall_delta", contentIndex, delta: state.input, partial: output });
2576
+ stream.push({ type: "toolcall_delta", contentIndex, delta: JSON.stringify(args), partial: output });
2645
2577
  stream.push({ type: "toolcall_end", contentIndex, toolCall, partial: output });
2646
2578
  return true;
2647
2579
  }
@@ -2854,6 +2786,8 @@ ${currentContent}`;
2854
2786
  uimc.toolResults = currentToolResults;
2855
2787
  if (context.tools?.length) {
2856
2788
  uimc.tools = convertToolsToKiro(context.tools);
2789
+ } else if (historyHasToolBlocks(history) || currentToolResults.length > 0) {
2790
+ uimc.tools = [KIRO_PLACEHOLDER_TOOL];
2857
2791
  }
2858
2792
  if (firstMsg?.role === "user") {
2859
2793
  const imgs = extractImages(firstMsg);
@@ -3138,6 +3072,7 @@ ${currentContent}`;
3138
3072
  const tc = output.content[contentIndex];
3139
3073
  if (event.data.text) {
3140
3074
  tc.thinking += event.data.text;
3075
+ totalContent += event.data.text;
3141
3076
  stream.push({ type: "thinking_delta", contentIndex, delta: event.data.text, partial: output });
3142
3077
  }
3143
3078
  if (event.data.signature) {
@@ -3352,23 +3287,59 @@ init_models();
3352
3287
 
3353
3288
  // src/dashboard-stats.ts
3354
3289
  var MAX_HISTORY = 100;
3290
+ var MODEL_PRICING = {
3291
+ "claude-fable-5": { input: 10, output: 50 },
3292
+ "claude-opus-4-8": { input: 5, output: 25 },
3293
+ "claude-opus-4-7": { input: 5, output: 25 },
3294
+ "claude-opus-4-6": { input: 5, output: 25 },
3295
+ "claude-opus-4-5": { input: 5, output: 25 },
3296
+ "claude-sonnet-4-6": { input: 3, output: 15 },
3297
+ "claude-sonnet-4-5": { input: 3, output: 15 },
3298
+ "claude-sonnet-4": { input: 3, output: 15 },
3299
+ "claude-haiku-4-5": { input: 1, output: 5 },
3300
+ "minimax-m2-5": { input: 0.15, output: 1.2 },
3301
+ "minimax-m2-1": { input: 0.3, output: 1.2 },
3302
+ "qwen3-coder-next": { input: 0.3, output: 1 },
3303
+ auto: { input: 3, output: 15 }
3304
+ };
3305
+ function getModelPricing(modelId) {
3306
+ const normId = modelId.replace(/\./g, "-").toLowerCase();
3307
+ if (MODEL_PRICING[normId]) {
3308
+ return MODEL_PRICING[normId];
3309
+ }
3310
+ const sortedKeys = Object.keys(MODEL_PRICING).sort((a, b) => b.length - a.length);
3311
+ for (const key of sortedKeys) {
3312
+ if (normId.startsWith(key)) {
3313
+ return MODEL_PRICING[key];
3314
+ }
3315
+ }
3316
+ return { input: 3, output: 15 };
3317
+ }
3355
3318
 
3356
3319
  class DashboardStats {
3357
3320
  requests = [];
3321
+ totalRequests = 0;
3322
+ totalTokens = 0;
3323
+ totalCredits = 0;
3324
+ totalUsd = 0;
3358
3325
  recordRequest(metrics) {
3359
- this.requests.unshift({ ...metrics, timestamp: Date.now() });
3326
+ const pricing = getModelPricing(metrics.model);
3327
+ const usd = (metrics.inputTokens * pricing.input + metrics.outputTokens * pricing.output) / 1e6;
3328
+ this.totalRequests++;
3329
+ this.totalTokens += metrics.inputTokens + metrics.outputTokens;
3330
+ this.totalCredits += metrics.credits;
3331
+ this.totalUsd += usd;
3332
+ this.requests.unshift({ ...metrics, usd, timestamp: Date.now() });
3360
3333
  if (this.requests.length > MAX_HISTORY) {
3361
3334
  this.requests.pop();
3362
3335
  }
3363
3336
  }
3364
3337
  getStats() {
3365
- const totalRequests = this.requests.length;
3366
- const totalTokens = this.requests.reduce((acc, r) => acc + r.inputTokens + r.outputTokens, 0);
3367
- const totalCredits = this.requests.reduce((acc, r) => acc + r.credits, 0);
3368
3338
  return {
3369
- totalRequests,
3370
- totalTokens,
3371
- totalCredits,
3339
+ totalRequests: this.totalRequests,
3340
+ totalTokens: this.totalTokens,
3341
+ totalCredits: this.totalCredits,
3342
+ totalUsd: this.totalUsd,
3372
3343
  requests: this.requests
3373
3344
  };
3374
3345
  }
@@ -3458,6 +3429,16 @@ function getDashboardHtml() {
3458
3429
  gap: 8px;
3459
3430
  }
3460
3431
 
3432
+ button.status-badge {
3433
+ color: var(--primary);
3434
+ transition: all 0.2s ease;
3435
+ }
3436
+
3437
+ button.status-badge:hover {
3438
+ background: rgba(0, 255, 65, 0.25);
3439
+ box-shadow: 0 0 10px rgba(0, 255, 65, 0.4);
3440
+ }
3441
+
3461
3442
  .pulse {
3462
3443
  width: 8px;
3463
3444
  height: 8px;
@@ -3594,9 +3575,14 @@ function getDashboardHtml() {
3594
3575
  <h1>KIRO_GATEWAY</h1>
3595
3576
  <div style="font-size: 0.8rem; color: var(--text); margin-top: 5px;">LOCAL PROXY // TELEMETRY NODE</div>
3596
3577
  </div>
3597
- <div class="status-badge">
3598
- <div class="pulse"></div>
3599
- SYS.ONLINE
3578
+ <div style="display: flex; align-items: center; gap: 15px;">
3579
+ <button id="toggle-currency" class="status-badge" style="cursor: pointer; font-family: var(--font-mono); outline: none;" onclick="toggleCurrency()">
3580
+ SHOW USD
3581
+ </button>
3582
+ <div class="status-badge">
3583
+ <div class="pulse"></div>
3584
+ SYS.ONLINE
3585
+ </div>
3600
3586
  </div>
3601
3587
  </header>
3602
3588
 
@@ -3610,8 +3596,8 @@ function getDashboardHtml() {
3610
3596
  <div class="metric-value" id="val-tokens">0</div>
3611
3597
  </div>
3612
3598
  <div class="metric-card">
3613
- <div class="metric-label">EST.CREDITS</div>
3614
- <div class="metric-value" id="val-credits">0.000</div>
3599
+ <div class="metric-label" id="label-credits">EST.CREDITS</div>
3600
+ <div class="metric-value" id="val-credits">0.0</div>
3615
3601
  </div>
3616
3602
  </div>
3617
3603
 
@@ -3623,9 +3609,10 @@ function getDashboardHtml() {
3623
3609
  <th>ID</th>
3624
3610
  <th>MODEL</th>
3625
3611
  <th>TYPE</th>
3612
+ <th>EFFORT</th>
3626
3613
  <th>IN.TOKENS</th>
3627
3614
  <th>OUT.TOKENS</th>
3628
- <th>CREDITS</th>
3615
+ <th id="header-credits">CREDITS</th>
3629
3616
  </tr>
3630
3617
  </thead>
3631
3618
  <tbody id="table-body">
@@ -3642,6 +3629,22 @@ function getDashboardHtml() {
3642
3629
  return d.toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' }) + '.' + d.getMilliseconds().toString().padStart(3, '0');
3643
3630
  }
3644
3631
 
3632
+ let showUsd = false;
3633
+
3634
+ function toggleCurrency() {
3635
+ showUsd = !showUsd;
3636
+ const btn = document.getElementById('toggle-currency');
3637
+ btn.innerText = showUsd ? 'SHOW CREDITS' : 'SHOW USD';
3638
+
3639
+ const labelCard = document.getElementById('label-credits');
3640
+ labelCard.innerText = showUsd ? 'EST.COST (USD)' : 'EST.CREDITS';
3641
+
3642
+ const headerTable = document.getElementById('header-credits');
3643
+ headerTable.innerText = showUsd ? 'COST (USD)' : 'CREDITS';
3644
+
3645
+ fetchStats();
3646
+ }
3647
+
3645
3648
  async function fetchStats() {
3646
3649
  try {
3647
3650
  const res = await fetch('/dashboard/api/stats');
@@ -3649,7 +3652,12 @@ function getDashboardHtml() {
3649
3652
 
3650
3653
  document.getElementById('val-requests').innerText = data.totalRequests;
3651
3654
  document.getElementById('val-tokens').innerText = data.totalTokens.toLocaleString();
3652
- document.getElementById('val-credits').innerText = data.totalCredits.toFixed(4);
3655
+
3656
+ if (showUsd) {
3657
+ document.getElementById('val-credits').innerText = '$' + data.totalUsd.toFixed(1);
3658
+ } else {
3659
+ document.getElementById('val-credits').innerText = data.totalCredits.toFixed(1);
3660
+ }
3653
3661
 
3654
3662
  const tbody = document.getElementById('table-body');
3655
3663
 
@@ -3661,15 +3669,24 @@ function getDashboardHtml() {
3661
3669
  currentIds.add(req.id);
3662
3670
  const isNew = !lastRenderedIds.has(req.id) && lastRenderedIds.size > 0;
3663
3671
 
3672
+ const effortTag = req.effort
3673
+ ? '<span class="tag" style="border-color: rgba(0, 255, 255, 0.3); color: var(--secondary); background: rgba(0, 255, 255, 0.05);">' + req.effort.toUpperCase() + '</span>'
3674
+ : '<span style="opacity: 0.3">-</span>';
3675
+
3676
+ const costDisplay = showUsd
3677
+ ? '$' + (req.usd ?? 0).toFixed(4)
3678
+ : req.credits.toFixed(5);
3679
+
3664
3680
  html += \`
3665
3681
  <tr class="\${isNew ? 'new-row' : ''}">
3666
3682
  <td style="color: var(--secondary)">\${formatTime(req.timestamp)}</td>
3667
3683
  <td><span style="opacity: 0.5">msg_</span>\${req.id.split('_').pop().substring(0,8)}</td>
3668
3684
  <td class="model-name">\${req.model}</td>
3669
3685
  <td><span class="tag">\${req.stream ? 'STREAM' : 'SYNC'}</span></td>
3686
+ <td>\${effortTag}</td>
3670
3687
  <td>\${req.inputTokens.toLocaleString()}</td>
3671
3688
  <td>\${req.outputTokens.toLocaleString()}</td>
3672
- <td>\${req.credits.toFixed(5)}</td>
3689
+ <td>\${costDisplay}</td>
3673
3690
  </tr>
3674
3691
  \`;
3675
3692
  });
@@ -4056,7 +4073,8 @@ data: ` + JSON.stringify({
4056
4073
  inputTokens,
4057
4074
  outputTokens,
4058
4075
  credits,
4059
- stream: true
4076
+ stream: true,
4077
+ effort: reasoningEffort
4060
4078
  });
4061
4079
  controller.enqueue(`event: message_delta
4062
4080
  data: ` + JSON.stringify({
@@ -4066,6 +4084,7 @@ data: ` + JSON.stringify({
4066
4084
  stop_sequence: null
4067
4085
  },
4068
4086
  usage: {
4087
+ input_tokens: inputTokens,
4069
4088
  output_tokens: outputTokens
4070
4089
  }
4071
4090
  }) + `
@@ -4138,7 +4157,8 @@ data: ` + JSON.stringify({
4138
4157
  inputTokens,
4139
4158
  outputTokens,
4140
4159
  credits,
4141
- stream: false
4160
+ stream: false,
4161
+ effort: reasoningEffort
4142
4162
  });
4143
4163
  const responseBody = {
4144
4164
  id: msgId,
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAOA,gEAAgE;AAChE,eAAO,MAAM,cAAc,aAczB,CAAC;AAGH,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AA8BD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtE;AAaD,KAAK,KAAK,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;AAIlC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iEAAiE;IACjE,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,EAmIjC,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,qEAAqE;IACrE,kCAAkC,CAAC,EAAE;QACnC,UAAU,CAAC,EAAE;YACX,aAAa,CAAC,EAAE;gBAAE,UAAU,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE;wBAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;qBAAE,CAAA;iBAAE,CAAA;aAAE,CAAC;YAClE,QAAQ,CAAC,EAAE;gBAAE,UAAU,CAAC,EAAE;oBAAE,IAAI,CAAC,EAAE;wBAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;qBAAE,CAAA;iBAAE,CAAA;aAAE,CAAC;SAC5D,CAAC;KACH,CAAC;CACH;AAKD,wBAAgB,oBAAoB,CAAC,cAAc,UAAQ,GAAG,IAAI,CAGjE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAiBzB;AAqBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAkCzE;AAKD,wBAAgB,sBAAsB,IAAI,SAAS,EAAE,GAAG,IAAI,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,IAAI,CAEvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AA2BlC,wBAAgB,aAAa,IAAI,MAAM,CAA0C;AAEjF,kDAAkD;AAClD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DrD;AAsBD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAc,QAQnE;AAwBD,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CA8dzE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AA2BlC,wBAAgB,aAAa,IAAI,MAAM,CAA0C;AAEjF,kDAAkD;AAClD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DrD;AAsBD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAc,QAQnE;AAwBD,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CA2ezE"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,GAAG,EAEH,OAAO,EAEP,KAAK,EACL,mBAAmB,EAKpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,2BAA2B,EAAiB,MAAM,SAAS,CAAC;AA8FrE;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAkGlD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,2BAA2B,CA+3B7B"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,GAAG,EAEH,OAAO,EAEP,KAAK,EACL,mBAAmB,EAKpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,2BAA2B,EAAiB,MAAM,SAAS,CAAC;AAgGrE;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAkGlD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,2BAA2B,CA04B7B"}
@@ -33,6 +33,21 @@ export interface KiroEnvState {
33
33
  operatingSystem: string;
34
34
  currentWorkingDirectory: string;
35
35
  }
36
+ /**
37
+ * Minimal placeholder tool injected when the conversation history contains
38
+ * toolUse/toolResult blocks but the current request supplies no tools.
39
+ * Bedrock returns TOOL_CONFIG_MISSING if toolUse/toolResult blocks appear
40
+ * without a toolConfig; this placeholder makes toolConfig non-empty without
41
+ * inviting the model to call anything meaningful on auxiliary turns (title
42
+ * generation, summarization, compaction) that legitimately omit tools.
43
+ */
44
+ export declare const KIRO_PLACEHOLDER_TOOL: KiroToolSpec;
45
+ /**
46
+ * True when any history entry carries assistant toolUses or user toolResults.
47
+ * Used to decide whether a tools-less request still needs a toolConfig to
48
+ * avoid Bedrock's TOOL_CONFIG_MISSING validation error.
49
+ */
50
+ export declare function historyHasToolBlocks(history: KiroHistoryEntry[]): boolean;
36
51
  export interface KiroUserInputMessage {
37
52
  content: string;
38
53
  modelId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@javargasm/opencode-kiro-auth",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Kiro provider plugin for OpenCode: AWS Builder ID / Identity Center login and OpenAI compatible local gateway for CodeWhisperer streaming.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -54,14 +54,13 @@
54
54
  "prepack": "bun run build",
55
55
  "prepublishOnly": "bun run check"
56
56
  },
57
- "dependencies": {},
58
57
  "devDependencies": {
59
58
  "@changesets/changelog-github": "^0.5.0",
60
59
  "@changesets/cli": "^2.27.0",
61
60
  "@opencode-ai/plugin": "^1.17.3",
62
61
  "@types/bun": "latest",
63
62
  "typescript": "^5.0.0",
64
- "vitest": "^2.0.0"
63
+ "vitest": "^4.1.9"
65
64
  },
66
65
  "peerDependencies": {
67
66
  "@opencode-ai/plugin": "*"