codekin 0.4.0 → 0.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 (83) hide show
  1. package/README.md +12 -15
  2. package/bin/codekin.mjs +52 -32
  3. package/dist/assets/index-BwKZeT4V.css +1 -0
  4. package/dist/assets/index-CfBnNU24.js +186 -0
  5. package/dist/index.html +2 -2
  6. package/package.json +2 -7
  7. package/server/dist/approval-manager.d.ts +7 -2
  8. package/server/dist/approval-manager.js +45 -79
  9. package/server/dist/approval-manager.js.map +1 -1
  10. package/server/dist/claude-process.d.ts +23 -3
  11. package/server/dist/claude-process.js +123 -23
  12. package/server/dist/claude-process.js.map +1 -1
  13. package/server/dist/commit-event-handler.js.map +1 -1
  14. package/server/dist/config.d.ts +4 -0
  15. package/server/dist/config.js +17 -0
  16. package/server/dist/config.js.map +1 -1
  17. package/server/dist/diff-manager.d.ts +41 -0
  18. package/server/dist/diff-manager.js +303 -0
  19. package/server/dist/diff-manager.js.map +1 -0
  20. package/server/dist/diff-parser.js +8 -2
  21. package/server/dist/diff-parser.js.map +1 -1
  22. package/server/dist/error-page.d.ts +5 -0
  23. package/server/dist/error-page.js +144 -0
  24. package/server/dist/error-page.js.map +1 -0
  25. package/server/dist/native-permissions.d.ts +44 -0
  26. package/server/dist/native-permissions.js +163 -0
  27. package/server/dist/native-permissions.js.map +1 -0
  28. package/server/dist/orchestrator-children.d.ts +74 -0
  29. package/server/dist/orchestrator-children.js +281 -0
  30. package/server/dist/orchestrator-children.js.map +1 -0
  31. package/server/dist/orchestrator-learning.d.ts +134 -0
  32. package/server/dist/orchestrator-learning.js +567 -0
  33. package/server/dist/orchestrator-learning.js.map +1 -0
  34. package/server/dist/orchestrator-manager.d.ts +25 -0
  35. package/server/dist/orchestrator-manager.js +353 -0
  36. package/server/dist/orchestrator-manager.js.map +1 -0
  37. package/server/dist/orchestrator-memory.d.ts +77 -0
  38. package/server/dist/orchestrator-memory.js +288 -0
  39. package/server/dist/orchestrator-memory.js.map +1 -0
  40. package/server/dist/orchestrator-monitor.d.ts +59 -0
  41. package/server/dist/orchestrator-monitor.js +238 -0
  42. package/server/dist/orchestrator-monitor.js.map +1 -0
  43. package/server/dist/orchestrator-reports.d.ts +45 -0
  44. package/server/dist/orchestrator-reports.js +124 -0
  45. package/server/dist/orchestrator-reports.js.map +1 -0
  46. package/server/dist/orchestrator-routes.d.ts +17 -0
  47. package/server/dist/orchestrator-routes.js +526 -0
  48. package/server/dist/orchestrator-routes.js.map +1 -0
  49. package/server/dist/session-archive.js +9 -2
  50. package/server/dist/session-archive.js.map +1 -1
  51. package/server/dist/session-manager.d.ts +101 -39
  52. package/server/dist/session-manager.js +573 -397
  53. package/server/dist/session-manager.js.map +1 -1
  54. package/server/dist/session-naming.d.ts +6 -10
  55. package/server/dist/session-naming.js +60 -62
  56. package/server/dist/session-naming.js.map +1 -1
  57. package/server/dist/session-persistence.d.ts +6 -1
  58. package/server/dist/session-persistence.js +6 -0
  59. package/server/dist/session-persistence.js.map +1 -1
  60. package/server/dist/session-restart-scheduler.d.ts +30 -0
  61. package/server/dist/session-restart-scheduler.js +41 -0
  62. package/server/dist/session-restart-scheduler.js.map +1 -0
  63. package/server/dist/session-routes.js +127 -58
  64. package/server/dist/session-routes.js.map +1 -1
  65. package/server/dist/stepflow-types.d.ts +1 -1
  66. package/server/dist/tsconfig.tsbuildinfo +1 -1
  67. package/server/dist/types.d.ts +34 -2
  68. package/server/dist/types.js +8 -1
  69. package/server/dist/types.js.map +1 -1
  70. package/server/dist/upload-routes.js +13 -4
  71. package/server/dist/upload-routes.js.map +1 -1
  72. package/server/dist/version-check.d.ts +17 -0
  73. package/server/dist/version-check.js +89 -0
  74. package/server/dist/version-check.js.map +1 -0
  75. package/server/dist/workflow-engine.d.ts +74 -1
  76. package/server/dist/workflow-engine.js +20 -1
  77. package/server/dist/workflow-engine.js.map +1 -1
  78. package/server/dist/ws-message-handler.js +115 -9
  79. package/server/dist/ws-message-handler.js.map +1 -1
  80. package/server/dist/ws-server.js +90 -15
  81. package/server/dist/ws-server.js.map +1 -1
  82. package/dist/assets/index-BAdQqYEY.js +0 -182
  83. package/dist/assets/index-CeZYNLWt.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-routes.js","sourceRoot":"","sources":["../orchestrator-routes.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Old archives are automatically purged based on a configurable retention period.
6
6
  */
7
7
  import Database from 'better-sqlite3';
8
- import { existsSync, mkdirSync } from 'fs';
8
+ import { existsSync, mkdirSync, chmodSync } from 'fs';
9
9
  import { homedir } from 'os';
10
10
  import { join } from 'path';
11
11
  const DATA_DIR = join(homedir(), '.codekin');
@@ -20,7 +20,14 @@ export class SessionArchive {
20
20
  constructor(dbPath) {
21
21
  if (!existsSync(DATA_DIR))
22
22
  mkdirSync(DATA_DIR, { recursive: true });
23
- this.db = new Database(dbPath ?? DB_PATH);
23
+ const resolvedPath = dbPath ?? DB_PATH;
24
+ this.db = new Database(resolvedPath);
25
+ if (resolvedPath !== ':memory:') {
26
+ try {
27
+ chmodSync(resolvedPath, 0o600);
28
+ }
29
+ catch { /* file may not exist yet (e.g. mocked DB) */ }
30
+ }
24
31
  this.db.pragma('journal_mode = WAL');
25
32
  this.db.pragma('foreign_keys = ON');
26
33
  this.initSchema();
@@ -1 +1 @@
1
- {"version":3,"file":"session-archive.js","sourceRoot":"","sources":["../session-archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-archive.js","sourceRoot":"","sources":["../session-archive.ts"],"names":[],"mappings":"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"}
@@ -14,19 +14,30 @@
14
14
  * - ApprovalManager: repo-level auto-approval rules for tools/commands
15
15
  * - SessionNaming: AI-powered session name generation with retry logic
16
16
  * - SessionPersistence: disk I/O for session state
17
+ * - DiffManager: stateless git-diff operations
18
+ * - evaluateRestart: pure restart-decision logic
17
19
  */
18
20
  import type { WebSocket } from 'ws';
19
21
  import { SessionArchive } from './session-archive.js';
20
22
  import type { DiffFileStatus, DiffScope, Session, SessionInfo, WsServerMessage } from './types.js';
23
+ import { ApprovalManager } from './approval-manager.js';
21
24
  export interface CreateSessionOptions {
22
- source?: 'manual' | 'webhook' | 'workflow' | 'stepflow';
25
+ source?: 'manual' | 'webhook' | 'workflow' | 'stepflow' | 'orchestrator' | 'agent';
23
26
  id?: string;
24
27
  groupDir?: string;
25
28
  model?: string;
29
+ /** When true, create a git worktree as a sibling of workingDir and run Claude there. */
30
+ useWorktree?: boolean;
31
+ /** Permission mode for the Claude CLI process. */
32
+ permissionMode?: import('./types.js').PermissionMode;
33
+ /** Additional tools to pre-approve via --allowedTools (e.g. 'Bash(curl:*)', 'WebFetch'). */
34
+ allowedTools?: string[];
26
35
  }
27
36
  export declare class SessionManager {
28
37
  /** All active (non-archived) sessions, keyed by session UUID. */
29
38
  private sessions;
39
+ /** Reverse lookup: WebSocket → session ID for O(1) client-to-session resolution. */
40
+ private clientSessionMap;
30
41
  /** SQLite archive for closed sessions (persists conversation summaries across restarts). */
31
42
  readonly archive: SessionArchive;
32
43
  /** Exposed so ws-server can pass its port to child Claude processes. */
@@ -37,39 +48,21 @@ export declare class SessionManager {
37
48
  _globalBroadcast: ((msg: WsServerMessage) => void) | null;
38
49
  /** Registered listeners notified when a session's Claude process exits (used by webhook-handler for chained workflows). */
39
50
  private _exitListeners;
51
+ /** Registered listeners notified when a session emits a prompt (permission or question). */
52
+ private _promptListeners;
53
+ /** Registered listeners notified when a session completes a turn (result event). */
54
+ private _resultListeners;
40
55
  /** Delegated approval logic (auto-approve patterns, deny-lists, pattern management). */
41
- private approvalManager;
56
+ private _approvalManager;
42
57
  /** Delegated auto-naming logic (generates session names from first user message via Claude API). */
43
58
  private sessionNaming;
44
59
  /** Delegated persistence logic (saves/restores session metadata to disk across server restarts). */
45
60
  private sessionPersistence;
61
+ /** Delegated diff operations (git diff, discard changes). */
62
+ private diffManager;
46
63
  constructor();
47
- /** Check if a tool/command is auto-approved for a repo. */
48
- checkAutoApproval(workingDir: string, toolName: string, toolInput: Record<string, unknown>): boolean;
49
- /** Derive a glob pattern from a tool invocation for "Approve Pattern". */
50
- derivePattern(toolName: string, toolInput: Record<string, unknown>): string | null;
51
- /** Return the auto-approved tools, commands, and patterns for a repo (workingDir). */
52
- getApprovals(workingDir: string): {
53
- tools: string[];
54
- commands: string[];
55
- patterns: string[];
56
- };
57
- /** Return approvals effective globally via cross-repo inference. */
58
- getGlobalApprovals(): {
59
- tools: Record<string, string[]>;
60
- commands: Record<string, string[]>;
61
- patterns: Record<string, string[]>;
62
- };
63
- /** Remove an auto-approval rule for a repo (workingDir) and persist to disk. */
64
- removeApproval(workingDir: string, opts: {
65
- tool?: string;
66
- command?: string;
67
- pattern?: string;
68
- }, skipPersist?: boolean): 'invalid' | boolean;
69
- /** Add an auto-approval rule for a repo and persist (used by tests via `as any`). */
70
- private addRepoApproval;
71
- /** Write repo-level approvals to disk. Exposed for shutdown. */
72
- persistRepoApprovals(): void;
64
+ /** Direct access to the approval manager for callers that need repo-level approval operations. */
65
+ get approvalManager(): ApprovalManager;
73
66
  /** Schedule session naming via AI provider. */
74
67
  scheduleSessionNaming(sessionId: string): void;
75
68
  /** Re-trigger session naming on user interaction. */
@@ -79,11 +72,61 @@ export declare class SessionManager {
79
72
  private persistToDiskDebounced;
80
73
  /** Create a new session and persist to disk. */
81
74
  create(name: string, workingDir: string, options?: CreateSessionOptions): Session;
75
+ /**
76
+ * Create a git worktree for a session. Creates a new branch and worktree
77
+ * as a sibling directory of the project root.
78
+ * Returns the worktree path on success, or null on failure.
79
+ */
80
+ createWorktree(sessionId: string, workingDir: string): Promise<string | null>;
81
+ /**
82
+ * Resolve the Claude CLI project storage directory for a given working dir.
83
+ * Claude encodes the absolute path by replacing `/` with `-`.
84
+ */
85
+ private claudeProjectPath;
86
+ /**
87
+ * Copy Claude CLI session data from the original project storage to
88
+ * the target directory's project storage. When oldId === newId the
89
+ * file is copied without renaming, preserving internal sessionId fields.
90
+ * Claude CLI determines session storage from the CWD, so for worktree
91
+ * migrations the JSONL must be placed in the worktree's project dir.
92
+ */
93
+ private migrateClaudeSession;
94
+ /** Recursively copy a directory. */
95
+ private copyDirRecursive;
96
+ /**
97
+ * Clean up a git worktree and its branch. Runs asynchronously and logs errors
98
+ * but never throws — session deletion must not be blocked by cleanup failures.
99
+ */
100
+ private cleanupWorktree;
101
+ /** Get the configured worktree branch prefix (defaults to 'wt/'). */
102
+ getWorktreeBranchPrefix(): string;
103
+ /** Set the worktree branch prefix. */
104
+ setWorktreeBranchPrefix(prefix: string): void;
82
105
  /** Register a listener called when any session's Claude process exits.
83
106
  * The `willRestart` flag indicates whether the session will be auto-restarted. */
84
107
  onSessionExit(listener: (sessionId: string, code: number | null, signal: string | null, willRestart: boolean) => void): void;
108
+ /** Register a listener called when any session emits a prompt (permission request or question). */
109
+ onSessionPrompt(listener: (sessionId: string, promptType: 'permission' | 'question', toolName: string | undefined, requestId: string | undefined) => void): void;
110
+ /** Register a listener called when any session completes a turn (result event). */
111
+ onSessionResult(listener: (sessionId: string, isError: boolean) => void): void;
85
112
  get(id: string): Session | undefined;
113
+ /** Get all sessions that have pending prompts (waiting for approval or answer). */
114
+ getPendingPrompts(): Array<{
115
+ sessionId: string;
116
+ sessionName: string;
117
+ source: string;
118
+ prompts: Array<{
119
+ requestId: string;
120
+ promptType: 'permission' | 'question';
121
+ toolName: string;
122
+ toolInput: Record<string, unknown>;
123
+ }>;
124
+ }>;
125
+ /** Clear the isProcessing flag for a session and broadcast the update. */
126
+ clearProcessingFlag(sessionId: string): void;
86
127
  list(): SessionInfo[];
128
+ /** List ALL sessions including orchestrator — used by orchestrator cleanup endpoints. */
129
+ listAll(): SessionInfo[];
87
130
  rename(sessionId: string, newName: string): boolean;
88
131
  /** Add a WebSocket client to a session. Returns the session or undefined if not found.
89
132
  * Re-broadcasts any pending approval/control prompts so the joining client sees them. */
@@ -127,6 +170,9 @@ export declare class SessionManager {
127
170
  /**
128
171
  * Handle a Claude process 'exit' event: clean up state, notify exit listeners,
129
172
  * and either auto-restart (within limits) or broadcast the final exit message.
173
+ *
174
+ * Uses evaluateRestart() for the restart decision, keeping this method focused
175
+ * on state updates, listener notification, and message broadcasting.
130
176
  */
131
177
  private handleClaudeExit;
132
178
  /**
@@ -158,18 +204,34 @@ export declare class SessionManager {
158
204
  requestToolApproval(sessionId: string, toolName: string, toolInput: Record<string, unknown>): Promise<{
159
205
  allow: boolean;
160
206
  always: boolean;
207
+ answer?: string;
161
208
  }>;
162
209
  /**
163
210
  * Check if a tool invocation can be auto-approved without prompting the user.
164
- * Returns 'registry' if matched by auto-approval rules, 'headless' if the session
165
- * has no clients and is a non-interactive source, or 'prompt' if the user needs to decide.
211
+ * Returns 'registry' if matched by auto-approval rules, 'session' if matched
212
+ * by the session's allowedTools list, 'headless' if the session has no clients
213
+ * and is a non-interactive source, or 'prompt' if the user needs to decide.
166
214
  */
167
215
  private resolveAutoApproval;
216
+ /**
217
+ * Check if a tool invocation matches any of the session's allowedTools patterns.
218
+ * Patterns follow Claude CLI format: 'ToolName' or 'ToolName(prefix:*)'.
219
+ * Examples: 'WebFetch', 'Bash(curl:*)', 'Bash(git:*)'.
220
+ */
221
+ private matchesAllowedTools;
168
222
  /** Build a human-readable prompt string for a tool permission dialog. */
169
223
  private summarizeToolPermission;
170
224
  /** Update the model for a session and restart Claude with the new model. */
171
225
  setModel(sessionId: string, model: string): boolean;
226
+ /** Update the permission mode for a session and restart Claude with the new mode. */
227
+ setPermissionMode(sessionId: string, permissionMode: import('./types.js').PermissionMode): boolean;
172
228
  stopClaude(sessionId: string): void;
229
+ /**
230
+ * Stop the Claude process and wait for it to fully exit before resolving.
231
+ * This prevents race conditions when restarting with the same session ID
232
+ * (e.g. during mid-session worktree migration).
233
+ */
234
+ stopClaudeAndWait(sessionId: string): Promise<void>;
173
235
  /** Check if an error result text matches a transient API error worth retrying. */
174
236
  private isRetryableApiError;
175
237
  /**
@@ -188,20 +250,20 @@ export declare class SessionManager {
188
250
  addToHistory(session: Session, msg: WsServerMessage): void;
189
251
  /** Send a message to all connected clients of a session, with back-pressure protection. */
190
252
  broadcast(session: Session, msg: WsServerMessage): void;
253
+ /** Find which session a WebSocket is connected to (O(1) via reverse map). */
191
254
  findSessionForClient(ws: WebSocket): Session | undefined;
192
- removeClient(ws: WebSocket): void;
193
255
  /**
194
- * Run git diff in a session's workingDir and return structured results.
195
- * Includes untracked file discovery for 'unstaged' and 'all' scopes.
256
+ * Remove a client from all sessions (iterates for safety since a ws
257
+ * could theoretically appear in multiple session client sets).
196
258
  */
259
+ removeClient(ws: WebSocket): void;
260
+ /** Run git diff in a session's workingDir and return structured results. */
197
261
  getDiff(sessionId: string, scope?: DiffScope): Promise<WsServerMessage>;
198
- /**
199
- * Discard changes in a session's workingDir per the given scope and paths.
200
- * Returns a fresh diff_result after discarding.
201
- */
262
+ /** Discard changes in a session's workingDir per the given scope and paths. */
202
263
  discardChanges(sessionId: string, scope: DiffScope, paths?: string[], statuses?: Record<string, DiffFileStatus>): Promise<WsServerMessage>;
203
- /** Graceful shutdown: complete in-progress tasks, persist state, kill all processes. */
204
- shutdown(): void;
264
+ /** Graceful shutdown: complete in-progress tasks, persist state, kill all processes.
265
+ * Returns a promise that resolves once all Claude processes have exited. */
266
+ shutdown(): Promise<void>;
205
267
  /**
206
268
  * Mark all in_progress tasks as completed in a session's outputHistory.
207
269
  * Called during graceful shutdown so the todo panel doesn't show stale