llm-agent-cli 2.0.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 (89) hide show
  1. package/dist/agent.d.ts +112 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +730 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/audit.d.ts +24 -0
  6. package/dist/audit.d.ts.map +1 -0
  7. package/dist/audit.js +94 -0
  8. package/dist/audit.js.map +1 -0
  9. package/dist/auth.d.ts +36 -0
  10. package/dist/auth.d.ts.map +1 -0
  11. package/dist/auth.js +236 -0
  12. package/dist/auth.js.map +1 -0
  13. package/dist/config.d.ts +35 -0
  14. package/dist/config.d.ts.map +1 -0
  15. package/dist/config.js +92 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/context.d.ts +48 -0
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +94 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/diff.d.ts +27 -0
  22. package/dist/diff.d.ts.map +1 -0
  23. package/dist/diff.js +174 -0
  24. package/dist/diff.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +905 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/input.d.ts +13 -0
  30. package/dist/input.d.ts.map +1 -0
  31. package/dist/input.js +88 -0
  32. package/dist/input.js.map +1 -0
  33. package/dist/memory.d.ts +32 -0
  34. package/dist/memory.d.ts.map +1 -0
  35. package/dist/memory.js +103 -0
  36. package/dist/memory.js.map +1 -0
  37. package/dist/preprocessor.d.ts +12 -0
  38. package/dist/preprocessor.d.ts.map +1 -0
  39. package/dist/preprocessor.js +138 -0
  40. package/dist/preprocessor.js.map +1 -0
  41. package/dist/project.d.ts +10 -0
  42. package/dist/project.d.ts.map +1 -0
  43. package/dist/project.js +145 -0
  44. package/dist/project.js.map +1 -0
  45. package/dist/renderer.d.ts +2 -0
  46. package/dist/renderer.d.ts.map +1 -0
  47. package/dist/renderer.js +31 -0
  48. package/dist/renderer.js.map +1 -0
  49. package/dist/session.d.ts +36 -0
  50. package/dist/session.d.ts.map +1 -0
  51. package/dist/session.js +78 -0
  52. package/dist/session.js.map +1 -0
  53. package/dist/tools/filesystem.d.ts +138 -0
  54. package/dist/tools/filesystem.d.ts.map +1 -0
  55. package/dist/tools/filesystem.js +539 -0
  56. package/dist/tools/filesystem.js.map +1 -0
  57. package/dist/tools/git.d.ts +60 -0
  58. package/dist/tools/git.d.ts.map +1 -0
  59. package/dist/tools/git.js +188 -0
  60. package/dist/tools/git.js.map +1 -0
  61. package/dist/tools/index.d.ts +386 -0
  62. package/dist/tools/index.d.ts.map +1 -0
  63. package/dist/tools/index.js +142 -0
  64. package/dist/tools/index.js.map +1 -0
  65. package/dist/tools/linter.d.ts +44 -0
  66. package/dist/tools/linter.d.ts.map +1 -0
  67. package/dist/tools/linter.js +426 -0
  68. package/dist/tools/linter.js.map +1 -0
  69. package/dist/tools/network.d.ts +17 -0
  70. package/dist/tools/network.d.ts.map +1 -0
  71. package/dist/tools/network.js +121 -0
  72. package/dist/tools/network.js.map +1 -0
  73. package/dist/tools/search.d.ts +33 -0
  74. package/dist/tools/search.d.ts.map +1 -0
  75. package/dist/tools/search.js +263 -0
  76. package/dist/tools/search.js.map +1 -0
  77. package/dist/tools/security.d.ts +18 -0
  78. package/dist/tools/security.d.ts.map +1 -0
  79. package/dist/tools/security.js +242 -0
  80. package/dist/tools/security.js.map +1 -0
  81. package/dist/tools/shell.d.ts +14 -0
  82. package/dist/tools/shell.d.ts.map +1 -0
  83. package/dist/tools/shell.js +68 -0
  84. package/dist/tools/shell.js.map +1 -0
  85. package/dist/tools/types.d.ts +5 -0
  86. package/dist/tools/types.d.ts.map +1 -0
  87. package/dist/tools/types.js +2 -0
  88. package/dist/tools/types.js.map +1 -0
  89. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { AgentPaths } from "./config.js";
2
+ export interface AuditEntry {
3
+ ts: string;
4
+ event: string;
5
+ tool?: string;
6
+ args?: Record<string, unknown>;
7
+ approved?: boolean;
8
+ result?: string;
9
+ metadata?: Record<string, unknown>;
10
+ }
11
+ /**
12
+ * Deep-clone `value`, replacing known secret fields with placeholders and
13
+ * scrubbing secret patterns from all remaining string values.
14
+ * The original value is never modified.
15
+ */
16
+ export declare function redactSecrets(value: unknown): unknown;
17
+ export declare class AuditLogger {
18
+ private readonly auditPath;
19
+ constructor(paths: AgentPaths);
20
+ log(entry: AuditEntry): Promise<void>;
21
+ logTool(tool: string, args: Record<string, unknown>, result: string, approved: boolean): Promise<void>;
22
+ logCommand(event: string, metadata: Record<string, unknown>): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AA4CD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBrD;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,KAAK,EAAE,UAAU;IAIvB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC;IAWV,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAOlF"}
package/dist/audit.js ADDED
@@ -0,0 +1,94 @@
1
+ import fs from "fs/promises";
2
+ // ─── Secret Redaction ─────────────────────────────────────────────────────────
3
+ /**
4
+ * Fields whose values are always replaced with a byte-count placeholder.
5
+ * These are the large text payloads written to disk by the agent — logging
6
+ * them raw would expose file contents (env files, private keys, configs).
7
+ */
8
+ const LARGE_CONTENT_FIELDS = new Set([
9
+ "content", // write_to_file
10
+ "replace_string", // apply_diff
11
+ ]);
12
+ /**
13
+ * Regex patterns applied to all string values and result snippets.
14
+ * Ordered from most-specific to least-specific to avoid partial rewrites.
15
+ */
16
+ const SECRET_PATTERNS = [
17
+ // PEM private keys (must come before the generic Bearer pattern)
18
+ [
19
+ /-----BEGIN (?:RSA |EC |OPENSSH )?PRIVATE KEY-----[\s\S]*?-----END (?:RSA |EC |OPENSSH )?PRIVATE KEY-----/g,
20
+ "[PEM PRIVATE KEY REDACTED]",
21
+ ],
22
+ // Bearer / Authorization tokens
23
+ [/Bearer\s+[A-Za-z0-9._\-]{20,}/g, "Bearer [REDACTED]"],
24
+ // OpenAI / Anthropic / generic sk- style keys
25
+ [/\bsk-[A-Za-z0-9_\-]{20,}/g, "sk-[REDACTED]"],
26
+ // GCP service-account keys (AIza prefix)
27
+ [/\bAIza[A-Za-z0-9_\-]{35}\b/g, "[GCP_KEY REDACTED]"],
28
+ // AWS-style access keys
29
+ [/\b(?:AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}\b/g, "[AWS_KEY REDACTED]"],
30
+ // .env-style assignments with substantial secret values
31
+ [/\b([A-Z][A-Z0-9_]{3,})=([A-Za-z0-9+/\-_.]{12,})\b/g, "$1=[REDACTED]"],
32
+ ];
33
+ function scrubString(value) {
34
+ let result = value;
35
+ for (const [pattern, replacement] of SECRET_PATTERNS) {
36
+ result = result.replace(pattern, replacement);
37
+ }
38
+ return result;
39
+ }
40
+ /**
41
+ * Deep-clone `value`, replacing known secret fields with placeholders and
42
+ * scrubbing secret patterns from all remaining string values.
43
+ * The original value is never modified.
44
+ */
45
+ export function redactSecrets(value) {
46
+ if (typeof value === "string") {
47
+ return scrubString(value);
48
+ }
49
+ if (Array.isArray(value)) {
50
+ return value.map(redactSecrets);
51
+ }
52
+ if (value !== null && typeof value === "object") {
53
+ const out = {};
54
+ for (const [k, v] of Object.entries(value)) {
55
+ if (LARGE_CONTENT_FIELDS.has(k) && typeof v === "string") {
56
+ out[k] = `[REDACTED: ${v.length} chars]`;
57
+ }
58
+ else {
59
+ out[k] = redactSecrets(v);
60
+ }
61
+ }
62
+ return out;
63
+ }
64
+ return value;
65
+ }
66
+ // ─── AuditLogger ──────────────────────────────────────────────────────────────
67
+ export class AuditLogger {
68
+ auditPath;
69
+ constructor(paths) {
70
+ this.auditPath = paths.auditFile;
71
+ }
72
+ async log(entry) {
73
+ const line = `${JSON.stringify(entry)}\n`;
74
+ await fs.appendFile(this.auditPath, line, "utf-8");
75
+ }
76
+ async logTool(tool, args, result, approved) {
77
+ await this.log({
78
+ ts: new Date().toISOString(),
79
+ event: "tool_call",
80
+ tool,
81
+ args: redactSecrets(args),
82
+ approved,
83
+ result: scrubString(result.slice(0, 500)),
84
+ });
85
+ }
86
+ async logCommand(event, metadata) {
87
+ await this.log({
88
+ ts: new Date().toISOString(),
89
+ event,
90
+ metadata,
91
+ });
92
+ }
93
+ }
94
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * CLI authentication — device code OAuth flow + credential persistence.
3
+ *
4
+ * Credentials are stored at ~/.llm-agent/credentials.json (0600 permissions).
5
+ * They are kept separate from the main config.json so that config changes
6
+ * (shell timeout, model pricing, etc.) never accidentally wipe auth state.
7
+ */
8
+ export interface Credentials {
9
+ apiKey: string;
10
+ email: string;
11
+ tenantId: string;
12
+ routerUrl: string;
13
+ authenticatedAt: string;
14
+ }
15
+ export declare function loadCredentials(): Promise<Credentials | null>;
16
+ export declare function saveCredentials(creds: Credentials): Promise<void>;
17
+ export declare function clearCredentials(): Promise<void>;
18
+ /**
19
+ * Resolve the router URL and API key to use for this session.
20
+ * Priority:
21
+ * 1. Explicit env vars (LLM_ROUTER_BASE_URL / LLM_ROUTER_API_KEY) — set by the user
22
+ * 2. Credentials file (~/.llm-agent/credentials.json) — set by `llm-agent login`
23
+ * 3. Nothing — caller must prompt for setup
24
+ */
25
+ export declare function resolveConnectionFromEnvOrCreds(): Promise<{
26
+ routerUrl: string;
27
+ apiKey: string;
28
+ email: string;
29
+ } | null>;
30
+ export interface LoginOptions {
31
+ routerUrl: string;
32
+ }
33
+ export declare function runLogin(opts: LoginOptions): Promise<void>;
34
+ export declare function runLogout(): Promise<void>;
35
+ export declare function runWhoami(): Promise<void>;
36
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAkBD,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAOnE;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAID;;;;;;GAMG;AACH,wBAAsB,+BAA+B,IAAI,OAAO,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,CAgBR;AA2CD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGhE;AAID,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B/C;AAID,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B/C"}
package/dist/auth.js ADDED
@@ -0,0 +1,236 @@
1
+ /**
2
+ * CLI authentication — device code OAuth flow + credential persistence.
3
+ *
4
+ * Credentials are stored at ~/.llm-agent/credentials.json (0600 permissions).
5
+ * They are kept separate from the main config.json so that config changes
6
+ * (shell timeout, model pricing, etc.) never accidentally wipe auth state.
7
+ */
8
+ import fs from "fs/promises";
9
+ import os from "os";
10
+ import path from "path";
11
+ import { exec } from "child_process";
12
+ import { promisify } from "util";
13
+ import chalk from "chalk";
14
+ import ora from "ora";
15
+ const execAsync = promisify(exec);
16
+ // ── Paths ─────────────────────────────────────────────────────────────────────
17
+ function credentialsPath() {
18
+ const base = process.env.LLM_AGENT_HOME
19
+ ? path.resolve(process.env.LLM_AGENT_HOME)
20
+ : path.join(os.homedir(), ".llm-agent");
21
+ return path.join(base, "credentials.json");
22
+ }
23
+ async function ensureDir() {
24
+ const dir = path.dirname(credentialsPath());
25
+ await fs.mkdir(dir, { recursive: true });
26
+ }
27
+ // ── Read / write ──────────────────────────────────────────────────────────────
28
+ export async function loadCredentials() {
29
+ try {
30
+ const raw = await fs.readFile(credentialsPath(), "utf-8");
31
+ return JSON.parse(raw);
32
+ }
33
+ catch {
34
+ return null;
35
+ }
36
+ }
37
+ export async function saveCredentials(creds) {
38
+ await ensureDir();
39
+ const p = credentialsPath();
40
+ await fs.writeFile(p, JSON.stringify(creds, null, 2), { encoding: "utf-8", mode: 0o600 });
41
+ }
42
+ export async function clearCredentials() {
43
+ try {
44
+ await fs.rm(credentialsPath(), { force: true });
45
+ }
46
+ catch {
47
+ // already gone
48
+ }
49
+ }
50
+ // ── Env-var resolution ────────────────────────────────────────────────────────
51
+ /**
52
+ * Resolve the router URL and API key to use for this session.
53
+ * Priority:
54
+ * 1. Explicit env vars (LLM_ROUTER_BASE_URL / LLM_ROUTER_API_KEY) — set by the user
55
+ * 2. Credentials file (~/.llm-agent/credentials.json) — set by `llm-agent login`
56
+ * 3. Nothing — caller must prompt for setup
57
+ */
58
+ export async function resolveConnectionFromEnvOrCreds() {
59
+ const envUrl = process.env.LLM_ROUTER_BASE_URL;
60
+ const envKey = process.env.LLM_ROUTER_API_KEY;
61
+ if (envUrl && envKey) {
62
+ return { routerUrl: envUrl, apiKey: envKey, email: "" };
63
+ }
64
+ const creds = await loadCredentials();
65
+ if (!creds)
66
+ return null;
67
+ // Apply to process.env so all existing code that reads these vars works
68
+ if (!envUrl)
69
+ process.env.LLM_ROUTER_BASE_URL = creds.routerUrl;
70
+ if (!envKey)
71
+ process.env.LLM_ROUTER_API_KEY = creds.apiKey;
72
+ return { routerUrl: creds.routerUrl, apiKey: creds.apiKey, email: creds.email };
73
+ }
74
+ // ── Browser open ──────────────────────────────────────────────────────────────
75
+ async function openBrowser(url) {
76
+ const platform = process.platform;
77
+ try {
78
+ if (platform === "darwin") {
79
+ await execAsync(`open "${url}"`);
80
+ }
81
+ else if (platform === "win32") {
82
+ await execAsync(`start "" "${url}"`);
83
+ }
84
+ else {
85
+ await execAsync(`xdg-open "${url}"`);
86
+ }
87
+ }
88
+ catch {
89
+ // Silently fail — we always print the URL as fallback
90
+ }
91
+ }
92
+ async function pollOnce(routerUrl, deviceCode) {
93
+ const url = `${routerUrl}/auth/cli/poll?code=${encodeURIComponent(deviceCode)}`;
94
+ const res = await fetch(url, { signal: AbortSignal.timeout(8_000) });
95
+ if (!res.ok) {
96
+ const body = await res.text().catch(() => "");
97
+ throw new Error(`Poll failed ${res.status}: ${body}`);
98
+ }
99
+ return res.json();
100
+ }
101
+ export async function runLogin(opts) {
102
+ const { routerUrl } = opts;
103
+ // Step 1 — request a device code
104
+ const initSpinner = ora("Requesting authorization code…").start();
105
+ let deviceCode;
106
+ let loginUrl;
107
+ let expiresIn;
108
+ let interval;
109
+ try {
110
+ const res = await fetch(`${routerUrl}/auth/cli/init`, {
111
+ signal: AbortSignal.timeout(10_000),
112
+ });
113
+ if (!res.ok) {
114
+ const body = await res.text().catch(() => "");
115
+ throw new Error(`Router returned ${res.status}: ${body}`);
116
+ }
117
+ const data = (await res.json());
118
+ deviceCode = data.device_code;
119
+ loginUrl = data.login_url;
120
+ expiresIn = data.expires_in;
121
+ interval = data.interval ?? 2;
122
+ initSpinner.succeed("Authorization request issued");
123
+ }
124
+ catch (err) {
125
+ initSpinner.fail("Could not reach router");
126
+ throw err;
127
+ }
128
+ // Step 2 — open browser
129
+ console.log();
130
+ console.log(chalk.bold("Open this URL to authenticate:"));
131
+ console.log(chalk.cyan(` ${loginUrl}`));
132
+ console.log();
133
+ console.log(chalk.dim(`(expires in ${Math.round(expiresIn / 60)} minutes)`));
134
+ console.log();
135
+ await openBrowser(loginUrl);
136
+ // Step 3 — poll until complete or expired
137
+ const pollSpinner = ora("Waiting for browser sign-in…").start();
138
+ const deadline = Date.now() + expiresIn * 1_000;
139
+ const pollMs = Math.max(interval * 1_000, 2_000);
140
+ while (Date.now() < deadline) {
141
+ await new Promise((resolve) => setTimeout(resolve, pollMs));
142
+ let result;
143
+ try {
144
+ result = await pollOnce(routerUrl, deviceCode);
145
+ }
146
+ catch (err) {
147
+ // Transient network error — keep polling
148
+ continue;
149
+ }
150
+ if (result.status === "complete" && result.api_key) {
151
+ pollSpinner.succeed("Authentication successful");
152
+ const creds = {
153
+ apiKey: result.api_key,
154
+ email: result.email ?? "",
155
+ tenantId: result.tenant_id ?? "",
156
+ routerUrl,
157
+ authenticatedAt: new Date().toISOString(),
158
+ };
159
+ await saveCredentials(creds);
160
+ // Apply to current process so the session can continue immediately
161
+ process.env.LLM_ROUTER_BASE_URL = routerUrl;
162
+ process.env.LLM_ROUTER_API_KEY = creds.apiKey;
163
+ console.log();
164
+ console.log(chalk.green("✓") +
165
+ chalk.bold(` Authenticated${creds.email ? ` as ${creds.email}` : ""}`));
166
+ console.log(chalk.dim(` Router: ${routerUrl}`));
167
+ console.log(chalk.dim(` Key saved to: ${credentialsPath()}`));
168
+ console.log();
169
+ return;
170
+ }
171
+ if (result.status === "expired") {
172
+ pollSpinner.fail("Device code expired");
173
+ throw new Error("Authorization timed out. Run `llm-agent login` again to start a new session.");
174
+ }
175
+ // Still pending — update spinner
176
+ const elapsed = Math.round((Date.now() - (deadline - expiresIn * 1_000)) / 1_000);
177
+ pollSpinner.text = `Waiting for browser sign-in… (${elapsed}s)`;
178
+ }
179
+ pollSpinner.fail("Timed out waiting for sign-in");
180
+ throw new Error("Authorization timed out. Run `llm-agent login` again.");
181
+ }
182
+ // ── Logout ────────────────────────────────────────────────────────────────────
183
+ export async function runLogout() {
184
+ const creds = await loadCredentials();
185
+ if (!creds) {
186
+ console.log(chalk.yellow("Not logged in."));
187
+ return;
188
+ }
189
+ // Attempt to revoke the key on the backend (best-effort)
190
+ const revokeSpinner = ora("Revoking API key…").start();
191
+ try {
192
+ const res = await fetch(`${creds.routerUrl}/auth/cli/revoke`, {
193
+ method: "DELETE",
194
+ headers: { Authorization: `Bearer ${creds.apiKey}` },
195
+ signal: AbortSignal.timeout(8_000),
196
+ });
197
+ if (res.ok) {
198
+ revokeSpinner.succeed("API key revoked");
199
+ }
200
+ else {
201
+ revokeSpinner.warn("Could not revoke key on server (will still remove locally)");
202
+ }
203
+ }
204
+ catch {
205
+ revokeSpinner.warn("Could not reach router — removed credentials locally only");
206
+ }
207
+ await clearCredentials();
208
+ delete process.env.LLM_ROUTER_API_KEY;
209
+ console.log(chalk.green("✓ Logged out"));
210
+ }
211
+ // ── Whoami ────────────────────────────────────────────────────────────────────
212
+ export async function runWhoami() {
213
+ const creds = await loadCredentials();
214
+ // Also check env vars
215
+ const envUrl = process.env.LLM_ROUTER_BASE_URL;
216
+ const envKey = process.env.LLM_ROUTER_API_KEY;
217
+ if (!creds && !(envUrl && envKey)) {
218
+ console.log(chalk.yellow("Not logged in."));
219
+ console.log(chalk.dim("Run `llm-agent login` to authenticate."));
220
+ return;
221
+ }
222
+ if (envUrl && envKey && !creds) {
223
+ console.log(chalk.bold("Authenticated via environment variables"));
224
+ console.log(chalk.dim(` Router: ${envUrl}`));
225
+ console.log(chalk.dim(` API Key: ${envKey.slice(0, 12)}…`));
226
+ return;
227
+ }
228
+ console.log(chalk.bold("Authenticated"));
229
+ if (creds.email) {
230
+ console.log(` ${chalk.dim("Email:")} ${creds.email}`);
231
+ }
232
+ console.log(` ${chalk.dim("Router:")} ${creds.routerUrl}`);
233
+ console.log(` ${chalk.dim("Key:")} ${creds.apiKey.slice(0, 16)}…`);
234
+ console.log(` ${chalk.dim("Since:")} ${new Date(creds.authenticatedAt).toLocaleString()}`);
235
+ }
236
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface AgentPaths {
2
+ homeDir: string;
3
+ configFile: string;
4
+ historyFile: string;
5
+ sessionsDir: string;
6
+ namedSessionsDir: string;
7
+ auditFile: string;
8
+ }
9
+ export interface AgentConfig {
10
+ maxReadBytes: number;
11
+ maxToolResultChars: number;
12
+ maxCommandOutputChars: number;
13
+ shellTimeoutMs: number;
14
+ historyLimit: number;
15
+ contextWindowTokens: number;
16
+ warnThresholdRatio: number;
17
+ autoCompactThresholdRatio: number;
18
+ defaultInputCostPer1K: number;
19
+ defaultOutputCostPer1K: number;
20
+ modelPricingPer1K: Record<string, {
21
+ input: number;
22
+ output: number;
23
+ }>;
24
+ }
25
+ export declare function getAgentPaths(): AgentPaths;
26
+ export declare function ensureAgentDirectories(paths: AgentPaths): Promise<void>;
27
+ export declare function loadConfig(paths: AgentPaths): Promise<AgentConfig>;
28
+ export declare function saveConfig(paths: AgentPaths, config: AgentConfig): Promise<void>;
29
+ export declare function getDefaultConfig(): AgentConfig;
30
+ /**
31
+ * Determine whether the CLI has usable connection settings.
32
+ * Returns true if either env vars or a credentials file are present.
33
+ */
34
+ export declare function hasConnectionConfig(): Promise<boolean>;
35
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CACvB,MAAM,EACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CACF,CAAC;CACH;AAuBD,wBAAgB,aAAa,IAAI,UAAU,CAa1C;AAWD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7E;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAoBxE;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAE9C;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAW5D"}
package/dist/config.js ADDED
@@ -0,0 +1,92 @@
1
+ import fs from "fs/promises";
2
+ import os from "os";
3
+ import path from "path";
4
+ const DEFAULT_CONFIG = {
5
+ maxReadBytes: 100 * 1024,
6
+ maxToolResultChars: 50_000,
7
+ maxCommandOutputChars: 50_000,
8
+ shellTimeoutMs: 30_000,
9
+ historyLimit: 500,
10
+ contextWindowTokens: 200_000,
11
+ warnThresholdRatio: 0.7,
12
+ autoCompactThresholdRatio: 0.9,
13
+ defaultInputCostPer1K: 0.003,
14
+ defaultOutputCostPer1K: 0.012,
15
+ modelPricingPer1K: {
16
+ "gpt-5.2": { input: 0.004, output: 0.016 },
17
+ "gpt-5": { input: 0.004, output: 0.016 },
18
+ "gpt-4o": { input: 0.0025, output: 0.01 },
19
+ "gpt-4o-mini": { input: 0.00015, output: 0.0006 },
20
+ "gpt-5-nano": { input: 0.00005, output: 0.0002 },
21
+ "gemini/gemini-2.5-flash": { input: 0.000075, output: 0.0003 },
22
+ },
23
+ };
24
+ export function getAgentPaths() {
25
+ const homeDir = process.env.LLM_AGENT_HOME
26
+ ? path.resolve(process.env.LLM_AGENT_HOME)
27
+ : path.join(os.homedir(), ".llm-agent");
28
+ return {
29
+ homeDir,
30
+ configFile: path.join(homeDir, "config.json"),
31
+ historyFile: path.join(homeDir, "history"),
32
+ sessionsDir: path.join(homeDir, "sessions"),
33
+ namedSessionsDir: path.join(homeDir, "sessions", "named"),
34
+ auditFile: path.join(homeDir, "audit.jsonl"),
35
+ };
36
+ }
37
+ async function pathExists(targetPath) {
38
+ try {
39
+ await fs.access(targetPath);
40
+ return true;
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ export async function ensureAgentDirectories(paths) {
47
+ await fs.mkdir(paths.homeDir, { recursive: true });
48
+ await fs.mkdir(paths.sessionsDir, { recursive: true });
49
+ await fs.mkdir(paths.namedSessionsDir, { recursive: true });
50
+ }
51
+ export async function loadConfig(paths) {
52
+ if (!(await pathExists(paths.configFile))) {
53
+ await saveConfig(paths, DEFAULT_CONFIG);
54
+ return { ...DEFAULT_CONFIG };
55
+ }
56
+ try {
57
+ const raw = await fs.readFile(paths.configFile, "utf-8");
58
+ const parsed = JSON.parse(raw);
59
+ return {
60
+ ...DEFAULT_CONFIG,
61
+ ...parsed,
62
+ modelPricingPer1K: {
63
+ ...DEFAULT_CONFIG.modelPricingPer1K,
64
+ ...(parsed.modelPricingPer1K ?? {}),
65
+ },
66
+ };
67
+ }
68
+ catch {
69
+ return { ...DEFAULT_CONFIG };
70
+ }
71
+ }
72
+ export async function saveConfig(paths, config) {
73
+ await ensureAgentDirectories(paths);
74
+ await fs.writeFile(paths.configFile, JSON.stringify(config, null, 2), "utf-8");
75
+ }
76
+ export function getDefaultConfig() {
77
+ return { ...DEFAULT_CONFIG, modelPricingPer1K: { ...DEFAULT_CONFIG.modelPricingPer1K } };
78
+ }
79
+ /**
80
+ * Determine whether the CLI has usable connection settings.
81
+ * Returns true if either env vars or a credentials file are present.
82
+ */
83
+ export async function hasConnectionConfig() {
84
+ if (process.env.LLM_ROUTER_BASE_URL && process.env.LLM_ROUTER_API_KEY) {
85
+ return true;
86
+ }
87
+ const p = path.join(process.env.LLM_AGENT_HOME
88
+ ? path.resolve(process.env.LLM_AGENT_HOME)
89
+ : path.join(os.homedir(), ".llm-agent"), "credentials.json");
90
+ return pathExists(p);
91
+ }
92
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}