@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
package/dist/login.js ADDED
@@ -0,0 +1,217 @@
1
+ // Feature 10: Interactive Login — device code flow fallback
2
+ //
3
+ // Reached when no existing credentials are found (no Kiro IDE, no kiro-cli).
4
+ // Matches the four options shown on app.kiro.dev/signin:
5
+ // Builder ID, Your organization (IAM IdC), Google, GitHub
6
+ //
7
+ // Primary path: native TUI component (login-ui.ts) via ctx.ui.custom().
8
+ // Uses zero onPrompt calls — SelectList for method, Input for IdC URL.
9
+ // Fallback path: single onPrompt call when ctx is not yet available
10
+ // (e.g. first run before session_start fires).
11
+ //
12
+ // For IAM Identity Center, the SSO region is auto-detected by probing
13
+ // common AWS OIDC endpoints. Inference/API region is derived from SSO
14
+ // region automatically via resolveApiRegion() in models.ts.
15
+ import { execFileSync } from "node:child_process";
16
+ import { showLoginUI } from "./login-ui.js";
17
+ import { BUILDER_ID_START_URL, SSO_SCOPES, } from "./oauth.js";
18
+ function getPrompt(callbacks) {
19
+ return callbacks.onPrompt;
20
+ }
21
+ function getProgress(callbacks) {
22
+ return callbacks
23
+ .onProgress;
24
+ }
25
+ function getSignal(callbacks) {
26
+ return callbacks.signal;
27
+ }
28
+ // Regions to probe when auto-detecting the IAM Identity Center OIDC region.
29
+ // Must cover every SSO region that resolveApiRegion() maps to a Kiro API region,
30
+ // plus the API regions themselves. Ordered by likelihood.
31
+ const IDC_PROBE_REGIONS = [
32
+ "us-east-1", // Kiro API region + common SSO region
33
+ "eu-west-1", // SSO region → eu-central-1 API
34
+ "eu-central-1", // Kiro API region + SSO region
35
+ "us-east-2", // SSO region → us-east-1 API
36
+ "eu-west-2", // SSO region → eu-central-1 API
37
+ "eu-west-3", // SSO region → eu-central-1 API
38
+ "eu-north-1", // SSO region → eu-central-1 API
39
+ "ap-southeast-1",
40
+ "ap-northeast-1",
41
+ "us-west-2",
42
+ ];
43
+ /**
44
+ * Interactive login fallback — shown when no existing credentials are available.
45
+ *
46
+ * Uses pi's native TUI components (SelectList + Input) via ctx.ui.custom()
47
+ * when available, falling back to a single onPrompt call otherwise.
48
+ * This avoids pi's stacked-input bug where sequential onPrompt calls
49
+ * render simultaneously with mirrored cursors.
50
+ */
51
+ export async function interactiveLogin(callbacks) {
52
+ // Try native TUI component first (requires ctx from session_start)
53
+ const choice = await showLoginUI();
54
+ if (choice) {
55
+ switch (choice.method) {
56
+ case "builder-id":
57
+ return runDeviceCodeFlow(callbacks, BUILDER_ID_START_URL, "us-east-1");
58
+ case "idc":
59
+ return runDeviceCodeFlowWithRegionDetection(callbacks, choice.startUrl);
60
+ case "google":
61
+ return loginViaKiroCli(callbacks, "google");
62
+ case "github":
63
+ return loginViaKiroCli(callbacks, "github");
64
+ }
65
+ }
66
+ // Fallback: single onPrompt (ctx not available, e.g. first run before session_start)
67
+ const input = (await getPrompt(callbacks)({
68
+ message: "Paste IAM Identity Center URL, or blank for Builder ID",
69
+ placeholder: "https://mycompany.awsapps.com/start",
70
+ allowEmpty: true,
71
+ }))?.trim() || "";
72
+ if (getSignal(callbacks)?.aborted)
73
+ throw new Error("Login cancelled");
74
+ if (!input)
75
+ return runDeviceCodeFlow(callbacks, BUILDER_ID_START_URL, "us-east-1");
76
+ if (!input.startsWith("http"))
77
+ throw new Error(`Invalid input "${input}". Paste your start URL or leave blank for Builder ID.`);
78
+ return runDeviceCodeFlowWithRegionDetection(callbacks, input);
79
+ }
80
+ /**
81
+ * Register an OIDC client and start device authorization in a given region.
82
+ * Returns null if the region rejects the startUrl.
83
+ */
84
+ async function tryRegisterAndAuthorize(startUrl, region) {
85
+ const oidcEndpoint = `https://oidc.${region}.amazonaws.com`;
86
+ const regResp = await fetch(`${oidcEndpoint}/client/register`, {
87
+ method: "POST",
88
+ headers: { "Content-Type": "application/json", "User-Agent": "pi-cli" },
89
+ body: JSON.stringify({
90
+ clientName: "pi-cli",
91
+ clientType: "public",
92
+ scopes: SSO_SCOPES,
93
+ grantTypes: [
94
+ "urn:ietf:params:oauth:grant-type:device_code",
95
+ "refresh_token",
96
+ ],
97
+ }),
98
+ });
99
+ if (!regResp.ok)
100
+ return null;
101
+ const { clientId, clientSecret } = (await regResp.json());
102
+ const devResp = await fetch(`${oidcEndpoint}/device_authorization`, {
103
+ method: "POST",
104
+ headers: { "Content-Type": "application/json", "User-Agent": "pi-cli" },
105
+ body: JSON.stringify({ clientId, clientSecret, startUrl }),
106
+ });
107
+ if (!devResp.ok)
108
+ return null;
109
+ return {
110
+ clientId,
111
+ clientSecret,
112
+ oidcEndpoint,
113
+ devAuth: (await devResp.json()),
114
+ };
115
+ }
116
+ /**
117
+ * Run device code flow for a known region (e.g. Builder ID -> us-east-1).
118
+ */
119
+ async function runDeviceCodeFlow(callbacks, startUrl, region) {
120
+ const result = await tryRegisterAndAuthorize(startUrl, region);
121
+ if (!result)
122
+ throw new Error(`Device authorization failed in ${region}`);
123
+ return pollDeviceCode(callbacks, result.clientId, result.clientSecret, region, result.oidcEndpoint, result.devAuth);
124
+ }
125
+ /**
126
+ * Probe common AWS regions to find which OIDC endpoint accepts the given start URL,
127
+ * then run the device code flow in that region.
128
+ */
129
+ async function runDeviceCodeFlowWithRegionDetection(callbacks, startUrl) {
130
+ getProgress(callbacks)?.("Detecting your Identity Center region...");
131
+ for (const region of IDC_PROBE_REGIONS) {
132
+ const result = await tryRegisterAndAuthorize(startUrl, region);
133
+ if (result) {
134
+ getProgress(callbacks)?.(`Region detected: ${region}`);
135
+ return pollDeviceCode(callbacks, result.clientId, result.clientSecret, region, result.oidcEndpoint, result.devAuth);
136
+ }
137
+ }
138
+ throw new Error(`Could not find an AWS region that accepts ${startUrl}. ` +
139
+ `Tried: ${IDC_PROBE_REGIONS.join(", ")}. Check your start URL and try again.`);
140
+ }
141
+ /**
142
+ * Poll the OIDC token endpoint until the user completes browser auth or timeout.
143
+ */
144
+ async function pollDeviceCode(callbacks, clientId, clientSecret, region, oidcEndpoint, devAuth) {
145
+ callbacks.onAuth({
146
+ url: devAuth.verificationUriComplete,
147
+ instructions: `Your code: ${devAuth.userCode}`,
148
+ });
149
+ const deadline = Date.now() + (devAuth.expiresIn || 600) * 1000;
150
+ const baseInterval = (devAuth.interval || 5) * 1000;
151
+ let interval = baseInterval;
152
+ while (Date.now() < deadline) {
153
+ if (getSignal(callbacks)?.aborted)
154
+ throw new Error("Login cancelled");
155
+ await new Promise((r) => setTimeout(r, interval));
156
+ const tokResp = await fetch(`${oidcEndpoint}/token`, {
157
+ method: "POST",
158
+ headers: { "Content-Type": "application/json", "User-Agent": "pi-cli" },
159
+ body: JSON.stringify({
160
+ clientId,
161
+ clientSecret,
162
+ deviceCode: devAuth.deviceCode,
163
+ grantType: "urn:ietf:params:oauth:grant-type:device_code",
164
+ }),
165
+ });
166
+ const tokData = (await tokResp.json());
167
+ switch (tokData.error) {
168
+ case undefined:
169
+ if (tokData.accessToken && tokData.refreshToken) {
170
+ return {
171
+ refresh: `${tokData.refreshToken}|${clientId}|${clientSecret}|idc`,
172
+ access: tokData.accessToken,
173
+ expires: Date.now() + (tokData.expiresIn || 3600) * 1000 - 5 * 60 * 1000,
174
+ clientId,
175
+ clientSecret,
176
+ region,
177
+ authMethod: "idc",
178
+ };
179
+ }
180
+ break;
181
+ case "authorization_pending":
182
+ break;
183
+ case "slow_down":
184
+ interval += baseInterval;
185
+ break;
186
+ default:
187
+ throw new Error(`Authorization failed: ${tokData.error}`);
188
+ }
189
+ }
190
+ throw new Error("Authorization timed out");
191
+ }
192
+ /**
193
+ * Delegate Google/GitHub social login to kiro-cli.
194
+ * Requires kiro-cli to be installed and in PATH.
195
+ */
196
+ export async function loginViaKiroCli(callbacks, provider) {
197
+ const { getKiroCliCredentials, getKiroCliSocialToken } = await import("./kiro-cli.js");
198
+ getProgress(callbacks)?.(`Initiating ${provider} login via kiro-cli...`);
199
+ try {
200
+ execFileSync("kiro-cli", ["login", "--license", "free"], {
201
+ timeout: 120000,
202
+ stdio: "inherit",
203
+ });
204
+ }
205
+ catch (error) {
206
+ const msg = error instanceof Error ? error.message : String(error);
207
+ throw new Error(`kiro-cli login failed: ${msg}. Ensure kiro-cli is installed and in PATH.`);
208
+ }
209
+ const creds = getKiroCliSocialToken() || getKiroCliCredentials();
210
+ if (!creds)
211
+ throw new Error("kiro-cli login completed but no credentials found in its database");
212
+ getProgress(callbacks)?.(creds.authMethod === "desktop"
213
+ ? "Google/GitHub login successful"
214
+ : "Login successful");
215
+ return creds;
216
+ }
217
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,6EAA6E;AAC7E,yDAAyD;AACzD,4DAA4D;AAC5D,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,oEAAoE;AACpE,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,4DAA4D;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,oBAAoB,EAGpB,UAAU,GACV,MAAM,YAAY,CAAC;AAQpB,SAAS,SAAS,CAAC,SAA8B;IAChD,OAAQ,SAA+C,CAAC,QAAQ,CAAC;AAClE,CAAC;AAED,SAAS,WAAW,CACnB,SAA8B;IAE9B,OAAQ,SAA+D;SACrE,UAAU,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,SAA8B;IAChD,OAAQ,SAAiD,CAAC,MAAM,CAAC;AAClE,CAAC;AAED,4EAA4E;AAC5E,iFAAiF;AACjF,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG;IACzB,WAAW,EAAE,sCAAsC;IACnD,WAAW,EAAE,gCAAgC;IAC7C,cAAc,EAAE,+BAA+B;IAC/C,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE,gCAAgC;IAC7C,WAAW,EAAE,gCAAgC;IAC7C,YAAY,EAAE,gCAAgC;IAC9C,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;CACX,CAAC;AAWF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,SAA8B;IAE9B,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IAEnC,IAAI,MAAM,EAAE,CAAC;QACZ,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,YAAY;gBAChB,OAAO,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;YACxE,KAAK,KAAK;gBACT,OAAO,oCAAoC,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzE,KAAK,QAAQ;gBACZ,OAAO,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7C,KAAK,QAAQ;gBACZ,OAAO,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,qFAAqF;IACrF,MAAM,KAAK,GACV,CACC,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,EAAE,wDAAwD;QACjE,WAAW,EAAE,qCAAqC;QAClD,UAAU,EAAE,IAAI;KAChB,CAAC,CACF,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEjB,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEtE,IAAI,CAAC,KAAK;QACT,OAAO,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5B,MAAM,IAAI,KAAK,CACd,kBAAkB,KAAK,wDAAwD,CAC/E,CAAC;IACH,OAAO,oCAAoC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CACrC,QAAgB,EAChB,MAAc;IAOd,MAAM,YAAY,GAAG,gBAAgB,MAAM,gBAAgB,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,kBAAkB,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE;QACvE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACpB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE;gBACX,8CAA8C;gBAC9C,eAAe;aACf;SACD,CAAC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAGvD,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,uBAAuB,EAAE;QACnE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE;QACvE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE7B,OAAO;QACN,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAe;KAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC/B,SAA8B,EAC9B,QAAgB,EAChB,MAAc;IAEd,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;IACzE,OAAO,cAAc,CACpB,SAAS,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,OAAO,CACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oCAAoC,CAClD,SAA8B,EAC9B,QAAgB;IAEhB,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,0CAA0C,CAAC,CAAC;IAErE,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,MAAM,EAAE,CAAC;YACZ,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO,cAAc,CACpB,SAAS,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,EACnB,MAAM,EACN,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,OAAO,CACd,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,IAAI,KAAK,CACd,6CAA6C,QAAQ,IAAI;QACxD,UAAU,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAC9E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC5B,SAA8B,EAC9B,QAAgB,EAChB,YAAoB,EACpB,MAAc,EACd,YAAoB,EACpB,OAAmB;IAGlB,SAGA,CAAC,MAAM,CAAC;QACR,GAAG,EAAE,OAAO,CAAC,uBAAuB;QACpC,YAAY,EAAE,cAAc,OAAO,CAAC,QAAQ,EAAE;KAC9C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACpD,IAAI,QAAQ,GAAG,YAAY,CAAC;IAE5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,QAAQ,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE;YACvE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,QAAQ;gBACR,YAAY;gBACZ,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,8CAA8C;aACzD,CAAC;SACF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAKpC,CAAC;QAEF,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,SAAS;gBACb,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;oBACjD,OAAO;wBACN,OAAO,EAAE,GAAG,OAAO,CAAC,YAAY,IAAI,QAAQ,IAAI,YAAY,MAAM;wBAClE,MAAM,EAAE,OAAO,CAAC,WAAW;wBAC3B,OAAO,EACN,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;wBAChE,QAAQ;wBACR,YAAY;wBACZ,MAAM;wBACN,UAAU,EAAE,KAAuB;qBACT,CAAC;gBAC7B,CAAC;gBACD,MAAM;YACP,KAAK,uBAAuB;gBAC3B,MAAM;YACP,KAAK,WAAW;gBACf,QAAQ,IAAI,YAAY,CAAC;gBACzB,MAAM;YACP;gBACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,SAA8B,EAC9B,QAA6B;IAE7B,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CACpE,eAAe,CACf,CAAC;IAEF,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,QAAQ,wBAAwB,CAAC,CAAC;IAEzE,IAAI,CAAC;QACJ,YAAY,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;YACxD,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,SAAS;SAChB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CACd,0BAA0B,GAAG,6CAA6C,CAC1E,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,qBAAqB,EAAE,IAAI,qBAAqB,EAAE,CAAC;IACjE,IAAI,CAAC,KAAK;QACT,MAAM,IAAI,KAAK,CACd,mEAAmE,CACnE,CAAC;IAEH,WAAW,CAAC,SAAS,CAAC,EAAE,CACvB,KAAK,CAAC,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,kBAAkB,CACrB,CAAC;IACF,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,72 @@
1
+ export declare const KIRO_MODEL_IDS: Set<string>;
2
+ export declare function loadCachedModelIds(): void;
3
+ export declare function getCachedModels(region: string): typeof kiroModels;
4
+ export declare function isCacheStale(region: string): boolean;
5
+ export declare function updateKiroModelsCache(accessToken: string, region: string, profileArn?: string): Promise<void>;
6
+ export declare function resolveKiroModel(modelId: string): string;
7
+ export declare function resolveApiRegion(ssoRegion: string | undefined): string;
8
+ /** Filter a model list to only those available in the given API region.
9
+ * Unknown regions return an empty list — add the region to MODELS_BY_REGION. */
10
+ export declare function filterModelsByRegion<T extends {
11
+ id: string;
12
+ }>(models: T[], apiRegion: string): T[];
13
+ export declare const kiroModels: ({
14
+ id: string;
15
+ name: string;
16
+ api: "kiro-api";
17
+ provider: "kiro";
18
+ baseUrl: string;
19
+ reasoning: boolean;
20
+ thinkingLevelMap: {
21
+ xhigh: string;
22
+ };
23
+ input: ("text" | "image")[];
24
+ cost: Readonly<{
25
+ input: 0;
26
+ output: 0;
27
+ cacheRead: 0;
28
+ cacheWrite: 0;
29
+ }>;
30
+ contextWindow: number;
31
+ maxTokens: number;
32
+ firstTokenTimeout: number;
33
+ } | {
34
+ id: string;
35
+ name: string;
36
+ api: "kiro-api";
37
+ provider: "kiro";
38
+ baseUrl: string;
39
+ reasoning: boolean;
40
+ thinkingLevelMap: {
41
+ xhigh: string;
42
+ };
43
+ input: ("text" | "image")[];
44
+ cost: Readonly<{
45
+ input: 0;
46
+ output: 0;
47
+ cacheRead: 0;
48
+ cacheWrite: 0;
49
+ }>;
50
+ contextWindow: number;
51
+ maxTokens: number;
52
+ firstTokenTimeout?: undefined;
53
+ } | {
54
+ id: string;
55
+ name: string;
56
+ api: "kiro-api";
57
+ provider: "kiro";
58
+ baseUrl: string;
59
+ reasoning: boolean;
60
+ input: ("text" | "image")[];
61
+ cost: Readonly<{
62
+ input: 0;
63
+ output: 0;
64
+ cacheRead: 0;
65
+ cacheWrite: 0;
66
+ }>;
67
+ contextWindow: number;
68
+ maxTokens: number;
69
+ thinkingLevelMap?: undefined;
70
+ firstTokenTimeout?: undefined;
71
+ })[];
72
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,aAgBzB,CAAC;AAGH,wBAAgB,kBAAkB,IAAI,IAAI,CAoBzC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,UAAU,CAajE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAYpD;AAED,wBAAsB,qBAAqB,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA8Ff;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASxD;AA2BD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtE;AA6CD;iFACiF;AACjF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC5D,MAAM,EAAE,CAAC,EAAE,EACX,SAAS,EAAE,MAAM,GACf,CAAC,EAAE,CASL;AAUD,eAAO,MAAM,UAAU;;;;;;;;;;WASO,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;WA6BpB,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;;;;;;;;;;;;;;;;;WAapB,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;;;;;;;;;;;IAmJjD,CAAC"}