codekin 0.2.2 → 0.3.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 (64) hide show
  1. package/dist/assets/index-B4rYTSlV.css +1 -0
  2. package/dist/assets/index-CWc3yfPn.js +181 -0
  3. package/dist/index.html +2 -2
  4. package/package.json +8 -5
  5. package/server/dist/approval-manager.d.ts +71 -0
  6. package/server/dist/approval-manager.js +249 -0
  7. package/server/dist/approval-manager.js.map +1 -0
  8. package/server/dist/auth-routes.d.ts +11 -0
  9. package/server/dist/auth-routes.js +11 -0
  10. package/server/dist/auth-routes.js.map +1 -1
  11. package/server/dist/claude-process.js +2 -1
  12. package/server/dist/claude-process.js.map +1 -1
  13. package/server/dist/config.d.ts +1 -2
  14. package/server/dist/config.js +16 -4
  15. package/server/dist/config.js.map +1 -1
  16. package/server/dist/crypto-utils.d.ts +16 -1
  17. package/server/dist/crypto-utils.js +44 -1
  18. package/server/dist/crypto-utils.js.map +1 -1
  19. package/server/dist/docs-routes.d.ts +16 -0
  20. package/server/dist/docs-routes.js +141 -0
  21. package/server/dist/docs-routes.js.map +1 -0
  22. package/server/dist/session-manager.d.ts +37 -84
  23. package/server/dist/session-manager.js +89 -472
  24. package/server/dist/session-manager.js.map +1 -1
  25. package/server/dist/session-naming.d.ts +35 -0
  26. package/server/dist/session-naming.js +168 -0
  27. package/server/dist/session-naming.js.map +1 -0
  28. package/server/dist/session-persistence.d.ts +30 -0
  29. package/server/dist/session-persistence.js +93 -0
  30. package/server/dist/session-persistence.js.map +1 -0
  31. package/server/dist/session-routes.d.ts +2 -1
  32. package/server/dist/session-routes.js +11 -8
  33. package/server/dist/session-routes.js.map +1 -1
  34. package/server/dist/stepflow-handler.d.ts +3 -9
  35. package/server/dist/stepflow-handler.js +19 -54
  36. package/server/dist/stepflow-handler.js.map +1 -1
  37. package/server/dist/types.d.ts +3 -0
  38. package/server/dist/upload-routes.js +6 -3
  39. package/server/dist/upload-routes.js.map +1 -1
  40. package/server/dist/webhook-github.d.ts +23 -5
  41. package/server/dist/webhook-github.js +23 -5
  42. package/server/dist/webhook-github.js.map +1 -1
  43. package/server/dist/webhook-handler-base.d.ts +45 -0
  44. package/server/dist/webhook-handler-base.js +86 -0
  45. package/server/dist/webhook-handler-base.js.map +1 -0
  46. package/server/dist/webhook-handler.d.ts +3 -10
  47. package/server/dist/webhook-handler.js +6 -46
  48. package/server/dist/webhook-handler.js.map +1 -1
  49. package/server/dist/webhook-workspace.d.ts +8 -1
  50. package/server/dist/webhook-workspace.js +71 -47
  51. package/server/dist/webhook-workspace.js.map +1 -1
  52. package/server/dist/workflow-config.d.ts +2 -0
  53. package/server/dist/workflow-config.js +1 -1
  54. package/server/dist/workflow-config.js.map +1 -1
  55. package/server/dist/workflow-loader.d.ts +2 -0
  56. package/server/dist/workflow-loader.js +13 -9
  57. package/server/dist/workflow-loader.js.map +1 -1
  58. package/server/dist/workflow-routes.js +3 -2
  59. package/server/dist/workflow-routes.js.map +1 -1
  60. package/server/dist/ws-server.js +77 -16
  61. package/server/dist/ws-server.js.map +1 -1
  62. package/server/workflows/repo-health.weekly.md +111 -0
  63. package/dist/assets/index-CQdQ4FhF.css +0 -1
  64. package/dist/assets/index-D6pRORYQ.js +0 -115
package/dist/index.html CHANGED
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
7
  <title>Codekin</title>
8
- <script type="module" crossorigin src="/assets/index-D6pRORYQ.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-CQdQ4FhF.css">
8
+ <script type="module" crossorigin src="/assets/index-CWc3yfPn.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-B4rYTSlV.css">
10
10
  </head>
11
11
  <body class="bg-neutral-12 text-neutral-2">
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codekin",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "license": "MIT",
5
5
  "author": "multiplier-labs",
6
6
  "description": "Web UI for Claude Code sessions with multi-session support and WebSocket streaming",
@@ -36,28 +36,31 @@
36
36
  "test:watch": "vitest"
37
37
  },
38
38
  "dependencies": {
39
- "@ai-sdk/groq": "^3.0.29",
40
39
  "@tabler/icons-react": "^3.37.1",
41
40
  "@tailwindcss/vite": "^4.2.0",
42
- "ai": "^6.0.116",
41
+ "@types/dompurify": "^3.0.5",
43
42
  "cmdk": "^1.1.1",
43
+ "dompurify": "^3.3.2",
44
+ "highlight.js": "^11.11.1",
45
+ "marked": "^17.0.4",
46
+ "marked-highlight": "^2.2.3",
44
47
  "react": "^19.2.0",
45
48
  "react-dom": "^19.2.0",
46
49
  "react-markdown": "^10.1.0",
47
50
  "react-syntax-highlighter": "^16.1.0",
48
51
  "remark-gfm": "^4.0.1",
49
- "better-sqlite3": "^12.6.2",
50
52
  "tailwindcss": "^4.2.0"
51
53
  },
52
54
  "devDependencies": {
53
55
  "@eslint/js": "^9.39.1",
56
+ "@types/better-sqlite3": "^7.6.13",
54
57
  "@types/node": "^24.10.1",
55
58
  "@types/react": "^19.2.7",
56
59
  "@types/react-dom": "^19.2.3",
57
60
  "@types/react-syntax-highlighter": "^15.5.13",
58
- "@types/better-sqlite3": "^7.6.13",
59
61
  "@vitejs/plugin-react": "^5.1.1",
60
62
  "@vitest/coverage-v8": "^4.0.18",
63
+ "better-sqlite3": "^12.6.2",
61
64
  "eslint": "^9.39.1",
62
65
  "eslint-plugin-react-hooks": "^7.0.1",
63
66
  "eslint-plugin-react-refresh": "^0.4.24",
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Approval manager for Codekin.
3
+ *
4
+ * Manages repo-level auto-approval rules for tools and Bash commands.
5
+ * Approvals are stored per-repo (keyed by workingDir) in
6
+ * ~/.codekin/repo-approvals.json, so they persist across sessions
7
+ * sharing the same repo.
8
+ */
9
+ export declare class ApprovalManager {
10
+ /** Repo-level auto-approval store, keyed by workingDir (repo path). */
11
+ private repoApprovals;
12
+ private _approvalPersistTimer;
13
+ constructor();
14
+ /** Get or create the approval entry for a repo (workingDir). */
15
+ private getRepoApprovalEntry;
16
+ /** Add an auto-approval rule for a repo and persist. */
17
+ addRepoApproval(workingDir: string, opts: {
18
+ tool?: string;
19
+ command?: string;
20
+ pattern?: string;
21
+ }): void;
22
+ /**
23
+ * Command prefixes where prefix-based auto-approval is safe.
24
+ * Only commands whose behavior is determined by later arguments (not by target)
25
+ * should be listed here. Dangerous commands like rm, sudo, curl, etc. require
26
+ * exact match to prevent escalation (e.g. approving `rm -rf /tmp/x` should NOT
27
+ * also approve `rm -rf /`).
28
+ */
29
+ private static readonly SAFE_PREFIX_COMMANDS;
30
+ /**
31
+ * Check if a tool/command is auto-approved for a repo.
32
+ * For Bash commands, uses prefix matching only for safe commands;
33
+ * dangerous commands require exact match to prevent escalation.
34
+ */
35
+ checkAutoApproval(workingDir: string, toolName: string, toolInput: Record<string, unknown>): boolean;
36
+ /** Extract the command prefix (first two tokens) for prefix-based matching. */
37
+ private commandPrefix;
38
+ /**
39
+ * Derive a glob pattern from a tool invocation for "Approve Pattern".
40
+ * Returns a string like "cat *" or "git diff *", or null if no safe pattern applies.
41
+ * Patterns use the format "<prefix> *" meaning "this prefix followed by anything".
42
+ */
43
+ derivePattern(toolName: string, toolInput: Record<string, unknown>): string | null;
44
+ /**
45
+ * Check if a bash command matches a stored pattern.
46
+ * Patterns of the form "<prefix> *" match any command starting with <prefix>.
47
+ */
48
+ private matchesPattern;
49
+ /** Save an "Always Allow" approval for a tool/command. */
50
+ saveAlwaysAllow(workingDir: string, toolName: string, toolInput: Record<string, unknown>): void;
51
+ /** Save a pattern-based approval (e.g. "cat *") for a tool/command. */
52
+ savePatternApproval(workingDir: string, toolName: string, toolInput: Record<string, unknown>): void;
53
+ /** Return the auto-approved tools, commands, and patterns for a repo (workingDir). */
54
+ getApprovals(workingDir: string): {
55
+ tools: string[];
56
+ commands: string[];
57
+ patterns: string[];
58
+ };
59
+ /** Remove an auto-approval rule for a repo (workingDir) and persist to disk.
60
+ * Returns 'invalid' if no tool/command provided, or boolean indicating if something was deleted.
61
+ * Pass skipPersist=true for bulk operations (caller must call persistRepoApprovals after). */
62
+ removeApproval(workingDir: string, opts: {
63
+ tool?: string;
64
+ command?: string;
65
+ pattern?: string;
66
+ }, skipPersist?: boolean): 'invalid' | boolean;
67
+ /** Write repo-level approvals to disk (atomic rename). */
68
+ persistRepoApprovals(): void;
69
+ private persistRepoApprovalsDebounced;
70
+ private restoreRepoApprovalsFromDisk;
71
+ }
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Approval manager for Codekin.
3
+ *
4
+ * Manages repo-level auto-approval rules for tools and Bash commands.
5
+ * Approvals are stored per-repo (keyed by workingDir) in
6
+ * ~/.codekin/repo-approvals.json, so they persist across sessions
7
+ * sharing the same repo.
8
+ */
9
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'fs';
10
+ import { join } from 'path';
11
+ import { DATA_DIR } from './config.js';
12
+ const REPO_APPROVALS_FILE = join(DATA_DIR, 'repo-approvals.json');
13
+ const PERSIST_DEBOUNCE_MS = 2000;
14
+ export class ApprovalManager {
15
+ /** Repo-level auto-approval store, keyed by workingDir (repo path). */
16
+ repoApprovals = new Map();
17
+ _approvalPersistTimer = null;
18
+ constructor() {
19
+ this.restoreRepoApprovalsFromDisk();
20
+ }
21
+ /** Get or create the approval entry for a repo (workingDir). */
22
+ getRepoApprovalEntry(workingDir) {
23
+ let entry = this.repoApprovals.get(workingDir);
24
+ if (!entry) {
25
+ entry = { tools: new Set(), commands: new Set(), patterns: new Set() };
26
+ this.repoApprovals.set(workingDir, entry);
27
+ }
28
+ return entry;
29
+ }
30
+ /** Add an auto-approval rule for a repo and persist. */
31
+ addRepoApproval(workingDir, opts) {
32
+ const entry = this.getRepoApprovalEntry(workingDir);
33
+ if (opts.tool)
34
+ entry.tools.add(opts.tool);
35
+ if (opts.command)
36
+ entry.commands.add(opts.command);
37
+ if (opts.pattern)
38
+ entry.patterns.add(opts.pattern);
39
+ this.persistRepoApprovalsDebounced();
40
+ }
41
+ /**
42
+ * Command prefixes where prefix-based auto-approval is safe.
43
+ * Only commands whose behavior is determined by later arguments (not by target)
44
+ * should be listed here. Dangerous commands like rm, sudo, curl, etc. require
45
+ * exact match to prevent escalation (e.g. approving `rm -rf /tmp/x` should NOT
46
+ * also approve `rm -rf /`).
47
+ */
48
+ static SAFE_PREFIX_COMMANDS = new Set([
49
+ 'git add', 'git commit', 'git diff', 'git log', 'git show', 'git stash',
50
+ 'git status', 'git branch', 'git checkout', 'git switch', 'git rebase',
51
+ 'git fetch', 'git pull', 'git merge', 'git tag', 'git rev-parse',
52
+ 'npm run', 'npm test', 'npm install', 'npm ci', 'npm exec',
53
+ 'npx', 'node', 'bun', 'deno',
54
+ 'cargo build', 'cargo test', 'cargo run', 'cargo check', 'cargo clippy',
55
+ 'make', 'cmake',
56
+ 'python', 'python3', 'pip install',
57
+ 'go build', 'go test', 'go run', 'go vet',
58
+ 'tsc', 'eslint', 'prettier',
59
+ 'cat', 'head', 'tail', 'wc', 'sort', 'uniq', 'diff', 'less',
60
+ 'ls', 'pwd', 'echo', 'date', 'which', 'whoami', 'env', 'printenv',
61
+ 'find', 'grep', 'rg', 'ag', 'fd',
62
+ 'mkdir', 'touch',
63
+ ]);
64
+ /**
65
+ * Check if a tool/command is auto-approved for a repo.
66
+ * For Bash commands, uses prefix matching only for safe commands;
67
+ * dangerous commands require exact match to prevent escalation.
68
+ */
69
+ checkAutoApproval(workingDir, toolName, toolInput) {
70
+ const approvals = this.getRepoApprovalEntry(workingDir);
71
+ if (approvals.tools.has(toolName))
72
+ return true;
73
+ if (toolName === 'Bash') {
74
+ const cmd = String(toolInput.command || '').trim();
75
+ // Exact match always works
76
+ if (approvals.commands.has(cmd))
77
+ return true;
78
+ // Pattern match (e.g. "cat *" matches any cat command)
79
+ for (const pattern of approvals.patterns) {
80
+ if (this.matchesPattern(pattern, cmd))
81
+ return true;
82
+ }
83
+ // Prefix match only for safe commands
84
+ const cmdPrefix = this.commandPrefix(cmd);
85
+ if (cmdPrefix && ApprovalManager.SAFE_PREFIX_COMMANDS.has(cmdPrefix)) {
86
+ for (const approved of approvals.commands) {
87
+ if (this.commandPrefix(approved) === cmdPrefix)
88
+ return true;
89
+ }
90
+ }
91
+ }
92
+ return false;
93
+ }
94
+ /** Extract the command prefix (first two tokens) for prefix-based matching. */
95
+ commandPrefix(cmd) {
96
+ const tokens = cmd.split(/\s+/).filter(Boolean);
97
+ if (tokens.length === 0)
98
+ return '';
99
+ if (tokens.length === 1)
100
+ return tokens[0];
101
+ return `${tokens[0]} ${tokens[1]}`;
102
+ }
103
+ /**
104
+ * Derive a glob pattern from a tool invocation for "Approve Pattern".
105
+ * Returns a string like "cat *" or "git diff *", or null if no safe pattern applies.
106
+ * Patterns use the format "<prefix> *" meaning "this prefix followed by anything".
107
+ */
108
+ derivePattern(toolName, toolInput) {
109
+ if (toolName !== 'Bash')
110
+ return null;
111
+ const cmd = String(toolInput.command || '').trim();
112
+ const tokens = cmd.split(/\s+/).filter(Boolean);
113
+ if (tokens.length === 0)
114
+ return null;
115
+ // Check single-token safe commands (cat, grep, ls, etc.)
116
+ const first = tokens[0];
117
+ if (ApprovalManager.SAFE_PREFIX_COMMANDS.has(first)) {
118
+ return `${first} *`;
119
+ }
120
+ // Check two-token safe commands (git diff, npm run, etc.)
121
+ if (tokens.length >= 2) {
122
+ const twoToken = `${tokens[0]} ${tokens[1]}`;
123
+ if (ApprovalManager.SAFE_PREFIX_COMMANDS.has(twoToken)) {
124
+ return `${twoToken} *`;
125
+ }
126
+ }
127
+ return null;
128
+ }
129
+ /**
130
+ * Check if a bash command matches a stored pattern.
131
+ * Patterns of the form "<prefix> *" match any command starting with <prefix>.
132
+ */
133
+ matchesPattern(pattern, cmd) {
134
+ if (pattern.endsWith(' *')) {
135
+ const prefix = pattern.slice(0, -2);
136
+ return cmd === prefix || cmd.startsWith(prefix + ' ');
137
+ }
138
+ return cmd === pattern;
139
+ }
140
+ /** Save an "Always Allow" approval for a tool/command. */
141
+ saveAlwaysAllow(workingDir, toolName, toolInput) {
142
+ if (toolName === 'Bash') {
143
+ const cmd = String(toolInput.command || '').trim();
144
+ this.addRepoApproval(workingDir, { command: cmd });
145
+ console.log(`[auto-approve] saved command for repo ${workingDir}: ${cmd.slice(0, 80)}`);
146
+ }
147
+ else {
148
+ this.addRepoApproval(workingDir, { tool: toolName });
149
+ console.log(`[auto-approve] saved tool for repo ${workingDir}: ${toolName}`);
150
+ }
151
+ }
152
+ /** Save a pattern-based approval (e.g. "cat *") for a tool/command. */
153
+ savePatternApproval(workingDir, toolName, toolInput) {
154
+ const pattern = this.derivePattern(toolName, toolInput);
155
+ if (pattern) {
156
+ this.addRepoApproval(workingDir, { pattern });
157
+ console.log(`[auto-approve] saved pattern for repo ${workingDir}: ${pattern}`);
158
+ }
159
+ else {
160
+ // No pattern derivable — skip saving rather than silently escalating to always-allow
161
+ console.log(`[auto-approve] no pattern derivable for ${toolName}, skipping pattern save`);
162
+ }
163
+ }
164
+ /** Return the auto-approved tools, commands, and patterns for a repo (workingDir). */
165
+ getApprovals(workingDir) {
166
+ const entry = this.repoApprovals.get(workingDir);
167
+ if (!entry)
168
+ return { tools: [], commands: [], patterns: [] };
169
+ return {
170
+ tools: Array.from(entry.tools).sort(),
171
+ commands: Array.from(entry.commands).sort(),
172
+ patterns: Array.from(entry.patterns).sort(),
173
+ };
174
+ }
175
+ /** Remove an auto-approval rule for a repo (workingDir) and persist to disk.
176
+ * Returns 'invalid' if no tool/command provided, or boolean indicating if something was deleted.
177
+ * Pass skipPersist=true for bulk operations (caller must call persistRepoApprovals after). */
178
+ removeApproval(workingDir, opts, skipPersist = false) {
179
+ const tool = typeof opts.tool === 'string' ? opts.tool.trim() : '';
180
+ const command = typeof opts.command === 'string' ? opts.command.trim() : '';
181
+ const pattern = typeof opts.pattern === 'string' ? opts.pattern.trim() : '';
182
+ if (!tool && !command && !pattern)
183
+ return 'invalid';
184
+ const entry = this.repoApprovals.get(workingDir);
185
+ if (!entry)
186
+ return false;
187
+ let removed = false;
188
+ if (tool)
189
+ removed = entry.tools.delete(tool) || removed;
190
+ if (command)
191
+ removed = entry.commands.delete(command) || removed;
192
+ if (pattern)
193
+ removed = entry.patterns.delete(pattern) || removed;
194
+ if (removed && !skipPersist)
195
+ this.persistRepoApprovals();
196
+ return removed;
197
+ }
198
+ /** Write repo-level approvals to disk (atomic rename). */
199
+ persistRepoApprovals() {
200
+ const data = {};
201
+ for (const [dir, entry] of this.repoApprovals) {
202
+ // Only persist non-empty entries
203
+ if (entry.tools.size > 0 || entry.commands.size > 0 || entry.patterns.size > 0) {
204
+ data[dir] = {
205
+ tools: Array.from(entry.tools).sort(),
206
+ commands: Array.from(entry.commands).sort(),
207
+ patterns: Array.from(entry.patterns).sort(),
208
+ };
209
+ }
210
+ }
211
+ try {
212
+ mkdirSync(DATA_DIR, { recursive: true });
213
+ const tmp = REPO_APPROVALS_FILE + '.tmp';
214
+ writeFileSync(tmp, JSON.stringify(data, null, 2), { mode: 0o600 });
215
+ renameSync(tmp, REPO_APPROVALS_FILE);
216
+ }
217
+ catch (err) {
218
+ console.error('Failed to persist repo approvals:', err);
219
+ }
220
+ }
221
+ persistRepoApprovalsDebounced() {
222
+ if (this._approvalPersistTimer)
223
+ return;
224
+ this._approvalPersistTimer = setTimeout(() => {
225
+ this._approvalPersistTimer = null;
226
+ this.persistRepoApprovals();
227
+ }, PERSIST_DEBOUNCE_MS);
228
+ }
229
+ restoreRepoApprovalsFromDisk() {
230
+ if (!existsSync(REPO_APPROVALS_FILE))
231
+ return;
232
+ try {
233
+ const raw = readFileSync(REPO_APPROVALS_FILE, 'utf-8');
234
+ const data = JSON.parse(raw);
235
+ for (const [dir, entry] of Object.entries(data)) {
236
+ this.repoApprovals.set(dir, {
237
+ tools: new Set(entry.tools || []),
238
+ commands: new Set(entry.commands || []),
239
+ patterns: new Set(entry.patterns || []),
240
+ });
241
+ }
242
+ console.log(`Restored repo approvals for ${Object.keys(data).length} repo(s) from disk`);
243
+ }
244
+ catch (err) {
245
+ console.error('Failed to restore repo approvals from disk:', err);
246
+ }
247
+ }
248
+ }
249
+ //# sourceMappingURL=approval-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-manager.js","sourceRoot":"","sources":["../approval-manager.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,16 @@ import type { Request } from 'express';
8
8
  import type { SessionManager } from './session-manager.js';
9
9
  type VerifyFn = (token: string | undefined) => boolean;
10
10
  type ExtractFn = (req: Request) => string | undefined;
11
+ /**
12
+ * Create an Express router with auth verification and health-check endpoints.
13
+ *
14
+ * @param verifyToken - Returns true if the given bearer token is valid.
15
+ * @param extractToken - Extracts the bearer token from an incoming request (header, cookie, etc.).
16
+ * @param sessions - Session manager instance, used to report active/total session counts.
17
+ * @param claudeAvailable - Whether the Claude CLI binary was found at startup.
18
+ * @param claudeVersion - Version string of the detected Claude CLI.
19
+ * @param apiKeySet - Whether an Anthropic API key is configured.
20
+ * @returns An Express Router with POST `/auth-verify` and GET `/api/health` routes.
21
+ */
11
22
  export declare function createAuthRouter(verifyToken: VerifyFn, extractToken: ExtractFn, sessions: SessionManager, claudeAvailable: boolean, claudeVersion: string, apiKeySet: boolean): Router;
12
23
  export {};
@@ -4,6 +4,17 @@
4
4
  * Mounted directly on the Express app (no path prefix).
5
5
  */
6
6
  import { Router } from 'express';
7
+ /**
8
+ * Create an Express router with auth verification and health-check endpoints.
9
+ *
10
+ * @param verifyToken - Returns true if the given bearer token is valid.
11
+ * @param extractToken - Extracts the bearer token from an incoming request (header, cookie, etc.).
12
+ * @param sessions - Session manager instance, used to report active/total session counts.
13
+ * @param claudeAvailable - Whether the Claude CLI binary was found at startup.
14
+ * @param claudeVersion - Version string of the detected Claude CLI.
15
+ * @param apiKeySet - Whether an Anthropic API key is configured.
16
+ * @returns An Express Router with POST `/auth-verify` and GET `/api/health` routes.
17
+ */
7
18
  export function createAuthRouter(verifyToken, extractToken, sessions, claudeAvailable, claudeVersion, apiKeySet) {
8
19
  const router = Router();
9
20
  router.post('/auth-verify', (req, res) => {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../auth-routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAOhC,MAAM,UAAU,gBAAgB,CAC9B,WAAqB,EACrB,YAAuB,EACvB,QAAwB,EACxB,eAAwB,EACxB,aAAqB,EACrB,SAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;IAEvB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QAE/E,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;QACnC,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,eAAe;YACf,aAAa;YACb,SAAS;YACT,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;YACxD,aAAa,EAAE,WAAW,CAAC,MAAM;SAClC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../auth-routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAOhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAqB,EACrB,YAAuB,EACvB,QAAwB,EACxB,eAAwB,EACxB,aAAqB,EACrB,SAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAA;IAEvB,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QAE/E,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;QACnC,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,eAAe;YACf,aAAa;YACb,SAAS;YACT,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;YACxD,aAAa,EAAE,WAAW,CAAC,MAAM;SAClC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -16,6 +16,7 @@ import { EventEmitter } from 'events';
16
16
  import { randomUUID } from 'crypto';
17
17
  import { homedir } from 'os';
18
18
  import { SCREENSHOTS_DIR } from './config.js';
19
+ import { redactSecrets } from './crypto-utils.js';
19
20
  /**
20
21
  * Wraps a Claude CLI child process. Parses stream-json NDJSON output from
21
22
  * stdout and emits structured events consumed by SessionManager.
@@ -331,7 +332,7 @@ export class ClaudeProcess extends EventEmitter {
331
332
  }
332
333
  else if (toolName === 'Bash') {
333
334
  // Bash runs arbitrary commands — forward to session manager for registry check / UI prompt
334
- console.log(`[control_request] forwarding Bash to session manager: ${String(toolInput.command || '').slice(0, 80)}`);
335
+ console.log(`[control_request] forwarding Bash to session manager: ${redactSecrets(String(toolInput.command || '').slice(0, 80))}`);
335
336
  this.emit('control_request', request_id, toolName, toolInput);
336
337
  }
337
338
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-process.js","sourceRoot":"","sources":["../claude-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-process.js","sourceRoot":"","sources":["../claude-process.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,9 @@
7
7
  */
8
8
  /** Main server port (WebSocket + REST + uploads). */
9
9
  export declare const PORT: number;
10
- /** CORS allowed origin. Defaults to localhost dev server; set explicitly for production. */
10
+ /** CORS allowed origin. Defaults to localhost dev server; must be set explicitly for production. */
11
11
  export declare const CORS_ORIGIN: string;
12
12
  export declare const AUTH_TOKEN: string;
13
- /** Root directory for cloned repositories. */
14
13
  export declare const REPOS_ROOT: string;
15
14
  /** Codekin data directory (sessions, approvals, workflows, etc.). */
16
15
  export declare const DATA_DIR: string;
@@ -7,14 +7,23 @@
7
7
  */
8
8
  import { homedir } from 'os';
9
9
  import { join } from 'path';
10
- import { readFileSync, existsSync } from 'fs';
10
+ import { readFileSync, existsSync, realpathSync } from 'fs';
11
11
  // ---------------------------------------------------------------------------
12
12
  // Network
13
13
  // ---------------------------------------------------------------------------
14
14
  /** Main server port (WebSocket + REST + uploads). */
15
15
  export const PORT = parseInt(process.env.PORT || '32352', 10);
16
- /** CORS allowed origin. Defaults to localhost dev server; set explicitly for production. */
16
+ /** CORS allowed origin. Defaults to localhost dev server; must be set explicitly for production. */
17
17
  export const CORS_ORIGIN = process.env.CORS_ORIGIN || 'http://localhost:5173';
18
+ // Warn at startup if production is using the default localhost CORS origin
19
+ if (process.env.NODE_ENV === 'production' && !process.env.CORS_ORIGIN) {
20
+ console.error('[config] ERROR: CORS_ORIGIN is not set in production. Defaulting to localhost is insecure.');
21
+ console.error('[config] Set CORS_ORIGIN to the production frontend origin (e.g. https://example.com).');
22
+ process.exit(1);
23
+ }
24
+ if (process.env.NODE_ENV === 'production' && CORS_ORIGIN.includes('localhost')) {
25
+ console.warn('[config] WARNING: CORS_ORIGIN contains "localhost" in production mode. This is likely misconfigured.');
26
+ }
18
27
  // ---------------------------------------------------------------------------
19
28
  // Authentication
20
29
  // ---------------------------------------------------------------------------
@@ -36,8 +45,11 @@ export const AUTH_TOKEN = loadAuthToken();
36
45
  // ---------------------------------------------------------------------------
37
46
  // Paths
38
47
  // ---------------------------------------------------------------------------
39
- /** Root directory for cloned repositories. */
40
- export const REPOS_ROOT = process.env.REPOS_ROOT || join(homedir(), 'repos');
48
+ /** Root directory for cloned repositories. Resolved via realpathSync to follow symlinks. */
49
+ const rawReposRoot = process.env.REPOS_ROOT || join(homedir(), 'repos');
50
+ export const REPOS_ROOT = existsSync(rawReposRoot)
51
+ ? realpathSync(rawReposRoot)
52
+ : rawReposRoot;
41
53
  /** Codekin data directory (sessions, approvals, workflows, etc.). */
42
54
  export const DATA_DIR = process.env.DATA_DIR || join(homedir(), '.codekin');
43
55
  /** Directory for uploaded screenshots / file attachments. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAE7C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,qDAAqD;AACrD,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAA;AAE7D,4FAA4F;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,uBAAuB,CAAA;AAE7E,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAEzD,yDAAyD;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAA;IACnD,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAChD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;AAEzC,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;AAE5E,qEAAqE;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;AAE3E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAA;AAE5D,kGAAkG;AAClG,MAAM,CAAC,MAAM,OAAO,GAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAE3D,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,qDAAqD;AACrD,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAA;AAE7D,oGAAoG;AACpG,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,uBAAuB,CAAA;AAE7E,2EAA2E;AAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACtE,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAA;IAC3G,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAA;IACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AACD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAA;AACtH,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAEzD,yDAAyD;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAA;IACnD,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IAChD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;AAEzC,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,4FAA4F;AAC5F,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;IAChD,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC;IAC5B,CAAC,CAAC,YAAY,CAAA;AAEhB,qEAAqE;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAA;AAE3E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAA;AAE5D,kGAAkG;AAClG,MAAM,CAAC,MAAM,OAAO,GAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * Shared cryptographic utilities for webhook signature verification.
2
+ * Shared cryptographic utilities for webhook signature verification,
3
+ * session-scoped token derivation, and secret redaction.
3
4
  */
5
+ export declare function redactSecrets(input: string): string;
4
6
  /**
5
7
  * Verify an HMAC-SHA256 signature over a payload.
6
8
  * Comparison uses timingSafeEqual to resist timing oracle attacks.
@@ -10,3 +12,16 @@
10
12
  * preventing timing leaks from the comparison itself.
11
13
  */
12
14
  export declare function verifyHmacSignature(payload: Buffer, signature: string, secret: string): boolean;
15
+ /**
16
+ * Derive a session-scoped token from the master auth token.
17
+ * Uses HMAC-SHA256(masterToken, "session:" + sessionId) so that:
18
+ * - Each session gets a unique, unpredictable token
19
+ * - The token cannot be used to recover the master token
20
+ * - The server can verify it without storing extra state
21
+ */
22
+ export declare function deriveSessionToken(masterToken: string, sessionId: string): string;
23
+ /**
24
+ * Verify a session-scoped token against the master token and session ID.
25
+ * Uses timing-safe comparison.
26
+ */
27
+ export declare function verifySessionToken(masterToken: string, sessionId: string, candidateToken: string): boolean;