forkoff 1.0.17 → 1.0.19

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 (158) hide show
  1. package/LICENSE +11 -7
  2. package/README.md +77 -118
  3. package/dist/approval.d.ts +1 -0
  4. package/dist/approval.js +9 -0
  5. package/dist/config.d.ts +3 -0
  6. package/dist/config.js +62 -16
  7. package/dist/crypto/e2eeManager.d.ts +49 -52
  8. package/dist/crypto/e2eeManager.js +256 -181
  9. package/dist/crypto/encryption.d.ts +8 -10
  10. package/dist/crypto/encryption.js +29 -94
  11. package/dist/crypto/index.d.ts +10 -0
  12. package/dist/crypto/index.js +22 -0
  13. package/dist/crypto/keyExchange.d.ts +6 -20
  14. package/dist/crypto/keyExchange.js +18 -110
  15. package/dist/crypto/keyGeneration.d.ts +2 -13
  16. package/dist/crypto/keyGeneration.js +14 -88
  17. package/dist/crypto/keyStorage.d.ts +32 -5
  18. package/dist/crypto/keyStorage.js +152 -8
  19. package/dist/crypto/sessionPersistence.d.ts +7 -13
  20. package/dist/crypto/sessionPersistence.js +108 -33
  21. package/dist/crypto/types.d.ts +24 -3
  22. package/dist/crypto/types.js +2 -1
  23. package/dist/crypto/websocketE2EE.d.ts +6 -17
  24. package/dist/crypto/websocketE2EE.js +21 -38
  25. package/dist/index.js +203 -280
  26. package/dist/integration.d.ts +0 -1
  27. package/dist/integration.js +2 -4
  28. package/dist/logger.d.ts +15 -0
  29. package/dist/logger.js +209 -1
  30. package/dist/server.d.ts +30 -0
  31. package/dist/server.js +162 -0
  32. package/dist/startup.js +15 -6
  33. package/dist/terminal.d.ts +1 -0
  34. package/dist/terminal.js +94 -1
  35. package/dist/tools/claude-process.d.ts +8 -0
  36. package/dist/tools/claude-process.js +199 -26
  37. package/dist/tools/claude-sessions.d.ts +1 -0
  38. package/dist/tools/claude-sessions.js +36 -10
  39. package/dist/tools/detector.js +11 -3
  40. package/dist/tools/permission-hook.js +94 -27
  41. package/dist/tools/permission-ipc.d.ts +1 -0
  42. package/dist/tools/permission-ipc.js +61 -14
  43. package/dist/transcript-streamer.d.ts +1 -0
  44. package/dist/transcript-streamer.js +18 -4
  45. package/dist/usage-tracker.d.ts +45 -0
  46. package/dist/usage-tracker.js +243 -0
  47. package/dist/websocket.d.ts +43 -12
  48. package/dist/websocket.js +418 -214
  49. package/package.json +5 -4
  50. package/dist/__tests__/cli-commands.test.d.ts +0 -6
  51. package/dist/__tests__/cli-commands.test.d.ts.map +0 -1
  52. package/dist/__tests__/cli-commands.test.js +0 -213
  53. package/dist/__tests__/cli-commands.test.js.map +0 -1
  54. package/dist/__tests__/crypto/e2e-integration.test.d.ts +0 -17
  55. package/dist/__tests__/crypto/e2e-integration.test.d.ts.map +0 -1
  56. package/dist/__tests__/crypto/e2e-integration.test.js +0 -338
  57. package/dist/__tests__/crypto/e2e-integration.test.js.map +0 -1
  58. package/dist/__tests__/crypto/e2eeManager.test.d.ts +0 -2
  59. package/dist/__tests__/crypto/e2eeManager.test.d.ts.map +0 -1
  60. package/dist/__tests__/crypto/e2eeManager.test.js +0 -242
  61. package/dist/__tests__/crypto/e2eeManager.test.js.map +0 -1
  62. package/dist/__tests__/crypto/encryption.test.d.ts +0 -2
  63. package/dist/__tests__/crypto/encryption.test.d.ts.map +0 -1
  64. package/dist/__tests__/crypto/encryption.test.js +0 -116
  65. package/dist/__tests__/crypto/encryption.test.js.map +0 -1
  66. package/dist/__tests__/crypto/keyExchange.test.d.ts +0 -2
  67. package/dist/__tests__/crypto/keyExchange.test.d.ts.map +0 -1
  68. package/dist/__tests__/crypto/keyExchange.test.js +0 -84
  69. package/dist/__tests__/crypto/keyExchange.test.js.map +0 -1
  70. package/dist/__tests__/crypto/keyGeneration.test.d.ts +0 -2
  71. package/dist/__tests__/crypto/keyGeneration.test.d.ts.map +0 -1
  72. package/dist/__tests__/crypto/keyGeneration.test.js +0 -61
  73. package/dist/__tests__/crypto/keyGeneration.test.js.map +0 -1
  74. package/dist/__tests__/crypto/keyStorage.test.d.ts +0 -2
  75. package/dist/__tests__/crypto/keyStorage.test.d.ts.map +0 -1
  76. package/dist/__tests__/crypto/keyStorage.test.js +0 -133
  77. package/dist/__tests__/crypto/keyStorage.test.js.map +0 -1
  78. package/dist/__tests__/crypto/websocketIntegration.test.d.ts +0 -2
  79. package/dist/__tests__/crypto/websocketIntegration.test.d.ts.map +0 -1
  80. package/dist/__tests__/crypto/websocketIntegration.test.js +0 -259
  81. package/dist/__tests__/crypto/websocketIntegration.test.js.map +0 -1
  82. package/dist/__tests__/startup.test.d.ts +0 -11
  83. package/dist/__tests__/startup.test.d.ts.map +0 -1
  84. package/dist/__tests__/startup.test.js +0 -241
  85. package/dist/__tests__/startup.test.js.map +0 -1
  86. package/dist/__tests__/tools/claude-process.test.d.ts +0 -8
  87. package/dist/__tests__/tools/claude-process.test.d.ts.map +0 -1
  88. package/dist/__tests__/tools/claude-process.test.js +0 -430
  89. package/dist/__tests__/tools/claude-process.test.js.map +0 -1
  90. package/dist/__tests__/tools/permission-hook.test.d.ts +0 -17
  91. package/dist/__tests__/tools/permission-hook.test.d.ts.map +0 -1
  92. package/dist/__tests__/tools/permission-hook.test.js +0 -616
  93. package/dist/__tests__/tools/permission-hook.test.js.map +0 -1
  94. package/dist/__tests__/tools/permission-ipc.test.d.ts +0 -11
  95. package/dist/__tests__/tools/permission-ipc.test.d.ts.map +0 -1
  96. package/dist/__tests__/tools/permission-ipc.test.js +0 -612
  97. package/dist/__tests__/tools/permission-ipc.test.js.map +0 -1
  98. package/dist/__tests__/websocket.test.d.ts +0 -13
  99. package/dist/__tests__/websocket.test.d.ts.map +0 -1
  100. package/dist/__tests__/websocket.test.js +0 -204
  101. package/dist/__tests__/websocket.test.js.map +0 -1
  102. package/dist/api.d.ts +0 -44
  103. package/dist/api.d.ts.map +0 -1
  104. package/dist/api.js +0 -76
  105. package/dist/api.js.map +0 -1
  106. package/dist/approval.d.ts.map +0 -1
  107. package/dist/approval.js.map +0 -1
  108. package/dist/config.d.ts.map +0 -1
  109. package/dist/config.js.map +0 -1
  110. package/dist/crypto/e2eeManager.d.ts.map +0 -1
  111. package/dist/crypto/e2eeManager.js.map +0 -1
  112. package/dist/crypto/encryption.d.ts.map +0 -1
  113. package/dist/crypto/encryption.js.map +0 -1
  114. package/dist/crypto/keyExchange.d.ts.map +0 -1
  115. package/dist/crypto/keyExchange.js.map +0 -1
  116. package/dist/crypto/keyGeneration.d.ts.map +0 -1
  117. package/dist/crypto/keyGeneration.js.map +0 -1
  118. package/dist/crypto/keyStorage.d.ts.map +0 -1
  119. package/dist/crypto/keyStorage.js.map +0 -1
  120. package/dist/crypto/sessionPersistence.d.ts.map +0 -1
  121. package/dist/crypto/sessionPersistence.js.map +0 -1
  122. package/dist/crypto/types.d.ts.map +0 -1
  123. package/dist/crypto/types.js.map +0 -1
  124. package/dist/crypto/websocketE2EE.d.ts.map +0 -1
  125. package/dist/crypto/websocketE2EE.js.map +0 -1
  126. package/dist/index.d.ts.map +0 -1
  127. package/dist/index.js.map +0 -1
  128. package/dist/integration.d.ts.map +0 -1
  129. package/dist/integration.js.map +0 -1
  130. package/dist/logger.d.ts.map +0 -1
  131. package/dist/logger.js.map +0 -1
  132. package/dist/startup.d.ts.map +0 -1
  133. package/dist/startup.js.map +0 -1
  134. package/dist/terminal.d.ts.map +0 -1
  135. package/dist/terminal.js.map +0 -1
  136. package/dist/tools/__tests__/claude-sessions.test.d.ts +0 -2
  137. package/dist/tools/__tests__/claude-sessions.test.d.ts.map +0 -1
  138. package/dist/tools/__tests__/claude-sessions.test.js +0 -306
  139. package/dist/tools/__tests__/claude-sessions.test.js.map +0 -1
  140. package/dist/tools/claude-hooks.d.ts.map +0 -1
  141. package/dist/tools/claude-hooks.js.map +0 -1
  142. package/dist/tools/claude-process.d.ts.map +0 -1
  143. package/dist/tools/claude-process.js.map +0 -1
  144. package/dist/tools/claude-sessions.d.ts.map +0 -1
  145. package/dist/tools/claude-sessions.js.map +0 -1
  146. package/dist/tools/detector.d.ts.map +0 -1
  147. package/dist/tools/detector.js.map +0 -1
  148. package/dist/tools/index.d.ts.map +0 -1
  149. package/dist/tools/index.js.map +0 -1
  150. package/dist/tools/permission-hook.d.ts.map +0 -1
  151. package/dist/tools/permission-hook.js.map +0 -1
  152. package/dist/tools/permission-ipc.d.ts.map +0 -1
  153. package/dist/tools/permission-ipc.js.map +0 -1
  154. package/dist/transcript-streamer.d.ts.map +0 -1
  155. package/dist/transcript-streamer.js.map +0 -1
  156. package/dist/websocket.d.ts.map +0 -1
  157. package/dist/websocket.js.map +0 -1
  158. package/jest.config.js +0 -18
@@ -1,241 +0,0 @@
1
- "use strict";
2
- /**
3
- * Tests for startup module
4
- * Covers:
5
- * - Windows: .bat wrapper + HKCU Run registry key (no admin needed)
6
- * - macOS: plist with explicit node path (nvm/fnm compatibility)
7
- * - disableStartup cleans up .bat file on Windows
8
- * - isStartupRegistered checks registry (win32) / plist existence (darwin)
9
- * - getBinaryPath: cached, which/where, fallback to process.argv[1]
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const mockExecSync = jest.fn();
13
- jest.mock('child_process', () => ({
14
- execSync: mockExecSync,
15
- }));
16
- const mockExistsSync = jest.fn();
17
- const mockWriteFileSync = jest.fn();
18
- const mockUnlinkSync = jest.fn();
19
- const mockMkdirSync = jest.fn();
20
- jest.mock('fs', () => ({
21
- existsSync: mockExistsSync,
22
- writeFileSync: mockWriteFileSync,
23
- unlinkSync: mockUnlinkSync,
24
- mkdirSync: mockMkdirSync,
25
- }));
26
- const mockConfig = {
27
- startupBinaryPath: null,
28
- startupEnabled: null,
29
- };
30
- jest.mock('../config', () => ({
31
- config: mockConfig,
32
- }));
33
- const startup_1 = require("../startup");
34
- describe('startup', () => {
35
- const originalPlatform = process.platform;
36
- const originalExecPath = process.execPath;
37
- const originalArgv = [...process.argv];
38
- function setPlatform(platform) {
39
- Object.defineProperty(process, 'platform', { value: platform, configurable: true });
40
- }
41
- beforeEach(() => {
42
- // resetAllMocks clears calls AND implementations (unlike clearAllMocks)
43
- jest.resetAllMocks();
44
- mockConfig.startupBinaryPath = null;
45
- mockConfig.startupEnabled = null;
46
- mockExistsSync.mockReturnValue(false);
47
- });
48
- afterEach(() => {
49
- Object.defineProperty(process, 'platform', { value: originalPlatform, configurable: true });
50
- Object.defineProperty(process, 'execPath', { value: originalExecPath, configurable: true });
51
- process.argv = [...originalArgv];
52
- });
53
- describe('getBinaryPath', () => {
54
- it('returns cached path when it exists on disk', () => {
55
- mockConfig.startupBinaryPath = '/usr/local/bin/forkoff';
56
- mockExistsSync.mockReturnValue(true);
57
- expect((0, startup_1.getBinaryPath)()).toBe('/usr/local/bin/forkoff');
58
- expect(mockExecSync).not.toHaveBeenCalled();
59
- });
60
- it('finds via which on darwin', () => {
61
- setPlatform('darwin');
62
- mockConfig.startupBinaryPath = null;
63
- mockExecSync.mockReturnValue('/usr/local/bin/forkoff\n');
64
- // startupBinaryPath is null → short-circuit, existsSync NOT called for cache.
65
- // First existsSync call is for the which result → return true.
66
- mockExistsSync.mockReturnValueOnce(true);
67
- expect((0, startup_1.getBinaryPath)()).toBe('/usr/local/bin/forkoff');
68
- expect(mockExecSync).toHaveBeenCalledWith('which forkoff', { encoding: 'utf-8' });
69
- expect(mockConfig.startupBinaryPath).toBe('/usr/local/bin/forkoff');
70
- });
71
- it('finds via where on win32', () => {
72
- setPlatform('win32');
73
- mockConfig.startupBinaryPath = null;
74
- mockExecSync.mockReturnValue('C:\\Program Files\\nodejs\\forkoff\r\n');
75
- mockExistsSync.mockReturnValueOnce(true);
76
- expect((0, startup_1.getBinaryPath)()).toBe('C:\\Program Files\\nodejs\\forkoff');
77
- expect(mockExecSync).toHaveBeenCalledWith('where forkoff', { encoding: 'utf-8' });
78
- });
79
- it('falls back to process.argv[1] when which/where fails', () => {
80
- setPlatform('darwin');
81
- mockConfig.startupBinaryPath = null;
82
- mockExecSync.mockImplementation(() => { throw new Error('not found'); });
83
- process.argv = ['node', '/home/user/.nvm/versions/node/bin/forkoff'];
84
- expect((0, startup_1.getBinaryPath)()).toBe('/home/user/.nvm/versions/node/bin/forkoff');
85
- expect(mockConfig.startupBinaryPath).toBe('/home/user/.nvm/versions/node/bin/forkoff');
86
- });
87
- it('throws when no binary can be found', () => {
88
- mockConfig.startupBinaryPath = null;
89
- mockExecSync.mockImplementation(() => { throw new Error('not found'); });
90
- process.argv = ['node']; // No argv[1]
91
- expect(() => (0, startup_1.getBinaryPath)()).toThrow('Could not determine forkoff binary path');
92
- });
93
- });
94
- describe('isStartupRegistered', () => {
95
- it('returns true on win32 when registry key exists', () => {
96
- setPlatform('win32');
97
- mockExecSync.mockReturnValue('');
98
- expect((0, startup_1.isStartupRegistered)()).toBe(true);
99
- expect(mockExecSync).toHaveBeenCalledWith(expect.stringContaining('reg query'), { stdio: 'pipe' });
100
- });
101
- it('returns false on win32 when registry key missing', () => {
102
- setPlatform('win32');
103
- mockExecSync.mockImplementation(() => { throw new Error('not found'); });
104
- expect((0, startup_1.isStartupRegistered)()).toBe(false);
105
- });
106
- it('returns true on darwin when plist file exists', () => {
107
- setPlatform('darwin');
108
- mockExistsSync.mockReturnValue(true);
109
- expect((0, startup_1.isStartupRegistered)()).toBe(true);
110
- });
111
- it('returns false on darwin when plist file does not exist', () => {
112
- setPlatform('darwin');
113
- mockExistsSync.mockReturnValue(false);
114
- expect((0, startup_1.isStartupRegistered)()).toBe(false);
115
- });
116
- it('returns false on unsupported platform', () => {
117
- setPlatform('linux');
118
- expect((0, startup_1.isStartupRegistered)()).toBe(false);
119
- });
120
- });
121
- describe('enableStartup (win32)', () => {
122
- beforeEach(() => {
123
- setPlatform('win32');
124
- Object.defineProperty(process, 'execPath', {
125
- value: 'C:\\Program Files\\nodejs\\node.exe',
126
- configurable: true,
127
- });
128
- mockConfig.startupBinaryPath = 'C:\\Users\\test\\AppData\\Roaming\\npm\\forkoff';
129
- mockExistsSync.mockReturnValue(true);
130
- });
131
- it('writes .vbs wrapper using .cmd shim with hidden window', async () => {
132
- // .cmd shim exists alongside the shell shim
133
- mockExistsSync.mockImplementation((p) => {
134
- if (typeof p === 'string' && p.endsWith('.cmd'))
135
- return true;
136
- return true; // default true for other checks
137
- });
138
- await (0, startup_1.enableStartup)();
139
- const vbsCall = mockWriteFileSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].endsWith('startup.vbs'));
140
- expect(vbsCall).toBeDefined();
141
- const vbsContent = vbsCall[1];
142
- expect(vbsContent).toContain('WScript.Shell');
143
- expect(vbsContent).toContain('.cmd');
144
- expect(vbsContent).toContain('connect --quiet');
145
- // windowStyle 0 = hidden, False = don't wait
146
- expect(vbsContent).toContain(', 0, False');
147
- });
148
- it('adds registry Run key with .vbs path', async () => {
149
- await (0, startup_1.enableStartup)();
150
- const regCall = mockExecSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].includes('reg add'));
151
- expect(regCall).toBeDefined();
152
- expect(regCall[0]).toContain('startup.vbs');
153
- expect(regCall[0]).toContain('ForkOffCLI');
154
- });
155
- it('sets config.startupEnabled = true', async () => {
156
- await (0, startup_1.enableStartup)();
157
- expect(mockConfig.startupEnabled).toBe(true);
158
- });
159
- });
160
- describe('enableStartup (darwin)', () => {
161
- beforeEach(() => {
162
- setPlatform('darwin');
163
- Object.defineProperty(process, 'execPath', {
164
- value: '/Users/test/.nvm/versions/node/v20.0.0/bin/node',
165
- configurable: true,
166
- });
167
- mockConfig.startupBinaryPath = '/usr/local/bin/forkoff';
168
- mockExistsSync.mockReturnValue(true);
169
- });
170
- it('writes plist with process.execPath as first ProgramArgument', async () => {
171
- await (0, startup_1.enableStartup)();
172
- const plistCall = mockWriteFileSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].endsWith('.plist'));
173
- expect(plistCall).toBeDefined();
174
- const plistContent = plistCall[1];
175
- const argsMatch = plistContent.match(/<array>([\s\S]*?)<\/array>/);
176
- expect(argsMatch).toBeDefined();
177
- const strings = [...argsMatch[1].matchAll(/<string>(.*?)<\/string>/g)].map(m => m[1]);
178
- expect(strings[0]).toBe('/Users/test/.nvm/versions/node/v20.0.0/bin/node');
179
- expect(strings[1]).toBe('/usr/local/bin/forkoff');
180
- expect(strings[2]).toBe('connect');
181
- expect(strings[3]).toBe('--quiet');
182
- });
183
- it('includes node directory in PATH when not in default PATH', async () => {
184
- await (0, startup_1.enableStartup)();
185
- const plistCall = mockWriteFileSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].endsWith('.plist'));
186
- const plistContent = plistCall[1];
187
- expect(plistContent).toContain('/Users/test/.nvm/versions/node/v20.0.0/bin:');
188
- });
189
- it('calls launchctl load', async () => {
190
- await (0, startup_1.enableStartup)();
191
- const loadCall = mockExecSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].includes('launchctl load'));
192
- expect(loadCall).toBeDefined();
193
- });
194
- it('sets config.startupEnabled = true', async () => {
195
- await (0, startup_1.enableStartup)();
196
- expect(mockConfig.startupEnabled).toBe(true);
197
- });
198
- });
199
- describe('disableStartup (win32)', () => {
200
- beforeEach(() => {
201
- setPlatform('win32');
202
- });
203
- it('removes registry Run key', async () => {
204
- await (0, startup_1.disableStartup)();
205
- const regCall = mockExecSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].includes('reg delete'));
206
- expect(regCall).toBeDefined();
207
- expect(regCall[0]).toContain('ForkOffCLI');
208
- });
209
- it('removes startup scripts if they exist', async () => {
210
- mockExistsSync.mockReturnValue(true);
211
- await (0, startup_1.disableStartup)();
212
- expect(mockUnlinkSync).toHaveBeenCalledWith(expect.stringContaining('startup.vbs'));
213
- });
214
- it('sets config.startupEnabled = false', async () => {
215
- await (0, startup_1.disableStartup)();
216
- expect(mockConfig.startupEnabled).toBe(false);
217
- });
218
- });
219
- describe('disableStartup (darwin)', () => {
220
- beforeEach(() => {
221
- setPlatform('darwin');
222
- });
223
- it('calls launchctl unload and removes plist when it exists', async () => {
224
- mockExistsSync.mockReturnValue(true);
225
- await (0, startup_1.disableStartup)();
226
- const unloadCall = mockExecSync.mock.calls.find((call) => typeof call[0] === 'string' && call[0].includes('launchctl unload'));
227
- expect(unloadCall).toBeDefined();
228
- expect(mockUnlinkSync).toHaveBeenCalledWith(expect.stringContaining('.plist'));
229
- });
230
- it('does nothing when plist does not exist', async () => {
231
- mockExistsSync.mockReturnValue(false);
232
- await (0, startup_1.disableStartup)();
233
- expect(mockUnlinkSync).not.toHaveBeenCalled();
234
- });
235
- it('sets config.startupEnabled = false', async () => {
236
- await (0, startup_1.disableStartup)();
237
- expect(mockConfig.startupEnabled).toBe(false);
238
- });
239
- });
240
- });
241
- //# sourceMappingURL=startup.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup.test.js","sourceRoot":"","sources":["../../src/__tests__/startup.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Tests for Claude Process Manager
3
- * Covers:
4
- * - Bug 1: dangerouslySkipPermissions threading through startSession, resumeSession, sendInput, registerSession
5
- * - Bug 2: tool_activity event instead of claude_approval_request for SDK tool_use, disabled regex approval, guarded stdin writes
6
- */
7
- export {};
8
- //# sourceMappingURL=claude-process.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-process.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/tools/claude-process.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}