toolhome 0.5.0

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 (214) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -0
  3. package/README.zh.md +281 -0
  4. package/dist/server/app.d.ts +16 -0
  5. package/dist/server/app.d.ts.map +1 -0
  6. package/dist/server/app.js +166 -0
  7. package/dist/server/app.js.map +1 -0
  8. package/dist/server/cli/main.d.ts +3 -0
  9. package/dist/server/cli/main.d.ts.map +1 -0
  10. package/dist/server/cli/main.js +587 -0
  11. package/dist/server/cli/main.js.map +1 -0
  12. package/dist/server/cli-plane/allow-list.d.ts +18 -0
  13. package/dist/server/cli-plane/allow-list.d.ts.map +1 -0
  14. package/dist/server/cli-plane/allow-list.js +28 -0
  15. package/dist/server/cli-plane/allow-list.js.map +1 -0
  16. package/dist/server/cli-plane/cli-service.d.ts +41 -0
  17. package/dist/server/cli-plane/cli-service.d.ts.map +1 -0
  18. package/dist/server/cli-plane/cli-service.js +282 -0
  19. package/dist/server/cli-plane/cli-service.js.map +1 -0
  20. package/dist/server/cli-plane/frames.d.ts +26 -0
  21. package/dist/server/cli-plane/frames.d.ts.map +1 -0
  22. package/dist/server/cli-plane/frames.js +12 -0
  23. package/dist/server/cli-plane/frames.js.map +1 -0
  24. package/dist/server/cli-plane/models.d.ts +174 -0
  25. package/dist/server/cli-plane/models.d.ts.map +1 -0
  26. package/dist/server/cli-plane/models.js +169 -0
  27. package/dist/server/cli-plane/models.js.map +1 -0
  28. package/dist/server/cli-plane/routes.d.ts +32 -0
  29. package/dist/server/cli-plane/routes.d.ts.map +1 -0
  30. package/dist/server/cli-plane/routes.js +94 -0
  31. package/dist/server/cli-plane/routes.js.map +1 -0
  32. package/dist/server/cli-plane/runner.d.ts +41 -0
  33. package/dist/server/cli-plane/runner.d.ts.map +1 -0
  34. package/dist/server/cli-plane/runner.js +163 -0
  35. package/dist/server/cli-plane/runner.js.map +1 -0
  36. package/dist/server/cli-plane/status.d.ts +12 -0
  37. package/dist/server/cli-plane/status.d.ts.map +1 -0
  38. package/dist/server/cli-plane/status.js +24 -0
  39. package/dist/server/cli-plane/status.js.map +1 -0
  40. package/dist/server/config/harness-import.d.ts +44 -0
  41. package/dist/server/config/harness-import.d.ts.map +1 -0
  42. package/dist/server/config/harness-import.js +166 -0
  43. package/dist/server/config/harness-import.js.map +1 -0
  44. package/dist/server/config.d.ts +20 -0
  45. package/dist/server/config.d.ts.map +1 -0
  46. package/dist/server/config.js +80 -0
  47. package/dist/server/config.js.map +1 -0
  48. package/dist/server/control/client.d.ts +24 -0
  49. package/dist/server/control/client.d.ts.map +1 -0
  50. package/dist/server/control/client.js +115 -0
  51. package/dist/server/control/client.js.map +1 -0
  52. package/dist/server/control/control-api.d.ts +39 -0
  53. package/dist/server/control/control-api.d.ts.map +1 -0
  54. package/dist/server/control/control-api.js +291 -0
  55. package/dist/server/control/control-api.js.map +1 -0
  56. package/dist/server/control/control-service.d.ts +713 -0
  57. package/dist/server/control/control-service.d.ts.map +1 -0
  58. package/dist/server/control/control-service.js +693 -0
  59. package/dist/server/control/control-service.js.map +1 -0
  60. package/dist/server/control/openapi.d.ts +2 -0
  61. package/dist/server/control/openapi.d.ts.map +1 -0
  62. package/dist/server/control/openapi.js +370 -0
  63. package/dist/server/control/openapi.js.map +1 -0
  64. package/dist/server/data-plane/data-plane.d.ts +20 -0
  65. package/dist/server/data-plane/data-plane.d.ts.map +1 -0
  66. package/dist/server/data-plane/data-plane.js +335 -0
  67. package/dist/server/data-plane/data-plane.js.map +1 -0
  68. package/dist/server/data-plane/gateway-server.d.ts +13 -0
  69. package/dist/server/data-plane/gateway-server.d.ts.map +1 -0
  70. package/dist/server/data-plane/gateway-server.js +796 -0
  71. package/dist/server/data-plane/gateway-server.js.map +1 -0
  72. package/dist/server/data-plane/legacy-session.d.ts +18 -0
  73. package/dist/server/data-plane/legacy-session.d.ts.map +1 -0
  74. package/dist/server/data-plane/legacy-session.js +137 -0
  75. package/dist/server/data-plane/legacy-session.js.map +1 -0
  76. package/dist/server/data-plane/projection.d.ts +18 -0
  77. package/dist/server/data-plane/projection.d.ts.map +1 -0
  78. package/dist/server/data-plane/projection.js +44 -0
  79. package/dist/server/data-plane/projection.js.map +1 -0
  80. package/dist/server/data-plane/registry.d.ts +31 -0
  81. package/dist/server/data-plane/registry.d.ts.map +1 -0
  82. package/dist/server/data-plane/registry.js +129 -0
  83. package/dist/server/data-plane/registry.js.map +1 -0
  84. package/dist/server/data-plane/task-extension.d.ts +7 -0
  85. package/dist/server/data-plane/task-extension.d.ts.map +1 -0
  86. package/dist/server/data-plane/task-extension.js +33 -0
  87. package/dist/server/data-plane/task-extension.js.map +1 -0
  88. package/dist/server/data-plane/virtualization.d.ts +35 -0
  89. package/dist/server/data-plane/virtualization.d.ts.map +1 -0
  90. package/dist/server/data-plane/virtualization.js +228 -0
  91. package/dist/server/data-plane/virtualization.js.map +1 -0
  92. package/dist/server/domain/errors.d.ts +9 -0
  93. package/dist/server/domain/errors.d.ts.map +1 -0
  94. package/dist/server/domain/errors.js +19 -0
  95. package/dist/server/domain/errors.js.map +1 -0
  96. package/dist/server/domain/models.d.ts +720 -0
  97. package/dist/server/domain/models.d.ts.map +1 -0
  98. package/dist/server/domain/models.js +327 -0
  99. package/dist/server/domain/models.js.map +1 -0
  100. package/dist/server/main.d.ts +2 -0
  101. package/dist/server/main.d.ts.map +1 -0
  102. package/dist/server/main.js +37 -0
  103. package/dist/server/main.js.map +1 -0
  104. package/dist/server/manage/management-mcp.d.ts +27 -0
  105. package/dist/server/manage/management-mcp.d.ts.map +1 -0
  106. package/dist/server/manage/management-mcp.js +431 -0
  107. package/dist/server/manage/management-mcp.js.map +1 -0
  108. package/dist/server/market/catalog.d.ts +111 -0
  109. package/dist/server/market/catalog.d.ts.map +1 -0
  110. package/dist/server/market/catalog.js +784 -0
  111. package/dist/server/market/catalog.js.map +1 -0
  112. package/dist/server/market/installers.d.ts +64 -0
  113. package/dist/server/market/installers.d.ts.map +1 -0
  114. package/dist/server/market/installers.js +181 -0
  115. package/dist/server/market/installers.js.map +1 -0
  116. package/dist/server/market/market-service.d.ts +146 -0
  117. package/dist/server/market/market-service.d.ts.map +1 -0
  118. package/dist/server/market/market-service.js +930 -0
  119. package/dist/server/market/market-service.js.map +1 -0
  120. package/dist/server/observability/call-recorder.d.ts +22 -0
  121. package/dist/server/observability/call-recorder.d.ts.map +1 -0
  122. package/dist/server/observability/call-recorder.js +99 -0
  123. package/dist/server/observability/call-recorder.js.map +1 -0
  124. package/dist/server/observability/logger.d.ts +16 -0
  125. package/dist/server/observability/logger.d.ts.map +1 -0
  126. package/dist/server/observability/logger.js +25 -0
  127. package/dist/server/observability/logger.js.map +1 -0
  128. package/dist/server/security/api-keys.d.ts +15 -0
  129. package/dist/server/security/api-keys.d.ts.map +1 -0
  130. package/dist/server/security/api-keys.js +35 -0
  131. package/dist/server/security/api-keys.js.map +1 -0
  132. package/dist/server/security/auth-service.d.ts +26 -0
  133. package/dist/server/security/auth-service.d.ts.map +1 -0
  134. package/dist/server/security/auth-service.js +76 -0
  135. package/dist/server/security/auth-service.js.map +1 -0
  136. package/dist/server/security/control-session.d.ts +9 -0
  137. package/dist/server/security/control-session.d.ts.map +1 -0
  138. package/dist/server/security/control-session.js +51 -0
  139. package/dist/server/security/control-session.js.map +1 -0
  140. package/dist/server/security/credential-materializer.d.ts +20 -0
  141. package/dist/server/security/credential-materializer.d.ts.map +1 -0
  142. package/dist/server/security/credential-materializer.js +82 -0
  143. package/dist/server/security/credential-materializer.js.map +1 -0
  144. package/dist/server/security/cursor-codec.d.ts +13 -0
  145. package/dist/server/security/cursor-codec.d.ts.map +1 -0
  146. package/dist/server/security/cursor-codec.js +43 -0
  147. package/dist/server/security/cursor-codec.js.map +1 -0
  148. package/dist/server/security/oauth-routes.d.ts +21 -0
  149. package/dist/server/security/oauth-routes.d.ts.map +1 -0
  150. package/dist/server/security/oauth-routes.js +100 -0
  151. package/dist/server/security/oauth-routes.js.map +1 -0
  152. package/dist/server/security/oauth-server.d.ts +16 -0
  153. package/dist/server/security/oauth-server.d.ts.map +1 -0
  154. package/dist/server/security/oauth-server.js +544 -0
  155. package/dist/server/security/oauth-server.js.map +1 -0
  156. package/dist/server/security/secret-box.d.ts +7 -0
  157. package/dist/server/security/secret-box.d.ts.map +1 -0
  158. package/dist/server/security/secret-box.js +27 -0
  159. package/dist/server/security/secret-box.js.map +1 -0
  160. package/dist/server/security/secure-action.d.ts +21 -0
  161. package/dist/server/security/secure-action.d.ts.map +1 -0
  162. package/dist/server/security/secure-action.js +69 -0
  163. package/dist/server/security/secure-action.js.map +1 -0
  164. package/dist/server/storage/sqlite-store.d.ts +70 -0
  165. package/dist/server/storage/sqlite-store.d.ts.map +1 -0
  166. package/dist/server/storage/sqlite-store.js +1522 -0
  167. package/dist/server/storage/sqlite-store.js.map +1 -0
  168. package/dist/server/storage/store.d.ts +82 -0
  169. package/dist/server/storage/store.d.ts.map +1 -0
  170. package/dist/server/storage/store.js +2 -0
  171. package/dist/server/storage/store.js.map +1 -0
  172. package/dist/server/upstream/adapter.d.ts +52 -0
  173. package/dist/server/upstream/adapter.d.ts.map +1 -0
  174. package/dist/server/upstream/adapter.js +807 -0
  175. package/dist/server/upstream/adapter.js.map +1 -0
  176. package/dist/server/upstream/credential-resolver.d.ts +14 -0
  177. package/dist/server/upstream/credential-resolver.d.ts.map +1 -0
  178. package/dist/server/upstream/credential-resolver.js +56 -0
  179. package/dist/server/upstream/credential-resolver.js.map +1 -0
  180. package/dist/server/upstream/extension-transport.d.ts +17 -0
  181. package/dist/server/upstream/extension-transport.d.ts.map +1 -0
  182. package/dist/server/upstream/extension-transport.js +207 -0
  183. package/dist/server/upstream/extension-transport.js.map +1 -0
  184. package/dist/server/upstream/manager.d.ts +23 -0
  185. package/dist/server/upstream/manager.d.ts.map +1 -0
  186. package/dist/server/upstream/manager.js +324 -0
  187. package/dist/server/upstream/manager.js.map +1 -0
  188. package/dist/server/upstream/oauth-provider.d.ts +38 -0
  189. package/dist/server/upstream/oauth-provider.d.ts.map +1 -0
  190. package/dist/server/upstream/oauth-provider.js +225 -0
  191. package/dist/server/upstream/oauth-provider.js.map +1 -0
  192. package/dist/server/upstream/oauth-refresh.d.ts +65 -0
  193. package/dist/server/upstream/oauth-refresh.d.ts.map +1 -0
  194. package/dist/server/upstream/oauth-refresh.js +240 -0
  195. package/dist/server/upstream/oauth-refresh.js.map +1 -0
  196. package/dist/server/upstream/oauth-routes.d.ts +17 -0
  197. package/dist/server/upstream/oauth-routes.d.ts.map +1 -0
  198. package/dist/server/upstream/oauth-routes.js +87 -0
  199. package/dist/server/upstream/oauth-routes.js.map +1 -0
  200. package/dist/server/upstream/oauth-service.d.ts +143 -0
  201. package/dist/server/upstream/oauth-service.d.ts.map +1 -0
  202. package/dist/server/upstream/oauth-service.js +217 -0
  203. package/dist/server/upstream/oauth-service.js.map +1 -0
  204. package/dist/server/upstream/stable-json.d.ts +3 -0
  205. package/dist/server/upstream/stable-json.d.ts.map +1 -0
  206. package/dist/server/upstream/stable-json.js +17 -0
  207. package/dist/server/upstream/stable-json.js.map +1 -0
  208. package/package.json +69 -0
  209. package/skills/toolhome/SKILL.md +238 -0
  210. package/skills/toolhome/references/cli-reference.md +242 -0
  211. package/skills/toolhome/references/deployment.md +113 -0
  212. package/skills/toolhome/references/market-guide.md +128 -0
  213. package/skills/toolhome/references/oauth-guide.md +96 -0
  214. package/skills/toolhome/references/troubleshooting.md +133 -0
@@ -0,0 +1,69 @@
1
+ import { createHash, createHmac, timingSafeEqual } from 'node:crypto';
2
+ import { AppError } from '../domain/errors.js';
3
+ const ACTION_TTL_MS = 15 * 60 * 1000;
4
+ /**
5
+ * One-time, short-lived, principal-bound actions used for URL-mode secret
6
+ * elicitation. The URL only ever carries the action id + an HMAC signature;
7
+ * the secret itself never leaves the user's browser/control session and never
8
+ * travels through tool arguments or results.
9
+ */
10
+ export class SecureActionService {
11
+ #store;
12
+ #key;
13
+ #publicUrl;
14
+ constructor(store, masterKey, publicUrl) {
15
+ this.#store = store;
16
+ this.#key = createHash('sha256').update(masterKey).digest();
17
+ this.#publicUrl = publicUrl;
18
+ }
19
+ create(kind, target, principalId, ttlMs = ACTION_TTL_MS) {
20
+ const action = this.#store.createSecureAction({
21
+ kind,
22
+ target,
23
+ principalId,
24
+ status: 'pending',
25
+ valuesJson: '{}',
26
+ expiresAt: new Date(Date.now() + ttlMs).toISOString(),
27
+ completedAt: null,
28
+ });
29
+ const token = this.#mint(action);
30
+ return { action, token, url: this.#url(action, token) };
31
+ }
32
+ /** Verify token + expiry + one-time use; the token carries the principal binding. */
33
+ verify(id, token, principalId) {
34
+ const action = this.#store.getSecureAction(id);
35
+ if (!action)
36
+ throw new AppError('secure_action_not_found', 'Secure action not found', 404);
37
+ if (action.status !== 'pending') {
38
+ throw new AppError('secure_action_used', 'Secure action was already used', 400);
39
+ }
40
+ if (Date.parse(action.expiresAt) < Date.now()) {
41
+ throw new AppError('secure_action_expired', 'Secure action has expired', 400);
42
+ }
43
+ this.#verifyToken(action, token, principalId);
44
+ return action;
45
+ }
46
+ complete(id, token, principalId, values) {
47
+ this.verify(id, token, principalId);
48
+ return this.#store.completeSecureAction(id, JSON.stringify(values), new Date().toISOString());
49
+ }
50
+ #verifyToken(action, token, principalId) {
51
+ if (principalId !== undefined && action.principalId !== principalId) {
52
+ throw new AppError('forbidden', 'Secure action belongs to another principal', 403);
53
+ }
54
+ const expected = this.#mint(action);
55
+ const actual = Buffer.from(token);
56
+ const check = Buffer.from(expected);
57
+ if (actual.length !== check.length || !timingSafeEqual(actual, check)) {
58
+ throw new AppError('secure_action_invalid', 'Invalid secure action token', 400);
59
+ }
60
+ }
61
+ #mint(action) {
62
+ const payload = `${action.id}.${action.kind}.${action.target}.${action.principalId}.${action.expiresAt}`;
63
+ return createHmac('sha256', this.#key).update(payload).digest('hex');
64
+ }
65
+ #url(action, token) {
66
+ return new URL(`/market/actions/${action.id}?token=${encodeURIComponent(token)}`, this.#publicUrl).toString();
67
+ }
68
+ }
69
+ //# sourceMappingURL=secure-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-action.js","sourceRoot":"","sources":["../../../src/security/secure-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACrB,MAAM,CAAQ;IACd,IAAI,CAAS;IACb,UAAU,CAAM;IAEzB,YAAY,KAAY,EAAE,SAAiB,EAAE,SAAc;QACzD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,MAAM,CACJ,IAAsB,EACtB,MAAc,EACd,WAAmB,EACnB,KAAK,GAAG,aAAa;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC5C,IAAI;YACJ,MAAM;YACN,WAAW;YACX,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;YACrD,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,qFAAqF;IACrF,MAAM,CAAC,EAAU,EAAE,KAAa,EAAE,WAAoB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAC3F,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CACN,EAAU,EACV,KAAa,EACb,WAA+B,EAC/B,MAA8B;QAE9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,YAAY,CAAC,MAA0B,EAAE,KAAa,EAAE,WAAoB;QAC1E,IAAI,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACpE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,4CAA4C,EAAE,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,QAAQ,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAA0B;QAC9B,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACzG,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,MAA0B,EAAE,KAAa;QAC5C,OAAO,IAAI,GAAG,CACZ,mBAAmB,MAAM,CAAC,EAAE,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EACjE,IAAI,CAAC,UAAU,CAChB,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,70 @@
1
+ import { type CliRecord, type CreateCliInput, type UpdateCliInput } from '../cli-plane/models.js';
2
+ import { type ApiKeyKind, type ApiKeyRecord, type CapabilitySnapshot, type CreateCredentialInput, type CreateServerInput, type CredentialPayload, type CredentialRecord, type EventRecord, type InstallJobRecord, type MarketInstallation, type RuntimeState, type SecureActionRecord, type ServerProjection, type ServerRecord, type ToolCallDraft, type ToolCallFilter, type ToolCallRecord, type ToolCallSeriesBucket, type ToolCallSeriesQuery, type ToolCallStats, type ToolProjection, type UpdateCredentialInput, type UpdateServerInput, type Visibility } from '../domain/models.js';
3
+ import type { SecretBox } from '../security/secret-box.js';
4
+ import type { CreateKeyInput, ProjectionIndex, Store, StoredApiKey } from './store.js';
5
+ export declare class SqliteStore implements Store {
6
+ #private;
7
+ constructor(databasePath: string, secrets: SecretBox);
8
+ close(): void;
9
+ transaction<T>(operation: () => T): T;
10
+ listServers(): ServerRecord[];
11
+ getServer(id: string): ServerRecord | null;
12
+ getServerBySlug(slug: string): ServerRecord | null;
13
+ createServer(input: CreateServerInput): ServerRecord;
14
+ updateServer(id: string, input: UpdateServerInput): ServerRecord;
15
+ deleteServer(id: string): void;
16
+ listClis(): CliRecord[];
17
+ getCli(id: string): CliRecord | null;
18
+ getCliBySlug(slug: string): CliRecord | null;
19
+ createCli(input: CreateCliInput): CliRecord;
20
+ updateCli(id: string, input: UpdateCliInput): CliRecord;
21
+ deleteCli(id: string): void;
22
+ listCredentials(): CredentialRecord[];
23
+ getCredential(id: string): CredentialRecord | null;
24
+ getCredentialPayload(id: string): CredentialPayload | null;
25
+ createCredential(input: CreateCredentialInput): CredentialRecord;
26
+ updateCredential(id: string, input: UpdateCredentialInput): CredentialRecord;
27
+ deleteCredential(id: string): void;
28
+ listApiKeys(kind: ApiKeyKind): ApiKeyRecord[];
29
+ createApiKey(input: CreateKeyInput): ApiKeyRecord;
30
+ getApiKey(id: string, kind: ApiKeyKind): ApiKeyRecord | null;
31
+ getApiKeyByDigest(kind: ApiKeyKind, digest: string): StoredApiKey | null;
32
+ revokeApiKey(id: string, kind: ApiKeyKind): void;
33
+ touchApiKey(id: string): void;
34
+ getSnapshot(serverId: string): CapabilitySnapshot | null;
35
+ saveSnapshot(snapshot: CapabilitySnapshot): CapabilitySnapshot;
36
+ deleteSnapshot(serverId: string): void;
37
+ getRuntimeState(serverId: string): RuntimeState | null;
38
+ saveRuntimeState(state: RuntimeState): RuntimeState;
39
+ appendEvent(event: Omit<EventRecord, 'id' | 'createdAt'>): EventRecord;
40
+ listEvents(options?: {
41
+ serverId?: string;
42
+ limit?: number;
43
+ level?: EventRecord['level'];
44
+ plane?: 'mcp' | 'cli';
45
+ }): EventRecord[];
46
+ getServerProjection(serverId: string): ServerProjection | null;
47
+ setServerProjection(serverId: string, defaultVisibility: Visibility): ServerProjection;
48
+ listToolProjections(serverId?: string): ToolProjection[];
49
+ setToolProjection(serverId: string, toolName: string, visibility: ToolProjection['visibility']): void;
50
+ getProjectionIndex(): ProjectionIndex;
51
+ insertToolCalls(calls: ToolCallDraft[]): number;
52
+ listToolCalls(filter: ToolCallFilter): ToolCallRecord[];
53
+ countToolCalls(filter: ToolCallFilter): number;
54
+ toolCallStats(filter: Omit<ToolCallFilter, 'limit' | 'offset'>): ToolCallStats;
55
+ toolCallSeries(query: ToolCallSeriesQuery): ToolCallSeriesBucket[];
56
+ deleteOldToolCalls(before: string): number;
57
+ listInstallations(): MarketInstallation[];
58
+ getInstallation(entryId: string): MarketInstallation | null;
59
+ createInstallation(input: Omit<MarketInstallation, 'id' | 'installedAt'>): MarketInstallation;
60
+ updateInstallation(id: string, patch: Partial<Pick<MarketInstallation, 'entryVersion' | 'recipeRevision'>>): MarketInstallation;
61
+ deleteInstallation(id: string): void;
62
+ createInstallJob(input: Omit<InstallJobRecord, 'id' | 'createdAt' | 'updatedAt'>): InstallJobRecord;
63
+ getInstallJob(id: string): InstallJobRecord | null;
64
+ updateInstallJob(id: string, patch: Partial<InstallJobRecord>): InstallJobRecord;
65
+ markInterruptedInstallJobs(): number;
66
+ createSecureAction(input: Omit<SecureActionRecord, 'id' | 'createdAt'>): SecureActionRecord;
67
+ getSecureAction(id: string): SecureActionRecord | null;
68
+ completeSecureAction(id: string, valuesJson: string, completedAt: string): SecureActionRecord;
69
+ }
70
+ //# sourceMappingURL=sqlite-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite-store.ts"],"names":[],"mappings":"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"}