@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.
Files changed (280) hide show
  1. package/LICENSE +64 -0
  2. package/README.md +223 -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 +34 -0
  13. package/dist/adapter/mcp/http-transport.d.ts.map +1 -0
  14. package/dist/adapter/mcp/http-transport.js +158 -0
  15. package/dist/adapter/mcp/http-transport.js.map +1 -0
  16. package/dist/adapter/mcp/mcp-adapter.d.ts +37 -0
  17. package/dist/adapter/mcp/mcp-adapter.d.ts.map +1 -0
  18. package/dist/adapter/mcp/mcp-adapter.js +48 -0
  19. package/dist/adapter/mcp/mcp-adapter.js.map +1 -0
  20. package/dist/adapter/mcp/mcp-server.factory.d.ts +35 -0
  21. package/dist/adapter/mcp/mcp-server.factory.d.ts.map +1 -0
  22. package/dist/adapter/mcp/mcp-server.factory.js +114 -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/cli/cli-db.d.ts +12 -0
  53. package/dist/cli/cli-db.d.ts.map +1 -0
  54. package/dist/cli/cli-db.js +20 -0
  55. package/dist/cli/cli-db.js.map +1 -0
  56. package/dist/cli/cli-utils.d.ts +14 -0
  57. package/dist/cli/cli-utils.d.ts.map +1 -0
  58. package/dist/cli/cli-utils.js +57 -0
  59. package/dist/cli/cli-utils.js.map +1 -0
  60. package/dist/cli/daemon-utils.d.ts +30 -0
  61. package/dist/cli/daemon-utils.d.ts.map +1 -0
  62. package/dist/cli/daemon-utils.js +131 -0
  63. package/dist/cli/daemon-utils.js.map +1 -0
  64. package/dist/cli/daemon.d.ts +13 -0
  65. package/dist/cli/daemon.d.ts.map +1 -0
  66. package/dist/cli/daemon.js +207 -0
  67. package/dist/cli/daemon.js.map +1 -0
  68. package/dist/cli/doctor.d.ts +2 -0
  69. package/dist/cli/doctor.d.ts.map +1 -0
  70. package/dist/cli/doctor.js +135 -0
  71. package/dist/cli/doctor.js.map +1 -0
  72. package/dist/cli/env-delete.d.ts +6 -0
  73. package/dist/cli/env-delete.d.ts.map +1 -0
  74. package/dist/cli/env-delete.js +80 -0
  75. package/dist/cli/env-delete.js.map +1 -0
  76. package/dist/cli/env-list.d.ts +5 -0
  77. package/dist/cli/env-list.d.ts.map +1 -0
  78. package/dist/cli/env-list.js +42 -0
  79. package/dist/cli/env-list.js.map +1 -0
  80. package/dist/cli/env-post-integration.d.ts +21 -0
  81. package/dist/cli/env-post-integration.d.ts.map +1 -0
  82. package/dist/cli/env-post-integration.js +300 -0
  83. package/dist/cli/env-post-integration.js.map +1 -0
  84. package/dist/cli/env-restore.d.ts +15 -0
  85. package/dist/cli/env-restore.d.ts.map +1 -0
  86. package/dist/cli/env-restore.js +130 -0
  87. package/dist/cli/env-restore.js.map +1 -0
  88. package/dist/cli/env.d.ts +14 -0
  89. package/dist/cli/env.d.ts.map +1 -0
  90. package/dist/cli/env.js +182 -0
  91. package/dist/cli/env.js.map +1 -0
  92. package/dist/cli/error-handlers.d.ts +13 -0
  93. package/dist/cli/error-handlers.d.ts.map +1 -0
  94. package/dist/cli/error-handlers.js +32 -0
  95. package/dist/cli/error-handlers.js.map +1 -0
  96. package/dist/cli/hook-check-env.d.ts +12 -0
  97. package/dist/cli/hook-check-env.d.ts.map +1 -0
  98. package/dist/cli/hook-check-env.js +117 -0
  99. package/dist/cli/hook-check-env.js.map +1 -0
  100. package/dist/cli/index.d.ts +2 -0
  101. package/dist/cli/index.d.ts.map +1 -0
  102. package/dist/cli/index.js +294 -0
  103. package/dist/cli/index.js.map +1 -0
  104. package/dist/cli/init-guard.d.ts +13 -0
  105. package/dist/cli/init-guard.d.ts.map +1 -0
  106. package/dist/cli/init-guard.js +62 -0
  107. package/dist/cli/init-guard.js.map +1 -0
  108. package/dist/cli/init.d.ts +19 -0
  109. package/dist/cli/init.d.ts.map +1 -0
  110. package/dist/cli/init.js +440 -0
  111. package/dist/cli/init.js.map +1 -0
  112. package/dist/cli/install.d.ts +14 -0
  113. package/dist/cli/install.d.ts.map +1 -0
  114. package/dist/cli/install.js +186 -0
  115. package/dist/cli/install.js.map +1 -0
  116. package/dist/cli/login.d.ts +6 -0
  117. package/dist/cli/login.d.ts.map +1 -0
  118. package/dist/cli/login.js +76 -0
  119. package/dist/cli/login.js.map +1 -0
  120. package/dist/cli/logs.d.ts +32 -0
  121. package/dist/cli/logs.d.ts.map +1 -0
  122. package/dist/cli/logs.js +147 -0
  123. package/dist/cli/logs.js.map +1 -0
  124. package/dist/cli/project.d.ts +8 -0
  125. package/dist/cli/project.d.ts.map +1 -0
  126. package/dist/cli/project.js +102 -0
  127. package/dist/cli/project.js.map +1 -0
  128. package/dist/cli/reset.d.ts +8 -0
  129. package/dist/cli/reset.d.ts.map +1 -0
  130. package/dist/cli/reset.js +137 -0
  131. package/dist/cli/reset.js.map +1 -0
  132. package/dist/cli/run.d.ts +22 -0
  133. package/dist/cli/run.d.ts.map +1 -0
  134. package/dist/cli/run.js +103 -0
  135. package/dist/cli/run.js.map +1 -0
  136. package/dist/cli/start.d.ts +2 -0
  137. package/dist/cli/start.d.ts.map +1 -0
  138. package/dist/cli/start.js +29 -0
  139. package/dist/cli/start.js.map +1 -0
  140. package/dist/cli/status.d.ts +12 -0
  141. package/dist/cli/status.d.ts.map +1 -0
  142. package/dist/cli/status.js +131 -0
  143. package/dist/cli/status.js.map +1 -0
  144. package/dist/cli/uninstall.d.ts +8 -0
  145. package/dist/cli/uninstall.d.ts.map +1 -0
  146. package/dist/cli/uninstall.js +111 -0
  147. package/dist/cli/uninstall.js.map +1 -0
  148. package/dist/config/config.d.ts +10 -0
  149. package/dist/config/config.d.ts.map +1 -0
  150. package/dist/config/config.js +64 -0
  151. package/dist/config/config.js.map +1 -0
  152. package/dist/config/constants.d.ts +3 -0
  153. package/dist/config/constants.d.ts.map +1 -0
  154. package/dist/config/constants.js +6 -0
  155. package/dist/config/constants.js.map +1 -0
  156. package/dist/config/paths.d.ts +9 -0
  157. package/dist/config/paths.d.ts.map +1 -0
  158. package/dist/config/paths.js +58 -0
  159. package/dist/config/paths.js.map +1 -0
  160. package/dist/core/execution-engine.d.ts +119 -0
  161. package/dist/core/execution-engine.d.ts.map +1 -0
  162. package/dist/core/execution-engine.js +1291 -0
  163. package/dist/core/execution-engine.js.map +1 -0
  164. package/dist/core/runtime.d.ts +43 -0
  165. package/dist/core/runtime.d.ts.map +1 -0
  166. package/dist/core/runtime.js +143 -0
  167. package/dist/core/runtime.js.map +1 -0
  168. package/dist/core/sync-scheduler.d.ts +42 -0
  169. package/dist/core/sync-scheduler.d.ts.map +1 -0
  170. package/dist/core/sync-scheduler.js +131 -0
  171. package/dist/core/sync-scheduler.js.map +1 -0
  172. package/dist/core/types.d.ts +77 -0
  173. package/dist/core/types.d.ts.map +1 -0
  174. package/dist/core/types.js +7 -0
  175. package/dist/core/types.js.map +1 -0
  176. package/dist/daemon/service-manager.d.ts +68 -0
  177. package/dist/daemon/service-manager.d.ts.map +1 -0
  178. package/dist/daemon/service-manager.js +303 -0
  179. package/dist/daemon/service-manager.js.map +1 -0
  180. package/dist/env/env-classifier.d.ts +14 -0
  181. package/dist/env/env-classifier.d.ts.map +1 -0
  182. package/dist/env/env-classifier.js +94 -0
  183. package/dist/env/env-classifier.js.map +1 -0
  184. package/dist/env/env-parser.d.ts +13 -0
  185. package/dist/env/env-parser.d.ts.map +1 -0
  186. package/dist/env/env-parser.js +33 -0
  187. package/dist/env/env-parser.js.map +1 -0
  188. package/dist/env/env-profile-store.d.ts +15 -0
  189. package/dist/env/env-profile-store.d.ts.map +1 -0
  190. package/dist/env/env-profile-store.js +35 -0
  191. package/dist/env/env-profile-store.js.map +1 -0
  192. package/dist/env/env-reference.d.ts +10 -0
  193. package/dist/env/env-reference.d.ts.map +1 -0
  194. package/dist/env/env-reference.js +33 -0
  195. package/dist/env/env-reference.js.map +1 -0
  196. package/dist/env/env-resolver.d.ts +18 -0
  197. package/dist/env/env-resolver.d.ts.map +1 -0
  198. package/dist/env/env-resolver.js +48 -0
  199. package/dist/env/env-resolver.js.map +1 -0
  200. package/dist/env/fs-utils.d.ts +9 -0
  201. package/dist/env/fs-utils.d.ts.map +1 -0
  202. package/dist/env/fs-utils.js +59 -0
  203. package/dist/env/fs-utils.js.map +1 -0
  204. package/dist/env/secret-backend.d.ts +15 -0
  205. package/dist/env/secret-backend.d.ts.map +1 -0
  206. package/dist/env/secret-backend.js +24 -0
  207. package/dist/env/secret-backend.js.map +1 -0
  208. package/dist/executor/executor-registry.d.ts +22 -0
  209. package/dist/executor/executor-registry.d.ts.map +1 -0
  210. package/dist/executor/executor-registry.js +42 -0
  211. package/dist/executor/executor-registry.js.map +1 -0
  212. package/dist/executor/process-launcher.d.ts +26 -0
  213. package/dist/executor/process-launcher.d.ts.map +1 -0
  214. package/dist/executor/process-launcher.js +98 -0
  215. package/dist/executor/process-launcher.js.map +1 -0
  216. package/dist/executor/secret-file.d.ts +28 -0
  217. package/dist/executor/secret-file.d.ts.map +1 -0
  218. package/dist/executor/secret-file.js +127 -0
  219. package/dist/executor/secret-file.js.map +1 -0
  220. package/dist/gateway/auth.d.ts +26 -0
  221. package/dist/gateway/auth.d.ts.map +1 -0
  222. package/dist/gateway/auth.js +66 -0
  223. package/dist/gateway/auth.js.map +1 -0
  224. package/dist/gateway/gateway-client.d.ts +298 -0
  225. package/dist/gateway/gateway-client.d.ts.map +1 -0
  226. package/dist/gateway/gateway-client.js +501 -0
  227. package/dist/gateway/gateway-client.js.map +1 -0
  228. package/dist/identity/agent-identity.d.ts +29 -0
  229. package/dist/identity/agent-identity.d.ts.map +1 -0
  230. package/dist/identity/agent-identity.js +54 -0
  231. package/dist/identity/agent-identity.js.map +1 -0
  232. package/dist/identity/did-manager.d.ts +17 -0
  233. package/dist/identity/did-manager.d.ts.map +1 -0
  234. package/dist/identity/did-manager.js +29 -0
  235. package/dist/identity/did-manager.js.map +1 -0
  236. package/dist/identity/key-manager.d.ts +18 -0
  237. package/dist/identity/key-manager.d.ts.map +1 -0
  238. package/dist/identity/key-manager.js +101 -0
  239. package/dist/identity/key-manager.js.map +1 -0
  240. package/dist/identity/session-key.d.ts +13 -0
  241. package/dist/identity/session-key.d.ts.map +1 -0
  242. package/dist/identity/session-key.js +17 -0
  243. package/dist/identity/session-key.js.map +1 -0
  244. package/dist/policy/policy-evaluator.d.ts +63 -0
  245. package/dist/policy/policy-evaluator.d.ts.map +1 -0
  246. package/dist/policy/policy-evaluator.js +266 -0
  247. package/dist/policy/policy-evaluator.js.map +1 -0
  248. package/dist/policy/policy-loader.d.ts +10 -0
  249. package/dist/policy/policy-loader.d.ts.map +1 -0
  250. package/dist/policy/policy-loader.js +71 -0
  251. package/dist/policy/policy-loader.js.map +1 -0
  252. package/dist/policy/types.d.ts +21 -0
  253. package/dist/policy/types.d.ts.map +1 -0
  254. package/dist/policy/types.js +3 -0
  255. package/dist/policy/types.js.map +1 -0
  256. package/dist/utils/credential-errors.d.ts +3 -0
  257. package/dist/utils/credential-errors.d.ts.map +1 -0
  258. package/dist/utils/credential-errors.js +23 -0
  259. package/dist/utils/credential-errors.js.map +1 -0
  260. package/dist/utils/resource-canonicalizer.d.ts +19 -0
  261. package/dist/utils/resource-canonicalizer.d.ts.map +1 -0
  262. package/dist/utils/resource-canonicalizer.js +100 -0
  263. package/dist/utils/resource-canonicalizer.js.map +1 -0
  264. package/dist/utils/vc-utils.d.ts +23 -0
  265. package/dist/utils/vc-utils.d.ts.map +1 -0
  266. package/dist/utils/vc-utils.js +53 -0
  267. package/dist/utils/vc-utils.js.map +1 -0
  268. package/dist/wallet/sqlite.d.ts +4 -0
  269. package/dist/wallet/sqlite.d.ts.map +1 -0
  270. package/dist/wallet/sqlite.js +158 -0
  271. package/dist/wallet/sqlite.js.map +1 -0
  272. package/dist/wallet/vp-builder.d.ts +18 -0
  273. package/dist/wallet/vp-builder.d.ts.map +1 -0
  274. package/dist/wallet/vp-builder.js +46 -0
  275. package/dist/wallet/vp-builder.js.map +1 -0
  276. package/dist/wallet/wallet.d.ts +58 -0
  277. package/dist/wallet/wallet.d.ts.map +1 -0
  278. package/dist/wallet/wallet.js +170 -0
  279. package/dist/wallet/wallet.js.map +1 -0
  280. package/package.json +80 -0
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeviceAuth = void 0;
4
+ const config_1 = require("../config/config");
5
+ const key_manager_1 = require("../identity/key-manager");
6
+ /**
7
+ * Device authentication manager.
8
+ * Session token is stored in OS Keychain (not config file) for security.
9
+ * Falls back to config file for migration from older versions.
10
+ */
11
+ class DeviceAuth {
12
+ configPath;
13
+ keyManager;
14
+ constructor(configPath, keyManager) {
15
+ this.configPath = configPath;
16
+ this.keyManager = keyManager ?? new key_manager_1.KeyManager();
17
+ }
18
+ getSessionToken() {
19
+ // Prefer Keychain, fall back to config for migration
20
+ const keychainToken = this.keyManager.getSessionToken();
21
+ if (keychainToken)
22
+ return keychainToken;
23
+ const config = (0, config_1.loadConfig)(this.configPath);
24
+ return config.deviceSessionToken;
25
+ }
26
+ setSessionToken(token) {
27
+ this.keyManager.storeSessionToken(token);
28
+ }
29
+ isAuthenticated() {
30
+ return !!this.getSessionToken();
31
+ }
32
+ /**
33
+ * Decode the session token JWT and return the `exp` claim (Unix epoch seconds).
34
+ * Returns null if no token is stored or the token is malformed.
35
+ */
36
+ getTokenExpiry() {
37
+ const token = this.getSessionToken();
38
+ if (!token)
39
+ return null;
40
+ try {
41
+ const parts = token.split('.');
42
+ if (parts.length !== 3)
43
+ return null;
44
+ const payload = JSON.parse(Buffer.from(parts[1], 'base64url').toString());
45
+ return payload.exp ?? null;
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ /**
52
+ * Check if the current session token is expiring within the given threshold.
53
+ * Returns true if no token is stored (treat as expired).
54
+ */
55
+ isTokenExpiringSoon(thresholdSeconds) {
56
+ const exp = this.getTokenExpiry();
57
+ if (exp === null)
58
+ return true;
59
+ return exp - Math.floor(Date.now() / 1000) < thresholdSeconds;
60
+ }
61
+ getGatewayUrl() {
62
+ return (0, config_1.loadConfig)(this.configPath).gatewayUrl;
63
+ }
64
+ }
65
+ exports.DeviceAuth = DeviceAuth;
66
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/gateway/auth.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,yDAAoD;AAEpD;;;;GAIG;AACH,MAAa,UAAU;IAIF;IAHF,UAAU,CAAY;IAEvC,YACmB,UAAkB,EACnC,UAAuB;QADN,eAAU,GAAV,UAAU,CAAQ;QAGnC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,wBAAU,EAAE,CAAA;IAClD,CAAC;IAED,eAAe;QACb,qDAAqD;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAA;QACvD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAA;QAEvC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAC,kBAAkB,CAAA;IAClC,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,eAAe;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA;IACjC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzE,OAAO,OAAO,CAAC,GAAG,IAAI,IAAI,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,gBAAwB;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACjC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC7B,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAA;IAC/D,CAAC;IAED,aAAa;QACX,OAAO,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAA;IAC/C,CAAC;CACF;AAzDD,gCAyDC"}
@@ -0,0 +1,298 @@
1
+ /**
2
+ * Gateway API client for agentd (spec §10).
3
+ *
4
+ * All requests use X-Device-Session-Token header for authentication.
5
+ *
6
+ * Endpoints:
7
+ * - POST /api/v1/agentd/nonce (nonce for VP replay prevention)
8
+ * - POST /api/v1/agentd/vc/auto-issue (auto-issue VC)
9
+ * - GET /api/v1/agentd/vc/approved (find approved requests)
10
+ * - GET /api/v1/agentd/vc/status/:jti (VC revocation status)
11
+ * - POST /api/v1/agentd/vp/verify-authorize (VP verify + authorize)
12
+ * - POST /api/v1/agentd/approval/request (OOB approval request create)
13
+ * - GET /api/v1/agentd/approval/:id/status (OOB approval status poll)
14
+ * - POST /api/v1/grant/quick-approve (inline Grant + VC issuance)
15
+ * - POST /api/v1/grant/consume (one-time grant consumption)
16
+ * - POST /api/v1/tool/invoke (SaaS tool execution)
17
+ * - POST /api/v1/audit/batch (batch audit event sync)
18
+ * - GET /api/v1/grant/policy/:projectId (org policy sync)
19
+ * - POST /api/v1/agentd/resource/resolve (resolve human-readable resource to canonical ID)
20
+ */
21
+ /** Resource constraint describing a scoped resource (e.g., Slack channel, GitHub repo). */
22
+ export interface ResourceConstraint {
23
+ provider: string;
24
+ type: string;
25
+ id?: string;
26
+ pattern?: string;
27
+ }
28
+ export interface AutoIssueVCParams {
29
+ subjectDid: string;
30
+ projectId: string;
31
+ actions: string[];
32
+ sessionId?: string;
33
+ }
34
+ export interface AutoIssueVCResult {
35
+ autoIssued: boolean;
36
+ credential: {
37
+ jwt: string;
38
+ expiresAt: number;
39
+ };
40
+ actions: string[];
41
+ resources?: ResourceConstraint[];
42
+ metadata?: Record<string, unknown>;
43
+ }
44
+ export interface ApprovedRequest {
45
+ id: string;
46
+ actions: string[];
47
+ credential?: {
48
+ jwt: string;
49
+ expiresAt: number;
50
+ };
51
+ resources?: ResourceConstraint[];
52
+ }
53
+ export interface VerifyAuthorizeResult {
54
+ authorized: boolean;
55
+ reason?: string;
56
+ projectId?: string;
57
+ issuerDid?: string;
58
+ grantId?: string;
59
+ approvalMode?: 'one_time' | 'persistent';
60
+ }
61
+ export interface CreateApprovalRequestParams {
62
+ subjectDid: string;
63
+ projectId: string;
64
+ actions: string[];
65
+ resources?: ResourceConstraint[];
66
+ expiresInHours?: number;
67
+ }
68
+ export interface CreateApprovalRequestResult {
69
+ requestId: string;
70
+ approvalUrl: string;
71
+ status: string;
72
+ expiresAt: string;
73
+ }
74
+ export interface ApprovalStatusResult {
75
+ status: 'pending' | 'approved' | 'denied' | 'expired';
76
+ actions?: string[];
77
+ resources?: ResourceConstraint[];
78
+ credential?: string;
79
+ grant?: any;
80
+ vcId?: string;
81
+ expiresAt?: string;
82
+ }
83
+ export interface QuickApproveParams {
84
+ actions: string[];
85
+ resources: Array<{
86
+ type: string;
87
+ pattern?: string;
88
+ id?: string;
89
+ }>;
90
+ normalizedResource?: string;
91
+ resourceFingerprint?: string;
92
+ subjectDid: string;
93
+ projectId: string;
94
+ issueVC: boolean;
95
+ approvalMode: 'one_time' | 'persistent';
96
+ approvalNonce: string;
97
+ expiresInHours?: number;
98
+ }
99
+ export interface QuickApproveResult {
100
+ grant: {
101
+ id: string;
102
+ actions: string[];
103
+ resources: Array<{
104
+ type: string;
105
+ id?: string;
106
+ pattern?: string;
107
+ }>;
108
+ status: string;
109
+ };
110
+ /** The VC credential JWT string (raw JWT, not wrapped in an object) */
111
+ credential: string;
112
+ vcId: string;
113
+ issuerDid: string;
114
+ subjectDid: string;
115
+ actions: string[];
116
+ issuedAt: string;
117
+ /** ISO 8601 expiration timestamp */
118
+ expiresAt: string;
119
+ /** Resources with provider enrichment, ready for wallet storage */
120
+ resources?: ResourceConstraint[];
121
+ }
122
+ export interface ResolveResourceResult {
123
+ canonicalId: string;
124
+ displayName: string;
125
+ provider: string;
126
+ type: string;
127
+ resolved: boolean;
128
+ }
129
+ export interface InvokeToolResult {
130
+ success: boolean;
131
+ data?: any;
132
+ error?: string;
133
+ errorCode?: string;
134
+ allowedResources?: string[];
135
+ requestedResource?: string;
136
+ }
137
+ export interface ConsumeGrantResult {
138
+ consumed: boolean;
139
+ reason?: string;
140
+ }
141
+ export interface RegisterAgentParams {
142
+ agentDid: string;
143
+ name: string;
144
+ type: string;
145
+ publicKey: {
146
+ kty: string;
147
+ crv: string;
148
+ x: string;
149
+ y: string;
150
+ };
151
+ projectId: string;
152
+ deviceInfo?: {
153
+ platform?: string;
154
+ hostname?: string;
155
+ runtime?: string;
156
+ };
157
+ }
158
+ export interface RegisterAgentResult {
159
+ id: string;
160
+ did: string;
161
+ name: string;
162
+ type: string;
163
+ status: string;
164
+ }
165
+ export interface InvokeToolParams {
166
+ action: string;
167
+ parameters: Record<string, any>;
168
+ holderDid: string;
169
+ vpJwt: string;
170
+ vpChallenge: string;
171
+ vpDomain: string;
172
+ }
173
+ /**
174
+ * Custom error for network-level failures (connection refused, DNS, timeout).
175
+ * Used by ExecutionEngine to distinguish network issues from code bugs.
176
+ */
177
+ export declare class GatewayNetworkError extends Error {
178
+ readonly cause?: unknown | undefined;
179
+ constructor(message: string, cause?: unknown | undefined);
180
+ }
181
+ export declare class AgentdGatewayClient {
182
+ private readonly baseUrl;
183
+ private readonly getSessionToken;
184
+ private readonly onTokenRefreshed?;
185
+ /** Shared promise for deduplicating concurrent token refresh attempts */
186
+ private refreshPromise;
187
+ constructor(baseUrl: string, getSessionToken: () => string, onTokenRefreshed?: ((newToken: string) => void) | undefined);
188
+ private buildHeaders;
189
+ /**
190
+ * Wrap fetch calls to convert network errors into GatewayNetworkError.
191
+ */
192
+ private fetchWithNetworkError;
193
+ /**
194
+ * Wrap fetch calls with automatic retry on 401 (token expired).
195
+ * On 401, attempts to refresh the token and retry the original request.
196
+ * Does NOT apply to refreshToken itself (to avoid infinite loops).
197
+ */
198
+ private fetchWithAuthRetry;
199
+ /**
200
+ * Refresh the device session token.
201
+ * POST /api/v1/device/refresh
202
+ * NOTE: Uses fetchWithNetworkError (not fetchWithAuthRetry) to avoid infinite loops.
203
+ */
204
+ refreshToken(): Promise<{
205
+ deviceSessionToken: string;
206
+ expiresAt: string;
207
+ }>;
208
+ /**
209
+ * Issue nonce for VP replay prevention.
210
+ * POST /api/v1/agentd/nonce
211
+ */
212
+ issueNonce(agentDid: string): Promise<{
213
+ nonce: string;
214
+ }>;
215
+ /**
216
+ * Auto-issue VC when grant has autoApprove enabled.
217
+ * POST /api/v1/agentd/vc/auto-issue
218
+ */
219
+ autoIssueVC(params: AutoIssueVCParams): Promise<AutoIssueVCResult | null>;
220
+ /**
221
+ * Find approved requests by subjectDid.
222
+ * GET /api/v1/agentd/vc/approved?subjectDid=...
223
+ */
224
+ findApprovedRequests(subjectDid: string): Promise<ApprovedRequest[]>;
225
+ /**
226
+ * Check VC revocation status by jti.
227
+ * GET /api/v1/agentd/vc/status/:jti
228
+ */
229
+ checkVCStatus(jti: string): Promise<{
230
+ valid: boolean;
231
+ reason?: string;
232
+ }>;
233
+ /**
234
+ * VP verify + grant authorization check (gateway_verified_local).
235
+ * POST /api/v1/agentd/vp/verify-authorize
236
+ */
237
+ verifyAndAuthorize(vpJwt: string, challenge: string, domain: string, action: string, holderDid: string): Promise<VerifyAuthorizeResult>;
238
+ /**
239
+ * Register an agent in the API Agent table so it appears in agents.html / timeline.html.
240
+ * POST /api/v1/agents/create
241
+ *
242
+ * Requires X-Project-Id header for ProjectRoleGuard.
243
+ * Treats 409 Conflict as success (idempotent — agent already exists).
244
+ */
245
+ registerAgent(params: RegisterAgentParams): Promise<RegisterAgentResult>;
246
+ /**
247
+ * Inline Grant + VC issuance (spec §6.2).
248
+ * POST /api/v1/grant/quick-approve
249
+ */
250
+ quickApprove(params: QuickApproveParams): Promise<QuickApproveResult>;
251
+ /**
252
+ * Create an OOB approval request for high-risk actions.
253
+ * POST /api/v1/agentd/approval/request
254
+ */
255
+ createApprovalRequest(params: CreateApprovalRequestParams): Promise<CreateApprovalRequestResult>;
256
+ /**
257
+ * Poll the status of an OOB approval request.
258
+ * GET /api/v1/agentd/approval/:requestId/status
259
+ */
260
+ getApprovalStatus(requestId: string): Promise<ApprovalStatusResult>;
261
+ /**
262
+ * One-time grant atomic consumption (spec §6.2).
263
+ * POST /api/v1/grant/consume
264
+ */
265
+ consumeGrant(grantId: string): Promise<ConsumeGrantResult>;
266
+ /**
267
+ * SaaS tool execution via Gateway (VP in Authorization header).
268
+ * POST /api/v1/tool/invoke
269
+ */
270
+ invokeTool(params: InvokeToolParams): Promise<InvokeToolResult>;
271
+ /**
272
+ * Resolve a human-readable resource identifier to its canonical ID.
273
+ * POST /api/v1/agentd/resource/resolve
274
+ */
275
+ resolveResource(params: {
276
+ provider: string;
277
+ resourceType: string;
278
+ input: string;
279
+ projectId: string;
280
+ }): Promise<ResolveResourceResult>;
281
+ /**
282
+ * Fetch org-level policy for a project (spec §7.6).
283
+ */
284
+ fetchOrgPolicy(projectId: string): Promise<any>;
285
+ /**
286
+ * Verify a VP with the Gateway (spec §7.4 gateway_verified_local).
287
+ * @deprecated Use verifyAndAuthorize instead for full VP+grant check.
288
+ */
289
+ verifyVP(vpJwt: string, nonce: string, domain: string): Promise<{
290
+ valid: boolean;
291
+ reason?: string;
292
+ }>;
293
+ /**
294
+ * Check if Gateway is reachable.
295
+ */
296
+ isReachable(): Promise<boolean>;
297
+ }
298
+ //# sourceMappingURL=gateway-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-client.ts"],"names":[],"mappings":"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"}