@vess-id/vess 0.2.0-alpha.1
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/LICENSE +64 -0
- package/README.md +223 -0
- package/bin/vess.js +2 -0
- package/dist/__mocks__/@napi-rs/keyring.d.ts +9 -0
- package/dist/__mocks__/@napi-rs/keyring.d.ts.map +1 -0
- package/dist/__mocks__/@napi-rs/keyring.js +33 -0
- package/dist/__mocks__/@napi-rs/keyring.js.map +1 -0
- package/dist/__mocks__/node-mac-auth.d.ts +8 -0
- package/dist/__mocks__/node-mac-auth.d.ts.map +1 -0
- package/dist/__mocks__/node-mac-auth.js +29 -0
- package/dist/__mocks__/node-mac-auth.js.map +1 -0
- package/dist/adapter/mcp/http-transport.d.ts +34 -0
- package/dist/adapter/mcp/http-transport.d.ts.map +1 -0
- package/dist/adapter/mcp/http-transport.js +158 -0
- package/dist/adapter/mcp/http-transport.js.map +1 -0
- package/dist/adapter/mcp/mcp-adapter.d.ts +37 -0
- package/dist/adapter/mcp/mcp-adapter.d.ts.map +1 -0
- package/dist/adapter/mcp/mcp-adapter.js +48 -0
- package/dist/adapter/mcp/mcp-adapter.js.map +1 -0
- package/dist/adapter/mcp/mcp-server.factory.d.ts +35 -0
- package/dist/adapter/mcp/mcp-server.factory.d.ts.map +1 -0
- package/dist/adapter/mcp/mcp-server.factory.js +114 -0
- package/dist/adapter/mcp/mcp-server.factory.js.map +1 -0
- package/dist/adapter/mcp/stdio-transport.d.ts +7 -0
- package/dist/adapter/mcp/stdio-transport.d.ts.map +1 -0
- package/dist/adapter/mcp/stdio-transport.js +13 -0
- package/dist/adapter/mcp/stdio-transport.js.map +1 -0
- package/dist/adapter/mcp/transport.d.ts +10 -0
- package/dist/adapter/mcp/transport.d.ts.map +1 -0
- package/dist/adapter/mcp/transport.js +14 -0
- package/dist/adapter/mcp/transport.js.map +1 -0
- package/dist/approval/approval-token.d.ts +23 -0
- package/dist/approval/approval-token.d.ts.map +1 -0
- package/dist/approval/approval-token.js +81 -0
- package/dist/approval/approval-token.js.map +1 -0
- package/dist/audit/audit-dto-mapper.d.ts +29 -0
- package/dist/audit/audit-dto-mapper.d.ts.map +1 -0
- package/dist/audit/audit-dto-mapper.js +61 -0
- package/dist/audit/audit-dto-mapper.js.map +1 -0
- package/dist/audit/audit-logger.d.ts +35 -0
- package/dist/audit/audit-logger.d.ts.map +1 -0
- package/dist/audit/audit-logger.js +67 -0
- package/dist/audit/audit-logger.js.map +1 -0
- package/dist/audit/audit-sync.d.ts +12 -0
- package/dist/audit/audit-sync.d.ts.map +1 -0
- package/dist/audit/audit-sync.js +65 -0
- package/dist/audit/audit-sync.js.map +1 -0
- package/dist/auth/user-authenticator.d.ts +51 -0
- package/dist/auth/user-authenticator.d.ts.map +1 -0
- package/dist/auth/user-authenticator.js +155 -0
- package/dist/auth/user-authenticator.js.map +1 -0
- package/dist/cli/cli-db.d.ts +12 -0
- package/dist/cli/cli-db.d.ts.map +1 -0
- package/dist/cli/cli-db.js +20 -0
- package/dist/cli/cli-db.js.map +1 -0
- package/dist/cli/cli-utils.d.ts +14 -0
- package/dist/cli/cli-utils.d.ts.map +1 -0
- package/dist/cli/cli-utils.js +57 -0
- package/dist/cli/cli-utils.js.map +1 -0
- package/dist/cli/daemon-utils.d.ts +30 -0
- package/dist/cli/daemon-utils.d.ts.map +1 -0
- package/dist/cli/daemon-utils.js +131 -0
- package/dist/cli/daemon-utils.js.map +1 -0
- package/dist/cli/daemon.d.ts +13 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +207 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +135 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/env-delete.d.ts +6 -0
- package/dist/cli/env-delete.d.ts.map +1 -0
- package/dist/cli/env-delete.js +80 -0
- package/dist/cli/env-delete.js.map +1 -0
- package/dist/cli/env-list.d.ts +5 -0
- package/dist/cli/env-list.d.ts.map +1 -0
- package/dist/cli/env-list.js +42 -0
- package/dist/cli/env-list.js.map +1 -0
- package/dist/cli/env-post-integration.d.ts +21 -0
- package/dist/cli/env-post-integration.d.ts.map +1 -0
- package/dist/cli/env-post-integration.js +300 -0
- package/dist/cli/env-post-integration.js.map +1 -0
- package/dist/cli/env-restore.d.ts +15 -0
- package/dist/cli/env-restore.d.ts.map +1 -0
- package/dist/cli/env-restore.js +130 -0
- package/dist/cli/env-restore.js.map +1 -0
- package/dist/cli/env.d.ts +14 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +182 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/error-handlers.d.ts +13 -0
- package/dist/cli/error-handlers.d.ts.map +1 -0
- package/dist/cli/error-handlers.js +32 -0
- package/dist/cli/error-handlers.js.map +1 -0
- package/dist/cli/hook-check-env.d.ts +12 -0
- package/dist/cli/hook-check-env.d.ts.map +1 -0
- package/dist/cli/hook-check-env.js +117 -0
- package/dist/cli/hook-check-env.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +294 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init-guard.d.ts +13 -0
- package/dist/cli/init-guard.d.ts.map +1 -0
- package/dist/cli/init-guard.js +62 -0
- package/dist/cli/init-guard.js.map +1 -0
- package/dist/cli/init.d.ts +19 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +440 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/install.d.ts +14 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +186 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/login.d.ts +6 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +76 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/logs.d.ts +32 -0
- package/dist/cli/logs.d.ts.map +1 -0
- package/dist/cli/logs.js +147 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/project.d.ts +8 -0
- package/dist/cli/project.d.ts.map +1 -0
- package/dist/cli/project.js +102 -0
- package/dist/cli/project.js.map +1 -0
- package/dist/cli/reset.d.ts +8 -0
- package/dist/cli/reset.d.ts.map +1 -0
- package/dist/cli/reset.js +137 -0
- package/dist/cli/reset.js.map +1 -0
- package/dist/cli/run.d.ts +22 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +103 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/start.d.ts +2 -0
- package/dist/cli/start.d.ts.map +1 -0
- package/dist/cli/start.js +29 -0
- package/dist/cli/start.js.map +1 -0
- package/dist/cli/status.d.ts +12 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +131 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/uninstall.d.ts +8 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +111 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +64 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/constants.d.ts +3 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +6 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/paths.d.ts +9 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +58 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/core/execution-engine.d.ts +119 -0
- package/dist/core/execution-engine.d.ts.map +1 -0
- package/dist/core/execution-engine.js +1291 -0
- package/dist/core/execution-engine.js.map +1 -0
- package/dist/core/runtime.d.ts +43 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +143 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/sync-scheduler.d.ts +42 -0
- package/dist/core/sync-scheduler.d.ts.map +1 -0
- package/dist/core/sync-scheduler.js +131 -0
- package/dist/core/sync-scheduler.js.map +1 -0
- package/dist/core/types.d.ts +77 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +7 -0
- package/dist/core/types.js.map +1 -0
- package/dist/daemon/service-manager.d.ts +68 -0
- package/dist/daemon/service-manager.d.ts.map +1 -0
- package/dist/daemon/service-manager.js +303 -0
- package/dist/daemon/service-manager.js.map +1 -0
- package/dist/env/env-classifier.d.ts +14 -0
- package/dist/env/env-classifier.d.ts.map +1 -0
- package/dist/env/env-classifier.js +94 -0
- package/dist/env/env-classifier.js.map +1 -0
- package/dist/env/env-parser.d.ts +13 -0
- package/dist/env/env-parser.d.ts.map +1 -0
- package/dist/env/env-parser.js +33 -0
- package/dist/env/env-parser.js.map +1 -0
- package/dist/env/env-profile-store.d.ts +15 -0
- package/dist/env/env-profile-store.d.ts.map +1 -0
- package/dist/env/env-profile-store.js +35 -0
- package/dist/env/env-profile-store.js.map +1 -0
- package/dist/env/env-reference.d.ts +10 -0
- package/dist/env/env-reference.d.ts.map +1 -0
- package/dist/env/env-reference.js +33 -0
- package/dist/env/env-reference.js.map +1 -0
- package/dist/env/env-resolver.d.ts +18 -0
- package/dist/env/env-resolver.d.ts.map +1 -0
- package/dist/env/env-resolver.js +48 -0
- package/dist/env/env-resolver.js.map +1 -0
- package/dist/env/fs-utils.d.ts +9 -0
- package/dist/env/fs-utils.d.ts.map +1 -0
- package/dist/env/fs-utils.js +59 -0
- package/dist/env/fs-utils.js.map +1 -0
- package/dist/env/secret-backend.d.ts +15 -0
- package/dist/env/secret-backend.d.ts.map +1 -0
- package/dist/env/secret-backend.js +24 -0
- package/dist/env/secret-backend.js.map +1 -0
- package/dist/executor/executor-registry.d.ts +22 -0
- package/dist/executor/executor-registry.d.ts.map +1 -0
- package/dist/executor/executor-registry.js +42 -0
- package/dist/executor/executor-registry.js.map +1 -0
- package/dist/executor/process-launcher.d.ts +26 -0
- package/dist/executor/process-launcher.d.ts.map +1 -0
- package/dist/executor/process-launcher.js +98 -0
- package/dist/executor/process-launcher.js.map +1 -0
- package/dist/executor/secret-file.d.ts +28 -0
- package/dist/executor/secret-file.d.ts.map +1 -0
- package/dist/executor/secret-file.js +127 -0
- package/dist/executor/secret-file.js.map +1 -0
- package/dist/gateway/auth.d.ts +26 -0
- package/dist/gateway/auth.d.ts.map +1 -0
- package/dist/gateway/auth.js +66 -0
- package/dist/gateway/auth.js.map +1 -0
- package/dist/gateway/gateway-client.d.ts +298 -0
- package/dist/gateway/gateway-client.d.ts.map +1 -0
- package/dist/gateway/gateway-client.js +501 -0
- package/dist/gateway/gateway-client.js.map +1 -0
- package/dist/identity/agent-identity.d.ts +29 -0
- package/dist/identity/agent-identity.d.ts.map +1 -0
- package/dist/identity/agent-identity.js +54 -0
- package/dist/identity/agent-identity.js.map +1 -0
- package/dist/identity/did-manager.d.ts +17 -0
- package/dist/identity/did-manager.d.ts.map +1 -0
- package/dist/identity/did-manager.js +29 -0
- package/dist/identity/did-manager.js.map +1 -0
- package/dist/identity/key-manager.d.ts +18 -0
- package/dist/identity/key-manager.d.ts.map +1 -0
- package/dist/identity/key-manager.js +101 -0
- package/dist/identity/key-manager.js.map +1 -0
- package/dist/identity/session-key.d.ts +13 -0
- package/dist/identity/session-key.d.ts.map +1 -0
- package/dist/identity/session-key.js +17 -0
- package/dist/identity/session-key.js.map +1 -0
- package/dist/policy/policy-evaluator.d.ts +63 -0
- package/dist/policy/policy-evaluator.d.ts.map +1 -0
- package/dist/policy/policy-evaluator.js +266 -0
- package/dist/policy/policy-evaluator.js.map +1 -0
- package/dist/policy/policy-loader.d.ts +10 -0
- package/dist/policy/policy-loader.d.ts.map +1 -0
- package/dist/policy/policy-loader.js +71 -0
- package/dist/policy/policy-loader.js.map +1 -0
- package/dist/policy/types.d.ts +21 -0
- package/dist/policy/types.d.ts.map +1 -0
- package/dist/policy/types.js +3 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/utils/credential-errors.d.ts +3 -0
- package/dist/utils/credential-errors.d.ts.map +1 -0
- package/dist/utils/credential-errors.js +23 -0
- package/dist/utils/credential-errors.js.map +1 -0
- package/dist/utils/resource-canonicalizer.d.ts +19 -0
- package/dist/utils/resource-canonicalizer.d.ts.map +1 -0
- package/dist/utils/resource-canonicalizer.js +100 -0
- package/dist/utils/resource-canonicalizer.js.map +1 -0
- package/dist/utils/vc-utils.d.ts +23 -0
- package/dist/utils/vc-utils.d.ts.map +1 -0
- package/dist/utils/vc-utils.js +53 -0
- package/dist/utils/vc-utils.js.map +1 -0
- package/dist/wallet/sqlite.d.ts +4 -0
- package/dist/wallet/sqlite.d.ts.map +1 -0
- package/dist/wallet/sqlite.js +158 -0
- package/dist/wallet/sqlite.js.map +1 -0
- package/dist/wallet/vp-builder.d.ts +18 -0
- package/dist/wallet/vp-builder.d.ts.map +1 -0
- package/dist/wallet/vp-builder.js +46 -0
- package/dist/wallet/vp-builder.js.map +1 -0
- package/dist/wallet/wallet.d.ts +58 -0
- package/dist/wallet/wallet.d.ts.map +1 -0
- package/dist/wallet/wallet.js +170 -0
- package/dist/wallet/wallet.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runDaemonStart = runDaemonStart;
|
|
37
|
+
exports.runDaemonStop = runDaemonStop;
|
|
38
|
+
/**
|
|
39
|
+
* `vess daemon` CLI command — start/stop for daemon mode.
|
|
40
|
+
*
|
|
41
|
+
* Daemon start flow:
|
|
42
|
+
* 1. Initialize runtime (config, DB, policies, wallet, audit, engine factories)
|
|
43
|
+
* 2. Start HTTP transport with runtime.createMcpServer as factory
|
|
44
|
+
* 3. Write PID to ~/.vess/daemon.pid
|
|
45
|
+
* 4. Write port to ~/.vess/daemon.port
|
|
46
|
+
* 5. Graceful shutdown on SIGINT/SIGTERM
|
|
47
|
+
*/
|
|
48
|
+
const path = __importStar(require("node:path"));
|
|
49
|
+
const paths_1 = require("../config/paths");
|
|
50
|
+
const constants_1 = require("../config/constants");
|
|
51
|
+
const config_1 = require("../config/config");
|
|
52
|
+
const runtime_1 = require("../core/runtime");
|
|
53
|
+
const http_transport_1 = require("../adapter/mcp/http-transport");
|
|
54
|
+
const key_manager_1 = require("../identity/key-manager");
|
|
55
|
+
const daemon_utils_1 = require("./daemon-utils");
|
|
56
|
+
const error_handlers_1 = require("./error-handlers");
|
|
57
|
+
const DEFAULT_PORT = constants_1.DEFAULT_DAEMON_PORT;
|
|
58
|
+
const DEFAULT_HOST = '127.0.0.1';
|
|
59
|
+
function getPidFilePath() {
|
|
60
|
+
const paths = new paths_1.VessPaths();
|
|
61
|
+
return path.join(paths.baseDir, 'daemon.pid');
|
|
62
|
+
}
|
|
63
|
+
function getPortFilePath() {
|
|
64
|
+
const paths = new paths_1.VessPaths();
|
|
65
|
+
return path.join(paths.baseDir, 'daemon.port');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Start the daemon in foreground mode.
|
|
69
|
+
*/
|
|
70
|
+
async function runDaemonStart(opts) {
|
|
71
|
+
const port = opts.port ?? DEFAULT_PORT;
|
|
72
|
+
const host = opts.host ?? DEFAULT_HOST;
|
|
73
|
+
// Validate host — MCP endpoint has no authentication, must only listen on loopback
|
|
74
|
+
const LOOPBACK_HOSTS = ['127.0.0.1', '::1', 'localhost'];
|
|
75
|
+
if (!LOOPBACK_HOSTS.includes(host)) {
|
|
76
|
+
console.error(`Error: Refusing to bind to ${host}. ` +
|
|
77
|
+
'The MCP endpoint has no authentication and MUST only listen on loopback addresses (127.0.0.1).');
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
// Validate port
|
|
81
|
+
if (!Number.isInteger(port) || port < 1024 || port > 65535) {
|
|
82
|
+
console.error(`Error: Invalid port ${port}. Must be an integer between 1024 and 65535.`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
const pidFile = getPidFilePath();
|
|
86
|
+
const portFile = getPortFilePath();
|
|
87
|
+
// Check if daemon is already running
|
|
88
|
+
const existingPid = (0, daemon_utils_1.readPidFile)(pidFile);
|
|
89
|
+
if (existingPid !== null && (0, daemon_utils_1.isDaemonRunning)(existingPid)) {
|
|
90
|
+
const existingPort = (0, daemon_utils_1.readPortFile)(portFile);
|
|
91
|
+
console.error(`Daemon is already running (PID ${existingPid}` +
|
|
92
|
+
(existingPort ? `, port ${existingPort}` : '') +
|
|
93
|
+
'). Use "vess daemon stop" to stop it.');
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
// Clean up stale PID file
|
|
97
|
+
if (existingPid !== null) {
|
|
98
|
+
(0, daemon_utils_1.removePidFile)(pidFile);
|
|
99
|
+
(0, daemon_utils_1.removePortFile)(portFile);
|
|
100
|
+
}
|
|
101
|
+
// Initialize runtime
|
|
102
|
+
const runtime = await (0, runtime_1.initializeRuntime)();
|
|
103
|
+
// Start HTTP transport with async MCP server factory.
|
|
104
|
+
// All daemon sessions share the same clientName so they resolve to one Agent DID.
|
|
105
|
+
// TODO: Extract actual clientInfo from MCP initialize handshake when available.
|
|
106
|
+
const defaultClientName = 'claude-code';
|
|
107
|
+
// Pre-create auth-check dependencies once (avoid re-instantiation on every health check)
|
|
108
|
+
const km = new key_manager_1.KeyManager();
|
|
109
|
+
const vessPaths = new paths_1.VessPaths();
|
|
110
|
+
const config = (0, config_1.loadConfig)(vessPaths.configFile);
|
|
111
|
+
let httpHandle;
|
|
112
|
+
try {
|
|
113
|
+
httpHandle = await (0, http_transport_1.startHttpTransport)(async () => {
|
|
114
|
+
const { server, setClientInfo } = await runtime.createMcpServer(defaultClientName);
|
|
115
|
+
return { server, onClientInfo: setClientInfo };
|
|
116
|
+
}, port, host, {
|
|
117
|
+
healthCheck: () => {
|
|
118
|
+
// Check DB accessibility
|
|
119
|
+
let dbOk = false;
|
|
120
|
+
try {
|
|
121
|
+
runtime.db.prepare('SELECT 1').get();
|
|
122
|
+
dbOk = true;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// DB is not accessible
|
|
126
|
+
}
|
|
127
|
+
// Check if session token exists (auth proxy)
|
|
128
|
+
let authOk = false;
|
|
129
|
+
try {
|
|
130
|
+
authOk = !!(km.getSessionToken() || config.deviceSessionToken);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// Auth check failed
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
auth: authOk,
|
|
137
|
+
db: dbOk,
|
|
138
|
+
lastSync: runtime.syncScheduler.getLastSyncTime(),
|
|
139
|
+
uptime: process.uptime(),
|
|
140
|
+
};
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
runtime.cleanup();
|
|
146
|
+
throw err;
|
|
147
|
+
}
|
|
148
|
+
// Write PID and port files
|
|
149
|
+
(0, daemon_utils_1.writePidFile)(pidFile, process.pid);
|
|
150
|
+
(0, daemon_utils_1.writePortFile)(portFile, port);
|
|
151
|
+
console.error(`VESS daemon started on ${host}:${port} (PID ${process.pid})`);
|
|
152
|
+
// Graceful shutdown (guarded against concurrent invocation from signals + uncaught exceptions)
|
|
153
|
+
let isShuttingDown = false;
|
|
154
|
+
const shutdown = async () => {
|
|
155
|
+
if (isShuttingDown)
|
|
156
|
+
return;
|
|
157
|
+
isShuttingDown = true;
|
|
158
|
+
process.stderr.write('Shutting down VESS daemon...\n');
|
|
159
|
+
httpHandle.close();
|
|
160
|
+
// Give in-flight requests a moment to complete
|
|
161
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
162
|
+
runtime.cleanup();
|
|
163
|
+
(0, daemon_utils_1.removePidFile)(pidFile);
|
|
164
|
+
(0, daemon_utils_1.removePortFile)(portFile);
|
|
165
|
+
process.exit(0);
|
|
166
|
+
};
|
|
167
|
+
// Install global error handlers to prevent silent crashes
|
|
168
|
+
(0, error_handlers_1.installGlobalErrorHandlers)({
|
|
169
|
+
onFatalError: () => {
|
|
170
|
+
shutdown().catch(() => process.exit(1));
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
process.on('SIGINT', () => { shutdown(); });
|
|
174
|
+
process.on('SIGTERM', () => { shutdown(); });
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Stop the running daemon.
|
|
178
|
+
*/
|
|
179
|
+
function runDaemonStop() {
|
|
180
|
+
const pidFile = getPidFilePath();
|
|
181
|
+
const portFile = getPortFilePath();
|
|
182
|
+
const pid = (0, daemon_utils_1.readPidFile)(pidFile);
|
|
183
|
+
if (pid === null) {
|
|
184
|
+
console.error('No daemon PID file found. Daemon may not be running.');
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
if (!(0, daemon_utils_1.isDaemonRunning)(pid)) {
|
|
188
|
+
console.error(`Daemon process ${pid} is not running. Cleaning up stale PID file.`);
|
|
189
|
+
(0, daemon_utils_1.removePidFile)(pidFile);
|
|
190
|
+
(0, daemon_utils_1.removePortFile)(portFile);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
// Send SIGTERM to the daemon process
|
|
194
|
+
try {
|
|
195
|
+
process.kill(pid, 'SIGTERM');
|
|
196
|
+
console.error(`Sent SIGTERM to daemon (PID ${pid}).`);
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
console.error(`Failed to stop daemon: ${err instanceof Error ? err.message : String(err)}`);
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
// Clean up PID/port files (daemon should also clean up on shutdown,
|
|
203
|
+
// but we do it here too in case it doesn't)
|
|
204
|
+
(0, daemon_utils_1.removePidFile)(pidFile);
|
|
205
|
+
(0, daemon_utils_1.removePortFile)(portFile);
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAaA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgG/C"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runDoctor = runDoctor;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const paths_1 = require("../config/paths");
|
|
41
|
+
const config_1 = require("../config/config");
|
|
42
|
+
const key_manager_1 = require("../identity/key-manager");
|
|
43
|
+
async function runDoctor() {
|
|
44
|
+
const paths = new paths_1.VessPaths();
|
|
45
|
+
const results = [];
|
|
46
|
+
// 1. Config file
|
|
47
|
+
results.push({
|
|
48
|
+
name: 'Config file (~/.vess/config.json)',
|
|
49
|
+
passed: fs.existsSync(paths.configFile),
|
|
50
|
+
});
|
|
51
|
+
// 2. Policy file
|
|
52
|
+
results.push({
|
|
53
|
+
name: 'Policy file (~/.vess/policy.json)',
|
|
54
|
+
passed: fs.existsSync(paths.policyFile),
|
|
55
|
+
});
|
|
56
|
+
// 3. Wallet database
|
|
57
|
+
results.push({
|
|
58
|
+
name: 'Wallet database (~/.vess/wallet.db)',
|
|
59
|
+
passed: fs.existsSync(paths.walletDb),
|
|
60
|
+
});
|
|
61
|
+
// 4. Root key in keychain
|
|
62
|
+
const keyManager = new key_manager_1.KeyManager();
|
|
63
|
+
let rootKeyExists = false;
|
|
64
|
+
try {
|
|
65
|
+
rootKeyExists = keyManager.getRootKey() !== null;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
rootKeyExists = false;
|
|
69
|
+
}
|
|
70
|
+
results.push({
|
|
71
|
+
name: 'Root key in OS Keychain',
|
|
72
|
+
passed: rootKeyExists,
|
|
73
|
+
});
|
|
74
|
+
// 5. Device session token
|
|
75
|
+
const config = (0, config_1.loadConfig)(paths.configFile);
|
|
76
|
+
const hasSessionToken = keyManager.getSessionToken() !== null || !!config.deviceSessionToken;
|
|
77
|
+
results.push({
|
|
78
|
+
name: 'Device session token',
|
|
79
|
+
passed: hasSessionToken,
|
|
80
|
+
});
|
|
81
|
+
// 6. Gateway connectivity
|
|
82
|
+
let gatewayOk = false;
|
|
83
|
+
try {
|
|
84
|
+
const response = await fetch(`${config.gatewayUrl}/health`, {
|
|
85
|
+
signal: AbortSignal.timeout(5000),
|
|
86
|
+
});
|
|
87
|
+
gatewayOk = response.ok;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
gatewayOk = false;
|
|
91
|
+
}
|
|
92
|
+
results.push({
|
|
93
|
+
name: `Gateway connectivity (${config.gatewayUrl})`,
|
|
94
|
+
passed: gatewayOk,
|
|
95
|
+
detail: gatewayOk ? undefined : 'timeout or unreachable',
|
|
96
|
+
});
|
|
97
|
+
// 7. Claude Code MCP registration
|
|
98
|
+
const claudeConfigPaths = [
|
|
99
|
+
path.join(os.homedir(), '.claude.json'), // matches install.ts
|
|
100
|
+
];
|
|
101
|
+
let claudeRegistered = false;
|
|
102
|
+
for (const p of claudeConfigPaths) {
|
|
103
|
+
if (fs.existsSync(p)) {
|
|
104
|
+
try {
|
|
105
|
+
const content = fs.readFileSync(p, 'utf-8');
|
|
106
|
+
if (content.includes('vess')) {
|
|
107
|
+
claudeRegistered = true;
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch { }
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
results.push({
|
|
115
|
+
name: 'Claude Code MCP registration',
|
|
116
|
+
passed: claudeRegistered,
|
|
117
|
+
detail: claudeRegistered ? undefined : 'Add vess to Claude Code MCP config',
|
|
118
|
+
});
|
|
119
|
+
// Output
|
|
120
|
+
console.log('\nVESS Doctor');
|
|
121
|
+
console.log('-----------');
|
|
122
|
+
for (const r of results) {
|
|
123
|
+
const status = r.passed ? '[PASS]' : '[FAIL]';
|
|
124
|
+
const detail = r.detail ? ` (${r.detail})` : '';
|
|
125
|
+
console.log(`${status} ${r.name}${detail}`);
|
|
126
|
+
}
|
|
127
|
+
const failCount = results.filter(r => !r.passed).length;
|
|
128
|
+
if (failCount > 0) {
|
|
129
|
+
console.log(`\n${failCount} check(s) failed. Run "vess init" to fix setup issues.`);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.log('\nAll checks passed!');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-delete.d.ts","sourceRoot":"","sources":["../../src/cli/env-delete.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+E3E"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runEnvDelete = runEnvDelete;
|
|
4
|
+
const key_manager_1 = require("../identity/key-manager");
|
|
5
|
+
const cli_db_1 = require("./cli-db");
|
|
6
|
+
const cli_utils_1 = require("./cli-utils");
|
|
7
|
+
const user_authenticator_1 = require("../auth/user-authenticator");
|
|
8
|
+
async function runEnvDelete(options) {
|
|
9
|
+
const { profile, keys: targetKeys } = options;
|
|
10
|
+
// 1. Load profile keys
|
|
11
|
+
const ctx = (0, cli_db_1.openProfileStore)('env delete');
|
|
12
|
+
if (!ctx)
|
|
13
|
+
return;
|
|
14
|
+
const { db, profileStore } = ctx;
|
|
15
|
+
try {
|
|
16
|
+
const existingKeys = profileStore.listKeys(profile);
|
|
17
|
+
if (existingKeys.length === 0) {
|
|
18
|
+
throw new Error(`No secrets found for profile '${profile}'`);
|
|
19
|
+
}
|
|
20
|
+
// 2. Determine which keys to delete
|
|
21
|
+
const existingKeyNames = new Set(existingKeys.map(k => k.keyName));
|
|
22
|
+
let keysToDelete;
|
|
23
|
+
if (targetKeys) {
|
|
24
|
+
keysToDelete = [];
|
|
25
|
+
for (const k of targetKeys) {
|
|
26
|
+
if (existingKeyNames.has(k)) {
|
|
27
|
+
keysToDelete.push(k);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
(0, cli_utils_1.log)(`[vess] Warning: key '${k}' not found in profile '${profile}', skipping`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (keysToDelete.length === 0) {
|
|
34
|
+
(0, cli_utils_1.log)(`[vess] No matching keys to delete`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
keysToDelete = existingKeys.map(k => k.keyName);
|
|
40
|
+
}
|
|
41
|
+
// 3. Authenticate
|
|
42
|
+
const authenticator = (0, user_authenticator_1.createAuthenticator)();
|
|
43
|
+
const available = await authenticator.isAvailable();
|
|
44
|
+
if (!available) {
|
|
45
|
+
throw new user_authenticator_1.AuthenticationUnavailableError('Authentication is required to delete secrets. Not available on this platform.');
|
|
46
|
+
}
|
|
47
|
+
const action = targetKeys
|
|
48
|
+
? `delete ${keysToDelete.length} key(s) from profile '${profile}'`
|
|
49
|
+
: `delete all ${keysToDelete.length} keys from profile '${profile}'`;
|
|
50
|
+
(0, cli_utils_1.log)(`[vess] Requesting authentication to ${action}...`);
|
|
51
|
+
await authenticator.authenticate(`VESS wants to ${action}`);
|
|
52
|
+
// 4. Delete from Keychain + metadata
|
|
53
|
+
const keyManager = new key_manager_1.KeyManager();
|
|
54
|
+
let deletedCount = 0;
|
|
55
|
+
let failedCount = 0;
|
|
56
|
+
for (const keyName of keysToDelete) {
|
|
57
|
+
try {
|
|
58
|
+
keyManager.deleteEnvSecret(profile, keyName);
|
|
59
|
+
profileStore.removeKey(profile, keyName);
|
|
60
|
+
deletedCount++;
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
(0, cli_utils_1.log)(`[vess] Warning: failed to delete '${keyName}': ${err instanceof Error ? err.message : String(err)}`);
|
|
64
|
+
failedCount++;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// If entire profile deleted, also remove profile-level metadata
|
|
68
|
+
if (!targetKeys && failedCount === 0) {
|
|
69
|
+
profileStore.removeProfile(profile);
|
|
70
|
+
}
|
|
71
|
+
(0, cli_utils_1.log)(`[vess] Deleted ${deletedCount} secret(s) from profile '${profile}'`);
|
|
72
|
+
if (failedCount > 0) {
|
|
73
|
+
(0, cli_utils_1.log)(`[vess] ${failedCount} key(s) failed to delete`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
db.close();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=env-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-delete.js","sourceRoot":"","sources":["../../src/cli/env-delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-list.d.ts","sourceRoot":"","sources":["../../src/cli/env-list.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC5E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runEnvList = runEnvList;
|
|
4
|
+
const cli_db_1 = require("./cli-db");
|
|
5
|
+
const cli_utils_1 = require("./cli-utils");
|
|
6
|
+
async function runEnvList(options = {}) {
|
|
7
|
+
const ctx = (0, cli_db_1.openProfileStore)('env list');
|
|
8
|
+
if (!ctx)
|
|
9
|
+
return;
|
|
10
|
+
const { db, profileStore } = ctx;
|
|
11
|
+
try {
|
|
12
|
+
if (options.profile) {
|
|
13
|
+
const keys = profileStore.listKeys(options.profile);
|
|
14
|
+
if (keys.length === 0) {
|
|
15
|
+
(0, cli_utils_1.log)(`[vess] No keys found for profile '${options.profile}'`);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
(0, cli_utils_1.log)(`[vess] Profile: ${options.profile} (${keys.length} keys)`);
|
|
19
|
+
for (const { keyName, backendType } of keys) {
|
|
20
|
+
(0, cli_utils_1.log)(` ${keyName} [${backendType}]`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
const profiles = profileStore.listProfiles();
|
|
25
|
+
if (profiles.length === 0) {
|
|
26
|
+
(0, cli_utils_1.log)('[vess] No env profiles found');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
for (const profile of profiles) {
|
|
30
|
+
const keys = profileStore.listKeys(profile);
|
|
31
|
+
(0, cli_utils_1.log)(`[vess] Profile: ${profile} (${keys.length} keys)`);
|
|
32
|
+
for (const { keyName, backendType } of keys) {
|
|
33
|
+
(0, cli_utils_1.log)(` ${keyName} [${backendType}]`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
db.close();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=env-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-list.js","sourceRoot":"","sources":["../../src/cli/env-list.ts"],"names":[],"mappings":";;AAOA,gCAkCC;AAzCD,qCAA2C;AAC3C,2CAAiC;AAM1B,KAAK,UAAU,UAAU,CAAC,UAA0B,EAAE;IAC3D,MAAM,GAAG,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,CAAA;IACxC,IAAI,CAAC,GAAG;QAAE,OAAM;IAEhB,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,GAAG,CAAA;IAEhC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAA,eAAG,EAAC,qCAAqC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC5D,OAAM;YACR,CAAC;YACD,IAAA,eAAG,EAAC,mBAAmB,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAA;YAC/D,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC5C,IAAA,eAAG,EAAC,KAAK,OAAO,MAAM,WAAW,GAAG,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,CAAA;YAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAA,eAAG,EAAC,8BAA8B,CAAC,CAAA;gBACnC,OAAM;YACR,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC3C,IAAA,eAAG,EAAC,mBAAmB,OAAO,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAA;gBACvD,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;oBAC5C,IAAA,eAAG,EAAC,KAAK,OAAO,MAAM,WAAW,GAAG,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ScriptSelection {
|
|
2
|
+
selected: string[];
|
|
3
|
+
unselected: string[];
|
|
4
|
+
}
|
|
5
|
+
export declare function detectScriptsToWrap(scripts: Record<string, string>): ScriptSelection;
|
|
6
|
+
export declare function wrapPackageJsonScripts(pkgPath: string, scriptNames: string[]): string[];
|
|
7
|
+
export declare function appendClaudeMd(claudeMdPath: string, scriptsWrapped: boolean): 'created' | 'appended' | 'skipped';
|
|
8
|
+
export declare function mergeClaudeHook(settingsDir: string): 'created' | 'merged' | 'skipped';
|
|
9
|
+
export declare function findPackageJsonRoot(startDir: string): string | null;
|
|
10
|
+
export interface PostIntegrationOptions {
|
|
11
|
+
envFileDir: string;
|
|
12
|
+
skipIntegration?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PostIntegrationResult {
|
|
15
|
+
scriptsWrapped: boolean;
|
|
16
|
+
claudeMdResult: 'created' | 'appended' | 'skipped' | 'declined';
|
|
17
|
+
hookResult: 'created' | 'merged' | 'skipped' | 'declined';
|
|
18
|
+
wrappedScriptNames: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function runPostIntegration(options: PostIntegrationOptions): Promise<PostIntegrationResult>;
|
|
21
|
+
//# sourceMappingURL=env-post-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-post-integration.d.ts","sourceRoot":"","sources":["../../src/cli/env-post-integration.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,eAAe,CA0BpF;AAID,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,CAkCV;AA2BD,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,OAAO,GACtB,SAAS,GAAG,UAAU,GAAG,SAAS,CAepC;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAyCrF;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnE;AAID,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,OAAO,CAAA;IACvB,cAAc,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IAC/D,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;IACzD,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAC7B;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA0GhC"}
|