@kenkaiiii/ggcoder 5.6.0 → 5.6.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 (49) hide show
  1. package/dist/app-sidecar.js +274 -53
  2. package/dist/app-sidecar.js.map +1 -1
  3. package/dist/core/agent-session-queue.test.d.ts +2 -0
  4. package/dist/core/agent-session-queue.test.d.ts.map +1 -0
  5. package/dist/core/agent-session-queue.test.js +122 -0
  6. package/dist/core/agent-session-queue.test.js.map +1 -0
  7. package/dist/core/agent-session.d.ts +8 -0
  8. package/dist/core/agent-session.d.ts.map +1 -1
  9. package/dist/core/agent-session.js +7 -0
  10. package/dist/core/agent-session.js.map +1 -1
  11. package/dist/core/autopilot-cycle.d.ts +67 -0
  12. package/dist/core/autopilot-cycle.d.ts.map +1 -0
  13. package/dist/core/autopilot-cycle.js +50 -0
  14. package/dist/core/autopilot-cycle.js.map +1 -0
  15. package/dist/core/autopilot-cycle.test.d.ts +2 -0
  16. package/dist/core/autopilot-cycle.test.d.ts.map +1 -0
  17. package/dist/core/autopilot-cycle.test.js +179 -0
  18. package/dist/core/autopilot-cycle.test.js.map +1 -0
  19. package/dist/core/autopilot-gate.d.ts +83 -0
  20. package/dist/core/autopilot-gate.d.ts.map +1 -0
  21. package/dist/core/autopilot-gate.js +96 -0
  22. package/dist/core/autopilot-gate.js.map +1 -0
  23. package/dist/core/autopilot-gate.test.d.ts +2 -0
  24. package/dist/core/autopilot-gate.test.d.ts.map +1 -0
  25. package/dist/core/autopilot-gate.test.js +159 -0
  26. package/dist/core/autopilot-gate.test.js.map +1 -0
  27. package/dist/core/ken-context.d.ts +17 -0
  28. package/dist/core/ken-context.d.ts.map +1 -1
  29. package/dist/core/ken-context.js +47 -6
  30. package/dist/core/ken-context.js.map +1 -1
  31. package/dist/core/ken-context.test.js +122 -1
  32. package/dist/core/ken-context.test.js.map +1 -1
  33. package/dist/core/ken-model.d.ts +46 -0
  34. package/dist/core/ken-model.d.ts.map +1 -0
  35. package/dist/core/ken-model.js +26 -0
  36. package/dist/core/ken-model.js.map +1 -0
  37. package/dist/core/ken-model.test.d.ts +2 -0
  38. package/dist/core/ken-model.test.d.ts.map +1 -0
  39. package/dist/core/ken-model.test.js +51 -0
  40. package/dist/core/ken-model.test.js.map +1 -0
  41. package/dist/core/ken-prompt.js +8 -4
  42. package/dist/core/ken-prompt.js.map +1 -1
  43. package/dist/core/ken-prompt.test.d.ts +2 -0
  44. package/dist/core/ken-prompt.test.d.ts.map +1 -0
  45. package/dist/core/ken-prompt.test.js +43 -0
  46. package/dist/core/ken-prompt.test.js.map +1 -0
  47. package/dist/core/speed-benchmark.test.js +2 -3
  48. package/dist/core/speed-benchmark.test.js.map +1 -1
  49. package/package.json +4 -4
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Ken's model selection — pure decision logic.
3
+ *
4
+ * Ken (chat mentor + autopilot reviewer) historically always adopted GG
5
+ * Coder's model. Now each project can pin Ken to his OWN model:
6
+ *
7
+ * - No override set → Ken follows GG Coder's model (including live switches).
8
+ * - Override set → Ken uses it; GG Coder model switches no longer touch him.
9
+ *
10
+ * The sidecar persists the override per project (gg-app.json `kenModels`) and
11
+ * wires the live sessions; this module owns validation + resolution so both
12
+ * are unit-testable without booting the sidecar.
13
+ */
14
+ import type { Provider } from "@kenkaiiii/gg-ai";
15
+ /** A pinned Ken model choice: provider + model id. */
16
+ export interface KenModelPref {
17
+ provider: Provider;
18
+ model: string;
19
+ }
20
+ /**
21
+ * Validate a persisted (or requested) override before applying it. A stale
22
+ * entry — model gone from the registry, or its provider no longer connected —
23
+ * silently resolves to null so Ken falls back to following GG Coder instead
24
+ * of erroring on every turn.
25
+ */
26
+ export declare function validateKenModelPref(pref: KenModelPref | null | undefined, opts: {
27
+ modelExists: (id: string) => boolean;
28
+ providerConnected: (p: Provider) => boolean;
29
+ }): KenModelPref | null;
30
+ /** What the footer needs to render `Ken <model>`: the model Ken will actually
31
+ * use next turn, plus whether that's a pin or just following GG Coder. */
32
+ export interface EffectiveKenModel {
33
+ kenProvider: Provider;
34
+ kenModel: string;
35
+ /** True when a user-set override is active (not following GG Coder). */
36
+ kenModelOverride: boolean;
37
+ }
38
+ /**
39
+ * Resolve the model Ken uses right now: the override when set, otherwise the
40
+ * build session's current model.
41
+ */
42
+ export declare function effectiveKenModel(override: KenModelPref | null, build: {
43
+ provider: Provider;
44
+ model: string;
45
+ }): EffectiveKenModel;
46
+ //# sourceMappingURL=ken-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ken-model.d.ts","sourceRoot":"","sources":["../../src/core/ken-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,sDAAsD;AACtD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EACrC,IAAI,EAAE;IAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAA;CAAE,GAC1F,YAAY,GAAG,IAAI,CAKrB;AAED;2EAC2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,QAAQ,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,GAAG,IAAI,EAC7B,KAAK,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C,iBAAiB,CAKnB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Validate a persisted (or requested) override before applying it. A stale
3
+ * entry — model gone from the registry, or its provider no longer connected —
4
+ * silently resolves to null so Ken falls back to following GG Coder instead
5
+ * of erroring on every turn.
6
+ */
7
+ export function validateKenModelPref(pref, opts) {
8
+ if (!pref || !pref.model || !pref.provider)
9
+ return null;
10
+ if (!opts.modelExists(pref.model))
11
+ return null;
12
+ if (!opts.providerConnected(pref.provider))
13
+ return null;
14
+ return pref;
15
+ }
16
+ /**
17
+ * Resolve the model Ken uses right now: the override when set, otherwise the
18
+ * build session's current model.
19
+ */
20
+ export function effectiveKenModel(override, build) {
21
+ if (override) {
22
+ return { kenProvider: override.provider, kenModel: override.model, kenModelOverride: true };
23
+ }
24
+ return { kenProvider: build.provider, kenModel: build.model, kenModelOverride: false };
25
+ }
26
+ //# sourceMappingURL=ken-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ken-model.js","sourceRoot":"","sources":["../../src/core/ken-model.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAqC,EACrC,IAA2F;IAE3F,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAA6B,EAC7B,KAA4C;IAE5C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC9F,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AACzF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ken-model.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ken-model.test.d.ts","sourceRoot":"","sources":["../../src/core/ken-model.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { validateKenModelPref, effectiveKenModel } from "./ken-model.js";
3
+ const REGISTRY = new Set(["claude-opus-5", "gpt-5.5", "kimi-k2.7-code"]);
4
+ const CONNECTED = new Set(["anthropic", "openai"]);
5
+ const opts = {
6
+ modelExists: (id) => REGISTRY.has(id),
7
+ providerConnected: (p) => CONNECTED.has(p),
8
+ };
9
+ describe("validateKenModelPref", () => {
10
+ it("passes a valid pref through", () => {
11
+ const pref = { provider: "openai", model: "gpt-5.5" };
12
+ expect(validateKenModelPref(pref, opts)).toEqual(pref);
13
+ });
14
+ it("nulls when the model left the registry (stale persisted pin)", () => {
15
+ expect(validateKenModelPref({ provider: "openai", model: "gpt-4-turbo" }, opts)).toBeNull();
16
+ });
17
+ it("nulls when the provider is no longer connected (logged out)", () => {
18
+ expect(validateKenModelPref({ provider: "moonshot", model: "kimi-k2.7-code" }, opts)).toBeNull();
19
+ });
20
+ it("nulls absent / malformed prefs", () => {
21
+ expect(validateKenModelPref(null, opts)).toBeNull();
22
+ expect(validateKenModelPref(undefined, opts)).toBeNull();
23
+ expect(validateKenModelPref({ provider: "openai", model: "" }, opts)).toBeNull();
24
+ expect(validateKenModelPref({ provider: "", model: "gpt-5.5" }, opts)).toBeNull();
25
+ });
26
+ });
27
+ describe("effectiveKenModel", () => {
28
+ const build = { provider: "anthropic", model: "claude-opus-5" };
29
+ it("follows the build session when no override is set", () => {
30
+ expect(effectiveKenModel(null, build)).toEqual({
31
+ kenProvider: "anthropic",
32
+ kenModel: "claude-opus-5",
33
+ kenModelOverride: false,
34
+ });
35
+ });
36
+ it("uses the pin when set, ignoring the build model", () => {
37
+ expect(effectiveKenModel({ provider: "openai", model: "gpt-5.5" }, build)).toEqual({
38
+ kenProvider: "openai",
39
+ kenModel: "gpt-5.5",
40
+ kenModelOverride: true,
41
+ });
42
+ });
43
+ it("pin identical to the build model still reports override=true (it survives GG switches)", () => {
44
+ expect(effectiveKenModel({ provider: "anthropic", model: "claude-opus-5" }, build)).toEqual({
45
+ kenProvider: "anthropic",
46
+ kenModel: "claude-opus-5",
47
+ kenModelOverride: true,
48
+ });
49
+ });
50
+ });
51
+ //# sourceMappingURL=ken-model.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ken-model.test.js","sourceRoot":"","sources":["../../src/core/ken-model.test.ts"],"names":[],"mappings":"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"}
@@ -185,16 +185,20 @@ function renderAutopilotContract() {
185
185
  `nothing to review, so say nothing. Do not use ALL_CLEAR for this; ALL_CLEAR ` +
186
186
  `implies you reviewed real work and it checks out.\n` +
187
187
  `- Otherwise default hard to ALL_CLEAR. GG Coder's work is done unless something ` +
188
- `is genuinely broken or missing versus the user's ORIGINAL ask in the ` +
189
- `transcript. Taste nitpicks and "could be nicer" improvements are NOT blockers ` +
190
- `— ship it.\n` +
188
+ `is genuinely broken or missing versus the user's ORIGINAL ask (the 'Original ` +
189
+ `user request' section of your context never a later injected prompt). Taste ` +
190
+ `nitpicks and "could be nicer" improvements are NOT blockers — ship it.\n` +
191
191
  `- PROMPT only when something real is wrong or unfinished: a failing/absent ` +
192
192
  `test, a broken build, a requirement from the original ask left undone, an ` +
193
193
  `obvious bug. The prompt body should tell GG Coder to fix it AND prove it ` +
194
194
  `(run the test, screenshot the UI) — you can't run anything yourself.\n` +
195
195
  `- HUMAN only when a real decision needs the user: an ambiguous requirement, a ` +
196
196
  `destructive tradeoff, or missing information you cannot verify with your ` +
197
- `read-only tools.\n` +
197
+ `read-only tools. HUMAN also whenever GG Coder ended its turn by asking the ` +
198
+ `user a question, presenting options (A/B/C choices, "want me to…"), or ` +
199
+ `submitting a plan for approval — never answer on the user's behalf.\n` +
200
+ `- Transcript lines labeled "Ken autopilot (injected)" are YOUR own earlier ` +
201
+ `fix prompts, not user asks. Judge only against the original user request.\n` +
198
202
  `- You are read-only. Use read/grep/find/ls/web/kencode-search ONLY when a fact ` +
199
203
  `is truly in doubt; otherwise judge from the transcript and answer. Every wasted ` +
200
204
  `tool call costs tokens.\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"ken-prompt.js","sourceRoot":"","sources":["../../src/core/ken-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ken-prompt.js","sourceRoot":"","sources":["../../src/core/ken-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ken-prompt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ken-prompt.test.d.ts","sourceRoot":"","sources":["../../src/core/ken-prompt.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { buildKenSystemPrompt, buildKenAutopilotSystemPrompt } from "./ken-prompt.js";
3
+ import { INJECTED_PROMPT_LABEL } from "./ken-context.js";
4
+ describe("buildKenAutopilotSystemPrompt — verdict contract", () => {
5
+ const prompt = buildKenAutopilotSystemPrompt();
6
+ it("teaches all four verdict keywords", () => {
7
+ for (const keyword of ["PROMPT", "ALL_CLEAR", "IGNORE", "HUMAN"]) {
8
+ expect(prompt).toContain(keyword);
9
+ }
10
+ });
11
+ it("routes end-of-turn questions/options/plans to HUMAN, never PROMPT", () => {
12
+ // Leak regression: without this rule, GG Coder ending with "want me to…?"
13
+ // or an A/B/C menu reads as "unfinished" and Ken answers for the user.
14
+ expect(prompt).toContain("asking the ");
15
+ expect(prompt).toContain("presenting options");
16
+ expect(prompt).toContain("never answer on the user's behalf");
17
+ expect(prompt).toContain("submitting a plan for approval");
18
+ });
19
+ it("tells Ken injected transcript lines are his own, not user asks", () => {
20
+ expect(prompt).toContain("Ken autopilot (injected)");
21
+ expect(prompt).toContain("Judge only against the original user request");
22
+ });
23
+ it("anchors ALL_CLEAR judgment to the pinned Original user request section", () => {
24
+ expect(prompt).toContain("Original ");
25
+ expect(prompt).toContain("user request' section");
26
+ expect(prompt).toContain("never a later injected prompt");
27
+ });
28
+ it("keeps the injected label byte-identical to the digest renderer's", () => {
29
+ // The system prompt names the label in prose; the digest emits it. If the
30
+ // label constant drifts, the prompt's rule points at nothing.
31
+ expect(INJECTED_PROMPT_LABEL).toContain("Ken autopilot (injected)");
32
+ expect(prompt).toContain("Ken autopilot (injected)");
33
+ });
34
+ });
35
+ describe("buildKenSystemPrompt — chat mode unaffected", () => {
36
+ it("keeps the chat output contract (prompt fence) and no verdict keywords", () => {
37
+ const prompt = buildKenSystemPrompt();
38
+ expect(prompt).toContain("Send to GG Coder");
39
+ // The verdict contract is autopilot-only.
40
+ expect(prompt).not.toContain("ALL_CLEAR");
41
+ });
42
+ });
43
+ //# sourceMappingURL=ken-prompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ken-prompt.test.js","sourceRoot":"","sources":["../../src/core/ken-prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,MAAM,MAAM,GAAG,6BAA6B,EAAE,CAAC;IAE/C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,KAAK,MAAM,OAAO,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC7C,0CAA0C;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -9,10 +9,9 @@ describe("Speed Benchmark", () => {
9
9
  // The optimized run should have a higher cache hit rate — the 7-min gap
10
10
  // turn (turn 4) misses the 5-min cache but hits the 1-h cache.
11
11
  expect(comparison.optimized.cacheHitRate).toBeGreaterThan(comparison.baseline.cacheHitRate);
12
- // The optimized run should have lower total TTFT.
12
+ // The optimization target is lower TTFT. Total wall-clock includes fixed
13
+ // output streaming sleeps and can jitter by a few milliseconds in CI.
13
14
  expect(comparison.optimized.totalTtftMs).toBeLessThan(comparison.baseline.totalTtftMs);
14
- // The optimized run should have lower total wall-clock.
15
- expect(comparison.optimized.totalWallClockMs).toBeLessThan(comparison.baseline.totalWallClockMs);
16
15
  // TTFT improvement should be meaningful (> 5%).
17
16
  expect(comparison.ttftImprovement).toBeGreaterThan(5);
18
17
  }, 30_000);
@@ -1 +1 @@
1
- {"version":3,"file":"speed-benchmark.test.js","sourceRoot":"","sources":["../../src/core/speed-benchmark.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speed-benchmark.test.js","sourceRoot":"","sources":["../../src/core/speed-benchmark.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenkaiiii/ggcoder",
3
- "version": "5.6.0",
3
+ "version": "5.6.1",
4
4
  "type": "module",
5
5
  "description": "CLI coding agent with OAuth authentication for Anthropic, OpenAI, and Gemini",
6
6
  "license": "MIT",
@@ -113,9 +113,9 @@
113
113
  "typescript-language-server": "^5.3.0",
114
114
  "wrap-ansi": "^10.0.0",
115
115
  "zod": "^4.4.3",
116
- "@kenkaiiii/gg-ai": "5.6.0",
117
- "@kenkaiiii/gg-core": "5.6.0",
118
- "@kenkaiiii/gg-agent": "5.6.0"
116
+ "@kenkaiiii/gg-agent": "5.6.1",
117
+ "@kenkaiiii/gg-ai": "5.6.1",
118
+ "@kenkaiiii/gg-core": "5.6.1"
119
119
  },
120
120
  "optionalDependencies": {
121
121
  "@huggingface/transformers": "^3.6.0",