@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,182 @@
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.runEnvImport = runEnvImport;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const readline = __importStar(require("node:readline/promises"));
40
+ const fs_utils_1 = require("../env/fs-utils");
41
+ const env_reference_1 = require("../env/env-reference");
42
+ const env_parser_1 = require("../env/env-parser");
43
+ const key_manager_1 = require("../identity/key-manager");
44
+ const cli_db_1 = require("./cli-db");
45
+ const cli_utils_1 = require("./cli-utils");
46
+ const env_classifier_1 = require("../env/env-classifier");
47
+ async function runEnvImport(options) {
48
+ const { envFile, profile, skipKeychain, dryRun } = options;
49
+ if (!fs.existsSync(envFile)) {
50
+ throw new Error(`File not found: ${envFile}`);
51
+ }
52
+ const content = fs.readFileSync(envFile, 'utf-8');
53
+ // Guard: prevent double-import
54
+ for (const parsed of (0, env_parser_1.parseEnvLines)(content)) {
55
+ if (!parsed.isEmpty && !parsed.isComment && parsed.value.startsWith('vess://env/')) {
56
+ throw new Error(`${envFile} already contains vess:// references. ` +
57
+ `Use the .backup file to re-import from original values.`);
58
+ }
59
+ }
60
+ const outputLines = [];
61
+ let secretCount = 0;
62
+ let plainCount = 0;
63
+ const keyManager = skipKeychain ? null : new key_manager_1.KeyManager();
64
+ let profileStore = null;
65
+ let db = null;
66
+ if (!skipKeychain) {
67
+ const ctx = (0, cli_db_1.openProfileStore)('env import');
68
+ if (!ctx)
69
+ return;
70
+ db = ctx.db;
71
+ profileStore = ctx.profileStore;
72
+ }
73
+ try {
74
+ // Derive ClassifyOptions from EnvImportOptions
75
+ const effectiveMode = options.interactive ? 'interactive' : (options.mode ?? 'default');
76
+ let rl = null;
77
+ let promptFn;
78
+ if (effectiveMode === 'interactive') {
79
+ rl = readline.createInterface({
80
+ input: process.stdin,
81
+ output: process.stderr,
82
+ });
83
+ promptFn = async (key, _value) => {
84
+ const answer = await rl.question(`Treat '${key}' as secret? (Y/n): `);
85
+ return answer.trim().toLowerCase() !== 'n';
86
+ };
87
+ }
88
+ const classifyOptions = {
89
+ mode: effectiveMode,
90
+ secretKeys: options.secretKeys,
91
+ plaintextKeys: options.plaintextKeys,
92
+ promptFn,
93
+ };
94
+ (0, env_classifier_1.validateClassifyOptions)(classifyOptions);
95
+ // Collect all env keys for unmatched-key warnings
96
+ const allEnvKeys = new Set();
97
+ for (const parsed of (0, env_parser_1.parseEnvLines)(content)) {
98
+ if (!parsed.isEmpty && !parsed.isComment) {
99
+ allEnvKeys.add(parsed.key.toUpperCase());
100
+ }
101
+ }
102
+ // Warn about --keys entries that don't match any env key
103
+ if (effectiveMode === 'keys' && options.secretKeys) {
104
+ for (const sk of options.secretKeys) {
105
+ if (!allEnvKeys.has(sk.toUpperCase())) {
106
+ (0, cli_utils_1.log)(`[vess] Warning: secret key '${sk}' was not found in the env file`);
107
+ }
108
+ }
109
+ }
110
+ try {
111
+ for (const parsed of (0, env_parser_1.parseEnvLines)(content)) {
112
+ if (parsed.isEmpty || parsed.isComment) {
113
+ outputLines.push(parsed.originalLine);
114
+ continue;
115
+ }
116
+ const result = await (0, env_classifier_1.classifyEnvEntry)(parsed.key, parsed.value, classifyOptions);
117
+ if (result.isSecret) {
118
+ if (!dryRun && keyManager) {
119
+ keyManager.storeEnvSecret(profile, parsed.key, parsed.value);
120
+ try {
121
+ profileStore?.addKey(profile, parsed.key);
122
+ }
123
+ catch (err) {
124
+ keyManager.deleteEnvSecret(profile, parsed.key);
125
+ throw new Error(`Failed to record metadata for ${parsed.key}: ${err instanceof Error ? err.message : String(err)}`);
126
+ }
127
+ }
128
+ outputLines.push(`${parsed.key}=${(0, env_reference_1.formatEnvReference)(profile, parsed.key)}`);
129
+ secretCount++;
130
+ }
131
+ else {
132
+ outputLines.push(parsed.originalLine);
133
+ plainCount++;
134
+ }
135
+ }
136
+ }
137
+ finally {
138
+ if (rl) {
139
+ rl.close();
140
+ }
141
+ }
142
+ if (dryRun) {
143
+ (0, cli_utils_1.log)(`[vess] Dry run: ${secretCount} secrets, ${plainCount} plaintext`);
144
+ for (const line of outputLines) {
145
+ (0, cli_utils_1.log)(line);
146
+ }
147
+ return;
148
+ }
149
+ // Backup original .env before overwriting
150
+ const backupPath = envFile + '.backup';
151
+ if (fs.existsSync(backupPath)) {
152
+ (0, cli_utils_1.log)(`[vess] Warning: overwriting existing ${backupPath}`);
153
+ }
154
+ fs.copyFileSync(envFile, backupPath);
155
+ fs.chmodSync(backupPath, 0o600);
156
+ // Preserve trailing newline if original had one
157
+ const trailingNewline = content.endsWith('\n');
158
+ let output = outputLines.join('\n');
159
+ if (trailingNewline && !output.endsWith('\n')) {
160
+ output += '\n';
161
+ }
162
+ (0, fs_utils_1.atomicWriteFile)(envFile, output);
163
+ (0, cli_utils_1.log)(`[vess] Imported ${secretCount} secrets to keychain profile "${profile}"`);
164
+ (0, cli_utils_1.log)(`[vess] ${plainCount} non-secret values left as plaintext`);
165
+ (0, cli_utils_1.log)(`[vess] Backup saved: ${backupPath}`);
166
+ (0, cli_utils_1.log)(`[vess] Updated: ${envFile}`);
167
+ (0, cli_utils_1.log)(`[vess] To use: vess run --profile ${profile} -- <command>`);
168
+ // Post-integration: offer to configure package.json, CLAUDE.md, Hook
169
+ if (!dryRun) {
170
+ const { runPostIntegration } = await Promise.resolve().then(() => __importStar(require('./env-post-integration')));
171
+ const envFileDir = path.dirname(path.resolve(envFile));
172
+ await runPostIntegration({
173
+ envFileDir,
174
+ skipIntegration: options.skipIntegration,
175
+ });
176
+ }
177
+ }
178
+ finally {
179
+ db?.close();
180
+ }
181
+ }
182
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Global error handlers for the daemon process.
3
+ *
4
+ * - unhandledRejection: log and swallow (keep daemon alive)
5
+ * - uncaughtException: log and trigger graceful shutdown
6
+ */
7
+ export interface ErrorHandlerOptions {
8
+ onFatalError: () => void;
9
+ }
10
+ /** @internal — exposed only for tests */
11
+ export declare function _resetForTesting(): void;
12
+ export declare function installGlobalErrorHandlers(options: ErrorHandlerOptions): void;
13
+ //# sourceMappingURL=error-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handlers.d.ts","sourceRoot":"","sources":["../../src/cli/error-handlers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAID,yCAAyC;AACzC,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAmB7E"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Global error handlers for the daemon process.
4
+ *
5
+ * - unhandledRejection: log and swallow (keep daemon alive)
6
+ * - uncaughtException: log and trigger graceful shutdown
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports._resetForTesting = _resetForTesting;
10
+ exports.installGlobalErrorHandlers = installGlobalErrorHandlers;
11
+ let installed = false;
12
+ /** @internal — exposed only for tests */
13
+ function _resetForTesting() {
14
+ installed = false;
15
+ }
16
+ function installGlobalErrorHandlers(options) {
17
+ if (installed)
18
+ return;
19
+ installed = true;
20
+ const { onFatalError } = options;
21
+ process.on('unhandledRejection', (reason, _promise) => {
22
+ const message = reason instanceof Error
23
+ ? `${reason.message}\n${reason.stack ?? ''}`
24
+ : String(reason);
25
+ console.error(`${new Date().toISOString()} [ERROR] Unhandled rejection: ${message}`);
26
+ });
27
+ process.on('uncaughtException', (error) => {
28
+ console.error(`${new Date().toISOString()} [ERROR] Uncaught exception: ${error.message}\n${error.stack ?? ''}`);
29
+ onFatalError();
30
+ });
31
+ }
32
+ //# sourceMappingURL=error-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handlers.js","sourceRoot":"","sources":["../../src/cli/error-handlers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AASH,4CAEC;AAED,gEAmBC;AA1BD,IAAI,SAAS,GAAG,KAAK,CAAA;AAErB,yCAAyC;AACzC,SAAgB,gBAAgB;IAC9B,SAAS,GAAG,KAAK,CAAA;AACnB,CAAC;AAED,SAAgB,0BAA0B,CAAC,OAA4B;IACrE,IAAI,SAAS;QAAE,OAAM;IACrB,SAAS,GAAG,IAAI,CAAA;IAEhB,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAEhC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,QAA0B,EAAE,EAAE;QAC/E,MAAM,OAAO,GAAG,MAAM,YAAY,KAAK;YACrC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;YAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,iCAAiC,OAAO,EAAE,CAAC,CAAA;IACtF,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAY,EAAE,EAAE;QAC/C,OAAO,CAAC,KAAK,CACX,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,gCAAgC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CACjG,CAAA;QACD,YAAY,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Check if the current directory's .env contains vess:// references.
3
+ * If so and the command is not a safe wrapper, output an additionalContext
4
+ * JSON to stdout for Claude Code's PreToolUse hook contract.
5
+ */
6
+ export declare function runHookCheckEnv(command?: string): Promise<void>;
7
+ /**
8
+ * CLI entry point: reads stdin for the tool input JSON from Claude Code,
9
+ * extracts the command, and runs the check.
10
+ */
11
+ export declare function runHookCheckEnvFromStdin(): Promise<void>;
12
+ //# sourceMappingURL=hook-check-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-check-env.d.ts","sourceRoot":"","sources":["../../src/cli/hook-check-env.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCrE;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkB9D"}
@@ -0,0 +1,117 @@
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.runHookCheckEnv = runHookCheckEnv;
37
+ exports.runHookCheckEnvFromStdin = runHookCheckEnvFromStdin;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ /**
41
+ * Safe command prefixes that already handle env resolution.
42
+ * If a Bash command starts with any of these, skip the warning.
43
+ */
44
+ const SAFE_PREFIXES = [
45
+ 'vess run',
46
+ 'npm run',
47
+ 'npm start',
48
+ 'npx ',
49
+ 'yarn ',
50
+ 'pnpm run',
51
+ 'pnpm start',
52
+ 'pnpm exec',
53
+ 'make ',
54
+ ];
55
+ /**
56
+ * Check if the current directory's .env contains vess:// references.
57
+ * If so and the command is not a safe wrapper, output an additionalContext
58
+ * JSON to stdout for Claude Code's PreToolUse hook contract.
59
+ */
60
+ async function runHookCheckEnv(command) {
61
+ // If the command is a safe wrapper, skip entirely
62
+ if (command) {
63
+ const trimmed = command.trimStart();
64
+ for (const prefix of SAFE_PREFIXES) {
65
+ if (trimmed.startsWith(prefix)) {
66
+ return;
67
+ }
68
+ }
69
+ }
70
+ // Read .env from cwd
71
+ const envPath = path.join(process.cwd(), '.env');
72
+ let content;
73
+ try {
74
+ content = fs.readFileSync(envPath, 'utf-8');
75
+ }
76
+ catch {
77
+ return;
78
+ }
79
+ if (!content.includes('vess://env/')) {
80
+ return;
81
+ }
82
+ // Output additionalContext JSON to stdout
83
+ const output = {
84
+ hookSpecificOutput: {
85
+ hookEventName: 'PreToolUse',
86
+ permissionDecision: 'allow',
87
+ additionalContext: '[vess] This project\'s .env contains vess:// references. ' +
88
+ 'Environment variables will NOT be resolved by direct commands. ' +
89
+ 'Use project task runner scripts (e.g., npm run dev) or ' +
90
+ 'vess run -- <command> instead.',
91
+ },
92
+ };
93
+ process.stdout.write(JSON.stringify(output));
94
+ }
95
+ /**
96
+ * CLI entry point: reads stdin for the tool input JSON from Claude Code,
97
+ * extracts the command, and runs the check.
98
+ */
99
+ async function runHookCheckEnvFromStdin() {
100
+ let command;
101
+ // If stdin is a TTY (no piped input), skip command extraction
102
+ if (!process.stdin.isTTY) {
103
+ try {
104
+ const chunks = [];
105
+ for await (const chunk of process.stdin) {
106
+ chunks.push(chunk);
107
+ }
108
+ const input = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
109
+ command = input?.tool_input?.command ?? input?.command;
110
+ }
111
+ catch {
112
+ // If stdin is empty or not JSON, proceed without command filtering
113
+ }
114
+ }
115
+ await runHookCheckEnv(command);
116
+ }
117
+ //# sourceMappingURL=hook-check-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-check-env.js","sourceRoot":"","sources":["../../src/cli/hook-check-env.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,0CAqCC;AAMD,4DAkBC;AArFD,uCAAwB;AACxB,2CAA4B;AAE5B;;;GAGG;AACH,MAAM,aAAa,GAAG;IACpB,UAAU;IACV,SAAS;IACT,WAAW;IACX,MAAM;IACN,OAAO;IACP,UAAU;IACV,YAAY;IACZ,WAAW;IACX,OAAO;CACR,CAAA;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CAAC,OAAgB;IACpD,kDAAkD;IAClD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;QACnC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAChD,IAAI,OAAe,CAAA;IACnB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,OAAM;IACR,CAAC;IAED,0CAA0C;IAC1C,MAAM,MAAM,GAAG;QACb,kBAAkB,EAAE;YAClB,aAAa,EAAE,YAAY;YAC3B,kBAAkB,EAAE,OAAO;YAC3B,iBAAiB,EACf,2DAA2D;gBAC3D,iEAAiE;gBACjE,yDAAyD;gBACzD,gCAAgC;SACnC;KACF,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,wBAAwB;IAC5C,IAAI,OAA2B,CAAA;IAE/B,8DAA8D;IAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACjE,OAAO,GAAG,KAAK,EAAE,UAAU,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IAED,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** 送信先の上書き。`AIDENTITY_TELEMETRY_API_KEY` と対で、検証や別環境向け。 */
2
+ export declare const TELEMETRY_ENDPOINT_ENV = "AIDENTITY_TELEMETRY_ENDPOINT";
3
+ /**
4
+ * `PostToolUse` フックとして Claude Code から起動される。
5
+ *
6
+ * 標準出力には何も書かない。フックの出力はエージェントに渡るので、
7
+ * 集計の都合をエージェントの入力に混ぜない。
8
+ */
9
+ export declare function runHookSessionProject(): Promise<void>;
10
+ //# sourceMappingURL=hook-session-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-session-project.d.ts","sourceRoot":"","sources":["../../src/cli/hook-session-project.ts"],"names":[],"mappings":"AA6BA,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AA6FpE;;;;;GAKG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkD3D"}
@@ -0,0 +1,206 @@
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.TELEMETRY_ENDPOINT_ENV = void 0;
37
+ exports.runHookSessionProject = runHookSessionProject;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const key_manager_1 = require("../identity/key-manager");
41
+ const otel_headers_1 = require("../telemetry/otel-headers");
42
+ const project_key_1 = require("../telemetry/project-key");
43
+ const paths_1 = require("../config/paths");
44
+ const config_1 = require("../config/config");
45
+ /**
46
+ * セッションが今いるリポジトリを aidentity へ申告するフック。
47
+ *
48
+ * **なぜ要るか。** テレメトリのヘッダーはセッション開始時に 1 回だけ解決され、
49
+ * 以後キャッシュされる (判断 4-5)。エージェントが途中で別のリポジトリへ移っても
50
+ * 識別子は変わらない。リポジトリを並べた親ディレクトリでセッションを開く
51
+ * 使い方だと、どのリポジトリの作業も親ディレクトリ 1 つにまとまってしまう。
52
+ *
53
+ * フックの入力にはセッション id と**その時点の**作業ディレクトリが入っている。
54
+ * そこから識別子を解き直し、前回と変わっていれば受信口へ送る。受信側は
55
+ * 「その session の最新の申告」で他のイベントの帰属を差し替える。
56
+ *
57
+ * 🔴 **何があってもエージェントの動作を止めない。** フックの失敗は
58
+ * ツール呼び出しの失敗として見える。送信できなくても黙って終了する
59
+ * (集計が少しズレるだけで、利用者の作業は止めない)。
60
+ */
61
+ /** 申告の宛先。受信口は `telemetry-ingest.controller.ts` と対。 */
62
+ const LOGS_PATH = '/api/telemetry/v1/logs';
63
+ /** 送信先の上書き。`AIDENTITY_TELEMETRY_API_KEY` と対で、検証や別環境向け。 */
64
+ exports.TELEMETRY_ENDPOINT_ENV = 'AIDENTITY_TELEMETRY_ENDPOINT';
65
+ /** Claude Code のイベント名に合わせる。受信側のアダプタが分岐に使う。 */
66
+ const EVENT_NAME = 'session_project';
67
+ /** メトリクスと同じ scope 接頭辞。アダプタの判定に通す必要がある。 */
68
+ const SCOPE_NAME = 'com.anthropic.claude_code.events';
69
+ /** 送信に許す時間。ツール呼び出しの前に挟まるので、待たせない。 */
70
+ const TIMEOUT_MS = 2000;
71
+ /** 前回申告した値の置き場所。同じ値を毎回送らないためだけに使う。 */
72
+ function stateFile(sessionId) {
73
+ const safe = sessionId.replace(/[^A-Za-z0-9._-]/g, '-').slice(0, 128);
74
+ return path.join(new paths_1.VessPaths().baseDir, 'usage', `${safe}.project`);
75
+ }
76
+ function readLastDeclared(file) {
77
+ try {
78
+ return fs.readFileSync(file, 'utf8').trim() || null;
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ }
84
+ function writeLastDeclared(file, projectKey) {
85
+ try {
86
+ fs.mkdirSync(path.dirname(file), { recursive: true });
87
+ fs.writeFileSync(file, projectKey);
88
+ }
89
+ catch {
90
+ // 記録できなくても申告そのものは済んでいる。次回また送るだけ
91
+ }
92
+ }
93
+ function readStdin() {
94
+ return new Promise(resolve => {
95
+ if (process.stdin.isTTY)
96
+ return resolve('');
97
+ const chunks = [];
98
+ process.stdin.on('data', chunk => chunks.push(chunk));
99
+ process.stdin.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
100
+ process.stdin.on('error', () => resolve(''));
101
+ });
102
+ }
103
+ /** OTLP のログ 1 件。フックが送るのはこれだけ。 */
104
+ function buildPayload(sessionId, projectKey) {
105
+ const now = `${Date.now()}000000`;
106
+ return {
107
+ resourceLogs: [
108
+ {
109
+ resource: { attributes: [] },
110
+ scopeLogs: [
111
+ {
112
+ scope: { name: SCOPE_NAME },
113
+ logRecords: [
114
+ {
115
+ timeUnixNano: now,
116
+ observedTimeUnixNano: now,
117
+ body: { stringValue: EVENT_NAME },
118
+ attributes: [
119
+ { key: 'event.name', value: { stringValue: EVENT_NAME } },
120
+ { key: 'session.id', value: { stringValue: sessionId } },
121
+ { key: 'project_key', value: { stringValue: projectKey } },
122
+ ],
123
+ },
124
+ ],
125
+ },
126
+ ],
127
+ },
128
+ ],
129
+ };
130
+ }
131
+ async function declare(endpoint, apiKey, payload) {
132
+ const controller = new AbortController();
133
+ const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
134
+ try {
135
+ await fetch(`${endpoint.replace(/\/+$/, '')}${LOGS_PATH}`, {
136
+ method: 'POST',
137
+ headers: { 'Content-Type': 'application/json', 'X-API-Key': apiKey },
138
+ body: JSON.stringify(payload),
139
+ signal: controller.signal,
140
+ });
141
+ }
142
+ finally {
143
+ clearTimeout(timer);
144
+ }
145
+ }
146
+ /**
147
+ * `PostToolUse` フックとして Claude Code から起動される。
148
+ *
149
+ * 標準出力には何も書かない。フックの出力はエージェントに渡るので、
150
+ * 集計の都合をエージェントの入力に混ぜない。
151
+ */
152
+ async function runHookSessionProject() {
153
+ let input;
154
+ try {
155
+ input = JSON.parse(await readStdin());
156
+ }
157
+ catch {
158
+ return;
159
+ }
160
+ const sessionId = input.session_id?.trim();
161
+ const cwd = input.cwd?.trim();
162
+ if (!sessionId || !cwd)
163
+ return;
164
+ let projectKey;
165
+ try {
166
+ projectKey = (0, project_key_1.resolveProjectKey)({ cwd });
167
+ }
168
+ catch {
169
+ return;
170
+ }
171
+ const file = stateFile(sessionId);
172
+ if (readLastDeclared(file) === projectKey)
173
+ return;
174
+ let apiKey;
175
+ try {
176
+ apiKey =
177
+ process.env[otel_headers_1.TELEMETRY_API_KEY_ENV]?.trim() || new key_manager_1.KeyManager().getTelemetryApiKey() || '';
178
+ }
179
+ catch {
180
+ return;
181
+ }
182
+ if (!apiKey)
183
+ return;
184
+ let endpoint;
185
+ try {
186
+ // キーと同じ流儀で環境変数を優先する。既定の送信先とは別の環境へ
187
+ // 向けたいとき (検証など) に、vess の設定を書き換えずに済ませる
188
+ endpoint =
189
+ process.env[exports.TELEMETRY_ENDPOINT_ENV]?.trim() ||
190
+ (0, config_1.loadConfig)(new paths_1.VessPaths().configFile).gatewayUrl;
191
+ }
192
+ catch {
193
+ return;
194
+ }
195
+ if (!endpoint)
196
+ return;
197
+ try {
198
+ await declare(endpoint, apiKey, buildPayload(sessionId, projectKey));
199
+ // 送れたときだけ記録する。失敗を成功として覚えると、次の機会も送らない
200
+ writeLastDeclared(file, projectKey);
201
+ }
202
+ catch {
203
+ // 受信口が落ちている / オフライン。次のツール呼び出しでまた試す
204
+ }
205
+ }
206
+ //# sourceMappingURL=hook-session-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-session-project.js","sourceRoot":"","sources":["../../src/cli/hook-session-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}