@trenchwork/coder 1.3.0 → 1.5.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 (106) hide show
  1. package/dist/bin/deepseek.js +2 -2
  2. package/dist/contracts/v1/agent.d.ts +2 -0
  3. package/dist/contracts/v1/agent.d.ts.map +1 -1
  4. package/dist/core/agent.d.ts.map +1 -1
  5. package/dist/core/agent.js +77 -2
  6. package/dist/core/agent.js.map +1 -1
  7. package/dist/core/contextManager.d.ts +10 -137
  8. package/dist/core/contextManager.d.ts.map +1 -1
  9. package/dist/core/contextManager.js +74 -540
  10. package/dist/core/contextManager.js.map +1 -1
  11. package/dist/core/diffPanel.js +1 -1
  12. package/dist/core/errorClassification.d.ts.map +1 -1
  13. package/dist/core/errorClassification.js +8 -0
  14. package/dist/core/errorClassification.js.map +1 -1
  15. package/dist/core/hitl.js +4 -4
  16. package/dist/core/hitl.js.map +1 -1
  17. package/dist/core/hooks.d.ts.map +1 -1
  18. package/dist/core/hooks.js +42 -19
  19. package/dist/core/hooks.js.map +1 -1
  20. package/dist/core/keyResolution.d.ts +30 -0
  21. package/dist/core/keyResolution.d.ts.map +1 -0
  22. package/dist/core/keyResolution.js +38 -0
  23. package/dist/core/keyResolution.js.map +1 -0
  24. package/dist/core/permissionMode.d.ts +17 -2
  25. package/dist/core/permissionMode.d.ts.map +1 -1
  26. package/dist/core/permissionMode.js +20 -7
  27. package/dist/core/permissionMode.js.map +1 -1
  28. package/dist/core/reasoningFallback.d.ts +22 -0
  29. package/dist/core/reasoningFallback.d.ts.map +1 -0
  30. package/dist/core/reasoningFallback.js +22 -0
  31. package/dist/core/reasoningFallback.js.map +1 -0
  32. package/dist/core/sessionStore.js +34 -8
  33. package/dist/core/sessionStore.js.map +1 -1
  34. package/dist/core/slashCommands.d.ts.map +1 -1
  35. package/dist/core/slashCommands.js +0 -3
  36. package/dist/core/slashCommands.js.map +1 -1
  37. package/dist/core/taskCompletionDetector.d.ts.map +1 -1
  38. package/dist/core/taskCompletionDetector.js +10 -3
  39. package/dist/core/taskCompletionDetector.js.map +1 -1
  40. package/dist/core/toolRuntime.d.ts +1 -0
  41. package/dist/core/toolRuntime.d.ts.map +1 -1
  42. package/dist/core/toolRuntime.js +21 -2
  43. package/dist/core/toolRuntime.js.map +1 -1
  44. package/dist/core/turnTokenMeter.d.ts +19 -0
  45. package/dist/core/turnTokenMeter.d.ts.map +1 -0
  46. package/dist/core/turnTokenMeter.js +36 -0
  47. package/dist/core/turnTokenMeter.js.map +1 -0
  48. package/dist/headless/interactiveShell.d.ts +3 -3
  49. package/dist/headless/interactiveShell.d.ts.map +1 -1
  50. package/dist/headless/interactiveShell.js +90 -137
  51. package/dist/headless/interactiveShell.js.map +1 -1
  52. package/dist/plugins/providers/deepseek/index.js +4 -6
  53. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  54. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  55. package/dist/providers/openaiChatCompletionsProvider.js +33 -26
  56. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  57. package/dist/runtime/agentController.d.ts.map +1 -1
  58. package/dist/runtime/agentController.js +16 -7
  59. package/dist/runtime/agentController.js.map +1 -1
  60. package/dist/runtime/agentSession.d.ts.map +1 -1
  61. package/dist/runtime/agentSession.js +10 -3
  62. package/dist/runtime/agentSession.js.map +1 -1
  63. package/dist/tools/bashTools.d.ts +63 -0
  64. package/dist/tools/bashTools.d.ts.map +1 -1
  65. package/dist/tools/bashTools.js +186 -77
  66. package/dist/tools/bashTools.js.map +1 -1
  67. package/dist/tools/grepTools.d.ts.map +1 -1
  68. package/dist/tools/grepTools.js +41 -23
  69. package/dist/tools/grepTools.js.map +1 -1
  70. package/dist/tools/searchTools.d.ts.map +1 -1
  71. package/dist/tools/searchTools.js +18 -8
  72. package/dist/tools/searchTools.js.map +1 -1
  73. package/dist/tools/webTools.d.ts.map +1 -1
  74. package/dist/tools/webTools.js +10 -2
  75. package/dist/tools/webTools.js.map +1 -1
  76. package/dist/ui/ink/App.d.ts +6 -1
  77. package/dist/ui/ink/App.d.ts.map +1 -1
  78. package/dist/ui/ink/App.js +21 -3
  79. package/dist/ui/ink/App.js.map +1 -1
  80. package/dist/ui/ink/ChatStatic.d.ts +1 -1
  81. package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
  82. package/dist/ui/ink/ChatStatic.js +19 -12
  83. package/dist/ui/ink/ChatStatic.js.map +1 -1
  84. package/dist/ui/ink/InkPromptController.d.ts +8 -8
  85. package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
  86. package/dist/ui/ink/InkPromptController.js +19 -11
  87. package/dist/ui/ink/InkPromptController.js.map +1 -1
  88. package/dist/ui/ink/Menu.js +1 -1
  89. package/dist/ui/ink/Menu.js.map +1 -1
  90. package/dist/ui/ink/Prompt.js +3 -3
  91. package/dist/ui/ink/StatusLine.d.ts +6 -7
  92. package/dist/ui/ink/StatusLine.d.ts.map +1 -1
  93. package/dist/ui/ink/StatusLine.js +11 -11
  94. package/dist/ui/ink/StatusLine.js.map +1 -1
  95. package/dist/ui/ink/markdownRender.d.ts +2 -0
  96. package/dist/ui/ink/markdownRender.d.ts.map +1 -0
  97. package/dist/ui/ink/markdownRender.js +76 -0
  98. package/dist/ui/ink/markdownRender.js.map +1 -0
  99. package/dist/ui/theme.d.ts.map +1 -1
  100. package/dist/ui/theme.js +56 -57
  101. package/dist/ui/theme.js.map +1 -1
  102. package/package.json +3 -1
  103. package/dist/core/hostedAuth.d.ts +0 -88
  104. package/dist/core/hostedAuth.d.ts.map +0 -1
  105. package/dist/core/hostedAuth.js +0 -219
  106. package/dist/core/hostedAuth.js.map +0 -1
package/dist/ui/theme.js CHANGED
@@ -1,10 +1,9 @@
1
1
  import chalk from 'chalk';
2
2
  import gradientString from 'gradient-string';
3
3
  /**
4
- * Project Glasswing theme for the Trenchwork CLI. Warm-dark, transparency-first
5
- * aesthetic sourced from the ero.solar brand tokens: a "void" base, bone
6
- * text, a fire-orange flare accent (the glasswing's small warm fire), and
7
- * volt-lime telemetry. No rainbow neon — clarity over spectacle.
4
+ * Space Black theme for the Trenchwork CLI. Cool-dark aesthetic: a graphite
5
+ * "void" base, lunar-silver text, a starlight ice-blue accent, and
6
+ * ice-cyan telemetry. No rainbow neon clarity over spectacle.
8
7
  */
9
8
  // Advanced color utilities
10
9
  // Create a neon glow effect with bright colors
@@ -17,50 +16,50 @@ const createNeonStyle = (baseColor, glowColor) => {
17
16
  bg: chalk.bgHex(baseColor).hex('#FFFFFF'),
18
17
  };
19
18
  };
20
- // Glasswing palette — keys kept stable so every downstream theme.* reference
21
- // re-skins for free; values mapped to the ero.solar brand tokens.
19
+ // Space Black palette — keys kept stable so every downstream theme.* reference
20
+ // re-skins for free; values mapped to the Space Black tokens.
22
21
  export const palette = {
23
- // Warm-dark base (ink → void → panel → wire)
24
- obsidian: '#060605', // ink — deepest
25
- onyx: '#0c0b0a', // void — app background
26
- carbon: '#131210', // panel
27
- gunmetal: '#3a362e', // wire / separators (warm, low-contrast)
28
- // Light & muted (bone → ash)
29
- gold: '#ff6a1f', // flare — the signature Glasswing fire (primary accent)
30
- roseGold: '#ff9352', // flare-soft
31
- silver: '#cdc7ba', // light prose text
32
- platinum: '#ece6da', // bone — primary light text
33
- titanium: '#948d80', // ash — muted text
34
- pearl: '#f4efe4', // brightest
22
+ // Cool-dark base (ink → void → panel → wire)
23
+ obsidian: '#08080a', // ink — deepest
24
+ onyx: '#0c0c10', // void — app background
25
+ carbon: '#14141a', // panel
26
+ gunmetal: '#30303a', // wire / separators (cool, low-contrast)
27
+ // Light & muted (lunar → ash)
28
+ gold: '#82aaff', // starlight — the signature Space Black blue (primary accent)
29
+ roseGold: '#a5c4ff', // starlight-soft
30
+ silver: '#c7cad1', // light prose text
31
+ platinum: '#e8e9ed', // lunar — primary light text
32
+ titanium: '#8b8e96', // ash — muted text
33
+ pearl: '#f5f6f8', // brightest
35
34
  // Status / telemetry
36
35
  emerald: '#28c840', // ok / additions
37
- sapphire: '#ff9352', // no blue in the warm brand → flare-soft
36
+ sapphire: '#5e9eff', // true blue
38
37
  ruby: '#ff4d3d', // danger / removals
39
- amber: '#ffb142', // ember — warning / warm highlight
40
- cyan: '#cbf24e', // volt — telemetry / strings / info (lime)
41
- neonOrange: '#ff6a1f', // flare
42
- neonCyan: '#cbf24e', // volt
38
+ amber: '#ffd666', // amber — warning highlight
39
+ cyan: '#64d2ff', // ice — telemetry / strings / info (cyan)
40
+ neonOrange: '#82aaff', // starlight
41
+ neonCyan: '#64d2ff', // ice
43
42
  };
44
- // Effect styles kept inside the warm flare/ember/volt range — no rainbow
45
- // neon, which would fight the transparency-first Glasswing aesthetic.
43
+ // Effect styles kept inside the starlight/ice range — no rainbow
44
+ // neon, which would fight the Space Black aesthetic.
46
45
  export const neon = {
47
- blue: createNeonStyle(palette.sapphire, '#ff9352'),
48
- cyan: createNeonStyle(palette.cyan, '#e3ff7a'),
49
- orange: createNeonStyle(palette.neonOrange, '#ff9352'),
50
- gold: createNeonStyle(palette.gold, '#ffb142'),
51
- silver: createNeonStyle(palette.silver, '#ece6da'),
52
- purple: createNeonStyle(palette.roseGold, '#ff9352'),
53
- pink: createNeonStyle(palette.roseGold, '#ff9352'),
54
- green: createNeonStyle(palette.emerald, '#9bf06b'),
55
- yellow: createNeonStyle(palette.amber, '#ffd27a'),
56
- magenta: createNeonStyle(palette.ruby, '#ff7a6e'),
57
- hologram: createNeonStyle('#cbf24e', '#ff6a1f'),
58
- laser: createNeonStyle('#ff6a1f', '#ff4d3d'),
59
- plasma: createNeonStyle('#ff6a1f', '#ffb142'),
46
+ blue: createNeonStyle(palette.sapphire, '#a5c4ff'),
47
+ cyan: createNeonStyle(palette.cyan, '#9bdcff'),
48
+ orange: createNeonStyle(palette.neonOrange, '#a5c4ff'),
49
+ gold: createNeonStyle(palette.gold, '#ffd666'),
50
+ silver: createNeonStyle(palette.silver, '#e8e9ed'),
51
+ purple: createNeonStyle(palette.roseGold, '#a5c4ff'),
52
+ pink: createNeonStyle(palette.roseGold, '#a5c4ff'),
53
+ green: createNeonStyle(palette.emerald, '#6ee787'),
54
+ yellow: createNeonStyle(palette.amber, '#ffe49a'),
55
+ magenta: createNeonStyle(palette.ruby, '#ff8a80'),
56
+ hologram: createNeonStyle('#64d2ff', '#82aaff'),
57
+ laser: createNeonStyle('#82aaff', '#ff4d3d'),
58
+ plasma: createNeonStyle('#82aaff', '#ffd666'),
60
59
  };
61
60
  export const theme = {
62
61
  // Premium primary colors
63
- primary: chalk.hex(palette.gold).bold, // Gold
62
+ primary: chalk.hex(palette.gold).bold, // Starlight blue
64
63
  secondary: chalk.hex(palette.platinum).bold, // Platinum
65
64
  accent: chalk.hex(palette.silver).bold, // Silver
66
65
  success: chalk.hex(palette.emerald).bold, // Green
@@ -93,7 +92,7 @@ export const theme = {
93
92
  ocean: gradientString([palette.gunmetal, palette.titanium, palette.silver, palette.cyan]),
94
93
  sunset: gradientString([palette.ruby, palette.roseGold, palette.gold, palette.amber]),
95
94
  // Metallic gradients
96
- gold: gradientString([palette.gold, '#FFEC8B', '#FFFACD']),
95
+ gold: gradientString([palette.gold, '#b3c7ff', '#e3ecff']),
97
96
  silver: gradientString([palette.silver, '#E6E8FA', '#F0F8FF']),
98
97
  platinum: gradientString([palette.platinum, '#E8E8E8', '#F5F5F5']),
99
98
  },
@@ -157,9 +156,9 @@ export const theme = {
157
156
  warning: chalk.bgHex(palette.amber).hex(palette.obsidian), // Amber bg, dark text
158
157
  info: chalk.bgHex(palette.cyan).hex(palette.obsidian), // Cyan bg, dark text
159
158
  muted: chalk.bgHex(palette.gunmetal).hex(palette.platinum), // Gray bg, light text
160
- primary: chalk.bgHex(palette.gold).hex(palette.obsidian), // Gold bg, dark text
159
+ primary: chalk.bgHex(palette.gold).hex(palette.obsidian), // Starlight bg, dark text
161
160
  accent: chalk.bgHex(palette.silver).hex(palette.obsidian), // Silver bg, dark text
162
- cached: chalk.bgHex(palette.roseGold).hex(palette.obsidian), // Rose Gold bg, dark text
161
+ cached: chalk.bgHex(palette.roseGold).hex(palette.obsidian), // Starlight-soft bg, dark text
163
162
  },
164
163
  // Inline badge styles (lighter, no background)
165
164
  inlineBadge: {
@@ -168,7 +167,7 @@ export const theme = {
168
167
  warning: chalk.hex(palette.amber), // Light amber
169
168
  info: chalk.hex(palette.cyan), // Light cyan
170
169
  muted: chalk.hex(palette.titanium), // Gray
171
- primary: chalk.hex(palette.gold), // Gold
170
+ primary: chalk.hex(palette.gold), // Starlight
172
171
  accent: chalk.hex(palette.silver), // Silver
173
172
  },
174
173
  // Progress indicators
@@ -222,7 +221,7 @@ export const theme = {
222
221
  },
223
222
  // Tool-specific colors for different categories
224
223
  toolColors: {
225
- // Bash/Execute - Gold
224
+ // Bash/Execute - Starlight
226
225
  bash: chalk.hex(palette.gold),
227
226
  execute: chalk.hex(palette.gold),
228
227
  // Read/File operations - Cyan
@@ -238,14 +237,14 @@ export const theme = {
238
237
  // Web operations - Platinum
239
238
  web: chalk.hex(palette.platinum),
240
239
  fetch: chalk.hex(palette.platinum),
241
- // Task/Agent - Rose Gold
240
+ // Task/Agent - Starlight-soft
242
241
  task: chalk.hex(palette.roseGold),
243
242
  agent: chalk.hex(palette.roseGold),
244
243
  // Todo - Pearl
245
244
  todo: chalk.hex(palette.pearl),
246
245
  // Notebook - Cyan
247
246
  notebook: chalk.hex(palette.cyan),
248
- // User interaction - Gold
247
+ // User interaction - Starlight
249
248
  ask: chalk.hex(palette.gold),
250
249
  // Default - Platinum
251
250
  default: chalk.hex(palette.platinum),
@@ -346,7 +345,7 @@ export const boxChars = {
346
345
  */
347
346
  export function getToolColor(toolName) {
348
347
  const name = toolName.toLowerCase();
349
- // Bash/Execute commands - Orange
348
+ // Bash/Execute commands - Starlight
350
349
  if (name.includes('bash') || name.includes('execute') || name === 'killshell' || name === 'bashoutput') {
351
350
  return theme.toolColors.bash;
352
351
  }
@@ -354,43 +353,43 @@ export function getToolColor(toolName) {
354
353
  if (name.includes('read') || name === 'glob' || name === 'list_files') {
355
354
  return theme.toolColors.read;
356
355
  }
357
- // Write operations - Green
356
+ // Write operations - Silver
358
357
  if (name.includes('write')) {
359
358
  return theme.toolColors.write;
360
359
  }
361
- // Edit operations - Light green
360
+ // Edit operations - Silver
362
361
  if (name.includes('edit')) {
363
362
  return theme.toolColors.edit;
364
363
  }
365
- // Search/Grep - Yellow
364
+ // Search/Grep - Titanium
366
365
  if (name.includes('grep') || name.includes('search')) {
367
366
  return theme.toolColors.grep;
368
367
  }
369
- // Glob pattern search - Amber
368
+ // Glob pattern search - Titanium
370
369
  if (name === 'glob') {
371
370
  return theme.toolColors.glob;
372
371
  }
373
- // Web operations - Indigo
372
+ // Web operations - Platinum
374
373
  if (name.includes('web') || name.includes('fetch')) {
375
374
  return theme.toolColors.web;
376
375
  }
377
- // Task/Agent - Purple
376
+ // Task/Agent - Starlight-soft
378
377
  if (name === 'task' || name.includes('agent')) {
379
378
  return theme.toolColors.task;
380
379
  }
381
- // Todo - Pink
380
+ // Todo - Pearl
382
381
  if (name.includes('todo')) {
383
382
  return theme.toolColors.todo;
384
383
  }
385
- // Notebook - Teal
384
+ // Notebook - Cyan
386
385
  if (name.includes('notebook')) {
387
386
  return theme.toolColors.notebook;
388
387
  }
389
- // User interaction - Rose
388
+ // User interaction - Starlight
390
389
  if (name.includes('ask') || name.includes('question')) {
391
390
  return theme.toolColors.ask;
392
391
  }
393
- // Default - Green
392
+ // Default - Platinum
394
393
  return theme.toolColors.default;
395
394
  }
396
395
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trenchwork/coder",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "Claude Code–class Ink TUI agent for DeepSeek v4 Pro (max thought, ultracode always on). Live follow-up queue, Shift+Tab permission modes, colored diffs, adversarial verifier — your keys, no login. Independent; inspired by Project Glasswing.",
5
5
  "deepseek": {
6
6
  "rulebookSchema": "src/contracts/schemas/agent-rules.schema.json"
@@ -19,6 +19,7 @@
19
19
  "LICENSE"
20
20
  ],
21
21
  "bin": {
22
+ "erosolar": "dist/bin/deepseek.js",
22
23
  "deepseek": "dist/bin/deepseek.js",
23
24
  "trenchwork": "dist/bin/deepseek.js",
24
25
  "trenchwork-coder": "dist/bin/deepseek.js"
@@ -105,6 +106,7 @@
105
106
  "gradient-string": "^3.0.0",
106
107
  "ink": "^7.0.1",
107
108
  "ink-spinner": "^5.0.0",
109
+ "marked-terminal": "^7.3.0",
108
110
  "nanospinner": "1.2.2",
109
111
  "open": "^11.0.0",
110
112
  "openai": "^6.10.0",
@@ -1,88 +0,0 @@
1
- /**
2
- * Hosted-key access — the CLIENT side of "optional sign-in unlocks hosted keys,
3
- * or bring your own." Keys NEVER ship in this client (Project Glasswing); they
4
- * live only in the ero.solar AWS backend, exactly like the Tavily search proxy
5
- * already does (see src/tools/webTools.ts). Sign-in mints a short-lived token;
6
- * the proxies validate it and use the operator keys.
7
- *
8
- * ── CONTRACT (the ero.solar backend implements this; this file codes against it) ──
9
- * Sign-in (loopback OAuth, increment 2):
10
- * open https://ero.solar/cli/login?port=<loopbackPort>&state=<csrf>
11
- * → Google SSO → 302 http://127.0.0.1:<port>/cb?token=<jwt>&email=<e>&state=<csrf>
12
- * DeepSeek (hosted): POST {HOSTED_DEEPSEEK_PROXY} header `Authorization: Bearer <token>`
13
- * Tavily (hosted): the existing tavilySearch proxy, same Bearer token
14
- * The token is short-lived and server-validated; if it 401s the CLI drops to
15
- * "signed out" and asks the user to /login again or use their own key.
16
- *
17
- * THIS MODULE is state + resolution only (increment 1, fully testable). The live
18
- * sign-in flow and the provider→proxy wiring are increment 2 (backend-gated).
19
- */
20
- export declare const HOSTED_LOGIN_URL = "https://ero.solar/cli/login";
21
- export declare const HOSTED_DEEPSEEK_PROXY = "https://ero.solar/api/deepseek";
22
- export interface HostedSession {
23
- token: string;
24
- email: string;
25
- }
26
- export type KeyMode = 'hosted' | 'own' | 'none';
27
- export interface KeyModeStatus {
28
- mode: KeyMode;
29
- email: string | null;
30
- signedIn: boolean;
31
- ownDeepSeek: boolean;
32
- ownTavily: boolean;
33
- preferOwnKeys: boolean;
34
- }
35
- /** The active hosted session (token + email), or null when signed out. */
36
- export declare function getHostedSession(): HostedSession | null;
37
- /** Persist a hosted session (called by /login once the backend returns a token). */
38
- export declare function setHostedSession(session: HostedSession): void;
39
- /** Sign out: drop the token but keep the own/hosted preference. */
40
- export declare function clearHostedSession(): void;
41
- export declare function prefersOwnKeys(): boolean;
42
- export declare function setPreferOwnKeys(value: boolean): void;
43
- /**
44
- * Resolve which keys are in effect. Preference order: an explicit "use my own
45
- * keys" wins when the user actually has a DeepSeek key; otherwise a hosted
46
- * session is used; otherwise the user's own key; otherwise nothing is set up.
47
- */
48
- export declare function resolveKeyMode(): KeyModeStatus;
49
- /**
50
- * The dim welcome/banner line that makes the active key source unmistakable —
51
- * the user must be able to see at a glance whether they're on hosted keys or
52
- * their own. Returns null in 'none' mode (the welcome already shows key setup).
53
- */
54
- export declare function keyModeLine(status?: KeyModeStatus): string | null;
55
- /**
56
- * Resolve the DeepSeek endpoint the provider should use. Hosted mode routes
57
- * through the ero.solar proxy authenticated by the short-lived sign-in token
58
- * (the real key lives only server-side, Glasswing); otherwise the user's own
59
- * key hits the API directly. `apiKey` is '' in 'none' mode (caller errors).
60
- */
61
- export declare function resolveDeepSeekEndpoint(): {
62
- apiKey: string;
63
- baseURL: string;
64
- mode: KeyMode;
65
- };
66
- export interface LoginResult {
67
- ok: boolean;
68
- session?: HostedSession;
69
- error?: string;
70
- }
71
- /**
72
- * Loopback-OAuth sign-in (the contract's increment 2). Starts a one-shot
73
- * 127.0.0.1 server on an ephemeral port, opens the browser to the ero.solar
74
- * Google-SSO login URL with that port + a CSRF state, and waits for the
75
- * redirect back to /cb?token=&email=&state=. On match it persists the hosted
76
- * session. The browser launch is injected (`open`) so the flow is testable
77
- * against the REAL loopback server without a real browser.
78
- *
79
- * Requires the ero.solar backend (SSO + token mint + redirect) to be live; with
80
- * no backend the browser opens to a not-yet-served endpoint and the wait times
81
- * out — the caller surfaces that honestly.
82
- */
83
- export declare function loginViaLoopback(opts: {
84
- open: (url: string) => void | Promise<void>;
85
- timeoutMs?: number;
86
- loginUrl?: string;
87
- }): Promise<LoginResult>;
88
- //# sourceMappingURL=hostedAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hostedAuth.d.ts","sourceRoot":"","sources":["../../src/core/hostedAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAWtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AASD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AA+BD,0EAA0E;AAC1E,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAGvD;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAG7D;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAa9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,aAAgC,GAAG,MAAM,GAAG,IAAI,CAanF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAW5F;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuCvB"}
@@ -1,219 +0,0 @@
1
- /**
2
- * Hosted-key access — the CLIENT side of "optional sign-in unlocks hosted keys,
3
- * or bring your own." Keys NEVER ship in this client (Project Glasswing); they
4
- * live only in the ero.solar AWS backend, exactly like the Tavily search proxy
5
- * already does (see src/tools/webTools.ts). Sign-in mints a short-lived token;
6
- * the proxies validate it and use the operator keys.
7
- *
8
- * ── CONTRACT (the ero.solar backend implements this; this file codes against it) ──
9
- * Sign-in (loopback OAuth, increment 2):
10
- * open https://ero.solar/cli/login?port=<loopbackPort>&state=<csrf>
11
- * → Google SSO → 302 http://127.0.0.1:<port>/cb?token=<jwt>&email=<e>&state=<csrf>
12
- * DeepSeek (hosted): POST {HOSTED_DEEPSEEK_PROXY} header `Authorization: Bearer <token>`
13
- * Tavily (hosted): the existing tavilySearch proxy, same Bearer token
14
- * The token is short-lived and server-validated; if it 401s the CLI drops to
15
- * "signed out" and asks the user to /login again or use their own key.
16
- *
17
- * THIS MODULE is state + resolution only (increment 1, fully testable). The live
18
- * sign-in flow and the provider→proxy wiring are increment 2 (backend-gated).
19
- */
20
- import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, rmSync } from 'node:fs';
21
- import { createServer } from 'node:http';
22
- import { randomBytes } from 'node:crypto';
23
- import { homedir } from 'node:os';
24
- import { join, resolve } from 'node:path';
25
- import { getSecretValue } from './secretStore.js';
26
- // Contract endpoints (the backend the user is building must match these).
27
- export const HOSTED_LOGIN_URL = 'https://ero.solar/cli/login';
28
- export const HOSTED_DEEPSEEK_PROXY = 'https://ero.solar/api/deepseek';
29
- // Resolved per call (not captured at module load) so TRENCHWORK_HOME changes —
30
- // and tests pointing at a temp dir — take effect.
31
- function homeDir() {
32
- return process.env['TRENCHWORK_HOME'] ? resolve(process.env['TRENCHWORK_HOME']) : join(homedir(), '.trenchwork');
33
- }
34
- function sessionFile() {
35
- return join(homeDir(), 'session.json');
36
- }
37
- function readFile() {
38
- // Read the on-disk session first (the future /login writes it; it also holds
39
- // the own/hosted preference), then let env override the token+email — env
40
- // lets tests/CI inject a session without touching disk, while still honouring
41
- // a stored preference.
42
- let data = {};
43
- const file = sessionFile();
44
- if (existsSync(file)) {
45
- try {
46
- const parsed = JSON.parse(readFileSync(file, 'utf8'));
47
- if (parsed && typeof parsed === 'object')
48
- data = parsed;
49
- }
50
- catch { /* corrupt → treat as empty */ }
51
- }
52
- const envToken = process.env['TRENCHWORK_HOSTED_TOKEN']?.trim();
53
- if (envToken) {
54
- data.token = envToken;
55
- data.email = process.env['TRENCHWORK_HOSTED_EMAIL']?.trim() || 'you@hosted';
56
- }
57
- return data;
58
- }
59
- function writeFile(data) {
60
- const file = sessionFile();
61
- mkdirSync(homeDir(), { recursive: true, mode: 0o700 });
62
- const tmp = `${file}.${process.pid}.tmp`;
63
- writeFileSync(tmp, JSON.stringify(data, null, 2) + '\n', { mode: 0o600 });
64
- renameSync(tmp, file);
65
- }
66
- /** The active hosted session (token + email), or null when signed out. */
67
- export function getHostedSession() {
68
- const f = readFile();
69
- return f.token ? { token: f.token, email: f.email || 'you@hosted' } : null;
70
- }
71
- /** Persist a hosted session (called by /login once the backend returns a token). */
72
- export function setHostedSession(session) {
73
- const f = readFile();
74
- writeFile({ ...f, token: session.token, email: session.email });
75
- }
76
- /** Sign out: drop the token but keep the own/hosted preference. */
77
- export function clearHostedSession() {
78
- const f = readFile();
79
- delete f.token;
80
- delete f.email;
81
- if (Object.keys(f).length === 0) {
82
- try {
83
- rmSync(sessionFile(), { force: true });
84
- }
85
- catch { /* ignore */ }
86
- return;
87
- }
88
- writeFile(f);
89
- }
90
- export function prefersOwnKeys() {
91
- return readFile().preferOwnKeys === true;
92
- }
93
- export function setPreferOwnKeys(value) {
94
- writeFile({ ...readFile(), preferOwnKeys: value });
95
- }
96
- /**
97
- * Resolve which keys are in effect. Preference order: an explicit "use my own
98
- * keys" wins when the user actually has a DeepSeek key; otherwise a hosted
99
- * session is used; otherwise the user's own key; otherwise nothing is set up.
100
- */
101
- export function resolveKeyMode() {
102
- const session = getHostedSession();
103
- const ownDeepSeek = Boolean(getSecretValue('DEEPSEEK_API_KEY'));
104
- const ownTavily = Boolean(getSecretValue('TAVILY_API_KEY'));
105
- const preferOwnKeys = prefersOwnKeys();
106
- let mode;
107
- if (preferOwnKeys && ownDeepSeek)
108
- mode = 'own';
109
- else if (session)
110
- mode = 'hosted';
111
- else if (ownDeepSeek)
112
- mode = 'own';
113
- else
114
- mode = 'none';
115
- return { mode, email: session?.email ?? null, signedIn: Boolean(session), ownDeepSeek, ownTavily, preferOwnKeys };
116
- }
117
- /**
118
- * The dim welcome/banner line that makes the active key source unmistakable —
119
- * the user must be able to see at a glance whether they're on hosted keys or
120
- * their own. Returns null in 'none' mode (the welcome already shows key setup).
121
- */
122
- export function keyModeLine(status = resolveKeyMode()) {
123
- switch (status.mode) {
124
- case 'hosted':
125
- return `Signed in as ${status.email} · using hosted keys` +
126
- (status.ownDeepSeek ? ' · /account to use your own' : '');
127
- case 'own': {
128
- const tav = status.ownTavily ? 'Tavily ✓' : 'Tavily (shared proxy)';
129
- const base = `Using your own keys · DeepSeek ✓ · ${tav}`;
130
- return status.signedIn ? `${base} · /account to use hosted` : base;
131
- }
132
- default:
133
- return null;
134
- }
135
- }
136
- /**
137
- * Resolve the DeepSeek endpoint the provider should use. Hosted mode routes
138
- * through the ero.solar proxy authenticated by the short-lived sign-in token
139
- * (the real key lives only server-side, Glasswing); otherwise the user's own
140
- * key hits the API directly. `apiKey` is '' in 'none' mode (caller errors).
141
- */
142
- export function resolveDeepSeekEndpoint() {
143
- const status = resolveKeyMode();
144
- if (status.mode === 'hosted') {
145
- const session = getHostedSession();
146
- if (session)
147
- return { apiKey: session.token, baseURL: HOSTED_DEEPSEEK_PROXY, mode: 'hosted' };
148
- }
149
- const userKey = (process.env['DEEPSEEK_API_KEY'] || '').trim();
150
- if (userKey) {
151
- return { apiKey: userKey, baseURL: process.env['DEEPSEEK_BASE_URL'] || 'https://api.deepseek.com', mode: 'own' };
152
- }
153
- return { apiKey: '', baseURL: '', mode: 'none' };
154
- }
155
- /**
156
- * Loopback-OAuth sign-in (the contract's increment 2). Starts a one-shot
157
- * 127.0.0.1 server on an ephemeral port, opens the browser to the ero.solar
158
- * Google-SSO login URL with that port + a CSRF state, and waits for the
159
- * redirect back to /cb?token=&email=&state=. On match it persists the hosted
160
- * session. The browser launch is injected (`open`) so the flow is testable
161
- * against the REAL loopback server without a real browser.
162
- *
163
- * Requires the ero.solar backend (SSO + token mint + redirect) to be live; with
164
- * no backend the browser opens to a not-yet-served endpoint and the wait times
165
- * out — the caller surfaces that honestly.
166
- */
167
- export function loginViaLoopback(opts) {
168
- const state = randomBytes(16).toString('hex');
169
- const loginUrl = opts.loginUrl ?? HOSTED_LOGIN_URL;
170
- return new Promise((resolveP) => {
171
- let settled = false;
172
- const finish = (result) => {
173
- if (settled)
174
- return;
175
- settled = true;
176
- clearTimeout(timer);
177
- try {
178
- server.close();
179
- }
180
- catch { /* ignore */ }
181
- resolveP(result);
182
- };
183
- const server = createServer((req, res) => {
184
- const url = new URL(req.url ?? '/', 'http://127.0.0.1');
185
- if (url.pathname !== '/cb') {
186
- res.writeHead(404);
187
- res.end('not found');
188
- return;
189
- }
190
- const token = url.searchParams.get('token') ?? '';
191
- const email = url.searchParams.get('email') ?? '';
192
- const gotState = url.searchParams.get('state') ?? '';
193
- const okPage = '<!doctype html><meta charset="utf-8"><body style="font:16px system-ui;padding:3rem">'
194
- + 'Signed in to Trenchwork Coder. You can close this tab and return to the terminal.</body>';
195
- res.writeHead(200, { 'content-type': 'text/html' });
196
- res.end(okPage);
197
- if (gotState !== state) {
198
- finish({ ok: false, error: 'state mismatch — sign-in rejected (possible CSRF)' });
199
- return;
200
- }
201
- if (!token) {
202
- finish({ ok: false, error: 'sign-in returned no token' });
203
- return;
204
- }
205
- const session = { token, email: email || 'you@hosted' };
206
- setHostedSession(session);
207
- finish({ ok: true, session });
208
- });
209
- const timer = setTimeout(() => finish({ ok: false, error: 'timed out waiting for sign-in' }), opts.timeoutMs ?? 120_000);
210
- server.on('error', (e) => finish({ ok: false, error: `loopback server failed: ${e.message}` }));
211
- server.listen(0, '127.0.0.1', () => {
212
- const addr = server.address();
213
- const port = addr && typeof addr === 'object' ? addr.port : 0;
214
- const url = `${loginUrl}?port=${port}&state=${state}`;
215
- Promise.resolve(opts.open(url)).catch(() => { });
216
- });
217
- });
218
- }
219
- //# sourceMappingURL=hostedAuth.js.map