@scira/cli 0.1.5 → 0.1.6
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/dist/agent/harness-agent.js +206 -0
- package/dist/agent/{research-agent.js → main-agent.js} +20 -1
- package/dist/cli/commands/init.js +7 -5
- package/dist/cli/index.js +52 -11
- package/dist/cli/shell/shell.js +4 -5
- package/dist/cli/shell/tui.js +5 -2
- package/dist/config/env-guide.js +24 -0
- package/dist/config/env-store.js +5 -3
- package/dist/config/load-config.js +9 -14
- package/dist/providers/harness/local-sandbox.js +143 -0
- package/dist/providers/llm/gateway.js +5 -2
- package/dist/providers/llm/models.js +13 -0
- package/dist/providers/llm/readiness.js +5 -1
- package/dist/providers/llm/registry.js +24 -3
- package/dist/storage/jsonl.js +2 -2
- package/dist/storage/run-store.js +15 -15
- package/dist/tools/agent-tools.js +7 -7
- package/dist/tools/background-tasks.js +4 -5
- package/dist/tools/mcp-oauth.js +29 -25
- package/dist/tools/open-url.js +1 -2
- package/dist/tools/todos.js +3 -3
- package/dist/types/index.js +13 -1
- package/dist/ui/ink/SciraApp.js +10 -6
- package/dist/ui/ink/components/home-screen.js +2 -2
- package/dist/ui/ink/components/overlays.js +73 -15
- package/dist/ui/ink/constants.js +10 -7
- package/dist/ui/ink/hooks/use-agent-turn.js +14 -5
- package/dist/ui/ink/hooks/use-feed-lines.js +31 -6
- package/dist/ui/ink/hooks/use-keyboard.js +28 -5
- package/dist/ui/ink/hooks/use-session.js +7 -5
- package/dist/ui/ink/hooks/use-settings.js +20 -0
- package/dist/ui/ink/hooks/use-submit.js +15 -8
- package/dist/ui/ink/lib/file-mentions.js +1 -2
- package/dist/ui/ink/lib/tool-result.js +201 -2
- package/dist/ui/ink/lib/utils.js +52 -28
- package/dist/ui/ink/theme.js +5 -10
- package/dist/watch/runner.js +2 -2
- package/package.json +13 -11
- package/dist/agent/background-tasks.js +0 -173
- package/dist/agent/todos.js +0 -140
- package/dist/agent/tools.js +0 -432
- package/dist/agent/tools.test.js +0 -60
- package/dist/agent/workspace.js +0 -85
- package/dist/config/env-guide.test.js +0 -18
- package/dist/config/env-store.test.js +0 -60
- package/dist/storage/jsonl.test.js +0 -38
- package/dist/storage/run-store.test.js +0 -65
- package/dist/tools/bash-policy.test.js +0 -38
- package/dist/tools/search-web.test.js +0 -24
- package/dist/tools/workspace.test.js +0 -75
- package/dist/types/schema.test.js +0 -61
- package/dist/ui/ink/hooks/use-feed-lines.test.js +0 -16
- package/dist/ui/ink/lib/tool-result.test.js +0 -60
- package/dist/ui/ink/lib/utils.test.js +0 -48
- package/dist/ui/ink/session-manager.test.js +0 -31
- package/dist/ui/ink/terminal-probe.test.js +0 -12
- package/dist/ui/ink/theme.test.js +0 -68
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { detectTerminalTheme, getTheme, inputForegroundForAppearance, resolveRenderingAppearance, watchAutoThemeChanges, } from "./theme.js";
|
|
3
|
-
const env = process.env;
|
|
4
|
-
afterEach(() => {
|
|
5
|
-
process.env = { ...env };
|
|
6
|
-
});
|
|
7
|
-
describe("detectTerminalTheme", () => {
|
|
8
|
-
it("uses COLORFGBG when present", () => {
|
|
9
|
-
process.env.COLORFGBG = "15;0";
|
|
10
|
-
expect(detectTerminalTheme()).toBe("dark");
|
|
11
|
-
process.env.COLORFGBG = "0;15";
|
|
12
|
-
expect(detectTerminalTheme()).toBe("light");
|
|
13
|
-
});
|
|
14
|
-
it("prefers COLORFGBG over terminal profile hints", () => {
|
|
15
|
-
process.env.COLORFGBG = "0;15";
|
|
16
|
-
process.env.TERM_PROFILE = "Dark";
|
|
17
|
-
expect(detectTerminalTheme()).toBe("light");
|
|
18
|
-
});
|
|
19
|
-
it("resolves auto theme colors from detected appearance", () => {
|
|
20
|
-
process.env.COLORFGBG = "0;15";
|
|
21
|
-
expect(getTheme("auto").text).toBe("ansi256(0)");
|
|
22
|
-
expect(getTheme("auto").inputText).toBe("ansi256(0)");
|
|
23
|
-
expect(getTheme("auto").userBandBackground).toBe("#f0f0f0");
|
|
24
|
-
process.env.COLORFGBG = "15;0";
|
|
25
|
-
expect(getTheme("auto").text).toBe("ansi256(15)");
|
|
26
|
-
expect(getTheme("auto").inputText).toBe("ansi256(15)");
|
|
27
|
-
expect(getTheme("auto").userBandBackground).toBe("ansi256(238)");
|
|
28
|
-
});
|
|
29
|
-
it("detects Warp and Apple Terminal as dark when unset", () => {
|
|
30
|
-
delete process.env.COLORFGBG;
|
|
31
|
-
delete process.env.TERM_PROFILE;
|
|
32
|
-
delete process.env.ITERM_PROFILE;
|
|
33
|
-
process.env.TERM_PROGRAM = "WarpTerminal";
|
|
34
|
-
expect(detectTerminalTheme()).toBe("dark");
|
|
35
|
-
process.env.TERM_PROGRAM = "Apple_Terminal";
|
|
36
|
-
expect(detectTerminalTheme()).toBe("dark");
|
|
37
|
-
});
|
|
38
|
-
it("defaults to dark when no signals are present", () => {
|
|
39
|
-
delete process.env.COLORFGBG;
|
|
40
|
-
delete process.env.TERM_PROFILE;
|
|
41
|
-
delete process.env.ITERM_PROFILE;
|
|
42
|
-
delete process.env.TERM_PROGRAM;
|
|
43
|
-
delete process.env.TERM_PROGRAM;
|
|
44
|
-
expect(detectTerminalTheme()).toBe("dark");
|
|
45
|
-
});
|
|
46
|
-
it("maps terminal appearance to ansi256 input foreground", () => {
|
|
47
|
-
expect(inputForegroundForAppearance("dark")).toBe("ansi256(15)");
|
|
48
|
-
expect(inputForegroundForAppearance("light")).toBe("ansi256(0)");
|
|
49
|
-
});
|
|
50
|
-
it("overrides a mismatched locked theme to match the terminal", () => {
|
|
51
|
-
expect(resolveRenderingAppearance("light", "dark")).toBe("dark");
|
|
52
|
-
expect(resolveRenderingAppearance("dark", "light")).toBe("light");
|
|
53
|
-
expect(resolveRenderingAppearance("dark", "dark")).toBe("dark");
|
|
54
|
-
expect(resolveRenderingAppearance("auto", "dark")).toBe("dark");
|
|
55
|
-
});
|
|
56
|
-
it("watchAutoThemeChanges fires immediately and on interval", () => {
|
|
57
|
-
vi.useFakeTimers();
|
|
58
|
-
const onChange = vi.fn();
|
|
59
|
-
const stop = watchAutoThemeChanges(onChange);
|
|
60
|
-
expect(onChange).toHaveBeenCalledTimes(1);
|
|
61
|
-
vi.advanceTimersByTime(1500);
|
|
62
|
-
expect(onChange).toHaveBeenCalledTimes(2);
|
|
63
|
-
stop();
|
|
64
|
-
vi.advanceTimersByTime(1500);
|
|
65
|
-
expect(onChange).toHaveBeenCalledTimes(2);
|
|
66
|
-
vi.useRealTimers();
|
|
67
|
-
});
|
|
68
|
-
});
|