@pasko70/pibo 3.2.7 → 3.4.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 (254) hide show
  1. package/dist/agent-runtime/capabilities.js +5 -0
  2. package/dist/agent-runtime/contract.js +2 -0
  3. package/dist/agent-runtime/routed-session.js +68 -11
  4. package/dist/agent-runtimes/codex-native/adapter.js +4 -1
  5. package/dist/agent-runtimes/codex-native/process.js +1 -1
  6. package/dist/agent-runtimes/codex-native/protocol-version.js +6 -6
  7. package/dist/agent-runtimes/codex-native/thread.js +26 -4
  8. package/dist/agent-runtimes/omp/adapter.js +1 -0
  9. package/dist/agent-runtimes/omp/process.js +23 -3
  10. package/dist/agent-runtimes/omp/protocol-version.js +2 -0
  11. package/dist/agent-runtimes/pi/adapter.js +5 -1
  12. package/dist/agent-runtimes/pi/model-catalog.js +2 -2
  13. package/dist/agent-runtimes/pi/routed-session.js +53 -5
  14. package/dist/agent-runtimes/pi/runtime.js +6 -3
  15. package/dist/apps/chat/chat-api-routes.js +12 -38
  16. package/dist/apps/chat/chat-request-normalizers.js +15 -50
  17. package/dist/apps/chat/data/legacy-project-migration.js +492 -0
  18. package/dist/apps/chat/data/room-service.js +2 -2
  19. package/dist/apps/chat/data/workflow-session-model.js +1 -0
  20. package/dist/apps/chat/data/workflow-session-service.js +352 -0
  21. package/dist/apps/chat/rooms.js +1 -1
  22. package/dist/apps/chat/session-metadata.js +30 -0
  23. package/dist/apps/chat/trace.js +15 -2
  24. package/dist/apps/chat/types/rooms.js +30 -0
  25. package/dist/apps/chat/web-app.js +355 -651
  26. package/dist/apps/chat/workflow-catalog.js +18 -18
  27. package/dist/apps/chat/{project-workflow-human-actions.js → workflow-human-actions.js} +14 -14
  28. package/dist/apps/chat/workflow-manual-trigger-runtime.js +5 -1
  29. package/dist/apps/chat/workflow-persistence.js +20 -28
  30. package/dist/apps/chat/{project-workflow-sessions.js → workflow-sessions.js} +18 -17
  31. package/dist/apps/chat-ui/assets/{dist-ENXYFYda.js → dist-AhtdAETR.js} +1 -1
  32. package/dist/apps/chat-ui/assets/{dist-CGgUuVB6.js → dist-Bk_L1qbJ.js} +1 -1
  33. package/dist/apps/chat-ui/assets/{dist-DG6T1maU.js → dist-Dyp6sLQn.js} +1 -1
  34. package/dist/apps/chat-ui/assets/{dist-CFtZTGHa.js → dist-jVaiGXFD.js} +1 -1
  35. package/dist/apps/chat-ui/assets/{dist-BikaGikn.js → dist-t25moyJS.js} +1 -1
  36. package/dist/apps/chat-ui/assets/index-CZjNw-aK.js +228 -0
  37. package/dist/apps/chat-ui/assets/index-CcEjFITM.css +1 -0
  38. package/dist/apps/chat-ui/index.html +2 -2
  39. package/dist/apps/chat-vscode-web/assets/index-Spj6M0tn.js +43 -0
  40. package/dist/apps/chat-vscode-web/index.html +1 -1
  41. package/dist/compute/pool/cli.js +1 -1
  42. package/dist/compute/pool/seeds.js +2 -3
  43. package/dist/config/config.js +1 -1
  44. package/dist/core/session-router.js +19 -10
  45. package/dist/debug/agents.js +9 -3
  46. package/dist/plugins/builtin.js +2 -0
  47. package/dist/plugins/registry.js +1 -0
  48. package/dist/previews/cli.js +154 -79
  49. package/dist/previews/compute-worker.js +37 -0
  50. package/dist/previews/config.js +2 -1
  51. package/dist/previews/migrations/session-ownership.js +7 -0
  52. package/dist/previews/proxy.js +4 -2
  53. package/dist/previews/public-setup.js +108 -0
  54. package/dist/previews/store.js +20 -13
  55. package/dist/previews/web-app.js +12 -2
  56. package/dist/providers/openai-gpt56.js +41 -3
  57. package/dist/sessions/workflow-session-kind.js +0 -3
  58. package/dist/subagents/context.js +2 -2
  59. package/dist/subagents/observation-query.js +49 -6
  60. package/dist/subagents/observation-text-regex.js +124 -0
  61. package/dist/subagents/tool.js +3 -2
  62. package/dist/tools/hashline.js +64 -0
  63. package/npm-shrinkwrap.json +786 -284
  64. package/package.json +11 -6
  65. package/packages/workflows/README.md +21 -0
  66. package/packages/workflows/dist/api/index.d.ts +48 -0
  67. package/packages/workflows/dist/api/index.d.ts.map +1 -0
  68. package/packages/workflows/dist/api/index.js +96 -0
  69. package/packages/workflows/dist/api/index.js.map +1 -0
  70. package/packages/workflows/dist/definition-hash.d.ts +4 -0
  71. package/packages/workflows/dist/definition-hash.d.ts.map +1 -0
  72. package/packages/workflows/dist/definition-hash.js +27 -0
  73. package/packages/workflows/dist/definition-hash.js.map +1 -0
  74. package/packages/workflows/dist/fixtures/index.d.ts +39 -0
  75. package/packages/workflows/dist/fixtures/index.d.ts.map +1 -0
  76. package/packages/workflows/dist/fixtures/index.js +608 -0
  77. package/packages/workflows/dist/fixtures/index.js.map +1 -0
  78. package/packages/workflows/dist/index.d.ts +16 -0
  79. package/packages/workflows/dist/index.d.ts.map +1 -0
  80. package/packages/workflows/dist/index.js +10 -0
  81. package/packages/workflows/dist/index.js.map +1 -0
  82. package/packages/workflows/dist/inspection/index.d.ts +47 -0
  83. package/packages/workflows/dist/inspection/index.d.ts.map +1 -0
  84. package/packages/workflows/dist/inspection/index.js +131 -0
  85. package/packages/workflows/dist/inspection/index.js.map +1 -0
  86. package/packages/workflows/dist/registry/index.d.ts +30 -0
  87. package/packages/workflows/dist/registry/index.d.ts.map +1 -0
  88. package/packages/workflows/dist/registry/index.js +161 -0
  89. package/packages/workflows/dist/registry/index.js.map +1 -0
  90. package/packages/workflows/dist/runtime/adapter-node.d.ts +28 -0
  91. package/packages/workflows/dist/runtime/adapter-node.d.ts.map +1 -0
  92. package/packages/workflows/dist/runtime/adapter-node.js +172 -0
  93. package/packages/workflows/dist/runtime/adapter-node.js.map +1 -0
  94. package/packages/workflows/dist/runtime/agent-node.d.ts +32 -0
  95. package/packages/workflows/dist/runtime/agent-node.d.ts.map +1 -0
  96. package/packages/workflows/dist/runtime/agent-node.js +231 -0
  97. package/packages/workflows/dist/runtime/agent-node.js.map +1 -0
  98. package/packages/workflows/dist/runtime/agent-runtime.d.ts +25 -0
  99. package/packages/workflows/dist/runtime/agent-runtime.d.ts.map +1 -0
  100. package/packages/workflows/dist/runtime/agent-runtime.js +111 -0
  101. package/packages/workflows/dist/runtime/agent-runtime.js.map +1 -0
  102. package/packages/workflows/dist/runtime/code-node.d.ts +31 -0
  103. package/packages/workflows/dist/runtime/code-node.d.ts.map +1 -0
  104. package/packages/workflows/dist/runtime/code-node.js +223 -0
  105. package/packages/workflows/dist/runtime/code-node.js.map +1 -0
  106. package/packages/workflows/dist/runtime/dispatch-failures.d.ts +36 -0
  107. package/packages/workflows/dist/runtime/dispatch-failures.d.ts.map +1 -0
  108. package/packages/workflows/dist/runtime/dispatch-failures.js +80 -0
  109. package/packages/workflows/dist/runtime/dispatch-failures.js.map +1 -0
  110. package/packages/workflows/dist/runtime/edge-payloads.d.ts +3 -0
  111. package/packages/workflows/dist/runtime/edge-payloads.d.ts.map +1 -0
  112. package/packages/workflows/dist/runtime/edge-payloads.js +11 -0
  113. package/packages/workflows/dist/runtime/edge-payloads.js.map +1 -0
  114. package/packages/workflows/dist/runtime/edge-transfer.d.ts +39 -0
  115. package/packages/workflows/dist/runtime/edge-transfer.d.ts.map +1 -0
  116. package/packages/workflows/dist/runtime/edge-transfer.js +356 -0
  117. package/packages/workflows/dist/runtime/edge-transfer.js.map +1 -0
  118. package/packages/workflows/dist/runtime/human-action.d.ts +43 -0
  119. package/packages/workflows/dist/runtime/human-action.d.ts.map +1 -0
  120. package/packages/workflows/dist/runtime/human-action.js +231 -0
  121. package/packages/workflows/dist/runtime/human-action.js.map +1 -0
  122. package/packages/workflows/dist/runtime/human-node.d.ts +27 -0
  123. package/packages/workflows/dist/runtime/human-node.d.ts.map +1 -0
  124. package/packages/workflows/dist/runtime/human-node.js +126 -0
  125. package/packages/workflows/dist/runtime/human-node.js.map +1 -0
  126. package/packages/workflows/dist/runtime/ids.d.ts +2 -0
  127. package/packages/workflows/dist/runtime/ids.d.ts.map +1 -0
  128. package/packages/workflows/dist/runtime/ids.js +4 -0
  129. package/packages/workflows/dist/runtime/ids.js.map +1 -0
  130. package/packages/workflows/dist/runtime/index.d.ts +23 -0
  131. package/packages/workflows/dist/runtime/index.d.ts.map +1 -0
  132. package/packages/workflows/dist/runtime/index.js +12 -0
  133. package/packages/workflows/dist/runtime/index.js.map +1 -0
  134. package/packages/workflows/dist/runtime/manual-trigger.d.ts +51 -0
  135. package/packages/workflows/dist/runtime/manual-trigger.d.ts.map +1 -0
  136. package/packages/workflows/dist/runtime/manual-trigger.js +403 -0
  137. package/packages/workflows/dist/runtime/manual-trigger.js.map +1 -0
  138. package/packages/workflows/dist/runtime/nested-workflow-node.d.ts +48 -0
  139. package/packages/workflows/dist/runtime/nested-workflow-node.d.ts.map +1 -0
  140. package/packages/workflows/dist/runtime/nested-workflow-node.js +246 -0
  141. package/packages/workflows/dist/runtime/nested-workflow-node.js.map +1 -0
  142. package/packages/workflows/dist/runtime/one-node-agent.d.ts +34 -0
  143. package/packages/workflows/dist/runtime/one-node-agent.d.ts.map +1 -0
  144. package/packages/workflows/dist/runtime/one-node-agent.js +334 -0
  145. package/packages/workflows/dist/runtime/one-node-agent.js.map +1 -0
  146. package/packages/workflows/dist/runtime/persistence.d.ts +9 -0
  147. package/packages/workflows/dist/runtime/persistence.d.ts.map +1 -0
  148. package/packages/workflows/dist/runtime/persistence.js +67 -0
  149. package/packages/workflows/dist/runtime/persistence.js.map +1 -0
  150. package/packages/workflows/dist/runtime/pibo-routing.d.ts +126 -0
  151. package/packages/workflows/dist/runtime/pibo-routing.d.ts.map +1 -0
  152. package/packages/workflows/dist/runtime/pibo-routing.js +96 -0
  153. package/packages/workflows/dist/runtime/pibo-routing.js.map +1 -0
  154. package/packages/workflows/dist/runtime/prompts.d.ts +20 -0
  155. package/packages/workflows/dist/runtime/prompts.d.ts.map +1 -0
  156. package/packages/workflows/dist/runtime/prompts.js +235 -0
  157. package/packages/workflows/dist/runtime/prompts.js.map +1 -0
  158. package/packages/workflows/dist/runtime/retry.d.ts +35 -0
  159. package/packages/workflows/dist/runtime/retry.d.ts.map +1 -0
  160. package/packages/workflows/dist/runtime/retry.js +80 -0
  161. package/packages/workflows/dist/runtime/retry.js.map +1 -0
  162. package/packages/workflows/dist/runtime/state.d.ts +14 -0
  163. package/packages/workflows/dist/runtime/state.d.ts.map +1 -0
  164. package/packages/workflows/dist/runtime/state.js +139 -0
  165. package/packages/workflows/dist/runtime/state.js.map +1 -0
  166. package/packages/workflows/dist/runtime/time.d.ts +6 -0
  167. package/packages/workflows/dist/runtime/time.d.ts.map +1 -0
  168. package/packages/workflows/dist/runtime/time.js +42 -0
  169. package/packages/workflows/dist/runtime/time.js.map +1 -0
  170. package/packages/workflows/dist/store/catalog-records.d.ts +18 -0
  171. package/packages/workflows/dist/store/catalog-records.d.ts.map +1 -0
  172. package/packages/workflows/dist/store/catalog-records.js +59 -0
  173. package/packages/workflows/dist/store/catalog-records.js.map +1 -0
  174. package/packages/workflows/dist/store/contracts.d.ts +149 -0
  175. package/packages/workflows/dist/store/contracts.d.ts.map +1 -0
  176. package/packages/workflows/dist/store/contracts.js +2 -0
  177. package/packages/workflows/dist/store/contracts.js.map +1 -0
  178. package/packages/workflows/dist/store/draft-writes.d.ts +7 -0
  179. package/packages/workflows/dist/store/draft-writes.d.ts.map +1 -0
  180. package/packages/workflows/dist/store/draft-writes.js +18 -0
  181. package/packages/workflows/dist/store/draft-writes.js.map +1 -0
  182. package/packages/workflows/dist/store/index.d.ts +55 -0
  183. package/packages/workflows/dist/store/index.d.ts.map +1 -0
  184. package/packages/workflows/dist/store/index.js +650 -0
  185. package/packages/workflows/dist/store/index.js.map +1 -0
  186. package/packages/workflows/dist/store/list-query.d.ts +13 -0
  187. package/packages/workflows/dist/store/list-query.d.ts.map +1 -0
  188. package/packages/workflows/dist/store/list-query.js +20 -0
  189. package/packages/workflows/dist/store/list-query.js.map +1 -0
  190. package/packages/workflows/dist/store/row-mappers.d.ts +206 -0
  191. package/packages/workflows/dist/store/row-mappers.d.ts.map +1 -0
  192. package/packages/workflows/dist/store/row-mappers.js +262 -0
  193. package/packages/workflows/dist/store/row-mappers.js.map +1 -0
  194. package/packages/workflows/dist/store/schema.d.ts +13 -0
  195. package/packages/workflows/dist/store/schema.d.ts.map +1 -0
  196. package/packages/workflows/dist/store/schema.js +458 -0
  197. package/packages/workflows/dist/store/schema.js.map +1 -0
  198. package/packages/workflows/dist/store/write-values.d.ts +18 -0
  199. package/packages/workflows/dist/store/write-values.d.ts.map +1 -0
  200. package/packages/workflows/dist/store/write-values.js +227 -0
  201. package/packages/workflows/dist/store/write-values.js.map +1 -0
  202. package/packages/workflows/dist/types/index.d.ts +1202 -0
  203. package/packages/workflows/dist/types/index.d.ts.map +1 -0
  204. package/packages/workflows/dist/types/index.js +8 -0
  205. package/packages/workflows/dist/types/index.js.map +1 -0
  206. package/packages/workflows/dist/validation/diagnostics.d.ts +27 -0
  207. package/packages/workflows/dist/validation/diagnostics.d.ts.map +1 -0
  208. package/packages/workflows/dist/validation/diagnostics.js +104 -0
  209. package/packages/workflows/dist/validation/diagnostics.js.map +1 -0
  210. package/packages/workflows/dist/validation/graph-cycles.d.ts +4 -0
  211. package/packages/workflows/dist/validation/graph-cycles.d.ts.map +1 -0
  212. package/packages/workflows/dist/validation/graph-cycles.js +130 -0
  213. package/packages/workflows/dist/validation/graph-cycles.js.map +1 -0
  214. package/packages/workflows/dist/validation/graph-edges.d.ts +5 -0
  215. package/packages/workflows/dist/validation/graph-edges.d.ts.map +1 -0
  216. package/packages/workflows/dist/validation/graph-edges.js +48 -0
  217. package/packages/workflows/dist/validation/graph-edges.js.map +1 -0
  218. package/packages/workflows/dist/validation/graph-ports.d.ts +5 -0
  219. package/packages/workflows/dist/validation/graph-ports.d.ts.map +1 -0
  220. package/packages/workflows/dist/validation/graph-ports.js +55 -0
  221. package/packages/workflows/dist/validation/graph-ports.js.map +1 -0
  222. package/packages/workflows/dist/validation/index.d.ts +18 -0
  223. package/packages/workflows/dist/validation/index.d.ts.map +1 -0
  224. package/packages/workflows/dist/validation/index.js +175 -0
  225. package/packages/workflows/dist/validation/index.js.map +1 -0
  226. package/packages/workflows/dist/validation/json-schema.d.ts +12 -0
  227. package/packages/workflows/dist/validation/json-schema.d.ts.map +1 -0
  228. package/packages/workflows/dist/validation/json-schema.js +556 -0
  229. package/packages/workflows/dist/validation/json-schema.js.map +1 -0
  230. package/packages/workflows/dist/validation/registry-refs.d.ts +21 -0
  231. package/packages/workflows/dist/validation/registry-refs.d.ts.map +1 -0
  232. package/packages/workflows/dist/validation/registry-refs.js +283 -0
  233. package/packages/workflows/dist/validation/registry-refs.js.map +1 -0
  234. package/packages/workflows/dist/validation/retry-policy.d.ts +3 -0
  235. package/packages/workflows/dist/validation/retry-policy.d.ts.map +1 -0
  236. package/packages/workflows/dist/validation/retry-policy.js +114 -0
  237. package/packages/workflows/dist/validation/retry-policy.js.map +1 -0
  238. package/packages/workflows/dist/validation/schema-declarations.d.ts +5 -0
  239. package/packages/workflows/dist/validation/schema-declarations.d.ts.map +1 -0
  240. package/packages/workflows/dist/validation/schema-declarations.js +36 -0
  241. package/packages/workflows/dist/validation/schema-declarations.js.map +1 -0
  242. package/packages/workflows/dist/validation/state-access.d.ts +4 -0
  243. package/packages/workflows/dist/validation/state-access.d.ts.map +1 -0
  244. package/packages/workflows/dist/validation/state-access.js +121 -0
  245. package/packages/workflows/dist/validation/state-access.js.map +1 -0
  246. package/packages/workflows/dist/xstate/index.d.ts +73 -0
  247. package/packages/workflows/dist/xstate/index.d.ts.map +1 -0
  248. package/packages/workflows/dist/xstate/index.js +728 -0
  249. package/packages/workflows/dist/xstate/index.js.map +1 -0
  250. package/packages/workflows/package.json +23 -0
  251. package/dist/apps/chat/data/project-service.js +0 -1029
  252. package/dist/apps/chat-ui/assets/index-BwT5grLv.css +0 -1
  253. package/dist/apps/chat-ui/assets/index-PTJanD3E.js +0 -228
  254. package/dist/apps/chat-vscode-web/assets/index-D1bpAUkR.js +0 -43
@@ -0,0 +1,556 @@
1
+ const SUPPORTED_SCHEMA_TYPES = new Set([
2
+ "string",
3
+ "number",
4
+ "integer",
5
+ "boolean",
6
+ "object",
7
+ "array",
8
+ "null",
9
+ ]);
10
+ const SUPPORTED_SCHEMA_KEYS = new Set([
11
+ "type",
12
+ "title",
13
+ "description",
14
+ "enum",
15
+ "const",
16
+ "default",
17
+ "properties",
18
+ "required",
19
+ "additionalProperties",
20
+ "items",
21
+ "anyOf",
22
+ "oneOf",
23
+ "allOf",
24
+ "$defs",
25
+ "$ref",
26
+ ]);
27
+ export function validateJsonSchemaSubset(schema, options = {}) {
28
+ const diagnostics = [];
29
+ const context = {
30
+ rootSchema: schema,
31
+ diagnostics,
32
+ seenRefs: new Set(),
33
+ };
34
+ validateSchemaNode(schema, options.path ?? "$.schema", {
35
+ context,
36
+ root: true,
37
+ requireObjectRoot: options.requireObjectRoot ?? true,
38
+ });
39
+ return diagnostics;
40
+ }
41
+ export function validateJsonValueAgainstSchema(schema, value, options = {}) {
42
+ const diagnostics = [];
43
+ const context = {
44
+ rootSchema: schema,
45
+ diagnostics,
46
+ seenRefs: new Set(),
47
+ };
48
+ validateValueNode(schema, value, options.path ?? "$.value", context);
49
+ return diagnostics;
50
+ }
51
+ function validateSchemaNode(value, path, options) {
52
+ const { context, root, requireObjectRoot } = options;
53
+ if (!isRecord(value)) {
54
+ addDiagnostic(context, {
55
+ code: "WorkflowInterfaceError.schemaNotObject",
56
+ message: "JSON schema must be an object in the V1 Structured Outputs subset.",
57
+ path,
58
+ hint: "Use an object JSON Schema with a supported type, properties, and required fields.",
59
+ });
60
+ return;
61
+ }
62
+ const schema = value;
63
+ for (const key of Object.keys(schema)) {
64
+ if (!SUPPORTED_SCHEMA_KEYS.has(key)) {
65
+ addDiagnostic(context, {
66
+ code: "WorkflowInterfaceError.unsupportedSchemaKeyword",
67
+ message: `JSON Schema keyword '${key}' is not supported by the V1 Structured Outputs subset.`,
68
+ path: `${path}.${key}`,
69
+ hint: "Remove the keyword or model the contract with type, properties, items, enum, const, anyOf, $defs, or $ref.",
70
+ });
71
+ }
72
+ }
73
+ if (schema.oneOf !== undefined) {
74
+ addDiagnostic(context, {
75
+ code: "WorkflowInterfaceError.unsupportedOneOf",
76
+ message: "oneOf is not supported by the V1 Structured Outputs subset.",
77
+ path: `${path}.oneOf`,
78
+ hint: "Use anyOf for supported alternatives, or split the contract into explicit adapter/workflow steps.",
79
+ });
80
+ }
81
+ if (schema.allOf !== undefined) {
82
+ addDiagnostic(context, {
83
+ code: "WorkflowInterfaceError.unsupportedAllOf",
84
+ message: "allOf is not supported by the V1 Structured Outputs subset.",
85
+ path: `${path}.allOf`,
86
+ hint: "Flatten the schema into one object with explicit properties and required fields.",
87
+ });
88
+ }
89
+ if (schema.$defs !== undefined) {
90
+ if (!isRecord(schema.$defs)) {
91
+ addDiagnostic(context, {
92
+ code: "WorkflowInterfaceError.invalidDefs",
93
+ message: "$defs must be an object keyed by local definition name.",
94
+ path: `${path}.$defs`,
95
+ hint: "Use $defs: { Name: { type: 'object', ... } } for reusable schemas.",
96
+ });
97
+ }
98
+ else {
99
+ for (const [defName, defSchema] of Object.entries(schema.$defs)) {
100
+ validateSchemaNode(defSchema, `${path}.$defs.${defName}`, {
101
+ context,
102
+ root: false,
103
+ requireObjectRoot: false,
104
+ });
105
+ }
106
+ }
107
+ }
108
+ if (schema.$ref !== undefined) {
109
+ if (typeof schema.$ref !== "string") {
110
+ addDiagnostic(context, {
111
+ code: "WorkflowInterfaceError.invalidRef",
112
+ message: "$ref must be a string local reference.",
113
+ path: `${path}.$ref`,
114
+ hint: "Use local references such as '#/$defs/MyObject'.",
115
+ });
116
+ }
117
+ else {
118
+ const refTarget = resolveLocalRef(context.rootSchema, schema.$ref);
119
+ if (!refTarget) {
120
+ addDiagnostic(context, {
121
+ code: "WorkflowInterfaceError.unresolvedRef",
122
+ message: `JSON Schema reference '${schema.$ref}' could not be resolved.`,
123
+ path: `${path}.$ref`,
124
+ hint: "Only local $defs references are supported in V1, for example '#/$defs/MyObject'.",
125
+ });
126
+ }
127
+ else if (!context.seenRefs.has(schema.$ref)) {
128
+ context.seenRefs.add(schema.$ref);
129
+ validateSchemaNode(refTarget, `${path}.$ref(${schema.$ref})`, {
130
+ context,
131
+ root,
132
+ requireObjectRoot,
133
+ });
134
+ context.seenRefs.delete(schema.$ref);
135
+ }
136
+ }
137
+ }
138
+ if (schema.type === undefined && schema.$ref === undefined && schema.anyOf === undefined) {
139
+ addDiagnostic(context, {
140
+ code: "WorkflowInterfaceError.schemaTypeMissing",
141
+ message: "JSON schemas must declare a supported type unless they are local $ref or anyOf wrappers.",
142
+ path: `${path}.type`,
143
+ hint: "Add type: 'object', 'array', 'string', 'number', 'integer', 'boolean', or 'null'.",
144
+ });
145
+ }
146
+ const schemaTypes = validateSchemaType(schema, path, context);
147
+ if (root && schema.anyOf !== undefined) {
148
+ addDiagnostic(context, {
149
+ code: "WorkflowInterfaceError.rootAnyOf",
150
+ message: "Root anyOf is not supported for workflow structured output schemas.",
151
+ path: `${path}.anyOf`,
152
+ hint: "Use a root object and place anyOf inside a property or $defs entry.",
153
+ });
154
+ }
155
+ if (schema.anyOf !== undefined) {
156
+ if (!Array.isArray(schema.anyOf) || schema.anyOf.length === 0) {
157
+ addDiagnostic(context, {
158
+ code: "WorkflowInterfaceError.invalidAnyOf",
159
+ message: "anyOf must be a non-empty array of schema objects.",
160
+ path: `${path}.anyOf`,
161
+ hint: "Provide one or more supported schema alternatives.",
162
+ });
163
+ }
164
+ else {
165
+ schema.anyOf.forEach((item, index) => {
166
+ validateSchemaNode(item, `${path}.anyOf.${index}`, {
167
+ context,
168
+ root: false,
169
+ requireObjectRoot: false,
170
+ });
171
+ });
172
+ }
173
+ }
174
+ if (root && requireObjectRoot && !schema.$ref && !schemaTypes.includes("object")) {
175
+ addDiagnostic(context, {
176
+ code: "WorkflowInterfaceError.rootMustBeObject",
177
+ message: "Structured workflow JSON schemas must have an object root in V1.",
178
+ path: `${path}.type`,
179
+ hint: "Wrap scalar or array values in an object property, e.g. { type: 'object', properties: { value: ... }, required: ['value'], additionalProperties: false }.",
180
+ });
181
+ }
182
+ const hasObjectShape = schemaTypes.includes("object") || schema.properties !== undefined || schema.required !== undefined || schema.additionalProperties !== undefined;
183
+ if (hasObjectShape) {
184
+ validateObjectSchema(schema, path, context);
185
+ }
186
+ if (schemaTypes.includes("array")) {
187
+ if (schema.items === undefined) {
188
+ addDiagnostic(context, {
189
+ code: "WorkflowInterfaceError.arrayMissingItems",
190
+ message: "Array schemas must declare an items schema.",
191
+ path: `${path}.items`,
192
+ hint: "Add items with another supported V1 schema.",
193
+ });
194
+ }
195
+ else {
196
+ validateSchemaNode(schema.items, `${path}.items`, {
197
+ context,
198
+ root: false,
199
+ requireObjectRoot: false,
200
+ });
201
+ }
202
+ }
203
+ if (schema.enum !== undefined && !Array.isArray(schema.enum)) {
204
+ addDiagnostic(context, {
205
+ code: "WorkflowInterfaceError.invalidEnum",
206
+ message: "enum must be an array of JSON values.",
207
+ path: `${path}.enum`,
208
+ hint: "Use enum: ['one', 'two'] or remove the enum constraint.",
209
+ });
210
+ }
211
+ }
212
+ function validateSchemaType(schema, path, context) {
213
+ if (schema.type === undefined) {
214
+ return [];
215
+ }
216
+ const values = Array.isArray(schema.type) ? schema.type : [schema.type];
217
+ if (values.length === 0) {
218
+ addDiagnostic(context, {
219
+ code: "WorkflowInterfaceError.emptyType",
220
+ message: "Schema type arrays must include at least one supported type.",
221
+ path: `${path}.type`,
222
+ hint: "Use a supported type such as 'object', or a nullable pair such as ['string', 'null'].",
223
+ });
224
+ return [];
225
+ }
226
+ const seen = new Set();
227
+ const validTypes = [];
228
+ values.forEach((typeName, index) => {
229
+ if (!SUPPORTED_SCHEMA_TYPES.has(typeName)) {
230
+ addDiagnostic(context, {
231
+ code: "WorkflowInterfaceError.unsupportedSchemaType",
232
+ message: `Schema type '${String(typeName)}' is not supported by the V1 Structured Outputs subset.`,
233
+ path: Array.isArray(schema.type) ? `${path}.type.${index}` : `${path}.type`,
234
+ hint: "Use one of string, number, integer, boolean, object, array, or null.",
235
+ });
236
+ return;
237
+ }
238
+ if (seen.has(typeName)) {
239
+ addDiagnostic(context, {
240
+ code: "WorkflowInterfaceError.duplicateSchemaType",
241
+ message: `Schema type '${typeName}' is duplicated.`,
242
+ path: Array.isArray(schema.type) ? `${path}.type.${index}` : `${path}.type`,
243
+ hint: "List each schema type only once.",
244
+ });
245
+ return;
246
+ }
247
+ seen.add(typeName);
248
+ validTypes.push(typeName);
249
+ });
250
+ return validTypes;
251
+ }
252
+ function validateObjectSchema(schema, path, context) {
253
+ if (schema.additionalProperties !== false) {
254
+ addDiagnostic(context, {
255
+ code: "WorkflowInterfaceError.objectAdditionalProperties",
256
+ message: "Object schemas must set additionalProperties: false in the V1 Structured Outputs subset.",
257
+ path: `${path}.additionalProperties`,
258
+ hint: "Add additionalProperties: false to every object schema.",
259
+ });
260
+ }
261
+ if (schema.properties !== undefined && !isRecord(schema.properties)) {
262
+ addDiagnostic(context, {
263
+ code: "WorkflowInterfaceError.invalidProperties",
264
+ message: "Object schema properties must be an object.",
265
+ path: `${path}.properties`,
266
+ hint: "Use properties: { fieldName: { type: 'string' } }.",
267
+ });
268
+ return;
269
+ }
270
+ const propertyEntries = Object.entries(schema.properties ?? {});
271
+ if (propertyEntries.length > 0 && !Array.isArray(schema.required)) {
272
+ addDiagnostic(context, {
273
+ code: "WorkflowInterfaceError.objectRequiredMissing",
274
+ message: "Object schemas must list every property in required.",
275
+ path: `${path}.required`,
276
+ hint: "Set required to exactly the object property names; use nullable types for optional semantics.",
277
+ });
278
+ }
279
+ const required = Array.isArray(schema.required) ? schema.required : [];
280
+ const requiredSet = new Set(required);
281
+ for (const [propertyName, propertySchema] of propertyEntries) {
282
+ if (!requiredSet.has(propertyName)) {
283
+ addDiagnostic(context, {
284
+ code: "WorkflowInterfaceError.objectPropertyNotRequired",
285
+ message: `Object property '${propertyName}' must be listed in required.`,
286
+ path: `${path}.required`,
287
+ hint: "Structured Outputs requires every object field to be required; use a union with null for nullable fields.",
288
+ });
289
+ }
290
+ validateSchemaNode(propertySchema, `${path}.properties.${propertyName}`, {
291
+ context,
292
+ root: false,
293
+ requireObjectRoot: false,
294
+ });
295
+ }
296
+ for (const requiredName of required) {
297
+ if (typeof requiredName !== "string") {
298
+ addDiagnostic(context, {
299
+ code: "WorkflowInterfaceError.invalidRequiredEntry",
300
+ message: "required entries must be strings.",
301
+ path: `${path}.required`,
302
+ hint: "List required property names as strings.",
303
+ });
304
+ continue;
305
+ }
306
+ if (schema.properties && !Object.hasOwn(schema.properties, requiredName)) {
307
+ addDiagnostic(context, {
308
+ code: "WorkflowInterfaceError.requiredUnknownProperty",
309
+ message: `Required property '${requiredName}' is not declared in properties.`,
310
+ path: `${path}.required`,
311
+ hint: "Remove the unknown required name or add a matching property schema.",
312
+ });
313
+ }
314
+ }
315
+ }
316
+ function validateValueNode(schema, value, path, context) {
317
+ if (schema.$ref !== undefined) {
318
+ if (typeof schema.$ref !== "string") {
319
+ addValueDiagnostic(context, {
320
+ code: "WorkflowInterfaceError.invalidRef",
321
+ message: "$ref must be a string local reference before a JSON value can be validated.",
322
+ path,
323
+ hint: "Validate the workflow definition before starting execution.",
324
+ });
325
+ return;
326
+ }
327
+ const refTarget = resolveLocalRef(context.rootSchema, schema.$ref);
328
+ if (!refTarget) {
329
+ addValueDiagnostic(context, {
330
+ code: "WorkflowInterfaceError.unresolvedRef",
331
+ message: `JSON Schema reference '${schema.$ref}' could not be resolved before validating the value.`,
332
+ path,
333
+ hint: "Validate the workflow definition before starting execution.",
334
+ });
335
+ return;
336
+ }
337
+ if (context.seenRefs.has(schema.$ref)) {
338
+ return;
339
+ }
340
+ context.seenRefs.add(schema.$ref);
341
+ validateValueNode(refTarget, value, path, context);
342
+ context.seenRefs.delete(schema.$ref);
343
+ return;
344
+ }
345
+ if (schema.anyOf !== undefined) {
346
+ if (!Array.isArray(schema.anyOf) || schema.anyOf.length === 0) {
347
+ addValueDiagnostic(context, {
348
+ code: "WorkflowInterfaceError.invalidAnyOf",
349
+ message: "anyOf must be a non-empty array before a JSON value can be validated.",
350
+ path,
351
+ hint: "Validate the workflow definition before starting execution.",
352
+ });
353
+ return;
354
+ }
355
+ const matchesAnyBranch = schema.anyOf.some((branch) => {
356
+ const branchContext = {
357
+ rootSchema: context.rootSchema,
358
+ diagnostics: [],
359
+ seenRefs: new Set(context.seenRefs),
360
+ };
361
+ validateValueNode(branch, value, path, branchContext);
362
+ return !branchContext.diagnostics.some((diagnostic) => diagnostic.severity === "error");
363
+ });
364
+ if (!matchesAnyBranch) {
365
+ addValueDiagnostic(context, {
366
+ code: "WorkflowInterfaceError.anyOfNoMatch",
367
+ message: "JSON value does not match any allowed anyOf branch.",
368
+ path,
369
+ hint: "Provide a value that matches at least one branch of the port schema.",
370
+ });
371
+ return;
372
+ }
373
+ }
374
+ const schemaTypes = getRuntimeSchemaTypes(schema);
375
+ if (schemaTypes.length > 0 && !schemaTypes.some((typeName) => valueMatchesType(value, typeName))) {
376
+ addValueDiagnostic(context, {
377
+ code: "WorkflowInterfaceError.valueTypeMismatch",
378
+ message: `JSON value does not match schema type ${formatSchemaTypes(schemaTypes)}.`,
379
+ path,
380
+ hint: "Pass a value whose JSON type matches the workflow port schema.",
381
+ });
382
+ return;
383
+ }
384
+ if (schema.const !== undefined && !jsonValuesEqual(value, schema.const)) {
385
+ addValueDiagnostic(context, {
386
+ code: "WorkflowInterfaceError.constMismatch",
387
+ message: "JSON value does not match the schema const value.",
388
+ path,
389
+ hint: "Pass the exact const value required by the workflow port schema.",
390
+ });
391
+ }
392
+ if (schema.enum !== undefined) {
393
+ if (!Array.isArray(schema.enum)) {
394
+ addValueDiagnostic(context, {
395
+ code: "WorkflowInterfaceError.invalidEnum",
396
+ message: "enum must be an array before a JSON value can be validated.",
397
+ path,
398
+ hint: "Validate the workflow definition before starting execution.",
399
+ });
400
+ }
401
+ else if (!schema.enum.some((item) => jsonValuesEqual(value, item))) {
402
+ addValueDiagnostic(context, {
403
+ code: "WorkflowInterfaceError.enumMismatch",
404
+ message: "JSON value does not match any schema enum value.",
405
+ path,
406
+ hint: "Pass one of the values listed in the workflow port schema enum.",
407
+ });
408
+ }
409
+ }
410
+ if (isRecord(value)) {
411
+ validateObjectValue(schema, value, path, context);
412
+ }
413
+ if (Array.isArray(value) && schema.items !== undefined) {
414
+ value.forEach((item, index) => {
415
+ validateValueNode(schema.items, item, `${path}.${index}`, context);
416
+ });
417
+ }
418
+ }
419
+ function validateObjectValue(schema, value, path, context) {
420
+ const properties = isRecord(schema.properties) ? schema.properties : {};
421
+ const required = Array.isArray(schema.required) ? schema.required : [];
422
+ for (const requiredName of required) {
423
+ if (typeof requiredName === "string" && !Object.hasOwn(value, requiredName)) {
424
+ addValueDiagnostic(context, {
425
+ code: "WorkflowInterfaceError.requiredValueMissing",
426
+ message: `Required JSON property '${requiredName}' is missing.`,
427
+ path: `${path}.${requiredName}`,
428
+ hint: "Provide every required field declared by the workflow port schema.",
429
+ });
430
+ }
431
+ }
432
+ for (const [propertyName, propertyValue] of Object.entries(value)) {
433
+ const propertySchema = properties[propertyName];
434
+ if (propertySchema === undefined) {
435
+ if (schema.additionalProperties === false) {
436
+ addValueDiagnostic(context, {
437
+ code: "WorkflowInterfaceError.unexpectedProperty",
438
+ message: `JSON property '${propertyName}' is not allowed by the workflow port schema.`,
439
+ path: `${path}.${propertyName}`,
440
+ hint: "Remove undeclared fields or add them to the schema before execution.",
441
+ });
442
+ }
443
+ continue;
444
+ }
445
+ validateValueNode(propertySchema, propertyValue, `${path}.${propertyName}`, context);
446
+ }
447
+ }
448
+ function getRuntimeSchemaTypes(schema) {
449
+ if (schema.type === undefined) {
450
+ return [];
451
+ }
452
+ const values = Array.isArray(schema.type) ? schema.type : [schema.type];
453
+ return values.filter((typeName) => SUPPORTED_SCHEMA_TYPES.has(typeName));
454
+ }
455
+ function valueMatchesType(value, typeName) {
456
+ switch (typeName) {
457
+ case "string":
458
+ return typeof value === "string";
459
+ case "number":
460
+ return typeof value === "number" && Number.isFinite(value);
461
+ case "integer":
462
+ return typeof value === "number" && Number.isInteger(value);
463
+ case "boolean":
464
+ return typeof value === "boolean";
465
+ case "object":
466
+ return isRecord(value);
467
+ case "array":
468
+ return Array.isArray(value);
469
+ case "null":
470
+ return value === null;
471
+ }
472
+ }
473
+ function formatSchemaTypes(types) {
474
+ return types.length === 1 ? `'${types[0]}'` : `one of ${types.map((typeName) => `'${typeName}'`).join(", ")}`;
475
+ }
476
+ export function semanticJsonSchemasEqual(left, right) {
477
+ return jsonValuesEqual(normalizeSemanticJsonSchema(left), normalizeSemanticJsonSchema(right));
478
+ }
479
+ function normalizeSemanticJsonSchema(value, key) {
480
+ if (Array.isArray(value)) {
481
+ const normalizedItems = value.map((item) => normalizeSemanticJsonSchema(item));
482
+ if (key === "required" || key === "type" || key === "enum" || key === "anyOf") {
483
+ return normalizedItems.sort((left, right) => stableJsonStringify(left).localeCompare(stableJsonStringify(right)));
484
+ }
485
+ return normalizedItems;
486
+ }
487
+ if (isRecord(value)) {
488
+ const normalizedEntries = Object.entries(value)
489
+ .filter(([entryKey]) => entryKey !== "title" && entryKey !== "description" && entryKey !== "default")
490
+ .map(([entryKey, entryValue]) => [entryKey, normalizeSemanticJsonSchema(entryValue, entryKey)])
491
+ .sort(([leftKey], [rightKey]) => leftKey.localeCompare(rightKey));
492
+ return Object.fromEntries(normalizedEntries);
493
+ }
494
+ return value;
495
+ }
496
+ function stableJsonStringify(value) {
497
+ if (Array.isArray(value)) {
498
+ return `[${value.map((item) => stableJsonStringify(item)).join(",")}]`;
499
+ }
500
+ if (isRecord(value)) {
501
+ return `{${Object.keys(value)
502
+ .sort()
503
+ .map((key) => `${JSON.stringify(key)}:${stableJsonStringify(value[key])}`)
504
+ .join(",")}}`;
505
+ }
506
+ return JSON.stringify(value);
507
+ }
508
+ function jsonValuesEqual(left, right) {
509
+ if (left === right) {
510
+ return true;
511
+ }
512
+ if (Array.isArray(left) || Array.isArray(right)) {
513
+ if (!Array.isArray(left) || !Array.isArray(right) || left.length !== right.length) {
514
+ return false;
515
+ }
516
+ return left.every((item, index) => jsonValuesEqual(item, right[index]));
517
+ }
518
+ if (isRecord(left) || isRecord(right)) {
519
+ if (!isRecord(left) || !isRecord(right)) {
520
+ return false;
521
+ }
522
+ const leftKeys = Object.keys(left).sort();
523
+ const rightKeys = Object.keys(right).sort();
524
+ if (leftKeys.length !== rightKeys.length || !leftKeys.every((key, index) => key === rightKeys[index])) {
525
+ return false;
526
+ }
527
+ return leftKeys.every((key) => jsonValuesEqual(left[key], right[key]));
528
+ }
529
+ return false;
530
+ }
531
+ function addValueDiagnostic(context, diagnostic) {
532
+ context.diagnostics.push({
533
+ severity: "error",
534
+ ...diagnostic,
535
+ });
536
+ }
537
+ function resolveLocalRef(rootSchema, ref) {
538
+ if (!ref.startsWith("#/$defs/")) {
539
+ return undefined;
540
+ }
541
+ const name = ref.slice("#/$defs/".length);
542
+ if (name.length === 0) {
543
+ return undefined;
544
+ }
545
+ return rootSchema.$defs?.[name];
546
+ }
547
+ function addDiagnostic(context, diagnostic) {
548
+ context.diagnostics.push({
549
+ severity: "error",
550
+ ...diagnostic,
551
+ });
552
+ }
553
+ function isRecord(value) {
554
+ return typeof value === "object" && value !== null && !Array.isArray(value);
555
+ }
556
+ //# sourceMappingURL=json-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../../src/validation/json-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AdapterRef, GuardRef, WorkflowDiagnostic, WorkflowEdgeDefinition, WorkflowNodeDefinition, WorkflowRegistry } from "../types/index.js";
2
+ export type WorkflowValidationOptions = {
3
+ registry?: Partial<Pick<WorkflowRegistry, "adapters" | "guards" | "handlers" | "profiles" | "promptBuilders" | "humanActions">>;
4
+ };
5
+ export declare function isValidGuardRef(guard: GuardRef | undefined): guard is GuardRef;
6
+ export declare function validateWorkflowEdgeGuardRef(edgeId: string, edge: WorkflowEdgeDefinition, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions): void;
7
+ export declare function validateWorkflowGuardRef(guard: GuardRef, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions, target: Pick<WorkflowDiagnostic, "edgeId"> & {
8
+ path: string;
9
+ diagnosticLabel: string;
10
+ }): void;
11
+ export declare function validateWorkflowAgentNodeRuntimeSelection(nodeId: string, node: WorkflowNodeDefinition, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions): void;
12
+ export declare function validateWorkflowAgentNodePromptBuilderRef(nodeId: string, node: WorkflowNodeDefinition, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions): void;
13
+ export declare function validateWorkflowCodeNodeRef(nodeId: string, node: WorkflowNodeDefinition, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions): void;
14
+ export declare function validateWorkflowAdapterNodeRef(nodeId: string, node: WorkflowNodeDefinition, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions): void;
15
+ export declare function validateWorkflowHumanActionRefs(nodeId: string, node: WorkflowNodeDefinition, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions): void;
16
+ export declare function validateRegisteredAdapterExists(ref: AdapterRef, diagnostics: WorkflowDiagnostic[], options: WorkflowValidationOptions, target: Pick<WorkflowDiagnostic, "nodeId" | "edgeId"> & {
17
+ path: string;
18
+ diagnosticLabel: string;
19
+ }): void;
20
+ export declare function isRegisteredAdapterRef(value: unknown): value is AdapterRef;
21
+ //# sourceMappingURL=registry-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-refs.d.ts","sourceRoot":"","sources":["../../src/validation/registry-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EAER,kBAAkB,EAClB,sBAAsB,EAEtB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC;CACjI,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,IAAI,QAAQ,CAE9E;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CAUN;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,EAClC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACrF,IAAI,CAqCN;AAED,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CAgEN;AAcD,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CA8CN;AAqBD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CAkBN;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CAsBN;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,GACjC,IAAI,CA8CN;AAMD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,UAAU,EACf,WAAW,EAAE,kBAAkB,EAAE,EACjC,OAAO,EAAE,yBAAyB,EAClC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAChG,IAAI,CAeN;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAQ1E"}