@pentoshi/clai 4.11.23 → 4.11.25

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 (152) hide show
  1. package/dist/agent/events.d.ts +4 -1
  2. package/dist/agent/parser/arg-formatting.js +30 -0
  3. package/dist/agent/parser/arg-formatting.js.map +1 -1
  4. package/dist/agent/runner.d.ts +1 -0
  5. package/dist/agent/runner.js +3 -0
  6. package/dist/agent/runner.js.map +1 -1
  7. package/dist/agent/stream-recovery.d.ts +1 -0
  8. package/dist/agent/stream-recovery.js +9 -0
  9. package/dist/agent/stream-recovery.js.map +1 -1
  10. package/dist/agent/turn/compaction-admission.d.ts +2 -1
  11. package/dist/agent/turn/compaction-admission.js +19 -17
  12. package/dist/agent/turn/compaction-admission.js.map +1 -1
  13. package/dist/agent/turn/compaction-coordinator.d.ts +4 -4
  14. package/dist/agent/turn/compaction-coordinator.js +16 -10
  15. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  16. package/dist/agent/turn/event-emitter.d.ts +4 -3
  17. package/dist/agent/turn/event-emitter.js +10 -9
  18. package/dist/agent/turn/event-emitter.js.map +1 -1
  19. package/dist/agent/turn/loop/request-assembly.d.ts +1 -0
  20. package/dist/agent/turn/loop/request-assembly.js +4 -2
  21. package/dist/agent/turn/loop/request-assembly.js.map +1 -1
  22. package/dist/agent/turn/loop/round-request.js +1 -0
  23. package/dist/agent/turn/loop/round-request.js.map +1 -1
  24. package/dist/agent/turn/loop/state.d.ts +1 -0
  25. package/dist/agent/turn/loop/state.js +1 -1
  26. package/dist/agent/turn/loop/state.js.map +1 -1
  27. package/dist/agent/turn/loop/stream-failure.js +4 -1
  28. package/dist/agent/turn/loop/stream-failure.js.map +1 -1
  29. package/dist/agent/turn/setup/compaction-services.d.ts +4 -3
  30. package/dist/agent/turn/setup/compaction-services.js.map +1 -1
  31. package/dist/app/adapters/agent-event-adapter.js +6 -1
  32. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  33. package/dist/app/adapters/current-agent-adapter.js +3 -0
  34. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  35. package/dist/app/commands/catalog.js +31 -0
  36. package/dist/app/commands/catalog.js.map +1 -1
  37. package/dist/app/controllers/session-compact-helper.d.ts +3 -1
  38. package/dist/app/controllers/session-compact-helper.js +17 -2
  39. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  40. package/dist/app/controllers/session-controller.d.ts +3 -1
  41. package/dist/app/controllers/session-controller.js +32 -2
  42. package/dist/app/controllers/session-controller.js.map +1 -1
  43. package/dist/app/controllers/session-turn-request.d.ts +1 -0
  44. package/dist/app/controllers/session-turn-request.js +3 -0
  45. package/dist/app/controllers/session-turn-request.js.map +1 -1
  46. package/dist/app/events/app-event.d.ts +4 -1
  47. package/dist/app/events/app-event.js.map +1 -1
  48. package/dist/app/ports/agent-port.d.ts +1 -0
  49. package/dist/app/ports/transcript-item.d.ts +1 -0
  50. package/dist/commands/providers.d.ts +14 -0
  51. package/dist/commands/providers.js +223 -0
  52. package/dist/commands/providers.js.map +1 -1
  53. package/dist/index.js +13 -3
  54. package/dist/index.js.map +1 -1
  55. package/dist/llm/capabilities.js +10 -3
  56. package/dist/llm/capabilities.js.map +1 -1
  57. package/dist/llm/capability/state.d.ts +1 -1
  58. package/dist/llm/capability/tool-dialect.js +2 -0
  59. package/dist/llm/capability/tool-dialect.js.map +1 -1
  60. package/dist/llm/capability/vision-patterns.js +5 -0
  61. package/dist/llm/capability/vision-patterns.js.map +1 -1
  62. package/dist/llm/cline-auth.d.ts +12 -1
  63. package/dist/llm/cline-auth.js +229 -88
  64. package/dist/llm/cline-auth.js.map +1 -1
  65. package/dist/llm/cline.js +146 -48
  66. package/dist/llm/cline.js.map +1 -1
  67. package/dist/llm/codex-auth.d.ts +3 -1
  68. package/dist/llm/codex-auth.js +42 -8
  69. package/dist/llm/codex-auth.js.map +1 -1
  70. package/dist/llm/codex.js +17 -14
  71. package/dist/llm/codex.js.map +1 -1
  72. package/dist/llm/context-windows.js +6 -0
  73. package/dist/llm/context-windows.js.map +1 -1
  74. package/dist/llm/free.js +30 -9
  75. package/dist/llm/free.js.map +1 -1
  76. package/dist/llm/kiro-auth.d.ts +113 -0
  77. package/dist/llm/kiro-auth.js +1017 -0
  78. package/dist/llm/kiro-auth.js.map +1 -0
  79. package/dist/llm/kiro.d.ts +10 -0
  80. package/dist/llm/kiro.js +846 -0
  81. package/dist/llm/kiro.js.map +1 -0
  82. package/dist/llm/mimo.d.ts +2 -0
  83. package/dist/llm/mimo.js +89 -0
  84. package/dist/llm/mimo.js.map +1 -0
  85. package/dist/llm/model-families.js +9 -0
  86. package/dist/llm/model-families.js.map +1 -1
  87. package/dist/llm/model-layers/model-rules.js +33 -0
  88. package/dist/llm/model-layers/model-rules.js.map +1 -1
  89. package/dist/llm/provider-identity.d.ts +1 -0
  90. package/dist/llm/provider-identity.js +15 -0
  91. package/dist/llm/provider-identity.js.map +1 -1
  92. package/dist/llm/provider-info-text.js +87 -1
  93. package/dist/llm/provider-info-text.js.map +1 -1
  94. package/dist/llm/provider-profile-layers.d.ts +1 -0
  95. package/dist/llm/provider-profile-layers.js +67 -1
  96. package/dist/llm/provider-profile-layers.js.map +1 -1
  97. package/dist/llm/provider-profiles.js +5 -1
  98. package/dist/llm/provider-profiles.js.map +1 -1
  99. package/dist/llm/reasoning-capability.js +2 -0
  100. package/dist/llm/reasoning-capability.js.map +1 -1
  101. package/dist/llm/responses-complete.js +7 -1
  102. package/dist/llm/responses-complete.js.map +1 -1
  103. package/dist/llm/responses-config.d.ts +1 -1
  104. package/dist/llm/responses-config.js.map +1 -1
  105. package/dist/llm/responses-http.d.ts +2 -2
  106. package/dist/llm/responses-http.js +2 -2
  107. package/dist/llm/responses-http.js.map +1 -1
  108. package/dist/llm/responses-stream.js +9 -3
  109. package/dist/llm/responses-stream.js.map +1 -1
  110. package/dist/llm/router.js +14 -12
  111. package/dist/llm/router.js.map +1 -1
  112. package/dist/llm/routing/provider-selection.js +6 -0
  113. package/dist/llm/routing/provider-selection.js.map +1 -1
  114. package/dist/llm/sampling.js +6 -0
  115. package/dist/llm/sampling.js.map +1 -1
  116. package/dist/llm/wire/chat-body.js +47 -12
  117. package/dist/llm/wire/chat-body.js.map +1 -1
  118. package/dist/noninteractive/stream-blocks.js +17 -5
  119. package/dist/noninteractive/stream-blocks.js.map +1 -1
  120. package/dist/store/config.js +2 -0
  121. package/dist/store/config.js.map +1 -1
  122. package/dist/tui-v2/bootstrap/start-tui-v2.js +10 -0
  123. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  124. package/dist/tui-v2/components/transcript/transcript-row.js +4 -2
  125. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  126. package/dist/types.d.ts +1 -1
  127. package/dist/types.js +2 -0
  128. package/dist/types.js.map +1 -1
  129. package/dist/ui-core/bootstrap/composition-root.js +1 -1
  130. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  131. package/dist/ui-core/bootstrap/session-resume.d.ts +3 -0
  132. package/dist/ui-core/bootstrap/session-resume.js +52 -0
  133. package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
  134. package/dist/ui-core/commands/key-commands.d.ts +9 -0
  135. package/dist/ui-core/commands/key-commands.js +438 -16
  136. package/dist/ui-core/commands/key-commands.js.map +1 -1
  137. package/dist/ui-core/commands/picker-commands.js +18 -0
  138. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  139. package/dist/ui-core/state/hydrate/classic-transcript.js +5 -0
  140. package/dist/ui-core/state/hydrate/classic-transcript.js.map +1 -1
  141. package/dist/ui-core/state/transcript/apply-app-event.js +29 -0
  142. package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -1
  143. package/dist/ui-core/state/transcript-hydrate.js +165 -79
  144. package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
  145. package/dist/ui-core/state/transcript-store.js +7 -1
  146. package/dist/ui-core/state/transcript-store.js.map +1 -1
  147. package/dist/ui-core/state/transcript-types.d.ts +5 -2
  148. package/dist/ui-core/state/transcript-types.js +17 -3
  149. package/dist/ui-core/state/transcript-types.js.map +1 -1
  150. package/dist/version.generated.d.ts +2 -2
  151. package/dist/version.generated.js +2 -2
  152. package/package.json +1 -1
@@ -218,6 +218,28 @@ export class SessionController {
218
218
  return undefined;
219
219
  return snapshot.contextTokens;
220
220
  }
221
+ requestScopedContextMeasurement() {
222
+ const snapshot = this.contextSnapshot;
223
+ if (!snapshot || snapshot.contextTokens <= 0)
224
+ return undefined;
225
+ return snapshot.precision === "provider-exact"
226
+ ? "provider-reported"
227
+ : "estimated";
228
+ }
229
+ providerReportedContextTokens() {
230
+ const snapshot = this.contextSnapshot;
231
+ const attempt = snapshot?.attempt;
232
+ if (!snapshot ||
233
+ snapshot.precision !== "provider-exact" ||
234
+ snapshot.scope !== "provider-request" ||
235
+ snapshot.contextTokens <= 0 ||
236
+ attempt?.kind !== "generation" ||
237
+ attempt.provider !== this.provider ||
238
+ attempt.model !== this.model) {
239
+ return undefined;
240
+ }
241
+ return snapshot.contextTokens;
242
+ }
221
243
  recordTokenUsage(usage, model, provider, attempt, api) {
222
244
  if (provider !== undefined)
223
245
  this.provider = provider;
@@ -233,7 +255,7 @@ export class SessionController {
233
255
  usageReport() {
234
256
  return this.usageLedger.report();
235
257
  }
236
- noteContextCompacted(afterTokens, scope = "assembled-request", compactionId) {
258
+ noteContextCompacted(afterTokens, scope = "assembled-request", compactionId, measurement) {
237
259
  if (compactionId && compactionId === this.lastContextCompactionId)
238
260
  return;
239
261
  this.setContextSnapshot(compactedContextSnapshot(this.usageTarget, this.contextSnapshot, this.history, afterTokens, scope, () => this.contextTimestamp()));
@@ -424,6 +446,7 @@ export class SessionController {
424
446
  const history = [...this.history];
425
447
  const persist = options.persist !== false;
426
448
  const requestTokensBefore = this.requestScopedContextTokens();
449
+ const requestTokensBeforeMeasurement = this.requestScopedContextMeasurement();
427
450
  const generation = this.lifecycleGeneration;
428
451
  const compactionId = String(this.sequencer.ids.message());
429
452
  const abortController = new AbortController();
@@ -452,6 +475,9 @@ export class SessionController {
452
475
  ? { contextLimitTokens: this.contextLimitTokens }
453
476
  : {}),
454
477
  ...(requestTokensBefore !== undefined ? { requestTokensBefore } : {}),
478
+ ...(requestTokensBeforeMeasurement
479
+ ? { requestTokensBeforeMeasurement }
480
+ : {}),
455
481
  persist,
456
482
  compactionId,
457
483
  sequencer: this.sequencer,
@@ -461,7 +487,7 @@ export class SessionController {
461
487
  this.history = result.messages;
462
488
  if (result.summarized) {
463
489
  this.lastMainRequestSnapshot = undefined;
464
- this.noteContextCompacted(reported.afterTokens, reported.scope, compactionId);
490
+ this.noteContextCompacted(reported.afterTokens, reported.scope, compactionId, reported.measurement);
465
491
  }
466
492
  this.notifyState();
467
493
  },
@@ -610,6 +636,7 @@ export class SessionController {
610
636
  const config = getConfig();
611
637
  const provider = this.provider ?? config.defaultProvider;
612
638
  const model = this.model ?? getProviderModel(provider);
639
+ const providerReportedContextTokens = this.providerReportedContextTokens();
613
640
  const checkpoint = this.continuationCheckpoint();
614
641
  const built = buildTurnRequest({
615
642
  prompt,
@@ -625,6 +652,9 @@ export class SessionController {
625
652
  ...(this.lastMainRequestSnapshot
626
653
  ? { previousSuccessfulRequest: this.lastMainRequestSnapshot }
627
654
  : {}),
655
+ ...(providerReportedContextTokens !== undefined
656
+ ? { providerReportedContextTokens }
657
+ : {}),
628
658
  ...(this.contextLimitTokens
629
659
  ? { contextLimitTokens: this.contextLimitTokens }
630
660
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/session-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/session-controller.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export interface TurnRequestInput {
10
10
  readonly displayPrompt?: string | null | undefined;
11
11
  readonly previousTurn?: PreviousTurnSignal | undefined;
12
12
  readonly previousSuccessfulRequest?: SuccessfulRequestSnapshot | undefined;
13
+ readonly providerReportedContextTokens?: number | undefined;
13
14
  readonly contextLimitTokens?: number | undefined;
14
15
  readonly getContextLimitTokens?: (provider: ProviderId | undefined, model: string | undefined) => number | undefined;
15
16
  }
@@ -26,6 +26,9 @@ export function buildTurnRequest(input) {
26
26
  ...(input.previousSuccessfulRequest
27
27
  ? { previousSuccessfulRequest: input.previousSuccessfulRequest }
28
28
  : {}),
29
+ ...(input.providerReportedContextTokens !== undefined
30
+ ? { providerReportedContextTokens: input.providerReportedContextTokens }
31
+ : {}),
29
32
  ...(input.contextLimitTokens
30
33
  ? { contextLimitTokens: input.contextLimitTokens }
31
34
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"session-turn-request.js","sourceRoot":"","sources":["../../../src/app/controllers/session-turn-request.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AA0BpE,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,KAAK,CAAC,iBAAiB;YAC9B,CAAC,CAAC,wBAAwB,CACtB,KAAK,CAAC,OAAO,EACb,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAClD;YACH,CAAC,CAAC,KAAK,CAAC,OAAO;QACjB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK;QACnD,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,yBAAyB;YACjC,CAAC,CAAC,EAAE,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,kBAAkB;YAC1B,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,qBAAqB;YAC7B,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,OAAO;QACL,OAAO;QACP,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-turn-request.js","sourceRoot":"","sources":["../../../src/app/controllers/session-turn-request.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AA2BpE,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IACH,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,KAAK,CAAC,iBAAiB;YAC9B,CAAC,CAAC,wBAAwB,CACtB,KAAK,CAAC,OAAO,EACb,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAClD;YACH,CAAC,CAAC,KAAK,CAAC,OAAO;QACjB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK;QACnD,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,yBAAyB;YACjC,CAAC,CAAC,EAAE,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAAE;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,6BAA6B,KAAK,SAAS;YACnD,CAAC,CAAC,EAAE,6BAA6B,EAAE,KAAK,CAAC,6BAA6B,EAAE;YACxE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,kBAAkB;YAC1B,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,qBAAqB;YAC7B,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,OAAO;QACL,OAAO;QACP,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC"}
@@ -101,6 +101,7 @@ export interface AppEventPayloads {
101
101
  "compaction-started": {
102
102
  readonly compactionId: string;
103
103
  readonly beforeTokens: number;
104
+ readonly measurement?: "provider-reported" | "estimated" | undefined;
104
105
  };
105
106
  "compaction-delta": {
106
107
  readonly compactionId: string;
@@ -111,13 +112,15 @@ export interface AppEventPayloads {
111
112
  readonly compactionId: string;
112
113
  readonly summary: string;
113
114
  readonly beforeTokens: number;
114
- readonly afterTokens: number;
115
+ readonly afterTokens?: number | undefined;
116
+ readonly measurement?: "provider-reported" | "estimated" | undefined;
115
117
  readonly contextScope: Extract<ContextSnapshotScope, "message-history" | "assembled-request">;
116
118
  };
117
119
  "compaction-failed": {
118
120
  readonly compactionId: string;
119
121
  readonly message: string;
120
122
  readonly retainedTokens?: number | undefined;
123
+ readonly measurement?: "provider-reported" | "estimated" | undefined;
121
124
  };
122
125
  compacted: {
123
126
  readonly summary: string;
@@ -1 +1 @@
1
- {"version":3,"file":"app-event.js","sourceRoot":"","sources":["../../../src/app/events/app-event.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE,CAAC,KAAmB,CAAC;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,CAAC;AAwI5C,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAe;IACnE,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAkB;IAC7C,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAkB;IAClD,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"app-event.js","sourceRoot":"","sources":["../../../src/app/events/app-event.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAa,EAAE,CAAC,KAAkB,CAAC;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE,CAAC,KAAmB,CAAC;AAC/E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAe,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,CAAC;AA2I5C,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAe;IACnE,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,IAAkB;IAC7C,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAkB;IAClD,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
@@ -20,6 +20,7 @@ export interface RunTurnRequest {
20
20
  readonly maxSteps?: number | undefined;
21
21
  readonly previousTurn?: PreviousTurnSignal | undefined;
22
22
  readonly previousSuccessfulRequest?: SuccessfulRequestSnapshot | undefined;
23
+ readonly providerReportedContextTokens?: number | undefined;
23
24
  readonly contextLimitTokens?: number | undefined;
24
25
  readonly getContextLimitTokens?: (provider: ProviderId | undefined, model: string | undefined) => number | undefined;
25
26
  }
@@ -61,6 +61,7 @@ export interface CompactedItem {
61
61
  error?: string | undefined;
62
62
  beforeTokens?: number | undefined;
63
63
  afterTokens?: number | undefined;
64
+ measurement?: "provider-reported" | "estimated" | undefined;
64
65
  startedAt?: number | undefined;
65
66
  endedAt?: number | undefined;
66
67
  }
@@ -1,5 +1,6 @@
1
1
  import type { ClineOAuthTokens } from "../llm/cline-auth.js";
2
2
  import type { CodexCredential } from "../llm/codex-auth.js";
3
+ import type { KiroCredential } from "../llm/kiro-auth.js";
3
4
  import type { ProviderId } from "../types.js";
4
5
  export interface SetKeyOptions {
5
6
  fromEnv?: string | undefined;
@@ -27,6 +28,19 @@ export declare function authCodex(providerValue: string, options?: {
27
28
  export declare function authCopilot(providerValue: string, options?: {
28
29
  import?: boolean | undefined;
29
30
  }): Promise<void>;
31
+ export declare function authKiro(providerValue: string, options?: {
32
+ import?: boolean | undefined;
33
+ browser?: boolean | undefined;
34
+ headless?: boolean | undefined;
35
+ }): Promise<void>;
36
+ export declare function resolveKiroDeviceAuthInteractive(options?: {
37
+ authMethod?: "builder-id" | "idc" | undefined;
38
+ startUrl?: string | undefined;
39
+ region?: string | undefined;
40
+ }): Promise<KiroCredential | undefined>;
41
+ export declare function resolveKiroPortalAuthInteractive(): Promise<KiroCredential | undefined>;
42
+ export declare function resolveKiroSocialAuthInteractive(provider: "google" | "github"): Promise<KiroCredential | undefined>;
43
+ export declare function resolveKiroCredentialInteractive(): Promise<KiroCredential | undefined>;
30
44
  export declare function resolveCodexCredentialInteractive(): Promise<CodexCredential | undefined>;
31
45
  export declare function resolveCopilotCredentialInteractive(): Promise<string | undefined>;
32
46
  export declare function providerSwitcher(providerValue?: string | undefined): Promise<void>;
@@ -8,6 +8,7 @@ import { importExistingClineAuth, pollClineDeviceAuth, startClineDeviceAuth, } f
8
8
  import { codexKeyFromAccessToken, encodeCodexKey, importExistingCodexKey, pollCodexDeviceAuth, startCodexBrowserAuth, startCodexDeviceAuth, } from "../llm/codex-auth.js";
9
9
  import { openSystemBrowser } from "../mcp/auth/loopback.js";
10
10
  import { importExistingCopilotKey, pollCopilotDeviceAuth, startCopilotDeviceAuth, } from "../llm/copilot-auth.js";
11
+ import { encodeKiroKey, importExistingKiroAuth, pollKiroDeviceAuth, startKiroDeviceAuth, startKiroSocialAuth, exchangeKiroSocialCode, createKiroCliAuthorizationFlow, exchangeKiroPortalCode, listenForKiroCliCallback, parseKiroCliCallback, isHeadlessEnvironment, } from "../llm/kiro-auth.js";
11
12
  function clineCredentialMetadata(tokens) {
12
13
  return {
13
14
  ...(tokens.refreshToken ? { refreshToken: tokens.refreshToken } : {}),
@@ -81,6 +82,8 @@ function invalidFormatHint(provider) {
81
82
  return "DeepSeek keys start with sk- (from https://platform.deepseek.com)";
82
83
  if (provider === "kimi")
83
84
  return "Kimi keys start with sk- (from https://platform.kimi.ai)";
85
+ if (provider === "mimo")
86
+ return "Xiaomi MiMo keys start with sk- (or tp- for Token Plan) from https://platform.xiaomimimo.com";
84
87
  if (provider === "glm")
85
88
  return "GLM keys are alphanumeric or id.secret (from https://open.bigmodel.cn or https://z.ai)";
86
89
  if (provider === "minimax")
@@ -89,6 +92,8 @@ function invalidFormatHint(provider) {
89
92
  return "Chatgpt Subscription uses ChatGPT sign-in — run `clai auth chatgpt` (or import with --import)";
90
93
  if (provider === "copilot")
91
94
  return "Github Copilot uses GitHub sign-in — run `clai auth copilot` (or import with --import)";
95
+ if (provider === "kiro")
96
+ return "Kiro AI uses AWS Builder ID or social sign-in — run `clai auth kiro` (or import with --import)";
92
97
  return "Ollama expects a URL such as http://localhost:11434";
93
98
  }
94
99
  export async function setProviderKey(providerValue, keyArg, options) {
@@ -150,6 +155,14 @@ export async function setProviderKey(providerValue, keyArg, options) {
150
155
  }
151
156
  secret = token;
152
157
  }
158
+ if (!secret && provider === "kiro" && !options.fromEnv) {
159
+ const credential = await resolveKiroCredentialInteractive();
160
+ if (!credential) {
161
+ console.log("cancelled");
162
+ return;
163
+ }
164
+ secret = encodeKiroKey(credential);
165
+ }
153
166
  if (!secret) {
154
167
  secret = await promptForSecret(provider);
155
168
  }
@@ -357,6 +370,14 @@ export async function useProvider(providerValue) {
357
370
  }
358
371
  await appendProviderKey("copilot", token);
359
372
  }
373
+ else if (provider === "kiro") {
374
+ const credential = await resolveKiroCredentialInteractive();
375
+ if (!credential) {
376
+ console.log("provider unchanged");
377
+ return;
378
+ }
379
+ await appendProviderKey("kiro", encodeKiroKey(credential));
380
+ }
360
381
  else {
361
382
  const entered = await promptForSecret(provider);
362
383
  if (!entered) {
@@ -551,6 +572,208 @@ export async function authCopilot(providerValue, options = {}) {
551
572
  const multi = await getProviderKeys("copilot");
552
573
  console.log(`authenticated Github Copilot ${maskSecret(token)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
553
574
  }
575
+ export async function authKiro(providerValue, options = {}) {
576
+ const provider = assertProvider(providerValue);
577
+ const label = getProvider(provider).displayName;
578
+ if (provider !== "kiro") {
579
+ throw new Error(`OAuth sign-in is only supported for the ${label} provider. Use \`clai set ${provider} <key>\` instead.`);
580
+ }
581
+ if (options.import) {
582
+ process.stderr.write("Looking for an existing Kiro CLI/Desktop or AWS SSO sign-in…\n");
583
+ const cred = await importExistingKiroAuth();
584
+ if (!cred) {
585
+ process.exitCode = 5;
586
+ throw new Error("No usable Kiro credential found. Sign in with `clai auth kiro` (no --import) or install Kiro CLI/Desktop and log in first.");
587
+ }
588
+ const key = encodeKiroKey(cred);
589
+ const storage = await appendProviderKey("kiro", key, {
590
+ ...(cred.refreshToken ? { refreshToken: cred.refreshToken } : {}),
591
+ ...(cred.expiresAt !== undefined ? { expiresAt: cred.expiresAt } : {}),
592
+ });
593
+ if (storage === "fallback") {
594
+ process.exitCode = 3;
595
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
596
+ }
597
+ const multi = await getProviderKeys("kiro");
598
+ console.log(`imported Kiro AI ${maskSecret(key)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
599
+ return;
600
+ }
601
+ let credential;
602
+ if (options.headless) {
603
+ credential = await resolveKiroDeviceAuthInteractive({ authMethod: "builder-id" });
604
+ }
605
+ else if (options.browser) {
606
+ credential = await resolveKiroPortalAuthInteractive();
607
+ }
608
+ else {
609
+ const method = await askChoice("How do you want to sign in to Kiro AI?", [
610
+ {
611
+ name: "Sign in with Kiro (recommended) — Google, GitHub, or Builder ID in browser",
612
+ value: "kiro-cli",
613
+ },
614
+ {
615
+ name: "Sign in with AWS Builder ID — device code on any device",
616
+ value: "builder-id",
617
+ },
618
+ {
619
+ name: "Sign in with AWS IAM Identity Center (IDC) — enterprise SSO",
620
+ value: "idc",
621
+ },
622
+ {
623
+ name: "Import existing Kiro CLI / Desktop or AWS SSO sign-in",
624
+ value: "import",
625
+ },
626
+ {
627
+ name: "Manually enter an API key or access/refresh token",
628
+ value: "apikey",
629
+ },
630
+ ]);
631
+ if (!method) {
632
+ console.log("cancelled");
633
+ return;
634
+ }
635
+ if (method === "kiro-cli") {
636
+ credential = await resolveKiroPortalAuthInteractive();
637
+ }
638
+ else if (method === "builder-id") {
639
+ credential = await resolveKiroDeviceAuthInteractive({ authMethod: "builder-id" });
640
+ }
641
+ else if (method === "idc") {
642
+ const startUrl = await askLine("Enter AWS IAM Identity Center Start URL (e.g. https://my-org.awsapps.com/start):");
643
+ if (!startUrl) {
644
+ console.log("cancelled");
645
+ return;
646
+ }
647
+ const region = await askLine("Enter AWS region (default us-east-1):");
648
+ credential = await resolveKiroDeviceAuthInteractive({
649
+ authMethod: "idc",
650
+ startUrl: startUrl.trim(),
651
+ region: region?.trim() || "us-east-1",
652
+ });
653
+ }
654
+ else if (method === "import") {
655
+ credential = await importExistingKiroAuth();
656
+ if (!credential) {
657
+ process.exitCode = 5;
658
+ throw new Error("No usable Kiro credential found to import.");
659
+ }
660
+ }
661
+ else if (method === "apikey") {
662
+ const pasted = await askSecret("Paste a Kiro API key, access token, or refresh token:");
663
+ if (!pasted?.trim()) {
664
+ console.log("cancelled");
665
+ return;
666
+ }
667
+ const raw = pasted.trim();
668
+ if (raw.startsWith("aorAAAAAG")) {
669
+ const { refreshKiroToken } = await import("../llm/kiro-auth.js");
670
+ credential = await refreshKiroToken(raw);
671
+ }
672
+ else {
673
+ credential = {
674
+ accessToken: raw,
675
+ apiKey: raw,
676
+ authMethod: "api_key",
677
+ region: "us-east-1",
678
+ };
679
+ }
680
+ }
681
+ }
682
+ if (!credential) {
683
+ process.exitCode = 5;
684
+ throw new Error("Kiro AI authentication failed or was cancelled.");
685
+ }
686
+ const key = encodeKiroKey(credential);
687
+ const storage = await appendProviderKey("kiro", key, {
688
+ ...(credential.refreshToken ? { refreshToken: credential.refreshToken } : {}),
689
+ ...(credential.expiresAt !== undefined ? { expiresAt: credential.expiresAt } : {}),
690
+ });
691
+ if (storage === "fallback") {
692
+ process.exitCode = 3;
693
+ console.warn(chalk.yellow(`Warning: OS keychain unavailable; stored in ${getFallbackKeysPath()} with restricted permissions.`));
694
+ }
695
+ const multi = await getProviderKeys("kiro");
696
+ console.log(`authenticated Kiro AI ${maskSecret(key)} · ${multi.keys.length} key${multi.keys.length === 1 ? "" : "s"} total`);
697
+ }
698
+ export async function resolveKiroDeviceAuthInteractive(options = {}) {
699
+ const start = await startKiroDeviceAuth(options);
700
+ console.log("To authenticate Kiro AI:");
701
+ console.log(` 1. Open this link on any device:\n ${start.verificationUriComplete || start.verificationUri}`);
702
+ console.log(` 2. Enter code: ${chalk.bold(start.userCode)}`);
703
+ console.log("");
704
+ const credential = await pollKiroDeviceAuth(start, {
705
+ onPending: (remaining) => {
706
+ const mm = Math.floor(remaining / 60);
707
+ const ss = String(remaining % 60).padStart(2, "0");
708
+ process.stderr.write(`\rWaiting for Kiro approval… ${mm}:${ss} remaining (Ctrl-C to cancel) `);
709
+ },
710
+ });
711
+ process.stderr.write("\n");
712
+ return credential;
713
+ }
714
+ export async function resolveKiroPortalAuthInteractive() {
715
+ if (isHeadlessEnvironment()) {
716
+ return resolveKiroDeviceAuthInteractive({ authMethod: "builder-id" });
717
+ }
718
+ const { authorizeUrl, codeVerifier, state } = createKiroCliAuthorizationFlow();
719
+ let server;
720
+ try {
721
+ server = listenForKiroCliCallback({ expectedState: state });
722
+ }
723
+ catch {
724
+ server = undefined;
725
+ }
726
+ console.log("To authenticate Kiro AI:");
727
+ console.log(` Opening browser link:\n ${authorizeUrl}\n`);
728
+ await openSystemBrowser(authorizeUrl).catch(() => { });
729
+ if (server) {
730
+ console.log("Waiting for browser sign-in (Google / GitHub / Builder ID)… clai will continue automatically.");
731
+ console.log("Or paste the redirect URL / code below.");
732
+ }
733
+ else {
734
+ console.log("Could not listen on localhost:3128. Sign in, then paste the final redirect URL / code below.");
735
+ }
736
+ const codeOrUrlPromise = askLine("Paste the redirect URL or code here (or leave blank to cancel):");
737
+ if (!server) {
738
+ const pasted = await codeOrUrlPromise;
739
+ if (!pasted?.trim())
740
+ return undefined;
741
+ const cb = parseKiroCliCallback(pasted.trim());
742
+ return exchangeKiroPortalCode(cb, codeVerifier);
743
+ }
744
+ const result = await Promise.race([
745
+ server.promise.then((cb) => ({ kind: "callback", cb })),
746
+ codeOrUrlPromise.then((pasted) => ({ kind: "paste", pasted })),
747
+ ]);
748
+ if (result.kind === "callback") {
749
+ server.close();
750
+ await codeOrUrlPromise.catch(() => { });
751
+ return exchangeKiroPortalCode(result.cb, codeVerifier);
752
+ }
753
+ const pasted = result.pasted;
754
+ if (!pasted?.trim()) {
755
+ server.close();
756
+ return undefined;
757
+ }
758
+ const cb = parseKiroCliCallback(pasted.trim());
759
+ server.close();
760
+ return exchangeKiroPortalCode(cb, codeVerifier);
761
+ }
762
+ export async function resolveKiroSocialAuthInteractive(provider) {
763
+ const { url, codeVerifier } = await startKiroSocialAuth(provider);
764
+ const label = provider === "google" ? "Google" : "GitHub";
765
+ console.log(`To authenticate Kiro AI with ${label}:`);
766
+ console.log(` Opening browser link:\n ${url}\n`);
767
+ await openSystemBrowser(url).catch(() => { });
768
+ console.log("After signing in, your browser will redirect to a kiro:// URL.");
769
+ const codeOrUrl = await askLine("Paste the redirect URL or code here (or leave blank to cancel):");
770
+ if (!codeOrUrl?.trim())
771
+ return undefined;
772
+ return exchangeKiroSocialCode(codeOrUrl.trim(), codeVerifier);
773
+ }
774
+ export async function resolveKiroCredentialInteractive() {
775
+ return resolveKiroDeviceAuthInteractive({ authMethod: "builder-id" });
776
+ }
554
777
  export async function resolveCodexCredentialInteractive() {
555
778
  const start = await startCodexDeviceAuth();
556
779
  console.log("To authenticate ChatGPT Subscription:");