@sigil0/looking-glass 0.1.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.
Files changed (151) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +572 -0
  3. package/dist/agents/coordinator.d.ts +21 -0
  4. package/dist/agents/coordinator.d.ts.map +1 -0
  5. package/dist/agents/coordinator.js +171 -0
  6. package/dist/agents/coordinator.js.map +1 -0
  7. package/dist/app.d.ts +44 -0
  8. package/dist/app.d.ts.map +1 -0
  9. package/dist/app.js +215 -0
  10. package/dist/app.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +419 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +4 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +132 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/engine/context.d.ts +6 -0
  20. package/dist/engine/context.d.ts.map +1 -0
  21. package/dist/engine/context.js +65 -0
  22. package/dist/engine/context.js.map +1 -0
  23. package/dist/engine/engine.d.ts +74 -0
  24. package/dist/engine/engine.d.ts.map +1 -0
  25. package/dist/engine/engine.js +573 -0
  26. package/dist/engine/engine.js.map +1 -0
  27. package/dist/engine/types.d.ts +35 -0
  28. package/dist/engine/types.d.ts.map +1 -0
  29. package/dist/engine/types.js +2 -0
  30. package/dist/engine/types.js.map +1 -0
  31. package/dist/instructions.d.ts +8 -0
  32. package/dist/instructions.d.ts.map +1 -0
  33. package/dist/instructions.js +60 -0
  34. package/dist/instructions.js.map +1 -0
  35. package/dist/model/codex-lb.d.ts +141 -0
  36. package/dist/model/codex-lb.d.ts.map +1 -0
  37. package/dist/model/codex-lb.js +471 -0
  38. package/dist/model/codex-lb.js.map +1 -0
  39. package/dist/paths.d.ts +7 -0
  40. package/dist/paths.d.ts.map +1 -0
  41. package/dist/paths.js +41 -0
  42. package/dist/paths.js.map +1 -0
  43. package/dist/scheduler/daemon.d.ts +40 -0
  44. package/dist/scheduler/daemon.d.ts.map +1 -0
  45. package/dist/scheduler/daemon.js +189 -0
  46. package/dist/scheduler/daemon.js.map +1 -0
  47. package/dist/scheduler/index.d.ts +8 -0
  48. package/dist/scheduler/index.d.ts.map +1 -0
  49. package/dist/scheduler/index.js +6 -0
  50. package/dist/scheduler/index.js.map +1 -0
  51. package/dist/scheduler/runner.d.ts +18 -0
  52. package/dist/scheduler/runner.d.ts.map +1 -0
  53. package/dist/scheduler/runner.js +173 -0
  54. package/dist/scheduler/runner.js.map +1 -0
  55. package/dist/scheduler/schedule.d.ts +7 -0
  56. package/dist/scheduler/schedule.d.ts.map +1 -0
  57. package/dist/scheduler/schedule.js +94 -0
  58. package/dist/scheduler/schedule.js.map +1 -0
  59. package/dist/scheduler/store.d.ts +55 -0
  60. package/dist/scheduler/store.d.ts.map +1 -0
  61. package/dist/scheduler/store.js +1203 -0
  62. package/dist/scheduler/store.js.map +1 -0
  63. package/dist/scheduler/systemd.d.ts +7 -0
  64. package/dist/scheduler/systemd.d.ts.map +1 -0
  65. package/dist/scheduler/systemd.js +97 -0
  66. package/dist/scheduler/systemd.js.map +1 -0
  67. package/dist/scheduler/types.d.ts +145 -0
  68. package/dist/scheduler/types.d.ts.map +1 -0
  69. package/dist/scheduler/types.js +7 -0
  70. package/dist/scheduler/types.js.map +1 -0
  71. package/dist/security.d.ts +6 -0
  72. package/dist/security.d.ts.map +1 -0
  73. package/dist/security.js +27 -0
  74. package/dist/security.js.map +1 -0
  75. package/dist/storage/artifact-store.d.ts +19 -0
  76. package/dist/storage/artifact-store.d.ts.map +1 -0
  77. package/dist/storage/artifact-store.js +47 -0
  78. package/dist/storage/artifact-store.js.map +1 -0
  79. package/dist/storage/database.d.ts +5 -0
  80. package/dist/storage/database.d.ts.map +1 -0
  81. package/dist/storage/database.js +395 -0
  82. package/dist/storage/database.js.map +1 -0
  83. package/dist/storage/session-store.d.ts +114 -0
  84. package/dist/storage/session-store.d.ts.map +1 -0
  85. package/dist/storage/session-store.js +731 -0
  86. package/dist/storage/session-store.js.map +1 -0
  87. package/dist/tools/agents.d.ts +14 -0
  88. package/dist/tools/agents.d.ts.map +1 -0
  89. package/dist/tools/agents.js +35 -0
  90. package/dist/tools/agents.js.map +1 -0
  91. package/dist/tools/apply-patch.d.ts +7 -0
  92. package/dist/tools/apply-patch.d.ts.map +1 -0
  93. package/dist/tools/apply-patch.js +429 -0
  94. package/dist/tools/apply-patch.js.map +1 -0
  95. package/dist/tools/ask.d.ts +8 -0
  96. package/dist/tools/ask.d.ts.map +1 -0
  97. package/dist/tools/ask.js +27 -0
  98. package/dist/tools/ask.js.map +1 -0
  99. package/dist/tools/bash.d.ts +9 -0
  100. package/dist/tools/bash.d.ts.map +1 -0
  101. package/dist/tools/bash.js +98 -0
  102. package/dist/tools/bash.js.map +1 -0
  103. package/dist/tools/index.d.ts +9 -0
  104. package/dist/tools/index.d.ts.map +1 -0
  105. package/dist/tools/index.js +34 -0
  106. package/dist/tools/index.js.map +1 -0
  107. package/dist/tools/paths.d.ts +3 -0
  108. package/dist/tools/paths.d.ts.map +1 -0
  109. package/dist/tools/paths.js +34 -0
  110. package/dist/tools/paths.js.map +1 -0
  111. package/dist/tools/process.d.ts +21 -0
  112. package/dist/tools/process.d.ts.map +1 -0
  113. package/dist/tools/process.js +104 -0
  114. package/dist/tools/process.js.map +1 -0
  115. package/dist/tools/read.d.ts +9 -0
  116. package/dist/tools/read.d.ts.map +1 -0
  117. package/dist/tools/read.js +95 -0
  118. package/dist/tools/read.js.map +1 -0
  119. package/dist/tools/registry.d.ts +19 -0
  120. package/dist/tools/registry.d.ts.map +1 -0
  121. package/dist/tools/registry.js +188 -0
  122. package/dist/tools/registry.js.map +1 -0
  123. package/dist/tools/safety.d.ts +9 -0
  124. package/dist/tools/safety.d.ts.map +1 -0
  125. package/dist/tools/safety.js +199 -0
  126. package/dist/tools/safety.js.map +1 -0
  127. package/dist/tools/schedule.d.ts +4 -0
  128. package/dist/tools/schedule.d.ts.map +1 -0
  129. package/dist/tools/schedule.js +191 -0
  130. package/dist/tools/schedule.js.map +1 -0
  131. package/dist/tools/search.d.ts +16 -0
  132. package/dist/tools/search.d.ts.map +1 -0
  133. package/dist/tools/search.js +75 -0
  134. package/dist/tools/search.js.map +1 -0
  135. package/dist/tools/types.d.ts +54 -0
  136. package/dist/tools/types.d.ts.map +1 -0
  137. package/dist/tools/types.js +10 -0
  138. package/dist/tools/types.js.map +1 -0
  139. package/dist/types.d.ts +90 -0
  140. package/dist/types.d.ts.map +1 -0
  141. package/dist/types.js +2 -0
  142. package/dist/types.js.map +1 -0
  143. package/dist/ui/stdio.d.ts +5 -0
  144. package/dist/ui/stdio.d.ts.map +1 -0
  145. package/dist/ui/stdio.js +65 -0
  146. package/dist/ui/stdio.js.map +1 -0
  147. package/dist/ui/tui.d.ts +93 -0
  148. package/dist/ui/tui.d.ts.map +1 -0
  149. package/dist/ui/tui.js +2246 -0
  150. package/dist/ui/tui.js.map +1 -0
  151. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { GlassTool } from "./types.js";
2
+ interface GlobArgs {
3
+ pattern: string;
4
+ path: string | null;
5
+ limit: number | null;
6
+ }
7
+ interface GrepArgs {
8
+ pattern: string;
9
+ path: string | null;
10
+ include: string | null;
11
+ limit: number | null;
12
+ }
13
+ export declare const globTool: GlassTool<GlobArgs>;
14
+ export declare const grepTool: GlassTool<GrepArgs>;
15
+ export {};
16
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAWD,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA4BxC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ,CA8BxC,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { runProcess } from "./process.js";
2
+ import { resolveWorkspacePath } from "./paths.js";
3
+ function outputFromRg(stdout, stderr, exitCode, limit) {
4
+ const error = stderr.toString("utf8").trim();
5
+ if (exitCode !== 0 && exitCode !== 1)
6
+ throw new Error(error || `ripgrep exited with code ${String(exitCode)}`);
7
+ const lines = stdout.toString("utf8").split(/\r?\n/).filter(Boolean);
8
+ if (lines.length === 0)
9
+ return "No matches found.";
10
+ const selected = lines.slice(0, limit);
11
+ return `${selected.join("\n")}${lines.length > limit ? `\n\n[Truncated after ${limit} matches. Narrow the search.]` : ""}`;
12
+ }
13
+ export const globTool = {
14
+ name: "glob",
15
+ description: "List workspace files matching a glob pattern. Results respect ignore files and are bounded.",
16
+ risk: "read",
17
+ parameters: {
18
+ type: "object",
19
+ properties: {
20
+ pattern: { type: "string", minLength: 1 },
21
+ path: { type: ["string", "null"], description: "Optional workspace-relative directory" },
22
+ limit: { type: ["integer", "null"], minimum: 1, maximum: 5000 },
23
+ },
24
+ required: ["pattern", "path", "limit"],
25
+ additionalProperties: false,
26
+ },
27
+ summarize: (args) => `Find files matching ${args.pattern}`,
28
+ async execute(args, context) {
29
+ const limit = Math.min(args.limit ?? 1_000, 5_000);
30
+ const commandArgs = ["--no-config", "--files", "--hidden", "--glob", "!.git", "--glob", args.pattern];
31
+ if (args.path)
32
+ commandArgs.push(resolveWorkspacePath(context.workspace, args.path));
33
+ const result = await runProcess("rg", commandArgs, {
34
+ cwd: context.workspace,
35
+ timeoutMs: 30_000,
36
+ captureBytes: context.config.tools.maxOutputBytes * 4,
37
+ signal: context.signal,
38
+ detached: false,
39
+ });
40
+ return { output: outputFromRg(result.stdout, result.stderr, result.exitCode, limit) };
41
+ },
42
+ };
43
+ export const grepTool = {
44
+ name: "grep",
45
+ description: "Search workspace text using a regular expression. Returns file paths, line numbers, and matching lines.",
46
+ risk: "read",
47
+ parameters: {
48
+ type: "object",
49
+ properties: {
50
+ pattern: { type: "string", minLength: 1, description: "Rust regular expression" },
51
+ path: { type: ["string", "null"], description: "Optional workspace-relative path" },
52
+ include: { type: ["string", "null"], description: "Optional file glob such as *.{ts,tsx}" },
53
+ limit: { type: ["integer", "null"], minimum: 1, maximum: 5000 },
54
+ },
55
+ required: ["pattern", "path", "include", "limit"],
56
+ additionalProperties: false,
57
+ },
58
+ summarize: (args) => `Search for ${args.pattern}`,
59
+ async execute(args, context) {
60
+ const limit = Math.min(args.limit ?? 500, 5_000);
61
+ const commandArgs = ["--no-config", "--line-number", "--column", "--no-heading", "--color", "never", "--hidden", "--glob", "!.git"];
62
+ if (args.include)
63
+ commandArgs.push("--glob", args.include);
64
+ commandArgs.push("--", args.pattern, args.path ? resolveWorkspacePath(context.workspace, args.path) : ".");
65
+ const result = await runProcess("rg", commandArgs, {
66
+ cwd: context.workspace,
67
+ timeoutMs: 30_000,
68
+ captureBytes: context.config.tools.maxOutputBytes * 4,
69
+ signal: context.signal,
70
+ detached: false,
71
+ });
72
+ return { output: outputFromRg(result.stdout, result.stderr, result.exitCode, limit) };
73
+ },
74
+ };
75
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { FunctionTool } from "openai/resources/responses/responses";
2
+ import type { ApprovalMode, GlassConfig } from "../types.js";
3
+ import type { ArtifactStore } from "../storage/artifact-store.js";
4
+ import type { SessionStore } from "../storage/session-store.js";
5
+ export type ToolRisk = "read" | "write" | "shell" | "persistent" | "critical";
6
+ export type ApprovalDecision = "deny" | "once" | "always";
7
+ export interface ApprovalRequest {
8
+ tool: string;
9
+ risk: ToolRisk;
10
+ summary: string;
11
+ details: string;
12
+ canAlwaysApprove: boolean;
13
+ }
14
+ export interface QuestionRequest {
15
+ question: string;
16
+ options?: string[];
17
+ }
18
+ export interface ToolContext {
19
+ workspace: string;
20
+ sessionId: string;
21
+ authorizationSessionId?: string;
22
+ callId?: string;
23
+ config: GlassConfig;
24
+ approvalMode?: ApprovalMode;
25
+ artifacts: ArtifactStore;
26
+ sessions: SessionStore;
27
+ signal: AbortSignal;
28
+ readOnly?: boolean;
29
+ automated?: boolean;
30
+ modelOutputBytes?: number;
31
+ reportProgress?(message: string): void;
32
+ approve(request: ApprovalRequest): Promise<ApprovalDecision>;
33
+ ask(request: QuestionRequest): Promise<string>;
34
+ }
35
+ export interface ToolResult {
36
+ output: string;
37
+ display?: string;
38
+ artifactUri?: string;
39
+ truncated?: boolean;
40
+ }
41
+ export interface GlassTool<TArgs = unknown> {
42
+ name: string;
43
+ description: string;
44
+ risk: ToolRisk;
45
+ classifyRisk?(args: TArgs, context: ToolContext): ToolRisk;
46
+ approvalSignature?(args: TArgs, context: ToolContext): string;
47
+ legacyApprovalSignatures?(args: TArgs, context: ToolContext): string[];
48
+ approvalDescription?(args: TArgs, context: ToolContext): string;
49
+ parameters: Record<string, unknown>;
50
+ summarize(args: TArgs): string;
51
+ execute(args: TArgs, context: ToolContext): Promise<ToolResult>;
52
+ }
53
+ export declare function toFunctionTool(tool: GlassTool): FunctionTool;
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7D,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS,CAAC,KAAK,GAAG,OAAO;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC3D,iBAAiB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9D,wBAAwB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IACvE,mBAAmB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,CAQ5D"}
@@ -0,0 +1,10 @@
1
+ export function toFunctionTool(tool) {
2
+ return {
3
+ type: "function",
4
+ name: tool.name,
5
+ description: tool.description,
6
+ parameters: tool.parameters,
7
+ strict: true,
8
+ };
9
+ }
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AA2DA,MAAM,UAAU,cAAc,CAAC,IAAe;IAC5C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,90 @@
1
+ export declare const REASONING_EFFORTS: readonly ["none", "low", "medium", "high", "xhigh", "max", "ultra"];
2
+ export type ReasoningEffort = (typeof REASONING_EFFORTS)[number];
3
+ export type ApprovalMode = "review" | "code" | "unrestricted";
4
+ export type Verbosity = "low" | "medium" | "high";
5
+ export type GatewayProvider = "codex-lb" | "lm-studio";
6
+ export type SessionKind = "interactive" | "agent";
7
+ export interface GatewayConfig {
8
+ provider: GatewayProvider;
9
+ baseURL: string;
10
+ apiKeyEnv: string;
11
+ timeoutMs: number;
12
+ }
13
+ export interface ToolConfig {
14
+ approval: ApprovalMode;
15
+ shellTimeoutMs: number;
16
+ maxOutputBytes: number;
17
+ maxReadLines: number;
18
+ maxToolRounds: number;
19
+ }
20
+ export interface SchedulerConfig {
21
+ timezone: string;
22
+ pollIntervalMs: number;
23
+ leaseMs: number;
24
+ maxConcurrentCommands: number;
25
+ commandStartGraceMs: number;
26
+ commandTimeoutMs: number;
27
+ commandOutputBytes: number;
28
+ }
29
+ export interface GlassConfig {
30
+ gateway: GatewayConfig;
31
+ gateways: GatewayConfig[];
32
+ model: string | null;
33
+ reasoningEffort: ReasoningEffort;
34
+ verbosity: Verbosity;
35
+ fast: boolean;
36
+ instructions: string[];
37
+ tools: ToolConfig;
38
+ scheduler: SchedulerConfig;
39
+ }
40
+ export interface ModelInfo {
41
+ id: string;
42
+ name: string;
43
+ description: string;
44
+ contextWindow: number;
45
+ maxOutputTokens: number | null;
46
+ reasoningEfforts: ReasoningEffort[];
47
+ defaultReasoningEffort: ReasoningEffort;
48
+ defaultVerbosity: Verbosity;
49
+ supportsReasoning: boolean;
50
+ supportsImages: boolean;
51
+ supportsParallelToolCalls: boolean;
52
+ supportsFast: boolean;
53
+ priority: number;
54
+ }
55
+ export interface GatewayModel extends ModelInfo {
56
+ provider: GatewayProvider;
57
+ }
58
+ export interface SessionRecord {
59
+ id: string;
60
+ workspace: string;
61
+ provider: GatewayProvider;
62
+ agentProvider: GatewayProvider;
63
+ title: string;
64
+ model: string;
65
+ agentModel: string;
66
+ reasoningEffort: ReasoningEffort;
67
+ agentReasoningEffort: ReasoningEffort;
68
+ agentsEnabled: boolean;
69
+ verbosity: Verbosity;
70
+ fast: boolean;
71
+ approvalMode: ApprovalMode;
72
+ showReasoning: boolean;
73
+ persistent: boolean;
74
+ promptCacheKey: string;
75
+ lastResponseId: string | null;
76
+ kind: SessionKind;
77
+ parentSessionId: string | null;
78
+ createdAt: number;
79
+ updatedAt: number;
80
+ }
81
+ export type EventKind = "user" | "response" | "tool_started" | "tool_result" | "tool_denied" | "error" | "note";
82
+ export interface SessionEvent<T = unknown> {
83
+ id: number;
84
+ sessionId: string;
85
+ sequence: number;
86
+ kind: EventKind;
87
+ payload: T;
88
+ createdAt: number;
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export const REASONING_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max", "ultra"];
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { EngineCallbacks, EngineInteraction } from "../engine/engine.js";
2
+ export declare function terminalSafe(value: string): string;
3
+ export declare function stdioInteraction(assumeYes: boolean): EngineInteraction;
4
+ export declare function stdioCallbacks(): EngineCallbacks;
5
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/ui/stdio.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAYD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,iBAAiB,CAiBtE;AAED,wBAAgB,cAAc,IAAI,eAAe,CAsBhD"}
@@ -0,0 +1,65 @@
1
+ import { createInterface } from "node:readline/promises";
2
+ import { stdin, stdout } from "node:process";
3
+ export function terminalSafe(value) {
4
+ return value.replace(/[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g, "");
5
+ }
6
+ async function promptLine(prompt) {
7
+ if (!stdin.isTTY)
8
+ throw new Error("Interactive input is required but stdin is not a TTY");
9
+ const readline = createInterface({ input: stdin, output: stdout });
10
+ try {
11
+ return await readline.question(prompt);
12
+ }
13
+ finally {
14
+ readline.close();
15
+ }
16
+ }
17
+ export function stdioInteraction(assumeYes) {
18
+ return {
19
+ async approve(request) {
20
+ if (assumeYes && request.risk !== "persistent" && request.risk !== "critical")
21
+ return "once";
22
+ process.stderr.write(`\nApproval required: ${terminalSafe(request.summary)}\n${terminalSafe(request.details)}\n`);
23
+ if (!stdin.isTTY)
24
+ return "deny";
25
+ const answer = await promptLine(request.canAlwaysApprove ? "Approve? [y/N/a=always] " : "Approve? [y/N] ");
26
+ if (/^(y|yes)$/i.test(answer.trim()))
27
+ return "once";
28
+ if (request.canAlwaysApprove && /^(a|always)$/i.test(answer.trim()))
29
+ return "always";
30
+ return "deny";
31
+ },
32
+ async ask(request) {
33
+ process.stderr.write(`\n${terminalSafe(request.question)}\n`);
34
+ if (request.options)
35
+ process.stderr.write(`${request.options.map((value, index) => `${index + 1}. ${terminalSafe(value)}`).join("\n")}\n`);
36
+ return promptLine("> ");
37
+ },
38
+ };
39
+ }
40
+ export function stdioCallbacks() {
41
+ return {
42
+ onTextDelta(delta) {
43
+ process.stdout.write(terminalSafe(delta));
44
+ },
45
+ onReasoningDelta(delta) {
46
+ if (process.env.LOOKING_GLASS_SHOW_REASONING === "1")
47
+ process.stderr.write(`\x1b[2m${terminalSafe(delta)}\x1b[0m`);
48
+ },
49
+ onStatus(status) {
50
+ if (process.stderr.isTTY)
51
+ process.stderr.write(`\r\x1b[2m${terminalSafe(status).padEnd(32)}\x1b[0m`);
52
+ },
53
+ onWarning(message) {
54
+ process.stderr.write(`\nWarning: ${terminalSafe(message)}\n`);
55
+ },
56
+ onToolStart(notice) {
57
+ process.stderr.write(`\n\x1b[36m[${terminalSafe(notice.name)}]\x1b[0m ${terminalSafe(notice.summary)}\n`);
58
+ },
59
+ onToolFinish(notice) {
60
+ const marker = notice.failed ? "failed" : "done";
61
+ process.stderr.write(`\x1b[2m[${terminalSafe(notice.name)}: ${marker}]\x1b[0m\n`);
62
+ },
63
+ };
64
+ }
65
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/ui/stdio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { Markdown, ProcessTerminal, type Component } from "@earendil-works/pi-tui";
2
+ import type { LookingGlassApp } from "../app.js";
3
+ import type { InboxRecord, SchedulerJob } from "../scheduler/types.js";
4
+ import type { ApprovalDecision, ApprovalRequest } from "../tools/types.js";
5
+ import type { ApprovalMode, SessionRecord } from "../types.js";
6
+ interface ScreenPoint {
7
+ column: number;
8
+ row: number;
9
+ }
10
+ export interface TerminalMouseEvent extends ScreenPoint {
11
+ action: "press" | "drag" | "release" | "wheel_up" | "wheel_down" | "wheel_left" | "wheel_right";
12
+ button: number;
13
+ shift: boolean;
14
+ alt: boolean;
15
+ ctrl: boolean;
16
+ }
17
+ export declare function contextUsageLabel(inputTokens: number, contextWindow: number): string;
18
+ export declare function sessionMetadataLine(session: SessionRecord, approval: ApprovalMode, contextUsage: string, width?: number): string;
19
+ export declare function activityLine(active: boolean, status: string, frame: number, scrollOffset: number): string;
20
+ export declare function selectedScreenText(lines: string[], anchor: ScreenPoint, focus: ScreenPoint): string;
21
+ declare class AlternateScreenTerminal extends ProcessTerminal {
22
+ private active;
23
+ private alternate;
24
+ get isActive(): boolean;
25
+ copy(text: string): void;
26
+ start(onInput: (data: string) => void, onResize: () => void): void;
27
+ drainInput(maxMs?: number, idleMs?: number): Promise<void>;
28
+ stop(): void;
29
+ }
30
+ export declare class UserMessage implements Component {
31
+ private readonly text;
32
+ constructor(text: string);
33
+ invalidate(): void;
34
+ render(width: number): string[];
35
+ }
36
+ export declare class AssistantMessage implements Component {
37
+ protected readonly markdown: Markdown;
38
+ protected text: string;
39
+ constructor(text?: string);
40
+ get empty(): boolean;
41
+ setText(text: string): void;
42
+ invalidate(): void;
43
+ render(width: number): string[];
44
+ }
45
+ export declare class ToolCard implements Component {
46
+ readonly callId: string;
47
+ private readonly name;
48
+ private readonly summary;
49
+ private output;
50
+ private failed;
51
+ private finished;
52
+ constructor(callId: string, name: string, summary: string);
53
+ finish(output: string, failed: boolean): void;
54
+ progress(output: string): void;
55
+ invalidate(): void;
56
+ render(width: number): string[];
57
+ }
58
+ export declare class ApprovalModal implements Component {
59
+ private readonly terminal;
60
+ private readonly request;
61
+ onDone?: (decision: ApprovalDecision) => void;
62
+ private selected;
63
+ private scrollOffset;
64
+ private pageSize;
65
+ private maxScroll;
66
+ private renderedWidth;
67
+ private renderedHeight;
68
+ private readonly hitboxes;
69
+ private pressed;
70
+ constructor(terminal: AlternateScreenTerminal, request: ApprovalRequest);
71
+ invalidate(): void;
72
+ private actions;
73
+ handleInput(data: string): void;
74
+ handleMouse(event: TerminalMouseEvent): boolean;
75
+ private actionAt;
76
+ render(width: number): string[];
77
+ }
78
+ interface ParsedSessionSchedule {
79
+ scheduleKind: "once" | "cron";
80
+ schedule: string;
81
+ prompt: string;
82
+ }
83
+ export declare function parseSessionSchedule(argument: string): ParsedSessionSchedule;
84
+ export declare function parseTerminalMouse(data: string): TerminalMouseEvent | null;
85
+ export declare function mouseWheelDelta(data: string): number;
86
+ export declare function inboxLine(item: InboxRecord, job?: SchedulerJob | null, sessionTitle?: string): string;
87
+ export declare function shouldAutoDisplayInbox(job: SchedulerJob | null | undefined, currentSessionId: string): boolean;
88
+ export declare function markInboxItemsRead(items: InboxRecord[], acknowledge: (id: number) => boolean): number;
89
+ export declare function initialTuiSession(app: LookingGlassApp, initialSessionId?: string): Promise<SessionRecord>;
90
+ /** Run the interactive Looking Glass chat interface until the user exits. */
91
+ export declare function runTui(app: LookingGlassApp, initialSessionId?: string): Promise<void>;
92
+ export {};
93
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/ui/tui.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,QAAQ,EACR,eAAe,EAQf,KAAK,SAAS,EASf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAMjD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAE5F,OAAO,KAAK,EACV,YAAY,EAGZ,aAAa,EACd,MAAM,aAAa,CAAC;AAYrB,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;IAChG,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAyED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAIpF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,KAAK,SAA2B,GAC/B,MAAM,CA2BR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAGzG;AA0BD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAgBnG;AAqCD,cAAM,uBAAwB,SAAQ,eAAe;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAuBf,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAmB5D,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE,IAAI,IAAI,IAAI;CAUtB;AA+BD,qBAAa,WAAY,YAAW,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,MAAM;IAEzC,UAAU,IAAI,IAAI;IAElB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAKhC;AAED,qBAAa,gBAAiB,YAAW,SAAS;IAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEX,IAAI,SAAK;IAKrB,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAIhC;AAuFD,qBAAa,QAAS,YAAW,SAAS;IAMtC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAGd,MAAM,EAAE,MAAM,EACN,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM;IAGlC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAM7C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI9B,UAAU,IAAI,IAAI;IAElB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAOhC;AAuOD,qBAAa,aAAc,YAAW,SAAS;IAY3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,OAAO,CAAC,OAAO,CAAiC;gBAG7B,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,eAAe;IAG3C,UAAU,IAAI,IAAI;IAElB,OAAO,CAAC,OAAO;IAIf,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAyB/B,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO;IA4B/C,OAAO,CAAC,QAAQ;IAchB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAyFhC;AA0GD,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAuB5E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAyB1E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAKrG;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAE9G;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAIrG;AAMD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAI/G;AAED,6EAA6E;AAC7E,wBAAsB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4pC3F"}