@kenkaiiii/ggcoder 4.3.205 → 4.3.206

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 (173) hide show
  1. package/dist/cli.js +38 -26
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.js +2 -2
  4. package/dist/core/compaction/compactor.d.ts.map +1 -1
  5. package/dist/core/compaction/compactor.js +6 -0
  6. package/dist/core/compaction/compactor.js.map +1 -1
  7. package/dist/core/compaction/compactor.test.js +16 -0
  8. package/dist/core/compaction/compactor.test.js.map +1 -1
  9. package/dist/core/goal-controller.d.ts +57 -0
  10. package/dist/core/goal-controller.d.ts.map +1 -0
  11. package/dist/core/goal-controller.js +285 -0
  12. package/dist/core/goal-controller.js.map +1 -0
  13. package/dist/core/goal-controller.test.d.ts +2 -0
  14. package/dist/core/goal-controller.test.d.ts.map +1 -0
  15. package/dist/core/goal-controller.test.js +377 -0
  16. package/dist/core/goal-controller.test.js.map +1 -0
  17. package/dist/core/goal-lifecycle-smoke.test.d.ts +2 -0
  18. package/dist/core/goal-lifecycle-smoke.test.d.ts.map +1 -0
  19. package/dist/core/goal-lifecycle-smoke.test.js +207 -0
  20. package/dist/core/goal-lifecycle-smoke.test.js.map +1 -0
  21. package/dist/core/goal-store.d.ts +164 -0
  22. package/dist/core/goal-store.d.ts.map +1 -0
  23. package/dist/core/goal-store.js +721 -0
  24. package/dist/core/goal-store.js.map +1 -0
  25. package/dist/core/goal-store.test.d.ts +2 -0
  26. package/dist/core/goal-store.test.d.ts.map +1 -0
  27. package/dist/core/goal-store.test.js +341 -0
  28. package/dist/core/goal-store.test.js.map +1 -0
  29. package/dist/core/goal-verifier.d.ts +17 -0
  30. package/dist/core/goal-verifier.d.ts.map +1 -0
  31. package/dist/core/goal-verifier.js +84 -0
  32. package/dist/core/goal-verifier.js.map +1 -0
  33. package/dist/core/goal-verifier.test.d.ts +2 -0
  34. package/dist/core/goal-verifier.test.d.ts.map +1 -0
  35. package/dist/core/goal-verifier.test.js +88 -0
  36. package/dist/core/goal-verifier.test.js.map +1 -0
  37. package/dist/core/goal-worker.d.ts +47 -0
  38. package/dist/core/goal-worker.d.ts.map +1 -0
  39. package/dist/core/goal-worker.js +329 -0
  40. package/dist/core/goal-worker.js.map +1 -0
  41. package/dist/core/goal-worker.test.d.ts +2 -0
  42. package/dist/core/goal-worker.test.d.ts.map +1 -0
  43. package/dist/core/goal-worker.test.js +206 -0
  44. package/dist/core/goal-worker.test.js.map +1 -0
  45. package/dist/core/oauth/gemini.d.ts.map +1 -1
  46. package/dist/core/oauth/gemini.js +138 -30
  47. package/dist/core/oauth/gemini.js.map +1 -1
  48. package/dist/core/oauth/gemini.test.d.ts +2 -0
  49. package/dist/core/oauth/gemini.test.d.ts.map +1 -0
  50. package/dist/core/oauth/gemini.test.js +154 -0
  51. package/dist/core/oauth/gemini.test.js.map +1 -0
  52. package/dist/core/prompt-commands.d.ts.map +1 -1
  53. package/dist/core/prompt-commands.js +124 -0
  54. package/dist/core/prompt-commands.js.map +1 -1
  55. package/dist/core/prompt-commands.test.js +36 -0
  56. package/dist/core/prompt-commands.test.js.map +1 -1
  57. package/dist/index.d.ts +1 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +1 -1
  60. package/dist/index.js.map +1 -1
  61. package/dist/interactive.d.ts.map +1 -1
  62. package/dist/interactive.js +20 -11
  63. package/dist/interactive.js.map +1 -1
  64. package/dist/system-prompt.d.ts.map +1 -1
  65. package/dist/system-prompt.js +18 -50
  66. package/dist/system-prompt.js.map +1 -1
  67. package/dist/system-prompt.test.js +124 -1
  68. package/dist/system-prompt.test.js.map +1 -1
  69. package/dist/tools/edit-diff.d.ts.map +1 -1
  70. package/dist/tools/edit-diff.js +71 -32
  71. package/dist/tools/edit-diff.js.map +1 -1
  72. package/dist/tools/edit-diff.test.js +14 -0
  73. package/dist/tools/edit-diff.test.js.map +1 -1
  74. package/dist/tools/edit.d.ts.map +1 -1
  75. package/dist/tools/edit.js +16 -6
  76. package/dist/tools/edit.js.map +1 -1
  77. package/dist/tools/edit.test.js +27 -0
  78. package/dist/tools/edit.test.js.map +1 -1
  79. package/dist/tools/enter-plan.d.ts.map +1 -1
  80. package/dist/tools/enter-plan.js +1 -0
  81. package/dist/tools/enter-plan.js.map +1 -1
  82. package/dist/tools/goals.d.ts +110 -0
  83. package/dist/tools/goals.d.ts.map +1 -0
  84. package/dist/tools/goals.js +500 -0
  85. package/dist/tools/goals.js.map +1 -0
  86. package/dist/tools/goals.test.d.ts +2 -0
  87. package/dist/tools/goals.test.d.ts.map +1 -0
  88. package/dist/tools/goals.test.js +431 -0
  89. package/dist/tools/goals.test.js.map +1 -0
  90. package/dist/tools/index.d.ts +2 -0
  91. package/dist/tools/index.d.ts.map +1 -1
  92. package/dist/tools/index.js +6 -0
  93. package/dist/tools/index.js.map +1 -1
  94. package/dist/tools/prompt-hints.d.ts.map +1 -1
  95. package/dist/tools/prompt-hints.js +2 -0
  96. package/dist/tools/prompt-hints.js.map +1 -1
  97. package/dist/tools/source-path.d.ts +9 -0
  98. package/dist/tools/source-path.d.ts.map +1 -0
  99. package/dist/tools/source-path.js +119 -0
  100. package/dist/tools/source-path.js.map +1 -0
  101. package/dist/tools/source-path.test.d.ts +2 -0
  102. package/dist/tools/source-path.test.d.ts.map +1 -0
  103. package/dist/tools/source-path.test.js +80 -0
  104. package/dist/tools/source-path.test.js.map +1 -0
  105. package/dist/tools/subagent.js +16 -0
  106. package/dist/tools/subagent.js.map +1 -1
  107. package/dist/ui/App.d.ts +36 -3
  108. package/dist/ui/App.d.ts.map +1 -1
  109. package/dist/ui/App.js +879 -57
  110. package/dist/ui/App.js.map +1 -1
  111. package/dist/ui/activity-phrases.d.ts.map +1 -1
  112. package/dist/ui/activity-phrases.js +7 -3
  113. package/dist/ui/activity-phrases.js.map +1 -1
  114. package/dist/ui/app-state-persistence.test.d.ts +2 -0
  115. package/dist/ui/app-state-persistence.test.d.ts.map +1 -0
  116. package/dist/ui/app-state-persistence.test.js +56 -0
  117. package/dist/ui/app-state-persistence.test.js.map +1 -0
  118. package/dist/ui/components/BackgroundTasksBar.d.ts +16 -1
  119. package/dist/ui/components/BackgroundTasksBar.d.ts.map +1 -1
  120. package/dist/ui/components/BackgroundTasksBar.js +15 -2
  121. package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
  122. package/dist/ui/components/Banner.d.ts +2 -1
  123. package/dist/ui/components/Banner.d.ts.map +1 -1
  124. package/dist/ui/components/Banner.js +3 -3
  125. package/dist/ui/components/Banner.js.map +1 -1
  126. package/dist/ui/components/GoalOverlay.d.ts +21 -0
  127. package/dist/ui/components/GoalOverlay.d.ts.map +1 -0
  128. package/dist/ui/components/GoalOverlay.js +336 -0
  129. package/dist/ui/components/GoalOverlay.js.map +1 -0
  130. package/dist/ui/components/GoalStatusBar.d.ts +24 -0
  131. package/dist/ui/components/GoalStatusBar.d.ts.map +1 -0
  132. package/dist/ui/components/GoalStatusBar.js +113 -0
  133. package/dist/ui/components/GoalStatusBar.js.map +1 -0
  134. package/dist/ui/components/InputArea.d.ts +2 -1
  135. package/dist/ui/components/InputArea.d.ts.map +1 -1
  136. package/dist/ui/components/InputArea.js +6 -1
  137. package/dist/ui/components/InputArea.js.map +1 -1
  138. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  139. package/dist/ui/components/ToolExecution.js +94 -1
  140. package/dist/ui/components/ToolExecution.js.map +1 -1
  141. package/dist/ui/footer-status-layout.test.d.ts +2 -0
  142. package/dist/ui/footer-status-layout.test.d.ts.map +1 -0
  143. package/dist/ui/footer-status-layout.test.js +56 -0
  144. package/dist/ui/footer-status-layout.test.js.map +1 -0
  145. package/dist/ui/goal-events.d.ts +20 -0
  146. package/dist/ui/goal-events.d.ts.map +1 -0
  147. package/dist/ui/goal-events.js +102 -0
  148. package/dist/ui/goal-events.js.map +1 -0
  149. package/dist/ui/goal-events.test.d.ts +2 -0
  150. package/dist/ui/goal-events.test.d.ts.map +1 -0
  151. package/dist/ui/goal-events.test.js +208 -0
  152. package/dist/ui/goal-events.test.js.map +1 -0
  153. package/dist/ui/goal-overlay.test.d.ts +2 -0
  154. package/dist/ui/goal-overlay.test.d.ts.map +1 -0
  155. package/dist/ui/goal-overlay.test.js +122 -0
  156. package/dist/ui/goal-overlay.test.js.map +1 -0
  157. package/dist/ui/goal-status-bar.test.d.ts +2 -0
  158. package/dist/ui/goal-status-bar.test.d.ts.map +1 -0
  159. package/dist/ui/goal-status-bar.test.js +143 -0
  160. package/dist/ui/goal-status-bar.test.js.map +1 -0
  161. package/dist/ui/live-item-flush.test.js +48 -0
  162. package/dist/ui/live-item-flush.test.js.map +1 -1
  163. package/dist/ui/render.d.ts +8 -3
  164. package/dist/ui/render.d.ts.map +1 -1
  165. package/dist/ui/render.js +10 -3
  166. package/dist/ui/render.js.map +1 -1
  167. package/dist/ui/scroll-stabilization.test.d.ts +2 -0
  168. package/dist/ui/scroll-stabilization.test.d.ts.map +1 -0
  169. package/dist/ui/scroll-stabilization.test.js +23 -0
  170. package/dist/ui/scroll-stabilization.test.js.map +1 -0
  171. package/dist/utils/format.js +44 -0
  172. package/dist/utils/format.js.map +1 -1
  173. package/package.json +6 -5
@@ -0,0 +1,431 @@
1
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
2
+ import fs from "node:fs/promises";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { createGoalsTool } from "./goals.js";
6
+ import { decideGoalNextAction } from "../core/goal-controller.js";
7
+ import { getGoalRun, upsertGoalRun } from "../core/goal-store.js";
8
+ let tmpBase;
9
+ let tmpProject;
10
+ async function executeGoals(args) {
11
+ return createGoalsTool(tmpProject).execute(args, {
12
+ signal: new AbortController().signal,
13
+ toolCallId: "test-call",
14
+ });
15
+ }
16
+ beforeEach(async () => {
17
+ tmpBase = await fs.mkdtemp(path.join(os.tmpdir(), "goals-tool-test-base-"));
18
+ tmpProject = await fs.mkdtemp(path.join(os.tmpdir(), "goals-tool-test-project-"));
19
+ process.env.GG_GOALS_BASE = tmpBase;
20
+ });
21
+ afterEach(async () => {
22
+ delete process.env.GG_GOALS_BASE;
23
+ await fs.rm(tmpBase, { recursive: true, force: true });
24
+ await fs.rm(tmpProject, { recursive: true, force: true });
25
+ });
26
+ describe("goals tool state guards", () => {
27
+ it("updates an explicit run_id task and evidence when no active goal exists in the caller cwd", async () => {
28
+ const runProject = await fs.mkdtemp(path.join(os.tmpdir(), "goals-tool-explicit-run-project-"));
29
+ try {
30
+ await upsertGoalRun(runProject, {
31
+ id: "099c9f7f-bce7-475c-93b8-d9b3f88a0569",
32
+ title: "Explicit run",
33
+ goal: "Update from worker cwd",
34
+ status: "passed",
35
+ });
36
+ const tool = createGoalsTool(tmpProject);
37
+ const taskResult = await tool.execute({
38
+ action: "task",
39
+ run_id: "099c9f7f-bce7-475c-93b8-d9b3f88a0569",
40
+ task_id: "worker-task",
41
+ task_title: "Worker callback",
42
+ task_prompt: "Persist callback",
43
+ task_status: "done",
44
+ summary: "callback complete",
45
+ }, { signal: new AbortController().signal, toolCallId: "test-call" });
46
+ const evidenceResult = await tool.execute({
47
+ action: "evidence",
48
+ run_id: "099c9f7f",
49
+ evidence_kind: "summary",
50
+ evidence_label: "Worker evidence",
51
+ evidence_content: "same discovered run",
52
+ }, { signal: new AbortController().signal, toolCallId: "test-call" });
53
+ const run = await getGoalRun(runProject, "099c9f7f");
54
+ expect(taskResult).toBe('Goal task added: "Worker callback".');
55
+ expect(evidenceResult).toBe('Evidence added to "Explicit run".');
56
+ expect(run?.tasks).toEqual(expect.arrayContaining([
57
+ expect.objectContaining({
58
+ id: "worker-task",
59
+ status: "done",
60
+ lastSummary: "callback complete",
61
+ }),
62
+ ]));
63
+ expect(run?.evidence).toEqual(expect.arrayContaining([
64
+ expect.objectContaining({ label: "Worker evidence", content: "same discovered run" }),
65
+ ]));
66
+ }
67
+ finally {
68
+ await fs.rm(runProject, { recursive: true, force: true });
69
+ }
70
+ });
71
+ it("preserves task title and prompt when updating task status by id", async () => {
72
+ const run = await upsertGoalRun(tmpProject, {
73
+ title: "Research run",
74
+ goal: "Design the Goal worker metadata fix",
75
+ status: "ready",
76
+ tasks: [
77
+ {
78
+ id: "research-task",
79
+ title: "Research and design metadata preservation",
80
+ prompt: "Inspect goal task updates and propose a durable fix.",
81
+ status: "pending",
82
+ attempts: 0,
83
+ },
84
+ ],
85
+ });
86
+ const result = await executeGoals({
87
+ action: "task",
88
+ run_id: run.id,
89
+ task_id: "research-task",
90
+ task_status: "done",
91
+ summary: "Design completed",
92
+ });
93
+ const updated = await getGoalRun(tmpProject, run.id);
94
+ expect(result).toBe('Goal task updated: "Research and design metadata preservation".');
95
+ expect(updated?.tasks[0]).toEqual(expect.objectContaining({
96
+ id: "research-task",
97
+ title: "Research and design metadata preservation",
98
+ prompt: "Inspect goal task updates and propose a durable fix.",
99
+ status: "done",
100
+ lastSummary: "Design completed",
101
+ }));
102
+ });
103
+ it("status resolves full UUID, short ID, and completed latest fallback", async () => {
104
+ await executeGoals({
105
+ action: "create",
106
+ run_id: "099c9f7f-bce7-475c-93b8-d9b3f88a0569",
107
+ title: "Status target",
108
+ goal: "Status lookup",
109
+ prerequisites: [],
110
+ });
111
+ await executeGoals({
112
+ action: "verify",
113
+ run_id: "099c9f7f",
114
+ verification_status: "fail",
115
+ summary: "failed",
116
+ });
117
+ await expect(executeGoals({ action: "status", run_id: "099c9f7f-bce7-475c-93b8-d9b3f88a0569" })).resolves.toContain("Status target");
118
+ await expect(executeGoals({ action: "status", run_id: "099c9f7f" })).resolves.toContain("[ready] Status target");
119
+ await expect(executeGoals({
120
+ action: "evidence",
121
+ evidence_label: "Latest failed",
122
+ evidence_content: "fallback",
123
+ })).resolves.toBe('Evidence added to "Status target".');
124
+ });
125
+ it("persists evidence plans on create and preserves them on metadata updates", async () => {
126
+ await executeGoals({
127
+ action: "create",
128
+ run_id: "goal-evidence-plan",
129
+ title: "Proof plan",
130
+ goal: "Verify real browser behavior",
131
+ success_criteria: ["Browser flow passes"],
132
+ prerequisites: [],
133
+ evidence_plan: [
134
+ {
135
+ id: "browser-proof",
136
+ label: "Browser smoke proof",
137
+ mechanism: "browser",
138
+ description: "Run Playwright locally and capture screenshot/log evidence.",
139
+ status: "planned",
140
+ },
141
+ ],
142
+ });
143
+ await executeGoals({
144
+ action: "create",
145
+ run_id: "goal-evidence-plan",
146
+ title: "Proof plan updated",
147
+ goal: "Verify real browser behavior",
148
+ success_criteria: ["Browser flow passes"],
149
+ prerequisites: [],
150
+ verifier_command: "pnpm test:e2e",
151
+ });
152
+ const run = await getGoalRun(tmpProject, "goal-evidence-plan");
153
+ expect(run?.evidencePlan).toEqual(expect.arrayContaining([
154
+ expect.objectContaining({
155
+ id: "browser-proof",
156
+ mechanism: "browser",
157
+ status: "planned",
158
+ }),
159
+ ]));
160
+ expect(run?.verifier?.command).toBe("pnpm test:e2e");
161
+ });
162
+ it("does not complete without passing verifier evidence", async () => {
163
+ await executeGoals({
164
+ action: "create",
165
+ run_id: "goal-a",
166
+ title: "Guard completion",
167
+ goal: "Only complete after proof",
168
+ success_criteria: ["Verifier passes"],
169
+ prerequisites: [],
170
+ verifier_command: "pnpm test",
171
+ });
172
+ const result = await executeGoals({ action: "complete", run_id: "goal-a" });
173
+ const run = await getGoalRun(tmpProject, "goal-a");
174
+ expect(result).toBe("Error: cannot complete goal: Goal has no verifier evidence.");
175
+ expect(run?.status).toBe("ready");
176
+ });
177
+ it("records verifier pass as ready when tasks remain incomplete", async () => {
178
+ await executeGoals({
179
+ action: "create",
180
+ run_id: "goal-a",
181
+ title: "Guard verifier",
182
+ goal: "Verifier pass alone is not enough",
183
+ success_criteria: ["Task and verifier pass"],
184
+ prerequisites: [],
185
+ verifier_command: "pnpm test",
186
+ });
187
+ await executeGoals({
188
+ action: "task",
189
+ run_id: "goal-a",
190
+ task_id: "task-a",
191
+ task_title: "Pending work",
192
+ task_prompt: "Do the work",
193
+ });
194
+ await executeGoals({
195
+ action: "verify",
196
+ run_id: "goal-a",
197
+ verification_status: "pass",
198
+ summary: "Verifier passed",
199
+ exit_code: 0,
200
+ });
201
+ const run = await getGoalRun(tmpProject, "goal-a");
202
+ expect(run?.status).toBe("ready");
203
+ expect(run?.verifier?.lastResult?.status).toBe("pass");
204
+ });
205
+ it("records verifier failure as persisted command evidence and keeps the run recoverable", async () => {
206
+ await executeGoals({
207
+ action: "create",
208
+ run_id: "goal-a",
209
+ title: "Verifier fails",
210
+ goal: "Persist failure evidence",
211
+ success_criteria: ["Verifier passes"],
212
+ prerequisites: [],
213
+ verifier_command: "pnpm test",
214
+ });
215
+ await executeGoals({
216
+ action: "task",
217
+ run_id: "goal-a",
218
+ task_id: "task-a",
219
+ task_title: "Done work",
220
+ task_prompt: "Do the work",
221
+ task_status: "done",
222
+ });
223
+ const result = await executeGoals({
224
+ action: "verify",
225
+ run_id: "goal-a",
226
+ verification_status: "fail",
227
+ summary: "expected failure output",
228
+ exit_code: 1,
229
+ output_path: "artifacts/verifier.log",
230
+ });
231
+ const run = await getGoalRun(tmpProject, "goal-a");
232
+ expect(result).toBe('Verifier recorded for "Verifier fails": fail.');
233
+ expect(run?.status).toBe("ready");
234
+ expect(run?.verifier?.lastResult).toMatchObject({
235
+ status: "fail",
236
+ summary: "expected failure output",
237
+ exitCode: 1,
238
+ outputPath: "artifacts/verifier.log",
239
+ });
240
+ expect(run?.evidence).toEqual(expect.arrayContaining([
241
+ expect.objectContaining({
242
+ kind: "command",
243
+ label: "Verifier result",
244
+ content: "expected failure output",
245
+ path: "artifacts/verifier.log",
246
+ }),
247
+ ]));
248
+ });
249
+ it("allows corrective next task to be added after verifier failure evidence", async () => {
250
+ await executeGoals({
251
+ action: "create",
252
+ run_id: "goal-a",
253
+ title: "Correct verifier failure",
254
+ goal: "Create corrective task",
255
+ success_criteria: ["Verifier passes"],
256
+ prerequisites: [],
257
+ verifier_command: "pnpm test",
258
+ });
259
+ await executeGoals({
260
+ action: "verify",
261
+ run_id: "goal-a",
262
+ verification_status: "fail",
263
+ summary: "failing assertion",
264
+ exit_code: 1,
265
+ });
266
+ const result = await executeGoals({
267
+ action: "task",
268
+ run_id: "goal-a",
269
+ task_id: "repair-a",
270
+ task_title: "Repair verifier failure",
271
+ task_prompt: "Use Verifier result evidence to fix failing assertion",
272
+ task_status: "pending",
273
+ });
274
+ const run = await getGoalRun(tmpProject, "goal-a");
275
+ expect(result).toBe('Goal task added: "Repair verifier failure".');
276
+ expect(run?.status).toBe("ready");
277
+ expect(run?.tasks).toEqual(expect.arrayContaining([
278
+ expect.objectContaining({
279
+ id: "repair-a",
280
+ status: "pending",
281
+ prompt: "Use Verifier result evidence to fix failing assertion",
282
+ }),
283
+ ]));
284
+ expect(run ? decideGoalNextAction(run) : null).toMatchObject({
285
+ kind: "start_worker",
286
+ task: expect.objectContaining({ id: "repair-a" }),
287
+ });
288
+ });
289
+ it("records pause evidence after repeated non-progress", async () => {
290
+ await executeGoals({
291
+ action: "create",
292
+ run_id: "goal-a",
293
+ title: "Pause loop",
294
+ goal: "Stop repeated non-progress",
295
+ success_criteria: ["No infinite loop"],
296
+ prerequisites: [],
297
+ });
298
+ await executeGoals({
299
+ action: "task",
300
+ run_id: "goal-a",
301
+ task_id: "task-a",
302
+ task_title: "Flaky work",
303
+ task_prompt: "Try again",
304
+ task_status: "failed",
305
+ attempts: 6,
306
+ summary: "same failure repeated",
307
+ });
308
+ await executeGoals({
309
+ action: "evidence",
310
+ run_id: "goal-a",
311
+ evidence_kind: "summary",
312
+ evidence_label: "Paused after repeated non-progress",
313
+ evidence_content: "Attempt limit reached for Flaky work.",
314
+ });
315
+ const result = await executeGoals({ action: "pause", run_id: "goal-a" });
316
+ const run = await getGoalRun(tmpProject, "goal-a");
317
+ expect(result).toBe('Goal "Pause loop" is now paused.');
318
+ expect(run?.status).toBe("paused");
319
+ expect(run?.evidence).toEqual(expect.arrayContaining([
320
+ expect.objectContaining({
321
+ kind: "summary",
322
+ label: "Paused after repeated non-progress",
323
+ content: "Attempt limit reached for Flaky work.",
324
+ }),
325
+ ]));
326
+ });
327
+ it("resume-immediate records continuation intent and next action", async () => {
328
+ await executeGoals({
329
+ action: "create",
330
+ run_id: "goal-resume",
331
+ title: "Resume now",
332
+ goal: "Continue",
333
+ prerequisites: [],
334
+ });
335
+ await executeGoals({
336
+ action: "task",
337
+ run_id: "goal-resume",
338
+ task_id: "task-a",
339
+ task_title: "Work",
340
+ task_prompt: "Do it",
341
+ });
342
+ const result = await executeGoals({ action: "resume", run_id: "goal-resume" });
343
+ const run = await getGoalRun(tmpProject, "goal-resume");
344
+ expect(result).toBe('Goal "Resume now" resume requested; next action: start_worker.');
345
+ expect(run?.status).toBe("ready");
346
+ expect(run?.continueRequestedAt).toBeTruthy();
347
+ expect(run?.evidence).toEqual(expect.arrayContaining([
348
+ expect.objectContaining({ label: "Goal resume requested" }),
349
+ expect.objectContaining({ label: "Goal decision: resume" }),
350
+ ]));
351
+ });
352
+ it("resume-queued-behind-active-worker persists continuation intent", async () => {
353
+ await executeGoals({
354
+ action: "create",
355
+ run_id: "goal-queued",
356
+ title: "Queued resume",
357
+ goal: "Continue later",
358
+ prerequisites: [],
359
+ });
360
+ await executeGoals({
361
+ action: "task",
362
+ run_id: "goal-queued",
363
+ task_id: "task-a",
364
+ task_title: "Work",
365
+ task_prompt: "Do it",
366
+ task_status: "running",
367
+ worker_id: "worker-a",
368
+ });
369
+ const result = await executeGoals({ action: "resume", run_id: "goal-queued" });
370
+ const run = await getGoalRun(tmpProject, "goal-queued");
371
+ expect(result).toBe('Goal "Queued resume" resume queued: Goal task "Work" is already running.');
372
+ expect(run?.continueRequestedAt).toBeTruthy();
373
+ expect(run?.evidence).toEqual(expect.arrayContaining([
374
+ expect.objectContaining({ label: "Goal resume requested" }),
375
+ expect.objectContaining({ label: "Goal decision: resume" }),
376
+ ]));
377
+ });
378
+ it("resume-blocked-prerequisite keeps exact missing instructions", async () => {
379
+ await executeGoals({
380
+ action: "create",
381
+ run_id: "goal-blocked",
382
+ title: "Blocked resume",
383
+ goal: "Needs input",
384
+ prerequisites: [
385
+ { id: "key", label: "API key", status: "missing", instructions: "Set API_KEY locally." },
386
+ ],
387
+ });
388
+ const result = await executeGoals({ action: "resume", run_id: "goal-blocked" });
389
+ const run = await getGoalRun(tmpProject, "goal-blocked");
390
+ expect(result).toBe('Goal "Blocked resume" resume blocked: API key: Set API_KEY locally.');
391
+ expect(run?.status).toBe("blocked");
392
+ expect(run?.blockers).toContain("API key: Set API_KEY locally.");
393
+ expect(run?.evidence).toEqual(expect.arrayContaining([
394
+ expect.objectContaining({
395
+ label: "Goal resume blocked",
396
+ content: "API key: Set API_KEY locally.",
397
+ }),
398
+ ]));
399
+ });
400
+ it("allows completion after all tasks are done and verifier passes", async () => {
401
+ await executeGoals({
402
+ action: "create",
403
+ run_id: "goal-a",
404
+ title: "Complete safely",
405
+ goal: "Complete after proof",
406
+ success_criteria: ["Task and verifier pass"],
407
+ prerequisites: [],
408
+ verifier_command: "pnpm test",
409
+ });
410
+ await executeGoals({
411
+ action: "task",
412
+ run_id: "goal-a",
413
+ task_id: "task-a",
414
+ task_title: "Done work",
415
+ task_prompt: "Do the work",
416
+ task_status: "done",
417
+ });
418
+ await executeGoals({
419
+ action: "verify",
420
+ run_id: "goal-a",
421
+ verification_status: "pass",
422
+ summary: "Verifier passed",
423
+ exit_code: 0,
424
+ });
425
+ const result = await executeGoals({ action: "complete", run_id: "goal-a" });
426
+ const run = await getGoalRun(tmpProject, "goal-a");
427
+ expect(result).toBe('Goal "Complete safely" is now passed.');
428
+ expect(run?.status).toBe("passed");
429
+ });
430
+ });
431
+ //# sourceMappingURL=goals.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goals.test.js","sourceRoot":"","sources":["../../src/tools/goals.test.ts"],"names":[],"mappings":"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"}
@@ -46,9 +46,11 @@ export { createGrepTool } from "./grep.js";
46
46
  export { createLsTool } from "./ls.js";
47
47
  export { createWebFetchTool } from "./web-fetch.js";
48
48
  export { createWebSearchTool } from "./web-search.js";
49
+ export { createSourcePathTool } from "./source-path.js";
49
50
  export { createTaskOutputTool } from "./task-output.js";
50
51
  export { createTaskStopTool } from "./task-stop.js";
51
52
  export { createTasksTool } from "./tasks.js";
53
+ export { createGoalsTool } from "./goals.js";
52
54
  export { createSkillTool } from "./skill.js";
53
55
  export { createEnterPlanTool } from "./enter-plan.js";
54
56
  export { createExitPlanTool } from "./exit-plan.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAiB5D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,sEAAsE;IACtE,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,+DAA+D;IAC/D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAmDrF;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmB5D,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,sEAAsE;IACtE,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,+DAA+D;IAC/D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAqDrF;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -9,9 +9,11 @@ import { createLsTool } from "./ls.js";
9
9
  import { createSubAgentTool } from "./subagent.js";
10
10
  import { createWebFetchTool } from "./web-fetch.js";
11
11
  import { createWebSearchTool } from "./web-search.js";
12
+ import { createSourcePathTool } from "./source-path.js";
12
13
  import { createTaskOutputTool } from "./task-output.js";
13
14
  import { createTaskStopTool } from "./task-stop.js";
14
15
  import { createTasksTool } from "./tasks.js";
16
+ import { createGoalsTool } from "./goals.js";
15
17
  import { createSkillTool } from "./skill.js";
16
18
  import { createEnterPlanTool } from "./enter-plan.js";
17
19
  import { createExitPlanTool } from "./exit-plan.js";
@@ -29,10 +31,12 @@ export function createTools(cwd, opts) {
29
31
  createFindTool(cwd),
30
32
  createGrepTool(cwd, ops),
31
33
  createLsTool(cwd, ops),
34
+ createSourcePathTool(cwd),
32
35
  createWebFetchTool(),
33
36
  createTaskOutputTool(processManager),
34
37
  createTaskStopTool(processManager),
35
38
  createTasksTool(cwd),
39
+ createGoalsTool(cwd),
36
40
  ];
37
41
  // Add web search tool for providers without reliable native web search
38
42
  if (opts?.provider && opts.provider !== "anthropic") {
@@ -61,9 +65,11 @@ export { createGrepTool } from "./grep.js";
61
65
  export { createLsTool } from "./ls.js";
62
66
  export { createWebFetchTool } from "./web-fetch.js";
63
67
  export { createWebSearchTool } from "./web-search.js";
68
+ export { createSourcePathTool } from "./source-path.js";
64
69
  export { createTaskOutputTool } from "./task-output.js";
65
70
  export { createTaskStopTool } from "./task-stop.js";
66
71
  export { createTasksTool } from "./tasks.js";
72
+ export { createGoalsTool } from "./goals.js";
67
73
  export { createSkillTool } from "./skill.js";
68
74
  export { createEnterPlanTool } from "./enter-plan.js";
69
75
  export { createExitPlanTool } from "./exit-plan.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-hints.d.ts","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwBpD,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAmB/C,CAAC"}
1
+ {"version":3,"file":"prompt-hints.d.ts","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BpD,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAoB/C,CAAC"}
@@ -12,6 +12,7 @@ export const TOOL_PROMPT_HINTS = {
12
12
  find: "Find files/dirs by name pattern. Faster than bash find, respects .gitignore.",
13
13
  grep: "Regex search across files. Use for usages, definitions, imports.",
14
14
  ls: "List directory contents.",
15
+ source_path: "Resolve installed package/repo source via opensrc. Use before assuming dependency APIs; inspect returned absolute path with read/grep/find/ls.",
15
16
  web_fetch: "Fetch a URL (docs, endpoints, external resources).",
16
17
  web_search: "Search the web. Use before web_fetch to find pages.",
17
18
  task_output: "Read new output from a background process by id.",
@@ -34,6 +35,7 @@ export const DEFAULT_TOOL_NAMES = [
34
35
  "find",
35
36
  "grep",
36
37
  "ls",
38
+ "source_path",
37
39
  "web_fetch",
38
40
  "task_output",
39
41
  "task_stop",
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-hints.js","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,IAAI,EAAE,uDAAuD;IAC7D,KAAK,EAAE,gFAAgF;IACvF,IAAI,EAAE,kIAAkI;IACxI,IAAI,EAAE,oHAAoH;IAC1H,IAAI,EAAE,8EAA8E;IACpF,IAAI,EAAE,kEAAkE;IACxE,EAAE,EAAE,0BAA0B;IAC9B,SAAS,EAAE,oDAAoD;IAC/D,UAAU,EAAE,qDAAqD;IACjE,WAAW,EAAE,kDAAkD;IAC/D,SAAS,EAAE,kCAAkC;IAC7C,KAAK,EACH,0GAA0G;IAC5G,QAAQ,EAAE,uEAAuE;IACjF,KAAK,EAAE,oDAAoD;IAC3D,uCAAuC,EACrC,qNAAqN;IACvN,oCAAoC,EAClC,6LAA6L;IAC/L,iCAAiC,EAC/B,+OAA+O;IACjP,UAAU,EAAE,gFAAgF;IAC5F,SAAS,EAAE,sDAAsD;CAClE,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,WAAW;IACX,aAAa;IACb,WAAW;IACX,OAAO;IACP,UAAU;IACV,OAAO;IACP,uCAAuC;IACvC,oCAAoC;IACpC,iCAAiC;IACjC,YAAY;IACZ,WAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"prompt-hints.js","sourceRoot":"","sources":["../../src/tools/prompt-hints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,IAAI,EAAE,uDAAuD;IAC7D,KAAK,EAAE,gFAAgF;IACvF,IAAI,EAAE,kIAAkI;IACxI,IAAI,EAAE,oHAAoH;IAC1H,IAAI,EAAE,8EAA8E;IACpF,IAAI,EAAE,kEAAkE;IACxE,EAAE,EAAE,0BAA0B;IAC9B,WAAW,EACT,gJAAgJ;IAClJ,SAAS,EAAE,oDAAoD;IAC/D,UAAU,EAAE,qDAAqD;IACjE,WAAW,EAAE,kDAAkD;IAC/D,SAAS,EAAE,kCAAkC;IAC7C,KAAK,EACH,0GAA0G;IAC5G,QAAQ,EAAE,uEAAuE;IACjF,KAAK,EAAE,oDAAoD;IAC3D,uCAAuC,EACrC,qNAAqN;IACvN,oCAAoC,EAClC,6LAA6L;IAC/L,iCAAiC,EAC/B,+OAA+O;IACjP,UAAU,EAAE,gFAAgF;IAC5F,SAAS,EAAE,sDAAsD;CAClE,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,aAAa;IACb,WAAW;IACX,aAAa;IACb,WAAW;IACX,OAAO;IACP,UAAU;IACV,OAAO;IACP,uCAAuC;IACvC,oCAAoC;IACpC,iCAAiC;IACjC,YAAY;IACZ,WAAW;CACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ import type { AgentTool } from "@kenkaiiii/gg-agent";
3
+ declare const SourcePathParams: z.ZodObject<{
4
+ package: z.ZodString;
5
+ verbose: z.ZodOptional<z.ZodBoolean>;
6
+ }, z.core.$strip>;
7
+ export declare function createSourcePathTool(cwd: string): AgentTool<typeof SourcePathParams>;
8
+ export {};
9
+ //# sourceMappingURL=source-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-path.d.ts","sourceRoot":"","sources":["../../src/tools/source-path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,QAAA,MAAM,gBAAgB;;;iBAQpB,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,gBAAgB,CAAC,CA0GpF"}