@kindgi/api 0.1.4-rc.1 → 0.1.4-rc.2

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 (217) hide show
  1. package/dist/agent-binding.d.ts +12 -2
  2. package/dist/agent-binding.d.ts.map +1 -1
  3. package/dist/agent-pins.d.ts.map +1 -1
  4. package/dist/agent-pins.js +4 -1
  5. package/dist/agent-pins.js.map +1 -1
  6. package/dist/app.d.ts +8 -0
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +23 -4
  9. package/dist/app.js.map +1 -1
  10. package/dist/deploy-versions.d.ts +8 -5
  11. package/dist/deploy-versions.d.ts.map +1 -1
  12. package/dist/deploy-versions.js +3 -9
  13. package/dist/deploy-versions.js.map +1 -1
  14. package/dist/errors.d.ts.map +1 -1
  15. package/dist/errors.js +25 -0
  16. package/dist/errors.js.map +1 -1
  17. package/dist/eval-case-binding.d.ts +10 -0
  18. package/dist/eval-case-binding.d.ts.map +1 -1
  19. package/dist/eval-run-binding.d.ts +14 -3
  20. package/dist/eval-run-binding.d.ts.map +1 -1
  21. package/dist/eval-run-binding.js.map +1 -1
  22. package/dist/flow-pins.d.ts +20 -7
  23. package/dist/flow-pins.d.ts.map +1 -1
  24. package/dist/flow-pins.js +36 -11
  25. package/dist/flow-pins.js.map +1 -1
  26. package/dist/gate-policy-binding.d.ts +164 -0
  27. package/dist/gate-policy-binding.d.ts.map +1 -0
  28. package/dist/gate-policy-binding.js +12 -0
  29. package/dist/gate-policy-binding.js.map +1 -0
  30. package/dist/gate.d.ts +56 -0
  31. package/dist/gate.d.ts.map +1 -0
  32. package/dist/gate.js +359 -0
  33. package/dist/gate.js.map +1 -0
  34. package/dist/handler-binding.d.ts +14 -2
  35. package/dist/handler-binding.d.ts.map +1 -1
  36. package/dist/index.d.ts +10 -4
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/judged-dispatcher.d.ts +16 -1
  41. package/dist/judged-dispatcher.d.ts.map +1 -1
  42. package/dist/judged-dispatcher.js +45 -6
  43. package/dist/judged-dispatcher.js.map +1 -1
  44. package/dist/judgment-binding.d.ts +38 -0
  45. package/dist/judgment-binding.d.ts.map +1 -1
  46. package/dist/judgment-binding.js +19 -0
  47. package/dist/judgment-binding.js.map +1 -1
  48. package/dist/live-version-binding.d.ts +206 -0
  49. package/dist/live-version-binding.d.ts.map +1 -0
  50. package/dist/live-version-binding.js +4 -0
  51. package/dist/live-version-binding.js.map +1 -0
  52. package/dist/middleware/authorize.d.ts.map +1 -1
  53. package/dist/middleware/authorize.js +13 -2
  54. package/dist/middleware/authorize.js.map +1 -1
  55. package/dist/middleware/project-ref.d.ts +25 -0
  56. package/dist/middleware/project-ref.d.ts.map +1 -0
  57. package/dist/middleware/project-ref.js +72 -0
  58. package/dist/middleware/project-ref.js.map +1 -0
  59. package/dist/openapi/generate.d.ts.map +1 -1
  60. package/dist/openapi/generate.js +4 -0
  61. package/dist/openapi/generate.js.map +1 -1
  62. package/dist/openapi/operations.d.ts +6 -0
  63. package/dist/openapi/operations.d.ts.map +1 -1
  64. package/dist/openapi/operations.js +504 -22
  65. package/dist/openapi/operations.js.map +1 -1
  66. package/dist/openapi/schemas.d.ts +37 -0
  67. package/dist/openapi/schemas.d.ts.map +1 -1
  68. package/dist/openapi/schemas.js +709 -5
  69. package/dist/openapi/schemas.js.map +1 -1
  70. package/dist/publish-refused.d.ts +18 -0
  71. package/dist/publish-refused.d.ts.map +1 -0
  72. package/dist/publish-refused.js +22 -0
  73. package/dist/publish-refused.js.map +1 -0
  74. package/dist/retention-binding.d.ts +29 -0
  75. package/dist/retention-binding.d.ts.map +1 -1
  76. package/dist/routes/agent-releases.d.ts +40 -0
  77. package/dist/routes/agent-releases.d.ts.map +1 -0
  78. package/dist/routes/agent-releases.js +462 -0
  79. package/dist/routes/agent-releases.js.map +1 -0
  80. package/dist/routes/agents.d.ts +7 -1
  81. package/dist/routes/agents.d.ts.map +1 -1
  82. package/dist/routes/agents.js +31 -3
  83. package/dist/routes/agents.js.map +1 -1
  84. package/dist/routes/approvals.d.ts.map +1 -1
  85. package/dist/routes/approvals.js +27 -9
  86. package/dist/routes/approvals.js.map +1 -1
  87. package/dist/routes/audit.d.ts.map +1 -1
  88. package/dist/routes/audit.js +7 -0
  89. package/dist/routes/audit.js.map +1 -1
  90. package/dist/routes/auth.js +1 -1
  91. package/dist/routes/auth.js.map +1 -1
  92. package/dist/routes/conversations.d.ts +0 -7
  93. package/dist/routes/conversations.d.ts.map +1 -1
  94. package/dist/routes/conversations.js +19 -3
  95. package/dist/routes/conversations.js.map +1 -1
  96. package/dist/routes/deployments.d.ts +6 -0
  97. package/dist/routes/deployments.d.ts.map +1 -1
  98. package/dist/routes/deployments.js +33 -5
  99. package/dist/routes/deployments.js.map +1 -1
  100. package/dist/routes/env.d.ts.map +1 -1
  101. package/dist/routes/env.js +1 -0
  102. package/dist/routes/env.js.map +1 -1
  103. package/dist/routes/eval-comparison.d.ts +2 -1
  104. package/dist/routes/eval-comparison.d.ts.map +1 -1
  105. package/dist/routes/eval-comparison.js +22 -9
  106. package/dist/routes/eval-comparison.js.map +1 -1
  107. package/dist/routes/flows.d.ts +14 -7
  108. package/dist/routes/flows.d.ts.map +1 -1
  109. package/dist/routes/flows.js +10 -8
  110. package/dist/routes/flows.js.map +1 -1
  111. package/dist/routes/gate-policies.d.ts +19 -0
  112. package/dist/routes/gate-policies.d.ts.map +1 -0
  113. package/dist/routes/gate-policies.js +191 -0
  114. package/dist/routes/gate-policies.js.map +1 -0
  115. package/dist/routes/gate-policy-spec.d.ts +17 -0
  116. package/dist/routes/gate-policy-spec.d.ts.map +1 -0
  117. package/dist/routes/gate-policy-spec.js +192 -0
  118. package/dist/routes/gate-policy-spec.js.map +1 -0
  119. package/dist/routes/gate-policy-wire.d.ts +3 -0
  120. package/dist/routes/gate-policy-wire.d.ts.map +1 -0
  121. package/dist/routes/gate-policy-wire.js +18 -0
  122. package/dist/routes/gate-policy-wire.js.map +1 -0
  123. package/dist/routes/hierarchy-errors.d.ts +11 -0
  124. package/dist/routes/hierarchy-errors.d.ts.map +1 -1
  125. package/dist/routes/hierarchy-errors.js +13 -0
  126. package/dist/routes/hierarchy-errors.js.map +1 -1
  127. package/dist/routes/judged-suites.js +7 -0
  128. package/dist/routes/judged-suites.js.map +1 -1
  129. package/dist/routes/judgments.d.ts +4 -1
  130. package/dist/routes/judgments.d.ts.map +1 -1
  131. package/dist/routes/judgments.js +92 -19
  132. package/dist/routes/judgments.js.map +1 -1
  133. package/dist/routes/live-scope-wire.d.ts +32 -0
  134. package/dist/routes/live-scope-wire.d.ts.map +1 -0
  135. package/dist/routes/live-scope-wire.js +71 -0
  136. package/dist/routes/live-scope-wire.js.map +1 -0
  137. package/dist/routes/policies.d.ts +6 -3
  138. package/dist/routes/policies.d.ts.map +1 -1
  139. package/dist/routes/policies.js +55 -3
  140. package/dist/routes/policies.js.map +1 -1
  141. package/dist/routes/projects.d.ts.map +1 -1
  142. package/dist/routes/projects.js +47 -3
  143. package/dist/routes/projects.js.map +1 -1
  144. package/dist/routes/retention.d.ts.map +1 -1
  145. package/dist/routes/retention.js +18 -2
  146. package/dist/routes/retention.js.map +1 -1
  147. package/dist/routes/reviewers.d.ts +8 -1
  148. package/dist/routes/reviewers.d.ts.map +1 -1
  149. package/dist/routes/reviewers.js +20 -3
  150. package/dist/routes/reviewers.js.map +1 -1
  151. package/dist/routes/runs.d.ts.map +1 -1
  152. package/dist/routes/runs.js +22 -13
  153. package/dist/routes/runs.js.map +1 -1
  154. package/dist/routes/secrets.d.ts.map +1 -1
  155. package/dist/routes/secrets.js +2 -0
  156. package/dist/routes/secrets.js.map +1 -1
  157. package/dist/routes/segments.d.ts +17 -0
  158. package/dist/routes/segments.d.ts.map +1 -0
  159. package/dist/routes/segments.js +68 -0
  160. package/dist/routes/segments.js.map +1 -0
  161. package/dist/routes/teams.d.ts.map +1 -1
  162. package/dist/routes/teams.js +42 -3
  163. package/dist/routes/teams.js.map +1 -1
  164. package/dist/routes/uuid-param.d.ts +11 -0
  165. package/dist/routes/uuid-param.d.ts.map +1 -0
  166. package/dist/routes/uuid-param.js +19 -0
  167. package/dist/routes/uuid-param.js.map +1 -0
  168. package/openapi.json +6995 -3625
  169. package/package.json +21 -21
  170. package/src/agent-binding.ts +12 -2
  171. package/src/agent-pins.ts +3 -1
  172. package/src/app.ts +37 -3
  173. package/src/deploy-versions.ts +11 -14
  174. package/src/errors.ts +25 -0
  175. package/src/eval-case-binding.ts +7 -0
  176. package/src/eval-run-binding.ts +24 -3
  177. package/src/flow-pins.ts +49 -9
  178. package/src/gate-policy-binding.ts +171 -0
  179. package/src/gate.ts +467 -0
  180. package/src/handler-binding.ts +14 -2
  181. package/src/index.ts +46 -1
  182. package/src/judged-dispatcher.ts +74 -6
  183. package/src/judgment-binding.ts +62 -0
  184. package/src/live-version-binding.ts +237 -0
  185. package/src/middleware/authorize.ts +18 -2
  186. package/src/middleware/project-ref.ts +88 -0
  187. package/src/openapi/generate.ts +5 -0
  188. package/src/openapi/operations.ts +609 -22
  189. package/src/openapi/schemas.ts +788 -5
  190. package/src/publish-refused.ts +31 -0
  191. package/src/retention-binding.ts +30 -0
  192. package/src/routes/agent-releases.ts +581 -0
  193. package/src/routes/agents.ts +43 -2
  194. package/src/routes/approvals.ts +36 -8
  195. package/src/routes/audit.ts +10 -0
  196. package/src/routes/auth.ts +1 -1
  197. package/src/routes/conversations.ts +31 -3
  198. package/src/routes/deployments.ts +50 -5
  199. package/src/routes/env.ts +1 -0
  200. package/src/routes/eval-comparison.ts +24 -10
  201. package/src/routes/flows.ts +27 -11
  202. package/src/routes/gate-policies.ts +226 -0
  203. package/src/routes/gate-policy-spec.ts +229 -0
  204. package/src/routes/gate-policy-wire.ts +20 -0
  205. package/src/routes/hierarchy-errors.ts +14 -0
  206. package/src/routes/judged-suites.ts +5 -0
  207. package/src/routes/judgments.ts +107 -23
  208. package/src/routes/live-scope-wire.ts +90 -0
  209. package/src/routes/policies.ts +61 -3
  210. package/src/routes/projects.ts +54 -2
  211. package/src/routes/retention.ts +21 -2
  212. package/src/routes/reviewers.ts +23 -4
  213. package/src/routes/runs.ts +33 -20
  214. package/src/routes/secrets.ts +2 -0
  215. package/src/routes/segments.ts +75 -0
  216. package/src/routes/teams.ts +53 -3
  217. package/src/routes/uuid-param.ts +28 -0
@@ -0,0 +1,68 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /** A segment key: lowercase, like an identifier (`company`, `contact-role`). */
4
+ const SEGMENT_KEY_RE = /^[a-z][a-z0-9_-]{0,63}$/;
5
+ const MAX_SEGMENTS = 8;
6
+ const MAX_VALUE_LENGTH = 256;
7
+ function checked(segments, field) {
8
+ if (segments.length === 0)
9
+ return { kind: 'ok' };
10
+ if (segments.length > MAX_SEGMENTS) {
11
+ return { kind: 'err', message: `\`${field}\` takes at most ${MAX_SEGMENTS} segments` };
12
+ }
13
+ const seen = new Set();
14
+ for (const { key, value } of segments) {
15
+ if (!SEGMENT_KEY_RE.test(key)) {
16
+ return {
17
+ kind: 'err',
18
+ message: `\`${field}\`: a segment key is lowercase letters, digits, - and _ (starting with a letter); got "${key}"`,
19
+ };
20
+ }
21
+ if (seen.has(key))
22
+ return { kind: 'err', message: `\`${field}\`: the key "${key}" appears twice` };
23
+ seen.add(key);
24
+ if (value.length === 0 || value.length > MAX_VALUE_LENGTH) {
25
+ return {
26
+ kind: 'err',
27
+ message: `\`${field}\`: a segment value is 1–${MAX_VALUE_LENGTH} characters (key "${key}")`,
28
+ };
29
+ }
30
+ }
31
+ return { kind: 'ok', segments };
32
+ }
33
+ /**
34
+ * A run's or a pin's segment path from a JSON body: an ordered list of
35
+ * `{key, value}`, coarse to fine (e.g. `company` then `role`).
36
+ */
37
+ export function parseSegmentsBody(raw, field = 'segments') {
38
+ if (raw === undefined)
39
+ return { kind: 'ok' };
40
+ if (!Array.isArray(raw)) {
41
+ return {
42
+ kind: 'err',
43
+ message: `\`${field}\` must be an array of {key, value}, coarse to fine`,
44
+ };
45
+ }
46
+ const segments = [];
47
+ for (const item of raw) {
48
+ const { key, value } = (item ?? {});
49
+ if (typeof key !== 'string' || typeof value !== 'string') {
50
+ return { kind: 'err', message: `\`${field}\`: each segment is {key: string, value: string}` };
51
+ }
52
+ segments.push({ key, value });
53
+ }
54
+ return checked(segments, field);
55
+ }
56
+ /** The same from a query: repeated `segment=key:value`, in order. */
57
+ export function parseSegmentsQuery(values) {
58
+ const segments = [];
59
+ for (const raw of values) {
60
+ const colon = raw.indexOf(':');
61
+ if (colon <= 0) {
62
+ return { kind: 'err', message: `\`segment\` is key:value; got "${raw}"` };
63
+ }
64
+ segments.push({ key: raw.slice(0, colon), value: raw.slice(colon + 1) });
65
+ }
66
+ return checked(segments, 'segment');
67
+ }
68
+ //# sourceMappingURL=segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/routes/segments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/routes/teams.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAEV,WAAW,EAEX,qBAAqB,EAItB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EAAE,sBAAsB,EACvC,UAAU,CAAC,EAAE,UAAU,GACtB,IAAI,CAAC,MAAM,CAAC,CAmgBd"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/routes/teams.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAEV,WAAW,EAEX,qBAAqB,EAKtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EACpB,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EAAE,sBAAsB,EACvC,UAAU,CAAC,EAAE,UAAU,GACtB,IAAI,CAAC,MAAM,CAAC,CAgjBd"}
@@ -3,7 +3,7 @@
3
3
  import { Hono } from 'hono';
4
4
  import { ref } from '@kindgi/authz';
5
5
  import { statusFor, toWireError } from '../errors.js';
6
- import { orgNotFoundError, slugConflictError } from './hierarchy-errors.js';
6
+ import { membershipNotKeptInStepError, orgNotFoundError, slugConflictError, } from './hierarchy-errors.js';
7
7
  import { clampLimit } from './pagination.js';
8
8
  /**
9
9
  * Teams resource routes — part of the multi-tenant hierarchy.
@@ -34,6 +34,26 @@ import { clampLimit } from './pagination.js';
34
34
  */
35
35
  export function teamsRouter(binding, membershipBinding, tenantHierarchy, authorizer) {
36
36
  const r = new Hono();
37
+ /**
38
+ * Change a member's role. With an authorizer, the row and its FGA tuple
39
+ * change together through the tenant-hierarchy binding, or the change
40
+ * is refused; without one, the membership binding alone.
41
+ */
42
+ async function updateMemberRole(tenantId, teamId, userId, role) {
43
+ if (authorizer === undefined) {
44
+ return {
45
+ kind: 'done',
46
+ outcome: await membershipBinding.updateRole(tenantId, teamId, userId, role),
47
+ };
48
+ }
49
+ if (tenantHierarchy.updateTeamMemberRole === undefined) {
50
+ return { kind: 'refused', error: membershipNotKeptInStepError('updateTeamMemberRole') };
51
+ }
52
+ const res = await tenantHierarchy.updateTeamMemberRole({ tenantId, teamId, userId, role });
53
+ if (res.kind === 'err')
54
+ throw new Error(res.error.message, { cause: res.error });
55
+ return { kind: 'done', outcome: res.value };
56
+ }
37
57
  // ---------- Authorization middleware ----------
38
58
  // Full PEP surface:
39
59
  // POST / → admin on tenant
@@ -278,7 +298,21 @@ export function teamsRouter(binding, membershipBinding, tenantHierarchy, authori
278
298
  const tenantId = c.get('tenantId');
279
299
  const teamId = c.req.param('teamId');
280
300
  const userId = c.req.param('userId');
281
- await membershipBinding.remove(tenantId, teamId, userId);
301
+ // With an authorizer, the row and its FGA tuple go together, or not
302
+ // at all: removing the row alone would leave the permission in place.
303
+ if (authorizer !== undefined) {
304
+ if (tenantHierarchy.removeTeamMember === undefined) {
305
+ const refusal = membershipNotKeptInStepError('removeTeamMember');
306
+ c.status(statusFor(refusal.code));
307
+ return c.json(toWireError(refusal, c.get('requestId')));
308
+ }
309
+ const res = await tenantHierarchy.removeTeamMember({ tenantId, teamId, userId });
310
+ if (res.kind === 'err')
311
+ throw new Error(res.error.message, { cause: res.error });
312
+ }
313
+ else {
314
+ await membershipBinding.remove(tenantId, teamId, userId);
315
+ }
282
316
  c.status(204);
283
317
  return c.body(null);
284
318
  });
@@ -308,7 +342,12 @@ export function teamsRouter(binding, membershipBinding, tenantHierarchy, authori
308
342
  message: '`role` must be one of: member, admin',
309
343
  }, requestId));
310
344
  }
311
- const outcome = await membershipBinding.updateRole(tenantId, teamId, userId, b.role);
345
+ const updated = await updateMemberRole(tenantId, teamId, userId, b.role);
346
+ if (updated.kind === 'refused') {
347
+ c.status(statusFor(updated.error.code));
348
+ return c.json(toWireError(updated.error, requestId));
349
+ }
350
+ const { outcome } = updated;
312
351
  if (outcome.kind === 'team-membership-not-found') {
313
352
  c.status(statusFor('team-membership-not-found'));
314
353
  return c.json(toWireError({
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/routes/teams.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAkB,GAAG,EAAE,MAAM,eAAe,CAAC;AAapD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,WAAW,CACzB,OAAoB,EACpB,iBAAwC,EACxC,eAAuC,EACvC,UAAuB;IAEvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAU,CAAC;IAE7B,iDAAiD;IACjD,oBAAoB;IACpB,gEAAgE;IAChE,8DAA8D;IAC9D,8DAA8D;IAC9D,uEAAuE;IACvE,sDAAsD;IACtD,yEAAyE;IACzE,EAAE;IACF,sEAAsE;IACtE,mEAAmE;IACnE,oDAAoD;IACpD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAsB,CAAC,CACxD,CAAC;YACF,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,IAAI,EAAE,CAAC;YACjF,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACnD,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxC,KAAK;YACL,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAmB,EAAE,CAAC;YACvF,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAiB,EAAE,CAAC;YAClF,GAAG,CAAC,eAAe,KAAK,SAAS;gBAC/B,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,iEAAiE;QACjE,MAAM,OAAO,GACX,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CACxD,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAuB,CAAC,CACvC;YACH,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAChC,OAAO,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS;YACtC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAA+B,EAAE,CAAC;SAC3F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAE/C,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,SAAS,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,EAAE,EAAE,SAAS,CAAC,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mDAAmD,EAAE,EACnF,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mDAAmD,EAAE,EACnF,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YACrE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE,EAC7E,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE,EACvE,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAa;YACrB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAqB,EAAE,CAAC;YAC5E,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAyB,EAAE,CAAC;SACrE,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAA0B,CAAC;YAC9D,MAAM,aAAa,GACjB,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM;gBAC9B,CAAC,CAAE,SAAS,CAAC,KAAK,CAAC,EAAa;gBAChC,CAAC,CAAE,sCAAiD,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1B,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe;oBACnC,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;oBACtC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe;wBACrC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAA0B,CAAC;wBAC3D,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAU,CAAC,CAAC;gBACzC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAA2B,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzE,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,eAAe;gBAC9B,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;gBACzC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAA0B,CAAC,CAAC;YAC3D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAU,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAA2B,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,wEAAwE;IACxE,iDAAiD;IACjD,CAAC,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAE/C,sEAAsE;QACtE,yCAAyC;QACzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAU,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,oBAAoB,MAA2B,GAAG;gBAC3D,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YAC1D,KAAK;YACL,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAmB,EAAE,CAAC;SACxF,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS;YACtC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAA+B,EAAE,CAAC;SAC3F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,kDAAkD;IAClD,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAE/C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAU,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,oBAAoB,MAA2B,GAAG;gBAC3D,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,SAAS,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,EAAE,EAAE,SAAS,CAAC,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,qDAAqD,EAAE,EACrF,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,sCAAsC;aAChD,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAU,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,oBAAoB,MAA2B,GAAG;gBAC3D,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC;gBAC9C,QAAQ;gBACR,MAAM;gBACN,MAAM,EAAE,CAAC,CAAC,MAA2B;gBACrC,IAAI,EAAE,CAAC,CAAC,IAAgB;aACzB,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB;oBAAE,OAAO,QAAQ,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACpD,MAAM;gBACN,MAAM,EAAE,CAAC,CAAC,MAA2B;gBACrC,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB;gBAAE,OAAO,QAAQ,EAAE,CAAC;QAC3D,CAAC;QACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,MAA2B;YACnC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,CAAC,CAAC,MAAM,CAAC,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAC/C,MAAM,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,CAAC,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAE/C,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,SAAS,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,EAAE,EAAE,SAAS,CAAC,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,sCAAsC;aAChD,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,OAAO,CAAC,IAAI,KAAK,2BAA2B,EAAE,CAAC;YACjD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAU,CAAC,CAAC;YAC1D,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,2BAA2B,MAA2B,aAAa,MAA2B,GAAG;gBAC1G,MAAM,EAAE,MAA2B;gBACnC,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAU,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,oBAAoB,MAA2B,GAAG;gBAC3D,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,qCAAqC;IACrC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAE/C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAU,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,oBAAoB,MAA2B,GAAG;gBAC3D,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,uCAAuC;IACvC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAE/C,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,SAAS,CAAC,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC,EAAE,EAAE,SAAS,CAAC,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,MAAM,MAAM,GAAuD,EAAE,CAAC;QACtE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;gBAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sCAAsC,EAAE,EACtE,SAAS,CACV,CACF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;gBAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,sCAAsC,EAAE,EACtE,SAAS,CACV,CACF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACtC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;gBAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,6CAA6C,EAAE,EAC7E,SAAS,CACV,CACF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACrC,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;YACpB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,GAAG,GAAuB,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;gBAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,+CAA+C,EAAE,EAC/E,SAAS,CACV,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAU,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,oBAAoB,MAA2B,GAAG;gBAC3D,MAAM,EAAE,MAA2B;aACpC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzE,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,eAAe;gBAC9B,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;gBACzC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAA0B,CAAC,CAAC;YAC3D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAU,CAAC,CAAC;YACzC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAa,CAAC;QAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAW,CAAC;QAC/C,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,OAAO,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,CAAO;IAC5B,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAuB;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAA6B;QACzC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAA0B,EAAE,CAAC;QACrE,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAClE,SAAS,EAAE,CAAC,CAAC,SAA8B;QAC3C,SAAS,EAAE,CAAC,CAAC,SAA8B;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAiB;IAChD,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAA6B;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/routes/teams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { MiddlewareHandler } from 'hono';
2
+ import type { AppEnv } from '../types.js';
3
+ /** A UUID, the shape of a run's and a conversation's id. */
4
+ export declare const UUID_RE: RegExp;
5
+ /**
6
+ * A path parameter that must be a UUID: one that isn't is a 400 naming
7
+ * it, before it reaches a query (where Postgres's uuid cast would fail it
8
+ * as a 500). `what` names the id, e.g. `a run id`.
9
+ */
10
+ export declare function refuseMalformedUuidParam(param: string, what: string): MiddlewareHandler<AppEnv>;
11
+ //# sourceMappingURL=uuid-param.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-param.d.ts","sourceRoot":"","sources":["../../src/routes/uuid-param.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,4DAA4D;AAC5D,eAAO,MAAM,OAAO,QAAoE,CAAC;AAEzF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAW/F"}
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { statusFor, toWireError } from '../errors.js';
4
+ /** A UUID, the shape of a run's and a conversation's id. */
5
+ export const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
+ /**
7
+ * A path parameter that must be a UUID: one that isn't is a 400 naming
8
+ * it, before it reaches a query (where Postgres's uuid cast would fail it
9
+ * as a 500). `what` names the id, e.g. `a run id`.
10
+ */
11
+ export function refuseMalformedUuidParam(param, what) {
12
+ return async (c, next) => {
13
+ if (UUID_RE.test(c.req.param(param) ?? ''))
14
+ return next();
15
+ c.status(statusFor('bad-input'));
16
+ return c.json(toWireError({ code: 'bad-input', message: `\`${param}\` must be ${what} (a UUID)` }, c.get('requestId')));
17
+ };
18
+ }
19
+ //# sourceMappingURL=uuid-param.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-param.js","sourceRoot":"","sources":["../../src/routes/uuid-param.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAIjC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGtD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,iEAAiE,CAAC;AAEzF;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,IAAY;IAClE,OAAO,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,IAAI,EAAE,CAAC;QAC1D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAU,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,IAAI,CACX,WAAW,CACT,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,KAAK,cAAc,IAAI,WAAW,EAAE,EACvE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CACnB,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}