@kenkaiiii/ggcoder 4.3.224 → 4.3.226

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 (133) hide show
  1. package/dist/cli/auth.d.ts +4 -0
  2. package/dist/cli/auth.d.ts.map +1 -0
  3. package/dist/cli/auth.js +344 -0
  4. package/dist/cli/auth.js.map +1 -0
  5. package/dist/cli/pixel.d.ts +27 -0
  6. package/dist/cli/pixel.d.ts.map +1 -0
  7. package/dist/cli/pixel.js +103 -0
  8. package/dist/cli/pixel.js.map +1 -0
  9. package/dist/cli/shared.d.ts +13 -0
  10. package/dist/cli/shared.d.ts.map +1 -0
  11. package/dist/cli/shared.js +82 -0
  12. package/dist/cli/shared.js.map +1 -0
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +8 -537
  15. package/dist/cli.js.map +1 -1
  16. package/dist/core/runtime-mode.js +1 -1
  17. package/dist/core/runtime-mode.js.map +1 -1
  18. package/dist/system-prompt.js +2 -2
  19. package/dist/system-prompt.js.map +1 -1
  20. package/dist/tools/bash.d.ts.map +1 -1
  21. package/dist/tools/bash.js +2 -1
  22. package/dist/tools/bash.js.map +1 -1
  23. package/dist/tools/plan-mode.test.js +13 -1
  24. package/dist/tools/plan-mode.test.js.map +1 -1
  25. package/dist/tools/read-only-bash.d.ts +13 -0
  26. package/dist/tools/read-only-bash.d.ts.map +1 -0
  27. package/dist/tools/read-only-bash.js +155 -0
  28. package/dist/tools/read-only-bash.js.map +1 -0
  29. package/dist/tools/read-only-bash.test.d.ts +2 -0
  30. package/dist/tools/read-only-bash.test.d.ts.map +1 -0
  31. package/dist/tools/read-only-bash.test.js +47 -0
  32. package/dist/tools/read-only-bash.test.js.map +1 -0
  33. package/dist/ui/App.d.ts.map +1 -1
  34. package/dist/ui/App.js +123 -1039
  35. package/dist/ui/App.js.map +1 -1
  36. package/dist/ui/assistant-stream-flush-parity.test.d.ts +2 -0
  37. package/dist/ui/assistant-stream-flush-parity.test.d.ts.map +1 -0
  38. package/dist/ui/assistant-stream-flush-parity.test.js +85 -0
  39. package/dist/ui/assistant-stream-flush-parity.test.js.map +1 -0
  40. package/dist/ui/components/ChatLayout.d.ts +8 -1
  41. package/dist/ui/components/ChatLayout.d.ts.map +1 -1
  42. package/dist/ui/components/ChatLayout.js +4 -2
  43. package/dist/ui/components/ChatLayout.js.map +1 -1
  44. package/dist/ui/components/ChatLivePane.d.ts.map +1 -1
  45. package/dist/ui/components/ChatLivePane.js +15 -1
  46. package/dist/ui/components/ChatLivePane.js.map +1 -1
  47. package/dist/ui/components/InputArea.d.ts.map +1 -1
  48. package/dist/ui/components/InputArea.js +1 -3
  49. package/dist/ui/components/InputArea.js.map +1 -1
  50. package/dist/ui/components/SelectList.d.ts.map +1 -1
  51. package/dist/ui/components/SelectList.js +5 -0
  52. package/dist/ui/components/SelectList.js.map +1 -1
  53. package/dist/ui/components/SlashStyledSelectList.d.ts.map +1 -1
  54. package/dist/ui/components/SlashStyledSelectList.js +5 -0
  55. package/dist/ui/components/SlashStyledSelectList.js.map +1 -1
  56. package/dist/ui/components/ToolGroupExecution.d.ts +5 -2
  57. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
  58. package/dist/ui/components/ToolGroupExecution.js +3 -3
  59. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  60. package/dist/ui/components/index.d.ts +1 -0
  61. package/dist/ui/components/index.d.ts.map +1 -1
  62. package/dist/ui/components/index.js +1 -0
  63. package/dist/ui/components/index.js.map +1 -1
  64. package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +1 -1
  65. package/dist/ui/hooks/useChatLayoutMeasurements.js +4 -1
  66. package/dist/ui/hooks/useChatLayoutMeasurements.js.map +1 -1
  67. package/dist/ui/hooks/useContextCompaction.d.ts +41 -0
  68. package/dist/ui/hooks/useContextCompaction.d.ts.map +1 -0
  69. package/dist/ui/hooks/useContextCompaction.js +149 -0
  70. package/dist/ui/hooks/useContextCompaction.js.map +1 -0
  71. package/dist/ui/hooks/useGoalOrchestration.d.ts +81 -0
  72. package/dist/ui/hooks/useGoalOrchestration.d.ts.map +1 -0
  73. package/dist/ui/hooks/useGoalOrchestration.js +745 -0
  74. package/dist/ui/hooks/useGoalOrchestration.js.map +1 -0
  75. package/dist/ui/hooks/useModeState.d.ts +61 -0
  76. package/dist/ui/hooks/useModeState.d.ts.map +1 -0
  77. package/dist/ui/hooks/useModeState.js +86 -0
  78. package/dist/ui/hooks/useModeState.js.map +1 -0
  79. package/dist/ui/hooks/usePixelFixFlow.d.ts +57 -0
  80. package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -0
  81. package/dist/ui/hooks/usePixelFixFlow.js +102 -0
  82. package/dist/ui/hooks/usePixelFixFlow.js.map +1 -0
  83. package/dist/ui/hooks/useSessionPersistence.d.ts +34 -0
  84. package/dist/ui/hooks/useSessionPersistence.d.ts.map +1 -0
  85. package/dist/ui/hooks/useSessionPersistence.js +67 -0
  86. package/dist/ui/hooks/useSessionPersistence.js.map +1 -0
  87. package/dist/ui/live-area-clamp.test.d.ts +2 -0
  88. package/dist/ui/live-area-clamp.test.d.ts.map +1 -0
  89. package/dist/ui/live-area-clamp.test.js +79 -0
  90. package/dist/ui/live-area-clamp.test.js.map +1 -0
  91. package/dist/ui/live-area-height.d.ts +35 -0
  92. package/dist/ui/live-area-height.d.ts.map +1 -0
  93. package/dist/ui/live-area-height.js +75 -0
  94. package/dist/ui/live-area-height.js.map +1 -0
  95. package/dist/ui/live-area-height.test.d.ts +2 -0
  96. package/dist/ui/live-area-height.test.d.ts.map +1 -0
  97. package/dist/ui/live-area-height.test.js +67 -0
  98. package/dist/ui/live-area-height.test.js.map +1 -0
  99. package/dist/ui/live-frame-height.test.d.ts +2 -0
  100. package/dist/ui/live-frame-height.test.d.ts.map +1 -0
  101. package/dist/ui/live-frame-height.test.js +91 -0
  102. package/dist/ui/live-frame-height.test.js.map +1 -0
  103. package/dist/ui/terminal-history.d.ts.map +1 -1
  104. package/dist/ui/terminal-history.js +13 -4
  105. package/dist/ui/terminal-history.js.map +1 -1
  106. package/dist/ui/terminal-history.test.js +63 -3
  107. package/dist/ui/terminal-history.test.js.map +1 -1
  108. package/dist/ui/tool-group-summary.d.ts +9 -1
  109. package/dist/ui/tool-group-summary.d.ts.map +1 -1
  110. package/dist/ui/tool-group-summary.js +7 -6
  111. package/dist/ui/tool-group-summary.js.map +1 -1
  112. package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -1
  113. package/dist/ui/transcript/TranscriptRenderer.js +10 -2
  114. package/dist/ui/transcript/TranscriptRenderer.js.map +1 -1
  115. package/dist/ui/transcript/spacing.d.ts +15 -5
  116. package/dist/ui/transcript/spacing.d.ts.map +1 -1
  117. package/dist/ui/transcript/spacing.js +35 -9
  118. package/dist/ui/transcript/spacing.js.map +1 -1
  119. package/dist/ui/utils/assistant-stream-split.d.ts +17 -0
  120. package/dist/ui/utils/assistant-stream-split.d.ts.map +1 -1
  121. package/dist/ui/utils/assistant-stream-split.js +38 -1
  122. package/dist/ui/utils/assistant-stream-split.js.map +1 -1
  123. package/dist/ui/utils/assistant-stream-split.test.js +29 -6
  124. package/dist/ui/utils/assistant-stream-split.test.js.map +1 -1
  125. package/dist/ui/utils/terminal-input.d.ts +3 -0
  126. package/dist/ui/utils/terminal-input.d.ts.map +1 -0
  127. package/dist/ui/utils/terminal-input.js +28 -0
  128. package/dist/ui/utils/terminal-input.js.map +1 -0
  129. package/dist/ui/utils/terminal-input.test.d.ts +2 -0
  130. package/dist/ui/utils/terminal-input.test.d.ts.map +1 -0
  131. package/dist/ui/utils/terminal-input.test.js +15 -0
  132. package/dist/ui/utils/terminal-input.test.js.map +1 -0
  133. package/package.json +12 -4
@@ -1,17 +1,40 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { splitAssistantStreamingText } from "./assistant-stream-split.js";
3
3
  describe("splitAssistantStreamingText", () => {
4
- it("keeps assistant text intact so live and history render exactly the same", () => {
4
+ it("keeps single-block text live (nothing to flush yet)", () => {
5
5
  const cases = [
6
- "Dr. Jones keeps a notebook full of odd theories and coffee stains. The next sentence stays with it.",
7
- "1. Dr. Jones keeps a spare notebook.\n2. Dr. Jones believes every mystery deserves coffee first.",
8
- "- Dr. Jones once labeled an entire filing cabinet important.\n- Dr. Jones explains things with metaphors.",
9
- "Paragraph one has a line break.\n\nParagraph two must preserve that exact break.\n\nParagraph three too.",
10
- "Here is code:\n\n```ts\nconst one = 1;\nconst two = 2;\n```\n\nDone.",
6
+ "Dr. Jones keeps a notebook full of odd theories and coffee stains.",
7
+ "1. Dr. Jones keeps a spare notebook.\n2. Dr. Jones believes every mystery deserves coffee.",
8
+ "- Dr. Jones once labeled an entire filing cabinet important.\n- Dr. Jones explains with metaphors.",
11
9
  ];
12
10
  for (const text of cases) {
13
11
  expect(splitAssistantStreamingText(text)).toEqual({ flushedText: "", remainingText: text });
14
12
  }
15
13
  });
14
+ it("flushes completed paragraphs and keeps the trailing block live", () => {
15
+ const text = "Paragraph one.\n\nParagraph two.\n\nParagraph three in progress";
16
+ const { flushedText, remainingText } = splitAssistantStreamingText(text);
17
+ expect(flushedText).toBe("Paragraph one.\n\nParagraph two.\n\n");
18
+ expect(remainingText).toBe("Paragraph three in progress");
19
+ });
20
+ it("is lossless: flushedText + remainingText === text", () => {
21
+ const text = "A.\n\nB.\n\nC still going";
22
+ const { flushedText, remainingText } = splitAssistantStreamingText(text);
23
+ expect(flushedText + remainingText).toBe(text);
24
+ });
25
+ it("never splits at a blank line inside an open code fence", () => {
26
+ // The blank line between the two consts is inside an unterminated fence and
27
+ // must not be a split point; only the paragraph break before the fence is.
28
+ const text = "Here is code:\n\n```ts\nconst one = 1;\n\nconst two = 2;";
29
+ const { flushedText, remainingText } = splitAssistantStreamingText(text);
30
+ expect(flushedText).toBe("Here is code:\n\n");
31
+ expect(remainingText).toBe("```ts\nconst one = 1;\n\nconst two = 2;");
32
+ });
33
+ it("flushes past a closed code fence", () => {
34
+ const text = "Intro.\n\n```ts\nconst x = 1;\n```\n\nTrailing in progress";
35
+ const { flushedText, remainingText } = splitAssistantStreamingText(text);
36
+ expect(flushedText).toBe("Intro.\n\n```ts\nconst x = 1;\n```\n\n");
37
+ expect(remainingText).toBe("Trailing in progress");
38
+ });
16
39
  });
17
40
  //# sourceMappingURL=assistant-stream-split.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-stream-split.test.js","sourceRoot":"","sources":["../../../src/ui/utils/assistant-stream-split.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,KAAK,GAAG;YACZ,qGAAqG;YACrG,kGAAkG;YAClG,2GAA2G;YAC3G,0GAA0G;YAC1G,sEAAsE;SACvE,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"assistant-stream-split.test.js","sourceRoot":"","sources":["../../../src/ui/utils/assistant-stream-split.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,KAAK,GAAG;YACZ,oEAAoE;YACpE,4FAA4F;YAC5F,oGAAoG;SACrG,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,IAAI,GAAG,iEAAiE,CAAC;QAC/E,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACjE,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,2BAA2B,CAAC;QACzC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,IAAI,GAAG,0DAA0D,CAAC;QACxE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,4DAA4D,CAAC;QAC1E,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACnE,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function stripTerminalFocusSequences(input: string): string;
2
+ export declare function isTerminalFocusSequence(input: string): boolean;
3
+ //# sourceMappingURL=terminal-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-input.d.ts","sourceRoot":"","sources":["../../../src/ui/utils/terminal-input.ts"],"names":[],"mappings":"AAWA,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBjE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,28 @@
1
+ // Terminal focus reporting emits CSI I / CSI O when the terminal window gains
2
+ // or loses focus. In normal raw input these arrive as ESC [ I and ESC [ O, but
3
+ // some terminal/Ink/tmux combinations can split or strip the ESC byte so the
4
+ // application sees literal "[I" / "[O" chunks. If those reach text inputs or
5
+ // filterable selectors they become visible garbage like `[I[O[I`.
6
+ const ESC = String.fromCharCode(27);
7
+ const ESC_FOCUS_GAINED = `${ESC}[I`;
8
+ const ESC_FOCUS_LOST = `${ESC}[O`;
9
+ const ESC_LESS_FOCUS_GAINED = "[I";
10
+ const ESC_LESS_FOCUS_LOST = "[O";
11
+ export function stripTerminalFocusSequences(input) {
12
+ const withoutEscFocusReports = input
13
+ .replaceAll(ESC_FOCUS_GAINED, "")
14
+ .replaceAll(ESC_FOCUS_LOST, "");
15
+ let remaining = withoutEscFocusReports;
16
+ while (remaining.length > 0) {
17
+ if (remaining.startsWith(ESC_LESS_FOCUS_GAINED) || remaining.startsWith(ESC_LESS_FOCUS_LOST)) {
18
+ remaining = remaining.slice(2);
19
+ continue;
20
+ }
21
+ return withoutEscFocusReports;
22
+ }
23
+ return "";
24
+ }
25
+ export function isTerminalFocusSequence(input) {
26
+ return stripTerminalFocusSequences(input).length === 0 && input.length > 0;
27
+ }
28
+ //# sourceMappingURL=terminal-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-input.js","sourceRoot":"","sources":["../../../src/ui/utils/terminal-input.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,kEAAkE;AAClE,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACpC,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,CAAC;AACpC,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,UAAU,2BAA2B,CAAC,KAAa;IACvD,MAAM,sBAAsB,GAAG,KAAK;SACjC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAChC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,SAAS,GAAG,sBAAsB,CAAC;IAEvC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC7F,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal-input.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-input.test.d.ts","sourceRoot":"","sources":["../../../src/ui/utils/terminal-input.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { isTerminalFocusSequence, stripTerminalFocusSequences } from "./terminal-input.js";
3
+ describe("terminal focus-report input sanitizing", () => {
4
+ it("removes normal and ESC-less focus reports", () => {
5
+ expect(stripTerminalFocusSequences("\x1b[I\x1b[O\x1b[I")).toBe("");
6
+ expect(stripTerminalFocusSequences("[I[O[I")).toBe("");
7
+ expect(stripTerminalFocusSequences("a[I\x1b[Ob")).toBe("a[Ib");
8
+ });
9
+ it("detects chunks that are only focus reports", () => {
10
+ expect(isTerminalFocusSequence("[I[O[I")).toBe(true);
11
+ expect(isTerminalFocusSequence("\x1b[I")).toBe(true);
12
+ expect(isTerminalFocusSequence("model")).toBe(false);
13
+ });
14
+ });
15
+ //# sourceMappingURL=terminal-input.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-input.test.js","sourceRoot":"","sources":["../../../src/ui/utils/terminal-input.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE3F,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenkaiiii/ggcoder",
3
- "version": "4.3.224",
3
+ "version": "4.3.226",
4
4
  "type": "module",
5
5
  "description": "CLI coding agent with OAuth authentication for Anthropic, OpenAI, and Gemini",
6
6
  "license": "MIT",
@@ -57,6 +57,14 @@
57
57
  "import": "./dist/ui/terminal-history.js",
58
58
  "types": "./dist/ui/terminal-history.d.ts"
59
59
  },
60
+ "./ui/tool-group-summary": {
61
+ "import": "./dist/ui/tool-group-summary.js",
62
+ "types": "./dist/ui/tool-group-summary.d.ts"
63
+ },
64
+ "./ui/transcript/tool-presentation": {
65
+ "import": "./dist/ui/transcript/tool-presentation.js",
66
+ "types": "./dist/ui/transcript/tool-presentation.d.ts"
67
+ },
60
68
  "./ui/terminal-history-format": {
61
69
  "import": "./dist/ui/terminal-history-format.js",
62
70
  "types": "./dist/ui/terminal-history-format.d.ts"
@@ -102,9 +110,9 @@
102
110
  "strip-ansi": "^7.2.0",
103
111
  "wrap-ansi": "^10.0.0",
104
112
  "zod": "^4.4.3",
105
- "@kenkaiiii/gg-agent": "4.3.224",
106
- "@kenkaiiii/gg-pixel": "4.3.100",
107
- "@kenkaiiii/gg-ai": "4.3.224"
113
+ "@kenkaiiii/gg-agent": "4.3.226",
114
+ "@kenkaiiii/gg-pixel": "4.3.101",
115
+ "@kenkaiiii/gg-ai": "4.3.226"
108
116
  },
109
117
  "optionalDependencies": {
110
118
  "@huggingface/transformers": "^3.6.0",