@kenkaiiii/ggcoder 4.3.232 → 4.3.233
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/README.md +1 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -89
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/prompt-commands.d.ts.map +1 -1
- package/dist/core/prompt-commands.js +8 -16
- package/dist/core/prompt-commands.js.map +1 -1
- package/dist/core/prompt-commands.test.js +14 -44
- package/dist/core/prompt-commands.test.js.map +1 -1
- package/dist/core/runtime-mode.d.ts +0 -11
- package/dist/core/runtime-mode.d.ts.map +1 -1
- package/dist/core/runtime-mode.js +0 -9
- package/dist/core/runtime-mode.js.map +1 -1
- package/dist/core/session-restore-display.test.js +4 -110
- package/dist/core/session-restore-display.test.js.map +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +1 -1
- package/dist/interactive.js.map +1 -1
- package/dist/system-prompt.d.ts +1 -2
- package/dist/system-prompt.d.ts.map +1 -1
- package/dist/system-prompt.js +11 -58
- package/dist/system-prompt.js.map +1 -1
- package/dist/system-prompt.test.js +3 -158
- package/dist/system-prompt.test.js.map +1 -1
- package/dist/tools/bash.d.ts +1 -4
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +3 -12
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/checkpoint-hook.test.js +3 -3
- package/dist/tools/checkpoint-hook.test.js.map +1 -1
- package/dist/tools/edit.d.ts +1 -4
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +5 -13
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/enter-plan.js +1 -1
- package/dist/tools/enter-plan.js.map +1 -1
- package/dist/tools/index.d.ts +0 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts.map +1 -1
- package/dist/tools/prompt-hints.js +0 -2
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/screenshot.d.ts +1 -1
- package/dist/tools/subagent.d.ts +1 -4
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +2 -5
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/write.d.ts +1 -4
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +5 -13
- package/dist/tools/write.js.map +1 -1
- package/dist/ui/App.d.ts +5 -20
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +71 -309
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/app-items.d.ts +23 -25
- package/dist/ui/app-items.d.ts.map +1 -1
- package/dist/ui/app-items.js +37 -0
- package/dist/ui/app-items.js.map +1 -1
- package/dist/ui/app-items.test.d.ts +2 -0
- package/dist/ui/app-items.test.d.ts.map +1 -0
- package/dist/ui/app-items.test.js +38 -0
- package/dist/ui/app-items.test.js.map +1 -0
- package/dist/ui/app-state-persistence.test.js +14 -318
- package/dist/ui/app-state-persistence.test.js.map +1 -1
- package/dist/ui/chat-layout-pinning.test.js +74 -4
- package/dist/ui/chat-layout-pinning.test.js.map +1 -1
- package/dist/ui/components/AssistantMessage.test.js +6 -9
- package/dist/ui/components/AssistantMessage.test.js.map +1 -1
- package/dist/ui/components/Banner.js +1 -1
- package/dist/ui/components/Banner.js.map +1 -1
- package/dist/ui/components/ChatFooterPane.d.ts +1 -5
- package/dist/ui/components/ChatFooterPane.d.ts.map +1 -1
- package/dist/ui/components/ChatFooterPane.js +3 -4
- package/dist/ui/components/ChatFooterPane.js.map +1 -1
- package/dist/ui/components/ChatInputStack.d.ts +3 -1
- package/dist/ui/components/ChatInputStack.d.ts.map +1 -1
- package/dist/ui/components/ChatInputStack.js +4 -3
- package/dist/ui/components/ChatInputStack.js.map +1 -1
- package/dist/ui/components/ChatScreen.d.ts +3 -16
- package/dist/ui/components/ChatScreen.d.ts.map +1 -1
- package/dist/ui/components/ChatScreen.js +2 -3
- package/dist/ui/components/ChatScreen.js.map +1 -1
- package/dist/ui/components/Footer.d.ts +3 -8
- package/dist/ui/components/Footer.d.ts.map +1 -1
- package/dist/ui/components/Footer.js +5 -25
- package/dist/ui/components/Footer.js.map +1 -1
- package/dist/ui/components/InputArea.d.ts +1 -9
- package/dist/ui/components/InputArea.d.ts.map +1 -1
- package/dist/ui/components/InputArea.js +2 -44
- package/dist/ui/components/InputArea.js.map +1 -1
- package/dist/ui/components/LiveToolPanel.d.ts +30 -0
- package/dist/ui/components/LiveToolPanel.d.ts.map +1 -0
- package/dist/ui/components/LiveToolPanel.js +66 -0
- package/dist/ui/components/LiveToolPanel.js.map +1 -0
- package/dist/ui/components/ToolExecution.js +0 -2
- package/dist/ui/components/ToolExecution.js.map +1 -1
- package/dist/ui/components/TranscriptViewport.d.ts +1 -1
- package/dist/ui/components/TranscriptViewport.js +1 -1
- package/dist/ui/footer-jump-regression.test.js +12 -2
- package/dist/ui/footer-jump-regression.test.js.map +1 -1
- package/dist/ui/footer-status-layout.test.js +4 -12
- package/dist/ui/footer-status-layout.test.js.map +1 -1
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts +3 -4
- package/dist/ui/hooks/useChatLayoutMeasurements.d.ts.map +1 -1
- package/dist/ui/hooks/useChatLayoutMeasurements.js +26 -4
- package/dist/ui/hooks/useChatLayoutMeasurements.js.map +1 -1
- package/dist/ui/hooks/useModeState.d.ts +4 -19
- package/dist/ui/hooks/useModeState.d.ts.map +1 -1
- package/dist/ui/hooks/useModeState.js +5 -45
- package/dist/ui/hooks/useModeState.js.map +1 -1
- package/dist/ui/hooks/usePixelFixFlow.js +2 -2
- package/dist/ui/layout-decisions.d.ts +11 -34
- package/dist/ui/layout-decisions.d.ts.map +1 -1
- package/dist/ui/layout-decisions.js +15 -42
- package/dist/ui/layout-decisions.js.map +1 -1
- package/dist/ui/live-area-height.d.ts.map +1 -1
- package/dist/ui/live-area-height.js +6 -1
- package/dist/ui/live-area-height.js.map +1 -1
- package/dist/ui/live-frame-height.test.js +26 -1
- package/dist/ui/live-frame-height.test.js.map +1 -1
- package/dist/ui/plan-overlay.test.js +1 -1
- package/dist/ui/plan-overlay.test.js.map +1 -1
- package/dist/ui/prompt-routing.d.ts +1 -19
- package/dist/ui/prompt-routing.d.ts.map +1 -1
- package/dist/ui/prompt-routing.js +1 -79
- package/dist/ui/prompt-routing.js.map +1 -1
- package/dist/ui/render.d.ts +3 -18
- package/dist/ui/render.d.ts.map +1 -1
- package/dist/ui/render.js +0 -10
- package/dist/ui/render.js.map +1 -1
- package/dist/ui/scroll-stabilization.test.js +1 -7
- package/dist/ui/scroll-stabilization.test.js.map +1 -1
- package/dist/ui/slash-command-images.test.js +11 -86
- package/dist/ui/slash-command-images.test.js.map +1 -1
- package/dist/ui/streaming-flush-bounce.test.d.ts +2 -0
- package/dist/ui/streaming-flush-bounce.test.d.ts.map +1 -0
- package/dist/ui/streaming-flush-bounce.test.js +156 -0
- package/dist/ui/streaming-flush-bounce.test.js.map +1 -0
- package/dist/ui/submit-prompt-command.d.ts +1 -16
- package/dist/ui/submit-prompt-command.d.ts.map +1 -1
- package/dist/ui/submit-prompt-command.js +4 -54
- package/dist/ui/submit-prompt-command.js.map +1 -1
- package/dist/ui/submit-slash-commands.d.ts +0 -1
- package/dist/ui/submit-slash-commands.d.ts.map +1 -1
- package/dist/ui/submit-slash-commands.js +0 -4
- package/dist/ui/submit-slash-commands.js.map +1 -1
- package/dist/ui/terminal-history-status-renderers.d.ts +0 -1
- package/dist/ui/terminal-history-status-renderers.d.ts.map +1 -1
- package/dist/ui/terminal-history-status-renderers.js +0 -3
- package/dist/ui/terminal-history-status-renderers.js.map +1 -1
- package/dist/ui/terminal-history.d.ts.map +1 -1
- package/dist/ui/terminal-history.js +11 -56
- package/dist/ui/terminal-history.js.map +1 -1
- package/dist/ui/terminal-history.test.js +6 -33
- package/dist/ui/terminal-history.test.js.map +1 -1
- package/dist/ui/tool-line-summary.d.ts +29 -0
- package/dist/ui/tool-line-summary.d.ts.map +1 -0
- package/dist/ui/tool-line-summary.js +153 -0
- package/dist/ui/tool-line-summary.js.map +1 -0
- package/dist/ui/transcript/TranscriptRenderer.d.ts +1 -1
- package/dist/ui/transcript/TranscriptRenderer.d.ts.map +1 -1
- package/dist/ui/transcript/TranscriptRenderer.js +18 -12
- package/dist/ui/transcript/TranscriptRenderer.js.map +1 -1
- package/dist/ui/transcript/presentation.d.ts +1 -17
- package/dist/ui/transcript/presentation.d.ts.map +1 -1
- package/dist/ui/transcript/presentation.js +0 -26
- package/dist/ui/transcript/presentation.js.map +1 -1
- package/dist/ui/transcript/spacing.d.ts +2 -2
- package/dist/ui/transcript/spacing.d.ts.map +1 -1
- package/dist/ui/transcript/spacing.js +14 -9
- package/dist/ui/transcript/spacing.js.map +1 -1
- package/dist/ui/transcript/spacing.test.js +5 -8
- package/dist/ui/transcript/spacing.test.js.map +1 -1
- package/dist/ui/transcript/tool-presentation.js +1 -1
- package/dist/ui/transcript/tool-presentation.js.map +1 -1
- package/dist/ui/transcript/transcript-lines.d.ts.map +1 -1
- package/dist/ui/transcript/transcript-lines.js +4 -0
- package/dist/ui/transcript/transcript-lines.js.map +1 -1
- package/dist/ui/tui-history-parity.test.js +0 -47
- package/dist/ui/tui-history-parity.test.js.map +1 -1
- package/dist/ui/tui-simulation.test.js +2 -1
- package/dist/ui/tui-simulation.test.js.map +1 -1
- package/package.json +4 -4
- package/dist/core/goal-controller.d.ts +0 -82
- package/dist/core/goal-controller.d.ts.map +0 -1
- package/dist/core/goal-controller.js +0 -838
- package/dist/core/goal-controller.js.map +0 -1
- package/dist/core/goal-controller.test.d.ts +0 -2
- package/dist/core/goal-controller.test.d.ts.map +0 -1
- package/dist/core/goal-controller.test.js +0 -1279
- package/dist/core/goal-controller.test.js.map +0 -1
- package/dist/core/goal-engine.d.ts +0 -61
- package/dist/core/goal-engine.d.ts.map +0 -1
- package/dist/core/goal-engine.js +0 -123
- package/dist/core/goal-engine.js.map +0 -1
- package/dist/core/goal-engine.test.d.ts +0 -2
- package/dist/core/goal-engine.test.d.ts.map +0 -1
- package/dist/core/goal-engine.test.js +0 -295
- package/dist/core/goal-engine.test.js.map +0 -1
- package/dist/core/goal-integration.d.ts +0 -80
- package/dist/core/goal-integration.d.ts.map +0 -1
- package/dist/core/goal-integration.js +0 -296
- package/dist/core/goal-integration.js.map +0 -1
- package/dist/core/goal-integration.test.d.ts +0 -2
- package/dist/core/goal-integration.test.d.ts.map +0 -1
- package/dist/core/goal-integration.test.js +0 -369
- package/dist/core/goal-integration.test.js.map +0 -1
- package/dist/core/goal-lifecycle-smoke.test.d.ts +0 -2
- package/dist/core/goal-lifecycle-smoke.test.d.ts.map +0 -1
- package/dist/core/goal-lifecycle-smoke.test.js +0 -248
- package/dist/core/goal-lifecycle-smoke.test.js.map +0 -1
- package/dist/core/goal-overhead-harness.d.ts +0 -33
- package/dist/core/goal-overhead-harness.d.ts.map +0 -1
- package/dist/core/goal-overhead-harness.js +0 -268
- package/dist/core/goal-overhead-harness.js.map +0 -1
- package/dist/core/goal-prerequisites.d.ts +0 -23
- package/dist/core/goal-prerequisites.d.ts.map +0 -1
- package/dist/core/goal-prerequisites.js +0 -114
- package/dist/core/goal-prerequisites.js.map +0 -1
- package/dist/core/goal-prerequisites.test.d.ts +0 -2
- package/dist/core/goal-prerequisites.test.d.ts.map +0 -1
- package/dist/core/goal-prerequisites.test.js +0 -154
- package/dist/core/goal-prerequisites.test.js.map +0 -1
- package/dist/core/goal-references.d.ts +0 -14
- package/dist/core/goal-references.d.ts.map +0 -1
- package/dist/core/goal-references.js +0 -153
- package/dist/core/goal-references.js.map +0 -1
- package/dist/core/goal-references.test.d.ts +0 -2
- package/dist/core/goal-references.test.d.ts.map +0 -1
- package/dist/core/goal-references.test.js +0 -77
- package/dist/core/goal-references.test.js.map +0 -1
- package/dist/core/goal-store.d.ts +0 -289
- package/dist/core/goal-store.d.ts.map +0 -1
- package/dist/core/goal-store.js +0 -1156
- package/dist/core/goal-store.js.map +0 -1
- package/dist/core/goal-store.test.d.ts +0 -2
- package/dist/core/goal-store.test.d.ts.map +0 -1
- package/dist/core/goal-store.test.js +0 -530
- package/dist/core/goal-store.test.js.map +0 -1
- package/dist/core/goal-verifier.d.ts +0 -17
- package/dist/core/goal-verifier.d.ts.map +0 -1
- package/dist/core/goal-verifier.js +0 -87
- package/dist/core/goal-verifier.js.map +0 -1
- package/dist/core/goal-verifier.test.d.ts +0 -2
- package/dist/core/goal-verifier.test.d.ts.map +0 -1
- package/dist/core/goal-verifier.test.js +0 -131
- package/dist/core/goal-verifier.test.js.map +0 -1
- package/dist/core/goal-worker-dev-server-lifecycle.test.d.ts +0 -2
- package/dist/core/goal-worker-dev-server-lifecycle.test.d.ts.map +0 -1
- package/dist/core/goal-worker-dev-server-lifecycle.test.js +0 -68
- package/dist/core/goal-worker-dev-server-lifecycle.test.js.map +0 -1
- package/dist/core/goal-worker.d.ts +0 -61
- package/dist/core/goal-worker.d.ts.map +0 -1
- package/dist/core/goal-worker.js +0 -467
- package/dist/core/goal-worker.js.map +0 -1
- package/dist/core/goal-worker.test.d.ts +0 -2
- package/dist/core/goal-worker.test.d.ts.map +0 -1
- package/dist/core/goal-worker.test.js +0 -493
- package/dist/core/goal-worker.test.js.map +0 -1
- package/dist/core/goal-worktree.d.ts +0 -108
- package/dist/core/goal-worktree.d.ts.map +0 -1
- package/dist/core/goal-worktree.js +0 -300
- package/dist/core/goal-worktree.js.map +0 -1
- package/dist/core/goal-worktree.test.d.ts +0 -2
- package/dist/core/goal-worktree.test.d.ts.map +0 -1
- package/dist/core/goal-worktree.test.js +0 -448
- package/dist/core/goal-worktree.test.js.map +0 -1
- package/dist/tools/goal-mode.test.d.ts +0 -2
- package/dist/tools/goal-mode.test.d.ts.map +0 -1
- package/dist/tools/goal-mode.test.js +0 -121
- package/dist/tools/goal-mode.test.js.map +0 -1
- package/dist/tools/goals.d.ts +0 -143
- package/dist/tools/goals.d.ts.map +0 -1
- package/dist/tools/goals.js +0 -1038
- package/dist/tools/goals.js.map +0 -1
- package/dist/tools/goals.test.d.ts +0 -2
- package/dist/tools/goals.test.d.ts.map +0 -1
- package/dist/tools/goals.test.js +0 -1444
- package/dist/tools/goals.test.js.map +0 -1
- package/dist/ui/components/GoalOverlay.d.ts +0 -83
- package/dist/ui/components/GoalOverlay.d.ts.map +0 -1
- package/dist/ui/components/GoalOverlay.js +0 -710
- package/dist/ui/components/GoalOverlay.js.map +0 -1
- package/dist/ui/components/GoalPickerMenu.d.ts +0 -9
- package/dist/ui/components/GoalPickerMenu.d.ts.map +0 -1
- package/dist/ui/components/GoalPickerMenu.js +0 -37
- package/dist/ui/components/GoalPickerMenu.js.map +0 -1
- package/dist/ui/components/GoalStatusBar.d.ts +0 -26
- package/dist/ui/components/GoalStatusBar.d.ts.map +0 -1
- package/dist/ui/components/GoalStatusBar.js +0 -130
- package/dist/ui/components/GoalStatusBar.js.map +0 -1
- package/dist/ui/components/GoalStatusBar.test.d.ts +0 -2
- package/dist/ui/components/GoalStatusBar.test.d.ts.map +0 -1
- package/dist/ui/components/GoalStatusBar.test.js +0 -17
- package/dist/ui/components/GoalStatusBar.test.js.map +0 -1
- package/dist/ui/goal-events.d.ts +0 -125
- package/dist/ui/goal-events.d.ts.map +0 -1
- package/dist/ui/goal-events.js +0 -407
- package/dist/ui/goal-events.js.map +0 -1
- package/dist/ui/goal-events.test.d.ts +0 -2
- package/dist/ui/goal-events.test.d.ts.map +0 -1
- package/dist/ui/goal-events.test.js +0 -416
- package/dist/ui/goal-events.test.js.map +0 -1
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts +0 -2
- package/dist/ui/goal-lifecycle-orchestration.test.d.ts.map +0 -1
- package/dist/ui/goal-lifecycle-orchestration.test.js +0 -555
- package/dist/ui/goal-lifecycle-orchestration.test.js.map +0 -1
- package/dist/ui/goal-overlay.test.d.ts +0 -2
- package/dist/ui/goal-overlay.test.d.ts.map +0 -1
- package/dist/ui/goal-overlay.test.js +0 -384
- package/dist/ui/goal-overlay.test.js.map +0 -1
- package/dist/ui/goal-progress.d.ts +0 -31
- package/dist/ui/goal-progress.d.ts.map +0 -1
- package/dist/ui/goal-progress.js +0 -149
- package/dist/ui/goal-progress.js.map +0 -1
- package/dist/ui/goal-run-helpers.d.ts +0 -12
- package/dist/ui/goal-run-helpers.d.ts.map +0 -1
- package/dist/ui/goal-run-helpers.js +0 -42
- package/dist/ui/goal-run-helpers.js.map +0 -1
- package/dist/ui/goal-status-bar.test.d.ts +0 -2
- package/dist/ui/goal-status-bar.test.d.ts.map +0 -1
- package/dist/ui/goal-status-bar.test.js +0 -174
- package/dist/ui/goal-status-bar.test.js.map +0 -1
- package/dist/ui/goal-summary.d.ts +0 -14
- package/dist/ui/goal-summary.d.ts.map +0 -1
- package/dist/ui/goal-summary.js +0 -194
- package/dist/ui/goal-summary.js.map +0 -1
- package/dist/ui/hooks/useGoalOrchestration.d.ts +0 -82
- package/dist/ui/hooks/useGoalOrchestration.d.ts.map +0 -1
- package/dist/ui/hooks/useGoalOrchestration.js +0 -863
- package/dist/ui/hooks/useGoalOrchestration.js.map +0 -1
- package/dist/ui/hooks/useGoalPickerController.d.ts +0 -22
- package/dist/ui/hooks/useGoalPickerController.d.ts.map +0 -1
- package/dist/ui/hooks/useGoalPickerController.js +0 -35
- package/dist/ui/hooks/useGoalPickerController.js.map +0 -1
- package/dist/ui/prompt-routing.test.d.ts +0 -2
- package/dist/ui/prompt-routing.test.d.ts.map +0 -1
- package/dist/ui/prompt-routing.test.js +0 -48
- package/dist/ui/prompt-routing.test.js.map +0 -1
- package/dist/ui/transcript/GoalRows.d.ts +0 -10
- package/dist/ui/transcript/GoalRows.d.ts.map +0 -1
- package/dist/ui/transcript/GoalRows.js +0 -35
- package/dist/ui/transcript/GoalRows.js.map +0 -1
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
import { execFile } from "node:child_process";
|
|
2
|
-
import { mkdir } from "node:fs/promises";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { promisify } from "node:util";
|
|
5
|
-
const execFileAsync = promisify(execFile);
|
|
6
|
-
const MAX_GIT_OUTPUT = 2000;
|
|
7
|
-
export class GoalWorktreeDirtyError extends Error {
|
|
8
|
-
dirtyStatus;
|
|
9
|
-
constructor(dirtyStatus) {
|
|
10
|
-
super(`Goal workers need a clean working tree before they can start in an isolated worktree. Commit or stash the current changes first. Dirty files:\n${dirtyStatus.slice(0, MAX_GIT_OUTPUT)}`);
|
|
11
|
-
this.name = "GoalWorktreeDirtyError";
|
|
12
|
-
this.dirtyStatus = dirtyStatus;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export function isGoalWorktreeDirtyError(error) {
|
|
16
|
-
return error instanceof GoalWorktreeDirtyError;
|
|
17
|
-
}
|
|
18
|
-
export async function defaultGoalWorktreeCommandRunner(file, args, options) {
|
|
19
|
-
const result = await execFileAsync(file, [...args], {
|
|
20
|
-
cwd: options.cwd,
|
|
21
|
-
maxBuffer: 1024 * 1024,
|
|
22
|
-
});
|
|
23
|
-
return { stdout: result.stdout, stderr: result.stderr };
|
|
24
|
-
}
|
|
25
|
-
export function goalWorktreeRoot(projectPath) {
|
|
26
|
-
return join(dirname(projectPath), `${projectBasename(projectPath)}-goal-worktrees`);
|
|
27
|
-
}
|
|
28
|
-
function projectBasename(projectPath) {
|
|
29
|
-
const parts = projectPath.split(/[\\/]+/u).filter(Boolean);
|
|
30
|
-
return parts.at(-1) ?? "project";
|
|
31
|
-
}
|
|
32
|
-
export function sanitizeWorktreeToken(value) {
|
|
33
|
-
return (value
|
|
34
|
-
.replace(/[^a-zA-Z0-9._-]+/gu, "-")
|
|
35
|
-
.replace(/^-+|-+$/gu, "")
|
|
36
|
-
.slice(0, 80) || "item");
|
|
37
|
-
}
|
|
38
|
-
function parseNameOnly(output) {
|
|
39
|
-
return output
|
|
40
|
-
.split("\n")
|
|
41
|
-
.map((line) => line.trim())
|
|
42
|
-
.filter(Boolean)
|
|
43
|
-
.sort((a, b) => a.localeCompare(b));
|
|
44
|
-
}
|
|
45
|
-
function parseChangedFiles(status) {
|
|
46
|
-
return status
|
|
47
|
-
.split("\n")
|
|
48
|
-
.filter((line) => line.trim().length > 0)
|
|
49
|
-
.map((line) => line.slice(3).trim())
|
|
50
|
-
.filter(Boolean)
|
|
51
|
-
.sort((a, b) => a.localeCompare(b));
|
|
52
|
-
}
|
|
53
|
-
export async function checkGoalWorktreeIntegration(projectPath, run, commandRunner) {
|
|
54
|
-
const runner = commandRunner ?? { execFile: defaultGoalWorktreeCommandRunner };
|
|
55
|
-
const issues = [];
|
|
56
|
-
for (const task of run.tasks) {
|
|
57
|
-
if (task.status !== "done" || !task.worktree || task.integration === "manual")
|
|
58
|
-
continue;
|
|
59
|
-
let status;
|
|
60
|
-
try {
|
|
61
|
-
status = await gitStdout(runner, task.worktree.path, ["status", "--porcelain"]);
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
issues.push({
|
|
65
|
-
taskId: task.id,
|
|
66
|
-
taskTitle: task.title,
|
|
67
|
-
...(task.workerId ? { workerId: task.workerId } : {}),
|
|
68
|
-
worktreePath: task.worktree.path,
|
|
69
|
-
baseRef: task.worktree.baseRef,
|
|
70
|
-
branchName: task.worktree.branchName,
|
|
71
|
-
files: [`Unable to inspect worktree: ${formatGitError(error)}`],
|
|
72
|
-
});
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
const files = parseChangedFiles(status);
|
|
76
|
-
if (files.length === 0)
|
|
77
|
-
continue;
|
|
78
|
-
issues.push({
|
|
79
|
-
taskId: task.id,
|
|
80
|
-
taskTitle: task.title,
|
|
81
|
-
...(task.workerId ? { workerId: task.workerId } : {}),
|
|
82
|
-
worktreePath: task.worktree.path,
|
|
83
|
-
baseRef: task.worktree.baseRef,
|
|
84
|
-
branchName: task.worktree.branchName,
|
|
85
|
-
files,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
if (issues.length === 0) {
|
|
89
|
-
return {
|
|
90
|
-
ok: true,
|
|
91
|
-
issues,
|
|
92
|
-
summary: "All completed Goal worktree tasks are integrated or clean.",
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
const issueSummary = issues
|
|
96
|
-
.map((issue) => `${issue.taskTitle} (${issue.taskId}) has unintegrated files in ${issue.worktreePath}: ${issue.files.join(", ")}`)
|
|
97
|
-
.join("\n");
|
|
98
|
-
return {
|
|
99
|
-
ok: false,
|
|
100
|
-
issues,
|
|
101
|
-
summary: `Completed Goal worker artifacts are still stranded in isolated worktrees; integrate or reject them before verifier.\n${issueSummary}`.slice(0, MAX_GIT_OUTPUT),
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
/** Fallback committer identity used only when the repo has none configured. */
|
|
105
|
-
const GOAL_BOT_COMMITTER = [
|
|
106
|
-
"-c",
|
|
107
|
-
"user.name=GG Coder Goal",
|
|
108
|
-
"-c",
|
|
109
|
-
"user.email=goal@ggcoder.local",
|
|
110
|
-
];
|
|
111
|
-
/**
|
|
112
|
-
* Return `-c user.name/-c user.email` args only when the repo has no committer
|
|
113
|
-
* identity configured, so Goal auto-commits never fail on fresh clones/CI while
|
|
114
|
-
* still preserving the user's real identity when it exists.
|
|
115
|
-
*/
|
|
116
|
-
export async function goalCommitterArgs(runner, cwd) {
|
|
117
|
-
try {
|
|
118
|
-
const [email, name] = await Promise.all([
|
|
119
|
-
runner.execFile("git", ["config", "user.email"], { cwd }),
|
|
120
|
-
runner.execFile("git", ["config", "user.name"], { cwd }),
|
|
121
|
-
]);
|
|
122
|
-
if (email.stdout.trim() && name.stdout.trim())
|
|
123
|
-
return [];
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
// `git config <key>` exits non-zero when unset; fall through to the bot id.
|
|
127
|
-
}
|
|
128
|
-
return [...GOAL_BOT_COMMITTER];
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Commit, retrying once with a fallback bot identity ONLY when the failure was
|
|
132
|
-
* caused by a missing committer identity (fresh clones / CI). Real failures
|
|
133
|
-
* (hooks, etc.) propagate unchanged, and the happy path adds no extra git calls.
|
|
134
|
-
*/
|
|
135
|
-
async function commitWithIdentityFallback(runner, cwd, message) {
|
|
136
|
-
try {
|
|
137
|
-
await gitStdout(runner, cwd, ["commit", "-m", message]);
|
|
138
|
-
}
|
|
139
|
-
catch (error) {
|
|
140
|
-
const committer = await goalCommitterArgs(runner, cwd);
|
|
141
|
-
if (committer.length === 0)
|
|
142
|
-
throw error;
|
|
143
|
-
await gitStdout(runner, cwd, [...committer, "commit", "-m", message]);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Whether `cwd` is inside a usable git work tree with at least one commit (a
|
|
148
|
-
* resolvable HEAD to branch from). Used to decide whether Goal worktree
|
|
149
|
-
* isolation is possible at all, so /goal degrades gracefully in non-git or
|
|
150
|
-
* git-less environments instead of hard-crashing worker startup.
|
|
151
|
-
*/
|
|
152
|
-
export async function isGitWorktreeViable(projectPath, commandRunner) {
|
|
153
|
-
const runner = commandRunner ?? { execFile: defaultGoalWorktreeCommandRunner };
|
|
154
|
-
try {
|
|
155
|
-
const inside = await runner.execFile("git", ["rev-parse", "--is-inside-work-tree"], {
|
|
156
|
-
cwd: projectPath,
|
|
157
|
-
});
|
|
158
|
-
if (inside.stdout.trim() !== "true")
|
|
159
|
-
return false;
|
|
160
|
-
await runner.execFile("git", ["rev-parse", "--verify", "HEAD"], { cwd: projectPath });
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Commit any uncommitted work in the project as a checkpoint before an isolated
|
|
169
|
-
* Goal worker worktree is created. This is the rollback guarantee that licenses
|
|
170
|
-
* unattended Goal autonomy: the auto-commit is clearly prefixed and reversible.
|
|
171
|
-
*/
|
|
172
|
-
export async function checkpointGoalWorkingTree({ projectPath, message, commandRunner, }) {
|
|
173
|
-
const runner = commandRunner ?? { execFile: defaultGoalWorktreeCommandRunner };
|
|
174
|
-
// Preserve the leading porcelain status codes (e.g. " M file"); only trim the
|
|
175
|
-
// trailing newline so parseChangedFiles can slice each line correctly.
|
|
176
|
-
let rawStatus;
|
|
177
|
-
try {
|
|
178
|
-
const result = await runner.execFile("git", ["status", "--porcelain"], { cwd: projectPath });
|
|
179
|
-
rawStatus = result.stdout.replace(/\s+$/u, "");
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
throw new Error(`git status --porcelain failed: ${formatGitError(error)}`, { cause: error });
|
|
183
|
-
}
|
|
184
|
-
if (rawStatus.length === 0)
|
|
185
|
-
return { committed: false, status: "" };
|
|
186
|
-
await gitStdout(runner, projectPath, ["add", "-A"]);
|
|
187
|
-
await commitWithIdentityFallback(runner, projectPath, message);
|
|
188
|
-
const sha = await gitStdout(runner, projectPath, ["rev-parse", "HEAD"]);
|
|
189
|
-
return { committed: true, sha, status: rawStatus, files: parseChangedFiles(rawStatus) };
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Commit a worktree worker's changes onto its own branch and return a typed,
|
|
193
|
-
* structured candidate packet. This is the worker-commit discipline that lets
|
|
194
|
-
* integration read exactly what changed instead of reverse-engineering a dirty
|
|
195
|
-
* worktree, and it leaves the worktree clean so the integration check passes
|
|
196
|
-
* deterministically. Returns undefined when the worker produced no changes.
|
|
197
|
-
*/
|
|
198
|
-
export async function commitGoalWorkerCandidate({ worktreePath, branchName, baseRef, message, commandRunner, }) {
|
|
199
|
-
const runner = commandRunner ?? { execFile: defaultGoalWorktreeCommandRunner };
|
|
200
|
-
const status = await gitStdout(runner, worktreePath, ["status", "--porcelain"]);
|
|
201
|
-
let committed = false;
|
|
202
|
-
if (status.length > 0) {
|
|
203
|
-
await gitStdout(runner, worktreePath, ["add", "-A"]);
|
|
204
|
-
await commitWithIdentityFallback(runner, worktreePath, message);
|
|
205
|
-
committed = true;
|
|
206
|
-
}
|
|
207
|
-
const headSha = await gitStdout(runner, worktreePath, ["rev-parse", "HEAD"]);
|
|
208
|
-
const changedFiles = parseNameOnly(await gitStdout(runner, worktreePath, ["diff", "--name-only", baseRef, "HEAD"]));
|
|
209
|
-
if (headSha === baseRef && changedFiles.length === 0)
|
|
210
|
-
return undefined;
|
|
211
|
-
return { baseRef, headSha, branchName, changedFiles, committed };
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Remove a completed Goal run's worker worktrees and their branches, then prune
|
|
215
|
-
* stale worktree metadata. Best-effort and idempotent: anything already gone is
|
|
216
|
-
* ignored. Keeps the user's repo free of accumulating Goal worktrees/branches
|
|
217
|
-
* across many runs without ever touching their working tree or other branches.
|
|
218
|
-
*/
|
|
219
|
-
export async function removeGoalRunWorktrees(projectPath, run, commandRunner) {
|
|
220
|
-
const runner = commandRunner ?? { execFile: defaultGoalWorktreeCommandRunner };
|
|
221
|
-
const removedPaths = [];
|
|
222
|
-
const removedBranches = [];
|
|
223
|
-
const seenPaths = new Set();
|
|
224
|
-
const seenBranches = new Set();
|
|
225
|
-
for (const task of run.tasks) {
|
|
226
|
-
const worktree = task.worktree;
|
|
227
|
-
if (!worktree)
|
|
228
|
-
continue;
|
|
229
|
-
if (!seenPaths.has(worktree.path)) {
|
|
230
|
-
seenPaths.add(worktree.path);
|
|
231
|
-
try {
|
|
232
|
-
await runner.execFile("git", ["worktree", "remove", "--force", worktree.path], {
|
|
233
|
-
cwd: projectPath,
|
|
234
|
-
});
|
|
235
|
-
removedPaths.push(worktree.path);
|
|
236
|
-
}
|
|
237
|
-
catch {
|
|
238
|
-
// Worktree already removed or never created; ignore.
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
if (!seenBranches.has(worktree.branchName)) {
|
|
242
|
-
seenBranches.add(worktree.branchName);
|
|
243
|
-
try {
|
|
244
|
-
await runner.execFile("git", ["branch", "-D", worktree.branchName], { cwd: projectPath });
|
|
245
|
-
removedBranches.push(worktree.branchName);
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
// Branch already deleted or checked out elsewhere; ignore.
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
try {
|
|
253
|
-
await runner.execFile("git", ["worktree", "prune"], { cwd: projectPath });
|
|
254
|
-
}
|
|
255
|
-
catch {
|
|
256
|
-
// Prune is best-effort hygiene.
|
|
257
|
-
}
|
|
258
|
-
return { removedPaths, removedBranches };
|
|
259
|
-
}
|
|
260
|
-
export async function createGoalWorkerWorktree({ projectPath, goalRunId, goalTaskId, workerId, baseRef, worktreesRoot, commandRunner, }) {
|
|
261
|
-
const runner = commandRunner ?? { execFile: defaultGoalWorktreeCommandRunner };
|
|
262
|
-
await assertCleanProject(runner, projectPath);
|
|
263
|
-
const resolvedBaseRef = baseRef ?? (await gitStdout(runner, projectPath, ["rev-parse", "HEAD"]));
|
|
264
|
-
const token = sanitizeWorktreeToken(`${goalTaskId}-${workerId}`);
|
|
265
|
-
const branchName = `goal/${sanitizeWorktreeToken(goalRunId)}/${token}`;
|
|
266
|
-
const root = worktreesRoot ?? goalWorktreeRoot(projectPath);
|
|
267
|
-
const worktreePath = join(root, token);
|
|
268
|
-
await mkdir(root, { recursive: true });
|
|
269
|
-
await runner.execFile("git", ["worktree", "add", "-b", branchName, worktreePath, resolvedBaseRef], {
|
|
270
|
-
cwd: projectPath,
|
|
271
|
-
});
|
|
272
|
-
return { baseRef: resolvedBaseRef, branchName, path: worktreePath };
|
|
273
|
-
}
|
|
274
|
-
async function assertCleanProject(runner, cwd) {
|
|
275
|
-
const status = await gitStdout(runner, cwd, ["status", "--porcelain"]);
|
|
276
|
-
if (status.length > 0) {
|
|
277
|
-
throw new GoalWorktreeDirtyError(status);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
async function gitStdout(runner, cwd, args) {
|
|
281
|
-
try {
|
|
282
|
-
const result = await runner.execFile("git", args, { cwd });
|
|
283
|
-
return result.stdout.trim();
|
|
284
|
-
}
|
|
285
|
-
catch (error) {
|
|
286
|
-
throw new Error(`git ${args.join(" ")} failed: ${formatGitError(error)}`, { cause: error });
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
export function formatGitError(error) {
|
|
290
|
-
if (error instanceof Error) {
|
|
291
|
-
const maybe = error;
|
|
292
|
-
const output = [maybe.stderr, maybe.stdout, error.message]
|
|
293
|
-
.filter((item) => typeof item === "string" && item.trim().length > 0)
|
|
294
|
-
.join("\n")
|
|
295
|
-
.trim();
|
|
296
|
-
return output.slice(0, MAX_GIT_OUTPUT);
|
|
297
|
-
}
|
|
298
|
-
return String(error).slice(0, MAX_GIT_OUTPUT);
|
|
299
|
-
}
|
|
300
|
-
//# sourceMappingURL=goal-worktree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"goal-worktree.js","sourceRoot":"","sources":["../../src/core/goal-worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"goal-worktree.test.d.ts","sourceRoot":"","sources":["../../src/core/goal-worktree.test.ts"],"names":[],"mappings":""}
|