@kenkaiiii/ggcoder 4.3.223 → 4.3.225
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 -1
- package/dist/cli/auth.d.ts +4 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +344 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/pixel.d.ts +27 -0
- package/dist/cli/pixel.d.ts.map +1 -0
- package/dist/cli/pixel.js +103 -0
- package/dist/cli/pixel.js.map +1 -0
- package/dist/cli/shared.d.ts +13 -0
- package/dist/cli/shared.d.ts.map +1 -0
- package/dist/cli/shared.js +82 -0
- package/dist/cli/shared.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -544
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/core/compaction/compactor.test.js +2 -2
- package/dist/core/compaction/token-estimator.test.js +1 -1
- package/dist/core/model-registry.d.ts +2 -2
- package/dist/core/model-registry.js +4 -4
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-registry.test.js +1 -1
- package/dist/core/model-registry.test.js.map +1 -1
- package/dist/core/runtime-mode.js +1 -1
- package/dist/core/runtime-mode.js.map +1 -1
- package/dist/core/settings-manager.d.ts +3 -2
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +1 -6
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/system-prompt.js +2 -2
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +2 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/plan-mode.test.js +13 -1
- package/dist/tools/plan-mode.test.js.map +1 -1
- package/dist/tools/read-only-bash.d.ts +13 -0
- package/dist/tools/read-only-bash.d.ts.map +1 -0
- package/dist/tools/read-only-bash.js +155 -0
- package/dist/tools/read-only-bash.js.map +1 -0
- package/dist/tools/read-only-bash.test.d.ts +2 -0
- package/dist/tools/read-only-bash.test.d.ts.map +1 -0
- package/dist/tools/read-only-bash.test.js +47 -0
- package/dist/tools/read-only-bash.test.js.map +1 -0
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +105 -1034
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/components/Footer.d.ts +2 -2
- package/dist/ui/components/Footer.js +8 -8
- package/dist/ui/components/Footer.js.map +1 -1
- package/dist/ui/components/index.d.ts +3 -0
- package/dist/ui/components/index.d.ts.map +1 -1
- package/dist/ui/components/index.js +3 -0
- package/dist/ui/components/index.js.map +1 -1
- package/dist/ui/hooks/useContextCompaction.d.ts +41 -0
- package/dist/ui/hooks/useContextCompaction.d.ts.map +1 -0
- package/dist/ui/hooks/useContextCompaction.js +149 -0
- package/dist/ui/hooks/useContextCompaction.js.map +1 -0
- package/dist/ui/hooks/useGoalOrchestration.d.ts +81 -0
- package/dist/ui/hooks/useGoalOrchestration.d.ts.map +1 -0
- package/dist/ui/hooks/useGoalOrchestration.js +745 -0
- package/dist/ui/hooks/useGoalOrchestration.js.map +1 -0
- package/dist/ui/hooks/useModeState.d.ts +61 -0
- package/dist/ui/hooks/useModeState.d.ts.map +1 -0
- package/dist/ui/hooks/useModeState.js +86 -0
- package/dist/ui/hooks/useModeState.js.map +1 -0
- package/dist/ui/hooks/usePixelFixFlow.d.ts +57 -0
- package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -0
- package/dist/ui/hooks/usePixelFixFlow.js +102 -0
- package/dist/ui/hooks/usePixelFixFlow.js.map +1 -0
- package/dist/ui/hooks/useSessionPersistence.d.ts +34 -0
- package/dist/ui/hooks/useSessionPersistence.d.ts.map +1 -0
- package/dist/ui/hooks/useSessionPersistence.js +67 -0
- package/dist/ui/hooks/useSessionPersistence.js.map +1 -0
- package/dist/ui/hooks/useTranscriptHistory.d.ts +30 -16
- package/dist/ui/hooks/useTranscriptHistory.d.ts.map +1 -1
- package/dist/ui/hooks/useTranscriptHistory.js +13 -15
- package/dist/ui/hooks/useTranscriptHistory.js.map +1 -1
- package/dist/ui/login.js +1 -1
- package/dist/ui/terminal-history.test.js +60 -0
- package/dist/ui/terminal-history.test.js.map +1 -1
- package/dist/ui/thinking-level-cycle.test.js +23 -3
- package/dist/ui/thinking-level-cycle.test.js.map +1 -1
- package/dist/ui/thinking-level.d.ts.map +1 -1
- package/dist/ui/thinking-level.js +30 -1
- package/dist/ui/thinking-level.js.map +1 -1
- package/dist/ui/transcript/spacing.d.ts +31 -19
- package/dist/ui/transcript/spacing.d.ts.map +1 -1
- package/dist/ui/transcript/spacing.js +16 -3
- package/dist/ui/transcript/spacing.js.map +1 -1
- package/package.json +24 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGoalOrchestration.js","sourceRoot":"","sources":["../../../src/ui/hooks/useGoalOrchestration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type MutableRefObject } from "react";
|
|
2
|
+
import type { Message } from "@kenkaiiii/gg-ai";
|
|
3
|
+
import type { AgentTool } from "@kenkaiiii/gg-agent";
|
|
4
|
+
import type { GoalMode } from "../../core/runtime-mode.js";
|
|
5
|
+
import type { LanguageId } from "../../core/language-detector.js";
|
|
6
|
+
import type { Skill } from "../../core/skills.js";
|
|
7
|
+
/** Options accepted by {@link useModeState.rebuildSystemPrompt}. */
|
|
8
|
+
export interface RebuildSystemPromptOptions {
|
|
9
|
+
cwd?: string;
|
|
10
|
+
approvedPlanPath?: string;
|
|
11
|
+
clearApprovedPlan?: boolean;
|
|
12
|
+
activeLanguages?: Set<LanguageId>;
|
|
13
|
+
tools?: AgentTool[];
|
|
14
|
+
goalMode?: GoalMode;
|
|
15
|
+
planMode?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** Minimal session-store surface the mode state mirrors into for remount survival. */
|
|
18
|
+
interface ModeSessionStore {
|
|
19
|
+
goalMode?: GoalMode;
|
|
20
|
+
planMode?: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface UseModeStateOptions {
|
|
23
|
+
initialGoalMode: GoalMode;
|
|
24
|
+
initialPlanMode: boolean;
|
|
25
|
+
skills: Skill[] | undefined;
|
|
26
|
+
goalModeRef?: {
|
|
27
|
+
current: GoalMode;
|
|
28
|
+
};
|
|
29
|
+
planModeRef?: {
|
|
30
|
+
current: boolean;
|
|
31
|
+
};
|
|
32
|
+
sessionStore?: ModeSessionStore;
|
|
33
|
+
cwdRef: MutableRefObject<string>;
|
|
34
|
+
currentToolsRef: MutableRefObject<AgentTool[]>;
|
|
35
|
+
approvedPlanPathRef: MutableRefObject<string | undefined>;
|
|
36
|
+
injectedLanguagesRef: MutableRefObject<Set<LanguageId>>;
|
|
37
|
+
messagesRef: MutableRefObject<Message[]>;
|
|
38
|
+
runningGoalIdsRef: MutableRefObject<Set<string>>;
|
|
39
|
+
activeVerifierRunIdsRef: MutableRefObject<Set<string>>;
|
|
40
|
+
queuedGoalSyntheticEventsRef: MutableRefObject<number>;
|
|
41
|
+
}
|
|
42
|
+
export interface ModeState {
|
|
43
|
+
goalMode: GoalMode;
|
|
44
|
+
planMode: boolean;
|
|
45
|
+
goalModeStateRef: MutableRefObject<GoalMode>;
|
|
46
|
+
planModeStateRef: MutableRefObject<boolean>;
|
|
47
|
+
rebuildSystemPrompt: (options?: RebuildSystemPromptOptions) => Promise<string>;
|
|
48
|
+
replaceSystemPrompt: (options?: RebuildSystemPromptOptions) => Promise<string>;
|
|
49
|
+
setGoalModeAndPrompt: (nextMode: GoalMode, options?: Omit<RebuildSystemPromptOptions, "goalMode">) => Promise<void>;
|
|
50
|
+
setPlanModeAndPrompt: (nextMode: boolean) => Promise<void>;
|
|
51
|
+
clearGoalModeIfIdle: () => void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Owns the `goalMode`/`planMode` runtime state and the system-prompt rebuild
|
|
55
|
+
* cluster (`rebuildSystemPrompt`, `replaceSystemPrompt`, `setGoalModeAndPrompt`,
|
|
56
|
+
* `setPlanModeAndPrompt`, `clearGoalModeIfIdle`). Extracted from `App.tsx` as a
|
|
57
|
+
* self-contained controller; behavior is identical to the previous inline code.
|
|
58
|
+
*/
|
|
59
|
+
export declare function useModeState({ initialGoalMode, initialPlanMode, skills, goalModeRef, planModeRef, sessionStore, cwdRef, currentToolsRef, approvedPlanPathRef, injectedLanguagesRef, messagesRef, runningGoalIdsRef, activeVerifierRunIdsRef, queuedGoalSyntheticEventsRef, }: UseModeStateOptions): ModeState;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=useModeState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModeState.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useModeState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { buildSystemPrompt } from "../../system-prompt.js";
|
|
3
|
+
/**
|
|
4
|
+
* Owns the `goalMode`/`planMode` runtime state and the system-prompt rebuild
|
|
5
|
+
* cluster (`rebuildSystemPrompt`, `replaceSystemPrompt`, `setGoalModeAndPrompt`,
|
|
6
|
+
* `setPlanModeAndPrompt`, `clearGoalModeIfIdle`). Extracted from `App.tsx` as a
|
|
7
|
+
* self-contained controller; behavior is identical to the previous inline code.
|
|
8
|
+
*/
|
|
9
|
+
export function useModeState({ initialGoalMode, initialPlanMode, skills, goalModeRef, planModeRef, sessionStore, cwdRef, currentToolsRef, approvedPlanPathRef, injectedLanguagesRef, messagesRef, runningGoalIdsRef, activeVerifierRunIdsRef, queuedGoalSyntheticEventsRef, }) {
|
|
10
|
+
const [goalMode, setGoalMode] = useState(initialGoalMode);
|
|
11
|
+
const [planMode, setPlanMode] = useState(initialPlanMode);
|
|
12
|
+
const goalModeStateRef = useRef(goalMode);
|
|
13
|
+
const planModeStateRef = useRef(planMode);
|
|
14
|
+
// Keep runtime mode refs in sync with React state.
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
goalModeStateRef.current = goalMode;
|
|
17
|
+
if (goalModeRef)
|
|
18
|
+
goalModeRef.current = goalMode;
|
|
19
|
+
}, [goalMode, goalModeRef]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
planModeStateRef.current = planMode;
|
|
22
|
+
if (planModeRef)
|
|
23
|
+
planModeRef.current = planMode;
|
|
24
|
+
}, [planMode, planModeRef]);
|
|
25
|
+
const rebuildSystemPrompt = useCallback(async (options) => {
|
|
26
|
+
const approvedPlanPath = options?.clearApprovedPlan
|
|
27
|
+
? undefined
|
|
28
|
+
: (options?.approvedPlanPath ?? approvedPlanPathRef.current);
|
|
29
|
+
return buildSystemPrompt(options?.cwd ?? cwdRef.current, skills, options?.planMode ?? planModeStateRef.current, approvedPlanPath, (options?.tools ?? currentToolsRef.current).map((tool) => tool.name), options?.activeLanguages ?? injectedLanguagesRef.current, options?.goalMode ?? goalModeStateRef.current);
|
|
30
|
+
}, [skills, approvedPlanPathRef, cwdRef, currentToolsRef, injectedLanguagesRef]);
|
|
31
|
+
const replaceSystemPrompt = useCallback(async (options) => {
|
|
32
|
+
const newPrompt = await rebuildSystemPrompt(options);
|
|
33
|
+
if (messagesRef.current[0]?.role === "system") {
|
|
34
|
+
messagesRef.current[0] = { role: "system", content: newPrompt };
|
|
35
|
+
}
|
|
36
|
+
return newPrompt;
|
|
37
|
+
}, [rebuildSystemPrompt, messagesRef]);
|
|
38
|
+
const setGoalModeAndPrompt = useCallback(async (nextMode, options) => {
|
|
39
|
+
goalModeStateRef.current = nextMode;
|
|
40
|
+
if (goalModeRef)
|
|
41
|
+
goalModeRef.current = nextMode;
|
|
42
|
+
if (sessionStore)
|
|
43
|
+
sessionStore.goalMode = nextMode;
|
|
44
|
+
setGoalMode(nextMode);
|
|
45
|
+
await replaceSystemPrompt({ ...options, goalMode: nextMode });
|
|
46
|
+
}, [goalModeRef, sessionStore, replaceSystemPrompt]);
|
|
47
|
+
const setPlanModeAndPrompt = useCallback(async (nextMode) => {
|
|
48
|
+
planModeStateRef.current = nextMode;
|
|
49
|
+
if (planModeRef)
|
|
50
|
+
planModeRef.current = nextMode;
|
|
51
|
+
if (sessionStore)
|
|
52
|
+
sessionStore.planMode = nextMode;
|
|
53
|
+
setPlanMode(nextMode);
|
|
54
|
+
await replaceSystemPrompt({ planMode: nextMode });
|
|
55
|
+
}, [planModeRef, sessionStore, replaceSystemPrompt]);
|
|
56
|
+
const clearGoalModeIfIdle = useCallback(() => {
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
if (goalModeStateRef.current === "off")
|
|
59
|
+
return;
|
|
60
|
+
if (runningGoalIdsRef.current.size > 0)
|
|
61
|
+
return;
|
|
62
|
+
if (activeVerifierRunIdsRef.current.size > 0)
|
|
63
|
+
return;
|
|
64
|
+
if (queuedGoalSyntheticEventsRef.current > 0)
|
|
65
|
+
return;
|
|
66
|
+
void setGoalModeAndPrompt("off");
|
|
67
|
+
}, 0);
|
|
68
|
+
}, [
|
|
69
|
+
setGoalModeAndPrompt,
|
|
70
|
+
runningGoalIdsRef,
|
|
71
|
+
activeVerifierRunIdsRef,
|
|
72
|
+
queuedGoalSyntheticEventsRef,
|
|
73
|
+
]);
|
|
74
|
+
return {
|
|
75
|
+
goalMode,
|
|
76
|
+
planMode,
|
|
77
|
+
goalModeStateRef,
|
|
78
|
+
planModeStateRef,
|
|
79
|
+
rebuildSystemPrompt,
|
|
80
|
+
replaceSystemPrompt,
|
|
81
|
+
setGoalModeAndPrompt,
|
|
82
|
+
setPlanModeAndPrompt,
|
|
83
|
+
clearGoalModeIfIdle,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=useModeState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModeState.js","sourceRoot":"","sources":["../../../src/ui/hooks/useModeState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type Dispatch, type MutableRefObject, type SetStateAction } from "react";
|
|
2
|
+
import type { Message, Provider } from "@kenkaiiii/gg-ai";
|
|
3
|
+
import type { AgentTool } from "@kenkaiiii/gg-agent";
|
|
4
|
+
import { type LanguageId } from "../../core/language-detector.js";
|
|
5
|
+
import type { PreparedPixelFix } from "../../core/pixel-fix.js";
|
|
6
|
+
import type { SessionManager } from "../../core/session-manager.js";
|
|
7
|
+
import type { UseAgentLoopReturn } from "./useAgentLoop.js";
|
|
8
|
+
import type { RebuildSystemPromptOptions } from "./useModeState.js";
|
|
9
|
+
import type { CompletedItem } from "../app-items.js";
|
|
10
|
+
import type { DoneStatus } from "../layout-decisions.js";
|
|
11
|
+
/** Minimal session-store surface the pixel run-all flag mirrors into. */
|
|
12
|
+
interface PixelSessionStore {
|
|
13
|
+
runAllPixel?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface UsePixelFixFlowOptions {
|
|
16
|
+
agentLoop: UseAgentLoopReturn;
|
|
17
|
+
cwd: string;
|
|
18
|
+
currentProvider: Provider;
|
|
19
|
+
currentModel: string;
|
|
20
|
+
rebuildToolsForCwd?: (cwd: string) => AgentTool[];
|
|
21
|
+
sessionStore?: PixelSessionStore;
|
|
22
|
+
currentPixelFixRef: MutableRefObject<PreparedPixelFix | null>;
|
|
23
|
+
runAllPixelRef: MutableRefObject<boolean>;
|
|
24
|
+
startPixelFixRef: MutableRefObject<(errorId: string) => void>;
|
|
25
|
+
cwdRef: MutableRefObject<string>;
|
|
26
|
+
currentToolsRef: MutableRefObject<AgentTool[]>;
|
|
27
|
+
injectedLanguagesRef: MutableRefObject<Set<LanguageId>>;
|
|
28
|
+
setupHintShownRef: MutableRefObject<boolean>;
|
|
29
|
+
messagesRef: MutableRefObject<Message[]>;
|
|
30
|
+
persistedIndexRef: MutableRefObject<number>;
|
|
31
|
+
sessionManagerRef: MutableRefObject<SessionManager | null>;
|
|
32
|
+
sessionPathRef: MutableRefObject<string | undefined>;
|
|
33
|
+
setDisplayedCwd: Dispatch<SetStateAction<string>>;
|
|
34
|
+
setCurrentTools: Dispatch<SetStateAction<AgentTool[]>>;
|
|
35
|
+
setHistory: Dispatch<SetStateAction<CompletedItem[]>>;
|
|
36
|
+
setLiveItems: Dispatch<SetStateAction<CompletedItem[]>>;
|
|
37
|
+
setLastUserMessage: Dispatch<SetStateAction<string>>;
|
|
38
|
+
setDoneStatus: Dispatch<SetStateAction<DoneStatus | null>>;
|
|
39
|
+
rebuildSystemPrompt: (options?: RebuildSystemPromptOptions) => Promise<string>;
|
|
40
|
+
clearPendingHistory: () => void;
|
|
41
|
+
getId: () => string;
|
|
42
|
+
initialRunAllPixel: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface PixelFixFlow {
|
|
45
|
+
startPixelFix: (errorId: string) => void;
|
|
46
|
+
runAllPixel: boolean;
|
|
47
|
+
setRunAllPixel: Dispatch<SetStateAction<boolean>>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Owns the in-Ink pixel-fix flow: swapping cwd/tools/system-prompt/banner in
|
|
51
|
+
* lockstep, resetting chat state, kicking off the agent run, and the "fix all"
|
|
52
|
+
* run-all flag. Extracted verbatim from `App.tsx`; see CLAUDE.md for the
|
|
53
|
+
* four-things-in-lockstep contract.
|
|
54
|
+
*/
|
|
55
|
+
export declare function usePixelFixFlow({ agentLoop, cwd, currentProvider, currentModel, rebuildToolsForCwd, sessionStore, currentPixelFixRef, runAllPixelRef, startPixelFixRef, cwdRef, currentToolsRef, injectedLanguagesRef, setupHintShownRef, messagesRef, persistedIndexRef, sessionManagerRef, sessionPathRef, setDisplayedCwd, setCurrentTools, setHistory, setLiveItems, setLastUserMessage, setDoneStatus, rebuildSystemPrompt, clearPendingHistory, getId, initialRunAllPixel, }: UsePixelFixFlowOptions): PixelFixFlow;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=usePixelFixFlow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePixelFixFlow.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/usePixelFixFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState, } from "react";
|
|
2
|
+
import { log } from "../../core/logger.js";
|
|
3
|
+
import { detectLanguages } from "../../core/language-detector.js";
|
|
4
|
+
import { toErrorItem } from "../error-item.js";
|
|
5
|
+
/**
|
|
6
|
+
* Owns the in-Ink pixel-fix flow: swapping cwd/tools/system-prompt/banner in
|
|
7
|
+
* lockstep, resetting chat state, kicking off the agent run, and the "fix all"
|
|
8
|
+
* run-all flag. Extracted verbatim from `App.tsx`; see CLAUDE.md for the
|
|
9
|
+
* four-things-in-lockstep contract.
|
|
10
|
+
*/
|
|
11
|
+
export function usePixelFixFlow({ agentLoop, cwd, currentProvider, currentModel, rebuildToolsForCwd, sessionStore, currentPixelFixRef, runAllPixelRef, startPixelFixRef, cwdRef, currentToolsRef, injectedLanguagesRef, setupHintShownRef, messagesRef, persistedIndexRef, sessionManagerRef, sessionPathRef, setDisplayedCwd, setCurrentTools, setHistory, setLiveItems, setLastUserMessage, setDoneStatus, rebuildSystemPrompt, clearPendingHistory, getId, initialRunAllPixel, }) {
|
|
12
|
+
const [runAllPixel, setRunAllPixel] = useState(initialRunAllPixel);
|
|
13
|
+
const startPixelFix = useCallback((errorId) => {
|
|
14
|
+
void (async () => {
|
|
15
|
+
try {
|
|
16
|
+
const { preparePixelFix } = await import("../../core/pixel-fix.js");
|
|
17
|
+
const prep = await preparePixelFix(errorId);
|
|
18
|
+
currentPixelFixRef.current = prep;
|
|
19
|
+
// Move the agent into the error's project root. Four things must
|
|
20
|
+
// change in lockstep, otherwise the agent (or the chrome around
|
|
21
|
+
// it) shows the wrong project:
|
|
22
|
+
// 1. process.cwd — for any code reading it directly
|
|
23
|
+
// 2. cwd-bound tools (read/write/bash/grep/…) — baked at creation
|
|
24
|
+
// 3. the system prompt's "Working directory: …" line — the only
|
|
25
|
+
// place the model itself learns where it is
|
|
26
|
+
// 4. displayedCwd state — Banner + Footer read this for display
|
|
27
|
+
try {
|
|
28
|
+
process.chdir(prep.projectPath);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
log("WARN", "pixel", `chdir failed: ${err.message}`);
|
|
32
|
+
}
|
|
33
|
+
cwdRef.current = prep.projectPath;
|
|
34
|
+
setDisplayedCwd(prep.projectPath);
|
|
35
|
+
let toolsForPixelFix = currentToolsRef.current;
|
|
36
|
+
if (rebuildToolsForCwd) {
|
|
37
|
+
toolsForPixelFix = rebuildToolsForCwd(prep.projectPath);
|
|
38
|
+
currentToolsRef.current = toolsForPixelFix;
|
|
39
|
+
setCurrentTools(toolsForPixelFix);
|
|
40
|
+
}
|
|
41
|
+
// Pixel-fix swaps the project root — reset injected packs so the
|
|
42
|
+
// new project re-detects from scratch on the next tool call. Also
|
|
43
|
+
// reset the setup-hint flag so the new project's first badge re-
|
|
44
|
+
// surfaces the tip (different project, may need the reminder).
|
|
45
|
+
injectedLanguagesRef.current = new Set();
|
|
46
|
+
setupHintShownRef.current = false;
|
|
47
|
+
const detectedForPixelFix = detectLanguages(prep.projectPath);
|
|
48
|
+
injectedLanguagesRef.current = detectedForPixelFix;
|
|
49
|
+
const newSystemPrompt = await rebuildSystemPrompt({
|
|
50
|
+
cwd: prep.projectPath,
|
|
51
|
+
clearApprovedPlan: true,
|
|
52
|
+
activeLanguages: detectedForPixelFix,
|
|
53
|
+
tools: toolsForPixelFix,
|
|
54
|
+
});
|
|
55
|
+
// Now that the cwd swap is committed, reset chat. Do not clear the
|
|
56
|
+
// terminal here; terminal clear sequences can erase saved scrollback.
|
|
57
|
+
clearPendingHistory();
|
|
58
|
+
setHistory([{ kind: "banner", id: "banner" }]);
|
|
59
|
+
setLiveItems([]);
|
|
60
|
+
messagesRef.current = messagesRef.current.slice(0, 1);
|
|
61
|
+
agentLoop.reset();
|
|
62
|
+
persistedIndexRef.current = messagesRef.current.length;
|
|
63
|
+
const sm = sessionManagerRef.current;
|
|
64
|
+
if (sm) {
|
|
65
|
+
void sm.create(prep.projectPath, currentProvider, currentModel).then((s) => {
|
|
66
|
+
sessionPathRef.current = s.path;
|
|
67
|
+
log("INFO", "pixel", "New session for pixel fix", { path: s.path });
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (messagesRef.current[0]?.role === "system") {
|
|
71
|
+
messagesRef.current[0] = { role: "system", content: newSystemPrompt };
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
messagesRef.current.unshift({ role: "system", content: newSystemPrompt });
|
|
75
|
+
}
|
|
76
|
+
const title = `Fix ${errorId.slice(0, 12)}… in ${prep.projectName}`;
|
|
77
|
+
const goalItem = { kind: "goal", title, id: getId() };
|
|
78
|
+
setLastUserMessage(title);
|
|
79
|
+
setDoneStatus(null);
|
|
80
|
+
setLiveItems([goalItem]);
|
|
81
|
+
await agentLoop.run(prep.prompt);
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
85
|
+
log("ERROR", "pixel", msg);
|
|
86
|
+
currentPixelFixRef.current = null;
|
|
87
|
+
setRunAllPixel(false);
|
|
88
|
+
setLiveItems((prev) => [...prev, toErrorItem(err, getId())]);
|
|
89
|
+
}
|
|
90
|
+
})();
|
|
91
|
+
}, [cwd, agentLoop, currentProvider, currentModel]);
|
|
92
|
+
startPixelFixRef.current = startPixelFix;
|
|
93
|
+
// Seed from sessionStore so "Fix All" chaining survives a deferred
|
|
94
|
+
// resetUI() if it fires between pixel fixes (e.g. user toggled a pane).
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
runAllPixelRef.current = runAllPixel;
|
|
97
|
+
if (sessionStore)
|
|
98
|
+
sessionStore.runAllPixel = runAllPixel;
|
|
99
|
+
}, [runAllPixel, sessionStore, runAllPixelRef]);
|
|
100
|
+
return { startPixelFix, runAllPixel, setRunAllPixel };
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=usePixelFixFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePixelFixFlow.js","sourceRoot":"","sources":["../../../src/ui/hooks/usePixelFixFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type MutableRefObject } from "react";
|
|
2
|
+
import type { Message, Provider } from "@kenkaiiii/gg-ai";
|
|
3
|
+
import type { SessionManager } from "../../core/session-manager.js";
|
|
4
|
+
import type { SessionStats } from "../session-summary.js";
|
|
5
|
+
/** Minimal session-store surface the persistence layer mirrors into. */
|
|
6
|
+
interface PersistenceSessionStore {
|
|
7
|
+
messages: Message[];
|
|
8
|
+
sessionPath?: string;
|
|
9
|
+
sessionId?: string;
|
|
10
|
+
}
|
|
11
|
+
interface UseSessionPersistenceOptions {
|
|
12
|
+
sessionManagerRef: MutableRefObject<SessionManager | null>;
|
|
13
|
+
sessionPathRef: MutableRefObject<string | undefined>;
|
|
14
|
+
sessionStatsRef: MutableRefObject<SessionStats>;
|
|
15
|
+
persistedIndexRef: MutableRefObject<number>;
|
|
16
|
+
messagesRef: MutableRefObject<Message[]>;
|
|
17
|
+
cwdRef: MutableRefObject<string>;
|
|
18
|
+
currentProvider: Provider;
|
|
19
|
+
currentModel: string;
|
|
20
|
+
sessionStore?: PersistenceSessionStore;
|
|
21
|
+
}
|
|
22
|
+
export interface SessionPersistence {
|
|
23
|
+
appendMessagesToSession: (sessionPath: string, messages: readonly Message[], startIndex: number) => Promise<void>;
|
|
24
|
+
persistCompactedSession: (compactedMessages: readonly Message[]) => Promise<void>;
|
|
25
|
+
persistNewMessages: () => Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Owns session message persistence: appending new turn messages, persisting a
|
|
29
|
+
* compacted checkpoint, and keeping `persistedIndexRef`/`sessionStatsRef`/the
|
|
30
|
+
* session store in sync. Extracted verbatim from `App.tsx`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function useSessionPersistence({ sessionManagerRef, sessionPathRef, sessionStatsRef, persistedIndexRef, messagesRef, cwdRef, currentProvider, currentModel, sessionStore, }: UseSessionPersistenceOptions): SessionPersistence;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=useSessionPersistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionPersistence.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useSessionPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,wEAAwE;AACxE,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,4BAA4B;IACpC,iBAAiB,EAAE,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC3D,cAAc,EAAE,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrD,eAAe,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,iBAAiB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,QAAQ,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IACjC,uBAAuB,EAAE,CACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,uBAAuB,EAAE,CAAC,iBAAiB,EAAE,SAAS,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,eAAe,EACf,YAAY,EACZ,YAAY,GACb,EAAE,4BAA4B,GAAG,kBAAkB,CA+DnD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { appendMessagesToSession as appendSessionMessages, createCompactedSessionCheckpoint, } from "../../core/session-compaction.js";
|
|
3
|
+
import { log } from "../../core/logger.js";
|
|
4
|
+
/**
|
|
5
|
+
* Owns session message persistence: appending new turn messages, persisting a
|
|
6
|
+
* compacted checkpoint, and keeping `persistedIndexRef`/`sessionStatsRef`/the
|
|
7
|
+
* session store in sync. Extracted verbatim from `App.tsx`.
|
|
8
|
+
*/
|
|
9
|
+
export function useSessionPersistence({ sessionManagerRef, sessionPathRef, sessionStatsRef, persistedIndexRef, messagesRef, cwdRef, currentProvider, currentModel, sessionStore, }) {
|
|
10
|
+
const appendMessagesToSession = useCallback(async (sessionPath, messages, startIndex) => {
|
|
11
|
+
const sm = sessionManagerRef.current;
|
|
12
|
+
if (!sm)
|
|
13
|
+
return;
|
|
14
|
+
await appendSessionMessages(sm, sessionPath, messages, startIndex);
|
|
15
|
+
}, [sessionManagerRef]);
|
|
16
|
+
const persistCompactedSession = useCallback(async (compactedMessages) => {
|
|
17
|
+
const sm = sessionManagerRef.current;
|
|
18
|
+
if (!sm)
|
|
19
|
+
return;
|
|
20
|
+
const session = await createCompactedSessionCheckpoint(sm, {
|
|
21
|
+
cwd: cwdRef.current,
|
|
22
|
+
provider: currentProvider,
|
|
23
|
+
model: currentModel,
|
|
24
|
+
messages: compactedMessages,
|
|
25
|
+
});
|
|
26
|
+
sessionPathRef.current = session.path;
|
|
27
|
+
sessionStatsRef.current.sessionId = session.id;
|
|
28
|
+
persistedIndexRef.current = compactedMessages.length;
|
|
29
|
+
if (sessionStore) {
|
|
30
|
+
sessionStore.sessionPath = session.path;
|
|
31
|
+
sessionStore.sessionId = session.id;
|
|
32
|
+
sessionStore.messages = [...compactedMessages];
|
|
33
|
+
}
|
|
34
|
+
log("INFO", "compaction", "Persisted compacted session checkpoint", { path: session.path });
|
|
35
|
+
}, [
|
|
36
|
+
currentModel,
|
|
37
|
+
currentProvider,
|
|
38
|
+
sessionStore,
|
|
39
|
+
sessionManagerRef,
|
|
40
|
+
sessionPathRef,
|
|
41
|
+
sessionStatsRef,
|
|
42
|
+
persistedIndexRef,
|
|
43
|
+
cwdRef,
|
|
44
|
+
]);
|
|
45
|
+
const persistNewMessages = useCallback(async () => {
|
|
46
|
+
const sp = sessionPathRef.current;
|
|
47
|
+
if (!sp)
|
|
48
|
+
return;
|
|
49
|
+
const allMsgs = messagesRef.current;
|
|
50
|
+
await appendMessagesToSession(sp, allMsgs, persistedIndexRef.current);
|
|
51
|
+
persistedIndexRef.current = allMsgs.length;
|
|
52
|
+
if (sessionStore) {
|
|
53
|
+
sessionStore.messages = [...allMsgs];
|
|
54
|
+
sessionStore.sessionPath = sp;
|
|
55
|
+
sessionStore.sessionId = sessionStatsRef.current.sessionId;
|
|
56
|
+
}
|
|
57
|
+
}, [
|
|
58
|
+
appendMessagesToSession,
|
|
59
|
+
sessionStore,
|
|
60
|
+
sessionPathRef,
|
|
61
|
+
messagesRef,
|
|
62
|
+
persistedIndexRef,
|
|
63
|
+
sessionStatsRef,
|
|
64
|
+
]);
|
|
65
|
+
return { appendMessagesToSession, persistCompactedSession, persistNewMessages };
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=useSessionPersistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionPersistence.js","sourceRoot":"","sources":["../../../src/ui/hooks/useSessionPersistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,48 @@
|
|
|
1
1
|
import { type SessionManager } from "../../core/session-manager.js";
|
|
2
2
|
import type { CompletedItem } from "../app-items.js";
|
|
3
|
-
import type { TerminalHistoryContext
|
|
4
|
-
interface
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type { TerminalHistoryContext } from "../terminal-history.js";
|
|
4
|
+
interface TranscriptHistoryItem {
|
|
5
|
+
id: string;
|
|
6
|
+
kind: string;
|
|
7
7
|
}
|
|
8
|
-
interface
|
|
9
|
-
|
|
8
|
+
interface SessionStoreLike<TItem extends TranscriptHistoryItem> {
|
|
9
|
+
history?: TItem[];
|
|
10
|
+
liveItems?: TItem[];
|
|
11
|
+
}
|
|
12
|
+
interface TranscriptHistoryPrinter<TItem extends TranscriptHistoryItem> {
|
|
13
|
+
print(items: readonly TItem[], context: TerminalHistoryContext, options?: {
|
|
14
|
+
force?: boolean;
|
|
15
|
+
write?: (data: string) => void;
|
|
16
|
+
}): void;
|
|
17
|
+
clear(): void;
|
|
18
|
+
}
|
|
19
|
+
interface UseTranscriptHistoryOptions<TItem extends TranscriptHistoryItem> {
|
|
20
|
+
terminalHistoryPrinter?: TranscriptHistoryPrinter<TItem>;
|
|
10
21
|
terminalHistoryContext: TerminalHistoryContext;
|
|
11
22
|
writeStdout: (data: string) => void;
|
|
12
23
|
sessionPathRef: React.RefObject<string | undefined>;
|
|
13
24
|
sessionManagerRef: React.RefObject<SessionManager | null>;
|
|
14
|
-
sessionStore?: SessionStoreLike
|
|
15
|
-
history: readonly
|
|
16
|
-
setHistory: React.Dispatch<React.SetStateAction<
|
|
17
|
-
setLiveItems: React.Dispatch<React.SetStateAction<
|
|
25
|
+
sessionStore?: SessionStoreLike<TItem>;
|
|
26
|
+
history: readonly TItem[];
|
|
27
|
+
setHistory: React.Dispatch<React.SetStateAction<TItem[]>>;
|
|
28
|
+
setLiveItems: React.Dispatch<React.SetStateAction<TItem[]>>;
|
|
29
|
+
compactHistoryItems?: (items: TItem[]) => TItem[];
|
|
30
|
+
persistDisplayItem?: (item: TItem) => unknown;
|
|
31
|
+
trimFlushItems?: (items: TItem[]) => TItem[];
|
|
18
32
|
}
|
|
19
|
-
interface UseTranscriptHistoryResult {
|
|
20
|
-
pendingHistoryFlushRef: React.RefObject<
|
|
33
|
+
export interface UseTranscriptHistoryResult<TItem extends TranscriptHistoryItem> {
|
|
34
|
+
pendingHistoryFlushRef: React.RefObject<TItem[]>;
|
|
21
35
|
streamedAssistantFlushRef: React.RefObject<{
|
|
22
36
|
flushedChars: number;
|
|
23
37
|
text: string;
|
|
24
38
|
}>;
|
|
25
|
-
printHistoryItems: (items: readonly
|
|
39
|
+
printHistoryItems: (items: readonly TItem[], options?: {
|
|
26
40
|
force?: boolean;
|
|
27
41
|
}) => void;
|
|
28
|
-
queueFlush: (items:
|
|
29
|
-
finalizeSubmittedUserItem: (item:
|
|
42
|
+
queueFlush: (items: TItem[]) => void;
|
|
43
|
+
finalizeSubmittedUserItem: (item: TItem) => void;
|
|
30
44
|
clearPendingHistory: () => void;
|
|
31
45
|
}
|
|
32
|
-
export declare function useTranscriptHistory({ terminalHistoryPrinter, terminalHistoryContext, writeStdout, sessionPathRef, sessionManagerRef, sessionStore, history, setHistory, setLiveItems, }: UseTranscriptHistoryOptions): UseTranscriptHistoryResult
|
|
46
|
+
export declare function useTranscriptHistory<TItem extends TranscriptHistoryItem = CompletedItem>({ terminalHistoryPrinter, terminalHistoryContext, writeStdout, sessionPathRef, sessionManagerRef, sessionStore, history, setHistory, setLiveItems, compactHistoryItems, persistDisplayItem, trimFlushItems, }: UseTranscriptHistoryOptions<TItem>): UseTranscriptHistoryResult<TItem>;
|
|
33
47
|
export {};
|
|
34
48
|
//# sourceMappingURL=useTranscriptHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTranscriptHistory.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useTranscriptHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"useTranscriptHistory.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useTranscriptHistory.ts"],"names":[],"mappings":"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"}
|