@kenkaiiii/ggcoder 4.3.208 → 4.3.210

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 (85) hide show
  1. package/dist/core/compaction/compactor.d.ts +4 -0
  2. package/dist/core/compaction/compactor.d.ts.map +1 -1
  3. package/dist/core/compaction/compactor.js +34 -3
  4. package/dist/core/compaction/compactor.js.map +1 -1
  5. package/dist/core/compaction/compactor.test.js +20 -1
  6. package/dist/core/compaction/compactor.test.js.map +1 -1
  7. package/dist/core/goal-controller.js +9 -9
  8. package/dist/core/goal-controller.js.map +1 -1
  9. package/dist/core/goal-controller.test.js +76 -12
  10. package/dist/core/goal-controller.test.js.map +1 -1
  11. package/dist/core/goal-lifecycle-smoke.test.js +2 -3
  12. package/dist/core/goal-lifecycle-smoke.test.js.map +1 -1
  13. package/dist/core/goal-store.d.ts +1 -1
  14. package/dist/core/goal-store.d.ts.map +1 -1
  15. package/dist/core/goal-store.js +38 -2
  16. package/dist/core/goal-store.js.map +1 -1
  17. package/dist/core/goal-store.test.js +32 -0
  18. package/dist/core/goal-store.test.js.map +1 -1
  19. package/dist/core/process-manager-dev-server-repro.test.js +37 -1
  20. package/dist/core/process-manager-dev-server-repro.test.js.map +1 -1
  21. package/dist/core/process-manager.d.ts +9 -0
  22. package/dist/core/process-manager.d.ts.map +1 -1
  23. package/dist/core/process-manager.js +20 -6
  24. package/dist/core/process-manager.js.map +1 -1
  25. package/dist/core/prompt-commands.d.ts.map +1 -1
  26. package/dist/core/prompt-commands.js +41 -21
  27. package/dist/core/prompt-commands.js.map +1 -1
  28. package/dist/core/prompt-commands.test.js +87 -21
  29. package/dist/core/prompt-commands.test.js.map +1 -1
  30. package/dist/system-prompt.js +1 -1
  31. package/dist/system-prompt.js.map +1 -1
  32. package/dist/system-prompt.test.js +58 -0
  33. package/dist/system-prompt.test.js.map +1 -1
  34. package/dist/tools/bash.d.ts.map +1 -1
  35. package/dist/tools/bash.js +2 -51
  36. package/dist/tools/bash.js.map +1 -1
  37. package/dist/tools/goals.d.ts +1 -0
  38. package/dist/tools/goals.d.ts.map +1 -1
  39. package/dist/tools/goals.js +10 -2
  40. package/dist/tools/goals.js.map +1 -1
  41. package/dist/tools/goals.test.js +85 -0
  42. package/dist/tools/goals.test.js.map +1 -1
  43. package/dist/tools/grep.d.ts.map +1 -1
  44. package/dist/tools/grep.js +22 -5
  45. package/dist/tools/grep.js.map +1 -1
  46. package/dist/tools/grep.test.d.ts +2 -0
  47. package/dist/tools/grep.test.d.ts.map +1 -0
  48. package/dist/tools/grep.test.js +20 -0
  49. package/dist/tools/grep.test.js.map +1 -0
  50. package/dist/tools/safe-env.d.ts +2 -0
  51. package/dist/tools/safe-env.d.ts.map +1 -0
  52. package/dist/tools/safe-env.js +52 -0
  53. package/dist/tools/safe-env.js.map +1 -0
  54. package/dist/tools/web-fetch.d.ts +5 -0
  55. package/dist/tools/web-fetch.d.ts.map +1 -1
  56. package/dist/tools/web-fetch.js +12 -1
  57. package/dist/tools/web-fetch.js.map +1 -1
  58. package/dist/tools/web-fetch.test.js +9 -0
  59. package/dist/tools/web-fetch.test.js.map +1 -1
  60. package/dist/ui/App.d.ts +3 -0
  61. package/dist/ui/App.d.ts.map +1 -1
  62. package/dist/ui/App.js +171 -164
  63. package/dist/ui/App.js.map +1 -1
  64. package/dist/ui/app-state-persistence.test.js +56 -0
  65. package/dist/ui/app-state-persistence.test.js.map +1 -1
  66. package/dist/ui/components/GoalStatusBar.d.ts.map +1 -1
  67. package/dist/ui/components/GoalStatusBar.js +2 -1
  68. package/dist/ui/components/GoalStatusBar.js.map +1 -1
  69. package/dist/ui/goal-events.test.js +19 -0
  70. package/dist/ui/goal-events.test.js.map +1 -1
  71. package/dist/ui/goal-lifecycle-orchestration.test.d.ts +2 -0
  72. package/dist/ui/goal-lifecycle-orchestration.test.d.ts.map +1 -0
  73. package/dist/ui/goal-lifecycle-orchestration.test.js +445 -0
  74. package/dist/ui/goal-lifecycle-orchestration.test.js.map +1 -0
  75. package/dist/ui/goal-overlay.test.js +30 -0
  76. package/dist/ui/goal-overlay.test.js.map +1 -1
  77. package/dist/ui/goal-status-bar.test.js +29 -0
  78. package/dist/ui/goal-status-bar.test.js.map +1 -1
  79. package/dist/ui/queued-message.test.d.ts +2 -0
  80. package/dist/ui/queued-message.test.d.ts.map +1 -0
  81. package/dist/ui/queued-message.test.js +30 -0
  82. package/dist/ui/queued-message.test.js.map +1 -0
  83. package/dist/ui/slash-command-images.test.js +10 -0
  84. package/dist/ui/slash-command-images.test.js.map +1 -1
  85. package/package.json +6 -5
@@ -0,0 +1,30 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import { describe, expect, it } from "vitest";
4
+ import { isActiveItem } from "./App.js";
5
+ const appSource = readFileSync(fileURLToPath(new URL("./App.tsx", import.meta.url)), "utf8");
6
+ function queuedItem(overrides = {}) {
7
+ return {
8
+ kind: "queued",
9
+ text: "follow-up prompt",
10
+ id: "queued-1",
11
+ ...overrides,
12
+ };
13
+ }
14
+ describe("queued message UI invariants", () => {
15
+ it("uses a non-emoji dot marker with warning color styling", () => {
16
+ const renderItemStart = appSource.indexOf("const renderItem");
17
+ expect(renderItemStart).toBeGreaterThanOrEqual(0);
18
+ const queuedBranchStart = appSource.indexOf('case "queued":', renderItemStart);
19
+ expect(queuedBranchStart).toBeGreaterThanOrEqual(0);
20
+ const queuedBranch = appSource.slice(queuedBranchStart, appSource.indexOf('case "compacting":', queuedBranchStart));
21
+ expect(queuedBranch).toContain('{"• "}');
22
+ expect(queuedBranch).toContain("theme.warning");
23
+ expect(queuedBranch).toContain("Queued: ");
24
+ expect(queuedBranch).not.toContain("⏳");
25
+ });
26
+ it("keeps queued placeholders active so insertion flush removes them from live items", () => {
27
+ expect(isActiveItem(queuedItem())).toBe(true);
28
+ });
29
+ });
30
+ //# sourceMappingURL=queued-message.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queued-message.test.js","sourceRoot":"","sources":["../../src/ui/queued-message.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAsB,MAAM,UAAU,CAAC;AAE5D,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAE7F,SAAS,UAAU,CAAC,YAAiE,EAAE;IACrF,OAAO;QACL,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,kBAAkB;QACxB,EAAE,EAAE,UAAU;QACd,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,CAAC,eAAe,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC/E,MAAM,CAAC,iBAAiB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAClC,iBAAiB,EACjB,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAC3D,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -9,6 +9,16 @@ describe("prompt-template slash commands with attachments", () => {
9
9
  expect(route?.fullPrompt).toContain(route?.promptText);
10
10
  expect(route?.fullPrompt).toContain("## User Instructions");
11
11
  expect(route?.fullPrompt).toContain("do X");
12
+ expect(route?.fullPrompt).toContain("concrete success criteria that can be verified");
13
+ expect(route?.fullPrompt).toContain("Completion means verifier evidence satisfies the original success criteria");
14
+ });
15
+ it("routes /goal markdown and multiline text without losing rendered edge cases", () => {
16
+ const args = "prove **bold** UI renders\n- keep `code` text\n- wrap very long labels";
17
+ const route = routePromptCommandInput(`/goal ${args}`);
18
+ expect(route).toMatchObject({ cmdName: "goal", cmdArgs: args });
19
+ expect(route?.fullPrompt).toContain(`## User Instructions\n\n${args}`);
20
+ expect(route?.fullPrompt).toContain("**bold** UI renders");
21
+ expect(route?.fullPrompt).toContain("`code` text");
12
22
  });
13
23
  it("builds multimodal user content with the full prompt text and image block", () => {
14
24
  const fullPrompt = "Goal command prompt\n\n## User Instructions\n\ndo X";
@@ -1 +1 @@
1
- {"version":3,"file":"slash-command-images.test.js","sourceRoot":"","sources":["../../src/ui/slash-command-images.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEpF,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC/D,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,UAAU,GAAG,qDAAqD,CAAC;QACzE,MAAM,eAAe,GAAoB;YACvC,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,cAAc;SACrB,CAAC;QAEF,MAAM,OAAO,GAAG,+BAA+B,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;QAErF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;YAClC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE;SAChE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,cAAc,GAAoB;YACtC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,mBAAmB;SAC1B,CAAC;QAEF,MAAM,OAAO,GAAG,+BAA+B,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;QAExF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qDAAqD,EAAE;SAC9E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,UAAU,GAAG,qDAAqD,CAAC;QAEzE,MAAM,CAAC,+BAA+B,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"slash-command-images.test.js","sourceRoot":"","sources":["../../src/ui/slash-command-images.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": "4.3.208",
3
+ "version": "4.3.210",
4
4
  "type": "module",
5
5
  "description": "CLI coding agent with OAuth authentication for Anthropic, OpenAI, and Gemini",
6
6
  "license": "MIT",
@@ -79,10 +79,10 @@
79
79
  "string-width": "^8.2.0",
80
80
  "wrap-ansi": "^10.0.0",
81
81
  "zod": "^4.4.3",
82
- "@kenkaiiii/gg-ai": "4.3.208",
83
- "@kenkaiiii/gg-agent": "4.3.208",
84
- "@kenkaiiii/ggcoder-eyes": "0.1.4",
85
- "@kenkaiiii/gg-pixel": "4.3.97"
82
+ "@kenkaiiii/gg-ai": "4.3.210",
83
+ "@kenkaiiii/ggcoder-eyes": "0.1.5",
84
+ "@kenkaiiii/gg-agent": "4.3.210",
85
+ "@kenkaiiii/gg-pixel": "4.3.98"
86
86
  },
87
87
  "optionalDependencies": {
88
88
  "@huggingface/transformers": "^3.6.0",
@@ -102,6 +102,7 @@
102
102
  "build": "pnpm clean && tsc",
103
103
  "check": "tsc --noEmit",
104
104
  "test": "vitest run",
105
+ "verify:goal:e2e": "pnpm dlx tsx scripts/verify-goal-e2e.ts",
105
106
  "verify:repomap": "pnpm build && node scripts/verify-repomap-focus.js",
106
107
  "verify:repomap:cold-start": "pnpm build && node scripts/verify-repomap-cold-start.js"
107
108
  }