jeo-code 0.6.40 → 0.7.0
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/CHANGELOG.md +34 -0
- package/README.ja.md +31 -38
- package/README.ko.md +31 -38
- package/README.md +32 -38
- package/README.zh.md +31 -38
- package/package.json +4 -2
- package/src/agent/compaction.ts +2 -1
- package/src/agent/computer-supervisor.ts +59 -0
- package/src/agent/config-schema.ts +6 -0
- package/src/agent/engine.ts +9 -4
- package/src/agent/json.ts +75 -8
- package/src/agent/loop-guards.ts +16 -5
- package/src/agent/memory-okf.ts +2 -0
- package/src/agent/memory.ts +25 -8
- package/src/agent/state.ts +39 -7
- package/src/agent/task-tool.ts +12 -3
- package/src/agent/tool-schemas.ts +19 -0
- package/src/ai/model-catalog.ts +4 -0
- package/src/ai/model-manager.ts +23 -5
- package/src/ai/providers/anthropic.ts +10 -6
- package/src/ai/providers/openai-compatible-catalog.ts +2 -0
- package/src/ai/types.ts +2 -1
- package/src/auth/index.ts +1 -1
- package/src/auth/refresh.ts +47 -2
- package/src/auth/storage.ts +11 -5
- package/src/cli/runner.ts +9 -0
- package/src/cli.ts +16 -0
- package/src/commands/approve.ts +17 -1
- package/src/commands/computer.ts +334 -0
- package/src/commands/launch/input.ts +19 -6
- package/src/commands/launch.ts +56 -8
- package/src/commands/ralplan.ts +4 -0
- package/src/commands/team.ts +13 -0
- package/src/index.ts +1 -0
- package/src/prompts/agents/executor.md +6 -4
- package/src/prompts/skills/ralplan/SKILL.md +5 -0
- package/src/prompts/skills/team/SKILL.md +5 -0
- package/src/tui/components/slash.ts +1 -0
- package/src/util/terminal-restore.ts +41 -0
|
@@ -9,3 +9,8 @@ when: When requirements are clear (e.g. from deep-interview) and you need a robu
|
|
|
9
9
|
Executes a multi-agent critique and planning process to generate a structured implementation plan.
|
|
10
10
|
Combines views from a Planner, an Architect, and a Critic to identify risks, define tasks, and specify files.
|
|
11
11
|
Saves the blueprint for execution.
|
|
12
|
+
|
|
13
|
+
When the roles disagree, do not collapse the split to a single verdict: record each
|
|
14
|
+
contested decision with the competing options and their rationale, and flag the points
|
|
15
|
+
that need a human judgment call rather than auto-resolving them.
|
|
16
|
+
|
|
@@ -9,3 +9,8 @@ when: When you have a blueprint/plan and need to execute the concrete implementa
|
|
|
9
9
|
Coordinates execution of individual tasks defined in the blueprint.
|
|
10
10
|
Spawns per-task executor subagents or loops to implement code changes.
|
|
11
11
|
Ensures task-level isolation and tracks implementation status.
|
|
12
|
+
|
|
13
|
+
Each task is a bounded subgoal: decompose large work into ordered subgoals, verify
|
|
14
|
+
one before starting the next, and feed the facts a failed task exposes into the
|
|
15
|
+
inputs of the following task instead of retrying the same approach unchanged.
|
|
16
|
+
|
|
@@ -29,6 +29,7 @@ export const SLASH_COMMAND_DETAILS: readonly SlashCommandInfo[] = [
|
|
|
29
29
|
{ command: "/rename", usage: "/rename <title>", description: "Rename the current session", group: "session" },
|
|
30
30
|
{ command: "/resume", usage: "/resume [id]", description: "Resume a saved session in this REPL", group: "session" },
|
|
31
31
|
{ command: "/retry", usage: "/retry", description: "Retry the last request", group: "session" },
|
|
32
|
+
{ command: "/undo", usage: "/undo", description: "Undo the last jeo auto-commit and restore the working tree", group: "session" },
|
|
32
33
|
{ command: "/history", usage: "/history [n|all]", description: "Re-print the worked turn history (prompts, tool steps, replies) into scrollback", group: "session" },
|
|
33
34
|
{ command: "/export", usage: "/export [path] [json]", description: "Export the session transcript to a file", group: "session" },
|
|
34
35
|
{ command: "/dump", usage: "/dump", description: "Copy the session transcript to the clipboard", group: "session" },
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { writeSync } from "node:fs";
|
|
2
|
+
|
|
3
|
+
// Restoring the terminal on an ABNORMAL exit (uncaught exception, unhandled
|
|
4
|
+
// rejection, fatal error) is what keeps the user's shell usable afterwards. The
|
|
5
|
+
// failure mode this guards against: a background `fetch()` stream rejects after a
|
|
6
|
+
// turn ends, Bun reports it as an unhandled rejection and tears the process down
|
|
7
|
+
// WITHOUT running the readline cleanup — leaving stdin in raw mode and bracketed
|
|
8
|
+
// paste enabled, so the shell echoes nothing and never submits a line (the
|
|
9
|
+
// "prints an error and then input is dead" bug).
|
|
10
|
+
//
|
|
11
|
+
// `process.stdout.write` is async/buffered and is NOT guaranteed to flush from an
|
|
12
|
+
// `exit` handler or a crashing tick, so the escape sequences are emitted with the
|
|
13
|
+
// SYNCHRONOUS `writeSync(1, …)` — the only reliable way to hand the terminal back
|
|
14
|
+
// in a sane line-discipline before the process disappears. `setRawMode(false)` is
|
|
15
|
+
// a synchronous ioctl and is safe to call in the same context.
|
|
16
|
+
|
|
17
|
+
type RawCapableStdin = NodeJS.ReadStream & { isRaw?: boolean; setRawMode?(raw: boolean): void };
|
|
18
|
+
|
|
19
|
+
let restored = false;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Synchronously return the terminal to cooked input, a visible cursor, and
|
|
23
|
+
* bracketed-paste OFF. Idempotent and safe to call from crash/exit paths.
|
|
24
|
+
*/
|
|
25
|
+
export function restoreTerminalState(): void {
|
|
26
|
+
if (restored) return;
|
|
27
|
+
restored = true;
|
|
28
|
+
const stdin = process.stdin as RawCapableStdin;
|
|
29
|
+
try {
|
|
30
|
+
if (stdin.isTTY && stdin.isRaw && typeof stdin.setRawMode === "function") stdin.setRawMode(false);
|
|
31
|
+
} catch { /* terminal already gone */ }
|
|
32
|
+
try {
|
|
33
|
+
// \x1b[?2004l = disable bracketed paste, \x1b[?25h = show cursor.
|
|
34
|
+
if (process.stdout.isTTY) writeSync(1, "\x1b[?2004l\x1b[?25h");
|
|
35
|
+
} catch { /* terminal already gone */ }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Test-only: reset the idempotency latch so a fresh restore can be observed. */
|
|
39
|
+
export function resetTerminalRestoreLatch(): void {
|
|
40
|
+
restored = false;
|
|
41
|
+
}
|