@abdasis/agentdeck 2.44.2

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 (196) hide show
  1. package/README.md +122 -0
  2. package/agent/dist/config.d.ts +31 -0
  3. package/agent/dist/config.d.ts.map +1 -0
  4. package/agent/dist/config.js +81 -0
  5. package/agent/dist/config.js.map +1 -0
  6. package/agent/dist/db/commands.d.ts +25 -0
  7. package/agent/dist/db/commands.d.ts.map +1 -0
  8. package/agent/dist/db/commands.js +93 -0
  9. package/agent/dist/db/commands.js.map +1 -0
  10. package/agent/dist/db/index.d.ts +30 -0
  11. package/agent/dist/db/index.d.ts.map +1 -0
  12. package/agent/dist/db/index.js +368 -0
  13. package/agent/dist/db/index.js.map +1 -0
  14. package/agent/dist/db/schema.d.ts +74 -0
  15. package/agent/dist/db/schema.d.ts.map +1 -0
  16. package/agent/dist/db/schema.js +100 -0
  17. package/agent/dist/db/schema.js.map +1 -0
  18. package/agent/dist/db/sessions.d.ts +46 -0
  19. package/agent/dist/db/sessions.d.ts.map +1 -0
  20. package/agent/dist/db/sessions.js +198 -0
  21. package/agent/dist/db/sessions.js.map +1 -0
  22. package/agent/dist/index.d.ts +2 -0
  23. package/agent/dist/index.d.ts.map +1 -0
  24. package/agent/dist/index.js +19 -0
  25. package/agent/dist/index.js.map +1 -0
  26. package/agent/dist/lib/command-session.d.ts +20 -0
  27. package/agent/dist/lib/command-session.d.ts.map +1 -0
  28. package/agent/dist/lib/command-session.js +64 -0
  29. package/agent/dist/lib/command-session.js.map +1 -0
  30. package/agent/dist/lib/git.d.ts +8 -0
  31. package/agent/dist/lib/git.d.ts.map +1 -0
  32. package/agent/dist/lib/git.js +194 -0
  33. package/agent/dist/lib/git.js.map +1 -0
  34. package/agent/dist/lib/init-script.d.ts +33 -0
  35. package/agent/dist/lib/init-script.d.ts.map +1 -0
  36. package/agent/dist/lib/init-script.js +523 -0
  37. package/agent/dist/lib/init-script.js.map +1 -0
  38. package/agent/dist/lib/transcript.d.ts +16 -0
  39. package/agent/dist/lib/transcript.d.ts.map +1 -0
  40. package/agent/dist/lib/transcript.js +64 -0
  41. package/agent/dist/lib/transcript.js.map +1 -0
  42. package/agent/dist/logger.d.ts +12 -0
  43. package/agent/dist/logger.d.ts.map +1 -0
  44. package/agent/dist/logger.js +39 -0
  45. package/agent/dist/logger.js.map +1 -0
  46. package/agent/dist/middleware/auth.d.ts +15 -0
  47. package/agent/dist/middleware/auth.d.ts.map +1 -0
  48. package/agent/dist/middleware/auth.js +55 -0
  49. package/agent/dist/middleware/auth.js.map +1 -0
  50. package/agent/dist/routes/commands.d.ts +8 -0
  51. package/agent/dist/routes/commands.d.ts.map +1 -0
  52. package/agent/dist/routes/commands.js +229 -0
  53. package/agent/dist/routes/commands.js.map +1 -0
  54. package/agent/dist/routes/files.d.ts +7 -0
  55. package/agent/dist/routes/files.d.ts.map +1 -0
  56. package/agent/dist/routes/files.js +206 -0
  57. package/agent/dist/routes/files.js.map +1 -0
  58. package/agent/dist/routes/hooks.d.ts +7 -0
  59. package/agent/dist/routes/hooks.d.ts.map +1 -0
  60. package/agent/dist/routes/hooks.js +147 -0
  61. package/agent/dist/routes/hooks.js.map +1 -0
  62. package/agent/dist/routes/index.d.ts +10 -0
  63. package/agent/dist/routes/index.d.ts.map +1 -0
  64. package/agent/dist/routes/index.js +10 -0
  65. package/agent/dist/routes/index.js.map +1 -0
  66. package/agent/dist/routes/pair.d.ts +26 -0
  67. package/agent/dist/routes/pair.d.ts.map +1 -0
  68. package/agent/dist/routes/pair.js +384 -0
  69. package/agent/dist/routes/pair.js.map +1 -0
  70. package/agent/dist/routes/projects.d.ts +6 -0
  71. package/agent/dist/routes/projects.d.ts.map +1 -0
  72. package/agent/dist/routes/projects.js +121 -0
  73. package/agent/dist/routes/projects.js.map +1 -0
  74. package/agent/dist/routes/sessions-git.d.ts +7 -0
  75. package/agent/dist/routes/sessions-git.d.ts.map +1 -0
  76. package/agent/dist/routes/sessions-git.js +31 -0
  77. package/agent/dist/routes/sessions-git.js.map +1 -0
  78. package/agent/dist/routes/sessions-tmux.d.ts +7 -0
  79. package/agent/dist/routes/sessions-tmux.d.ts.map +1 -0
  80. package/agent/dist/routes/sessions-tmux.js +94 -0
  81. package/agent/dist/routes/sessions-tmux.js.map +1 -0
  82. package/agent/dist/routes/sessions.d.ts +7 -0
  83. package/agent/dist/routes/sessions.d.ts.map +1 -0
  84. package/agent/dist/routes/sessions.js +172 -0
  85. package/agent/dist/routes/sessions.js.map +1 -0
  86. package/agent/dist/server.d.ts +6 -0
  87. package/agent/dist/server.d.ts.map +1 -0
  88. package/agent/dist/server.js +95 -0
  89. package/agent/dist/server.js.map +1 -0
  90. package/agent/dist/terminal.d.ts +19 -0
  91. package/agent/dist/terminal.d.ts.map +1 -0
  92. package/agent/dist/terminal.js +175 -0
  93. package/agent/dist/terminal.js.map +1 -0
  94. package/agent/dist/updater.d.ts +18 -0
  95. package/agent/dist/updater.d.ts.map +1 -0
  96. package/agent/dist/updater.js +122 -0
  97. package/agent/dist/updater.js.map +1 -0
  98. package/agent/dist/version.d.ts +20 -0
  99. package/agent/dist/version.d.ts.map +1 -0
  100. package/agent/dist/version.js +66 -0
  101. package/agent/dist/version.js.map +1 -0
  102. package/agent/dist/websocket-handlers.d.ts +38 -0
  103. package/agent/dist/websocket-handlers.d.ts.map +1 -0
  104. package/agent/dist/websocket-handlers.js +389 -0
  105. package/agent/dist/websocket-handlers.js.map +1 -0
  106. package/agent/node_modules/@agentdeck/shared/dist/index.d.ts +2 -0
  107. package/agent/node_modules/@agentdeck/shared/dist/index.d.ts.map +1 -0
  108. package/agent/node_modules/@agentdeck/shared/dist/index.js +2 -0
  109. package/agent/node_modules/@agentdeck/shared/dist/index.js.map +1 -0
  110. package/agent/node_modules/@agentdeck/shared/dist/types/index.d.ts +235 -0
  111. package/agent/node_modules/@agentdeck/shared/dist/types/index.d.ts.map +1 -0
  112. package/agent/node_modules/@agentdeck/shared/dist/types/index.js +5 -0
  113. package/agent/node_modules/@agentdeck/shared/dist/types/index.js.map +1 -0
  114. package/agent/node_modules/@agentdeck/shared/package.json +29 -0
  115. package/dist/commands/doctor.d.ts +3 -0
  116. package/dist/commands/doctor.d.ts.map +1 -0
  117. package/dist/commands/doctor.js +304 -0
  118. package/dist/commands/doctor.js.map +1 -0
  119. package/dist/commands/hooks.d.ts +3 -0
  120. package/dist/commands/hooks.d.ts.map +1 -0
  121. package/dist/commands/hooks.js +187 -0
  122. package/dist/commands/hooks.js.map +1 -0
  123. package/dist/commands/init.d.ts +3 -0
  124. package/dist/commands/init.d.ts.map +1 -0
  125. package/dist/commands/init.js +109 -0
  126. package/dist/commands/init.js.map +1 -0
  127. package/dist/commands/logs.d.ts +3 -0
  128. package/dist/commands/logs.d.ts.map +1 -0
  129. package/dist/commands/logs.js +38 -0
  130. package/dist/commands/logs.js.map +1 -0
  131. package/dist/commands/profile.d.ts +3 -0
  132. package/dist/commands/profile.d.ts.map +1 -0
  133. package/dist/commands/profile.js +156 -0
  134. package/dist/commands/profile.js.map +1 -0
  135. package/dist/commands/service.d.ts +3 -0
  136. package/dist/commands/service.d.ts.map +1 -0
  137. package/dist/commands/service.js +235 -0
  138. package/dist/commands/service.js.map +1 -0
  139. package/dist/commands/start.d.ts +3 -0
  140. package/dist/commands/start.d.ts.map +1 -0
  141. package/dist/commands/start.js +122 -0
  142. package/dist/commands/start.js.map +1 -0
  143. package/dist/commands/status.d.ts +3 -0
  144. package/dist/commands/status.d.ts.map +1 -0
  145. package/dist/commands/status.js +48 -0
  146. package/dist/commands/status.js.map +1 -0
  147. package/dist/commands/stop.d.ts +3 -0
  148. package/dist/commands/stop.d.ts.map +1 -0
  149. package/dist/commands/stop.js +23 -0
  150. package/dist/commands/stop.js.map +1 -0
  151. package/dist/commands/update.d.ts +3 -0
  152. package/dist/commands/update.d.ts.map +1 -0
  153. package/dist/commands/update.js +129 -0
  154. package/dist/commands/update.js.map +1 -0
  155. package/dist/commands/version.d.ts +3 -0
  156. package/dist/commands/version.d.ts.map +1 -0
  157. package/dist/commands/version.js +39 -0
  158. package/dist/commands/version.js.map +1 -0
  159. package/dist/index.d.ts +5 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +45 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/lib/config.d.ts +68 -0
  164. package/dist/lib/config.d.ts.map +1 -0
  165. package/dist/lib/config.js +156 -0
  166. package/dist/lib/config.js.map +1 -0
  167. package/dist/lib/hooks.d.ts +67 -0
  168. package/dist/lib/hooks.d.ts.map +1 -0
  169. package/dist/lib/hooks.js +353 -0
  170. package/dist/lib/hooks.js.map +1 -0
  171. package/dist/lib/paths.d.ts +36 -0
  172. package/dist/lib/paths.d.ts.map +1 -0
  173. package/dist/lib/paths.js +77 -0
  174. package/dist/lib/paths.js.map +1 -0
  175. package/dist/lib/prerequisites.d.ts +60 -0
  176. package/dist/lib/prerequisites.d.ts.map +1 -0
  177. package/dist/lib/prerequisites.js +266 -0
  178. package/dist/lib/prerequisites.js.map +1 -0
  179. package/dist/lib/process.d.ts +40 -0
  180. package/dist/lib/process.d.ts.map +1 -0
  181. package/dist/lib/process.js +192 -0
  182. package/dist/lib/process.js.map +1 -0
  183. package/dist/service/index.d.ts +44 -0
  184. package/dist/service/index.d.ts.map +1 -0
  185. package/dist/service/index.js +18 -0
  186. package/dist/service/index.js.map +1 -0
  187. package/dist/service/launchd.d.ts +18 -0
  188. package/dist/service/launchd.d.ts.map +1 -0
  189. package/dist/service/launchd.js +208 -0
  190. package/dist/service/launchd.js.map +1 -0
  191. package/dist/service/systemd.d.ts +18 -0
  192. package/dist/service/systemd.d.ts.map +1 -0
  193. package/dist/service/systemd.js +196 -0
  194. package/dist/service/systemd.js.map +1 -0
  195. package/hooks/notify-agentdeck.sh +53 -0
  196. package/package.json +83 -0
@@ -0,0 +1,156 @@
1
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, unlinkSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { randomUUID, randomBytes } from 'crypto';
4
+ import { getAgentPaths, ensureDirectories } from './paths.js';
5
+ const DEFAULT_CONFIG = {
6
+ machine: {
7
+ id: '',
8
+ name: '',
9
+ },
10
+ agent: {
11
+ port: 4678,
12
+ },
13
+ projects: {
14
+ basePath: '~/Dev',
15
+ whitelist: [],
16
+ },
17
+ editor: {
18
+ enabled: false,
19
+ portRange: { start: 4680, end: 4699 },
20
+ idleTimeout: 1800000,
21
+ },
22
+ };
23
+ /**
24
+ * Get the profiles directory path
25
+ */
26
+ export function getProfilesDir() {
27
+ const paths = getAgentPaths();
28
+ return join(paths.configDir, 'profiles');
29
+ }
30
+ /**
31
+ * Get the config file path for a specific profile
32
+ * @param profileName - Profile name, or undefined/null/'default' for default config
33
+ */
34
+ export function getProfilePath(profileName) {
35
+ const paths = getAgentPaths();
36
+ if (!profileName || profileName === 'default') {
37
+ return paths.configPath;
38
+ }
39
+ return join(getProfilesDir(), `${profileName}.json`);
40
+ }
41
+ /**
42
+ * List all available profiles
43
+ */
44
+ export function listProfiles() {
45
+ const paths = getAgentPaths();
46
+ const profilesDir = getProfilesDir();
47
+ const profiles = [];
48
+ // Add default profile if it exists
49
+ if (existsSync(paths.configPath)) {
50
+ profiles.push('default');
51
+ }
52
+ // Add named profiles
53
+ if (existsSync(profilesDir)) {
54
+ const files = readdirSync(profilesDir);
55
+ for (const file of files) {
56
+ if (file.endsWith('.json')) {
57
+ profiles.push(file.replace('.json', ''));
58
+ }
59
+ }
60
+ }
61
+ return profiles;
62
+ }
63
+ /**
64
+ * Check if a profile exists
65
+ */
66
+ export function profileExists(profileName) {
67
+ const configPath = getProfilePath(profileName);
68
+ return existsSync(configPath);
69
+ }
70
+ /**
71
+ * Delete a profile
72
+ */
73
+ export function deleteProfile(profileName) {
74
+ if (!profileName || profileName === 'default') {
75
+ throw new Error('Cannot delete default profile');
76
+ }
77
+ const configPath = getProfilePath(profileName);
78
+ if (!existsSync(configPath)) {
79
+ return false;
80
+ }
81
+ unlinkSync(configPath);
82
+ return true;
83
+ }
84
+ /**
85
+ * Load configuration from ~/.agentdeck/config.json or a profile
86
+ * @param profileName - Profile name to load, or undefined for default
87
+ */
88
+ export function loadConfig(profileName) {
89
+ const configPath = getProfilePath(profileName);
90
+ if (!existsSync(configPath)) {
91
+ return null;
92
+ }
93
+ try {
94
+ const content = readFileSync(configPath, 'utf-8');
95
+ const config = JSON.parse(content);
96
+ // Apply environment overrides
97
+ if (process.env.AGENTDECK_PORT) {
98
+ config.agent.port = parseInt(process.env.AGENTDECK_PORT, 10);
99
+ }
100
+ if (process.env.AGENTDECK_PROJECTS) {
101
+ config.projects.basePath = process.env.AGENTDECK_PROJECTS;
102
+ }
103
+ return config;
104
+ }
105
+ catch (err) {
106
+ console.error(`Failed to load config: ${err.message}`);
107
+ return null;
108
+ }
109
+ }
110
+ /**
111
+ * Save configuration to ~/.agentdeck/config.json or a profile
112
+ * @param config - Configuration to save
113
+ * @param profileName - Profile name to save to, or undefined for default
114
+ */
115
+ export function saveConfig(config, profileName) {
116
+ const configPath = getProfilePath(profileName);
117
+ ensureDirectories();
118
+ // Ensure profiles directory exists for named profiles
119
+ if (profileName && profileName !== 'default') {
120
+ const profilesDir = getProfilesDir();
121
+ if (!existsSync(profilesDir)) {
122
+ mkdirSync(profilesDir, { recursive: true });
123
+ }
124
+ }
125
+ const content = JSON.stringify(config, null, 2);
126
+ writeFileSync(configPath, content, 'utf-8');
127
+ }
128
+ /**
129
+ * Create a new configuration with defaults
130
+ */
131
+ export function createConfig(options) {
132
+ return {
133
+ ...DEFAULT_CONFIG,
134
+ machine: {
135
+ id: randomUUID(),
136
+ name: options.machineName,
137
+ },
138
+ agent: {
139
+ port: options.port ?? DEFAULT_CONFIG.agent.port,
140
+ accessToken: randomBytes(32).toString('hex'),
141
+ },
142
+ projects: {
143
+ basePath: options.projectsPath ?? DEFAULT_CONFIG.projects.basePath,
144
+ whitelist: [],
145
+ },
146
+ };
147
+ }
148
+ /**
149
+ * Check if configuration exists
150
+ * @param profileName - Profile name to check, or undefined for default
151
+ */
152
+ export function configExists(profileName) {
153
+ const configPath = getProfilePath(profileName);
154
+ return existsSync(configPath);
155
+ }
156
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ export interface HookStatus {
2
+ installed: boolean;
3
+ version: string | null;
4
+ path: string;
5
+ settingsConfigured: boolean;
6
+ needsUpdate: boolean;
7
+ packagedVersion: string;
8
+ }
9
+ export interface InstallResult {
10
+ success: boolean;
11
+ error?: string;
12
+ installedVersion?: string;
13
+ }
14
+ export interface UninstallResult {
15
+ success: boolean;
16
+ error?: string;
17
+ }
18
+ export interface CodexNotifyStatus {
19
+ configPath: string;
20
+ configExists: boolean;
21
+ notifyConfigured: boolean;
22
+ notifyLine?: string;
23
+ }
24
+ export interface CodexInstallResult {
25
+ success: boolean;
26
+ status: 'installed' | 'updated' | 'already-configured' | 'missing-config' | 'conflict';
27
+ error?: string;
28
+ }
29
+ export interface CodexUninstallResult {
30
+ success: boolean;
31
+ status: 'removed' | 'not-configured' | 'missing-config' | 'conflict';
32
+ error?: string;
33
+ }
34
+ /**
35
+ * Get the version of the installed hook script.
36
+ */
37
+ export declare function getHookVersion(): string | null;
38
+ /**
39
+ * Get the version of the packaged hook script.
40
+ */
41
+ export declare function getPackagedHookVersion(): string;
42
+ /**
43
+ * Check if the hook script file exists.
44
+ */
45
+ export declare function isHookInstalled(): boolean;
46
+ /**
47
+ * Check if the installed hook needs an update.
48
+ */
49
+ export declare function needsUpdate(): boolean;
50
+ /**
51
+ * Get comprehensive hook status.
52
+ */
53
+ export declare function getHooksStatus(): HookStatus;
54
+ /**
55
+ * Install the hook: copy script and update Claude Code settings.
56
+ */
57
+ export declare function installHook(): InstallResult;
58
+ /**
59
+ * Uninstall the hook: remove from settings and optionally delete script.
60
+ */
61
+ export declare function uninstallHook(removeScript?: boolean): UninstallResult;
62
+ export declare function getCodexNotifyStatus(): CodexNotifyStatus;
63
+ export declare function installCodexNotify(options?: {
64
+ force?: boolean;
65
+ }): CodexInstallResult;
66
+ export declare function uninstallCodexNotify(): CodexUninstallResult;
67
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,UAAU,CAAC;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,UAAU,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsCD;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAkB/C;AA4BD;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAiBrC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAc3C;AA4BD;;GAEG;AACH,wBAAgB,WAAW,IAAI,aAAa,CA+D3C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,GAAE,OAAc,GAAG,eAAe,CAkD3E;AAwBD,wBAAgB,oBAAoB,IAAI,iBAAiB,CAmBxD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,kBAAkB,CA+BxF;AAED,wBAAgB,oBAAoB,IAAI,oBAAoB,CAuB3D"}
@@ -0,0 +1,353 @@
1
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, chmodSync, unlinkSync, } from 'fs';
2
+ import { join, dirname } from 'path';
3
+ import { homedir } from 'os';
4
+ import { fileURLToPath } from 'url';
5
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
+ // Paths
7
+ const CLAUDE_SETTINGS_PATH = join(homedir(), '.claude', 'settings.json');
8
+ const CODEX_CONFIG_PATH = join(homedir(), '.codex', 'config.toml');
9
+ const HOOKS_DIR = join(homedir(), '.agentdeck', 'hooks');
10
+ const HOOK_SCRIPT_NAME = 'notify-agentdeck.sh';
11
+ const HOOK_SCRIPT_PATH = join(HOOKS_DIR, HOOK_SCRIPT_NAME);
12
+ const CODEX_NOTIFY_LINE = `notify = ["bash", "~/.agentdeck/hooks/${HOOK_SCRIPT_NAME}"]`;
13
+ const CODEX_NOTIFY_REGEX = /^\s*notify\s*=\s*\[[^\]]*\]\s*$/m;
14
+ // Hook configuration for Claude Code settings.json
15
+ const HOOK_MATCHER = '*';
16
+ const HOOK_COMMAND = `bash ${HOOK_SCRIPT_PATH}`;
17
+ // All hook types we need to register
18
+ const HOOK_TYPES = ['Stop', 'PermissionRequest', 'Notification'];
19
+ /**
20
+ * Get the path to the packaged hook script.
21
+ * In dev mode, it's in packages/hooks; in production, it's bundled with CLI.
22
+ */
23
+ function getPackagedHookPath() {
24
+ // CLI root is 2 levels up from lib/ (dist/lib -> dist -> cli root)
25
+ const cliRoot = join(__dirname, '..', '..');
26
+ // Check if running from source (monorepo) or installed (npm global)
27
+ const monorepoRoot = join(cliRoot, '..', '..');
28
+ const isDev = existsSync(join(monorepoRoot, 'pnpm-workspace.yaml'));
29
+ if (isDev) {
30
+ // Development: hook is in packages/hooks
31
+ return join(monorepoRoot, 'packages', 'hooks', HOOK_SCRIPT_NAME);
32
+ }
33
+ else {
34
+ // Production: hook is bundled in cli/hooks
35
+ return join(cliRoot, 'hooks', HOOK_SCRIPT_NAME);
36
+ }
37
+ }
38
+ /**
39
+ * Extract version from a hook script.
40
+ * Looks for: # VERSION: x.y.z
41
+ */
42
+ function extractVersion(scriptPath) {
43
+ try {
44
+ if (!existsSync(scriptPath))
45
+ return null;
46
+ const content = readFileSync(scriptPath, 'utf-8');
47
+ const match = content.match(/^# VERSION:\s*(\d+\.\d+\.\d+)/m);
48
+ return match ? match[1] : null;
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ /**
55
+ * Get the version of the installed hook script.
56
+ */
57
+ export function getHookVersion() {
58
+ return extractVersion(HOOK_SCRIPT_PATH);
59
+ }
60
+ /**
61
+ * Get the version of the packaged hook script.
62
+ */
63
+ export function getPackagedHookVersion() {
64
+ const packagedPath = getPackagedHookPath();
65
+ const version = extractVersion(packagedPath);
66
+ // Fall back to reading from package.json if not found in script
67
+ if (!version) {
68
+ try {
69
+ const cliRoot = join(__dirname, '..', '..');
70
+ const pkgPath = join(cliRoot, 'package.json');
71
+ if (existsSync(pkgPath)) {
72
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
73
+ return pkg.version || '0.0.0';
74
+ }
75
+ }
76
+ catch {
77
+ // Ignore
78
+ }
79
+ return '0.0.0';
80
+ }
81
+ return version;
82
+ }
83
+ /**
84
+ * Check if the hook is installed in Claude Code settings for all required hook types.
85
+ */
86
+ function isHookInSettings() {
87
+ try {
88
+ if (!existsSync(CLAUDE_SETTINGS_PATH))
89
+ return false;
90
+ const content = readFileSync(CLAUDE_SETTINGS_PATH, 'utf-8');
91
+ const settings = JSON.parse(content);
92
+ if (!settings.hooks)
93
+ return false;
94
+ // Check if our hook is registered for all required types
95
+ return HOOK_TYPES.every((hookType) => {
96
+ const hookArray = settings.hooks[hookType];
97
+ if (!Array.isArray(hookArray))
98
+ return false;
99
+ return hookArray.some((entry) => entry.matcher === HOOK_MATCHER &&
100
+ entry.hooks?.some((h) => h.command?.includes(HOOK_SCRIPT_NAME)));
101
+ });
102
+ }
103
+ catch {
104
+ return false;
105
+ }
106
+ }
107
+ /**
108
+ * Check if the hook script file exists.
109
+ */
110
+ export function isHookInstalled() {
111
+ return existsSync(HOOK_SCRIPT_PATH) && isHookInSettings();
112
+ }
113
+ /**
114
+ * Check if the installed hook needs an update.
115
+ */
116
+ export function needsUpdate() {
117
+ const installedVersion = getHookVersion();
118
+ const packagedVersion = getPackagedHookVersion();
119
+ if (!installedVersion)
120
+ return true;
121
+ if (!packagedVersion)
122
+ return false;
123
+ // Simple semver comparison
124
+ const installed = installedVersion.split('.').map(Number);
125
+ const packaged = packagedVersion.split('.').map(Number);
126
+ for (let i = 0; i < 3; i++) {
127
+ if (packaged[i] > installed[i])
128
+ return true;
129
+ if (packaged[i] < installed[i])
130
+ return false;
131
+ }
132
+ return false;
133
+ }
134
+ /**
135
+ * Get comprehensive hook status.
136
+ */
137
+ export function getHooksStatus() {
138
+ const scriptExists = existsSync(HOOK_SCRIPT_PATH);
139
+ const settingsConfigured = isHookInSettings();
140
+ const installedVersion = scriptExists ? getHookVersion() : null;
141
+ const packagedVersion = getPackagedHookVersion();
142
+ return {
143
+ installed: scriptExists && settingsConfigured,
144
+ version: installedVersion,
145
+ path: HOOK_SCRIPT_PATH,
146
+ settingsConfigured,
147
+ needsUpdate: scriptExists ? needsUpdate() : false,
148
+ packagedVersion,
149
+ };
150
+ }
151
+ /**
152
+ * Read Claude Code settings.json, creating default if needed.
153
+ */
154
+ function readClaudeSettings() {
155
+ try {
156
+ if (existsSync(CLAUDE_SETTINGS_PATH)) {
157
+ const content = readFileSync(CLAUDE_SETTINGS_PATH, 'utf-8');
158
+ return JSON.parse(content);
159
+ }
160
+ }
161
+ catch {
162
+ // Ignore parse errors, will create new settings
163
+ }
164
+ return {};
165
+ }
166
+ /**
167
+ * Write Claude Code settings.json.
168
+ */
169
+ function writeClaudeSettings(settings) {
170
+ const dir = dirname(CLAUDE_SETTINGS_PATH);
171
+ if (!existsSync(dir)) {
172
+ mkdirSync(dir, { recursive: true });
173
+ }
174
+ writeFileSync(CLAUDE_SETTINGS_PATH, JSON.stringify(settings, null, 2));
175
+ }
176
+ /**
177
+ * Install the hook: copy script and update Claude Code settings.
178
+ */
179
+ export function installHook() {
180
+ try {
181
+ // 1. Ensure hooks directory exists
182
+ if (!existsSync(HOOKS_DIR)) {
183
+ mkdirSync(HOOKS_DIR, { recursive: true });
184
+ }
185
+ // 2. Copy hook script
186
+ const packagedPath = getPackagedHookPath();
187
+ if (!existsSync(packagedPath)) {
188
+ return { success: false, error: `Packaged hook not found at ${packagedPath}` };
189
+ }
190
+ copyFileSync(packagedPath, HOOK_SCRIPT_PATH);
191
+ chmodSync(HOOK_SCRIPT_PATH, 0o755); // Make executable
192
+ // 3. Update Claude Code settings
193
+ const settings = readClaudeSettings();
194
+ // Ensure hooks object exists
195
+ if (!settings.hooks) {
196
+ settings.hooks = {};
197
+ }
198
+ const hooks = settings.hooks;
199
+ // Install hook for all required types (Stop, PermissionRequest, Notification)
200
+ for (const hookType of HOOK_TYPES) {
201
+ // Ensure array exists
202
+ if (!Array.isArray(hooks[hookType])) {
203
+ hooks[hookType] = [];
204
+ }
205
+ // Remove any existing agentdeck hook entries
206
+ hooks[hookType] = hooks[hookType].filter((entry) => !(entry.matcher === HOOK_MATCHER && entry.hooks?.some((h) => h.command?.includes('agentdeck'))));
207
+ // Add our hook
208
+ hooks[hookType].push({
209
+ matcher: HOOK_MATCHER,
210
+ hooks: [
211
+ {
212
+ type: 'command',
213
+ command: HOOK_COMMAND,
214
+ },
215
+ ],
216
+ });
217
+ }
218
+ writeClaudeSettings(settings);
219
+ const installedVersion = getHookVersion();
220
+ return { success: true, installedVersion: installedVersion || undefined };
221
+ }
222
+ catch (err) {
223
+ return { success: false, error: err.message };
224
+ }
225
+ }
226
+ /**
227
+ * Uninstall the hook: remove from settings and optionally delete script.
228
+ */
229
+ export function uninstallHook(removeScript = true) {
230
+ try {
231
+ // 1. Remove from Claude Code settings
232
+ if (existsSync(CLAUDE_SETTINGS_PATH)) {
233
+ const settings = readClaudeSettings();
234
+ if (settings.hooks) {
235
+ const hooks = settings.hooks;
236
+ // Remove from all hook types
237
+ for (const hookType of HOOK_TYPES) {
238
+ if (Array.isArray(hooks[hookType])) {
239
+ hooks[hookType] = hooks[hookType].filter((entry) => !(entry.matcher === HOOK_MATCHER &&
240
+ entry.hooks?.some((h) => h.command?.includes('agentdeck'))));
241
+ // Clean up empty array
242
+ if (hooks[hookType].length === 0) {
243
+ delete hooks[hookType];
244
+ }
245
+ }
246
+ }
247
+ // Clean up empty hooks object
248
+ if (Object.keys(hooks).length === 0) {
249
+ delete settings.hooks;
250
+ }
251
+ writeClaudeSettings(settings);
252
+ }
253
+ }
254
+ // 2. Remove script file if requested
255
+ if (removeScript && existsSync(HOOK_SCRIPT_PATH)) {
256
+ unlinkSync(HOOK_SCRIPT_PATH);
257
+ }
258
+ return { success: true };
259
+ }
260
+ catch (err) {
261
+ return { success: false, error: err.message };
262
+ }
263
+ }
264
+ function getCodexNotifyLine(config) {
265
+ const match = config.match(CODEX_NOTIFY_REGEX);
266
+ return match ? match[0] : null;
267
+ }
268
+ function readCodexConfig() {
269
+ try {
270
+ if (!existsSync(CODEX_CONFIG_PATH))
271
+ return null;
272
+ return readFileSync(CODEX_CONFIG_PATH, 'utf-8');
273
+ }
274
+ catch {
275
+ return null;
276
+ }
277
+ }
278
+ function writeCodexConfig(content) {
279
+ const dir = dirname(CODEX_CONFIG_PATH);
280
+ if (!existsSync(dir)) {
281
+ mkdirSync(dir, { recursive: true });
282
+ }
283
+ writeFileSync(CODEX_CONFIG_PATH, content);
284
+ }
285
+ export function getCodexNotifyStatus() {
286
+ const config = readCodexConfig();
287
+ if (!config) {
288
+ return {
289
+ configPath: CODEX_CONFIG_PATH,
290
+ configExists: false,
291
+ notifyConfigured: false,
292
+ };
293
+ }
294
+ const notifyLine = getCodexNotifyLine(config);
295
+ const notifyConfigured = !!notifyLine && notifyLine.includes(HOOK_SCRIPT_NAME);
296
+ return {
297
+ configPath: CODEX_CONFIG_PATH,
298
+ configExists: true,
299
+ notifyConfigured,
300
+ notifyLine: notifyLine || undefined,
301
+ };
302
+ }
303
+ export function installCodexNotify(options = {}) {
304
+ try {
305
+ const config = readCodexConfig();
306
+ if (!config) {
307
+ return { success: false, status: 'missing-config' };
308
+ }
309
+ const notifyLine = getCodexNotifyLine(config);
310
+ if (notifyLine && notifyLine.includes(HOOK_SCRIPT_NAME)) {
311
+ return { success: true, status: 'already-configured' };
312
+ }
313
+ if (notifyLine && !options.force) {
314
+ return { success: false, status: 'conflict' };
315
+ }
316
+ let updatedConfig = config.trimEnd();
317
+ if (notifyLine) {
318
+ updatedConfig = updatedConfig.replace(CODEX_NOTIFY_REGEX, CODEX_NOTIFY_LINE);
319
+ writeCodexConfig(`${updatedConfig}\n`);
320
+ return { success: true, status: 'updated' };
321
+ }
322
+ const separator = updatedConfig.length > 0 ? '\n\n' : '';
323
+ updatedConfig = `${updatedConfig}${separator}# AgentDeck notifications\n${CODEX_NOTIFY_LINE}\n`;
324
+ writeCodexConfig(updatedConfig);
325
+ return { success: true, status: 'installed' };
326
+ }
327
+ catch (err) {
328
+ return { success: false, status: 'conflict', error: err.message };
329
+ }
330
+ }
331
+ export function uninstallCodexNotify() {
332
+ try {
333
+ const config = readCodexConfig();
334
+ if (!config) {
335
+ return { success: true, status: 'missing-config' };
336
+ }
337
+ const notifyLine = getCodexNotifyLine(config);
338
+ if (!notifyLine) {
339
+ return { success: true, status: 'not-configured' };
340
+ }
341
+ if (!notifyLine.includes(HOOK_SCRIPT_NAME)) {
342
+ return { success: false, status: 'conflict' };
343
+ }
344
+ let updatedConfig = config.replace(CODEX_NOTIFY_REGEX, '').replace(/\n{3,}/g, '\n\n');
345
+ updatedConfig = updatedConfig.trimEnd();
346
+ writeCodexConfig(updatedConfig.length ? `${updatedConfig}\n` : '');
347
+ return { success: true, status: 'removed' };
348
+ }
349
+ catch (err) {
350
+ return { success: false, status: 'conflict', error: err.message };
351
+ }
352
+ }
353
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Get the home directory, allowing override via AGENTDECK_HOME for E2E testing.
3
+ * This enables running tests in isolated temporary directories without affecting
4
+ * the real user's configuration or system services.
5
+ */
6
+ export declare function getTestableHomedir(): string;
7
+ export interface AgentPaths {
8
+ /** Where the CLI package is installed */
9
+ cliRoot: string;
10
+ /** Where the agent server code is located */
11
+ agentRoot: string;
12
+ /** Configuration directory (~/.agentdeck/) */
13
+ configDir: string;
14
+ /** Configuration file path */
15
+ configPath: string;
16
+ /** Data directory for SQLite */
17
+ dataDir: string;
18
+ /** Log directory */
19
+ logDir: string;
20
+ /** PID file path */
21
+ pidFile: string;
22
+ /** Node binary path */
23
+ nodePath: string;
24
+ /** Is this a development install? */
25
+ isDev: boolean;
26
+ }
27
+ export declare function getAgentPaths(): AgentPaths;
28
+ /**
29
+ * Ensure all required directories exist
30
+ */
31
+ export declare function ensureDirectories(): void;
32
+ /**
33
+ * Clear cached paths (useful for testing)
34
+ */
35
+ export declare function clearPathsCache(): void;
36
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAElB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IAEjB,qCAAqC;IACrC,KAAK,EAAE,OAAO,CAAC;CAChB;AAID,wBAAgB,aAAa,IAAI,UAAU,CAiD1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}