@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.
Files changed (57) hide show
  1. package/dist/agent/harness-agent.js +206 -0
  2. package/dist/agent/{research-agent.js → main-agent.js} +20 -1
  3. package/dist/cli/commands/init.js +7 -5
  4. package/dist/cli/index.js +52 -11
  5. package/dist/cli/shell/shell.js +4 -5
  6. package/dist/cli/shell/tui.js +5 -2
  7. package/dist/config/env-guide.js +24 -0
  8. package/dist/config/env-store.js +5 -3
  9. package/dist/config/load-config.js +9 -14
  10. package/dist/providers/harness/local-sandbox.js +143 -0
  11. package/dist/providers/llm/gateway.js +5 -2
  12. package/dist/providers/llm/models.js +13 -0
  13. package/dist/providers/llm/readiness.js +5 -1
  14. package/dist/providers/llm/registry.js +24 -3
  15. package/dist/storage/jsonl.js +2 -2
  16. package/dist/storage/run-store.js +15 -15
  17. package/dist/tools/agent-tools.js +7 -7
  18. package/dist/tools/background-tasks.js +4 -5
  19. package/dist/tools/mcp-oauth.js +29 -25
  20. package/dist/tools/open-url.js +1 -2
  21. package/dist/tools/todos.js +3 -3
  22. package/dist/types/index.js +13 -1
  23. package/dist/ui/ink/SciraApp.js +10 -6
  24. package/dist/ui/ink/components/home-screen.js +2 -2
  25. package/dist/ui/ink/components/overlays.js +73 -15
  26. package/dist/ui/ink/constants.js +10 -7
  27. package/dist/ui/ink/hooks/use-agent-turn.js +14 -5
  28. package/dist/ui/ink/hooks/use-feed-lines.js +31 -6
  29. package/dist/ui/ink/hooks/use-keyboard.js +28 -5
  30. package/dist/ui/ink/hooks/use-session.js +7 -5
  31. package/dist/ui/ink/hooks/use-settings.js +20 -0
  32. package/dist/ui/ink/hooks/use-submit.js +15 -8
  33. package/dist/ui/ink/lib/file-mentions.js +1 -2
  34. package/dist/ui/ink/lib/tool-result.js +201 -2
  35. package/dist/ui/ink/lib/utils.js +52 -28
  36. package/dist/ui/ink/theme.js +5 -10
  37. package/dist/watch/runner.js +2 -2
  38. package/package.json +13 -11
  39. package/dist/agent/background-tasks.js +0 -173
  40. package/dist/agent/todos.js +0 -140
  41. package/dist/agent/tools.js +0 -432
  42. package/dist/agent/tools.test.js +0 -60
  43. package/dist/agent/workspace.js +0 -85
  44. package/dist/config/env-guide.test.js +0 -18
  45. package/dist/config/env-store.test.js +0 -60
  46. package/dist/storage/jsonl.test.js +0 -38
  47. package/dist/storage/run-store.test.js +0 -65
  48. package/dist/tools/bash-policy.test.js +0 -38
  49. package/dist/tools/search-web.test.js +0 -24
  50. package/dist/tools/workspace.test.js +0 -75
  51. package/dist/types/schema.test.js +0 -61
  52. package/dist/ui/ink/hooks/use-feed-lines.test.js +0 -16
  53. package/dist/ui/ink/lib/tool-result.test.js +0 -60
  54. package/dist/ui/ink/lib/utils.test.js +0 -48
  55. package/dist/ui/ink/session-manager.test.js +0 -31
  56. package/dist/ui/ink/terminal-probe.test.js +0 -12
  57. 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
- });