@antasphere/chassis-server 1.1.0 → 1.3.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 (187) hide show
  1. package/dist/api/apikeys.d.ts +4 -1
  2. package/dist/api/apikeys.d.ts.map +1 -1
  3. package/dist/api/apikeys.js +11 -1
  4. package/dist/api/apikeys.js.map +1 -1
  5. package/dist/api/create-api.d.ts +3 -0
  6. package/dist/api/create-api.d.ts.map +1 -1
  7. package/dist/api/create-api.js +8 -3
  8. package/dist/api/create-api.js.map +1 -1
  9. package/dist/api/invitations.d.ts.map +1 -1
  10. package/dist/api/invitations.js +6 -0
  11. package/dist/api/invitations.js.map +1 -1
  12. package/dist/api/members.d.ts +5 -2
  13. package/dist/api/members.d.ts.map +1 -1
  14. package/dist/api/members.js +1 -0
  15. package/dist/api/members.js.map +1 -1
  16. package/dist/api/projects.d.ts +3 -0
  17. package/dist/api/projects.d.ts.map +1 -1
  18. package/dist/api/projects.js +13 -1
  19. package/dist/api/projects.js.map +1 -1
  20. package/dist/api/webhooks.d.ts +24 -0
  21. package/dist/api/webhooks.d.ts.map +1 -0
  22. package/dist/api/webhooks.js +170 -0
  23. package/dist/api/webhooks.js.map +1 -0
  24. package/dist/app.d.ts.map +1 -1
  25. package/dist/app.js +11 -5
  26. package/dist/app.js.map +1 -1
  27. package/dist/boot.d.ts.map +1 -1
  28. package/dist/boot.js +47 -4
  29. package/dist/boot.js.map +1 -1
  30. package/dist/email/index.d.ts +1 -0
  31. package/dist/email/index.d.ts.map +1 -1
  32. package/dist/email/index.js +1 -0
  33. package/dist/email/index.js.map +1 -1
  34. package/dist/env.d.ts +9 -0
  35. package/dist/env.d.ts.map +1 -1
  36. package/dist/env.js +11 -0
  37. package/dist/env.js.map +1 -1
  38. package/dist/identity/demo-pass-rules.d.ts.map +1 -1
  39. package/dist/identity/demo-pass-rules.js +6 -1
  40. package/dist/identity/demo-pass-rules.js.map +1 -1
  41. package/dist/identity/hub-reconcile.d.ts +2 -2
  42. package/dist/identity/hub-reconcile.d.ts.map +1 -1
  43. package/dist/identity/hub-reconcile.js.map +1 -1
  44. package/dist/index.d.ts +2 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/jobs/index.d.ts +1 -1
  47. package/dist/jobs/index.d.ts.map +1 -1
  48. package/dist/jobs/index.js.map +1 -1
  49. package/dist/jobs/pgboss.d.ts +34 -0
  50. package/dist/jobs/pgboss.d.ts.map +1 -1
  51. package/dist/jobs/pgboss.js +32 -9
  52. package/dist/jobs/pgboss.js.map +1 -1
  53. package/dist/mcp/index.d.ts +1 -0
  54. package/dist/mcp/index.d.ts.map +1 -1
  55. package/dist/mcp/index.js +1 -0
  56. package/dist/mcp/index.js.map +1 -1
  57. package/dist/mcp/server.d.ts +1 -1
  58. package/dist/mcp/server.d.ts.map +1 -1
  59. package/dist/mcp/server.js +11 -2
  60. package/dist/mcp/server.js.map +1 -1
  61. package/dist/mcp/tool-kit.d.ts +2 -0
  62. package/dist/mcp/tool-kit.d.ts.map +1 -1
  63. package/dist/mcp/tool-kit.js +5 -1
  64. package/dist/mcp/tool-kit.js.map +1 -1
  65. package/dist/mcp/webhooks.d.ts +16 -0
  66. package/dist/mcp/webhooks.d.ts.map +1 -0
  67. package/dist/mcp/webhooks.js +226 -0
  68. package/dist/mcp/webhooks.js.map +1 -0
  69. package/dist/members/removal.d.ts +10 -2
  70. package/dist/members/removal.d.ts.map +1 -1
  71. package/dist/members/removal.js +3 -0
  72. package/dist/members/removal.js.map +1 -1
  73. package/dist/middleware/idempotency.d.ts.map +1 -1
  74. package/dist/middleware/idempotency.js +3 -1
  75. package/dist/middleware/idempotency.js.map +1 -1
  76. package/dist/middleware/index.d.ts +1 -0
  77. package/dist/middleware/index.d.ts.map +1 -1
  78. package/dist/middleware/index.js +1 -0
  79. package/dist/middleware/index.js.map +1 -1
  80. package/dist/middleware/scopes.d.ts +9 -1
  81. package/dist/middleware/scopes.d.ts.map +1 -1
  82. package/dist/middleware/scopes.js +8 -1
  83. package/dist/middleware/scopes.js.map +1 -1
  84. package/dist/middleware/static-assets.d.ts +63 -0
  85. package/dist/middleware/static-assets.d.ts.map +1 -0
  86. package/dist/middleware/static-assets.js +125 -0
  87. package/dist/middleware/static-assets.js.map +1 -0
  88. package/dist/secret-box.d.ts +10 -0
  89. package/dist/secret-box.d.ts.map +1 -0
  90. package/dist/secret-box.js +87 -0
  91. package/dist/secret-box.js.map +1 -0
  92. package/dist/testing/helpers.d.ts +8 -0
  93. package/dist/testing/helpers.d.ts.map +1 -1
  94. package/dist/testing/helpers.js.map +1 -1
  95. package/dist/tool-definition.d.ts +24 -0
  96. package/dist/tool-definition.d.ts.map +1 -1
  97. package/dist/tool-definition.js.map +1 -1
  98. package/dist/webhooks/catalog.d.ts +80 -0
  99. package/dist/webhooks/catalog.d.ts.map +1 -0
  100. package/dist/webhooks/catalog.js +134 -0
  101. package/dist/webhooks/catalog.js.map +1 -0
  102. package/dist/webhooks/index.d.ts +9 -0
  103. package/dist/webhooks/index.d.ts.map +1 -0
  104. package/dist/webhooks/index.js +9 -0
  105. package/dist/webhooks/index.js.map +1 -0
  106. package/dist/webhooks/jobs.d.ts +12 -0
  107. package/dist/webhooks/jobs.d.ts.map +1 -0
  108. package/dist/webhooks/jobs.js +77 -0
  109. package/dist/webhooks/jobs.js.map +1 -0
  110. package/dist/webhooks/mail.d.ts +24 -0
  111. package/dist/webhooks/mail.d.ts.map +1 -0
  112. package/dist/webhooks/mail.js +21 -0
  113. package/dist/webhooks/mail.js.map +1 -0
  114. package/dist/webhooks/match.d.ts +22 -0
  115. package/dist/webhooks/match.d.ts.map +1 -0
  116. package/dist/webhooks/match.js +40 -0
  117. package/dist/webhooks/match.js.map +1 -0
  118. package/dist/webhooks/safe-fetch.d.ts +94 -0
  119. package/dist/webhooks/safe-fetch.d.ts.map +1 -0
  120. package/dist/webhooks/safe-fetch.js +263 -0
  121. package/dist/webhooks/safe-fetch.js.map +1 -0
  122. package/dist/webhooks/service.d.ts +245 -0
  123. package/dist/webhooks/service.d.ts.map +1 -0
  124. package/dist/webhooks/service.js +861 -0
  125. package/dist/webhooks/service.js.map +1 -0
  126. package/dist/webhooks/signing.d.ts +40 -0
  127. package/dist/webhooks/signing.d.ts.map +1 -0
  128. package/dist/webhooks/signing.js +108 -0
  129. package/dist/webhooks/signing.js.map +1 -0
  130. package/dist/webhooks/tx-send.d.ts +31 -0
  131. package/dist/webhooks/tx-send.d.ts.map +1 -0
  132. package/dist/webhooks/tx-send.js +22 -0
  133. package/dist/webhooks/tx-send.js.map +1 -0
  134. package/package.json +7 -3
  135. package/src/api/apikeys.ts +12 -1
  136. package/src/api/create-api.ts +17 -3
  137. package/src/api/invitations.ts +6 -0
  138. package/src/api/members.ts +6 -2
  139. package/src/api/projects.ts +16 -1
  140. package/src/api/webhooks.ts +205 -0
  141. package/src/app.ts +17 -4
  142. package/src/boot.ts +48 -4
  143. package/src/email/index.ts +1 -0
  144. package/src/env.ts +11 -0
  145. package/src/identity/demo-pass-rules.ts +6 -1
  146. package/src/identity/hub-reconcile.ts +2 -2
  147. package/src/index.ts +13 -1
  148. package/src/jobs/index.ts +1 -0
  149. package/src/jobs/pgboss.ts +71 -9
  150. package/src/mcp/index.ts +1 -0
  151. package/src/mcp/server.ts +10 -2
  152. package/src/mcp/tool-kit.ts +7 -1
  153. package/src/mcp/webhooks.ts +370 -0
  154. package/src/members/removal.ts +21 -1
  155. package/src/middleware/idempotency.ts +3 -1
  156. package/src/middleware/index.ts +11 -0
  157. package/src/middleware/scopes.ts +14 -0
  158. package/src/middleware/static-assets.ts +144 -0
  159. package/src/secret-box.ts +93 -0
  160. package/src/testing/helpers.ts +8 -0
  161. package/src/tool-definition.ts +29 -0
  162. package/src/webhooks/catalog.ts +205 -0
  163. package/src/webhooks/index.ts +58 -0
  164. package/src/webhooks/jobs.ts +92 -0
  165. package/src/webhooks/mail.ts +48 -0
  166. package/src/webhooks/match.ts +52 -0
  167. package/src/webhooks/safe-fetch.ts +335 -0
  168. package/src/webhooks/service.ts +1089 -0
  169. package/src/webhooks/signing.ts +132 -0
  170. package/src/webhooks/tx-send.ts +53 -0
  171. package/test/host/drizzle/0002_webhooks.sql +49 -0
  172. package/test/host/drizzle/meta/0002_snapshot.json +3952 -0
  173. package/test/host/drizzle/meta/_journal.json +8 -1
  174. package/test/host/identity.ts +6 -1
  175. package/test/host/minimal-host.ts +2 -1
  176. package/test/host/minimal-tool.ts +32 -4
  177. package/test/integration/mcp-webhooks.test.ts +360 -0
  178. package/test/integration/webhooks.test.ts +1684 -0
  179. package/test/unit/secret-box.test.ts +124 -0
  180. package/test/unit/static-assets.test.ts +227 -0
  181. package/test/unit/tx-send.test.ts +23 -0
  182. package/test/unit/webhook-catalog.test.ts +151 -0
  183. package/test/unit/webhook-env.test.ts +60 -0
  184. package/test/unit/webhook-jobs.test.ts +92 -0
  185. package/test/unit/webhook-match.test.ts +81 -0
  186. package/test/unit/webhook-safe-fetch.test.ts +330 -0
  187. package/test/unit/webhook-signing.test.ts +169 -0
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,5 @@ export { MAX_JSON_DEPTH, exceedsJsonDepth, jsonDepthLimit } from './json-depth.j
9
9
  export { noStoreAuthenticated } from './no-store.js';
10
10
  export { isPublicOauthPath, oauthPublicEndpoints } from './oauth-public.js';
11
11
  export { buildCsp, hstsValue, inlineScriptHashes, securityHeaders } from './security-headers.js';
12
+ export { IMMUTABLE_ASSET_PREFIX, IMMUTABLE_CACHE_CONTROL, REVALIDATE_CACHE_CONTROL, type SpaFallback, type StaticAssetsOptions, acceptedEncodings, loadSpaFallback, staticAssets, staticCacheControl } from './static-assets.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,kBAAkB,EACnB,MAAM,oBAAoB,CAAC"}
@@ -9,4 +9,5 @@ export { MAX_JSON_DEPTH, exceedsJsonDepth, jsonDepthLimit } from './json-depth.j
9
9
  export { noStoreAuthenticated } from './no-store.js';
10
10
  export { isPublicOauthPath, oauthPublicEndpoints } from './oauth-public.js';
11
11
  export { buildCsp, hstsValue, inlineScriptHashes, securityHeaders } from './security-headers.js';
12
+ export { IMMUTABLE_ASSET_PREFIX, IMMUTABLE_CACHE_CONTROL, REVALIDATE_CACHE_CONTROL, acceptedEncodings, loadSpaFallback, staticAssets, staticCacheControl } from './static-assets.js';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA8C,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA8C,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EAGxB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,kBAAkB,EACnB,MAAM,oBAAoB,CAAC"}
@@ -26,8 +26,16 @@ export interface ScopeAllowlistOptions<S extends string> {
26
26
  write: S;
27
27
  /** The tool's dedicated opt-in scope for the full-workspace export. */
28
28
  dataExport: S;
29
+ /**
30
+ * The tool's dedicated opt-in scope for the webhooks family (PRDCT-3482):
31
+ * registering an endpoint is a standing read of the workspace to a URL of
32
+ * the caller's choice, so no read or write key opens it. Absent: no
33
+ * machine principal reaches `/webhooks` at all (the catalog read stays
34
+ * under the read scope).
35
+ */
36
+ webhooks?: S | undefined;
29
37
  /** The tool's own rules, asked in order AFTER the chassis rules. */
30
38
  rules: ReadonlyArray<ScopeRule<S>>;
31
39
  }
32
- export declare function createScopeAllowlist<S extends string>({ read, write, dataExport, rules }: ScopeAllowlistOptions<S>): (path: string, method: string) => S | null;
40
+ export declare function createScopeAllowlist<S extends string>({ read, write, dataExport, webhooks, rules }: ScopeAllowlistOptions<S>): (path: string, method: string) => S | null;
33
41
  //# sourceMappingURL=scopes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC;AAEtG,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC;IACR,6FAA6F;IAC7F,KAAK,EAAE,CAAC,CAAC;IACT,uEAAuE;IACvE,UAAU,EAAE,CAAC,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC;AAqDD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACN,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CAyDvE"}
1
+ {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC;AAEtG,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC;IACR,6FAA6F;IAC7F,KAAK,EAAE,CAAC,CAAC;IACT,uEAAuE;IACvE,UAAU,EAAE,CAAC,CAAC;IACd;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IACzB,oEAAoE;IACpE,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC;AAqDD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACN,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CA8DvE"}
@@ -71,7 +71,7 @@ function teamAccess(path, method) {
71
71
  return method === 'DELETE' ? 'write' : null;
72
72
  return null;
73
73
  }
74
- export function createScopeAllowlist({ read, write, dataExport, rules }) {
74
+ export function createScopeAllowlist({ read, write, dataExport, webhooks, rules }) {
75
75
  return function requiredScopeFor(path, method) {
76
76
  const isRead = method === 'GET' || method === 'HEAD';
77
77
  if (path === '/api/v1/me' && isRead)
@@ -117,6 +117,13 @@ export function createScopeAllowlist({ read, write, dataExport, rules }) {
117
117
  const team = teamAccess(path, method);
118
118
  if (team !== null)
119
119
  return team === 'read' ? read : write;
120
+ // Webhooks (PRDCT-3482): the catalog is a read any key may make; the
121
+ // family itself, reads included, needs the tool's dedicated scope, and
122
+ // closes entirely when the tool declares none.
123
+ if (path === '/api/v1/webhooks/events' && isRead)
124
+ return read;
125
+ if (path === '/api/v1/webhooks' || path.startsWith('/api/v1/webhooks/'))
126
+ return webhooks ?? null;
120
127
  for (const rule of rules) {
121
128
  const needed = rule(path, method, isRead);
122
129
  if (needed !== null)
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { Context, MiddlewareHandler } from 'hono';
2
+ /**
3
+ * The dashboard build, served so the browser keeps it (PRDCT-3584).
4
+ *
5
+ * Before this middleware the SPA's files went out with no `Cache-Control`,
6
+ * no validator and no compression: every visit to a tool re-downloaded the
7
+ * whole dashboard (about 1.2 MB of JavaScript in a hundred files on the
8
+ * team stack, measured 2026-10-17), and the splash the person stared at
9
+ * was that download. Two rules fix it, both on the build's own shape:
10
+ *
11
+ * - `/_app/immutable/*` is CONTENT-HASHED by SvelteKit: a changed file has a
12
+ * new name, so the cached copy can never be stale. It is served with
13
+ * `public, max-age=31536000, immutable`: a second visit transfers none of
14
+ * it. Every other static path (the HTML, the icons, the manifest) is
15
+ * `no-cache`: kept, but revalidated on every use, so a release reaches
16
+ * the browser on its next load.
17
+ * - A `.br`, `.zst` or `.gz` sibling written at build time (the dashboard's
18
+ * adapter has `precompress: true`) is served in place of the file when
19
+ * the request accepts that encoding, with `Content-Encoding` and `Vary:
20
+ * Accept-Encoding`. The server compresses nothing at runtime, and the
21
+ * API is untouched: this middleware runs on the static files alone,
22
+ * after every credentialed route has answered.
23
+ *
24
+ * Nothing here is a security input. `immutable` never reaches a response
25
+ * that is not a hashed asset, so no user-bearing answer can be cached; the
26
+ * authenticated JSON keeps its `no-store` (middleware/no-store.ts).
27
+ */
28
+ /** The content-hashed prefix of a SvelteKit build. */
29
+ export declare const IMMUTABLE_ASSET_PREFIX = "/_app/immutable/";
30
+ export declare const IMMUTABLE_CACHE_CONTROL = "public, max-age=31536000, immutable";
31
+ export declare const REVALIDATE_CACHE_CONTROL = "no-cache";
32
+ /** The `Cache-Control` a static path of the build is served with. */
33
+ export declare function staticCacheControl(requestPath: string): string;
34
+ export interface StaticAssetsOptions {
35
+ /** The directory holding the built dashboard (`index.html`, `_app/`). */
36
+ publicDir: string;
37
+ }
38
+ /**
39
+ * Serve `publicDir` with the cache policy above and the precompressed
40
+ * siblings. Falls through (`next()`) on a path that is not a file there, so
41
+ * the SPA fallback behind it answers the application routes.
42
+ */
43
+ export declare function staticAssets(options: StaticAssetsOptions): MiddlewareHandler;
44
+ /** The encodings a request accepts, read from `Accept-Encoding` with any `;q=` weight ignored. */
45
+ export declare function acceptedEncodings(header: string | undefined): Set<string>;
46
+ export interface SpaFallback {
47
+ /** The strong ETag of the plain HTML (the variants derive theirs from it). */
48
+ readonly etag: string;
49
+ /** Answer the application's HTML for a route the build has no file for. */
50
+ respond(c: Context): Response;
51
+ }
52
+ /**
53
+ * The application's HTML under any route the build has no file for, served
54
+ * with the two things the bare `c.html()` lacked (the tier 1 verifier's two
55
+ * caveats, PRDCT-3584): a strong `ETag` so `no-cache` means "revalidate"
56
+ * (a `304` costs no bytes), and the `.br` / `.gz` sibling of `index.html`
57
+ * when the build wrote one and the request accepts it, so a deep link costs
58
+ * the same as the root on a front that compresses nothing (Cloud Run, a
59
+ * self-hosted instance with no proxy). The HTML is read once at boot, like
60
+ * `indexHtml` itself.
61
+ */
62
+ export declare function loadSpaFallback(publicDir: string, html: string): Promise<SpaFallback>;
63
+ //# sourceMappingURL=static-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-assets.d.ts","sourceRoot":"","sources":["../../src/middleware/static-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAMvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,uBAAuB,wCAAwC,CAAC;AAC7E,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,iBAAiB,CAgB5E;AAWD,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAOzE;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoC3F"}
@@ -0,0 +1,125 @@
1
+ import { serveStatic } from '@hono/node-server/serve-static';
2
+ import { createHash } from 'node:crypto';
3
+ import { readFile } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ /**
6
+ * The dashboard build, served so the browser keeps it (PRDCT-3584).
7
+ *
8
+ * Before this middleware the SPA's files went out with no `Cache-Control`,
9
+ * no validator and no compression: every visit to a tool re-downloaded the
10
+ * whole dashboard (about 1.2 MB of JavaScript in a hundred files on the
11
+ * team stack, measured 2026-10-17), and the splash the person stared at
12
+ * was that download. Two rules fix it, both on the build's own shape:
13
+ *
14
+ * - `/_app/immutable/*` is CONTENT-HASHED by SvelteKit: a changed file has a
15
+ * new name, so the cached copy can never be stale. It is served with
16
+ * `public, max-age=31536000, immutable`: a second visit transfers none of
17
+ * it. Every other static path (the HTML, the icons, the manifest) is
18
+ * `no-cache`: kept, but revalidated on every use, so a release reaches
19
+ * the browser on its next load.
20
+ * - A `.br`, `.zst` or `.gz` sibling written at build time (the dashboard's
21
+ * adapter has `precompress: true`) is served in place of the file when
22
+ * the request accepts that encoding, with `Content-Encoding` and `Vary:
23
+ * Accept-Encoding`. The server compresses nothing at runtime, and the
24
+ * API is untouched: this middleware runs on the static files alone,
25
+ * after every credentialed route has answered.
26
+ *
27
+ * Nothing here is a security input. `immutable` never reaches a response
28
+ * that is not a hashed asset, so no user-bearing answer can be cached; the
29
+ * authenticated JSON keeps its `no-store` (middleware/no-store.ts).
30
+ */
31
+ /** The content-hashed prefix of a SvelteKit build. */
32
+ export const IMMUTABLE_ASSET_PREFIX = '/_app/immutable/';
33
+ export const IMMUTABLE_CACHE_CONTROL = 'public, max-age=31536000, immutable';
34
+ export const REVALIDATE_CACHE_CONTROL = 'no-cache';
35
+ /** The `Cache-Control` a static path of the build is served with. */
36
+ export function staticCacheControl(requestPath) {
37
+ return requestPath.startsWith(IMMUTABLE_ASSET_PREFIX) ? IMMUTABLE_CACHE_CONTROL : REVALIDATE_CACHE_CONTROL;
38
+ }
39
+ /**
40
+ * Serve `publicDir` with the cache policy above and the precompressed
41
+ * siblings. Falls through (`next()`) on a path that is not a file there, so
42
+ * the SPA fallback behind it answers the application routes.
43
+ */
44
+ export function staticAssets(options) {
45
+ const serve = serveStatic({ root: options.publicDir, precompressed: true });
46
+ return async (c, next) => {
47
+ // The application's HTML itself (`/`, `/index.html`) is the SPA
48
+ // fallback's to answer, with its validator and its sibling; the static
49
+ // server would hand it out with neither (verifier round 2).
50
+ if (c.req.path === '/' || c.req.path === '/index.html')
51
+ return next();
52
+ const res = await serve(c, next);
53
+ // serveStatic answers a Response for a file it found and the result of
54
+ // `next()` otherwise; only the file gets the policy.
55
+ if (res instanceof Response) {
56
+ res.headers.set('Cache-Control', staticCacheControl(c.req.path));
57
+ if (!res.headers.has('Vary'))
58
+ res.headers.set('Vary', 'Accept-Encoding');
59
+ }
60
+ return res;
61
+ };
62
+ }
63
+ // ── The SPA fallback ────────────────────────────────────────────────────────
64
+ /** The encodings a precompressed sibling may carry, in the order they are preferred. */
65
+ const FALLBACK_ENCODINGS = [
66
+ { name: 'br', ext: '.br' },
67
+ { name: 'gzip', ext: '.gz' }
68
+ ];
69
+ /** The encodings a request accepts, read from `Accept-Encoding` with any `;q=` weight ignored. */
70
+ export function acceptedEncodings(header) {
71
+ return new Set((header ?? '')
72
+ .split(',')
73
+ .map((part) => part.split(';')[0].trim().toLowerCase())
74
+ .filter(Boolean));
75
+ }
76
+ /**
77
+ * The application's HTML under any route the build has no file for, served
78
+ * with the two things the bare `c.html()` lacked (the tier 1 verifier's two
79
+ * caveats, PRDCT-3584): a strong `ETag` so `no-cache` means "revalidate"
80
+ * (a `304` costs no bytes), and the `.br` / `.gz` sibling of `index.html`
81
+ * when the build wrote one and the request accepts it, so a deep link costs
82
+ * the same as the root on a front that compresses nothing (Cloud Run, a
83
+ * self-hosted instance with no proxy). The HTML is read once at boot, like
84
+ * `indexHtml` itself.
85
+ */
86
+ export async function loadSpaFallback(publicDir, html) {
87
+ const plain = Buffer.from(html, 'utf8');
88
+ const etag = `"${createHash('sha256').update(plain).digest('base64url').slice(0, 27)}"`;
89
+ const variants = new Map();
90
+ for (const { name, ext } of FALLBACK_ENCODINGS) {
91
+ try {
92
+ variants.set(name, await readFile(join(publicDir, `index.html${ext}`)));
93
+ }
94
+ catch {
95
+ // no sibling of that encoding: the plain HTML answers those requests
96
+ }
97
+ }
98
+ return {
99
+ etag,
100
+ respond(c) {
101
+ const accepted = acceptedEncodings(c.req.header('accept-encoding'));
102
+ const encoding = FALLBACK_ENCODINGS.find((e) => accepted.has(e.name) && variants.has(e.name))?.name;
103
+ // One validator per representation: a cached brotli body is never
104
+ // confirmed against a plain one.
105
+ const variantEtag = encoding ? etag.replace(/"$/, `-${encoding}"`) : etag;
106
+ // The type rides the 304 too: the node server would otherwise stamp a
107
+ // text/plain default on it (verifier round 2), and RFC 9110 allows the
108
+ // 304 to repeat what the 200 carries.
109
+ const headers = {
110
+ 'Cache-Control': REVALIDATE_CACHE_CONTROL,
111
+ 'Content-Type': 'text/html; charset=utf-8',
112
+ ETag: variantEtag,
113
+ Vary: 'Accept-Encoding'
114
+ };
115
+ if (c.req.header('if-none-match') === variantEtag) {
116
+ return c.body(null, 304, headers);
117
+ }
118
+ if (encoding)
119
+ headers['Content-Encoding'] = encoding;
120
+ const body = encoding ? variants.get(encoding) : plain;
121
+ return c.body(new Uint8Array(body), 200, headers);
122
+ }
123
+ };
124
+ }
125
+ //# sourceMappingURL=static-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-assets.js","sourceRoot":"","sources":["../../src/middleware/static-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class SecretBoxError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export interface SecretBox {
5
+ seal(plain: string): string;
6
+ open(sealed: string): string;
7
+ }
8
+ /** `info` separates the boxes: two boxes of one instance with different infos never open each other's values. */
9
+ export declare function createSecretBox(authSecret: string, info: string): SecretBox;
10
+ //# sourceMappingURL=secret-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-box.d.ts","sourceRoot":"","sources":["../src/secret-box.ts"],"names":[],"mappings":"AA4BA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,iHAAiH;AACjH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAmD3E"}
@@ -0,0 +1,87 @@
1
+ import { createCipheriv, createDecipheriv, hkdfSync, randomBytes } from 'node:crypto';
2
+ /**
3
+ * A box for secrets the instance must read back (a signing secret it hands to
4
+ * a receiver, a refresh token it presents later): AES-256-GCM under a key
5
+ * derived from the instance's auth secret by HKDF-SHA256 with a caller-given
6
+ * `info`, so the database never holds them in the clear and a copy of the
7
+ * database alone opens nothing. A one-way secret (a password, an API key the
8
+ * instance only compares) never goes in here: it is hashed, not sealed.
9
+ *
10
+ * `info` separates the boxes: two boxes of one instance with different infos
11
+ * derive different keys, so a value sealed for one purpose never opens under
12
+ * another. Name it `<area>:<purpose>` and never change it once values are
13
+ * stored under it (they would no longer open).
14
+ *
15
+ * A sealed value reads `v1.<iv>.<tag>.<ciphertext>`, each part base64url: a
16
+ * fresh 12-byte IV per seal (two seals of one value differ), the 16-byte GCM
17
+ * tag, which `open` checks before it answers anything (a changed byte
18
+ * anywhere is refused, never decrypted to garbage). The version prefix lets a
19
+ * later key or cipher change read the old rows. Every refusal, a malformed
20
+ * string included, is a `SecretBoxError` and nothing else.
21
+ */
22
+ const VERSION = 'v1';
23
+ const IV_BYTES = 12;
24
+ const TAG_BYTES = 16;
25
+ const KEY_BYTES = 32;
26
+ const BASE64URL = /^[A-Za-z0-9_-]*$/;
27
+ export class SecretBoxError extends Error {
28
+ constructor(message) {
29
+ super(message);
30
+ this.name = 'SecretBoxError';
31
+ }
32
+ }
33
+ /** `info` separates the boxes: two boxes of one instance with different infos never open each other's values. */
34
+ export function createSecretBox(authSecret, info) {
35
+ if (typeof authSecret !== 'string' || authSecret.length === 0) {
36
+ throw new SecretBoxError('the secret box needs the auth secret');
37
+ }
38
+ if (typeof info !== 'string' || info.length === 0) {
39
+ throw new SecretBoxError('the secret box needs an info string that names its purpose');
40
+ }
41
+ const key = Buffer.from(hkdfSync('sha256', authSecret, Buffer.alloc(0), info, KEY_BYTES));
42
+ return {
43
+ seal(plain) {
44
+ if (typeof plain !== 'string')
45
+ throw new SecretBoxError('the secret box seals strings only');
46
+ const iv = randomBytes(IV_BYTES);
47
+ const cipher = createCipheriv('aes-256-gcm', key, iv, { authTagLength: TAG_BYTES });
48
+ const ciphertext = Buffer.concat([cipher.update(plain, 'utf8'), cipher.final()]);
49
+ const tag = cipher.getAuthTag();
50
+ return [
51
+ VERSION,
52
+ iv.toString('base64url'),
53
+ tag.toString('base64url'),
54
+ ciphertext.toString('base64url')
55
+ ].join('.');
56
+ },
57
+ open(sealed) {
58
+ if (typeof sealed !== 'string')
59
+ throw new SecretBoxError('not a sealed value');
60
+ const parts = sealed.split('.');
61
+ if (parts.length !== 4 || parts[0] !== VERSION) {
62
+ throw new SecretBoxError('not a sealed value of this version');
63
+ }
64
+ const [, ivPart, tagPart, ciphertextPart] = parts;
65
+ // Buffer.from skips characters outside the alphabet silently: refuse them
66
+ // here, so only the one spelling of a sealed value opens.
67
+ if (!BASE64URL.test(ivPart) || !BASE64URL.test(tagPart) || !BASE64URL.test(ciphertextPart)) {
68
+ throw new SecretBoxError('a sealed value with a part that is not base64url');
69
+ }
70
+ const iv = Buffer.from(ivPart, 'base64url');
71
+ const tag = Buffer.from(tagPart, 'base64url');
72
+ const ciphertext = Buffer.from(ciphertextPart, 'base64url');
73
+ if (iv.length !== IV_BYTES || tag.length !== TAG_BYTES) {
74
+ throw new SecretBoxError('a sealed value with a malformed iv or tag');
75
+ }
76
+ try {
77
+ const decipher = createDecipheriv('aes-256-gcm', key, iv, { authTagLength: TAG_BYTES });
78
+ decipher.setAuthTag(tag);
79
+ return Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString('utf8');
80
+ }
81
+ catch {
82
+ throw new SecretBoxError('the sealed value does not open under this key');
83
+ }
84
+ }
85
+ };
86
+ }
87
+ //# sourceMappingURL=secret-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-box.js","sourceRoot":"","sources":["../src/secret-box.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,14 @@ export interface ChassisTestHost<TResult extends BootResultLike, TOverrides> {
79
79
  * scope) that answers 200 to any principal the gates let through.
80
80
  */
81
81
  probeRoute: string;
82
+ /**
83
+ * The host's tool is the chassis's minimal test tool, which declares the
84
+ * `thing` subject and the `thing.created` / `thing.deleted` events the
85
+ * webhooks suite emits (PRDCT-3482). A real tool leaves it unset: the
86
+ * suite's delivery scenarios skip under its host, and the tool proves its
87
+ * own events in its own suite.
88
+ */
89
+ webhooks?: boolean;
82
90
  }
83
91
  /**
84
92
  * End a pool and wait until every one of its clients has REALLY closed
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ import type { McpToolDefinition } from './mcp/server.js';
29
29
  import type { BucketDeclaration, ClientIpFn, RateLimiters } from './middleware/rate-limit.js';
30
30
  import type { Otel } from './observability/otel.js';
31
31
  import type { EventBus } from './platform/events.js';
32
+ import type { WebhookCatalogDeclaration, WebhookDials, WebhookEmitter, WebhookService } from './webhooks/index.js';
33
+ import type { SafeFetchOptions } from './webhooks/safe-fetch.js';
32
34
  import type { PlatformRegistry } from './platform/registry.js';
33
35
  import type { RuntimeState } from './state.js';
34
36
  import type { StorageDriver } from './storage/driver.js';
@@ -62,6 +64,13 @@ export interface ServiceCore<TEnvShape extends z.ZodRawShape, TEvents, TToolOver
62
64
  authSecret: string;
63
65
  /** One-off timers on the queues the `jobs` slot declared (`jobs/timers.ts`): a service arms and withdraws them. */
64
66
  timers: Timers;
67
+ /**
68
+ * The outbound webhooks' emitter (PRDCT-3482): a service calls
69
+ * `webhooks.emit(tx, …)` INSIDE the transaction of the write it reports,
70
+ * with a type the tool's `webhooks` slot declared. Costs one lookup when
71
+ * no endpoint of the workspace listens.
72
+ */
73
+ webhooks: WebhookEmitter;
65
74
  /** The tool's own test seams (`BootOverrides.tool`); undefined in production. */
66
75
  overrides: TToolOverrides | undefined;
67
76
  }
@@ -293,6 +302,15 @@ export interface ToolDefinition<TEnvShape extends z.ZodRawShape, TDomain, TBucke
293
302
  * Absent = nothing declared: no route gated, empty lists in discovery.
294
303
  */
295
304
  entitlements?: (env: ToolEnv<TEnvShape>, ctx: EntitlementsContext<TDomain>) => ToolEntitlementDeclaration;
305
+ /**
306
+ * Slot 25: the tool's event catalog for outbound webhooks (PRDCT-3482):
307
+ * the subjects an endpoint may filter on (each with the envelope field it
308
+ * is written under) and the event types the tool emits, each with the zod
309
+ * schema of its `data`. Checked at boot (`buildWebhookCatalog`), merged
310
+ * with the chassis's own events, served on `GET /webhooks/events`. Absent
311
+ * = the chassis events alone; the routes exist on every instance.
312
+ */
313
+ webhooks?: WebhookCatalogDeclaration;
296
314
  }
297
315
  /**
298
316
  * What the `entitlements` slot receives beside the env (PRDCT-2634): the
@@ -356,6 +374,10 @@ export interface BootOverrides<TToolOverrides = never> {
356
374
  hubCreateOrg?: HubOrgCreator;
357
375
  /** The tool's own test seams, handed to its `services` slot as `core.overrides`. */
358
376
  tool?: TToolOverrides;
377
+ /** Shrinks the webhooks' retry budget, hold, auto-disable streak, listener cache and overlap for the tests. */
378
+ webhookDials?: Partial<WebhookDials> | undefined;
379
+ /** The guarded fetch's seams (a lookup, a transport) so a suite delivers to a loopback receiver. */
380
+ webhookFetch?: SafeFetchOptions | undefined;
359
381
  }
360
382
  export interface BootResult<TEnvShape extends z.ZodRawShape, TDomain, TEvents = {}> {
361
383
  app: Hono;
@@ -371,6 +393,8 @@ export interface BootResult<TEnvShape extends z.ZodRawShape, TDomain, TEvents =
371
393
  email: EmailDriver;
372
394
  otel: Otel;
373
395
  authSecret: string;
396
+ /** The outbound webhooks (PRDCT-3482): the emitter, the fan-out and the delivery, for a suite to drive directly. */
397
+ webhooks: WebhookService;
374
398
  }
375
399
  /**
376
400
  * The boot-time half of "identity is required": a definition that reached the
@@ -1 +1 @@
1
- {"version":3,"file":"tool-definition.d.ts","sourceRoot":"","sources":["../src/tool-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-definition.d.ts","sourceRoot":"","sources":["../src/tool-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,yBAAyB,EACzB,YAAY,EACZ,cAAc,EACd,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,MAAM,IAAI;KAChD,CAAC,IAAI,QAAQ,GAAG,CAAC,SAAS,MAAM,YAAY,GAAG,KAAK,GAAG,iBAAiB;CAC1E,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,MAAM,IAAI,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAE7G;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,SAAS,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,cAAc;IACnF,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,mHAAmH;IACnH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,QAAQ,EAAE,cAAc,CAAC;IACzB,iFAAiF;IACjF,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;CACvC;AAED,qFAAqF;AACrF,MAAM,WAAW,YAAY,CAC3B,SAAS,SAAS,CAAC,CAAC,WAAW,EAC/B,QAAQ,SAAS,MAAM,EACvB,OAAO,EACP,cAAc,CACd,SAAQ,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC;IACvD,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;CACtC;AAED,mGAAmG;AACnG,MAAM,WAAW,WAAW,CAAC,SAAS,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO;IACnE,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED,0DAA0D;AAC1D,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,CAAC,CAAC,WAAW,EAAE,QAAQ,SAAS,MAAM,EAAE,OAAO;IAC3F,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;CACnC;AAED,2FAA2F;AAC3F,MAAM,WAAW,mBAAmB,CAClC,SAAS,SAAS,CAAC,CAAC,WAAW,EAC/B,QAAQ,SAAS,MAAM,EACvB,OAAO,CACP,SAAQ,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;IAChD,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB,CAC/B,SAAS,SAAS,CAAC,CAAC,WAAW,EAC/B,QAAQ,SAAS,MAAM,EACvB,OAAO,CACP,SAAQ,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;IACzD,UAAU,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,+GAA+G;AAC/G;;;;;;;;;;GAUG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAC;CACnC;AACD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9D,iGAAiG;AACjG,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,eAAe,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,kHAAkH;IAClH,cAAc,EAAE,MAAM,CAAC;IACvB,uFAAuF;IACvF,WAAW,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,EAAE;QACJ,8DAA8D;QAC9D,OAAO,EAAE,MAAM,CAAC;QAChB,8FAA8F;QAC9F,WAAW,EAAE,MAAM,CAAC;QACpB,wFAAwF;QACxF,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,YAAY,CAAC,SAAS,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,SAAS,MAAM,EAAE,OAAO;IACtG;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;IACzD,kGAAkG;IAClG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,6FAA6F;IAC7F,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClF;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAC;IAClG,sFAAsF;IACtF,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,yGAAyG;IACzG,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChG;;;;OAIG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,UAAU,CAAC;IAC1C;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,eAAe,CAAC;IACnD;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzG;AAED,MAAM,WAAW,YAAY,CAAC,SAAS,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,SAAS,MAAM,EAAE,OAAO;IACtG;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,iBAAiB,GAAG,SAAS,CAAC;IAC5E,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;IACpD,oJAAoJ;IACpJ,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;IAClD,iGAAiG;IACjG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACjG;AAED,MAAM,WAAW,cAAc,CAC7B,SAAS,SAAS,CAAC,CAAC,WAAW,EAC/B,OAAO,EACP,QAAQ,SAAS,MAAM,GAAG,KAAK,EAE/B,OAAO,GAAG,EAAE,EACZ,cAAc,GAAG,KAAK;IAEtB;;;;;OAKG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB,oFAAoF;IACpF,OAAO,EAAE;QACP,8DAA8D;QAC9D,OAAO,EAAE,MAAM,CAAC;QAChB,8GAA8G;QAC9G,iBAAiB,EAAE,MAAM,MAAM,CAAC;QAChC,iDAAiD;QACjD,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,uEAAuE;IACvE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC9B,+EAA+E;IAC/E,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC9B,8DAA8D;IAC9D,MAAM,EAAE;QACN,uDAAuD;QACvD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QACzB,iCAAiC;QACjC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,4FAA4F;QAC5F,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;QAClE,oHAAoH;QACpH,cAAc,EAAE,WAAW,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,OAAO,CAAC;IAC7E,+FAA+F;IAC/F,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,cAAc,EAAE,CAAC;IAClE,gEAAgE;IAChE,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,kBAAkB;IAClB,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,mBAAmB;IACnB,GAAG,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D;;;OAGG;IACH,GAAG,EAAE,iBAAiB,CAAC;IACvB,gFAAgF;IAChF,IAAI,EAAE,QAAQ,CAAC;IACf;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACjE;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,0BAA0B,CAAC;IAC1G;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB,CAAC,OAAO;IAC1C,EAAE,EAAE,EAAE,CAAC;IACP,kGAAkG;IAClG,OAAO,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED,gEAAgE;AAChE,MAAM,WAAW,aAAa,CAAC,cAAc,GAAG,KAAK;IACnD,4GAA4G;IAC5G,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,uGAAuG;IACvG,gBAAgB,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACpD;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAC9D;;;;OAIG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,oFAAoF;IACpF,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,+GAA+G;IAC/G,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACjD,oGAAoG;IACpG,YAAY,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU,CACzB,SAAS,SAAS,CAAC,CAAC,WAAW,EAC/B,OAAO,EAEP,OAAO,GAAG,EAAE;IAEZ,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,gDAAgD;IAChD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,oHAAoH;IACpH,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAYnF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAyBvG"}