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.
- package/LICENSE +22 -0
- package/README.md +51 -0
- package/dist/blocks.d.ts +32 -0
- package/dist/blocks.js +83 -0
- package/dist/blocks.js.map +1 -0
- package/dist/bracket-tool-parser.d.ts +11 -0
- package/dist/bracket-tool-parser.js +78 -0
- package/dist/bracket-tool-parser.js.map +1 -0
- package/dist/cost.d.ts +3 -0
- package/dist/cost.js +10 -0
- package/dist/cost.js.map +1 -0
- package/dist/debug.d.ts +6 -0
- package/dist/debug.js +63 -0
- package/dist/debug.js.map +1 -0
- package/dist/effort.d.ts +36 -0
- package/dist/effort.js +138 -0
- package/dist/effort.js.map +1 -0
- package/dist/endpoints.d.ts +8 -0
- package/dist/endpoints.js +43 -0
- package/dist/endpoints.js.map +1 -0
- package/dist/event-parser.d.ts +49 -0
- package/dist/event-parser.js +56 -0
- package/dist/event-parser.js.map +1 -0
- package/dist/history-validator.d.ts +91 -0
- package/dist/history-validator.js +370 -0
- package/dist/history-validator.js.map +1 -0
- package/dist/history.d.ts +21 -0
- package/dist/history.js +130 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/invoke-tool-parser.d.ts +16 -0
- package/dist/invoke-tool-parser.js +152 -0
- package/dist/invoke-tool-parser.js.map +1 -0
- package/dist/kiro-cli.d.ts +31 -0
- package/dist/kiro-cli.js +308 -0
- package/dist/kiro-cli.js.map +1 -0
- package/dist/kiro-ide.d.ts +12 -0
- package/dist/kiro-ide.js +74 -0
- package/dist/kiro-ide.js.map +1 -0
- package/dist/management.d.ts +34 -0
- package/dist/management.js +226 -0
- package/dist/management.js.map +1 -0
- package/dist/models.d.ts +58 -0
- package/dist/models.js +462 -0
- package/dist/models.js.map +1 -0
- package/dist/oauth.d.ts +50 -0
- package/dist/oauth.js +295 -0
- package/dist/oauth.js.map +1 -0
- package/dist/retry.d.ts +74 -0
- package/dist/retry.js +156 -0
- package/dist/retry.js.map +1 -0
- package/dist/stream.d.ts +36 -0
- package/dist/stream.js +898 -0
- package/dist/stream.js.map +1 -0
- package/dist/thinking-parser.d.ts +21 -0
- package/dist/thinking-parser.js +150 -0
- package/dist/thinking-parser.js.map +1 -0
- package/dist/token-type.d.ts +18 -0
- package/dist/token-type.js +45 -0
- package/dist/token-type.js.map +1 -0
- package/dist/tokenizer.d.ts +1 -0
- package/dist/tokenizer.js +19 -0
- package/dist/tokenizer.js.map +1 -0
- package/dist/transform.d.ts +111 -0
- package/dist/transform.js +268 -0
- package/dist/transform.js.map +1 -0
- package/dist/truncation.d.ts +3 -0
- package/dist/truncation.js +12 -0
- package/dist/truncation.js.map +1 -0
- package/dist/types.d.ts +159 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/usage.d.ts +86 -0
- package/dist/usage.js +85 -0
- package/dist/usage.js.map +1 -0
- 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":"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"}
|
|
@@ -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
|
+
};
|