@pennyfarthing/cyclist 9.3.0 → 10.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 (101) hide show
  1. package/dist/api/hook-request.d.ts +11 -0
  2. package/dist/api/hook-request.d.ts.map +1 -1
  3. package/dist/api/hook-request.js +126 -28
  4. package/dist/api/hook-request.js.map +1 -1
  5. package/dist/api/hotspots.d.ts +3 -0
  6. package/dist/api/hotspots.d.ts.map +1 -0
  7. package/dist/api/hotspots.js +54 -0
  8. package/dist/api/hotspots.js.map +1 -0
  9. package/dist/api/index.d.ts +2 -0
  10. package/dist/api/index.d.ts.map +1 -1
  11. package/dist/api/index.js +3 -0
  12. package/dist/api/index.js.map +1 -1
  13. package/dist/api/permissions.d.ts +16 -0
  14. package/dist/api/permissions.d.ts.map +1 -0
  15. package/dist/api/permissions.js +67 -0
  16. package/dist/api/permissions.js.map +1 -0
  17. package/dist/api/settings.d.ts +1 -1
  18. package/dist/api/settings.d.ts.map +1 -1
  19. package/dist/api/settings.js +44 -17
  20. package/dist/api/settings.js.map +1 -1
  21. package/dist/api/theme-agents.d.ts +4 -0
  22. package/dist/api/theme-agents.d.ts.map +1 -1
  23. package/dist/api/theme-agents.js +3 -0
  24. package/dist/api/theme-agents.js.map +1 -1
  25. package/dist/approval-gate.d.ts +3 -75
  26. package/dist/approval-gate.d.ts.map +1 -1
  27. package/dist/approval-gate.js +4 -121
  28. package/dist/approval-gate.js.map +1 -1
  29. package/dist/hooks/cyclist-pretooluse-hook.d.ts +60 -0
  30. package/dist/hooks/cyclist-pretooluse-hook.d.ts.map +1 -0
  31. package/dist/hooks/cyclist-pretooluse-hook.js +57 -0
  32. package/dist/hooks/cyclist-pretooluse-hook.js.map +1 -0
  33. package/dist/hooks/pretooluse-hook.d.ts +89 -0
  34. package/dist/hooks/pretooluse-hook.d.ts.map +1 -0
  35. package/dist/hooks/pretooluse-hook.js +235 -0
  36. package/dist/hooks/pretooluse-hook.js.map +1 -0
  37. package/dist/main.d.ts +1 -134
  38. package/dist/main.d.ts.map +1 -1
  39. package/dist/main.js +42 -373
  40. package/dist/main.js.map +1 -1
  41. package/dist/menu-builder.d.ts +7 -1
  42. package/dist/menu-builder.d.ts.map +1 -1
  43. package/dist/menu-builder.js +36 -1
  44. package/dist/menu-builder.js.map +1 -1
  45. package/dist/otlp-receiver.d.ts.map +1 -1
  46. package/dist/otlp-receiver.js +6 -0
  47. package/dist/otlp-receiver.js.map +1 -1
  48. package/dist/public/css/react.css +1 -1
  49. package/dist/public/js/react/react.js +42 -42
  50. package/dist/server.d.ts.map +1 -1
  51. package/dist/server.js +16 -3
  52. package/dist/server.js.map +1 -1
  53. package/dist/settings-store.d.ts +3 -1
  54. package/dist/settings-store.d.ts.map +1 -1
  55. package/dist/settings-store.js +18 -9
  56. package/dist/settings-store.js.map +1 -1
  57. package/dist/story-parser.d.ts +17 -0
  58. package/dist/story-parser.d.ts.map +1 -1
  59. package/dist/story-parser.js +183 -13
  60. package/dist/story-parser.js.map +1 -1
  61. package/dist/websocket.d.ts +1 -0
  62. package/dist/websocket.d.ts.map +1 -1
  63. package/dist/websocket.js +48 -5
  64. package/dist/websocket.js.map +1 -1
  65. package/dist/workflow-presets.d.ts +72 -0
  66. package/dist/workflow-presets.d.ts.map +1 -0
  67. package/dist/workflow-presets.js +93 -0
  68. package/dist/workflow-presets.js.map +1 -0
  69. package/package.json +2 -2
  70. package/src/public/App.tsx +61 -1
  71. package/src/public/components/ApprovalModal/index.tsx +31 -1
  72. package/src/public/components/ControlBar.tsx +19 -20
  73. package/src/public/components/DockviewWorkspace.tsx +39 -5
  74. package/src/public/components/FontPicker/index.tsx +118 -33
  75. package/src/public/components/FullFileTree.tsx +223 -0
  76. package/src/public/components/Message.tsx +89 -11
  77. package/src/public/components/MessageView.tsx +206 -93
  78. package/src/public/components/PersonaHeader.tsx +47 -15
  79. package/src/public/components/SubagentSpan.tsx +15 -8
  80. package/src/public/components/panels/BackgroundPanel.tsx +1 -1
  81. package/src/public/components/panels/ChangedPanel.tsx +30 -44
  82. package/src/public/components/panels/HotspotsPanel.tsx +365 -0
  83. package/src/public/components/panels/MessagePanel.tsx +79 -5
  84. package/src/public/components/panels/SettingsPanel.tsx +3 -28
  85. package/src/public/components/panels/WorkflowPanel.tsx +108 -13
  86. package/src/public/components/panels/index.ts +1 -0
  87. package/src/public/contexts/ClaudeContext.tsx +16 -1
  88. package/src/public/css/theme-system.css +46 -38
  89. package/src/public/hooks/useColorScheme.ts +27 -0
  90. package/src/public/hooks/useFileBrowser.ts +71 -0
  91. package/src/public/hooks/useHotspots.ts +113 -0
  92. package/src/public/hooks/usePlanModeExit.ts +105 -0
  93. package/src/public/hooks/useStory.ts +12 -3
  94. package/src/public/images/cyclist-dark.png +0 -0
  95. package/src/public/images/cyclist-light.png +0 -0
  96. package/src/public/styles/dockview-theme.css +31 -33
  97. package/src/public/styles/tailwind.css +417 -58
  98. package/src/public/types/message.ts +6 -1
  99. package/src/public/utils/markdown.ts +2 -2
  100. package/src/public/utils/slash-commands.ts +1 -1
  101. package/src/public/utils/toolStackGrouper.ts +5 -6
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Cyclist PreToolUse Hook - Core Logic
3
+ *
4
+ * Testable module containing all hook logic. The companion runner script
5
+ * (cyclist-pretooluse-hook.js) imports from the compiled output and invokes main().
6
+ *
7
+ * Flow:
8
+ * 1. Claude Code calls the runner script with tool info via stdin (JSON)
9
+ * 2. Script reads port from .cyclist-port in project directory
10
+ * 3. Script sends request to WheelHub's /api/hook-request endpoint
11
+ * 4. WheelHub checks grants / shows approval modal, user decides
12
+ * 5. Script receives response, outputs JSON decision to stdout
13
+ * 6. Claude Code proceeds or blocks based on decision
14
+ *
15
+ * Per ADR-0004: All communication converges through WheelHub.
16
+ *
17
+ * Story: MSSCI-14320 - Update and register PreToolUse hook
18
+ */
19
+ import http from 'node:http';
20
+ import fs from 'node:fs';
21
+ import path from 'node:path';
22
+ // =============================================================================
23
+ // Constants
24
+ // =============================================================================
25
+ export const DEFAULT_PORT = 7432;
26
+ export const HOST = '127.0.0.1';
27
+ export const TIMEOUT_MS = 120_000; // 2 minutes for user to decide
28
+ export const PORT_FILE = '.cyclist-port';
29
+ export const LEGACY_PORT_FILE = '.cyclist-approval-port';
30
+ export const ENDPOINT = '/api/hook-request';
31
+ // =============================================================================
32
+ // Project Root Detection
33
+ // =============================================================================
34
+ /**
35
+ * Find the project root by looking for port files or .claude directory.
36
+ * Walks up from startDir (defaults to cwd) until found or reaches filesystem root.
37
+ */
38
+ export function findProjectRoot(startDir) {
39
+ let dir = startDir ?? process.cwd();
40
+ const root = path.parse(dir).root;
41
+ while (dir !== root) {
42
+ if (fs.existsSync(path.join(dir, PORT_FILE))) {
43
+ return dir;
44
+ }
45
+ if (fs.existsSync(path.join(dir, LEGACY_PORT_FILE))) {
46
+ return dir;
47
+ }
48
+ if (fs.existsSync(path.join(dir, '.claude'))) {
49
+ return dir;
50
+ }
51
+ dir = path.dirname(dir);
52
+ }
53
+ return null;
54
+ }
55
+ // =============================================================================
56
+ // Port Discovery
57
+ // =============================================================================
58
+ /**
59
+ * Read the WheelHub server port. Prefers .cyclist-port, falls back to
60
+ * .cyclist-approval-port for migration compatibility, then default port.
61
+ *
62
+ * Mirrors hooks.py:get_cyclist_port() behavior.
63
+ */
64
+ export function getPort(projectRoot) {
65
+ const root = projectRoot ?? findProjectRoot();
66
+ if (!root) {
67
+ return DEFAULT_PORT;
68
+ }
69
+ // Try canonical port file first
70
+ const port = readPortFile(path.join(root, PORT_FILE));
71
+ if (port !== null) {
72
+ return port;
73
+ }
74
+ // Fall back to legacy port file
75
+ const legacyPort = readPortFile(path.join(root, LEGACY_PORT_FILE));
76
+ if (legacyPort !== null) {
77
+ return legacyPort;
78
+ }
79
+ return DEFAULT_PORT;
80
+ }
81
+ /**
82
+ * Read a port number from a file. Returns null if file doesn't exist or is invalid.
83
+ */
84
+ export function readPortFile(filePath) {
85
+ if (!fs.existsSync(filePath)) {
86
+ return null;
87
+ }
88
+ try {
89
+ const content = fs.readFileSync(filePath, 'utf-8').trim();
90
+ const port = parseInt(content, 10);
91
+ if (!isNaN(port) && port > 0 && port < 65536) {
92
+ return port;
93
+ }
94
+ }
95
+ catch {
96
+ // Fall through
97
+ }
98
+ return null;
99
+ }
100
+ // =============================================================================
101
+ // Stdin Reading
102
+ // =============================================================================
103
+ /**
104
+ * Read all stdin as JSON.
105
+ */
106
+ export async function readStdin() {
107
+ return new Promise((resolve, reject) => {
108
+ let data = '';
109
+ process.stdin.setEncoding('utf8');
110
+ process.stdin.on('data', (chunk) => { data += chunk; });
111
+ process.stdin.on('end', () => {
112
+ try {
113
+ resolve(JSON.parse(data));
114
+ }
115
+ catch (e) {
116
+ reject(new Error(`Invalid JSON input: ${e.message}`));
117
+ }
118
+ });
119
+ process.stdin.on('error', reject);
120
+ });
121
+ }
122
+ // =============================================================================
123
+ // HTTP Request
124
+ // =============================================================================
125
+ /**
126
+ * Send approval request to WheelHub and wait for response.
127
+ * Returns { decision: "ask" } when WheelHub is unreachable (ECONNREFUSED).
128
+ */
129
+ export async function requestApproval(toolData, port) {
130
+ const resolvedPort = port ?? getPort();
131
+ const postData = JSON.stringify(toolData);
132
+ return new Promise((resolve, reject) => {
133
+ const options = {
134
+ hostname: HOST,
135
+ port: resolvedPort,
136
+ path: ENDPOINT,
137
+ method: 'POST',
138
+ headers: {
139
+ 'Content-Type': 'application/json',
140
+ 'Content-Length': Buffer.byteLength(postData),
141
+ },
142
+ timeout: TIMEOUT_MS,
143
+ };
144
+ const req = http.request(options, (res) => {
145
+ let data = '';
146
+ res.on('data', (chunk) => { data += chunk; });
147
+ res.on('end', () => {
148
+ try {
149
+ resolve(JSON.parse(data));
150
+ }
151
+ catch (e) {
152
+ reject(new Error(`Invalid response from WheelHub: ${e.message}`));
153
+ }
154
+ });
155
+ });
156
+ req.on('error', (e) => {
157
+ if (e.code === 'ECONNREFUSED') {
158
+ resolve({ decision: 'ask', reason: 'WheelHub not running, deferring to Claude Code' });
159
+ }
160
+ else {
161
+ reject(e);
162
+ }
163
+ });
164
+ req.on('timeout', () => {
165
+ req.destroy();
166
+ reject(new Error('Approval request timed out'));
167
+ });
168
+ req.write(postData);
169
+ req.end();
170
+ });
171
+ }
172
+ // =============================================================================
173
+ // Output Formatting
174
+ // =============================================================================
175
+ /**
176
+ * Build the Claude Code hook output object.
177
+ * MSSCI-11947: Supports updatedInput passthrough for interactive tools.
178
+ */
179
+ export function buildOutput(decision, reason, updatedInput) {
180
+ const output = {
181
+ hookSpecificOutput: {
182
+ hookEventName: 'PreToolUse',
183
+ permissionDecision: decision,
184
+ permissionDecisionReason: reason,
185
+ },
186
+ };
187
+ if (updatedInput) {
188
+ output.hookSpecificOutput.updatedInput = updatedInput;
189
+ }
190
+ return output;
191
+ }
192
+ /**
193
+ * Output decision to stdout in Claude Code hook format.
194
+ */
195
+ export function outputDecision(decision, reason, updatedInput) {
196
+ console.log(JSON.stringify(buildOutput(decision, reason, updatedInput)));
197
+ }
198
+ // =============================================================================
199
+ // Main Entry Point
200
+ // =============================================================================
201
+ /**
202
+ * Main hook logic. Reads stdin, sends to WheelHub, outputs decision.
203
+ * MSSCI-11947: Handles data field passthrough for interactive tools.
204
+ */
205
+ export async function main() {
206
+ try {
207
+ const toolData = await readStdin();
208
+ const { tool_name, tool_input, tool_use_id, session_id } = toolData;
209
+ const response = await requestApproval({
210
+ toolName: tool_name,
211
+ toolId: tool_use_id,
212
+ input: tool_input,
213
+ sessionId: session_id,
214
+ });
215
+ if (response.decision === 'allow') {
216
+ outputDecision('allow', response.reason || 'Approved by user', response.data || null);
217
+ }
218
+ else if (response.decision === 'deny') {
219
+ outputDecision('deny', response.reason || 'Rejected by user', response.data || null);
220
+ }
221
+ else if (response.decision === 'ask') {
222
+ outputDecision('ask', response.reason || 'Deferred to Claude Code');
223
+ }
224
+ else {
225
+ // Unknown decision - defer to Claude Code rather than silently allowing
226
+ outputDecision('ask', 'Unknown response from WheelHub');
227
+ }
228
+ }
229
+ catch (error) {
230
+ console.error(`[cyclist-hook] Error: ${error.message}`);
231
+ // Output ask so Claude Code shows its built-in dialog, don't silently allow
232
+ outputDecision('ask', 'Hook error, deferring to Claude Code');
233
+ }
234
+ }
235
+ //# sourceMappingURL=pretooluse-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretooluse-hook.js","sourceRoot":"","sources":["../../src/hooks/pretooluse-hook.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -14,10 +14,9 @@ import { type TodoItem } from './todos.js';
14
14
  import { getProjectDirectory, setProjectDirectory, isValidProjectDirectory } from './paths.js';
15
15
  import { ContextInfo } from './api/context.js';
16
16
  import { type CyclistSettings, type SettingsInput } from './settings.js';
17
- import { type ToolUseMessage, type SDKToolResultError } from './approval-gate.js';
18
17
  export { getProjectDirectory, setProjectDirectory, isValidProjectDirectory };
19
18
  export { IPC_DATA_CHANNELS, IPC_CLAUDE_CHANNELS, IPC_AGENT_CHANNELS, IPC_DIFF_CHANNELS, IPC_SETTINGS_CHANNELS, IPC_AUDIT_LOG_CHANNELS, IPC_FILE_BROWSER_CHANNELS, IPC_COMMAND_CHANNELS, IPC_BACKGROUND_TASK_CHANNELS, IPC_SKILL_CHANNELS, IPC_CONTEXT_CLEAR_CHANNELS, IPC_LAYOUT_CHANNELS, IPC_AVATAR_CHANNELS, } from './ipc-channels.js';
20
- export { AgentDefinition, WorkflowDefinition, AGENT_DEFINITIONS, WORKFLOW_DEFINITIONS, buildAgentMenu, buildWorkflowMenu, buildToolsMenu, buildViewMenu, getMenuTemplate, } from './menu-builder.js';
19
+ export { AgentDefinition, WorkflowDefinition, AGENT_DEFINITIONS, WORKFLOW_DEFINITIONS, buildAgentMenu, buildWorkflowMenu, buildToolsMenu, buildViewMenu, getMenuTemplate, setPanelToggleBroadcast, } from './menu-builder.js';
21
20
  /**
22
21
  * Get list of registered data IPC channels (for testing)
23
22
  * Returns the data channels that setupDataIPCHandlers will register
@@ -329,138 +328,6 @@ export declare function getCommandChannels(): string[];
329
328
  export declare function setupCommandIPCHandlers(ipcMain: {
330
329
  handle: (channel: string, handler: (event: unknown, ...args: unknown[]) => Promise<unknown>) => void;
331
330
  }): void;
332
- /**
333
- * Result from processToolUseWithApproval
334
- */
335
- export interface ApprovalResult {
336
- needsApproval: boolean;
337
- passThrough: boolean;
338
- approved?: boolean;
339
- rejected?: boolean;
340
- errorMessage?: SDKToolResultError;
341
- }
342
- /**
343
- * Set the IPC sender function (for testing)
344
- */
345
- export declare function setIPCSender(sender: ((channel: string, data: unknown) => void) | null): void;
346
- /**
347
- * Set the tool executor function (for testing)
348
- */
349
- export declare function setToolExecutor(executor: ((message: ToolUseMessage) => void) | null): void;
350
- /**
351
- * Set the error injector function (for testing)
352
- */
353
- export declare function setErrorInjector(injector: ((error: SDKToolResultError) => void) | null): void;
354
- /**
355
- * Send an approval request to the renderer via IPC
356
- */
357
- export declare function sendApprovalRequest(toolId: string, toolName: string, context: Record<string, unknown>): void;
358
- /**
359
- * Handle permission response from renderer
360
- * Called by IPC handler when user responds to approval modal
361
- */
362
- export declare function handlePermissionResponse(response: {
363
- toolId: string;
364
- approved: boolean;
365
- grantScope?: 'once' | 'session' | 'always';
366
- }): void;
367
- /**
368
- * Process a tool_use message with approval gate check
369
- * This is the main integration point for story 33-7
370
- *
371
- * @param message - The tool_use message to process
372
- * @returns ApprovalResult indicating whether approval is needed and outcome
373
- */
374
- export declare function processToolUseWithApproval(message: ToolUseMessage): Promise<ApprovalResult>;
375
- /**
376
- * Set up IPC handlers for approval gate
377
- * Story 33-7: Handles permission request/response flow
378
- */
379
- export declare function setupApprovalIPCHandlers(ipcMain: {
380
- handle?: (channel: string, handler: (event: unknown, ...args: unknown[]) => Promise<unknown>) => void;
381
- on?: (channel: string, handler: (event: unknown, ...args: unknown[]) => void) => void;
382
- }): void;
383
- /**
384
- * Resolve a pending hook approval (called when user responds to modal)
385
- */
386
- export declare function resolveHookApproval(toolId: string, approved: boolean, grantScope?: 'once' | 'session' | 'always'): void;
387
- /**
388
- * Check if a tool_use is an interactive tool that needs data return
389
- * MSSCI-11947: AC1 - Detect AskUserQuestion and ExitPlanMode
390
- */
391
- export declare function isInteractiveToolUse(toolUse: {
392
- tool_name?: string;
393
- type?: string;
394
- }): boolean;
395
- /**
396
- * Process an interactive tool_use and wait for user response with data
397
- * MSSCI-11947: AC1 - Handle interactive tool approval flow
398
- */
399
- export declare function processInteractiveToolUse(toolUse: {
400
- tool_name?: string;
401
- tool_id?: string;
402
- input?: Record<string, unknown>;
403
- }): Promise<{
404
- decision: string;
405
- reason: string;
406
- data?: Record<string, unknown>;
407
- }>;
408
- /**
409
- * Resolve a pending hook approval with data (for interactive tools)
410
- * MSSCI-11947: AC1 - Extended resolve that includes data field
411
- */
412
- export declare function resolveHookApprovalWithData(toolId: string, approved: boolean, grantScope?: 'once' | 'session' | 'always', data?: Record<string, unknown>): void;
413
- /**
414
- * Format hook response with optional data field
415
- * MSSCI-11947: AC4 - Format response for hook output
416
- */
417
- export declare function formatHookResponseWithData(decision: 'allow' | 'deny', reason: string, data?: Record<string, unknown>): {
418
- decision: string;
419
- reason: string;
420
- data?: Record<string, unknown>;
421
- };
422
- /**
423
- * Format answers as updatedInput for AskUserQuestion
424
- * MSSCI-11947: AC4 - Format for hook updatedInput
425
- */
426
- export declare function formatUpdatedInputForAskUserQuestion(answers: Record<string, string | string[]>): {
427
- answers: Record<string, string | string[]>;
428
- };
429
- /**
430
- * Format plan response as updatedInput for ExitPlanMode
431
- * MSSCI-11947: AC4 - Format for hook updatedInput
432
- */
433
- export declare function formatUpdatedInputForExitPlanMode(response: {
434
- approved: boolean;
435
- feedback?: string;
436
- }): {
437
- approved: boolean;
438
- feedback?: string;
439
- };
440
- /**
441
- * Serialize approval data for transmission
442
- * MSSCI-11947: AC1 - JSON serialization helper
443
- */
444
- export declare function serializeApprovalData(data: Record<string, unknown>): string;
445
- /**
446
- * Deserialize approval data from transmission
447
- * MSSCI-11947: AC1 - JSON deserialization helper
448
- */
449
- export declare function deserializeApprovalData(data: string): Record<string, unknown>;
450
- /**
451
- * Start the approval hook server with dynamic port selection
452
- * Uses port 0 to let OS assign an available port (avoids race conditions)
453
- * Writes port to .cyclist-approval-port for hook discovery
454
- */
455
- export declare function startApprovalServer(): Promise<void>;
456
- /**
457
- * Stop the approval hook server and clean up port file
458
- */
459
- export declare function stopApprovalServer(): void;
460
- /**
461
- * Get the current approval server port (for testing)
462
- */
463
- export declare function getApprovalServerPort(): number | null;
464
331
  /**
465
332
  * Save session ID to file for persistence across app restarts
466
333
  * E7-3: Session persistence support
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}