@arvoretech/pi-kiro-provider 0.8.1

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 (74) hide show
  1. package/README.md +121 -0
  2. package/dist/bracket-tool-parser.d.ts +12 -0
  3. package/dist/bracket-tool-parser.d.ts.map +1 -0
  4. package/dist/bracket-tool-parser.js +78 -0
  5. package/dist/bracket-tool-parser.js.map +1 -0
  6. package/dist/debug.d.ts +3 -0
  7. package/dist/debug.d.ts.map +1 -0
  8. package/dist/debug.js +49 -0
  9. package/dist/debug.js.map +1 -0
  10. package/dist/event-parser.d.ts +44 -0
  11. package/dist/event-parser.d.ts.map +1 -0
  12. package/dist/event-parser.js +66 -0
  13. package/dist/event-parser.js.map +1 -0
  14. package/dist/history.d.ts +13 -0
  15. package/dist/history.d.ts.map +1 -0
  16. package/dist/history.js +121 -0
  17. package/dist/history.js.map +1 -0
  18. package/dist/index.d.ts +6 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +44 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/kiro-cli.d.ts +32 -0
  23. package/dist/kiro-cli.d.ts.map +1 -0
  24. package/dist/kiro-cli.js +271 -0
  25. package/dist/kiro-cli.js.map +1 -0
  26. package/dist/kiro-ide.d.ts +13 -0
  27. package/dist/kiro-ide.d.ts.map +1 -0
  28. package/dist/kiro-ide.js +74 -0
  29. package/dist/kiro-ide.js.map +1 -0
  30. package/dist/login-ui.d.ts +18 -0
  31. package/dist/login-ui.d.ts.map +1 -0
  32. package/dist/login-ui.js +124 -0
  33. package/dist/login-ui.js.map +1 -0
  34. package/dist/login.d.ts +16 -0
  35. package/dist/login.d.ts.map +1 -0
  36. package/dist/login.js +217 -0
  37. package/dist/login.js.map +1 -0
  38. package/dist/models.d.ts +72 -0
  39. package/dist/models.d.ts.map +1 -0
  40. package/dist/models.js +461 -0
  41. package/dist/models.js.map +1 -0
  42. package/dist/oauth.d.ts +30 -0
  43. package/dist/oauth.d.ts.map +1 -0
  44. package/dist/oauth.js +226 -0
  45. package/dist/oauth.js.map +1 -0
  46. package/dist/retry.d.ts +21 -0
  47. package/dist/retry.d.ts.map +1 -0
  48. package/dist/retry.js +51 -0
  49. package/dist/retry.js.map +1 -0
  50. package/dist/stream.d.ts +5 -0
  51. package/dist/stream.d.ts.map +1 -0
  52. package/dist/stream.js +858 -0
  53. package/dist/stream.js.map +1 -0
  54. package/dist/thinking-parser.d.ts +24 -0
  55. package/dist/thinking-parser.d.ts.map +1 -0
  56. package/dist/thinking-parser.js +205 -0
  57. package/dist/thinking-parser.js.map +1 -0
  58. package/dist/tokenizer.d.ts +2 -0
  59. package/dist/tokenizer.d.ts.map +1 -0
  60. package/dist/tokenizer.js +16 -0
  61. package/dist/tokenizer.js.map +1 -0
  62. package/dist/transform.d.ts +63 -0
  63. package/dist/transform.d.ts.map +1 -0
  64. package/dist/transform.js +200 -0
  65. package/dist/transform.js.map +1 -0
  66. package/dist/truncation.d.ts +4 -0
  67. package/dist/truncation.d.ts.map +1 -0
  68. package/dist/truncation.js +13 -0
  69. package/dist/truncation.js.map +1 -0
  70. package/dist/usage.d.ts +90 -0
  71. package/dist/usage.d.ts.map +1 -0
  72. package/dist/usage.js +169 -0
  73. package/dist/usage.js.map +1 -0
  74. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { AssistantMessage, AssistantMessageEventStream } from "@earendil-works/pi-ai";
2
+ export declare const THINKING_START_TAG = "<thinking>";
3
+ export declare const THINKING_END_TAG = "</thinking>";
4
+ export declare class ThinkingTagParser {
5
+ private output;
6
+ private stream;
7
+ private textBuffer;
8
+ private inThinking;
9
+ private thinkingExtracted;
10
+ private thinkingBlockIndex;
11
+ private textBlockIndex;
12
+ private lastTextBlockIndex;
13
+ private activeEndTag;
14
+ constructor(output: AssistantMessage, stream: AssistantMessageEventStream);
15
+ processChunk(chunk: string): void;
16
+ finalize(): void;
17
+ getTextBlockIndex(): number | null;
18
+ private processBeforeThinking;
19
+ private processInsideThinking;
20
+ private processAfterThinking;
21
+ private emitText;
22
+ private emitThinking;
23
+ }
24
+ //# sourceMappingURL=thinking-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-parser.d.ts","sourceRoot":"","sources":["../src/thinking-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,gBAAgB,EAChB,2BAA2B,EAG3B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAgC9C,qBAAa,iBAAiB;IAU5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAVf,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAA4B;gBAGvC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,2BAA2B;IAG5C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoBjC,QAAQ,IAAI,IAAI;IAyBhB,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,OAAO,CAAC,qBAAqB;IA+B7B,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,YAAY;CAkCpB"}
@@ -0,0 +1,205 @@
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
+ output;
29
+ stream;
30
+ textBuffer = "";
31
+ inThinking = false;
32
+ thinkingExtracted = false;
33
+ thinkingBlockIndex = null;
34
+ textBlockIndex = null;
35
+ lastTextBlockIndex = null;
36
+ activeEndTag = THINKING_END_TAG;
37
+ constructor(output, stream) {
38
+ this.output = output;
39
+ this.stream = stream;
40
+ }
41
+ processChunk(chunk) {
42
+ this.textBuffer += chunk;
43
+ while (this.textBuffer.length > 0) {
44
+ const prevLength = this.textBuffer.length;
45
+ if (!this.inThinking && !this.thinkingExtracted) {
46
+ this.processBeforeThinking();
47
+ if (this.textBuffer.length === 0)
48
+ break;
49
+ }
50
+ if (this.inThinking) {
51
+ this.processInsideThinking();
52
+ if (this.textBuffer.length === 0)
53
+ break;
54
+ }
55
+ if (this.thinkingExtracted) {
56
+ this.processAfterThinking();
57
+ break;
58
+ }
59
+ if (this.textBuffer.length >= prevLength)
60
+ break;
61
+ }
62
+ }
63
+ finalize() {
64
+ if (this.textBuffer.length === 0)
65
+ return;
66
+ if (this.inThinking && this.thinkingBlockIndex !== null) {
67
+ const block = this.output.content[this.thinkingBlockIndex];
68
+ block.thinking += this.textBuffer;
69
+ this.stream.push({
70
+ type: "thinking_delta",
71
+ contentIndex: this.thinkingBlockIndex,
72
+ delta: this.textBuffer,
73
+ partial: this.output,
74
+ });
75
+ this.stream.push({
76
+ type: "thinking_end",
77
+ contentIndex: this.thinkingBlockIndex,
78
+ content: block.thinking,
79
+ partial: this.output,
80
+ });
81
+ }
82
+ else {
83
+ this.emitText(this.textBuffer);
84
+ }
85
+ this.textBuffer = "";
86
+ }
87
+ getTextBlockIndex() {
88
+ return this.textBlockIndex ?? this.lastTextBlockIndex;
89
+ }
90
+ processBeforeThinking() {
91
+ let bestPos = -1;
92
+ let bestVariant = null;
93
+ for (const variant of THINKING_TAG_VARIANTS) {
94
+ const pos = this.textBuffer.indexOf(variant.open);
95
+ if (pos !== -1 && (bestPos === -1 || pos < bestPos)) {
96
+ bestPos = pos;
97
+ bestVariant = variant;
98
+ }
99
+ }
100
+ if (bestPos !== -1 && bestVariant) {
101
+ if (bestPos > 0)
102
+ this.emitText(this.textBuffer.slice(0, bestPos));
103
+ this.textBuffer = this.textBuffer.slice(bestPos + bestVariant.open.length);
104
+ this.activeEndTag = bestVariant.close;
105
+ this.inThinking = true;
106
+ return;
107
+ }
108
+ const trailingPrefixLength = getMaxTrailingPossibleTagPrefixLength(this.textBuffer, THINKING_TAG_VARIANTS.map((variant) => variant.open));
109
+ const safeLen = this.textBuffer.length - trailingPrefixLength;
110
+ if (safeLen > 0) {
111
+ this.emitText(this.textBuffer.slice(0, safeLen));
112
+ this.textBuffer = this.textBuffer.slice(safeLen);
113
+ }
114
+ }
115
+ processInsideThinking() {
116
+ const endPos = this.textBuffer.indexOf(this.activeEndTag);
117
+ if (endPos !== -1) {
118
+ if (endPos > 0)
119
+ this.emitThinking(this.textBuffer.slice(0, endPos));
120
+ if (this.thinkingBlockIndex !== null) {
121
+ const block = this.output.content[this.thinkingBlockIndex];
122
+ this.stream.push({
123
+ type: "thinking_end",
124
+ contentIndex: this.thinkingBlockIndex,
125
+ content: block.thinking,
126
+ partial: this.output,
127
+ });
128
+ }
129
+ this.textBuffer = this.textBuffer.slice(endPos + this.activeEndTag.length);
130
+ this.inThinking = false;
131
+ this.thinkingExtracted = true;
132
+ this.lastTextBlockIndex = this.textBlockIndex;
133
+ this.textBlockIndex = null;
134
+ if (this.textBuffer.startsWith("\n\n"))
135
+ this.textBuffer = this.textBuffer.slice(2);
136
+ return;
137
+ }
138
+ const trailingPrefixLength = getTrailingPossibleTagPrefixLength(this.textBuffer, this.activeEndTag);
139
+ const safeLen = this.textBuffer.length - trailingPrefixLength;
140
+ if (safeLen > 0) {
141
+ this.emitThinking(this.textBuffer.slice(0, safeLen));
142
+ this.textBuffer = this.textBuffer.slice(safeLen);
143
+ }
144
+ }
145
+ processAfterThinking() {
146
+ this.emitText(this.textBuffer);
147
+ this.textBuffer = "";
148
+ }
149
+ emitText(text) {
150
+ if (!text)
151
+ return;
152
+ if (this.textBlockIndex === null) {
153
+ this.textBlockIndex = this.output.content.length;
154
+ this.output.content.push({ type: "text", text: "" });
155
+ this.stream.push({
156
+ type: "text_start",
157
+ contentIndex: this.textBlockIndex,
158
+ partial: this.output,
159
+ });
160
+ }
161
+ const block = this.output.content[this.textBlockIndex];
162
+ block.text += text;
163
+ this.stream.push({
164
+ type: "text_delta",
165
+ contentIndex: this.textBlockIndex,
166
+ delta: text,
167
+ partial: this.output,
168
+ });
169
+ }
170
+ emitThinking(thinking) {
171
+ if (!thinking)
172
+ return;
173
+ if (this.thinkingBlockIndex === null) {
174
+ if (this.textBlockIndex !== null) {
175
+ // Thinking arrived after text was already emitted (Kiro API sends
176
+ // text before thinking content). Insert the thinking block before
177
+ // the text block so the content array order is thinking → text.
178
+ this.thinkingBlockIndex = this.textBlockIndex;
179
+ this.output.content.splice(this.thinkingBlockIndex, 0, {
180
+ type: "thinking",
181
+ thinking: "",
182
+ });
183
+ this.textBlockIndex = this.textBlockIndex + 1;
184
+ }
185
+ else {
186
+ this.thinkingBlockIndex = this.output.content.length;
187
+ this.output.content.push({ type: "thinking", thinking: "" });
188
+ }
189
+ this.stream.push({
190
+ type: "thinking_start",
191
+ contentIndex: this.thinkingBlockIndex,
192
+ partial: this.output,
193
+ });
194
+ }
195
+ const block = this.output.content[this.thinkingBlockIndex];
196
+ block.thinking += thinking;
197
+ this.stream.push({
198
+ type: "thinking_delta",
199
+ contentIndex: this.thinkingBlockIndex,
200
+ delta: thinking,
201
+ partial: this.output,
202
+ });
203
+ }
204
+ }
205
+ //# sourceMappingURL=thinking-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-parser.js","sourceRoot":"","sources":["../src/thinking-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function countTokens(text: string): number;
2
+ //# sourceMappingURL=tokenizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AAcA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhD"}
@@ -0,0 +1,16 @@
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 { encodingForModel } from "js-tiktoken";
4
+ let encoder = null;
5
+ function getEncoder() {
6
+ if (!encoder) {
7
+ encoder = encodingForModel("gpt-4");
8
+ }
9
+ return encoder;
10
+ }
11
+ export function countTokens(text) {
12
+ if (text.length === 0)
13
+ return 0;
14
+ return getEncoder().encode(text).length;
15
+ }
16
+ //# 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,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,IAAI,OAAO,GAA+C,IAAI,CAAC;AAE/D,SAAS,UAAU;IAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACzC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { ImageContent, Message, Tool } from "@earendil-works/pi-ai";
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
+ export declare function sanitizeSurrogates(text: string): string;
49
+ export declare function truncate(text: string, limit: number): string;
50
+ export declare function normalizeMessages(messages: Message[]): Message[];
51
+ export declare function extractImages(msg: Message): ImageContent[];
52
+ export declare function getContentText(msg: Message): string;
53
+ export declare function convertToolsToKiro(tools: Tool[]): KiroToolSpec[];
54
+ export declare function convertImagesToKiro(images: Array<{
55
+ mimeType: string;
56
+ data: string;
57
+ }>): KiroImage[];
58
+ export declare function buildHistory(messages: Message[], modelId: string, systemPrompt?: string): {
59
+ history: KiroHistoryEntry[];
60
+ systemPrepended: boolean;
61
+ currentMsgStartIdx: number;
62
+ };
63
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,YAAY,EACZ,OAAO,EAGP,IAAI,EAGJ,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AACD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AACD,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,YAAY;IAC5B,iBAAiB,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;KAC/C,CAAC;CACF;AACD,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,uBAAuB,CAAC,EAAE;QACzB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;QAC/B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;KACvB,CAAC;CACF;AACD,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AACD,MAAM,WAAW,gBAAgB;IAChC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,wBAAwB,CAAC,EAAE,4BAA4B,CAAC;CACxD;AAED,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAMhE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,CAI1D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAcnD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAQhE;AAED,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,SAAS,EAAE,CAKb;AAED,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACnB;IACF,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;CAC3B,CA6IA"}
@@ -0,0 +1,200 @@
1
+ // Feature 5: Message Transformation
2
+ export const TOOL_RESULT_LIMIT = 250000;
3
+ export function sanitizeSurrogates(text) {
4
+ // Replace unpaired high surrogates (0xD800-0xDBFF not followed by low surrogate)
5
+ // Replace unpaired low surrogates (0xDC00-0xDFFF not preceded by high surrogate)
6
+ // Properly paired surrogates (e.g. emoji like 🙈) are preserved.
7
+ return text.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, "");
8
+ }
9
+ export function truncate(text, limit) {
10
+ if (text.length <= limit)
11
+ return text;
12
+ const half = Math.floor(limit / 2);
13
+ return `${text.substring(0, half)}\n... [TRUNCATED] ...\n${text.substring(text.length - half)}`;
14
+ }
15
+ export function normalizeMessages(messages) {
16
+ return messages.filter((msg) => {
17
+ if (msg.role !== "assistant")
18
+ return true;
19
+ const am = msg;
20
+ return am.stopReason !== "error" && am.stopReason !== "aborted";
21
+ });
22
+ }
23
+ export function extractImages(msg) {
24
+ if (msg.role === "toolResult" || typeof msg.content === "string")
25
+ return [];
26
+ if (!Array.isArray(msg.content))
27
+ return [];
28
+ return msg.content.filter((c) => c.type === "image");
29
+ }
30
+ export function getContentText(msg) {
31
+ if (msg.role === "toolResult")
32
+ return msg.content.map((c) => (c.type === "text" ? c.text : "")).join("");
33
+ if (typeof msg.content === "string")
34
+ return msg.content;
35
+ if (Array.isArray(msg.content)) {
36
+ return msg.content
37
+ .map((c) => {
38
+ if (c.type === "text")
39
+ return c.text;
40
+ if (c.type === "thinking")
41
+ return c.thinking;
42
+ return "";
43
+ })
44
+ .join("");
45
+ }
46
+ return "";
47
+ }
48
+ export function convertToolsToKiro(tools) {
49
+ return tools.map((tool) => ({
50
+ toolSpecification: {
51
+ name: tool.name,
52
+ description: tool.description,
53
+ inputSchema: { json: tool.parameters },
54
+ },
55
+ }));
56
+ }
57
+ export function convertImagesToKiro(images) {
58
+ return images.map((img) => ({
59
+ format: img.mimeType.split("/")[1] || "png",
60
+ source: { bytes: img.data },
61
+ }));
62
+ }
63
+ export function buildHistory(messages, modelId, systemPrompt) {
64
+ const history = [];
65
+ let systemPrepended = false;
66
+ const toolResultLimit = TOOL_RESULT_LIMIT;
67
+ let currentMsgStartIdx = messages.length - 1;
68
+ while (currentMsgStartIdx > 0 &&
69
+ messages[currentMsgStartIdx].role === "toolResult")
70
+ currentMsgStartIdx--;
71
+ if (currentMsgStartIdx >= 0 &&
72
+ messages[currentMsgStartIdx].role === "assistant") {
73
+ const am = messages[currentMsgStartIdx];
74
+ if (!Array.isArray(am.content) ||
75
+ !am.content.some((b) => b.type === "toolCall"))
76
+ currentMsgStartIdx++;
77
+ }
78
+ const historyMessages = messages.slice(0, currentMsgStartIdx);
79
+ for (let i = 0; i < historyMessages.length; i++) {
80
+ const msg = historyMessages[i];
81
+ if (msg.role === "user") {
82
+ let content = typeof msg.content === "string" ? msg.content : getContentText(msg);
83
+ if (systemPrompt && !systemPrepended) {
84
+ content = `${systemPrompt}\n\n${content}`;
85
+ systemPrepended = true;
86
+ }
87
+ const images = extractImages(msg);
88
+ const uim = {
89
+ content: sanitizeSurrogates(content),
90
+ modelId,
91
+ origin: "KIRO_CLI",
92
+ ...(images.length > 0 ? { images: convertImagesToKiro(images) } : {}),
93
+ };
94
+ const lastEntryForUim = history[history.length - 1];
95
+ const prevUim = lastEntryForUim?.userInputMessage;
96
+ if (prevUim) {
97
+ // Merge into previous user message to maintain alternation without synthetic padding
98
+ prevUim.content += `\n\n${uim.content}`;
99
+ if (uim.images)
100
+ prevUim.images = [...(prevUim.images || []), ...uim.images];
101
+ }
102
+ else {
103
+ history.push({ userInputMessage: uim });
104
+ }
105
+ }
106
+ else if (msg.role === "assistant") {
107
+ let armContent = "";
108
+ const armToolUses = [];
109
+ if (Array.isArray(msg.content)) {
110
+ for (const block of msg.content) {
111
+ if (block.type === "text")
112
+ armContent += block.text;
113
+ else if (block.type === "thinking")
114
+ armContent = `<thinking>${block.thinking}</thinking>\n\n${armContent}`;
115
+ else if (block.type === "toolCall") {
116
+ const tc = block;
117
+ armToolUses.push({
118
+ name: tc.name,
119
+ toolUseId: tc.id,
120
+ input: typeof tc.arguments === "string"
121
+ ? JSON.parse(tc.arguments)
122
+ : tc.arguments,
123
+ });
124
+ }
125
+ }
126
+ }
127
+ if (!armContent && armToolUses.length === 0)
128
+ continue;
129
+ history.push({
130
+ assistantResponseMessage: {
131
+ content: armContent,
132
+ ...(armToolUses.length > 0 ? { toolUses: armToolUses } : {}),
133
+ },
134
+ });
135
+ }
136
+ else if (msg.role === "toolResult") {
137
+ const trMsg = msg;
138
+ const toolResults = [
139
+ {
140
+ content: [{ text: truncate(getContentText(msg), toolResultLimit) }],
141
+ status: trMsg.isError ? "error" : "success",
142
+ toolUseId: trMsg.toolCallId,
143
+ },
144
+ ];
145
+ const trImages = [];
146
+ if (Array.isArray(trMsg.content))
147
+ for (const c of trMsg.content)
148
+ if (c.type === "image")
149
+ trImages.push(c);
150
+ let j = i + 1;
151
+ while (j < historyMessages.length &&
152
+ historyMessages[j].role === "toolResult") {
153
+ const next = historyMessages[j];
154
+ toolResults.push({
155
+ content: [{ text: truncate(getContentText(next), toolResultLimit) }],
156
+ status: next.isError ? "error" : "success",
157
+ toolUseId: next.toolCallId,
158
+ });
159
+ if (Array.isArray(next.content))
160
+ for (const c of next.content)
161
+ if (c.type === "image")
162
+ trImages.push(c);
163
+ j++;
164
+ }
165
+ i = j - 1;
166
+ const lastEntryForTr = history[history.length - 1];
167
+ const prevTr = lastEntryForTr?.userInputMessage;
168
+ if (prevTr) {
169
+ // Merge tool results into previous user message to maintain alternation without synthetic padding
170
+ prevTr.content += "\n\nTool results provided.";
171
+ if (trImages.length > 0)
172
+ prevTr.images = [
173
+ ...(prevTr.images || []),
174
+ ...convertImagesToKiro(trImages),
175
+ ];
176
+ if (!prevTr.userInputMessageContext)
177
+ prevTr.userInputMessageContext = {};
178
+ prevTr.userInputMessageContext.toolResults = [
179
+ ...(prevTr.userInputMessageContext.toolResults || []),
180
+ ...toolResults,
181
+ ];
182
+ }
183
+ else {
184
+ history.push({
185
+ userInputMessage: {
186
+ content: "Tool results provided.",
187
+ modelId,
188
+ origin: "KIRO_CLI",
189
+ ...(trImages.length > 0
190
+ ? { images: convertImagesToKiro(trImages) }
191
+ : {}),
192
+ userInputMessageContext: { toolResults },
193
+ },
194
+ });
195
+ }
196
+ }
197
+ }
198
+ return { history, systemPrepended, currentMsgStartIdx };
199
+ }
200
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAqDpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC9C,iFAAiF;IACjF,iFAAiF;IACjF,iEAAiE;IACjE,OAAO,IAAI,CAAC,OAAO,CAClB,yEAAyE,EACzE,EAAE,CACF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAa;IACnD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAmB;IACpD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,EAAE,GAAG,GAAuB,CAAC;QACnC,OAAO,EAAE,CAAC,UAAU,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAY;IACzC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;QAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC,OAAO;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAQ,CAAiB,CAAC,IAAI,CAAC;YACtD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAQ,CAAqB,CAAC,QAAQ,CAAC;YAClE,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,iBAAiB,EAAE;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAqC,EAAE;SACjE;KACD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,MAAiD;IAEjD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;QAC3C,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE;KAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,QAAmB,EACnB,OAAe,EACf,YAAqB;IAMrB,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,eAAe,GAAG,iBAAiB,CAAC;IAE1C,IAAI,kBAAkB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7C,OACC,kBAAkB,GAAG,CAAC;QACtB,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,KAAK,YAAY;QAElD,kBAAkB,EAAE,CAAC;IACtB,IACC,kBAAkB,IAAI,CAAC;QACvB,QAAQ,CAAC,kBAAkB,CAAC,CAAC,IAAI,KAAK,WAAW,EAChD,CAAC;QACF,MAAM,EAAE,GAAG,QAAQ,CAAC,kBAAkB,CAAqB,CAAC;QAC5D,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;YAC1B,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YAE9C,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAE9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,OAAO,GACV,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtC,OAAO,GAAG,GAAG,YAAY,OAAO,OAAO,EAAE,CAAC;gBAC1C,eAAe,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,GAAG,GAAyB;gBACjC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC;gBACpC,OAAO;gBACP,MAAM,EAAE,UAAU;gBAClB,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC;YACF,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,eAAe,EAAE,gBAAgB,CAAC;YAClD,IAAI,OAAO,EAAE,CAAC;gBACb,qFAAqF;gBACrF,OAAO,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,GAAG,CAAC,MAAM;oBACb,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,MAAM,WAAW,GAAkB,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;wBAAE,UAAU,IAAK,KAAqB,CAAC,IAAI,CAAC;yBAChE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;wBACjC,UAAU,GAAG,aAAc,KAAyB,CAAC,QAAQ,kBAAkB,UAAU,EAAE,CAAC;yBACxF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACpC,MAAM,EAAE,GAAG,KAAiB,CAAC;wBAC7B,WAAW,CAAC,IAAI,CAAC;4BAChB,IAAI,EAAE,EAAE,CAAC,IAAI;4BACb,SAAS,EAAE,EAAE,CAAC,EAAE;4BAChB,KAAK,EACJ,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ;gCAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC;gCAC1B,CAAC,CAAC,EAAE,CAAC,SAAS;yBAChB,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACtD,OAAO,CAAC,IAAI,CAAC;gBACZ,wBAAwB,EAAE;oBACzB,OAAO,EAAE,UAAU;oBACnB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D;aACD,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,GAAwB,CAAC;YACvC,MAAM,WAAW,GAAqB;gBACrC;oBACC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;oBACnE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBAC3C,SAAS,EAAE,KAAK,CAAC,UAAU;iBAC3B;aACD,CAAC;YACF,MAAM,QAAQ,GAAmB,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO;oBAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;wBAAE,QAAQ,CAAC,IAAI,CAAC,CAAiB,CAAC,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OACC,CAAC,GAAG,eAAe,CAAC,MAAM;gBAC1B,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,EACvC,CAAC;gBACF,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAsB,CAAC;gBACrD,WAAW,CAAC,IAAI,CAAC;oBAChB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;oBACpE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBAC1C,SAAS,EAAE,IAAI,CAAC,UAAU;iBAC1B,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO;wBAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;4BAAE,QAAQ,CAAC,IAAI,CAAC,CAAiB,CAAC,CAAC;gBAC3D,CAAC,EAAE,CAAC;YACL,CAAC;YACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACV,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,cAAc,EAAE,gBAAgB,CAAC;YAChD,IAAI,MAAM,EAAE,CAAC;gBACZ,kGAAkG;gBAClG,MAAM,CAAC,OAAO,IAAI,4BAA4B,CAAC;gBAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACtB,MAAM,CAAC,MAAM,GAAG;wBACf,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;wBACxB,GAAG,mBAAmB,CAAC,QAAQ,CAAC;qBAChC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,uBAAuB;oBAClC,MAAM,CAAC,uBAAuB,GAAG,EAAE,CAAC;gBACrC,MAAM,CAAC,uBAAuB,CAAC,WAAW,GAAG;oBAC5C,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,IAAI,EAAE,CAAC;oBACrD,GAAG,WAAW;iBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC;oBACZ,gBAAgB,EAAE;wBACjB,OAAO,EAAE,wBAAwB;wBACjC,OAAO;wBACP,MAAM,EAAE,UAAU;wBAClB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;4BACtB,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE;4BAC3C,CAAC,CAAC,EAAE,CAAC;wBACN,uBAAuB,EAAE,EAAE,WAAW,EAAE;qBACxC;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Message } from "@earendil-works/pi-ai";
2
+ export declare const TRUNCATION_NOTICE = "[NOTE: Your previous response was cut off due to length limits. Please continue from where you left off.]";
3
+ export declare function wasPreviousResponseTruncated(messages: Message[]): boolean;
4
+ //# sourceMappingURL=truncation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncation.d.ts","sourceRoot":"","sources":["../src/truncation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEvE,eAAO,MAAM,iBAAiB,8GAC8E,CAAC;AAE7G,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAQzE"}
@@ -0,0 +1,13 @@
1
+ // ABOUTME: Truncation detection and recovery notice for interrupted Kiro responses.
2
+ // ABOUTME: Detects when the previous assistant response was cut off and injects a continuation notice.
3
+ export const TRUNCATION_NOTICE = "[NOTE: Your previous response was cut off due to length limits. Please continue from where you left off.]";
4
+ export function wasPreviousResponseTruncated(messages) {
5
+ // Find the most recent assistant message
6
+ for (let i = messages.length - 1; i >= 0; i--) {
7
+ if (messages[i].role === "assistant") {
8
+ return messages[i].stopReason === "length";
9
+ }
10
+ }
11
+ return false;
12
+ }
13
+ //# sourceMappingURL=truncation.js.map