ns-kiro-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +51 -0
  3. package/dist/blocks.d.ts +32 -0
  4. package/dist/blocks.js +83 -0
  5. package/dist/blocks.js.map +1 -0
  6. package/dist/bracket-tool-parser.d.ts +11 -0
  7. package/dist/bracket-tool-parser.js +78 -0
  8. package/dist/bracket-tool-parser.js.map +1 -0
  9. package/dist/cost.d.ts +3 -0
  10. package/dist/cost.js +10 -0
  11. package/dist/cost.js.map +1 -0
  12. package/dist/debug.d.ts +6 -0
  13. package/dist/debug.js +63 -0
  14. package/dist/debug.js.map +1 -0
  15. package/dist/effort.d.ts +36 -0
  16. package/dist/effort.js +138 -0
  17. package/dist/effort.js.map +1 -0
  18. package/dist/endpoints.d.ts +8 -0
  19. package/dist/endpoints.js +43 -0
  20. package/dist/endpoints.js.map +1 -0
  21. package/dist/event-parser.d.ts +49 -0
  22. package/dist/event-parser.js +56 -0
  23. package/dist/event-parser.js.map +1 -0
  24. package/dist/history-validator.d.ts +91 -0
  25. package/dist/history-validator.js +370 -0
  26. package/dist/history-validator.js.map +1 -0
  27. package/dist/history.d.ts +21 -0
  28. package/dist/history.js +130 -0
  29. package/dist/history.js.map +1 -0
  30. package/dist/index.d.ts +22 -0
  31. package/dist/index.js +28 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/invoke-tool-parser.d.ts +16 -0
  34. package/dist/invoke-tool-parser.js +152 -0
  35. package/dist/invoke-tool-parser.js.map +1 -0
  36. package/dist/kiro-cli.d.ts +31 -0
  37. package/dist/kiro-cli.js +308 -0
  38. package/dist/kiro-cli.js.map +1 -0
  39. package/dist/kiro-ide.d.ts +12 -0
  40. package/dist/kiro-ide.js +74 -0
  41. package/dist/kiro-ide.js.map +1 -0
  42. package/dist/management.d.ts +34 -0
  43. package/dist/management.js +226 -0
  44. package/dist/management.js.map +1 -0
  45. package/dist/models.d.ts +58 -0
  46. package/dist/models.js +462 -0
  47. package/dist/models.js.map +1 -0
  48. package/dist/oauth.d.ts +50 -0
  49. package/dist/oauth.js +295 -0
  50. package/dist/oauth.js.map +1 -0
  51. package/dist/retry.d.ts +74 -0
  52. package/dist/retry.js +156 -0
  53. package/dist/retry.js.map +1 -0
  54. package/dist/stream.d.ts +36 -0
  55. package/dist/stream.js +898 -0
  56. package/dist/stream.js.map +1 -0
  57. package/dist/thinking-parser.d.ts +21 -0
  58. package/dist/thinking-parser.js +150 -0
  59. package/dist/thinking-parser.js.map +1 -0
  60. package/dist/token-type.d.ts +18 -0
  61. package/dist/token-type.js +45 -0
  62. package/dist/token-type.js.map +1 -0
  63. package/dist/tokenizer.d.ts +1 -0
  64. package/dist/tokenizer.js +19 -0
  65. package/dist/tokenizer.js.map +1 -0
  66. package/dist/transform.d.ts +111 -0
  67. package/dist/transform.js +268 -0
  68. package/dist/transform.js.map +1 -0
  69. package/dist/truncation.d.ts +3 -0
  70. package/dist/truncation.js +12 -0
  71. package/dist/truncation.js.map +1 -0
  72. package/dist/types.d.ts +159 -0
  73. package/dist/types.js +4 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/usage.d.ts +86 -0
  76. package/dist/usage.js +85 -0
  77. package/dist/usage.js.map +1 -0
  78. package/package.json +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { KiroBlockBuffer } from "./blocks.js";
2
+ export declare const THINKING_START_TAG = "<thinking>";
3
+ export declare const THINKING_END_TAG = "</thinking>";
4
+ export declare class ThinkingTagParser {
5
+ private readonly blocks;
6
+ private textBuffer;
7
+ private inThinking;
8
+ private thinkingBlockIndex;
9
+ private textBlockIndex;
10
+ private lastTextBlockIndex;
11
+ private activeEndTag;
12
+ constructor(blocks: KiroBlockBuffer);
13
+ processChunk(chunk: string): void;
14
+ finalize(): void;
15
+ getTextBlockIndex(): number | null;
16
+ private processBeforeThinking;
17
+ private processInsideThinking;
18
+ private emitText;
19
+ private ensureThinkingBlock;
20
+ private emitThinking;
21
+ }
@@ -0,0 +1,150 @@
1
+ // ABOUTME: Stateful parser for thinking tags in streaming content.
2
+ // ABOUTME: Separates thinking blocks from text, supporting multiple tag variants.
3
+ export const THINKING_START_TAG = "<thinking>";
4
+ export const THINKING_END_TAG = "</thinking>";
5
+ // All recognized thinking tag variants and their corresponding close tags
6
+ const THINKING_TAG_VARIANTS = [
7
+ { open: "<thinking>", close: "</thinking>" },
8
+ { open: "<think>", close: "</think>" },
9
+ { open: "<reasoning>", close: "</reasoning>" },
10
+ { open: "<thought>", close: "</thought>" },
11
+ ];
12
+ function getTrailingPossibleTagPrefixLength(text, tag) {
13
+ const maxPrefixLength = Math.min(text.length, tag.length - 1);
14
+ for (let len = maxPrefixLength; len > 0; len--) {
15
+ if (text.endsWith(tag.slice(0, len)))
16
+ return len;
17
+ }
18
+ return 0;
19
+ }
20
+ function getMaxTrailingPossibleTagPrefixLength(text, tags) {
21
+ let maxLength = 0;
22
+ for (const tag of tags) {
23
+ maxLength = Math.max(maxLength, getTrailingPossibleTagPrefixLength(text, tag));
24
+ }
25
+ return maxLength;
26
+ }
27
+ export class ThinkingTagParser {
28
+ blocks;
29
+ textBuffer = "";
30
+ inThinking = false;
31
+ thinkingBlockIndex = null;
32
+ textBlockIndex = null;
33
+ lastTextBlockIndex = null;
34
+ activeEndTag = THINKING_END_TAG;
35
+ constructor(blocks) {
36
+ this.blocks = blocks;
37
+ }
38
+ processChunk(chunk) {
39
+ this.textBuffer += chunk;
40
+ while (this.textBuffer.length > 0) {
41
+ const prevLength = this.textBuffer.length;
42
+ if (!this.inThinking) {
43
+ this.processBeforeThinking();
44
+ if (this.textBuffer.length === 0)
45
+ break;
46
+ }
47
+ if (this.inThinking) {
48
+ this.processInsideThinking();
49
+ if (this.textBuffer.length === 0)
50
+ break;
51
+ }
52
+ // No progress: the remainder is a held-back partial tag prefix.
53
+ if (this.textBuffer.length >= prevLength)
54
+ break;
55
+ }
56
+ }
57
+ finalize() {
58
+ if (this.textBuffer.length === 0)
59
+ return;
60
+ if (this.inThinking && this.thinkingBlockIndex !== null) {
61
+ this.blocks.appendThinking(this.thinkingBlockIndex, this.textBuffer);
62
+ this.blocks.endThinking(this.thinkingBlockIndex);
63
+ }
64
+ else {
65
+ this.emitText(this.textBuffer);
66
+ }
67
+ this.textBuffer = "";
68
+ }
69
+ getTextBlockIndex() {
70
+ return this.textBlockIndex ?? this.lastTextBlockIndex;
71
+ }
72
+ processBeforeThinking() {
73
+ let bestPos = -1;
74
+ let bestVariant = null;
75
+ for (const variant of THINKING_TAG_VARIANTS) {
76
+ const pos = this.textBuffer.indexOf(variant.open);
77
+ if (pos !== -1 && (bestPos === -1 || pos < bestPos)) {
78
+ bestPos = pos;
79
+ bestVariant = variant;
80
+ }
81
+ }
82
+ if (bestPos !== -1 && bestVariant) {
83
+ if (bestPos > 0)
84
+ this.emitText(this.textBuffer.slice(0, bestPos));
85
+ this.textBuffer = this.textBuffer.slice(bestPos + bestVariant.open.length);
86
+ this.activeEndTag = bestVariant.close;
87
+ this.inThinking = true;
88
+ return;
89
+ }
90
+ const trailingPrefixLength = getMaxTrailingPossibleTagPrefixLength(this.textBuffer, THINKING_TAG_VARIANTS.map((variant) => variant.open));
91
+ const safeLen = this.textBuffer.length - trailingPrefixLength;
92
+ if (safeLen > 0) {
93
+ this.emitText(this.textBuffer.slice(0, safeLen));
94
+ this.textBuffer = this.textBuffer.slice(safeLen);
95
+ }
96
+ }
97
+ processInsideThinking() {
98
+ const endPos = this.textBuffer.indexOf(this.activeEndTag);
99
+ if (endPos !== -1) {
100
+ if (endPos > 0)
101
+ this.emitThinking(this.textBuffer.slice(0, endPos));
102
+ const thinkingBlockIndex = this.ensureThinkingBlock();
103
+ this.blocks.endThinking(thinkingBlockIndex);
104
+ this.textBuffer = this.textBuffer.slice(endPos + this.activeEndTag.length);
105
+ this.inThinking = false;
106
+ // Reset so a later region in the same message opens its own thinking
107
+ // block instead of appending to this one.
108
+ this.thinkingBlockIndex = null;
109
+ this.activeEndTag = THINKING_END_TAG;
110
+ // Only advance the remembered index: back-to-back regions with no text
111
+ // between them would otherwise clobber a real index with null, and
112
+ // `getTextBlockIndex()` would report no text block to the stream.
113
+ if (this.textBlockIndex !== null)
114
+ this.lastTextBlockIndex = this.textBlockIndex;
115
+ this.textBlockIndex = null;
116
+ if (this.textBuffer.startsWith("\n\n"))
117
+ this.textBuffer = this.textBuffer.slice(2);
118
+ return;
119
+ }
120
+ const trailingPrefixLength = getTrailingPossibleTagPrefixLength(this.textBuffer, this.activeEndTag);
121
+ const safeLen = this.textBuffer.length - trailingPrefixLength;
122
+ if (safeLen > 0) {
123
+ this.emitThinking(this.textBuffer.slice(0, safeLen));
124
+ this.textBuffer = this.textBuffer.slice(safeLen);
125
+ }
126
+ }
127
+ emitText(text) {
128
+ if (!text)
129
+ return;
130
+ if (this.textBlockIndex === null)
131
+ this.textBlockIndex = this.blocks.openText();
132
+ this.blocks.appendText(this.textBlockIndex, text);
133
+ }
134
+ ensureThinkingBlock() {
135
+ if (this.thinkingBlockIndex !== null)
136
+ return this.thinkingBlockIndex;
137
+ // Always append, never splice: blocks keep wire order and an index names one
138
+ // block for the whole stream. Splicing ahead of earlier text would strand
139
+ // every index already emitted, and neither host has a reindex event to
140
+ // correct it. Presentation order is the renderer's job.
141
+ this.thinkingBlockIndex = this.blocks.openThinking();
142
+ return this.thinkingBlockIndex;
143
+ }
144
+ emitThinking(thinking) {
145
+ if (!thinking)
146
+ return;
147
+ this.blocks.appendThinking(this.ensureThinkingBlock(), thinking);
148
+ }
149
+ }
150
+ //# sourceMappingURL=thinking-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-parser.js","sourceRoot":"","sources":["../src/thinking-parser.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,kFAAkF;AAIlF,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE9C,0EAA0E;AAC1E,MAAM,qBAAqB,GAA2C;IACpE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;IACtC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAC9C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE;CAC3C,CAAC;AAEF,SAAS,kCAAkC,CAAC,IAAY,EAAE,GAAW;IACnE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,KAAK,IAAI,GAAG,GAAG,eAAe,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,qCAAqC,CAAC,IAAY,EAAE,IAAc;IACzE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,kCAAkC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,iBAAiB;IAQC;IAPrB,UAAU,GAAG,EAAE,CAAC;IAChB,UAAU,GAAG,KAAK,CAAC;IACnB,kBAAkB,GAAkB,IAAI,CAAC;IACzC,cAAc,GAAkB,IAAI,CAAC;IACrC,kBAAkB,GAAkB,IAAI,CAAC;IACzC,YAAY,GAAW,gBAAgB,CAAC;IAEhD,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAExD,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;YAC1C,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;YAC1C,CAAC;YACD,gEAAgE;YAChE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU;gBAAE,MAAM;QAClD,CAAC;IACH,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACzC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACxD,CAAC;IAEO,qBAAqB;QAC3B,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,WAAW,GAAkD,IAAI,CAAC;QACtE,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;gBACpD,OAAO,GAAG,GAAG,CAAC;gBACd,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,oBAAoB,GAAG,qCAAqC,CAChE,IAAI,CAAC,UAAU,EACf,qBAAqB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CACrD,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,qEAAqE;YACrE,0CAA0C;YAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC;YACrC,uEAAuE;YACvE,mEAAmE;YACnE,kEAAkE;YAClE,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;gBAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;YAChF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,MAAM,oBAAoB,GAAG,kCAAkC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACrE,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEO,YAAY,CAAC,QAAgB;QACnC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * True when the access token is an external IdP (enterprise OIDC) JWT.
3
+ *
4
+ * AWS SSO / Builder ID and Kiro desktop tokens are opaque strings, so a
5
+ * three-segment JWT carrying `aud: "api://kiro"` identifies the external IdP
6
+ * case without needing the auth method threaded through every call site.
7
+ */
8
+ export declare function isExternalIdpAccessToken(accessToken: string | undefined): boolean;
9
+ /**
10
+ * Extra headers Kiro's management and runtime APIs require for the given token.
11
+ *
12
+ * kiro-cli sends `tokentype: EXTERNAL_IDP` on every request made with an
13
+ * external IdP token (its `TokenTypeInterceptor`); without it both
14
+ * `management.*.kiro.dev` and `runtime.*.kiro.dev` answer 403 "Invalid token".
15
+ * Returns an empty object for AWS SSO and desktop tokens, which must not carry
16
+ * the header.
17
+ */
18
+ export declare function kiroTokenTypeHeaders(accessToken: string | undefined): Record<string, string>;
@@ -0,0 +1,45 @@
1
+ // ABOUTME: Derives the `tokentype` request header Kiro requires for external IdP bearer tokens.
2
+ // ABOUTME: Kiro rejects an external IdP access token with 403 unless the header is present.
3
+ /**
4
+ * Audience claim Kiro's external IdP integration issues tokens for. kiro-cli
5
+ * configures the customer's OIDC app with this audience, so it is the reliable
6
+ * signal that a bearer token came from an external IdP rather than AWS SSO.
7
+ */
8
+ const EXTERNAL_IDP_AUDIENCE = "api://kiro";
9
+ /**
10
+ * True when the access token is an external IdP (enterprise OIDC) JWT.
11
+ *
12
+ * AWS SSO / Builder ID and Kiro desktop tokens are opaque strings, so a
13
+ * three-segment JWT carrying `aud: "api://kiro"` identifies the external IdP
14
+ * case without needing the auth method threaded through every call site.
15
+ */
16
+ export function isExternalIdpAccessToken(accessToken) {
17
+ if (typeof accessToken !== "string")
18
+ return false;
19
+ const segments = accessToken.split(".");
20
+ if (segments.length !== 3)
21
+ return false;
22
+ const payloadSegment = segments[1];
23
+ if (!payloadSegment)
24
+ return false;
25
+ try {
26
+ const payload = JSON.parse(Buffer.from(payloadSegment.replace(/-/g, "+").replace(/_/g, "/"), "base64").toString("utf-8"));
27
+ return payload.aud === EXTERNAL_IDP_AUDIENCE;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ /**
34
+ * Extra headers Kiro's management and runtime APIs require for the given token.
35
+ *
36
+ * kiro-cli sends `tokentype: EXTERNAL_IDP` on every request made with an
37
+ * external IdP token (its `TokenTypeInterceptor`); without it both
38
+ * `management.*.kiro.dev` and `runtime.*.kiro.dev` answer 403 "Invalid token".
39
+ * Returns an empty object for AWS SSO and desktop tokens, which must not carry
40
+ * the header.
41
+ */
42
+ export function kiroTokenTypeHeaders(accessToken) {
43
+ return isExternalIdpAccessToken(accessToken) ? { tokentype: "EXTERNAL_IDP" } : {};
44
+ }
45
+ //# sourceMappingURL=token-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-type.js","sourceRoot":"","sources":["../src/token-type.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,4FAA4F;AAE5F;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAA+B;IACtE,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACzE,CAAC;QACvB,OAAO,OAAO,CAAC,GAAG,KAAK,qBAAqB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAA+B;IAClE,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function countTokens(text: string): number;
@@ -0,0 +1,19 @@
1
+ // ABOUTME: Token counting using js-tiktoken with lazy-loaded cl100k_base encoding.
2
+ // ABOUTME: Provides accurate token counts for Kiro API response content.
3
+ import { Tiktoken } from "js-tiktoken/lite";
4
+ import cl100kBase from "js-tiktoken/ranks/cl100k_base";
5
+ // Deliberately not `encodingForModel` from the package root: that entry point
6
+ // embeds every encoding's BPE ranks, which is 5.6 MB in a bundled extension.
7
+ // Only cl100k_base is ever used here — it is what `gpt-4` resolves to.
8
+ let encoder = null;
9
+ function getEncoder() {
10
+ if (!encoder)
11
+ encoder = new Tiktoken(cl100kBase);
12
+ return encoder;
13
+ }
14
+ export function countTokens(text) {
15
+ if (text.length === 0)
16
+ return 0;
17
+ return getEncoder().encode(text).length;
18
+ }
19
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,yEAAyE;AAEzE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAEvD,8EAA8E;AAC9E,6EAA6E;AAC7E,uEAAuE;AACvE,IAAI,OAAO,GAAoB,IAAI,CAAC;AAEpC,SAAS,UAAU;IACjB,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,111 @@
1
+ import type { KiroImageContent, KiroMessage, KiroTool } from "./types.js";
2
+ export interface KiroImage {
3
+ format: string;
4
+ source: {
5
+ bytes: string;
6
+ };
7
+ }
8
+ export interface KiroToolUse {
9
+ name: string;
10
+ toolUseId: string;
11
+ input: Record<string, unknown>;
12
+ }
13
+ export interface KiroToolResult {
14
+ content: Array<{
15
+ text: string;
16
+ }>;
17
+ status: "success" | "error";
18
+ toolUseId: string;
19
+ }
20
+ export interface KiroToolSpec {
21
+ toolSpecification: {
22
+ name: string;
23
+ description: string;
24
+ inputSchema: {
25
+ json: Record<string, unknown>;
26
+ };
27
+ };
28
+ }
29
+ export interface KiroUserInputMessage {
30
+ content: string;
31
+ modelId: string;
32
+ origin: "KIRO_CLI";
33
+ images?: KiroImage[];
34
+ userInputMessageContext?: {
35
+ toolResults?: KiroToolResult[];
36
+ tools?: KiroToolSpec[];
37
+ };
38
+ }
39
+ export interface KiroAssistantResponseMessage {
40
+ content: string;
41
+ toolUses?: KiroToolUse[];
42
+ }
43
+ export interface KiroHistoryEntry {
44
+ userInputMessage?: KiroUserInputMessage;
45
+ assistantResponseMessage?: KiroAssistantResponseMessage;
46
+ }
47
+ export declare const TOOL_RESULT_LIMIT = 250000;
48
+ /** Kiro's own requirement is content **or** tool results, not content
49
+ * unconditionally. First-party Kiro Agent states it as an explicit invariant
50
+ * — `NON_EMPTY_USER_MESSAGE`: "User messages must have either content or tool
51
+ * results" — and its validator implements `hasContent || hasToolResults`.
52
+ * It ships `content: ''` on synthesized and consolidated tool turns.
53
+ *
54
+ * A tool turn therefore needs no text: its payload is
55
+ * `userInputMessageContext.toolResults`.
56
+ *
57
+ * This placeholder remains for the case it was added for: a turn that reaches
58
+ * the request builder with neither text nor tool results — an image-only user
59
+ * message, or an empty-text user message. Send a neutral prompt there so the
60
+ * attachments still reach the model. Do not apply it to tool turns; that
61
+ * fabricates a user utterance the model reads as human. */
62
+ export declare const EMPTY_CONTENT_PLACEHOLDER = "Please proceed with the task.";
63
+ export declare function sanitizeSurrogates(text: string): string;
64
+ export declare function truncate(text: string, limit: number): string;
65
+ /**
66
+ * Preserve native Kiro tool IDs, but deterministically remap IDs from providers
67
+ * whose syntax Kiro rejects (for example OpenAI Responses' 83-character
68
+ * `call_…|fc_…` IDs). Tool uses and results are transformed independently, so
69
+ * the mapping must be stable rather than random.
70
+ */
71
+ export declare function toKiroToolUseId(toolUseId: string): string;
72
+ export declare function normalizeMessages(messages: KiroMessage[]): KiroMessage[];
73
+ /**
74
+ * Move each `toolResult` to sit immediately after the assistant turn that
75
+ * issued its `toolCall`, matching by id.
76
+ *
77
+ * Concurrent tool executions appending to one transcript can interleave, so a
78
+ * result arrives behind a LATER assistant turn than the one that called it:
79
+ *
80
+ * assistant(toolUses=[A]) / user(text) / assistant(toolUses=[B]) / toolResult(A)
81
+ *
82
+ * Bedrock requires the message after a tool use to carry that use's results,
83
+ * matched by id, so this shape is rejected with `400 TOOL_USE_RESULT_MISMATCH`.
84
+ * Without this pass the downstream repair still makes the request sendable, but
85
+ * only by discarding `A`'s real output: `sanitizeHistory` tests pairing
86
+ * POSITIONALLY and drops `assistant(toolUses=[A])` because its next entry is
87
+ * the interjection, after which `A`'s result answers nothing and is stripped.
88
+ *
89
+ * This is a pure reorder. Nothing is fabricated, dropped, or rewritten, and a
90
+ * result whose `toolCall` appears nowhere is left in place for
91
+ * `injectSyntheticToolCalls` to handle. A well-formed transcript — where every
92
+ * result already follows its call — is returned unchanged.
93
+ *
94
+ * The cost is wire chronology: a user turn that interrupted between the call
95
+ * and its result now appears AFTER that result. That misplaces when the user
96
+ * spoke, which is a fidelity loss, but it is not fabrication and it is strictly
97
+ * less lossy than discarding real tool output the model is waiting on.
98
+ */
99
+ export declare function relocateDisplacedToolResults(messages: KiroMessage[]): KiroMessage[];
100
+ export declare function extractImages(msg: KiroMessage): KiroImageContent[];
101
+ export declare function getContentText(msg: KiroMessage): string;
102
+ export declare function convertToolsToKiro(tools: KiroTool[]): KiroToolSpec[];
103
+ export declare function convertImagesToKiro(images: Array<{
104
+ mimeType: string;
105
+ data: string;
106
+ }>): KiroImage[];
107
+ export declare function buildHistory(messages: KiroMessage[], modelId: string, systemPrompt?: string): {
108
+ history: KiroHistoryEntry[];
109
+ systemPrepended: boolean;
110
+ currentMsgStartIdx: number;
111
+ };