@kenkaiiii/ggcoder 4.3.224 → 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.
Files changed (61) hide show
  1. package/dist/cli/auth.d.ts +4 -0
  2. package/dist/cli/auth.d.ts.map +1 -0
  3. package/dist/cli/auth.js +344 -0
  4. package/dist/cli/auth.js.map +1 -0
  5. package/dist/cli/pixel.d.ts +27 -0
  6. package/dist/cli/pixel.d.ts.map +1 -0
  7. package/dist/cli/pixel.js +103 -0
  8. package/dist/cli/pixel.js.map +1 -0
  9. package/dist/cli/shared.d.ts +13 -0
  10. package/dist/cli/shared.d.ts.map +1 -0
  11. package/dist/cli/shared.js +82 -0
  12. package/dist/cli/shared.js.map +1 -0
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +8 -537
  15. package/dist/cli.js.map +1 -1
  16. package/dist/core/runtime-mode.js +1 -1
  17. package/dist/core/runtime-mode.js.map +1 -1
  18. package/dist/system-prompt.js +2 -2
  19. package/dist/system-prompt.js.map +1 -1
  20. package/dist/tools/bash.d.ts.map +1 -1
  21. package/dist/tools/bash.js +2 -1
  22. package/dist/tools/bash.js.map +1 -1
  23. package/dist/tools/plan-mode.test.js +13 -1
  24. package/dist/tools/plan-mode.test.js.map +1 -1
  25. package/dist/tools/read-only-bash.d.ts +13 -0
  26. package/dist/tools/read-only-bash.d.ts.map +1 -0
  27. package/dist/tools/read-only-bash.js +155 -0
  28. package/dist/tools/read-only-bash.js.map +1 -0
  29. package/dist/tools/read-only-bash.test.d.ts +2 -0
  30. package/dist/tools/read-only-bash.test.d.ts.map +1 -0
  31. package/dist/tools/read-only-bash.test.js +47 -0
  32. package/dist/tools/read-only-bash.test.js.map +1 -0
  33. package/dist/ui/App.d.ts.map +1 -1
  34. package/dist/ui/App.js +105 -1034
  35. package/dist/ui/App.js.map +1 -1
  36. package/dist/ui/hooks/useContextCompaction.d.ts +41 -0
  37. package/dist/ui/hooks/useContextCompaction.d.ts.map +1 -0
  38. package/dist/ui/hooks/useContextCompaction.js +149 -0
  39. package/dist/ui/hooks/useContextCompaction.js.map +1 -0
  40. package/dist/ui/hooks/useGoalOrchestration.d.ts +81 -0
  41. package/dist/ui/hooks/useGoalOrchestration.d.ts.map +1 -0
  42. package/dist/ui/hooks/useGoalOrchestration.js +745 -0
  43. package/dist/ui/hooks/useGoalOrchestration.js.map +1 -0
  44. package/dist/ui/hooks/useModeState.d.ts +61 -0
  45. package/dist/ui/hooks/useModeState.d.ts.map +1 -0
  46. package/dist/ui/hooks/useModeState.js +86 -0
  47. package/dist/ui/hooks/useModeState.js.map +1 -0
  48. package/dist/ui/hooks/usePixelFixFlow.d.ts +57 -0
  49. package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -0
  50. package/dist/ui/hooks/usePixelFixFlow.js +102 -0
  51. package/dist/ui/hooks/usePixelFixFlow.js.map +1 -0
  52. package/dist/ui/hooks/useSessionPersistence.d.ts +34 -0
  53. package/dist/ui/hooks/useSessionPersistence.d.ts.map +1 -0
  54. package/dist/ui/hooks/useSessionPersistence.js +67 -0
  55. package/dist/ui/hooks/useSessionPersistence.js.map +1 -0
  56. package/dist/ui/terminal-history.test.js +60 -0
  57. package/dist/ui/terminal-history.test.js.map +1 -1
  58. package/dist/ui/transcript/spacing.d.ts.map +1 -1
  59. package/dist/ui/transcript/spacing.js +9 -0
  60. package/dist/ui/transcript/spacing.js.map +1 -1
  61. package/package.json +4 -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":"AAAA,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACxF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,oEAAoE;AACpE,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,sFAAsF;AACtF,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,QAAQ,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC;IACpC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/C,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACxD,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,uBAAuB,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,4BAA4B,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,mBAAmB,EAAE,CAAC,OAAO,CAAC,EAAE,0BAA0B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,mBAAmB,EAAE,CAAC,OAAO,CAAC,EAAE,0BAA0B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,oBAAoB,EAAE,CACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,UAAU,CAAC,KACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,eAAe,EACf,eAAe,EACf,MAAM,EACN,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,GAC7B,EAAE,mBAAmB,GAAG,SAAS,CAiGjC"}
@@ -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":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,GAIT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAmB,MAAM,iCAAiC,CAAC;AAOnF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA6C/C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,GAAG,EACH,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,EACL,kBAAkB,GACK;IACvB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEnE,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,OAAe,EAAE,EAAE;QAClB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC5C,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAElC,iEAAiE;gBACjE,gEAAgE;gBAChE,+BAA+B;gBAC/B,uDAAuD;gBACvD,oEAAoE;gBACpE,kEAAkE;gBAClE,iDAAiD;gBACjD,kEAAkE;gBAClE,IAAI,CAAC;oBACH,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;gBAClC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClC,IAAI,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC;gBAC/C,IAAI,kBAAkB,EAAE,CAAC;oBACvB,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACxD,eAAe,CAAC,OAAO,GAAG,gBAAgB,CAAC;oBAC3C,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBACpC,CAAC;gBACD,iEAAiE;gBACjE,kEAAkE;gBAClE,iEAAiE;gBACjE,+DAA+D;gBAC/D,oBAAoB,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;gBACzC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;gBAClC,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9D,oBAAoB,CAAC,OAAO,GAAG,mBAAmB,CAAC;gBACnD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC;oBAChD,GAAG,EAAE,IAAI,CAAC,WAAW;oBACrB,iBAAiB,EAAE,IAAI;oBACvB,eAAe,EAAE,mBAAmB;oBACpC,KAAK,EAAE,gBAAgB;iBACxB,CAAC,CAAC;gBAEH,mEAAmE;gBACnE,sEAAsE;gBACtE,mBAAmB,EAAE,CAAC;gBACtB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC/C,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,iBAAiB,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC;gBACrC,IAAI,EAAE,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBACzE,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;wBAChC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtE,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9C,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC5E,CAAC;gBAED,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBAChE,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1B,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpB,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEzB,MAAM,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EACD,CAAC,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,CAAC,CAChD,CAAC;IACF,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC;IAEzC,mEAAmE;IACnE,wEAAwE;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;QACrC,IAAI,YAAY;YAAE,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;IAC3D,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC"}
@@ -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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"}
@@ -375,6 +375,66 @@ describe("terminal history", () => {
375
375
  expect(stripAnsi(output)).toContain(" ⏺ First chunk.\n Second chunk.");
376
376
  expect(stripAnsi(output)).not.toContain(" ⏺ First chunk.\n\n Second chunk.");
377
377
  });
378
+ it("does not add a blank separator between assistant and tool rows", () => {
379
+ let output = "";
380
+ const stream = {
381
+ write(chunk) {
382
+ output += chunk;
383
+ return true;
384
+ },
385
+ };
386
+ const printer = createTerminalHistoryPrinter({ stream });
387
+ printer.print([
388
+ { kind: "assistant", text: "I’ll inspect the files.", id: "assistant-1" },
389
+ {
390
+ kind: "tool_group",
391
+ id: "tool-group-1",
392
+ tools: [
393
+ {
394
+ toolCallId: "read-1",
395
+ name: "read",
396
+ args: { file_path: "src/a.ts" },
397
+ status: "done",
398
+ result: "ok",
399
+ },
400
+ ],
401
+ },
402
+ ], context);
403
+ expect(stripAnsi(output)).toMatch(new RegExp("inspect the files\\.\\n [⏺●] Read"));
404
+ expect(stripAnsi(output)).not.toMatch(new RegExp("inspect the files\\.\\n\\n [⏺●] Read"));
405
+ });
406
+ it("does not add blank separators between consecutive tool rows", () => {
407
+ let output = "";
408
+ const stream = {
409
+ write(chunk) {
410
+ output += chunk;
411
+ return true;
412
+ },
413
+ };
414
+ const printer = createTerminalHistoryPrinter({ stream });
415
+ printer.print([
416
+ {
417
+ kind: "tool_done",
418
+ id: "tool-1",
419
+ name: "read",
420
+ args: { file_path: "src/a.ts" },
421
+ result: "ok",
422
+ isError: false,
423
+ durationMs: 1,
424
+ },
425
+ {
426
+ kind: "tool_done",
427
+ id: "tool-2",
428
+ name: "grep",
429
+ args: { pattern: "needle" },
430
+ result: "src/a.ts:1:needle\n1 match found",
431
+ isError: false,
432
+ durationMs: 1,
433
+ },
434
+ ], context);
435
+ expect(stripAnsi(output)).toMatch(new RegExp("Read src/a\\.ts\\n [⏺●] Searched"));
436
+ expect(stripAnsi(output)).not.toMatch(new RegExp("Read src/a\\.ts\\n\\n [⏺●] Searched"));
437
+ });
378
438
  it("does not add a blank separator above the next user row after an assistant", () => {
379
439
  let output = "";
380
440
  const stream = {