@peac/cli 0.10.9 → 0.10.11

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 (60) hide show
  1. package/LICENSE +1 -1
  2. package/dist/index.cjs +2257 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.mjs +2236 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/package.json +21 -16
  7. package/dist/cli.js +0 -90
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/bridge/index.js +0 -20
  10. package/dist/commands/bridge/index.js.map +0 -1
  11. package/dist/commands/bridge/install.js +0 -27
  12. package/dist/commands/bridge/install.js.map +0 -1
  13. package/dist/commands/bridge/start.js +0 -123
  14. package/dist/commands/bridge/start.js.map +0 -1
  15. package/dist/commands/bridge/status.js +0 -192
  16. package/dist/commands/bridge/status.js.map +0 -1
  17. package/dist/commands/bridge/stop.js +0 -130
  18. package/dist/commands/bridge/stop.js.map +0 -1
  19. package/dist/commands/bundle.js +0 -363
  20. package/dist/commands/bundle.js.map +0 -1
  21. package/dist/commands/conformance.js +0 -301
  22. package/dist/commands/conformance.js.map +0 -1
  23. package/dist/commands/discover.js +0 -39
  24. package/dist/commands/discover.js.map +0 -1
  25. package/dist/commands/hash.js +0 -106
  26. package/dist/commands/hash.js.map +0 -1
  27. package/dist/commands/policy.js +0 -712
  28. package/dist/commands/policy.js.map +0 -1
  29. package/dist/commands/samples.js +0 -360
  30. package/dist/commands/samples.js.map +0 -1
  31. package/dist/commands/verify.js +0 -50
  32. package/dist/commands/verify.js.map +0 -1
  33. package/dist/commands/workflow.d.ts +0 -11
  34. package/dist/commands/workflow.d.ts.map +0 -1
  35. package/dist/commands/workflow.js +0 -214
  36. package/dist/commands/workflow.js.map +0 -1
  37. package/dist/index.js +0 -240
  38. package/dist/index.js.map +0 -1
  39. package/dist/lib/conformance/digest.js +0 -202
  40. package/dist/lib/conformance/digest.js.map +0 -1
  41. package/dist/lib/conformance/index.js +0 -30
  42. package/dist/lib/conformance/index.js.map +0 -1
  43. package/dist/lib/conformance/manifest.js +0 -66
  44. package/dist/lib/conformance/manifest.js.map +0 -1
  45. package/dist/lib/conformance/profiles.js +0 -138
  46. package/dist/lib/conformance/profiles.js.map +0 -1
  47. package/dist/lib/conformance/types.js +0 -8
  48. package/dist/lib/conformance/types.js.map +0 -1
  49. package/dist/lib/conformance/validators.js +0 -415
  50. package/dist/lib/conformance/validators.js.map +0 -1
  51. package/dist/lib/conformance-runner.js +0 -433
  52. package/dist/lib/conformance-runner.js.map +0 -1
  53. package/dist/lib/samples-loader.js +0 -311
  54. package/dist/lib/samples-loader.js.map +0 -1
  55. package/dist/lib/version.js +0 -61
  56. package/dist/lib/version.js.map +0 -1
  57. package/dist/types.js +0 -6
  58. package/dist/types.js.map +0 -1
  59. package/dist/utils.js +0 -101
  60. package/dist/utils.js.map +0 -1
package/dist/cli.js DELETED
@@ -1,90 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- /**
4
- * PEAC Protocol CLI
5
- * Commands: discover, hash, verify
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- const commander_1 = require("commander");
9
- const discover_js_1 = require("./commands/discover.js");
10
- const hash_js_1 = require("./commands/hash.js");
11
- const verify_js_1 = require("./commands/verify.js");
12
- const index_js_1 = require("./commands/bridge/index.js");
13
- const bundle_js_1 = require("./commands/bundle.js");
14
- const utils_js_1 = require("./utils.js");
15
- const program = new commander_1.Command();
16
- const exit = (0, utils_js_1.createExitHandler)();
17
- program
18
- .name('peac')
19
- .description('PEAC Protocol CLI tools for discovery, hashing, and verification')
20
- .version('0.9.13.1');
21
- // Global options
22
- program
23
- .option('-j, --json', 'output in JSON format')
24
- .option('-v, --verbose', 'verbose output')
25
- .option('-t, --timeout <ms>', 'request timeout in milliseconds', '5000');
26
- // peac discover <url>
27
- program
28
- .command('discover <url>')
29
- .description('List AIPREF / agent-permissions / peac.txt sources')
30
- .action(async (url, options) => {
31
- const globalOptions = program.opts();
32
- const command = new discover_js_1.DiscoverCommand();
33
- const result = await command.execute(url, {
34
- ...globalOptions,
35
- timeout: parseInt(globalOptions.timeout),
36
- });
37
- console.log((0, utils_js_1.formatOutput)(result, globalOptions.json));
38
- exit(result.success ? 0 : 1);
39
- });
40
- // peac hash <policy.json>
41
- program
42
- .command('hash [policy-file]')
43
- .description('Compute canonical digest of policy (from file or stdin)')
44
- .action(async (policyFile, options) => {
45
- const globalOptions = program.opts();
46
- const command = new hash_js_1.HashCommand();
47
- let result;
48
- if (policyFile) {
49
- result = await command.execute(policyFile, globalOptions);
50
- }
51
- else {
52
- result = await command.executeFromStdin(globalOptions);
53
- }
54
- console.log((0, utils_js_1.formatOutput)(result, globalOptions.json));
55
- exit(result.success ? 0 : 1);
56
- });
57
- // peac verify <receipt.jws> --resource <url>
58
- program
59
- .command('verify <receipt-file>')
60
- .description('Verify receipt JWS signature and optionally recompute policy hash')
61
- .option('-r, --resource <url>', 'resource URL for policy hash verification')
62
- .option('-k, --keys <jwks-file>', 'path to JWKS file for verification')
63
- .action(async (receiptFile, options) => {
64
- const globalOptions = program.opts();
65
- const command = new verify_js_1.VerifyCommand();
66
- const result = await command.execute(receiptFile, {
67
- ...globalOptions,
68
- ...options,
69
- timeout: parseInt(globalOptions.timeout),
70
- });
71
- console.log((0, utils_js_1.formatOutput)(result, globalOptions.json));
72
- exit(result.success ? 0 : 1);
73
- });
74
- // peac bridge {install|start|stop|status}
75
- program.addCommand((0, index_js_1.bridgeCommand)());
76
- // peac bundle {create|verify|info}
77
- program.addCommand(bundle_js_1.bundleCommand);
78
- // Handle unknown commands
79
- program.on('command:*', () => {
80
- console.error('Invalid command. See --help for available commands.');
81
- exit(1);
82
- });
83
- // Parse command line arguments
84
- program.parse(process.argv);
85
- // If no command provided, show help
86
- if (!process.argv.slice(2).length) {
87
- program.outputHelp();
88
- exit(0);
89
- }
90
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * Bridge management commands: install|start|stop|status
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.bridgeCommand = bridgeCommand;
7
- const commander_1 = require("commander");
8
- const install_js_1 = require("./install.js");
9
- const start_js_1 = require("./start.js");
10
- const stop_js_1 = require("./stop.js");
11
- const status_js_1 = require("./status.js");
12
- function bridgeCommand() {
13
- const bridge = new commander_1.Command('bridge').description('Manage PEAC Protocol Bridge (local development sidecar)');
14
- bridge.addCommand((0, install_js_1.installCommand)());
15
- bridge.addCommand((0, start_js_1.startCommand)());
16
- bridge.addCommand((0, stop_js_1.stopCommand)());
17
- bridge.addCommand((0, status_js_1.statusCommand)());
18
- return bridge;
19
- }
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bridge/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAQH,sCAWC;AAjBD,yCAAoC;AACpC,6CAA8C;AAC9C,yCAA0C;AAC1C,uCAAwC;AACxC,2CAA4C;AAE5C,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC9C,yDAAyD,CAC1D,CAAC;IAEF,MAAM,CAAC,UAAU,CAAC,IAAA,2BAAc,GAAE,CAAC,CAAC;IACpC,MAAM,CAAC,UAAU,CAAC,IAAA,uBAAY,GAAE,CAAC,CAAC;IAClC,MAAM,CAAC,UAAU,CAAC,IAAA,qBAAW,GAAE,CAAC,CAAC;IACjC,MAAM,CAAC,UAAU,CAAC,IAAA,yBAAa,GAAE,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- /**
3
- * peac bridge install - Initialize bridge configuration
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.installCommand = installCommand;
7
- const commander_1 = require("commander");
8
- const fs_1 = require("fs");
9
- const path_1 = require("path");
10
- const os_1 = require("os");
11
- function installCommand() {
12
- return new commander_1.Command('install').description('Initialize bridge configuration').action(() => {
13
- const peacDir = (0, path_1.join)((0, os_1.homedir)(), '.peac');
14
- (0, fs_1.mkdirSync)(peacDir, { recursive: true });
15
- const config = {
16
- url: 'http://127.0.0.1:31415',
17
- version: '0.9.13.2', // Implementation version
18
- wire_version: '0.9.13', // Wire protocol version
19
- created_at: new Date().toISOString(),
20
- };
21
- (0, fs_1.writeFileSync)((0, path_1.join)(peacDir, 'bridge.json'), JSON.stringify(config, null, 2));
22
- console.log('Initialized ~/.peac/bridge.json');
23
- console.log(` Wire version: ${config.wire_version}`);
24
- console.log(` Bridge URL: ${config.url}`);
25
- });
26
- }
27
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/bridge/install.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAOH,wCAkBC;AAvBD,yCAAoC;AACpC,2BAA8C;AAC9C,+BAA4B;AAC5B,2BAA6B;AAE7B,SAAgB,cAAc;IAC5B,OAAO,IAAI,mBAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QACvF,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,OAAO,CAAC,CAAC;QACzC,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,wBAAwB;YAC7B,OAAO,EAAE,UAAU,EAAE,yBAAyB;YAC9C,YAAY,EAAE,QAAQ,EAAE,wBAAwB;YAChD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QAEF,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- /**
3
- * peac bridge start - Start the bridge server
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.startCommand = startCommand;
7
- const commander_1 = require("commander");
8
- const child_process_1 = require("child_process");
9
- const fs_1 = require("fs");
10
- const path_1 = require("path");
11
- const os_1 = require("os");
12
- function startCommand() {
13
- return new commander_1.Command('start')
14
- .description('Start the PEAC Bridge')
15
- .option('--port <port>', 'Port to listen on', '31415')
16
- .option('--mode <mode>', 'Mode (dev|test|production)', 'production')
17
- .option('--foreground', 'Run in foreground mode')
18
- .action(async (options) => {
19
- const peacDir = (0, path_1.join)((0, os_1.homedir)(), '.peac');
20
- const logsDir = (0, path_1.join)(peacDir, 'logs');
21
- const pidFile = (0, path_1.join)(peacDir, 'bridge.pid');
22
- // Ensure directories exist
23
- (0, fs_1.mkdirSync)(peacDir, { recursive: true });
24
- (0, fs_1.mkdirSync)(logsDir, { recursive: true });
25
- const env = {
26
- ...process.env,
27
- PEAC_BRIDGE_PORT: options.port,
28
- PEAC_MODE: options.mode,
29
- };
30
- // Prefer resolved module path (works for workspace install)
31
- let bridgePath = null;
32
- try {
33
- bridgePath = require.resolve('@peac/app-bridge/dist/server.js', { paths: [process.cwd()] });
34
- }
35
- catch {
36
- try {
37
- const localPath = (0, path_1.join)(process.cwd(), 'apps/bridge/dist/server.js');
38
- (0, fs_1.accessSync)(localPath);
39
- bridgePath = localPath;
40
- }
41
- catch {
42
- bridgePath = null;
43
- }
44
- }
45
- if (!bridgePath) {
46
- console.error('Bridge executable not found');
47
- console.error(' Run "pnpm build" in monorepo or install @peac/app-bridge');
48
- process.exit(1);
49
- }
50
- if (options.foreground) {
51
- // Run in foreground
52
- const args = ['node', bridgePath];
53
- const bridge = (0, child_process_1.spawn)(args[0], args.slice(1), {
54
- stdio: 'inherit',
55
- env,
56
- });
57
- console.log(`Starting PEAC Bridge on port ${options.port}`);
58
- console.log('Press Ctrl+C to stop');
59
- bridge.on('error', (err) => {
60
- console.error('Failed to start bridge:', err);
61
- process.exit(1);
62
- });
63
- bridge.on('exit', (code) => {
64
- console.log(`Bridge exited with code ${code}`);
65
- process.exit(code || 0);
66
- });
67
- }
68
- else {
69
- // Run in background
70
- const logFile = (0, path_1.join)(logsDir, 'bridge.log');
71
- const out = (0, fs_1.openSync)(logFile, 'a');
72
- const err = (0, fs_1.openSync)(logFile, 'a');
73
- const args = ['node', bridgePath];
74
- const bridge = (0, child_process_1.spawn)(args[0], args.slice(1), {
75
- detached: true,
76
- stdio: ['ignore', out, err],
77
- env,
78
- });
79
- bridge.unref();
80
- // Write PID file
81
- (0, fs_1.writeFileSync)(pidFile, bridge.pid?.toString() || '');
82
- console.log(`Bridge started on port ${options.port} (PID: ${bridge.pid})`);
83
- console.log(`Logs: ${logFile}`);
84
- // Write/update config
85
- const configFile = (0, path_1.join)(peacDir, 'bridge.json');
86
- try {
87
- const existingConfig = JSON.parse((0, fs_1.readFileSync)(configFile, 'utf-8'));
88
- existingConfig.pid = bridge.pid;
89
- existingConfig.started_at = new Date().toISOString();
90
- existingConfig.log_file = logFile;
91
- (0, fs_1.writeFileSync)(configFile, JSON.stringify(existingConfig, null, 2));
92
- }
93
- catch {
94
- // Create new config if it doesn't exist
95
- (0, fs_1.writeFileSync)(configFile, JSON.stringify({
96
- url: `http://127.0.0.1:${options.port}`,
97
- version: '0.9.13.2',
98
- wire_version: '0.9.13',
99
- pid: bridge.pid,
100
- started_at: new Date().toISOString(),
101
- log_file: logFile,
102
- }, null, 2));
103
- }
104
- // Wait a moment and check if it started successfully
105
- setTimeout(async () => {
106
- try {
107
- const response = await fetch(`http://127.0.0.1:${options.port}/health`);
108
- if (response.ok) {
109
- console.log(`Bridge is healthy and responding`);
110
- }
111
- else {
112
- console.warn(`Bridge responding but not healthy (HTTP ${response.status})`);
113
- }
114
- }
115
- catch (error) {
116
- console.warn(`Bridge may not be responding yet:`, error instanceof Error ? error.message : String(error));
117
- console.log(` Check logs: ${logFile}`);
118
- }
119
- }, 2000);
120
- }
121
- });
122
- }
123
- //# sourceMappingURL=start.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/bridge/start.ts"],"names":[],"mappings":"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"}
@@ -1,192 +0,0 @@
1
- "use strict";
2
- /**
3
- * peac bridge status - Check bridge server status
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.statusCommand = statusCommand;
7
- const commander_1 = require("commander");
8
- const fs_1 = require("fs");
9
- const path_1 = require("path");
10
- const os_1 = require("os");
11
- function statusCommand() {
12
- return new commander_1.Command('status')
13
- .description('Check PEAC Bridge status')
14
- .option('--json', 'Output status as JSON')
15
- .action(async (options) => {
16
- const peacDir = (0, path_1.join)((0, os_1.homedir)(), '.peac');
17
- const pidFile = (0, path_1.join)(peacDir, 'bridge.pid');
18
- const configFile = (0, path_1.join)(peacDir, 'bridge.json');
19
- const status = {
20
- running: false,
21
- configured: (0, fs_1.existsSync)(configFile),
22
- config: null,
23
- process: null,
24
- health: null,
25
- };
26
- // Check configuration
27
- if (status.configured) {
28
- try {
29
- status.config = JSON.parse((0, fs_1.readFileSync)(configFile, 'utf-8'));
30
- }
31
- catch (error) {
32
- status.config = { error: 'Invalid config file' };
33
- }
34
- }
35
- // Check if process is running
36
- if ((0, fs_1.existsSync)(pidFile)) {
37
- try {
38
- const pidStr = (0, fs_1.readFileSync)(pidFile, 'utf-8').trim();
39
- const pid = parseInt(pidStr, 10);
40
- if (!isNaN(pid)) {
41
- try {
42
- process.kill(pid, 0); // Signal 0 checks if process exists
43
- status.running = true;
44
- status.process = {
45
- pid,
46
- uptime: status.config?.started_at
47
- ? Math.round((Date.now() - new Date(status.config.started_at).getTime()) / 1000)
48
- : null,
49
- };
50
- // Try to check health endpoint
51
- if (status.config?.url) {
52
- try {
53
- const healthUrl = status.config.url.replace(/\/$/, '') + '/health';
54
- const response = await fetch(healthUrl, {
55
- method: 'GET',
56
- headers: { Accept: 'application/json' },
57
- signal: AbortSignal.timeout(5000),
58
- });
59
- if (response.ok) {
60
- status.health = await response.json();
61
- status.health.status = 'healthy';
62
- // Capture peac-version header if present
63
- const peacVersion = response.headers.get('peac-version');
64
- if (peacVersion) {
65
- status.health.peac_version = peacVersion;
66
- }
67
- }
68
- else {
69
- status.health = {
70
- status: 'unhealthy',
71
- code: response.status,
72
- statusText: response.statusText,
73
- };
74
- }
75
- }
76
- catch (error) {
77
- status.health = {
78
- status: 'unreachable',
79
- error: error.message,
80
- };
81
- }
82
- }
83
- }
84
- catch (error) {
85
- if (error.code === 'ESRCH') {
86
- status.process = { pid, status: 'not_found' };
87
- }
88
- else {
89
- status.process = { pid, error: error.message };
90
- }
91
- }
92
- }
93
- }
94
- catch (error) {
95
- status.process = { error: 'Invalid PID file' };
96
- }
97
- }
98
- if (options.json) {
99
- console.log(JSON.stringify(status, null, 2));
100
- return;
101
- }
102
- // Human-readable output
103
- console.log('PEAC Bridge Status');
104
- console.log('');
105
- if (!status.configured) {
106
- console.log('Configuration: Not configured');
107
- console.log(' Run "peac bridge install" to initialize');
108
- return;
109
- }
110
- console.log('Configuration: Found');
111
- if (status.config?.url) {
112
- console.log(` URL: ${status.config.url}`);
113
- }
114
- if (status.config?.wire_version) {
115
- console.log(` Wire version: ${status.config.wire_version}`);
116
- }
117
- if (status.config?.version) {
118
- console.log(` Implementation version: ${status.config.version}`);
119
- }
120
- console.log('');
121
- if (!status.running) {
122
- console.log('Process: Not running');
123
- if (status.process?.status === 'not_found') {
124
- console.log(' (Stale PID file - process not found)');
125
- }
126
- console.log(' Run "peac bridge start" to start the bridge');
127
- return;
128
- }
129
- console.log('Process: Running');
130
- console.log(` PID: ${status.process.pid}`);
131
- if (status.process.uptime !== null) {
132
- const uptime = status.process.uptime;
133
- const hours = Math.floor(uptime / 3600);
134
- const minutes = Math.floor((uptime % 3600) / 60);
135
- const seconds = uptime % 60;
136
- console.log(` Uptime: ${hours}h ${minutes}m ${seconds}s`);
137
- }
138
- if (status.config?.log_file) {
139
- console.log(` Logs: ${status.config.log_file}`);
140
- }
141
- console.log('');
142
- if (!status.health) {
143
- console.log('Health: Unknown (no URL configured)');
144
- }
145
- else if (status.health.status === 'healthy') {
146
- console.log('Health: Healthy');
147
- if (status.health.peac_version) {
148
- console.log(` Wire version: ${status.health.peac_version}`);
149
- }
150
- if (status.health.response_time_ms) {
151
- console.log(` Response time: ${status.health.response_time_ms.toFixed(2)}ms`);
152
- }
153
- if (status.health.memory_mb) {
154
- console.log(` Memory usage: ${status.health.memory_mb.toFixed(1)} MB`);
155
- }
156
- }
157
- else if (status.health.status === 'unhealthy') {
158
- console.log('Health: Unhealthy');
159
- console.log(` HTTP ${status.health.code}: ${status.health.statusText}`);
160
- }
161
- else if (status.health.status === 'unreachable') {
162
- console.log('Health: Unreachable');
163
- console.log(` Error: ${status.health.error}`);
164
- console.log(' Bridge may be starting up or misconfigured');
165
- }
166
- // Show readiness if we have health info
167
- if (status.health?.status === 'healthy' && status.config?.url) {
168
- try {
169
- const readyUrl = status.config.url.replace(/\/$/, '') + '/ready';
170
- const response = await fetch(readyUrl, {
171
- method: 'GET',
172
- headers: { Accept: 'application/peac+json' },
173
- signal: AbortSignal.timeout(5000),
174
- });
175
- if (response.ok) {
176
- const readiness = (await response.json());
177
- console.log('');
178
- console.log('Readiness:', readiness.ok ? 'Ready' : 'Not Ready');
179
- if (readiness.checks) {
180
- Object.entries(readiness.checks).forEach(([check, result]) => {
181
- console.log(` ${check}: ${result ? 'OK' : 'FAIL'}`);
182
- });
183
- }
184
- }
185
- }
186
- catch (error) {
187
- // Readiness check failed, but don't show error - health already covers connectivity
188
- }
189
- }
190
- });
191
- }
192
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/bridge/status.ts"],"names":[],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
- /**
3
- * peac bridge stop - Stop the bridge server
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.stopCommand = stopCommand;
7
- const commander_1 = require("commander");
8
- const fs_1 = require("fs");
9
- const path_1 = require("path");
10
- const os_1 = require("os");
11
- const child_process_1 = require("child_process");
12
- // Windows-safe process termination
13
- async function killProcess(pid, signal) {
14
- return new Promise((resolve, reject) => {
15
- if (process.platform === 'win32') {
16
- // Use taskkill on Windows
17
- const force = signal === 'SIGKILL' ? '/F' : '';
18
- const taskkill = (0, child_process_1.spawn)('taskkill', ['/PID', pid.toString(), force].filter(Boolean));
19
- taskkill.on('exit', (code) => {
20
- if (code === 0 || code === 128) {
21
- // 128 = process not found
22
- resolve();
23
- }
24
- else {
25
- reject(new Error(`taskkill failed with code ${code}`));
26
- }
27
- });
28
- taskkill.on('error', reject);
29
- }
30
- else {
31
- // Use standard signals on Unix-like systems
32
- try {
33
- process.kill(pid, signal || 'SIGTERM');
34
- resolve();
35
- }
36
- catch (error) {
37
- reject(error);
38
- }
39
- }
40
- });
41
- }
42
- function stopCommand() {
43
- return new commander_1.Command('stop').description('Stop the PEAC Bridge').action(async () => {
44
- const peacDir = (0, path_1.join)((0, os_1.homedir)(), '.peac');
45
- const pidFile = (0, path_1.join)(peacDir, 'bridge.pid');
46
- const configFile = (0, path_1.join)(peacDir, 'bridge.json');
47
- // Check if PID file exists
48
- if (!(0, fs_1.existsSync)(pidFile)) {
49
- console.log('Bridge is not running (no PID file found)');
50
- return;
51
- }
52
- try {
53
- // Read PID from file
54
- const pidStr = (0, fs_1.readFileSync)(pidFile, 'utf-8').trim();
55
- const pid = parseInt(pidStr, 10);
56
- if (isNaN(pid)) {
57
- console.error('Invalid PID in bridge.pid file');
58
- (0, fs_1.unlinkSync)(pidFile);
59
- return;
60
- }
61
- // Check if process is running
62
- try {
63
- process.kill(pid, 0); // Signal 0 checks if process exists
64
- }
65
- catch (error) {
66
- if (error.code === 'ESRCH') {
67
- console.log('Bridge process not found (cleaning up stale PID file)');
68
- (0, fs_1.unlinkSync)(pidFile);
69
- return;
70
- }
71
- throw error;
72
- }
73
- // Stop the bridge process
74
- console.log(`Stopping PEAC Bridge (PID: ${pid})`);
75
- try {
76
- // Try graceful shutdown first (SIGTERM)
77
- await killProcess(pid, 'SIGTERM');
78
- // Wait a moment for graceful shutdown
79
- await new Promise((resolve) => setTimeout(resolve, 2000));
80
- // Check if still running
81
- try {
82
- process.kill(pid, 0);
83
- // Still running, force kill
84
- console.log('Force stopping bridge process...');
85
- await killProcess(pid, 'SIGKILL');
86
- }
87
- catch (error) {
88
- if (error.code === 'ESRCH') {
89
- // Process stopped gracefully
90
- console.log('Bridge stopped successfully');
91
- }
92
- }
93
- }
94
- catch (error) {
95
- if (error.code === 'ESRCH') {
96
- console.log('Bridge stopped successfully');
97
- }
98
- else {
99
- console.error('Failed to stop bridge:', error.message);
100
- return;
101
- }
102
- }
103
- // Clean up PID file
104
- (0, fs_1.unlinkSync)(pidFile);
105
- // Update config file
106
- if ((0, fs_1.existsSync)(configFile)) {
107
- try {
108
- const config = JSON.parse((0, fs_1.readFileSync)(configFile, 'utf-8'));
109
- delete config.pid;
110
- delete config.started_at;
111
- delete config.log_file;
112
- config.stopped_at = new Date().toISOString();
113
- (0, fs_1.writeFileSync)(configFile, JSON.stringify(config, null, 2));
114
- }
115
- catch (error) {
116
- // Config update failed, but bridge was stopped
117
- console.warn('Failed to update config file, but bridge was stopped');
118
- }
119
- }
120
- }
121
- catch (error) {
122
- console.error('Failed to stop bridge:', error.message);
123
- // Clean up potentially stale PID file
124
- if ((0, fs_1.existsSync)(pidFile)) {
125
- (0, fs_1.unlinkSync)(pidFile);
126
- }
127
- }
128
- });
129
- }
130
- //# sourceMappingURL=stop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/bridge/stop.ts"],"names":[],"mappings":"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"}