@vess-id/vess 0.0.0-dev-20260902121045

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 (321) hide show
  1. package/LICENSE +64 -0
  2. package/README.md +215 -0
  3. package/bin/vess.js +2 -0
  4. package/dist/__mocks__/@napi-rs/keyring.d.ts +9 -0
  5. package/dist/__mocks__/@napi-rs/keyring.d.ts.map +1 -0
  6. package/dist/__mocks__/@napi-rs/keyring.js +33 -0
  7. package/dist/__mocks__/@napi-rs/keyring.js.map +1 -0
  8. package/dist/__mocks__/node-mac-auth.d.ts +8 -0
  9. package/dist/__mocks__/node-mac-auth.d.ts.map +1 -0
  10. package/dist/__mocks__/node-mac-auth.js +29 -0
  11. package/dist/__mocks__/node-mac-auth.js.map +1 -0
  12. package/dist/adapter/mcp/http-transport.d.ts +40 -0
  13. package/dist/adapter/mcp/http-transport.d.ts.map +1 -0
  14. package/dist/adapter/mcp/http-transport.js +228 -0
  15. package/dist/adapter/mcp/http-transport.js.map +1 -0
  16. package/dist/adapter/mcp/mcp-adapter.d.ts +43 -0
  17. package/dist/adapter/mcp/mcp-adapter.d.ts.map +1 -0
  18. package/dist/adapter/mcp/mcp-adapter.js +65 -0
  19. package/dist/adapter/mcp/mcp-adapter.js.map +1 -0
  20. package/dist/adapter/mcp/mcp-server.factory.d.ts +44 -0
  21. package/dist/adapter/mcp/mcp-server.factory.d.ts.map +1 -0
  22. package/dist/adapter/mcp/mcp-server.factory.js +311 -0
  23. package/dist/adapter/mcp/mcp-server.factory.js.map +1 -0
  24. package/dist/adapter/mcp/stdio-transport.d.ts +7 -0
  25. package/dist/adapter/mcp/stdio-transport.d.ts.map +1 -0
  26. package/dist/adapter/mcp/stdio-transport.js +13 -0
  27. package/dist/adapter/mcp/stdio-transport.js.map +1 -0
  28. package/dist/adapter/mcp/transport.d.ts +10 -0
  29. package/dist/adapter/mcp/transport.d.ts.map +1 -0
  30. package/dist/adapter/mcp/transport.js +14 -0
  31. package/dist/adapter/mcp/transport.js.map +1 -0
  32. package/dist/approval/approval-token.d.ts +23 -0
  33. package/dist/approval/approval-token.d.ts.map +1 -0
  34. package/dist/approval/approval-token.js +81 -0
  35. package/dist/approval/approval-token.js.map +1 -0
  36. package/dist/audit/audit-dto-mapper.d.ts +29 -0
  37. package/dist/audit/audit-dto-mapper.d.ts.map +1 -0
  38. package/dist/audit/audit-dto-mapper.js +61 -0
  39. package/dist/audit/audit-dto-mapper.js.map +1 -0
  40. package/dist/audit/audit-logger.d.ts +35 -0
  41. package/dist/audit/audit-logger.d.ts.map +1 -0
  42. package/dist/audit/audit-logger.js +67 -0
  43. package/dist/audit/audit-logger.js.map +1 -0
  44. package/dist/audit/audit-sync.d.ts +12 -0
  45. package/dist/audit/audit-sync.d.ts.map +1 -0
  46. package/dist/audit/audit-sync.js +65 -0
  47. package/dist/audit/audit-sync.js.map +1 -0
  48. package/dist/auth/user-authenticator.d.ts +51 -0
  49. package/dist/auth/user-authenticator.d.ts.map +1 -0
  50. package/dist/auth/user-authenticator.js +155 -0
  51. package/dist/auth/user-authenticator.js.map +1 -0
  52. package/dist/bootstrap/sdk-precheck.d.ts +9 -0
  53. package/dist/bootstrap/sdk-precheck.d.ts.map +1 -0
  54. package/dist/bootstrap/sdk-precheck.js +103 -0
  55. package/dist/bootstrap/sdk-precheck.js.map +1 -0
  56. package/dist/cli/claude-config-path.d.ts +17 -0
  57. package/dist/cli/claude-config-path.d.ts.map +1 -0
  58. package/dist/cli/claude-config-path.js +59 -0
  59. package/dist/cli/claude-config-path.js.map +1 -0
  60. package/dist/cli/cli-db.d.ts +12 -0
  61. package/dist/cli/cli-db.d.ts.map +1 -0
  62. package/dist/cli/cli-db.js +20 -0
  63. package/dist/cli/cli-db.js.map +1 -0
  64. package/dist/cli/cli-utils.d.ts +14 -0
  65. package/dist/cli/cli-utils.d.ts.map +1 -0
  66. package/dist/cli/cli-utils.js +57 -0
  67. package/dist/cli/cli-utils.js.map +1 -0
  68. package/dist/cli/daemon-utils.d.ts +30 -0
  69. package/dist/cli/daemon-utils.d.ts.map +1 -0
  70. package/dist/cli/daemon-utils.js +131 -0
  71. package/dist/cli/daemon-utils.js.map +1 -0
  72. package/dist/cli/daemon.d.ts +13 -0
  73. package/dist/cli/daemon.d.ts.map +1 -0
  74. package/dist/cli/daemon.js +207 -0
  75. package/dist/cli/daemon.js.map +1 -0
  76. package/dist/cli/doctor.d.ts +6 -0
  77. package/dist/cli/doctor.d.ts.map +1 -0
  78. package/dist/cli/doctor.js +136 -0
  79. package/dist/cli/doctor.js.map +1 -0
  80. package/dist/cli/env-delete.d.ts +6 -0
  81. package/dist/cli/env-delete.d.ts.map +1 -0
  82. package/dist/cli/env-delete.js +80 -0
  83. package/dist/cli/env-delete.js.map +1 -0
  84. package/dist/cli/env-list.d.ts +5 -0
  85. package/dist/cli/env-list.d.ts.map +1 -0
  86. package/dist/cli/env-list.js +42 -0
  87. package/dist/cli/env-list.js.map +1 -0
  88. package/dist/cli/env-post-integration.d.ts +21 -0
  89. package/dist/cli/env-post-integration.d.ts.map +1 -0
  90. package/dist/cli/env-post-integration.js +300 -0
  91. package/dist/cli/env-post-integration.js.map +1 -0
  92. package/dist/cli/env-restore.d.ts +15 -0
  93. package/dist/cli/env-restore.d.ts.map +1 -0
  94. package/dist/cli/env-restore.js +130 -0
  95. package/dist/cli/env-restore.js.map +1 -0
  96. package/dist/cli/env.d.ts +14 -0
  97. package/dist/cli/env.d.ts.map +1 -0
  98. package/dist/cli/env.js +182 -0
  99. package/dist/cli/env.js.map +1 -0
  100. package/dist/cli/error-handlers.d.ts +13 -0
  101. package/dist/cli/error-handlers.d.ts.map +1 -0
  102. package/dist/cli/error-handlers.js +32 -0
  103. package/dist/cli/error-handlers.js.map +1 -0
  104. package/dist/cli/hook-check-env.d.ts +12 -0
  105. package/dist/cli/hook-check-env.d.ts.map +1 -0
  106. package/dist/cli/hook-check-env.js +117 -0
  107. package/dist/cli/hook-check-env.js.map +1 -0
  108. package/dist/cli/hook-session-project.d.ts +10 -0
  109. package/dist/cli/hook-session-project.d.ts.map +1 -0
  110. package/dist/cli/hook-session-project.js +206 -0
  111. package/dist/cli/hook-session-project.js.map +1 -0
  112. package/dist/cli/index.d.ts +2 -0
  113. package/dist/cli/index.d.ts.map +1 -0
  114. package/dist/cli/index.js +361 -0
  115. package/dist/cli/index.js.map +1 -0
  116. package/dist/cli/init-guard.d.ts +13 -0
  117. package/dist/cli/init-guard.d.ts.map +1 -0
  118. package/dist/cli/init-guard.js +62 -0
  119. package/dist/cli/init-guard.js.map +1 -0
  120. package/dist/cli/init.d.ts +19 -0
  121. package/dist/cli/init.d.ts.map +1 -0
  122. package/dist/cli/init.js +440 -0
  123. package/dist/cli/init.js.map +1 -0
  124. package/dist/cli/install.d.ts +14 -0
  125. package/dist/cli/install.d.ts.map +1 -0
  126. package/dist/cli/install.js +183 -0
  127. package/dist/cli/install.js.map +1 -0
  128. package/dist/cli/login.d.ts +6 -0
  129. package/dist/cli/login.d.ts.map +1 -0
  130. package/dist/cli/login.js +76 -0
  131. package/dist/cli/login.js.map +1 -0
  132. package/dist/cli/logs.d.ts +32 -0
  133. package/dist/cli/logs.d.ts.map +1 -0
  134. package/dist/cli/logs.js +147 -0
  135. package/dist/cli/logs.js.map +1 -0
  136. package/dist/cli/otel-headers.d.ts +12 -0
  137. package/dist/cli/otel-headers.d.ts.map +1 -0
  138. package/dist/cli/otel-headers.js +38 -0
  139. package/dist/cli/otel-headers.js.map +1 -0
  140. package/dist/cli/project.d.ts +8 -0
  141. package/dist/cli/project.d.ts.map +1 -0
  142. package/dist/cli/project.js +102 -0
  143. package/dist/cli/project.js.map +1 -0
  144. package/dist/cli/reset.d.ts +8 -0
  145. package/dist/cli/reset.d.ts.map +1 -0
  146. package/dist/cli/reset.js +137 -0
  147. package/dist/cli/reset.js.map +1 -0
  148. package/dist/cli/run.d.ts +22 -0
  149. package/dist/cli/run.d.ts.map +1 -0
  150. package/dist/cli/run.js +103 -0
  151. package/dist/cli/run.js.map +1 -0
  152. package/dist/cli/start.d.ts +2 -0
  153. package/dist/cli/start.d.ts.map +1 -0
  154. package/dist/cli/start.js +29 -0
  155. package/dist/cli/start.js.map +1 -0
  156. package/dist/cli/status.d.ts +12 -0
  157. package/dist/cli/status.d.ts.map +1 -0
  158. package/dist/cli/status.js +131 -0
  159. package/dist/cli/status.js.map +1 -0
  160. package/dist/cli/telemetry-setup.d.ts +27 -0
  161. package/dist/cli/telemetry-setup.d.ts.map +1 -0
  162. package/dist/cli/telemetry-setup.js +157 -0
  163. package/dist/cli/telemetry-setup.js.map +1 -0
  164. package/dist/cli/uninstall.d.ts +8 -0
  165. package/dist/cli/uninstall.d.ts.map +1 -0
  166. package/dist/cli/uninstall.js +110 -0
  167. package/dist/cli/uninstall.js.map +1 -0
  168. package/dist/cli/version.d.ts +2 -0
  169. package/dist/cli/version.d.ts.map +1 -0
  170. package/dist/cli/version.js +10 -0
  171. package/dist/cli/version.js.map +1 -0
  172. package/dist/config/config.d.ts +10 -0
  173. package/dist/config/config.d.ts.map +1 -0
  174. package/dist/config/config.js +64 -0
  175. package/dist/config/config.js.map +1 -0
  176. package/dist/config/constants.d.ts +11 -0
  177. package/dist/config/constants.d.ts.map +1 -0
  178. package/dist/config/constants.js +14 -0
  179. package/dist/config/constants.js.map +1 -0
  180. package/dist/config/paths.d.ts +9 -0
  181. package/dist/config/paths.d.ts.map +1 -0
  182. package/dist/config/paths.js +58 -0
  183. package/dist/config/paths.js.map +1 -0
  184. package/dist/config/version.d.ts +3 -0
  185. package/dist/config/version.d.ts.map +1 -0
  186. package/dist/config/version.js +80 -0
  187. package/dist/config/version.js.map +1 -0
  188. package/dist/core/execution-engine.d.ts +289 -0
  189. package/dist/core/execution-engine.d.ts.map +1 -0
  190. package/dist/core/execution-engine.js +1931 -0
  191. package/dist/core/execution-engine.js.map +1 -0
  192. package/dist/core/runtime.d.ts +43 -0
  193. package/dist/core/runtime.d.ts.map +1 -0
  194. package/dist/core/runtime.js +147 -0
  195. package/dist/core/runtime.js.map +1 -0
  196. package/dist/core/sync-scheduler.d.ts +42 -0
  197. package/dist/core/sync-scheduler.d.ts.map +1 -0
  198. package/dist/core/sync-scheduler.js +131 -0
  199. package/dist/core/sync-scheduler.js.map +1 -0
  200. package/dist/core/types.d.ts +106 -0
  201. package/dist/core/types.d.ts.map +1 -0
  202. package/dist/core/types.js +7 -0
  203. package/dist/core/types.js.map +1 -0
  204. package/dist/daemon/service-manager.d.ts +68 -0
  205. package/dist/daemon/service-manager.d.ts.map +1 -0
  206. package/dist/daemon/service-manager.js +303 -0
  207. package/dist/daemon/service-manager.js.map +1 -0
  208. package/dist/env/env-classifier.d.ts +14 -0
  209. package/dist/env/env-classifier.d.ts.map +1 -0
  210. package/dist/env/env-classifier.js +94 -0
  211. package/dist/env/env-classifier.js.map +1 -0
  212. package/dist/env/env-parser.d.ts +13 -0
  213. package/dist/env/env-parser.d.ts.map +1 -0
  214. package/dist/env/env-parser.js +33 -0
  215. package/dist/env/env-parser.js.map +1 -0
  216. package/dist/env/env-profile-store.d.ts +15 -0
  217. package/dist/env/env-profile-store.d.ts.map +1 -0
  218. package/dist/env/env-profile-store.js +35 -0
  219. package/dist/env/env-profile-store.js.map +1 -0
  220. package/dist/env/env-reference.d.ts +10 -0
  221. package/dist/env/env-reference.d.ts.map +1 -0
  222. package/dist/env/env-reference.js +33 -0
  223. package/dist/env/env-reference.js.map +1 -0
  224. package/dist/env/env-resolver.d.ts +18 -0
  225. package/dist/env/env-resolver.d.ts.map +1 -0
  226. package/dist/env/env-resolver.js +48 -0
  227. package/dist/env/env-resolver.js.map +1 -0
  228. package/dist/env/fs-utils.d.ts +9 -0
  229. package/dist/env/fs-utils.d.ts.map +1 -0
  230. package/dist/env/fs-utils.js +59 -0
  231. package/dist/env/fs-utils.js.map +1 -0
  232. package/dist/env/secret-backend.d.ts +15 -0
  233. package/dist/env/secret-backend.d.ts.map +1 -0
  234. package/dist/env/secret-backend.js +24 -0
  235. package/dist/env/secret-backend.js.map +1 -0
  236. package/dist/executor/executor-registry.d.ts +22 -0
  237. package/dist/executor/executor-registry.d.ts.map +1 -0
  238. package/dist/executor/executor-registry.js +42 -0
  239. package/dist/executor/executor-registry.js.map +1 -0
  240. package/dist/executor/process-launcher.d.ts +26 -0
  241. package/dist/executor/process-launcher.d.ts.map +1 -0
  242. package/dist/executor/process-launcher.js +98 -0
  243. package/dist/executor/process-launcher.js.map +1 -0
  244. package/dist/executor/secret-file.d.ts +28 -0
  245. package/dist/executor/secret-file.d.ts.map +1 -0
  246. package/dist/executor/secret-file.js +127 -0
  247. package/dist/executor/secret-file.js.map +1 -0
  248. package/dist/gateway/auth.d.ts +26 -0
  249. package/dist/gateway/auth.d.ts.map +1 -0
  250. package/dist/gateway/auth.js +66 -0
  251. package/dist/gateway/auth.js.map +1 -0
  252. package/dist/gateway/gateway-client.d.ts +363 -0
  253. package/dist/gateway/gateway-client.d.ts.map +1 -0
  254. package/dist/gateway/gateway-client.js +611 -0
  255. package/dist/gateway/gateway-client.js.map +1 -0
  256. package/dist/identity/agent-identity.d.ts +29 -0
  257. package/dist/identity/agent-identity.d.ts.map +1 -0
  258. package/dist/identity/agent-identity.js +54 -0
  259. package/dist/identity/agent-identity.js.map +1 -0
  260. package/dist/identity/did-manager.d.ts +17 -0
  261. package/dist/identity/did-manager.d.ts.map +1 -0
  262. package/dist/identity/did-manager.js +29 -0
  263. package/dist/identity/did-manager.js.map +1 -0
  264. package/dist/identity/key-manager.d.ts +21 -0
  265. package/dist/identity/key-manager.d.ts.map +1 -0
  266. package/dist/identity/key-manager.js +126 -0
  267. package/dist/identity/key-manager.js.map +1 -0
  268. package/dist/identity/session-key.d.ts +13 -0
  269. package/dist/identity/session-key.d.ts.map +1 -0
  270. package/dist/identity/session-key.js +17 -0
  271. package/dist/identity/session-key.js.map +1 -0
  272. package/dist/policy/policy-evaluator.d.ts +63 -0
  273. package/dist/policy/policy-evaluator.d.ts.map +1 -0
  274. package/dist/policy/policy-evaluator.js +266 -0
  275. package/dist/policy/policy-evaluator.js.map +1 -0
  276. package/dist/policy/policy-loader.d.ts +10 -0
  277. package/dist/policy/policy-loader.d.ts.map +1 -0
  278. package/dist/policy/policy-loader.js +71 -0
  279. package/dist/policy/policy-loader.js.map +1 -0
  280. package/dist/policy/types.d.ts +21 -0
  281. package/dist/policy/types.d.ts.map +1 -0
  282. package/dist/policy/types.js +3 -0
  283. package/dist/policy/types.js.map +1 -0
  284. package/dist/telemetry/claude-settings.d.ts +67 -0
  285. package/dist/telemetry/claude-settings.d.ts.map +1 -0
  286. package/dist/telemetry/claude-settings.js +191 -0
  287. package/dist/telemetry/claude-settings.js.map +1 -0
  288. package/dist/telemetry/otel-headers.d.ts +27 -0
  289. package/dist/telemetry/otel-headers.d.ts.map +1 -0
  290. package/dist/telemetry/otel-headers.js +33 -0
  291. package/dist/telemetry/otel-headers.js.map +1 -0
  292. package/dist/telemetry/project-key.d.ts +12 -0
  293. package/dist/telemetry/project-key.d.ts.map +1 -0
  294. package/dist/telemetry/project-key.js +113 -0
  295. package/dist/telemetry/project-key.js.map +1 -0
  296. package/dist/utils/credential-errors.d.ts +73 -0
  297. package/dist/utils/credential-errors.d.ts.map +1 -0
  298. package/dist/utils/credential-errors.js +90 -0
  299. package/dist/utils/credential-errors.js.map +1 -0
  300. package/dist/utils/resource-canonicalizer.d.ts +19 -0
  301. package/dist/utils/resource-canonicalizer.d.ts.map +1 -0
  302. package/dist/utils/resource-canonicalizer.js +100 -0
  303. package/dist/utils/resource-canonicalizer.js.map +1 -0
  304. package/dist/utils/vc-utils.d.ts +23 -0
  305. package/dist/utils/vc-utils.d.ts.map +1 -0
  306. package/dist/utils/vc-utils.js +53 -0
  307. package/dist/utils/vc-utils.js.map +1 -0
  308. package/dist/wallet/sqlite.d.ts +4 -0
  309. package/dist/wallet/sqlite.d.ts.map +1 -0
  310. package/dist/wallet/sqlite.js +158 -0
  311. package/dist/wallet/sqlite.js.map +1 -0
  312. package/dist/wallet/vp-builder.d.ts +26 -0
  313. package/dist/wallet/vp-builder.d.ts.map +1 -0
  314. package/dist/wallet/vp-builder.js +55 -0
  315. package/dist/wallet/vp-builder.js.map +1 -0
  316. package/dist/wallet/wallet.d.ts +64 -0
  317. package/dist/wallet/wallet.d.ts.map +1 -0
  318. package/dist/wallet/wallet.js +179 -0
  319. package/dist/wallet/wallet.js.map +1 -0
  320. package/package.json +71 -0
  321. package/required-sdk-symbols.json +15 -0
@@ -0,0 +1,22 @@
1
+ export interface RunOptions {
2
+ command: string[];
3
+ profile?: string;
4
+ workingDirectory?: string;
5
+ timeout?: number;
6
+ }
7
+ /**
8
+ * Execute a command with VESS env profile injection.
9
+ *
10
+ * This is the CLI-direct path: the user explicitly runs `vess run` in their terminal.
11
+ * Policy/grant/VC checks are NOT applied here because:
12
+ * - The user has direct shell access and could run any command anyway
13
+ * - Policy enforcement is for the MCP path where AI requests execution
14
+ * - The value of `vess run` is env injection, not access control
15
+ *
16
+ * Note: The profile parameter is logged for clarity. The actual profile used
17
+ * for resolution is determined by the vess://env/<profile>/<key> references
18
+ * in .env. The .env file is expected to contain references to a single
19
+ * profile (created by `vess env import --profile <name>`).
20
+ */
21
+ export declare function runProcessCommand(options: RunOptions): Promise<void>;
22
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD1E"}
@@ -0,0 +1,103 @@
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.runProcessCommand = runProcessCommand;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const child_process_1 = require("child_process");
40
+ const env_resolver_1 = require("../env/env-resolver");
41
+ const secret_backend_1 = require("../env/secret-backend");
42
+ const key_manager_1 = require("../identity/key-manager");
43
+ const cli_utils_1 = require("./cli-utils");
44
+ /**
45
+ * Execute a command with VESS env profile injection.
46
+ *
47
+ * This is the CLI-direct path: the user explicitly runs `vess run` in their terminal.
48
+ * Policy/grant/VC checks are NOT applied here because:
49
+ * - The user has direct shell access and could run any command anyway
50
+ * - Policy enforcement is for the MCP path where AI requests execution
51
+ * - The value of `vess run` is env injection, not access control
52
+ *
53
+ * Note: The profile parameter is logged for clarity. The actual profile used
54
+ * for resolution is determined by the vess://env/<profile>/<key> references
55
+ * in .env. The .env file is expected to contain references to a single
56
+ * profile (created by `vess env import --profile <name>`).
57
+ */
58
+ async function runProcessCommand(options) {
59
+ const { command, profile = 'default', workingDirectory, timeout } = options;
60
+ if (!command || command.length === 0) {
61
+ throw new Error('No command specified');
62
+ }
63
+ const cwd = workingDirectory || process.cwd();
64
+ // Resolve env from .env.
65
+ // NOTE: --profile is cosmetic (used for logging only). It does NOT filter
66
+ // which profile's vess://env references get resolved. All references in
67
+ // the .env file are resolved regardless of the --profile value.
68
+ let resolvedEnv = {};
69
+ const envPath = path.join(cwd, '.env');
70
+ if (fs.existsSync(envPath)) {
71
+ const keyManager = new key_manager_1.KeyManager();
72
+ const backend = new secret_backend_1.KeychainBackend(keyManager);
73
+ const resolver = new env_resolver_1.EnvResolver(backend);
74
+ const content = fs.readFileSync(envPath, 'utf-8');
75
+ const { env: resolved, warnings } = await resolver.resolveEnvContentWithWarnings(content);
76
+ resolvedEnv = resolved;
77
+ for (const w of warnings) {
78
+ (0, cli_utils_1.log)(`[vess] Warning: ${w}`);
79
+ }
80
+ (0, cli_utils_1.log)(`[vess] Resolved ${Object.keys(resolvedEnv).length} env vars from .env (profile: ${profile})`);
81
+ }
82
+ else {
83
+ (0, cli_utils_1.log)(`[vess] No .env found in ${cwd}, running without env injection`);
84
+ }
85
+ const env = { ...process.env, ...resolvedEnv };
86
+ const [cmd, ...args] = command;
87
+ const timeoutMs = (timeout ?? 0) * 1000 || undefined;
88
+ (0, cli_utils_1.log)(`[vess] Running: ${command.join(' ')}`);
89
+ const result = (0, child_process_1.spawnSync)(cmd, args, {
90
+ cwd,
91
+ env,
92
+ timeout: timeoutMs,
93
+ stdio: 'inherit',
94
+ });
95
+ if (result.error) {
96
+ (0, cli_utils_1.log)(`[vess] Process error: ${result.error.message}`);
97
+ process.exit(1);
98
+ }
99
+ if (result.status !== null && result.status !== 0) {
100
+ process.exit(result.status);
101
+ }
102
+ }
103
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,8CAqDC;AAlFD,uCAAwB;AACxB,2CAA4B;AAC5B,iDAAyC;AACzC,sDAAiD;AACjD,0DAAuD;AACvD,yDAAoD;AACpD,2CAAiC;AASjC;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAAmB;IACzD,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAE3E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAE7C,yBAAyB;IACzB,0EAA0E;IAC1E,wEAAwE;IACxE,gEAAgE;IAChE,IAAI,WAAW,GAA2B,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAEtC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,wBAAU,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,IAAI,gCAAe,CAAC,UAAU,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,IAAI,0BAAW,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAA;QACzF,WAAW,GAAG,QAAQ,CAAA;QACtB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAA,eAAG,EAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;QAC7B,CAAC;QACD,IAAA,eAAG,EAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,iCAAiC,OAAO,GAAG,CAAC,CAAA;IACpG,CAAC;SAAM,CAAC;QACN,IAAA,eAAG,EAAC,2BAA2B,GAAG,iCAAiC,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,CAAA;IAE9C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAA;IAC9B,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,CAAA;IAEpD,IAAA,eAAG,EAAC,mBAAmB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAE3C,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,GAAG,EAAE,IAAI,EAAE;QAClC,GAAG;QACH,GAAG;QACH,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAA,eAAG,EAAC,yBAAyB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runStart(): Promise<void>;
2
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":"AAGA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B9C"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runStart = runStart;
4
+ const runtime_1 = require("../core/runtime");
5
+ const transport_1 = require("../adapter/mcp/transport");
6
+ async function runStart() {
7
+ const runtime = await (0, runtime_1.initializeRuntime)();
8
+ // Create MCP server for Claude Code (single client in stdio mode)
9
+ const { server, setClientInfo } = await runtime.createMcpServer('claude-code');
10
+ // Capture clientInfo from MCP initialize handshake (before connect)
11
+ server.server.oninitialized = () => {
12
+ const clientVersion = server.server.getClientVersion();
13
+ if (clientVersion) {
14
+ setClientInfo({ name: clientVersion.name, version: clientVersion.version });
15
+ }
16
+ };
17
+ // Graceful shutdown
18
+ const cleanup = async () => {
19
+ // Give in-flight requests a moment to complete
20
+ await new Promise(resolve => setTimeout(resolve, 500));
21
+ runtime.cleanup();
22
+ process.exit(0);
23
+ };
24
+ process.on('SIGINT', () => { cleanup(); });
25
+ process.on('SIGTERM', () => { cleanup(); });
26
+ // Connect MCP transport (stdio for single-client mode)
27
+ await (0, transport_1.connectStdioTransport)(server);
28
+ }
29
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/cli/start.ts"],"names":[],"mappings":";;AAGA,4BA0BC;AA7BD,6CAAmD;AACnD,wDAAgE;AAEzD,KAAK,UAAU,QAAQ;IAC5B,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAiB,GAAE,CAAA;IAEzC,kEAAkE;IAClE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;IAE9E,oEAAoE;IACpE,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAA;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC,CAAA;IAED,oBAAoB;IACpB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,+CAA+C;QAC/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,OAAO,EAAE,CAAA;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;IAE1C,uDAAuD;IACvD,MAAM,IAAA,iCAAqB,EAAC,MAAM,CAAC,CAAA;AACrC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface DaemonInfo {
2
+ running: boolean;
3
+ pid: number | null;
4
+ port: number | null;
5
+ }
6
+ /**
7
+ * Detect whether the daemon is running by checking PID/port files.
8
+ * @param baseDir Override base directory (for testing)
9
+ */
10
+ export declare function detectDaemonInfo(baseDir?: string): DaemonInfo;
11
+ export declare function runStatus(): Promise<void>;
12
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAc7D;AAgBD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAoE/C"}
@@ -0,0 +1,131 @@
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.detectDaemonInfo = detectDaemonInfo;
37
+ exports.runStatus = runStatus;
38
+ const path = __importStar(require("node:path"));
39
+ const paths_1 = require("../config/paths");
40
+ const config_1 = require("../config/config");
41
+ const sqlite_1 = require("../wallet/sqlite");
42
+ const daemon_utils_1 = require("./daemon-utils");
43
+ const key_manager_1 = require("../identity/key-manager");
44
+ const logs_1 = require("./logs");
45
+ /**
46
+ * Detect whether the daemon is running by checking PID/port files.
47
+ * @param baseDir Override base directory (for testing)
48
+ */
49
+ function detectDaemonInfo(baseDir) {
50
+ const dir = baseDir ?? new paths_1.VessPaths().baseDir;
51
+ const pidFile = path.join(dir, 'daemon.pid');
52
+ const portFile = path.join(dir, 'daemon.port');
53
+ const pid = (0, daemon_utils_1.readPidFile)(pidFile);
54
+ const port = (0, daemon_utils_1.readPortFile)(portFile);
55
+ if (pid === null) {
56
+ return { running: false, pid: null, port: null };
57
+ }
58
+ const running = (0, daemon_utils_1.isDaemonRunning)(pid);
59
+ return { running, pid: running ? pid : null, port: running ? port : null };
60
+ }
61
+ /**
62
+ * Fetch session count from daemon health endpoint.
63
+ */
64
+ async function fetchSessionCount(port) {
65
+ try {
66
+ const response = await fetch(`http://127.0.0.1:${port}/health`);
67
+ if (!response.ok)
68
+ return null;
69
+ const data = (await response.json());
70
+ return data.sessions ?? null;
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ async function runStatus() {
77
+ const paths = new paths_1.VessPaths();
78
+ const config = (0, config_1.loadConfig)(paths.configFile);
79
+ console.log('\nVESS Status');
80
+ console.log('-----------');
81
+ console.log(`Gateway URL: ${config.gatewayUrl}`);
82
+ console.log(`Root DID: ${config.rootDid || '(not set)'}`);
83
+ console.log(`Project: ${config.defaultProjectId || '(not set)'}`);
84
+ const keyManager = new key_manager_1.KeyManager();
85
+ const hasToken = keyManager.getSessionToken() !== null || !!config.deviceSessionToken;
86
+ console.log(`Authenticated: ${hasToken ? 'yes' : 'no'}`);
87
+ // Daemon status
88
+ const daemonInfo = detectDaemonInfo(paths.baseDir);
89
+ if (daemonInfo.running) {
90
+ console.log(`\nDaemon: running`);
91
+ console.log(` Mode: HTTP (daemon)`);
92
+ console.log(` PID: ${daemonInfo.pid}`);
93
+ if (daemonInfo.port) {
94
+ console.log(` Port: ${daemonInfo.port}`);
95
+ console.log(` URL: http://127.0.0.1:${daemonInfo.port}/mcp`);
96
+ const sessions = await fetchSessionCount(daemonInfo.port);
97
+ if (sessions !== null) {
98
+ console.log(` Sessions: ${sessions}`);
99
+ }
100
+ }
101
+ }
102
+ else {
103
+ console.log(`\nDaemon: not running`);
104
+ console.log(` Mode: stdio`);
105
+ console.log(` Hint: Run "vess daemon start" to start manually, or "vess daemon enable" for auto-start`);
106
+ }
107
+ // Recent errors from daemon stderr log
108
+ const errLogPath = path.join(paths.baseDir, 'logs', 'daemon.err');
109
+ const recentErrors = (0, logs_1.readRecentErrors)(errLogPath, 5);
110
+ if (recentErrors.length > 0) {
111
+ console.log('\nRecent errors:');
112
+ for (const errLine of recentErrors) {
113
+ console.log(` ${errLine}`);
114
+ }
115
+ }
116
+ try {
117
+ const db = (0, sqlite_1.openDatabase)(paths.walletDb);
118
+ (0, sqlite_1.initSchema)(db);
119
+ const vcCount = db.prepare("SELECT COUNT(*) as count FROM credentials WHERE status = 'active'").get().count;
120
+ const pendingAudit = db.prepare('SELECT COUNT(*) as count FROM audit_log WHERE synced_at IS NULL').get().count;
121
+ const lastSync = db.prepare('SELECT MAX(synced_at) as last FROM synced_policies').get().last;
122
+ console.log(`\nCached VCs: ${vcCount}`);
123
+ console.log(`Pending audit: ${pendingAudit}`);
124
+ console.log(`Last policy sync: ${lastSync ? new Date(lastSync).toISOString() : '(never)'}`);
125
+ db.close();
126
+ }
127
+ catch {
128
+ console.log('\nWallet: (not initialized)');
129
+ }
130
+ }
131
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface TelemetrySetupOptions {
2
+ /** 発行された送信専用の API キー。キーチェーンに保存する。 */
3
+ key: string;
4
+ /** aidentity の受信口のオリジン。 */
5
+ endpoint: string;
6
+ /** 既存の別送信先を承知で置き換える。 */
7
+ force?: boolean;
8
+ /** 書き込み先。省略時は Claude Code のグローバル設定。テストから差し替える。 */
9
+ settingsPath?: string;
10
+ /** `otelHeadersHelper` に書くコマンド。省略時は実行中の CLI を絶対パスで指す。 */
11
+ helperCommand?: string;
12
+ /** `PostToolUse` フックに書くコマンド。省略時は実行中の CLI を絶対パスで指す。 */
13
+ hookCommand?: string;
14
+ }
15
+ /**
16
+ * `vess usage connect` — 端末側の設定を 1 コマンドで済ませる。
17
+ *
18
+ * 利用者に設定ファイルを手で編集させないためのコマンド (設計 §9)。書き換えるのは
19
+ * 他人の実環境なので、次の 3 つを守る。
20
+ *
21
+ * - **触るキーを限定する。** グローバル設定には権限・フック・プラグインが同居する
22
+ * - **書く前に退避を取る。** 戻せる形にしておく
23
+ * - **既に別の送信先があれば中止する。** エージェントの送信先は 1 つしか持てず、
24
+ * 黙って上書きするのは相手先の監視を止めることと同じ
25
+ */
26
+ export declare function runTelemetrySetup(options: TelemetrySetupOptions): Promise<void>;
27
+ //# sourceMappingURL=telemetry-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-setup.d.ts","sourceRoot":"","sources":["../../src/cli/telemetry-setup.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCrF"}
@@ -0,0 +1,157 @@
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.runTelemetrySetup = runTelemetrySetup;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const key_manager_1 = require("../identity/key-manager");
40
+ const claude_settings_1 = require("../telemetry/claude-settings");
41
+ /**
42
+ * `vess usage connect` — 端末側の設定を 1 コマンドで済ませる。
43
+ *
44
+ * 利用者に設定ファイルを手で編集させないためのコマンド (設計 §9)。書き換えるのは
45
+ * 他人の実環境なので、次の 3 つを守る。
46
+ *
47
+ * - **触るキーを限定する。** グローバル設定には権限・フック・プラグインが同居する
48
+ * - **書く前に退避を取る。** 戻せる形にしておく
49
+ * - **既に別の送信先があれば中止する。** エージェントの送信先は 1 つしか持てず、
50
+ * 黙って上書きするのは相手先の監視を止めることと同じ
51
+ */
52
+ async function runTelemetrySetup(options) {
53
+ const key = options.key?.trim();
54
+ if (!key) {
55
+ throw new Error('An API key is required: vess usage connect --key <key>');
56
+ }
57
+ const endpoint = normalizeEndpoint(options.endpoint);
58
+ const settingsPath = options.settingsPath ?? (0, claude_settings_1.resolveGlobalSettingsPath)();
59
+ const helperCommand = options.helperCommand ?? defaultHelperCommand();
60
+ const existing = readSettings(settingsPath);
61
+ const conflict = (0, claude_settings_1.detectExporterConflict)(existing.env, endpoint);
62
+ if (conflict && !options.force) {
63
+ throw new Error(`Telemetry is already being exported elsewhere:\n` +
64
+ ` ${conflict.key}=${conflict.current}\n\n` +
65
+ `A coding agent can only export to one destination, so switching stops the other one.\n` +
66
+ `Re-run with --force to switch, or keep both by running a local OpenTelemetry Collector.`);
67
+ }
68
+ // 鍵の保存を先に済ませる。設定だけ書けて鍵が入らないと、送信は始まるのに
69
+ // 401 で落ち続ける状態になり、原因が見えにくい
70
+ new key_manager_1.KeyManager().storeTelemetryApiKey(key);
71
+ if (fs.existsSync(settingsPath)) {
72
+ backup(settingsPath);
73
+ }
74
+ const next = (0, claude_settings_1.applyTelemetrySettings)(existing, {
75
+ endpoint,
76
+ helperCommand,
77
+ hookCommand: options.hookCommand ?? defaultHookCommand(),
78
+ });
79
+ writeSettings(settingsPath, next);
80
+ report(settingsPath, endpoint, conflict?.current);
81
+ }
82
+ function normalizeEndpoint(raw) {
83
+ const value = raw?.trim();
84
+ if (!value) {
85
+ throw new Error('An endpoint is required: vess usage connect --endpoint <url>');
86
+ }
87
+ let url;
88
+ try {
89
+ url = new URL(value);
90
+ }
91
+ catch {
92
+ throw new Error(`Endpoint is not a valid URL: ${value}`);
93
+ }
94
+ if (url.protocol !== 'https:' && url.protocol !== 'http:') {
95
+ throw new Error(`Endpoint must be http(s): ${value}`);
96
+ }
97
+ return value.replace(/\/+$/, '');
98
+ }
99
+ /**
100
+ * 実行中の CLI を絶対パスで指す。
101
+ *
102
+ * `vess otel-headers` と書くと PATH 頼みになるが、このコマンドを起動するのは
103
+ * Claude Code であって利用者のシェルではない。PATH が違えばヘルパーが動かず、
104
+ * プロジェクト識別子が付かないまま送信が続く。
105
+ */
106
+ function defaultHelperCommand() {
107
+ // パスを引用符で囲む。スペースを含むパス (`/Users/foo bar/...`) だと
108
+ // 2 語に割れ、ヘルパーが動かないままプロジェクト識別子なしで送信が続く
109
+ return `node ${JSON.stringify(process.argv[1])} otel-headers`;
110
+ }
111
+ function defaultHookCommand() {
112
+ return `node ${JSON.stringify(process.argv[1])} usage-hook`;
113
+ }
114
+ function readSettings(settingsPath) {
115
+ if (!fs.existsSync(settingsPath))
116
+ return {};
117
+ const raw = fs.readFileSync(settingsPath, 'utf-8');
118
+ try {
119
+ const parsed = JSON.parse(raw);
120
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
121
+ throw new Error('not an object');
122
+ }
123
+ return parsed;
124
+ }
125
+ catch {
126
+ // 壊れた設定を上書きすると、利用者が失うものが設定全部になる
127
+ throw new Error(`Could not read the Claude Code settings file (invalid JSON): ${settingsPath}\n` +
128
+ `Fix or move the file, then run this command again.`);
129
+ }
130
+ }
131
+ function backup(settingsPath) {
132
+ const stamp = new Date().toISOString().replace(/[:.]/g, '-');
133
+ const target = `${settingsPath}.bak.${stamp}`;
134
+ fs.copyFileSync(settingsPath, target);
135
+ return target;
136
+ }
137
+ function writeSettings(settingsPath, settings) {
138
+ const dir = path.dirname(settingsPath);
139
+ if (!fs.existsSync(dir)) {
140
+ fs.mkdirSync(dir, { recursive: true });
141
+ }
142
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n');
143
+ }
144
+ function report(settingsPath, endpoint, replaced) {
145
+ const lines = [
146
+ 'テレメトリの送信設定を書き込みました。',
147
+ ` 設定ファイル: ${settingsPath}`,
148
+ ` 送信先: ${endpoint}`,
149
+ ' API キー: OS のキーチェーンに保存しました',
150
+ ];
151
+ if (replaced) {
152
+ lines.push(` 切り替え前: ${replaced} (退避ファイルに残しています)`);
153
+ }
154
+ lines.push('', '反映は次のセッションからです。実行中の Claude Code には効きません。');
155
+ process.stdout.write(lines.join('\n') + '\n');
156
+ }
157
+ //# sourceMappingURL=telemetry-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-setup.js","sourceRoot":"","sources":["../../src/cli/telemetry-setup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,8CAsCC;AA3ED,uCAAwB;AACxB,2CAA4B;AAE5B,yDAAoD;AACpD,kEAKqC;AAiBrC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAA8B;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAA,2CAAyB,GAAE,CAAA;IACxE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,oBAAoB,EAAE,CAAA;IAErE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAA;IAE3C,MAAM,QAAQ,GAAG,IAAA,wCAAsB,EAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC/D,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,kDAAkD;YAChD,KAAK,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,MAAM;YAC3C,wFAAwF;YACxF,yFAAyF,CAC5F,CAAA;IACH,CAAC;IAED,sCAAsC;IACtC,2BAA2B;IAC3B,IAAI,wBAAU,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAE1C,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,YAAY,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,wCAAsB,EAAC,QAAQ,EAAE;QAC5C,QAAQ;QACR,aAAa;QACb,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,kBAAkB,EAAE;KACzD,CAAC,CAAA;IACF,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEjC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAuB;IAChD,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAA;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB;IAC3B,gDAAgD;IAChD,sCAAsC;IACtC,OAAO,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAA;AAC/D,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAA;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,YAAoB;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,MAAwB,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;QAChC,MAAM,IAAI,KAAK,CACb,gEAAgE,YAAY,IAAI;YAC9E,oDAAoD,CACvD,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,YAAoB;IAClC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,GAAG,YAAY,QAAQ,KAAK,EAAE,CAAA;IAC7C,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,YAAoB,EAAE,QAAwB;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,MAAM,CAAC,YAAoB,EAAE,QAAgB,EAAE,QAA4B;IAClF,MAAM,KAAK,GAAG;QACZ,qBAAqB;QACrB,aAAa,YAAY,EAAE;QAC3B,gBAAgB,QAAQ,EAAE;QAC1B,iCAAiC;KAClC,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,kBAAkB,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0CAA0C,CAAC,CAAA;IAE1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface UninstallOptions {
2
+ /** Override Claude Code config path (for testing) */
3
+ claudeConfigPath?: string;
4
+ /** Skip interactive confirmation (for testing) */
5
+ skipConfirm?: boolean;
6
+ }
7
+ export declare function runUninstall(options?: UninstallOptions): Promise<void>;
8
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/cli/uninstall.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAmBD,wBAAsB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DhF"}