@cat-factory/contracts 0.33.0 → 0.35.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 (228) hide show
  1. package/dist/api-keys.d.ts +17 -0
  2. package/dist/api-keys.d.ts.map +1 -1
  3. package/dist/api-keys.js +2 -0
  4. package/dist/api-keys.js.map +1 -1
  5. package/dist/entities.d.ts +135 -0
  6. package/dist/entities.d.ts.map +1 -1
  7. package/dist/entities.js +46 -0
  8. package/dist/entities.js.map +1 -1
  9. package/dist/github.d.ts +14 -0
  10. package/dist/github.d.ts.map +1 -1
  11. package/dist/github.js +13 -0
  12. package/dist/github.js.map +1 -1
  13. package/dist/human-review.d.ts +8 -0
  14. package/dist/human-review.d.ts.map +1 -0
  15. package/dist/human-review.js +12 -0
  16. package/dist/human-review.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/merge.d.ts +9 -0
  22. package/dist/merge.d.ts.map +1 -1
  23. package/dist/merge.js +10 -0
  24. package/dist/merge.js.map +1 -1
  25. package/dist/notifications.d.ts +2 -2
  26. package/dist/notifications.d.ts.map +1 -1
  27. package/dist/notifications.js +6 -0
  28. package/dist/notifications.js.map +1 -1
  29. package/dist/observability.d.ts +63 -0
  30. package/dist/observability.d.ts.map +1 -1
  31. package/dist/observability.js +57 -0
  32. package/dist/observability.js.map +1 -1
  33. package/dist/requests.d.ts +7 -0
  34. package/dist/requests.d.ts.map +1 -1
  35. package/dist/requests.js +2 -0
  36. package/dist/requests.js.map +1 -1
  37. package/dist/routes/_shared.d.ts +49 -0
  38. package/dist/routes/_shared.d.ts.map +1 -0
  39. package/dist/routes/_shared.js +34 -0
  40. package/dist/routes/_shared.js.map +1 -0
  41. package/dist/routes/accounts.d.ts +775 -0
  42. package/dist/routes/accounts.d.ts.map +1 -0
  43. package/dist/routes/accounts.js +145 -0
  44. package/dist/routes/accounts.js.map +1 -0
  45. package/dist/routes/agent-runs.d.ts +659 -0
  46. package/dist/routes/agent-runs.d.ts.map +1 -0
  47. package/dist/routes/agent-runs.js +33 -0
  48. package/dist/routes/agent-runs.js.map +1 -0
  49. package/dist/routes/api-keys.d.ts +245 -0
  50. package/dist/routes/api-keys.d.ts.map +1 -0
  51. package/dist/routes/api-keys.js +49 -0
  52. package/dist/routes/api-keys.js.map +1 -0
  53. package/dist/routes/auth.d.ts +411 -0
  54. package/dist/routes/auth.d.ts.map +1 -0
  55. package/dist/routes/auth.js +129 -0
  56. package/dist/routes/auth.js.map +1 -0
  57. package/dist/routes/board.d.ts +1260 -0
  58. package/dist/routes/board.d.ts.map +1 -0
  59. package/dist/routes/board.js +85 -0
  60. package/dist/routes/board.js.map +1 -0
  61. package/dist/routes/bootstrap.d.ts +395 -0
  62. package/dist/routes/bootstrap.d.ts.map +1 -0
  63. package/dist/routes/bootstrap.js +56 -0
  64. package/dist/routes/bootstrap.js.map +1 -0
  65. package/dist/routes/brainstorm.d.ts +482 -0
  66. package/dist/routes/brainstorm.d.ts.map +1 -0
  67. package/dist/routes/brainstorm.js +69 -0
  68. package/dist/routes/brainstorm.js.map +1 -0
  69. package/dist/routes/clarity.d.ts +462 -0
  70. package/dist/routes/clarity.d.ts.map +1 -0
  71. package/dist/routes/clarity.js +67 -0
  72. package/dist/routes/clarity.js.map +1 -0
  73. package/dist/routes/consensus.d.ts +71 -0
  74. package/dist/routes/consensus.d.ts.map +1 -0
  75. package/dist/routes/consensus.js +23 -0
  76. package/dist/routes/consensus.js.map +1 -0
  77. package/dist/routes/documents.d.ts +449 -0
  78. package/dist/routes/documents.d.ts.map +1 -0
  79. package/dist/routes/documents.js +89 -0
  80. package/dist/routes/documents.js.map +1 -0
  81. package/dist/routes/environments.d.ts +715 -0
  82. package/dist/routes/environments.d.ts.map +1 -0
  83. package/dist/routes/environments.js +82 -0
  84. package/dist/routes/environments.js.map +1 -0
  85. package/dist/routes/execution.d.ts +2768 -0
  86. package/dist/routes/execution.d.ts.map +1 -0
  87. package/dist/routes/execution.js +119 -0
  88. package/dist/routes/execution.js.map +1 -0
  89. package/dist/routes/followUp.d.ts +277 -0
  90. package/dist/routes/followUp.d.ts.map +1 -0
  91. package/dist/routes/followUp.js +47 -0
  92. package/dist/routes/followUp.js.map +1 -0
  93. package/dist/routes/fragment-library.d.ts +594 -0
  94. package/dist/routes/fragment-library.d.ts.map +1 -0
  95. package/dist/routes/fragment-library.js +102 -0
  96. package/dist/routes/fragment-library.js.map +1 -0
  97. package/dist/routes/github.d.ts +807 -0
  98. package/dist/routes/github.d.ts.map +1 -0
  99. package/dist/routes/github.js +157 -0
  100. package/dist/routes/github.js.map +1 -0
  101. package/dist/routes/human-review.d.ts +290 -0
  102. package/dist/routes/human-review.d.ts.map +1 -0
  103. package/dist/routes/human-review.js +20 -0
  104. package/dist/routes/human-review.js.map +1 -0
  105. package/dist/routes/human-test.d.ts +1435 -0
  106. package/dist/routes/human-test.d.ts.map +1 -0
  107. package/dist/routes/human-test.js +48 -0
  108. package/dist/routes/human-test.js.map +1 -0
  109. package/dist/routes/incident-enrichment.d.ts +110 -0
  110. package/dist/routes/incident-enrichment.d.ts.map +1 -0
  111. package/dist/routes/incident-enrichment.js +26 -0
  112. package/dist/routes/incident-enrichment.js.map +1 -0
  113. package/dist/routes/index.d.ts +47 -0
  114. package/dist/routes/index.d.ts.map +1 -0
  115. package/dist/routes/index.js +50 -0
  116. package/dist/routes/index.js.map +1 -0
  117. package/dist/routes/kaizen.d.ts +113 -0
  118. package/dist/routes/kaizen.d.ts.map +1 -0
  119. package/dist/routes/kaizen.js +22 -0
  120. package/dist/routes/kaizen.js.map +1 -0
  121. package/dist/routes/localModels.d.ts +163 -0
  122. package/dist/routes/localModels.d.ts.map +1 -0
  123. package/dist/routes/localModels.js +41 -0
  124. package/dist/routes/localModels.js.map +1 -0
  125. package/dist/routes/localSettings.d.ts +93 -0
  126. package/dist/routes/localSettings.d.ts.map +1 -0
  127. package/dist/routes/localSettings.js +22 -0
  128. package/dist/routes/localSettings.js.map +1 -0
  129. package/dist/routes/merge.d.ts +197 -0
  130. package/dist/routes/merge.d.ts.map +1 -0
  131. package/dist/routes/merge.js +36 -0
  132. package/dist/routes/merge.js.map +1 -0
  133. package/dist/routes/model-presets.d.ts +162 -0
  134. package/dist/routes/model-presets.d.ts.map +1 -0
  135. package/dist/routes/model-presets.js +36 -0
  136. package/dist/routes/model-presets.js.map +1 -0
  137. package/dist/routes/models.d.ts +123 -0
  138. package/dist/routes/models.d.ts.map +1 -0
  139. package/dist/routes/models.js +25 -0
  140. package/dist/routes/models.js.map +1 -0
  141. package/dist/routes/notifications.d.ts +213 -0
  142. package/dist/routes/notifications.d.ts.map +1 -0
  143. package/dist/routes/notifications.js +31 -0
  144. package/dist/routes/notifications.js.map +1 -0
  145. package/dist/routes/openrouter.d.ts +145 -0
  146. package/dist/routes/openrouter.d.ts.map +1 -0
  147. package/dist/routes/openrouter.js +32 -0
  148. package/dist/routes/openrouter.js.map +1 -0
  149. package/dist/routes/personal-subscriptions.d.ts +124 -0
  150. package/dist/routes/personal-subscriptions.d.ts.map +1 -0
  151. package/dist/routes/personal-subscriptions.js +32 -0
  152. package/dist/routes/personal-subscriptions.js.map +1 -0
  153. package/dist/routes/pipelines.d.ts +457 -0
  154. package/dist/routes/pipelines.d.ts.map +1 -0
  155. package/dist/routes/pipelines.js +51 -0
  156. package/dist/routes/pipelines.js.map +1 -0
  157. package/dist/routes/prompt-fragments.d.ts +52 -0
  158. package/dist/routes/prompt-fragments.d.ts.map +1 -0
  159. package/dist/routes/prompt-fragments.js +14 -0
  160. package/dist/routes/prompt-fragments.js.map +1 -0
  161. package/dist/routes/provisioning-logs.d.ts +45 -0
  162. package/dist/routes/provisioning-logs.d.ts.map +1 -0
  163. package/dist/routes/provisioning-logs.js +14 -0
  164. package/dist/routes/provisioning-logs.js.map +1 -0
  165. package/dist/routes/recurring.d.ts +309 -0
  166. package/dist/routes/recurring.d.ts.map +1 -0
  167. package/dist/routes/recurring.js +50 -0
  168. package/dist/routes/recurring.js.map +1 -0
  169. package/dist/routes/release.d.ts +218 -0
  170. package/dist/routes/release.d.ts.map +1 -0
  171. package/dist/routes/release.js +47 -0
  172. package/dist/routes/release.js.map +1 -0
  173. package/dist/routes/requirements.d.ts +901 -0
  174. package/dist/routes/requirements.d.ts.map +1 -0
  175. package/dist/routes/requirements.js +96 -0
  176. package/dist/routes/requirements.js.map +1 -0
  177. package/dist/routes/runners.d.ts +442 -0
  178. package/dist/routes/runners.d.ts.map +1 -0
  179. package/dist/routes/runners.js +47 -0
  180. package/dist/routes/runners.js.map +1 -0
  181. package/dist/routes/sandbox.d.ts +898 -0
  182. package/dist/routes/sandbox.d.ts.map +1 -0
  183. package/dist/routes/sandbox.js +119 -0
  184. package/dist/routes/sandbox.js.map +1 -0
  185. package/dist/routes/service-fragment-defaults.d.ts +66 -0
  186. package/dist/routes/service-fragment-defaults.d.ts.map +1 -0
  187. package/dist/routes/service-fragment-defaults.js +20 -0
  188. package/dist/routes/service-fragment-defaults.js.map +1 -0
  189. package/dist/routes/services.d.ts +224 -0
  190. package/dist/routes/services.d.ts.map +1 -0
  191. package/dist/routes/services.js +44 -0
  192. package/dist/routes/services.js.map +1 -0
  193. package/dist/routes/slack.d.ts +332 -0
  194. package/dist/routes/slack.d.ts.map +1 -0
  195. package/dist/routes/slack.js +72 -0
  196. package/dist/routes/slack.js.map +1 -0
  197. package/dist/routes/spec.d.ts +76 -0
  198. package/dist/routes/spec.d.ts.map +1 -0
  199. package/dist/routes/spec.js +17 -0
  200. package/dist/routes/spec.js.map +1 -0
  201. package/dist/routes/tasks.d.ts +723 -0
  202. package/dist/routes/tasks.d.ts.map +1 -0
  203. package/dist/routes/tasks.js +108 -0
  204. package/dist/routes/tasks.js.map +1 -0
  205. package/dist/routes/tracker.d.ts +77 -0
  206. package/dist/routes/tracker.d.ts.map +1 -0
  207. package/dist/routes/tracker.js +20 -0
  208. package/dist/routes/tracker.js.map +1 -0
  209. package/dist/routes/user-secret.d.ts +231 -0
  210. package/dist/routes/user-secret.d.ts.map +1 -0
  211. package/dist/routes/user-secret.js +49 -0
  212. package/dist/routes/user-secret.js.map +1 -0
  213. package/dist/routes/vendor-credentials.d.ts +120 -0
  214. package/dist/routes/vendor-credentials.d.ts.map +1 -0
  215. package/dist/routes/vendor-credentials.js +33 -0
  216. package/dist/routes/vendor-credentials.js.map +1 -0
  217. package/dist/routes/workspace-settings.d.ts +93 -0
  218. package/dist/routes/workspace-settings.d.ts.map +1 -0
  219. package/dist/routes/workspace-settings.js +20 -0
  220. package/dist/routes/workspace-settings.js.map +1 -0
  221. package/dist/routes/workspaces.d.ts +1309 -0
  222. package/dist/routes/workspaces.d.ts.map +1 -0
  223. package/dist/routes/workspaces.js +45 -0
  224. package/dist/routes/workspaces.js.map +1 -0
  225. package/dist/slack.d.ts +2 -2
  226. package/dist/snapshot.d.ts +11 -1
  227. package/dist/snapshot.d.ts.map +1 -1
  228. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/routes/execution.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOtC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO7B,CAAA"}
@@ -0,0 +1,119 @@
1
+ import { ContractNoBody, defineApiContract, withObjectKeys } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ import { blockSchema, executionInstanceSchema, spendStatusSchema } from '../entities.js';
4
+ import { resolveIterationCapSchema } from '../iteration-cap.js';
5
+ import { agentContextSnapshotSchema, llmMetricsExportSchema, llmMetricsResponseSchema, } from '../observability.js';
6
+ import { approveStepSchema, rejectStepSchema, requestStepChangesSchema, resolveDecisionSchema, restartFromStepSchema, startExecutionSchema, } from '../requests.js';
7
+ import { errorResponses } from './_shared.js';
8
+ // ---------------------------------------------------------------------------
9
+ // Execution-engine route contracts. Mounted under `/workspaces/:workspaceId`, so
10
+ // the paths here are relative to that prefix. See ExecutionController.
11
+ // ---------------------------------------------------------------------------
12
+ const executionInstanceListSchema = v.array(executionInstanceSchema);
13
+ const blockIdParams = withObjectKeys(v.object({ blockId: v.string() }));
14
+ const executionIdParams = withObjectKeys(v.object({ executionId: v.string() }));
15
+ const decisionParams = withObjectKeys(v.object({ executionId: v.string(), decisionId: v.string() }));
16
+ const approvalParams = withObjectKeys(v.object({ executionId: v.string(), approvalId: v.string() }));
17
+ // The agent-context observability response — `{ executionId, snapshots }`. The
18
+ // snapshot schema (`agentContextSnapshotSchema`, imported from `../observability.js`)
19
+ // is the shared source of truth the kernel `AgentContextSnapshot` port also derives from.
20
+ const agentContextResponseSchema = v.object({
21
+ executionId: v.string(),
22
+ snapshots: v.array(agentContextSnapshotSchema),
23
+ });
24
+ // ---- run lifecycle --------------------------------------------------------
25
+ export const startExecutionContract = defineApiContract({
26
+ method: 'post',
27
+ requestPathParamsSchema: blockIdParams,
28
+ pathResolver: ({ blockId }) => `/blocks/${blockId}/executions`,
29
+ requestBodySchema: startExecutionSchema,
30
+ responsesByStatusCode: { 201: executionInstanceSchema, ...errorResponses },
31
+ });
32
+ export const cancelExecutionContract = defineApiContract({
33
+ method: 'delete',
34
+ requestPathParamsSchema: blockIdParams,
35
+ pathResolver: ({ blockId }) => `/blocks/${blockId}/executions`,
36
+ responsesByStatusCode: { 200: blockSchema, ...errorResponses },
37
+ });
38
+ export const mergeBlockContract = defineApiContract({
39
+ method: 'post',
40
+ requestPathParamsSchema: blockIdParams,
41
+ pathResolver: ({ blockId }) => `/blocks/${blockId}/merge`,
42
+ requestBodySchema: ContractNoBody,
43
+ responsesByStatusCode: { 200: blockSchema, ...errorResponses },
44
+ });
45
+ // ---- spend safeguard ------------------------------------------------------
46
+ export const getSpendStatusContract = defineApiContract({
47
+ method: 'get',
48
+ pathResolver: () => '/spend',
49
+ responsesByStatusCode: { 200: spendStatusSchema, ...errorResponses },
50
+ });
51
+ export const resumeSpendContract = defineApiContract({
52
+ method: 'post',
53
+ pathResolver: () => '/spend/resume',
54
+ requestBodySchema: ContractNoBody,
55
+ responsesByStatusCode: { 200: executionInstanceListSchema, ...errorResponses },
56
+ });
57
+ // ---- run observability ----------------------------------------------------
58
+ export const getExecutionLlmMetricsContract = defineApiContract({
59
+ method: 'get',
60
+ requestPathParamsSchema: executionIdParams,
61
+ pathResolver: ({ executionId }) => `/executions/${executionId}/llm-metrics`,
62
+ responsesByStatusCode: { 200: llmMetricsResponseSchema, ...errorResponses },
63
+ });
64
+ export const getExecutionAgentContextContract = defineApiContract({
65
+ method: 'get',
66
+ requestPathParamsSchema: executionIdParams,
67
+ pathResolver: ({ executionId }) => `/executions/${executionId}/agent-context`,
68
+ responsesByStatusCode: { 200: agentContextResponseSchema, ...errorResponses },
69
+ });
70
+ export const exportExecutionLlmMetricsContract = defineApiContract({
71
+ method: 'get',
72
+ requestPathParamsSchema: executionIdParams,
73
+ pathResolver: ({ executionId }) => `/executions/${executionId}/llm-metrics/export`,
74
+ responsesByStatusCode: { 200: llmMetricsExportSchema, ...errorResponses },
75
+ });
76
+ // ---- decisions / approvals ------------------------------------------------
77
+ export const resolveDecisionContract = defineApiContract({
78
+ method: 'post',
79
+ requestPathParamsSchema: decisionParams,
80
+ pathResolver: ({ executionId, decisionId }) => `/executions/${executionId}/decisions/${decisionId}`,
81
+ requestBodySchema: resolveDecisionSchema,
82
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
83
+ });
84
+ export const approveStepContract = defineApiContract({
85
+ method: 'post',
86
+ requestPathParamsSchema: approvalParams,
87
+ pathResolver: ({ executionId, approvalId }) => `/executions/${executionId}/steps/${approvalId}/approve`,
88
+ requestBodySchema: approveStepSchema,
89
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
90
+ });
91
+ export const requestStepChangesContract = defineApiContract({
92
+ method: 'post',
93
+ requestPathParamsSchema: approvalParams,
94
+ pathResolver: ({ executionId, approvalId }) => `/executions/${executionId}/steps/${approvalId}/request-changes`,
95
+ requestBodySchema: requestStepChangesSchema,
96
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
97
+ });
98
+ export const resolveStepExceededContract = defineApiContract({
99
+ method: 'post',
100
+ requestPathParamsSchema: approvalParams,
101
+ pathResolver: ({ executionId, approvalId }) => `/executions/${executionId}/steps/${approvalId}/resolve-exceeded`,
102
+ requestBodySchema: resolveIterationCapSchema,
103
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
104
+ });
105
+ export const restartExecutionContract = defineApiContract({
106
+ method: 'post',
107
+ requestPathParamsSchema: executionIdParams,
108
+ pathResolver: ({ executionId }) => `/executions/${executionId}/restart`,
109
+ requestBodySchema: restartFromStepSchema,
110
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
111
+ });
112
+ export const rejectStepContract = defineApiContract({
113
+ method: 'post',
114
+ requestPathParamsSchema: approvalParams,
115
+ pathResolver: ({ executionId, approvalId }) => `/executions/${executionId}/steps/${approvalId}/reject`,
116
+ requestBodySchema: rejectStepSchema,
117
+ responsesByStatusCode: { 200: executionInstanceSchema, ...errorResponses },
118
+ });
119
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/routes/execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,277 @@
1
+ import { ContractNoBody } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ export declare const getFollowUpsContract: {
4
+ readonly method: "get";
5
+ readonly requestPathParamsSchema: v.ObjectSchema<{
6
+ readonly executionId: v.StringSchema<undefined>;
7
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
8
+ readonly pathResolver: ({ executionId }: {
9
+ executionId: string;
10
+ }) => string;
11
+ readonly responsesByStatusCode: {
12
+ readonly '4xx': v.ObjectSchema<{
13
+ readonly error: v.ObjectSchema<{
14
+ readonly code: v.StringSchema<undefined>;
15
+ readonly message: v.StringSchema<undefined>;
16
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
17
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
18
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
19
+ readonly message: v.StringSchema<undefined>;
20
+ }, undefined>, undefined>, undefined>;
21
+ }, undefined>;
22
+ }, undefined>;
23
+ readonly '5xx': v.ObjectSchema<{
24
+ readonly error: v.ObjectSchema<{
25
+ readonly code: v.StringSchema<undefined>;
26
+ readonly message: v.StringSchema<undefined>;
27
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
28
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
29
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
30
+ readonly message: v.StringSchema<undefined>;
31
+ }, undefined>, undefined>, undefined>;
32
+ }, undefined>;
33
+ }, undefined>;
34
+ readonly 200: v.NullableSchema<v.ObjectSchema<{
35
+ readonly enabled: v.BooleanSchema<undefined>;
36
+ readonly items: v.ArraySchema<v.ObjectSchema<{
37
+ readonly id: v.StringSchema<undefined>;
38
+ readonly kind: v.PicklistSchema<["follow_up", "question"], undefined>;
39
+ readonly title: v.StringSchema<undefined>;
40
+ readonly detail: v.StringSchema<undefined>;
41
+ readonly suggestedAction: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
42
+ readonly status: v.PicklistSchema<["pending", "filed", "queued", "answered", "dismissed"], undefined>;
43
+ readonly answer: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
44
+ readonly sentToCoder: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
45
+ readonly ticketExternalId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
46
+ readonly ticketUrl: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
47
+ readonly createdAt: v.NumberSchema<undefined>;
48
+ readonly updatedAt: v.NumberSchema<undefined>;
49
+ }, undefined>, undefined>;
50
+ readonly loops: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
51
+ readonly maxLoops: v.OptionalSchema<v.NumberSchema<undefined>, 3>;
52
+ }, undefined>, undefined>;
53
+ };
54
+ };
55
+ export declare const fileFollowUpContract: {
56
+ readonly method: "post";
57
+ readonly requestPathParamsSchema: v.ObjectSchema<{
58
+ readonly executionId: v.StringSchema<undefined>;
59
+ readonly itemId: v.StringSchema<undefined>;
60
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
61
+ readonly pathResolver: ({ executionId, itemId }: {
62
+ executionId: string;
63
+ itemId: string;
64
+ }) => string;
65
+ readonly requestBodySchema: typeof ContractNoBody;
66
+ readonly responsesByStatusCode: {
67
+ readonly '4xx': v.ObjectSchema<{
68
+ readonly error: v.ObjectSchema<{
69
+ readonly code: v.StringSchema<undefined>;
70
+ readonly message: v.StringSchema<undefined>;
71
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
72
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
73
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
74
+ readonly message: v.StringSchema<undefined>;
75
+ }, undefined>, undefined>, undefined>;
76
+ }, undefined>;
77
+ }, undefined>;
78
+ readonly '5xx': v.ObjectSchema<{
79
+ readonly error: v.ObjectSchema<{
80
+ readonly code: v.StringSchema<undefined>;
81
+ readonly message: v.StringSchema<undefined>;
82
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
83
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
84
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
85
+ readonly message: v.StringSchema<undefined>;
86
+ }, undefined>, undefined>, undefined>;
87
+ }, undefined>;
88
+ }, undefined>;
89
+ readonly 200: v.ObjectSchema<{
90
+ readonly enabled: v.BooleanSchema<undefined>;
91
+ readonly items: v.ArraySchema<v.ObjectSchema<{
92
+ readonly id: v.StringSchema<undefined>;
93
+ readonly kind: v.PicklistSchema<["follow_up", "question"], undefined>;
94
+ readonly title: v.StringSchema<undefined>;
95
+ readonly detail: v.StringSchema<undefined>;
96
+ readonly suggestedAction: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
97
+ readonly status: v.PicklistSchema<["pending", "filed", "queued", "answered", "dismissed"], undefined>;
98
+ readonly answer: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
99
+ readonly sentToCoder: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
100
+ readonly ticketExternalId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
101
+ readonly ticketUrl: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
102
+ readonly createdAt: v.NumberSchema<undefined>;
103
+ readonly updatedAt: v.NumberSchema<undefined>;
104
+ }, undefined>, undefined>;
105
+ readonly loops: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
106
+ readonly maxLoops: v.OptionalSchema<v.NumberSchema<undefined>, 3>;
107
+ }, undefined>;
108
+ };
109
+ };
110
+ export declare const queueFollowUpContract: {
111
+ readonly method: "post";
112
+ readonly requestPathParamsSchema: v.ObjectSchema<{
113
+ readonly executionId: v.StringSchema<undefined>;
114
+ readonly itemId: v.StringSchema<undefined>;
115
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
116
+ readonly pathResolver: ({ executionId, itemId }: {
117
+ executionId: string;
118
+ itemId: string;
119
+ }) => string;
120
+ readonly requestBodySchema: typeof ContractNoBody;
121
+ readonly responsesByStatusCode: {
122
+ readonly '4xx': v.ObjectSchema<{
123
+ readonly error: v.ObjectSchema<{
124
+ readonly code: v.StringSchema<undefined>;
125
+ readonly message: v.StringSchema<undefined>;
126
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
127
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
128
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
129
+ readonly message: v.StringSchema<undefined>;
130
+ }, undefined>, undefined>, undefined>;
131
+ }, undefined>;
132
+ }, undefined>;
133
+ readonly '5xx': v.ObjectSchema<{
134
+ readonly error: v.ObjectSchema<{
135
+ readonly code: v.StringSchema<undefined>;
136
+ readonly message: v.StringSchema<undefined>;
137
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
138
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
139
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
140
+ readonly message: v.StringSchema<undefined>;
141
+ }, undefined>, undefined>, undefined>;
142
+ }, undefined>;
143
+ }, undefined>;
144
+ readonly 200: v.ObjectSchema<{
145
+ readonly enabled: v.BooleanSchema<undefined>;
146
+ readonly items: v.ArraySchema<v.ObjectSchema<{
147
+ readonly id: v.StringSchema<undefined>;
148
+ readonly kind: v.PicklistSchema<["follow_up", "question"], undefined>;
149
+ readonly title: v.StringSchema<undefined>;
150
+ readonly detail: v.StringSchema<undefined>;
151
+ readonly suggestedAction: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
152
+ readonly status: v.PicklistSchema<["pending", "filed", "queued", "answered", "dismissed"], undefined>;
153
+ readonly answer: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
154
+ readonly sentToCoder: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
155
+ readonly ticketExternalId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
156
+ readonly ticketUrl: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
157
+ readonly createdAt: v.NumberSchema<undefined>;
158
+ readonly updatedAt: v.NumberSchema<undefined>;
159
+ }, undefined>, undefined>;
160
+ readonly loops: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
161
+ readonly maxLoops: v.OptionalSchema<v.NumberSchema<undefined>, 3>;
162
+ }, undefined>;
163
+ };
164
+ };
165
+ export declare const answerFollowUpContract: {
166
+ readonly method: "post";
167
+ readonly requestPathParamsSchema: v.ObjectSchema<{
168
+ readonly executionId: v.StringSchema<undefined>;
169
+ readonly itemId: v.StringSchema<undefined>;
170
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
171
+ readonly pathResolver: ({ executionId, itemId }: {
172
+ executionId: string;
173
+ itemId: string;
174
+ }) => string;
175
+ readonly requestBodySchema: v.ObjectSchema<{
176
+ readonly answer: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 4000, undefined>]>;
177
+ }, undefined>;
178
+ readonly responsesByStatusCode: {
179
+ readonly '4xx': v.ObjectSchema<{
180
+ readonly error: v.ObjectSchema<{
181
+ readonly code: v.StringSchema<undefined>;
182
+ readonly message: v.StringSchema<undefined>;
183
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
184
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
185
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
186
+ readonly message: v.StringSchema<undefined>;
187
+ }, undefined>, undefined>, undefined>;
188
+ }, undefined>;
189
+ }, undefined>;
190
+ readonly '5xx': v.ObjectSchema<{
191
+ readonly error: v.ObjectSchema<{
192
+ readonly code: v.StringSchema<undefined>;
193
+ readonly message: v.StringSchema<undefined>;
194
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
195
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
196
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
197
+ readonly message: v.StringSchema<undefined>;
198
+ }, undefined>, undefined>, undefined>;
199
+ }, undefined>;
200
+ }, undefined>;
201
+ readonly 200: v.ObjectSchema<{
202
+ readonly enabled: v.BooleanSchema<undefined>;
203
+ readonly items: v.ArraySchema<v.ObjectSchema<{
204
+ readonly id: v.StringSchema<undefined>;
205
+ readonly kind: v.PicklistSchema<["follow_up", "question"], undefined>;
206
+ readonly title: v.StringSchema<undefined>;
207
+ readonly detail: v.StringSchema<undefined>;
208
+ readonly suggestedAction: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
209
+ readonly status: v.PicklistSchema<["pending", "filed", "queued", "answered", "dismissed"], undefined>;
210
+ readonly answer: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
211
+ readonly sentToCoder: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
212
+ readonly ticketExternalId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
213
+ readonly ticketUrl: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
214
+ readonly createdAt: v.NumberSchema<undefined>;
215
+ readonly updatedAt: v.NumberSchema<undefined>;
216
+ }, undefined>, undefined>;
217
+ readonly loops: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
218
+ readonly maxLoops: v.OptionalSchema<v.NumberSchema<undefined>, 3>;
219
+ }, undefined>;
220
+ };
221
+ };
222
+ export declare const dismissFollowUpContract: {
223
+ readonly method: "post";
224
+ readonly requestPathParamsSchema: v.ObjectSchema<{
225
+ readonly executionId: v.StringSchema<undefined>;
226
+ readonly itemId: v.StringSchema<undefined>;
227
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
228
+ readonly pathResolver: ({ executionId, itemId }: {
229
+ executionId: string;
230
+ itemId: string;
231
+ }) => string;
232
+ readonly requestBodySchema: typeof ContractNoBody;
233
+ readonly responsesByStatusCode: {
234
+ readonly '4xx': v.ObjectSchema<{
235
+ readonly error: v.ObjectSchema<{
236
+ readonly code: v.StringSchema<undefined>;
237
+ readonly message: v.StringSchema<undefined>;
238
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
239
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
240
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
241
+ readonly message: v.StringSchema<undefined>;
242
+ }, undefined>, undefined>, undefined>;
243
+ }, undefined>;
244
+ }, undefined>;
245
+ readonly '5xx': v.ObjectSchema<{
246
+ readonly error: v.ObjectSchema<{
247
+ readonly code: v.StringSchema<undefined>;
248
+ readonly message: v.StringSchema<undefined>;
249
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
250
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
251
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
252
+ readonly message: v.StringSchema<undefined>;
253
+ }, undefined>, undefined>, undefined>;
254
+ }, undefined>;
255
+ }, undefined>;
256
+ readonly 200: v.ObjectSchema<{
257
+ readonly enabled: v.BooleanSchema<undefined>;
258
+ readonly items: v.ArraySchema<v.ObjectSchema<{
259
+ readonly id: v.StringSchema<undefined>;
260
+ readonly kind: v.PicklistSchema<["follow_up", "question"], undefined>;
261
+ readonly title: v.StringSchema<undefined>;
262
+ readonly detail: v.StringSchema<undefined>;
263
+ readonly suggestedAction: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
264
+ readonly status: v.PicklistSchema<["pending", "filed", "queued", "answered", "dismissed"], undefined>;
265
+ readonly answer: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
266
+ readonly sentToCoder: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
267
+ readonly ticketExternalId: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
268
+ readonly ticketUrl: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
269
+ readonly createdAt: v.NumberSchema<undefined>;
270
+ readonly updatedAt: v.NumberSchema<undefined>;
271
+ }, undefined>, undefined>;
272
+ readonly loops: v.OptionalSchema<v.NumberSchema<undefined>, 0>;
273
+ readonly maxLoops: v.OptionalSchema<v.NumberSchema<undefined>, 3>;
274
+ }, undefined>;
275
+ };
276
+ };
277
+ //# sourceMappingURL=followUp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"followUp.d.ts","sourceRoot":"","sources":["../../src/routes/followUp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAgB5B,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM/B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOjC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOlC,CAAA"}
@@ -0,0 +1,47 @@
1
+ import { ContractNoBody, defineApiContract, withObjectKeys } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ import { answerFollowUpSchema, followUpsStepStateSchema } from '../followUp.js';
4
+ import { errorResponses } from './_shared.js';
5
+ // ---------------------------------------------------------------------------
6
+ // Follow-up companion route contracts. Mounted under `/workspaces/:workspaceId`,
7
+ // so the paths here are relative to that prefix. Each returns the run's live
8
+ // follow-up state; the read route returns null when the companion is off or
9
+ // nothing surfaced. See FollowUpController in @cat-factory/server.
10
+ // ---------------------------------------------------------------------------
11
+ const executionIdParams = withObjectKeys(v.object({ executionId: v.string() }));
12
+ const executionItemParams = withObjectKeys(v.object({ executionId: v.string(), itemId: v.string() }));
13
+ export const getFollowUpsContract = defineApiContract({
14
+ method: 'get',
15
+ requestPathParamsSchema: executionIdParams,
16
+ pathResolver: ({ executionId }) => `/executions/${executionId}/follow-ups`,
17
+ responsesByStatusCode: { 200: v.nullable(followUpsStepStateSchema), ...errorResponses },
18
+ });
19
+ export const fileFollowUpContract = defineApiContract({
20
+ method: 'post',
21
+ requestPathParamsSchema: executionItemParams,
22
+ pathResolver: ({ executionId, itemId }) => `/executions/${executionId}/follow-ups/${itemId}/file`,
23
+ requestBodySchema: ContractNoBody,
24
+ responsesByStatusCode: { 200: followUpsStepStateSchema, ...errorResponses },
25
+ });
26
+ export const queueFollowUpContract = defineApiContract({
27
+ method: 'post',
28
+ requestPathParamsSchema: executionItemParams,
29
+ pathResolver: ({ executionId, itemId }) => `/executions/${executionId}/follow-ups/${itemId}/queue`,
30
+ requestBodySchema: ContractNoBody,
31
+ responsesByStatusCode: { 200: followUpsStepStateSchema, ...errorResponses },
32
+ });
33
+ export const answerFollowUpContract = defineApiContract({
34
+ method: 'post',
35
+ requestPathParamsSchema: executionItemParams,
36
+ pathResolver: ({ executionId, itemId }) => `/executions/${executionId}/follow-ups/${itemId}/answer`,
37
+ requestBodySchema: answerFollowUpSchema,
38
+ responsesByStatusCode: { 200: followUpsStepStateSchema, ...errorResponses },
39
+ });
40
+ export const dismissFollowUpContract = defineApiContract({
41
+ method: 'post',
42
+ requestPathParamsSchema: executionItemParams,
43
+ pathResolver: ({ executionId, itemId }) => `/executions/${executionId}/follow-ups/${itemId}/dismiss`,
44
+ requestBodySchema: ContractNoBody,
45
+ responsesByStatusCode: { 200: followUpsStepStateSchema, ...errorResponses },
46
+ });
47
+ //# sourceMappingURL=followUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"followUp.js","sourceRoot":"","sources":["../../src/routes/followUp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,8EAA8E;AAC9E,iFAAiF;AACjF,6EAA6E;AAC7E,4EAA4E;AAC5E,mEAAmE;AACnE,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;AAC/E,MAAM,mBAAmB,GAAG,cAAc,CACxC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC1D,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACpD,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,iBAAiB;IAC1C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,eAAe,WAAW,aAAa;IAC1E,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,GAAG,cAAc,EAAE;CACxF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACpD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,eAAe,WAAW,eAAe,MAAM,OAAO;IACjG,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,cAAc,EAAE;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;IACrD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CACxC,eAAe,WAAW,eAAe,MAAM,QAAQ;IACzD,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,cAAc,EAAE;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;IACtD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CACxC,eAAe,WAAW,eAAe,MAAM,SAAS;IAC1D,iBAAiB,EAAE,oBAAoB;IACvC,qBAAqB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,cAAc,EAAE;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CACxC,eAAe,WAAW,eAAe,MAAM,UAAU;IAC3D,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,cAAc,EAAE;CAC5E,CAAC,CAAA"}