247-cli 0.8.3 → 1.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.
- package/agent/dist/db/index.d.ts.map +1 -1
- package/agent/dist/db/index.js +41 -2
- package/agent/dist/db/index.js.map +1 -1
- package/agent/dist/db/schema.d.ts +12 -2
- package/agent/dist/db/schema.d.ts.map +1 -1
- package/agent/dist/db/schema.js +8 -2
- package/agent/dist/db/schema.js.map +1 -1
- package/agent/dist/db/sessions.d.ts +5 -0
- package/agent/dist/db/sessions.d.ts.map +1 -1
- package/agent/dist/db/sessions.js +21 -3
- package/agent/dist/db/sessions.js.map +1 -1
- package/agent/dist/heartbeat-monitor.d.ts +20 -0
- package/agent/dist/heartbeat-monitor.d.ts.map +1 -0
- package/agent/dist/heartbeat-monitor.js +99 -0
- package/agent/dist/heartbeat-monitor.js.map +1 -0
- package/agent/dist/routes/heartbeat.d.ts +10 -0
- package/agent/dist/routes/heartbeat.d.ts.map +1 -0
- package/agent/dist/routes/heartbeat.js +103 -0
- package/agent/dist/routes/heartbeat.js.map +1 -0
- package/agent/dist/routes/index.d.ts +1 -1
- package/agent/dist/routes/index.d.ts.map +1 -1
- package/agent/dist/routes/index.js +1 -1
- package/agent/dist/routes/index.js.map +1 -1
- package/agent/dist/routes/sessions.d.ts.map +1 -1
- package/agent/dist/routes/sessions.js +30 -1
- package/agent/dist/routes/sessions.js.map +1 -1
- package/agent/dist/server.d.ts.map +1 -1
- package/agent/dist/server.js +10 -2
- package/agent/dist/server.js.map +1 -1
- package/agent/dist/setup-statusline.d.ts +10 -0
- package/agent/dist/setup-statusline.d.ts.map +1 -0
- package/agent/dist/setup-statusline.js +94 -0
- package/agent/dist/setup-statusline.js.map +1 -0
- package/agent/dist/status.d.ts +6 -0
- package/agent/dist/status.d.ts.map +1 -1
- package/agent/dist/status.js.map +1 -1
- package/agent/dist/websocket-handlers.d.ts.map +1 -1
- package/agent/dist/websocket-handlers.js +19 -2
- package/agent/dist/websocket-handlers.js.map +1 -1
- package/agent/node_modules/247-shared/dist/types/index.d.ts +6 -1
- package/agent/node_modules/247-shared/dist/types/index.d.ts.map +1 -1
- package/agent/node_modules/247-shared/dist/types/index.js.map +1 -1
- package/agent/node_modules/247-shared/package.json +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +8 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/hooks.d.ts.map +1 -1
- package/dist/commands/hooks.js +37 -89
- package/dist/commands/hooks.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +0 -21
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +0 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +6 -9
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +0 -10
- package/dist/commands/update.js.map +1 -1
- package/dist/hooks/installer.d.ts +4 -21
- package/dist/hooks/installer.d.ts.map +1 -1
- package/dist/hooks/installer.js +6 -129
- package/dist/hooks/installer.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/paths.d.ts +1 -3
- package/dist/lib/paths.d.ts.map +1 -1
- package/dist/lib/paths.js +1 -5
- package/dist/lib/paths.js.map +1 -1
- package/package.json +1 -1
- package/agent/dist/routes/hooks.d.ts +0 -6
- package/agent/dist/routes/hooks.d.ts.map +0 -1
- package/agent/dist/routes/hooks.js +0 -80
- package/agent/dist/routes/hooks.js.map +0 -1
- package/hooks/.claude-plugin/plugin.json +0 -5
- package/hooks/hooks/hooks.json +0 -66
- package/hooks/scripts/check-duplication.sh +0 -91
- package/hooks/scripts/notify-status.sh +0 -89
package/dist/commands/hooks.js
CHANGED
|
@@ -1,58 +1,43 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import ora from 'ora';
|
|
4
|
-
import {
|
|
5
|
-
export const hooksCommand = new Command('hooks')
|
|
6
|
-
.description('Manage Claude Code hooks');
|
|
4
|
+
import { uninstallHooks, getHooksStatus } from '../hooks/installer.js';
|
|
5
|
+
export const hooksCommand = new Command('hooks').description('Manage Claude Code hooks (deprecated - now uses statusLine)');
|
|
7
6
|
hooksCommand
|
|
8
7
|
.command('install')
|
|
9
|
-
.description('Install Claude Code hooks')
|
|
10
|
-
.
|
|
11
|
-
.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
console.log(chalk.yellow('\n An update is available. Run with --force to update.'));
|
|
21
|
-
}
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const result = installHooks();
|
|
25
|
-
if (result.success) {
|
|
26
|
-
spinner.succeed('Hooks installed successfully');
|
|
27
|
-
console.log(chalk.dim(` Path: ${result.path}`));
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
spinner.fail(`Failed to install hooks: ${result.error}`);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
spinner.fail(`Error: ${err.message}`);
|
|
36
|
-
process.exit(1);
|
|
8
|
+
.description('Install Claude Code hooks (deprecated)')
|
|
9
|
+
.action(async () => {
|
|
10
|
+
console.log(chalk.yellow('\n⚠️ The hooks system has been deprecated.\n'));
|
|
11
|
+
console.log("247 now uses Claude Code's statusLine API for status tracking.");
|
|
12
|
+
console.log('The agent automatically configures this when it starts.\n');
|
|
13
|
+
console.log(chalk.dim('No manual installation is required anymore.'));
|
|
14
|
+
console.log(chalk.dim('Just run "247 start" and the agent will handle everything.\n'));
|
|
15
|
+
const status = getHooksStatus();
|
|
16
|
+
if (status.installed) {
|
|
17
|
+
console.log(chalk.yellow('Old hooks detected at: ' + status.path));
|
|
18
|
+
console.log('Run "247 hooks uninstall" to clean up the old hooks.\n');
|
|
37
19
|
}
|
|
38
20
|
});
|
|
39
21
|
hooksCommand
|
|
40
22
|
.command('uninstall')
|
|
41
|
-
.description('Uninstall Claude Code hooks')
|
|
23
|
+
.description('Uninstall old Claude Code hooks')
|
|
42
24
|
.action(async () => {
|
|
43
|
-
const spinner = ora('
|
|
25
|
+
const spinner = ora('Checking for old hooks...').start();
|
|
44
26
|
try {
|
|
45
27
|
const status = getHooksStatus();
|
|
46
28
|
if (!status.installed) {
|
|
47
|
-
spinner.
|
|
29
|
+
spinner.succeed('No old hooks installed - nothing to clean up');
|
|
48
30
|
return;
|
|
49
31
|
}
|
|
32
|
+
spinner.text = 'Removing old hooks...';
|
|
50
33
|
const result = uninstallHooks();
|
|
51
34
|
if (result.success) {
|
|
52
|
-
spinner.succeed('
|
|
35
|
+
spinner.succeed('Old hooks removed successfully');
|
|
36
|
+
console.log(chalk.dim(`\nRemoved: ${status.path}`));
|
|
37
|
+
console.log(chalk.dim('The new statusLine system is automatically configured by the agent.\n'));
|
|
53
38
|
}
|
|
54
39
|
else {
|
|
55
|
-
spinner.fail(`Failed to
|
|
40
|
+
spinner.fail(`Failed to remove hooks: ${result.error}`);
|
|
56
41
|
process.exit(1);
|
|
57
42
|
}
|
|
58
43
|
}
|
|
@@ -63,65 +48,28 @@ hooksCommand
|
|
|
63
48
|
});
|
|
64
49
|
hooksCommand
|
|
65
50
|
.command('status')
|
|
66
|
-
.description('Show hooks
|
|
51
|
+
.description('Show hooks status')
|
|
67
52
|
.action(async () => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
console.log(chalk.
|
|
77
|
-
console.log(` Path: ${status.path}`);
|
|
78
|
-
console.log(` Type: ${status.isSymlink ? 'Symlink (dev mode)' : 'File copy'}`);
|
|
79
|
-
if (status.needsUpdate) {
|
|
80
|
-
console.log(chalk.yellow('\n Update available!'));
|
|
81
|
-
console.log(chalk.dim(' Run "247 hooks install --force" to update.'));
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
console.log(chalk.green(' Up to date'));
|
|
85
|
-
}
|
|
86
|
-
console.log();
|
|
87
|
-
console.log(chalk.dim('The hooks notify the 247 agent when Claude Code sessions stop,'));
|
|
88
|
-
console.log(chalk.dim('enabling automatic status updates in the dashboard.'));
|
|
89
|
-
console.log();
|
|
53
|
+
console.log(chalk.bold('\n247 Status Tracking\n'));
|
|
54
|
+
console.log(chalk.green('✓ Using new statusLine API'));
|
|
55
|
+
console.log(chalk.dim(' Status tracking is automatically configured when the agent starts.'));
|
|
56
|
+
console.log(chalk.dim(' Claude Code sends heartbeats every ~300ms while working.\n'));
|
|
57
|
+
const status = getHooksStatus();
|
|
58
|
+
if (status.installed) {
|
|
59
|
+
console.log(chalk.yellow('⚠️ Old hooks still installed'));
|
|
60
|
+
console.log(chalk.dim(` Path: ${status.path}`));
|
|
61
|
+
console.log(chalk.dim(' Run "247 hooks uninstall" to clean up.\n'));
|
|
90
62
|
}
|
|
91
|
-
|
|
92
|
-
console.
|
|
93
|
-
process.exit(1);
|
|
63
|
+
else {
|
|
64
|
+
console.log(chalk.green('✓ No old hooks installed\n'));
|
|
94
65
|
}
|
|
95
66
|
});
|
|
96
67
|
hooksCommand
|
|
97
68
|
.command('update')
|
|
98
|
-
.description('Update hooks
|
|
69
|
+
.description('Update hooks (deprecated)')
|
|
99
70
|
.action(async () => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (!status.installed) {
|
|
104
|
-
spinner.info('Hooks are not installed');
|
|
105
|
-
console.log(chalk.dim('\nRun "247 hooks install" to install them.\n'));
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (!status.needsUpdate) {
|
|
109
|
-
spinner.succeed('Hooks are already up to date');
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
spinner.text = 'Updating hooks...';
|
|
113
|
-
const result = installHooks();
|
|
114
|
-
if (result.success) {
|
|
115
|
-
spinner.succeed('Hooks updated successfully');
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
spinner.fail(`Failed to update hooks: ${result.error}`);
|
|
119
|
-
process.exit(1);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
spinner.fail(`Error: ${err.message}`);
|
|
124
|
-
process.exit(1);
|
|
125
|
-
}
|
|
71
|
+
console.log(chalk.yellow('\n⚠️ The hooks system has been deprecated.\n'));
|
|
72
|
+
console.log("247 now uses Claude Code's statusLine API for status tracking.");
|
|
73
|
+
console.log('No manual updates are required - the agent configures everything automatically.\n');
|
|
126
74
|
});
|
|
127
75
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,eAAO,MAAM,WAAW,SAoHpB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -6,7 +6,6 @@ import { hostname } from 'os';
|
|
|
6
6
|
import { checkAllPrerequisites, allRequiredMet } from '../lib/prerequisites.js';
|
|
7
7
|
import { createConfig, saveConfig, configExists, loadConfig, getProfilePath, } from '../lib/config.js';
|
|
8
8
|
import { ensureDirectories } from '../lib/paths.js';
|
|
9
|
-
import { installHooks } from '../hooks/installer.js';
|
|
10
9
|
export const initCommand = new Command('init')
|
|
11
10
|
.description('Initialize 247 agent configuration')
|
|
12
11
|
.option('-n, --name <name>', 'Machine name')
|
|
@@ -92,26 +91,6 @@ export const initCommand = new Command('init')
|
|
|
92
91
|
configSpinner.fail(`Failed to create configuration: ${err.message}`);
|
|
93
92
|
process.exit(1);
|
|
94
93
|
}
|
|
95
|
-
// Install hooks
|
|
96
|
-
const hooksSpinner = ora('Installing Claude Code hooks...').start();
|
|
97
|
-
try {
|
|
98
|
-
const hooksResult = installHooks();
|
|
99
|
-
if (hooksResult.success) {
|
|
100
|
-
if (hooksResult.installed) {
|
|
101
|
-
hooksSpinner.succeed('Hooks installed');
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
hooksSpinner.succeed('Hooks already up to date');
|
|
105
|
-
}
|
|
106
|
-
console.log(chalk.dim(` → ${hooksResult.path}`));
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
hooksSpinner.warn(`Hooks installation skipped: ${hooksResult.error}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
hooksSpinner.warn(`Hooks installation skipped: ${err.message}`);
|
|
114
|
-
}
|
|
115
94
|
// Success message
|
|
116
95
|
console.log(chalk.green(`\n✓ Setup${profileLabel} complete!\n`));
|
|
117
96
|
console.log('Next steps:');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,YAAY,SA0GrB,CAAC"}
|
package/dist/commands/start.js
CHANGED
|
@@ -7,7 +7,6 @@ import { existsSync } from 'fs';
|
|
|
7
7
|
import { loadConfig, configExists, getProfilePath } from '../lib/config.js';
|
|
8
8
|
import { getAgentPaths } from '../lib/paths.js';
|
|
9
9
|
import { startAgentDaemon, isAgentRunning } from '../lib/process.js';
|
|
10
|
-
import { installHooks, getHooksStatus } from '../hooks/installer.js';
|
|
11
10
|
export const startCommand = new Command('start')
|
|
12
11
|
.description('Start the 247 agent')
|
|
13
12
|
.option('-f, --foreground', 'Run in foreground (not as daemon)')
|
|
@@ -38,23 +37,6 @@ export const startCommand = new Command('start')
|
|
|
38
37
|
console.log('Use "247 restart" to restart or "247 stop" to stop.\n');
|
|
39
38
|
return;
|
|
40
39
|
}
|
|
41
|
-
// Auto-install/update hooks
|
|
42
|
-
const hooksStatus = getHooksStatus();
|
|
43
|
-
if (!hooksStatus.installed || hooksStatus.needsUpdate) {
|
|
44
|
-
const spinner = ora('Updating Claude Code hooks...').start();
|
|
45
|
-
try {
|
|
46
|
-
const result = installHooks();
|
|
47
|
-
if (result.success) {
|
|
48
|
-
spinner.succeed(result.installed ? 'Hooks installed' : 'Hooks updated');
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
spinner.warn(`Hooks: ${result.error}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
catch (err) {
|
|
55
|
-
spinner.warn(`Hooks: ${err.message}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
40
|
if (options.foreground) {
|
|
59
41
|
// Run in foreground
|
|
60
42
|
console.log(chalk.blue(`Starting agent${profileLabel} in foreground on port ${config.agent.port}...\n`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SA8DtB,CAAC"}
|
package/dist/commands/status.js
CHANGED
|
@@ -45,17 +45,14 @@ export const statusCommand = new Command('status')
|
|
|
45
45
|
console.log(` Projects: ${config.projects.basePath}`);
|
|
46
46
|
console.log(` Config: ${paths.configPath}`);
|
|
47
47
|
console.log();
|
|
48
|
-
//
|
|
48
|
+
// Status tracking
|
|
49
|
+
console.log(chalk.dim('Status Tracking:'));
|
|
50
|
+
console.log(` ${chalk.green('✓')} Using statusLine API (auto-configured by agent)`);
|
|
51
|
+
// Check for legacy hooks
|
|
49
52
|
const hooks = getHooksStatus();
|
|
50
|
-
const hooksIcon = hooks.installed ? chalk.green('✓') : chalk.yellow('!');
|
|
51
|
-
console.log(chalk.dim('Claude Code Hooks:'));
|
|
52
|
-
console.log(` ${hooksIcon} ${hooks.installed ? 'Installed' : 'Not installed'}`);
|
|
53
53
|
if (hooks.installed) {
|
|
54
|
-
console.log(`
|
|
55
|
-
console.log(
|
|
56
|
-
if (hooks.needsUpdate) {
|
|
57
|
-
console.log(chalk.yellow(' Update available'));
|
|
58
|
-
}
|
|
54
|
+
console.log(` ${chalk.yellow('!')} Legacy hooks still installed at ${hooks.path}`);
|
|
55
|
+
console.log(chalk.dim(' Run "247 hooks uninstall" to clean up'));
|
|
59
56
|
}
|
|
60
57
|
console.log();
|
|
61
58
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,aAAa,SAyGtB,CAAC"}
|
package/dist/commands/update.js
CHANGED
|
@@ -5,7 +5,6 @@ import { exec } from 'child_process';
|
|
|
5
5
|
import { promisify } from 'util';
|
|
6
6
|
import { createServiceManager } from '../service/index.js';
|
|
7
7
|
import { isAgentRunning, stopAgent } from '../lib/process.js';
|
|
8
|
-
import { installHooks } from '../hooks/installer.js';
|
|
9
8
|
const execAsync = promisify(exec);
|
|
10
9
|
const PACKAGE_NAME = '247-cli';
|
|
11
10
|
export const updateCommand = new Command('update')
|
|
@@ -80,15 +79,6 @@ export const updateCommand = new Command('update')
|
|
|
80
79
|
console.log(chalk.dim('\nTry running manually: npm install -g 247-cli@latest\n'));
|
|
81
80
|
process.exit(1);
|
|
82
81
|
}
|
|
83
|
-
// Update hooks
|
|
84
|
-
const hooksSpinner = ora('Updating hooks...').start();
|
|
85
|
-
const hooksResult = installHooks();
|
|
86
|
-
if (hooksResult.success) {
|
|
87
|
-
hooksSpinner.succeed('Hooks updated');
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
hooksSpinner.warn(`Could not update hooks: ${hooksResult.error}`);
|
|
91
|
-
}
|
|
92
82
|
// Restart agent if it was running
|
|
93
83
|
if (serviceWasRunning) {
|
|
94
84
|
const startSpinner = ora('Restarting agent...').start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
export interface HooksInstallResult {
|
|
2
|
-
success: boolean;
|
|
3
|
-
installed: boolean;
|
|
4
|
-
updated: boolean;
|
|
5
|
-
path: string;
|
|
6
|
-
error?: string;
|
|
7
|
-
}
|
|
8
1
|
export interface HooksStatus {
|
|
9
2
|
installed: boolean;
|
|
10
3
|
path: string;
|
|
11
4
|
isSymlink: boolean;
|
|
12
|
-
sourceVersion?: string;
|
|
13
|
-
installedVersion?: string;
|
|
14
|
-
needsUpdate: boolean;
|
|
15
5
|
}
|
|
16
6
|
/**
|
|
17
|
-
* Get hooks installation status
|
|
7
|
+
* Get old hooks installation status.
|
|
8
|
+
* Used for detecting legacy hooks that need cleanup.
|
|
18
9
|
*/
|
|
19
10
|
export declare function getHooksStatus(): HooksStatus;
|
|
20
11
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* In prod mode: copies files
|
|
24
|
-
*/
|
|
25
|
-
export declare function installHooks(options?: {
|
|
26
|
-
force?: boolean;
|
|
27
|
-
useSymlink?: boolean;
|
|
28
|
-
}): HooksInstallResult;
|
|
29
|
-
/**
|
|
30
|
-
* Uninstall hooks from ~/.claude-plugins/
|
|
12
|
+
* Uninstall old hooks from ~/.claude-plugins/247-hooks/
|
|
13
|
+
* Used for cleaning up the deprecated plugin-based hooks system.
|
|
31
14
|
*/
|
|
32
15
|
export declare function uninstallHooks(): {
|
|
33
16
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/hooks/installer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/hooks/installer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAqB5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAmBrE"}
|
package/dist/hooks/installer.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { existsSync,
|
|
2
|
-
import { join
|
|
1
|
+
import { existsSync, lstatSync, unlinkSync, rmSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
3
|
import { getAgentPaths } from '../lib/paths.js';
|
|
4
4
|
/**
|
|
5
|
-
* Get hooks installation status
|
|
5
|
+
* Get old hooks installation status.
|
|
6
|
+
* Used for detecting legacy hooks that need cleanup.
|
|
6
7
|
*/
|
|
7
8
|
export function getHooksStatus() {
|
|
8
9
|
const paths = getAgentPaths();
|
|
@@ -18,123 +19,15 @@ export function getHooksStatus() {
|
|
|
18
19
|
// Not a symlink
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
|
-
let sourceVersion;
|
|
22
|
-
let installedVersion;
|
|
23
|
-
// Read source version
|
|
24
|
-
const sourcePluginJson = join(paths.hooksSource, '.claude-plugin', 'plugin.json');
|
|
25
|
-
if (existsSync(sourcePluginJson)) {
|
|
26
|
-
try {
|
|
27
|
-
const data = JSON.parse(readFileSync(sourcePluginJson, 'utf-8'));
|
|
28
|
-
sourceVersion = data.version;
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
// Ignore parse errors
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// Read installed version
|
|
35
|
-
if (installed) {
|
|
36
|
-
try {
|
|
37
|
-
const data = JSON.parse(readFileSync(pluginJsonPath, 'utf-8'));
|
|
38
|
-
installedVersion = data.version;
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// Ignore parse errors
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
22
|
return {
|
|
45
23
|
installed,
|
|
46
24
|
path: dest,
|
|
47
25
|
isSymlink,
|
|
48
|
-
sourceVersion,
|
|
49
|
-
installedVersion,
|
|
50
|
-
needsUpdate: installed && sourceVersion !== installedVersion,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Install hooks to ~/.claude-plugins/247-hooks/
|
|
55
|
-
* In dev mode: creates a symlink
|
|
56
|
-
* In prod mode: copies files
|
|
57
|
-
*/
|
|
58
|
-
export function installHooks(options = {}) {
|
|
59
|
-
const paths = getAgentPaths();
|
|
60
|
-
const source = paths.hooksSource;
|
|
61
|
-
const dest = paths.hooksDestination;
|
|
62
|
-
// Verify source exists
|
|
63
|
-
if (!existsSync(source)) {
|
|
64
|
-
return {
|
|
65
|
-
success: false,
|
|
66
|
-
installed: false,
|
|
67
|
-
updated: false,
|
|
68
|
-
path: dest,
|
|
69
|
-
error: `Hooks source not found at ${source}`,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
// Create parent directory if needed
|
|
73
|
-
const parentDir = dirname(dest);
|
|
74
|
-
if (!existsSync(parentDir)) {
|
|
75
|
-
mkdirSync(parentDir, { recursive: true });
|
|
76
|
-
}
|
|
77
|
-
const status = getHooksStatus();
|
|
78
|
-
const alreadyInstalled = status.installed;
|
|
79
|
-
// Skip if already up to date (unless force)
|
|
80
|
-
if (alreadyInstalled && !options.force && !status.needsUpdate) {
|
|
81
|
-
return {
|
|
82
|
-
success: true,
|
|
83
|
-
installed: false,
|
|
84
|
-
updated: false,
|
|
85
|
-
path: dest,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
// Remove existing if updating or force
|
|
89
|
-
if (existsSync(dest)) {
|
|
90
|
-
try {
|
|
91
|
-
if (status.isSymlink) {
|
|
92
|
-
unlinkSync(dest);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
rmSync(dest, { recursive: true, force: true });
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
return {
|
|
100
|
-
success: false,
|
|
101
|
-
installed: false,
|
|
102
|
-
updated: false,
|
|
103
|
-
path: dest,
|
|
104
|
-
error: `Failed to remove existing: ${err.message}`,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
// Determine install method
|
|
109
|
-
const useSymlink = options.useSymlink ?? paths.isDev;
|
|
110
|
-
try {
|
|
111
|
-
if (useSymlink) {
|
|
112
|
-
// Symlink for dev - changes to hooks are immediately reflected
|
|
113
|
-
symlinkSync(source, dest, 'dir');
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
// Copy for prod - stable installation
|
|
117
|
-
copyDirectoryRecursive(source, dest);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
catch (err) {
|
|
121
|
-
return {
|
|
122
|
-
success: false,
|
|
123
|
-
installed: false,
|
|
124
|
-
updated: false,
|
|
125
|
-
path: dest,
|
|
126
|
-
error: `Failed to install: ${err.message}`,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
return {
|
|
130
|
-
success: true,
|
|
131
|
-
installed: !alreadyInstalled,
|
|
132
|
-
updated: alreadyInstalled,
|
|
133
|
-
path: dest,
|
|
134
26
|
};
|
|
135
27
|
}
|
|
136
28
|
/**
|
|
137
|
-
* Uninstall hooks from ~/.claude-plugins/
|
|
29
|
+
* Uninstall old hooks from ~/.claude-plugins/247-hooks/
|
|
30
|
+
* Used for cleaning up the deprecated plugin-based hooks system.
|
|
138
31
|
*/
|
|
139
32
|
export function uninstallHooks() {
|
|
140
33
|
const paths = getAgentPaths();
|
|
@@ -156,20 +49,4 @@ export function uninstallHooks() {
|
|
|
156
49
|
return { success: false, error: err.message };
|
|
157
50
|
}
|
|
158
51
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Recursively copy a directory
|
|
161
|
-
*/
|
|
162
|
-
function copyDirectoryRecursive(source, dest) {
|
|
163
|
-
mkdirSync(dest, { recursive: true });
|
|
164
|
-
for (const entry of readdirSync(source, { withFileTypes: true })) {
|
|
165
|
-
const srcPath = join(source, entry.name);
|
|
166
|
-
const destPath = join(dest, entry.name);
|
|
167
|
-
if (entry.isDirectory()) {
|
|
168
|
-
copyDirectoryRecursive(srcPath, destPath);
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
copyFileSync(srcPath, destPath);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
52
|
//# sourceMappingURL=installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/hooks/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/hooks/installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS;QACT,IAAI,EAAE,IAAI;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAEpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,sBAAsB;IAClD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC;AACH,CAAC"}
|