ns-kiro-core 0.3.8 → 0.3.9

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/README.md CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  The Kiro (AWS CodeWhisperer/Q) protocol, with no host types in it.
4
4
 
5
- This package is the shared half of
6
- [ns-kiro-provider](https://github.com/ngosangns/ns-kiro-provider): everything a
7
- Kiro client needs that is not specific to one coding agent.
5
+ This package is the Kiro vendor core of
6
+ [ns-bridge](https://github.com/ngosangns/ns-bridge): everything a Kiro client
7
+ needs that is not specific to one coding agent.
8
8
 
9
- Published on npm as `ns-kiro-core`. Pulled in as a dependency by the two
10
- adapters below — not meant to be installed on its own.
9
+ Published on npm as `ns-kiro-core`. Pulled in as a dependency by the Kiro host
10
+ adapters — `@ngosangns/ns-pi-provider`, `ns-omp-provider-kiro`,
11
+ `ns-dsh-llm-kiro` — not meant to be installed on its own.
11
12
 
12
13
  - **Endpoints** — SSO region to management/runtime host resolution.
13
14
  - **Model catalog** — the bootstrap list, the authenticated regional catalog,
@@ -51,7 +52,10 @@ for await (const event of streamKiro({
51
52
  ```
52
53
 
53
54
  An adapter owes two translations — host messages in, host stream events out —
54
- and nothing else. Block indexes are monotonic across the whole response,
55
+ and nothing else; for Pi-family hosts and the Harness, `ns-bridge-core` already
56
+ does both. `loginKiroFromSession` / `resolveKiroRequestCredentials` (session
57
+ login and per-request credentials) and `toKiroModelForHost` (catalog entry to a
58
+ host model) are the other pieces every host needs, so they live here too. Block indexes are monotonic across the whole response,
55
59
  including across an internal retry, so a host that cannot un-deliver a block
56
60
  still receives a coherent sequence; `canDiscardEmittedBlocks` tells the core
57
61
  which kind of host it is talking to.
@@ -69,6 +73,48 @@ sourced elsewhere:
69
73
  | `KiroResponseAssembler` | Content blocks, thinking, tool calls, text-dialect recovery, usage, stop reason |
70
74
  | `abortableDelay`, `createResponseHeaderDeadline`, `logCapacityEvent` | Transport timing |
71
75
 
76
+ ## What Kiro reports, and what it does not
77
+
78
+ Measured 2026-09-06 against `claude-sonnet-5` in `us-east-1`. Recorded here so
79
+ the questions are not re-opened from first principles.
80
+
81
+ **Token counts: none.** Kiro's `usage` frame is a billing record —
82
+ `{unit: "credit", usage: 0.0659}` — not token counts. `usage.input` is therefore
83
+ derived from the `contextUsagePercentage` frame, and `usage.output` from a
84
+ tiktoken estimate over what the model emitted. `usage.credits` carries the
85
+ figure Kiro actually bills.
86
+
87
+ **Per-token prices: none.** Kiro bills in credits and publishes no per-token
88
+ rates, so every model's `cost` stays zero. `kiro-cli chat --list-models` does
89
+ publish a relative billing weight, which the catalog picks up as
90
+ `rateMultiplier` — 2.2 for `claude-opus-5` against 0.05 for `qwen3-coder-next`.
91
+ It is absent when kiro-cli is not installed.
92
+
93
+ **Prompt caching: real, but not controllable.** Kiro caches prompts server-side
94
+ on its own: a repeated prefix billed ~0.035 credits against ~0.066 for a fresh
95
+ one, and a changed prefix went straight back to the full price. There is no way
96
+ to ask for it — every model's `additionalModelRequestFieldsSchema` sets
97
+ `"additionalProperties": false` and allows only `thinking`/`output_config`/
98
+ `max_tokens` (Claude) or `reasoning` (GPT), so a `cachePoint` or `cache_control`
99
+ field is rejected rather than honoured. Kiro also reports no cache token counts.
100
+
101
+ Reasoning effort is part of the cache key: changing it misses even when the
102
+ prompt is byte-identical, and each effort level then warms its own entry.
103
+
104
+ **Stop reasons: reported when Kiro sends one, inferred otherwise.** Kiro now
105
+ closes a turn with a `metadataEvent` `stopReason` (`END_TURN` on every ordinary
106
+ turn checked, 2026-10-08). `MAX_TOKENS` is reported as `length`;
107
+ `CONTENT_FILTERED`, `MODEL_CONTEXT_WINDOW_EXCEEDED` (phrased
108
+ `context_length_exceeded`) and `PAUSE_TURN` end the call with an error and no
109
+ retry. Without a stop reason, a turn with no tool call that never carried a
110
+ `contextUsagePercentage` frame is reported as `length`. That frame arrived in
111
+ every case checked — a short reply, a ~5000-character one, a tool-call turn, a
112
+ model with no effort schema, and a non-Claude model — so its absence does mark
113
+ an abnormal turn rather than a normal short answer.
114
+
115
+ Set `KIRO_DEBUG=1` to log the frames verbatim (`~/.ns-kiro-provider/logs/`) if
116
+ any of this needs re-checking against a newer Kiro.
117
+
72
118
  ## Credit
73
119
 
74
120
  Ported from [pi-provider-kiro](https://github.com/mikeyobrien/pi-provider-kiro)
@@ -0,0 +1,40 @@
1
+ import { type KiroCredentials } from "./oauth.js";
2
+ /** The subset of a host's login callbacks this flow uses (Pi's and OMP's both fit). */
3
+ export interface KiroHostLoginCallbacks {
4
+ onProgress?: (message: string) => void;
5
+ onPrompt?: (prompt: {
6
+ message: string;
7
+ placeholder?: string;
8
+ allowEmpty?: boolean;
9
+ secret?: boolean;
10
+ }) => Promise<string>;
11
+ }
12
+ export declare const KIRO_NO_SESSION_MESSAGE: string;
13
+ /**
14
+ * No browser flow of its own: every interactive method Kiro supports already
15
+ * lands a session in the kiro-cli store or the Kiro IDE token file, so this
16
+ * reads one of those (refreshing it when needed). The one credential with no
17
+ * browser step — an API key — is accepted directly.
18
+ */
19
+ export declare function loginKiroFromSession(callbacks: KiroHostLoginCallbacks): Promise<KiroCredentials>;
20
+ /** The token, region, and profile one request runs on. */
21
+ export interface ResolvedKiroRequestCredentials {
22
+ accessToken: string;
23
+ region: string;
24
+ profileArn?: string;
25
+ }
26
+ /**
27
+ * Decide which credential a request or catalog fetch runs on.
28
+ *
29
+ * The key a host resolves for the provider is the session returned from
30
+ * `/login kiro` — but it can also be an unresolved env reference such as
31
+ * `$KIRO_API_KEY` verbatim, and Kiro answers a bogus bearer with a 403 the core
32
+ * then has to recover from. So a host key is trusted only when it is
33
+ * recognizably a Kiro credential; anything else defers to the store, which is
34
+ * where the session actually lives.
35
+ *
36
+ * The stored record also carries the region and the profile ARN, and passing
37
+ * the ARN skips the ListAvailableProfiles round trip that a social login cannot
38
+ * answer anyway.
39
+ */
40
+ export declare function resolveKiroRequestCredentials(hostKey: string | undefined): Promise<ResolvedKiroRequestCredentials>;
@@ -0,0 +1,63 @@
1
+ // ABOUTME: Login and per-request credential choice for agent hosts (Pi, OMP), over the
2
+ // ABOUTME: sessions this machine already has. Host-neutral: hosts pass their own callbacks.
3
+ import { resolveApiRegion } from "./endpoints.js";
4
+ import { isApiKey, loginKiroWithApiKey, resolveKiroCredentials } from "./oauth.js";
5
+ export const KIRO_NO_SESSION_MESSAGE = "No Kiro session found. Sign in with `kiro-cli login` (Builder ID, IAM Identity Center, Google, or GitHub), " +
6
+ "then run /login kiro again — or paste a Kiro API key below.";
7
+ /**
8
+ * No browser flow of its own: every interactive method Kiro supports already
9
+ * lands a session in the kiro-cli store or the Kiro IDE token file, so this
10
+ * reads one of those (refreshing it when needed). The one credential with no
11
+ * browser step — an API key — is accepted directly.
12
+ */
13
+ export async function loginKiroFromSession(callbacks) {
14
+ callbacks.onProgress?.("Looking for an existing Kiro session…");
15
+ const existing = await resolveKiroCredentials();
16
+ if (existing) {
17
+ callbacks.onProgress?.(`Using the ${existing.authMethod} session from kiro-cli.`);
18
+ return existing;
19
+ }
20
+ if (!callbacks.onPrompt)
21
+ throw new Error(KIRO_NO_SESSION_MESSAGE);
22
+ const apiKey = (await callbacks.onPrompt({
23
+ message: KIRO_NO_SESSION_MESSAGE,
24
+ placeholder: "ksk_…",
25
+ allowEmpty: true,
26
+ secret: true,
27
+ })).trim();
28
+ if (!apiKey)
29
+ throw new Error(KIRO_NO_SESSION_MESSAGE);
30
+ return loginKiroWithApiKey(apiKey, callbacks.onProgress);
31
+ }
32
+ /**
33
+ * Decide which credential a request or catalog fetch runs on.
34
+ *
35
+ * The key a host resolves for the provider is the session returned from
36
+ * `/login kiro` — but it can also be an unresolved env reference such as
37
+ * `$KIRO_API_KEY` verbatim, and Kiro answers a bogus bearer with a 403 the core
38
+ * then has to recover from. So a host key is trusted only when it is
39
+ * recognizably a Kiro credential; anything else defers to the store, which is
40
+ * where the session actually lives.
41
+ *
42
+ * The stored record also carries the region and the profile ARN, and passing
43
+ * the ARN skips the ListAvailableProfiles round trip that a social login cannot
44
+ * answer anyway.
45
+ */
46
+ export async function resolveKiroRequestCredentials(hostKey) {
47
+ const stored = await resolveKiroCredentials();
48
+ const region = resolveApiRegion(stored?.region);
49
+ if (hostKey && (isApiKey(hostKey) || hostKey === stored?.access)) {
50
+ return { accessToken: hostKey, region, ...(stored?.profileArn ? { profileArn: stored.profileArn } : {}) };
51
+ }
52
+ if (stored) {
53
+ return {
54
+ accessToken: stored.access,
55
+ region,
56
+ ...(stored.profileArn ? { profileArn: stored.profileArn } : {}),
57
+ };
58
+ }
59
+ if (hostKey)
60
+ return { accessToken: hostKey, region };
61
+ throw new Error("Kiro credentials not set. Run `kiro-cli login`, or set KIRO_API_KEY to a `ksk_` API key.");
62
+ }
63
+ //# sourceMappingURL=host-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-auth.js","sourceRoot":"","sources":["../src/host-auth.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,4FAA4F;AAE5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAwB,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAazG,MAAM,CAAC,MAAM,uBAAuB,GAClC,6GAA6G;IAC7G,6DAA6D,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiC;IAC1E,SAAS,CAAC,UAAU,EAAE,CAAC,uCAAuC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,SAAS,CAAC,UAAU,EAAE,CAAC,aAAa,QAAQ,CAAC,UAAU,yBAAyB,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,CACb,MAAM,SAAS,CAAC,QAAQ,CAAC;QACvB,OAAO,EAAE,uBAAuB;QAChC,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;KACb,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;IACT,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACtD,OAAO,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC;AASD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACjE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5G,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,MAAM;YACN,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO;QAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACrD,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;AAC9G,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { type KiroModel } from "./models.js";
2
+ /** What a host's model carries back to the provider; Pi's and OMP's models both fit. */
3
+ export interface KiroHostModel {
4
+ id: string;
5
+ name: string;
6
+ reasoning: boolean;
7
+ input: readonly ("text" | "image")[];
8
+ cost: {
9
+ input: number;
10
+ output: number;
11
+ cacheRead: number;
12
+ cacheWrite: number;
13
+ };
14
+ contextWindow?: number | null;
15
+ maxTokens?: number | null;
16
+ kiroModelId?: string;
17
+ kiroProfileArn?: string;
18
+ additionalModelRequestFieldsSchema?: Record<string, unknown>;
19
+ }
20
+ /**
21
+ * A host's registry keeps its own model, built from the config the provider
22
+ * registered, so the catalog entry is looked up again here rather than carried
23
+ * through: the effort ladder and the request-fields schema decide effort
24
+ * mapping, and a request must use the same ones the catalog advertised.
25
+ *
26
+ * Looks up the region's authenticated cache, not the static bootstrap list:
27
+ * models discovered only through the authenticated catalog would otherwise
28
+ * miss this lookup and fall through to guessing a wire id from the
29
+ * dash-spelled local `id`, which Kiro rejects as `INVALID_MODEL_ID`.
30
+ */
31
+ export declare function toKiroModelForHost(model: KiroHostModel, region: string): KiroModel;
@@ -0,0 +1,39 @@
1
+ // ABOUTME: Rebuilds the core's model descriptor from the model a host hands back at request time.
2
+ // ABOUTME: Shared by every agent host (Pi, OMP) whose registry keeps its own copy of the model.
3
+ import { getCachedModels } from "./models.js";
4
+ /**
5
+ * A host's registry keeps its own model, built from the config the provider
6
+ * registered, so the catalog entry is looked up again here rather than carried
7
+ * through: the effort ladder and the request-fields schema decide effort
8
+ * mapping, and a request must use the same ones the catalog advertised.
9
+ *
10
+ * Looks up the region's authenticated cache, not the static bootstrap list:
11
+ * models discovered only through the authenticated catalog would otherwise
12
+ * miss this lookup and fall through to guessing a wire id from the
13
+ * dash-spelled local `id`, which Kiro rejects as `INVALID_MODEL_ID`.
14
+ */
15
+ export function toKiroModelForHost(model, region) {
16
+ const known = getCachedModels(region).find((candidate) => candidate.id === model.id);
17
+ return {
18
+ ...(known ?? {
19
+ id: model.id,
20
+ // No fallback to `model.id`: that dash-spelled local id is not a valid
21
+ // Kiro wire id. `""` is falsy, so `resolveKiroModel` runs its own
22
+ // cache/bootstrap/dot-normalize resolution instead of being
23
+ // short-circuited by a value that is really just `model.id` again.
24
+ kiroModelId: model.kiroModelId ?? "",
25
+ name: model.name,
26
+ reasoning: model.reasoning,
27
+ input: [...model.input],
28
+ cost: { ...model.cost },
29
+ contextWindow: model.contextWindow ?? 200_000,
30
+ maxTokens: model.maxTokens ?? 8_192,
31
+ }),
32
+ region,
33
+ ...(model.kiroProfileArn ? { profileArn: model.kiroProfileArn } : {}),
34
+ ...(model.additionalModelRequestFieldsSchema
35
+ ? { additionalModelRequestFieldsSchema: model.additionalModelRequestFieldsSchema }
36
+ : {}),
37
+ };
38
+ }
39
+ //# sourceMappingURL=host-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-model.js","sourceRoot":"","sources":["../src/host-model.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,gGAAgG;AAEhG,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAgB9D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAoB,EAAE,MAAc;IACrE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IACrF,OAAO;QACL,GAAG,CAAC,KAAK,IAAI;YACX,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,uEAAuE;YACvE,kEAAkE;YAClE,4DAA4D;YAC5D,mEAAmE;YACnE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YACvB,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE;YACvB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO;YAC7C,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;SACpC,CAAC;QACF,MAAM;QACN,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,kCAAkC;YAC1C,CAAC,CAAC,EAAE,kCAAkC,EAAE,KAAK,CAAC,kCAAkC,EAAE;YAClF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ export { getKiroEndpoints, getKiroRegionFromEndpoint, getKiroRegionFromProfileAr
8
8
  export { extractKiroReasonCode, KiroApiError, type KiroProviderAttempts, parseRetryAfterMs, } from "./errors.js";
9
9
  export { isKiroEventKey, KIRO_ERROR_MEMBERS, KIRO_EVENT_KEYS, type KiroErrorData, type KiroErrorKind, type KiroEventKey, type KiroWireEvent, type KiroWireUsage, lookupKiroErrorMember, parseKiroEvent, parseKiroEventByShape, parseKiroExceptionFrame, } from "./event-parser.js";
10
10
  export { isKiroToolStructureRule, KIRO_TOOL_STRUCTURE_RULES, KIRO_VALIDATION_MESSAGES, type KiroRepairResult, type KiroToolStructureRule, type KiroValidationError, type KiroValidationResult, KiroValidationRule, kiroConversationEntries, repairKiroConversation, SYNTHETIC_FAILED_TOOL_RESULT_TEXT, validateKiroConversation, validateKiroToolStructure, } from "./history-validator.js";
11
+ export { KIRO_NO_SESSION_MESSAGE, type KiroHostLoginCallbacks, loginKiroFromSession, type ResolvedKiroRequestCredentials, resolveKiroRequestCredentials, } from "./host-auth.js";
12
+ export { type KiroHostModel, toKiroModelForHost } from "./host-model.js";
11
13
  export { parseInvokeToolCalls } from "./invoke-tool-parser.js";
12
14
  export { getKiroCliCredentials, getKiroCliCredentialsAllowExpired, getKiroCliDbPath, getKiroCliModelRates, getKiroCliSocialToken, getKiroCliSocialTokenAllowExpired, type KiroModelRate, refreshViaKiroCli, saveKiroCliCredentials, } from "./kiro-cli.js";
13
15
  export { getKiroIdeCredentials, getKiroIdeCredentialsAllowExpired } from "./kiro-ide.js";
package/dist/index.js CHANGED
@@ -9,6 +9,8 @@ export { getKiroEndpoints, getKiroRegionFromEndpoint, getKiroRegionFromProfileAr
9
9
  export { extractKiroReasonCode, KiroApiError, parseRetryAfterMs, } from "./errors.js";
10
10
  export { isKiroEventKey, KIRO_ERROR_MEMBERS, KIRO_EVENT_KEYS, lookupKiroErrorMember, parseKiroEvent, parseKiroEventByShape, parseKiroExceptionFrame, } from "./event-parser.js";
11
11
  export { isKiroToolStructureRule, KIRO_TOOL_STRUCTURE_RULES, KIRO_VALIDATION_MESSAGES, KiroValidationRule, kiroConversationEntries, repairKiroConversation, SYNTHETIC_FAILED_TOOL_RESULT_TEXT, validateKiroConversation, validateKiroToolStructure, } from "./history-validator.js";
12
+ export { KIRO_NO_SESSION_MESSAGE, loginKiroFromSession, resolveKiroRequestCredentials, } from "./host-auth.js";
13
+ export { toKiroModelForHost } from "./host-model.js";
12
14
  export { parseInvokeToolCalls } from "./invoke-tool-parser.js";
13
15
  export { getKiroCliCredentials, getKiroCliCredentialsAllowExpired, getKiroCliDbPath, getKiroCliModelRates, getKiroCliSocialToken, getKiroCliSocialTokenAllowExpired, refreshViaKiroCli, saveKiroCliCredentials, } from "./kiro-cli.js";
14
16
  export { getKiroIdeCredentials, getKiroIdeCredentialsAllowExpired } from "./kiro-ide.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ns-kiro-core",
3
- "version": "0.3.8",
3
+ "version": "0.3.9",
4
4
  "description": "Shared Kiro (AWS CodeWhisperer/Q) protocol core — credentials, model catalog, streaming; a dependency, not for direct install",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -14,7 +14,7 @@
14
14
  "license": "MIT",
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "git+https://github.com/ngosangns/ns-kiro-provider.git",
17
+ "url": "git+https://github.com/ngosangns/ns-bridge.git",
18
18
  "directory": "packages/kiro-core"
19
19
  },
20
20
  "files": [