@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.
- package/dist/core/compaction/compactor.d.ts +4 -0
- package/dist/core/compaction/compactor.d.ts.map +1 -1
- package/dist/core/compaction/compactor.js +34 -3
- package/dist/core/compaction/compactor.js.map +1 -1
- package/dist/core/compaction/compactor.test.js +20 -1
- package/dist/core/compaction/compactor.test.js.map +1 -1
- package/dist/core/goal-controller.js +9 -9
- package/dist/core/goal-controller.js.map +1 -1
- package/dist/core/goal-controller.test.js +76 -12
- package/dist/core/goal-controller.test.js.map +1 -1
- package/dist/core/goal-lifecycle-smoke.test.js +2 -3
- package/dist/core/goal-lifecycle-smoke.test.js.map +1 -1
- package/dist/core/goal-store.d.ts +1 -1
- package/dist/core/goal-store.d.ts.map +1 -1
- package/dist/core/goal-store.js +38 -2
- package/dist/core/goal-store.js.map +1 -1
- package/dist/core/goal-store.test.js +32 -0
- package/dist/core/goal-store.test.js.map +1 -1
- package/dist/core/process-manager-dev-server-repro.test.js +37 -1
- package/dist/core/process-manager-dev-server-repro.test.js.map +1 -1
- package/dist/core/process-manager.d.ts +9 -0
- package/dist/core/process-manager.d.ts.map +1 -1
- package/dist/core/process-manager.js +20 -6
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/prompt-commands.d.ts.map +1 -1
- package/dist/core/prompt-commands.js +41 -21
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/prompt-commands.test.js +87 -21
- package/dist/core/prompt-commands.test.js.map +1 -1
- package/dist/system-prompt.js +1 -1
- package/dist/system-prompt.js.map +1 -1
- package/dist/system-prompt.test.js +58 -0
- package/dist/system-prompt.test.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +2 -51
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/goals.d.ts +1 -0
- package/dist/tools/goals.d.ts.map +1 -1
- package/dist/tools/goals.js +10 -2
- package/dist/tools/goals.js.map +1 -1
- package/dist/tools/goals.test.js +85 -0
- package/dist/tools/goals.test.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +22 -5
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/grep.test.d.ts +2 -0
- package/dist/tools/grep.test.d.ts.map +1 -0
- package/dist/tools/grep.test.js +20 -0
- package/dist/tools/grep.test.js.map +1 -0
- package/dist/tools/safe-env.d.ts +2 -0
- package/dist/tools/safe-env.d.ts.map +1 -0
- package/dist/tools/safe-env.js +52 -0
- package/dist/tools/safe-env.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +5 -0
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +12 -1
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-fetch.test.js +9 -0
- package/dist/tools/web-fetch.test.js.map +1 -1
- package/dist/ui/App.d.ts +3 -0
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +171 -164
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/app-state-persistence.test.js +56 -0
- package/dist/ui/app-state-persistence.test.js.map +1 -1
- package/dist/ui/components/GoalStatusBar.d.ts.map +1 -1
- package/dist/ui/components/GoalStatusBar.js +2 -1
- package/dist/ui/components/GoalStatusBar.js.map +1 -1
- package/dist/ui/goal-events.test.js +19 -0
- package/dist/ui/goal-events.test.js.map +1 -1
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts +2 -0
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts.map +1 -0
- package/dist/ui/goal-lifecycle-orchestration.test.js +445 -0
- package/dist/ui/goal-lifecycle-orchestration.test.js.map +1 -0
- package/dist/ui/goal-overlay.test.js +30 -0
- package/dist/ui/goal-overlay.test.js.map +1 -1
- package/dist/ui/goal-status-bar.test.js +29 -0
- package/dist/ui/goal-status-bar.test.js.map +1 -1
- package/dist/ui/queued-message.test.d.ts +2 -0
- package/dist/ui/queued-message.test.d.ts.map +1 -0
- package/dist/ui/queued-message.test.js +30 -0
- package/dist/ui/queued-message.test.js.map +1 -0
- package/dist/ui/slash-command-images.test.js +10 -0
- package/dist/ui/slash-command-images.test.js.map +1 -1
- 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;
|
|
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.
|
|
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.
|
|
83
|
-
"@kenkaiiii/
|
|
84
|
-
"@kenkaiiii/
|
|
85
|
-
"@kenkaiiii/gg-pixel": "4.3.
|
|
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
|
}
|