@harrylabsj/kiwi 0.6.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 (636) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +150 -0
  3. package/contracts/candidate-agent-dto-1.0.README.md +39 -0
  4. package/contracts/candidate-agent-dto-1.0.schema.json +172 -0
  5. package/contracts/interop/kiwi-buyer-message-send.json +43 -0
  6. package/contracts/interop/knp-data-part-examples.json +243 -0
  7. package/contracts/kiwi-catalog/1.0/agent-record.schema.json +78 -0
  8. package/contracts/kiwi-catalog/1.0/listing-record.schema.json +88 -0
  9. package/contracts/kiwi-catalog/1.0/listing-search-result.schema.json +60 -0
  10. package/contracts/negotiation/1.0/schema.json +501 -0
  11. package/contracts/shopping.negotiation/0.1/capabilities.schema.json +47 -0
  12. package/contracts/shopping.negotiation/0.1/decision.schema.json +120 -0
  13. package/contracts/shopping.negotiation/0.1/policy-result.schema.json +52 -0
  14. package/contracts/shopping.negotiation/0.1/snapshot.schema.json +172 -0
  15. package/dist/a2a/client/client.d.ts +33 -0
  16. package/dist/a2a/client/client.js +161 -0
  17. package/dist/a2a/client/client.js.map +1 -0
  18. package/dist/a2a/client/error.d.ts +35 -0
  19. package/dist/a2a/client/error.js +34 -0
  20. package/dist/a2a/client/error.js.map +1 -0
  21. package/dist/a2a/client/index.d.ts +29 -0
  22. package/dist/a2a/client/index.js +26 -0
  23. package/dist/a2a/client/index.js.map +1 -0
  24. package/dist/a2a/client/jsonrpc.d.ts +49 -0
  25. package/dist/a2a/client/jsonrpc.js +85 -0
  26. package/dist/a2a/client/jsonrpc.js.map +1 -0
  27. package/dist/a2a/client/parse.d.ts +18 -0
  28. package/dist/a2a/client/parse.js +134 -0
  29. package/dist/a2a/client/parse.js.map +1 -0
  30. package/dist/a2a/client/types.d.ts +102 -0
  31. package/dist/a2a/client/types.js +26 -0
  32. package/dist/a2a/client/types.js.map +1 -0
  33. package/dist/a2a/client/url-policy.d.ts +44 -0
  34. package/dist/a2a/client/url-policy.js +242 -0
  35. package/dist/a2a/client/url-policy.js.map +1 -0
  36. package/dist/a2a/negotiate.d.ts +68 -0
  37. package/dist/a2a/negotiate.js +288 -0
  38. package/dist/a2a/negotiate.js.map +1 -0
  39. package/dist/a2a/node.d.ts +37 -0
  40. package/dist/a2a/node.js +155 -0
  41. package/dist/a2a/node.js.map +1 -0
  42. package/dist/a2a/server/auth.d.ts +38 -0
  43. package/dist/a2a/server/auth.js +112 -0
  44. package/dist/a2a/server/auth.js.map +1 -0
  45. package/dist/a2a/server/card.d.ts +19 -0
  46. package/dist/a2a/server/card.js +81 -0
  47. package/dist/a2a/server/card.js.map +1 -0
  48. package/dist/a2a/server/errors.d.ts +109 -0
  49. package/dist/a2a/server/errors.js +178 -0
  50. package/dist/a2a/server/errors.js.map +1 -0
  51. package/dist/a2a/server/handler.d.ts +22 -0
  52. package/dist/a2a/server/handler.js +57 -0
  53. package/dist/a2a/server/handler.js.map +1 -0
  54. package/dist/a2a/server/inbound-message.d.ts +37 -0
  55. package/dist/a2a/server/inbound-message.js +104 -0
  56. package/dist/a2a/server/inbound-message.js.map +1 -0
  57. package/dist/a2a/server/index.d.ts +43 -0
  58. package/dist/a2a/server/index.js +42 -0
  59. package/dist/a2a/server/index.js.map +1 -0
  60. package/dist/a2a/server/merchant-handler.d.ts +69 -0
  61. package/dist/a2a/server/merchant-handler.js +316 -0
  62. package/dist/a2a/server/merchant-handler.js.map +1 -0
  63. package/dist/a2a/server/pipeline.d.ts +69 -0
  64. package/dist/a2a/server/pipeline.js +329 -0
  65. package/dist/a2a/server/pipeline.js.map +1 -0
  66. package/dist/a2a/server/server.d.ts +64 -0
  67. package/dist/a2a/server/server.js +420 -0
  68. package/dist/a2a/server/server.js.map +1 -0
  69. package/dist/a2a/server/task-registry.d.ts +31 -0
  70. package/dist/a2a/server/task-registry.js +67 -0
  71. package/dist/a2a/server/task-registry.js.map +1 -0
  72. package/dist/a2a/server/throttle.d.ts +154 -0
  73. package/dist/a2a/server/throttle.js +289 -0
  74. package/dist/a2a/server/throttle.js.map +1 -0
  75. package/dist/a2a/server/types.d.ts +191 -0
  76. package/dist/a2a/server/types.js +17 -0
  77. package/dist/a2a/server/types.js.map +1 -0
  78. package/dist/a2a/server/ucp.d.ts +49 -0
  79. package/dist/a2a/server/ucp.js +85 -0
  80. package/dist/a2a/server/ucp.js.map +1 -0
  81. package/dist/a2a/task/index.d.ts +24 -0
  82. package/dist/a2a/task/index.js +22 -0
  83. package/dist/a2a/task/index.js.map +1 -0
  84. package/dist/a2a/task/ledger.d.ts +48 -0
  85. package/dist/a2a/task/ledger.js +65 -0
  86. package/dist/a2a/task/ledger.js.map +1 -0
  87. package/dist/a2a/task/poller.d.ts +93 -0
  88. package/dist/a2a/task/poller.js +184 -0
  89. package/dist/a2a/task/poller.js.map +1 -0
  90. package/dist/a2a/task/state.d.ts +72 -0
  91. package/dist/a2a/task/state.js +119 -0
  92. package/dist/a2a/task/state.js.map +1 -0
  93. package/dist/a2a/ucp-agent.d.ts +49 -0
  94. package/dist/a2a/ucp-agent.js +78 -0
  95. package/dist/a2a/ucp-agent.js.map +1 -0
  96. package/dist/agent/agent-db.d.ts +31 -0
  97. package/dist/agent/agent-db.js +91 -0
  98. package/dist/agent/agent-db.js.map +1 -0
  99. package/dist/agent/buyer/buyer-tools.d.ts +70 -0
  100. package/dist/agent/buyer/buyer-tools.js +1353 -0
  101. package/dist/agent/buyer/buyer-tools.js.map +1 -0
  102. package/dist/agent/buyer/ranker.d.ts +53 -0
  103. package/dist/agent/buyer/ranker.js +153 -0
  104. package/dist/agent/buyer/ranker.js.map +1 -0
  105. package/dist/agent/buyer/scheduler.d.ts +58 -0
  106. package/dist/agent/buyer/scheduler.js +317 -0
  107. package/dist/agent/buyer/scheduler.js.map +1 -0
  108. package/dist/agent/buyer/search-loop.d.ts +42 -0
  109. package/dist/agent/buyer/search-loop.js +280 -0
  110. package/dist/agent/buyer/search-loop.js.map +1 -0
  111. package/dist/agent/buyer/task-store.d.ts +178 -0
  112. package/dist/agent/buyer/task-store.js +637 -0
  113. package/dist/agent/buyer/task-store.js.map +1 -0
  114. package/dist/agent/buyer/types.d.ts +222 -0
  115. package/dist/agent/buyer/types.js +124 -0
  116. package/dist/agent/buyer/types.js.map +1 -0
  117. package/dist/agent/chat-tools.d.ts +41 -0
  118. package/dist/agent/chat-tools.js +193 -0
  119. package/dist/agent/chat-tools.js.map +1 -0
  120. package/dist/agent/chat-tui.d.ts +49 -0
  121. package/dist/agent/chat-tui.js +314 -0
  122. package/dist/agent/chat-tui.js.map +1 -0
  123. package/dist/agent/connector/fake-connector.d.ts +50 -0
  124. package/dist/agent/connector/fake-connector.js +138 -0
  125. package/dist/agent/connector/fake-connector.js.map +1 -0
  126. package/dist/agent/connector/http-connector.d.ts +49 -0
  127. package/dist/agent/connector/http-connector.js +208 -0
  128. package/dist/agent/connector/http-connector.js.map +1 -0
  129. package/dist/agent/connector/types.d.ts +103 -0
  130. package/dist/agent/connector/types.js +97 -0
  131. package/dist/agent/connector/types.js.map +1 -0
  132. package/dist/agent/fake-chat-model.d.ts +22 -0
  133. package/dist/agent/fake-chat-model.js +134 -0
  134. package/dist/agent/fake-chat-model.js.map +1 -0
  135. package/dist/agent/kernel.d.ts +258 -0
  136. package/dist/agent/kernel.js +1099 -0
  137. package/dist/agent/kernel.js.map +1 -0
  138. package/dist/agent/memory/schema.d.ts +32 -0
  139. package/dist/agent/memory/schema.js +291 -0
  140. package/dist/agent/memory/schema.js.map +1 -0
  141. package/dist/agent/memory/store.d.ts +193 -0
  142. package/dist/agent/memory/store.js +881 -0
  143. package/dist/agent/memory/store.js.map +1 -0
  144. package/dist/agent/memory/types.d.ts +139 -0
  145. package/dist/agent/memory/types.js +119 -0
  146. package/dist/agent/memory/types.js.map +1 -0
  147. package/dist/agent/memory/vault.d.ts +49 -0
  148. package/dist/agent/memory/vault.js +125 -0
  149. package/dist/agent/memory/vault.js.map +1 -0
  150. package/dist/agent/merchant/action-candidate.d.ts +106 -0
  151. package/dist/agent/merchant/action-candidate.js +241 -0
  152. package/dist/agent/merchant/action-candidate.js.map +1 -0
  153. package/dist/agent/merchant/credential-broker.d.ts +67 -0
  154. package/dist/agent/merchant/credential-broker.js +76 -0
  155. package/dist/agent/merchant/credential-broker.js.map +1 -0
  156. package/dist/agent/merchant/fake-merchant-client.d.ts +47 -0
  157. package/dist/agent/merchant/fake-merchant-client.js +143 -0
  158. package/dist/agent/merchant/fake-merchant-client.js.map +1 -0
  159. package/dist/agent/merchant/merchant-client.d.ts +49 -0
  160. package/dist/agent/merchant/merchant-client.js +186 -0
  161. package/dist/agent/merchant/merchant-client.js.map +1 -0
  162. package/dist/agent/merchant/merchant-tools.d.ts +74 -0
  163. package/dist/agent/merchant/merchant-tools.js +582 -0
  164. package/dist/agent/merchant/merchant-tools.js.map +1 -0
  165. package/dist/agent/merchant/types.d.ts +119 -0
  166. package/dist/agent/merchant/types.js +133 -0
  167. package/dist/agent/merchant/types.js.map +1 -0
  168. package/dist/agent/mode.d.ts +32 -0
  169. package/dist/agent/mode.js +34 -0
  170. package/dist/agent/mode.js.map +1 -0
  171. package/dist/agent/negotiation-chat.d.ts +81 -0
  172. package/dist/agent/negotiation-chat.js +330 -0
  173. package/dist/agent/negotiation-chat.js.map +1 -0
  174. package/dist/agent/session.d.ts +22 -0
  175. package/dist/agent/session.js +164 -0
  176. package/dist/agent/session.js.map +1 -0
  177. package/dist/agent/system-prompt.d.ts +26 -0
  178. package/dist/agent/system-prompt.js +77 -0
  179. package/dist/agent/system-prompt.js.map +1 -0
  180. package/dist/agent/write-gate.d.ts +98 -0
  181. package/dist/agent/write-gate.js +76 -0
  182. package/dist/agent/write-gate.js.map +1 -0
  183. package/dist/cli.d.ts +18 -0
  184. package/dist/cli.js +1139 -0
  185. package/dist/cli.js.map +1 -0
  186. package/dist/commerce/data-source.d.ts +88 -0
  187. package/dist/commerce/data-source.js +25 -0
  188. package/dist/commerce/data-source.js.map +1 -0
  189. package/dist/commerce/erp-source.d.ts +51 -0
  190. package/dist/commerce/erp-source.js +184 -0
  191. package/dist/commerce/erp-source.js.map +1 -0
  192. package/dist/commerce/fake-client.d.ts +167 -0
  193. package/dist/commerce/fake-client.js +549 -0
  194. package/dist/commerce/fake-client.js.map +1 -0
  195. package/dist/commerce/http-client.d.ts +73 -0
  196. package/dist/commerce/http-client.js +284 -0
  197. package/dist/commerce/http-client.js.map +1 -0
  198. package/dist/commerce/local-db-source.d.ts +50 -0
  199. package/dist/commerce/local-db-source.js +162 -0
  200. package/dist/commerce/local-db-source.js.map +1 -0
  201. package/dist/commerce/shopping-cli-source.d.ts +57 -0
  202. package/dist/commerce/shopping-cli-source.js +206 -0
  203. package/dist/commerce/shopping-cli-source.js.map +1 -0
  204. package/dist/commerce/types.d.ts +146 -0
  205. package/dist/commerce/types.js +31 -0
  206. package/dist/commerce/types.js.map +1 -0
  207. package/dist/config/profile.d.ts +122 -0
  208. package/dist/config/profile.js +386 -0
  209. package/dist/config/profile.js.map +1 -0
  210. package/dist/contracts/negotiation-schema.d.ts +28 -0
  211. package/dist/contracts/negotiation-schema.js +101 -0
  212. package/dist/contracts/negotiation-schema.js.map +1 -0
  213. package/dist/contracts/schemas.d.ts +31 -0
  214. package/dist/contracts/schemas.js +122 -0
  215. package/dist/contracts/schemas.js.map +1 -0
  216. package/dist/counterparty/a2a-direct/index.d.ts +41 -0
  217. package/dist/counterparty/a2a-direct/index.js +330 -0
  218. package/dist/counterparty/a2a-direct/index.js.map +1 -0
  219. package/dist/counterparty/channel.d.ts +200 -0
  220. package/dist/counterparty/channel.js +61 -0
  221. package/dist/counterparty/channel.js.map +1 -0
  222. package/dist/counterparty/index.d.ts +28 -0
  223. package/dist/counterparty/index.js +24 -0
  224. package/dist/counterparty/index.js.map +1 -0
  225. package/dist/counterparty/platform-api/index.d.ts +41 -0
  226. package/dist/counterparty/platform-api/index.js +65 -0
  227. package/dist/counterparty/platform-api/index.js.map +1 -0
  228. package/dist/counterparty/registry.d.ts +51 -0
  229. package/dist/counterparty/registry.js +71 -0
  230. package/dist/counterparty/registry.js.map +1 -0
  231. package/dist/counterparty/shopping-cli-hosted/index.d.ts +36 -0
  232. package/dist/counterparty/shopping-cli-hosted/index.js +337 -0
  233. package/dist/counterparty/shopping-cli-hosted/index.js.map +1 -0
  234. package/dist/discovery/agent-card/error.d.ts +28 -0
  235. package/dist/discovery/agent-card/error.js +31 -0
  236. package/dist/discovery/agent-card/error.js.map +1 -0
  237. package/dist/discovery/agent-card/extensions.d.ts +20 -0
  238. package/dist/discovery/agent-card/extensions.js +59 -0
  239. package/dist/discovery/agent-card/extensions.js.map +1 -0
  240. package/dist/discovery/agent-card/index.d.ts +29 -0
  241. package/dist/discovery/agent-card/index.js +38 -0
  242. package/dist/discovery/agent-card/index.js.map +1 -0
  243. package/dist/discovery/agent-card/secrets.d.ts +30 -0
  244. package/dist/discovery/agent-card/secrets.js +240 -0
  245. package/dist/discovery/agent-card/secrets.js.map +1 -0
  246. package/dist/discovery/agent-card/types.d.ts +110 -0
  247. package/dist/discovery/agent-card/types.js +37 -0
  248. package/dist/discovery/agent-card/types.js.map +1 -0
  249. package/dist/discovery/agent-card/validate.d.ts +31 -0
  250. package/dist/discovery/agent-card/validate.js +210 -0
  251. package/dist/discovery/agent-card/validate.js.map +1 -0
  252. package/dist/discovery/capability/error.d.ts +23 -0
  253. package/dist/discovery/capability/error.js +28 -0
  254. package/dist/discovery/capability/error.js.map +1 -0
  255. package/dist/discovery/capability/index.d.ts +21 -0
  256. package/dist/discovery/capability/index.js +21 -0
  257. package/dist/discovery/capability/index.js.map +1 -0
  258. package/dist/discovery/capability/intersect.d.ts +56 -0
  259. package/dist/discovery/capability/intersect.js +137 -0
  260. package/dist/discovery/capability/intersect.js.map +1 -0
  261. package/dist/discovery/catalog-source/errors.d.ts +32 -0
  262. package/dist/discovery/catalog-source/errors.js +41 -0
  263. package/dist/discovery/catalog-source/errors.js.map +1 -0
  264. package/dist/discovery/catalog-source/index.d.ts +30 -0
  265. package/dist/discovery/catalog-source/index.js +29 -0
  266. package/dist/discovery/catalog-source/index.js.map +1 -0
  267. package/dist/discovery/catalog-source/kiwi-record.d.ts +183 -0
  268. package/dist/discovery/catalog-source/kiwi-record.js +72 -0
  269. package/dist/discovery/catalog-source/kiwi-record.js.map +1 -0
  270. package/dist/discovery/catalog-source/kiwi-schema.d.ts +33 -0
  271. package/dist/discovery/catalog-source/kiwi-schema.js +106 -0
  272. package/dist/discovery/catalog-source/kiwi-schema.js.map +1 -0
  273. package/dist/discovery/catalog-source/kiwi-source.d.ts +38 -0
  274. package/dist/discovery/catalog-source/kiwi-source.js +318 -0
  275. package/dist/discovery/catalog-source/kiwi-source.js.map +1 -0
  276. package/dist/discovery/catalog-source/register.d.ts +48 -0
  277. package/dist/discovery/catalog-source/register.js +83 -0
  278. package/dist/discovery/catalog-source/register.js.map +1 -0
  279. package/dist/discovery/catalog-source/schema.d.ts +21 -0
  280. package/dist/discovery/catalog-source/schema.js +63 -0
  281. package/dist/discovery/catalog-source/schema.js.map +1 -0
  282. package/dist/discovery/catalog-source/source.d.ts +45 -0
  283. package/dist/discovery/catalog-source/source.js +197 -0
  284. package/dist/discovery/catalog-source/source.js.map +1 -0
  285. package/dist/discovery/catalog-source/types.d.ts +122 -0
  286. package/dist/discovery/catalog-source/types.js +30 -0
  287. package/dist/discovery/catalog-source/types.js.map +1 -0
  288. package/dist/discovery/index.d.ts +25 -0
  289. package/dist/discovery/index.js +25 -0
  290. package/dist/discovery/index.js.map +1 -0
  291. package/dist/discovery/resolve.d.ts +175 -0
  292. package/dist/discovery/resolve.js +367 -0
  293. package/dist/discovery/resolve.js.map +1 -0
  294. package/dist/discovery/ucp/error.d.ts +25 -0
  295. package/dist/discovery/ucp/error.js +27 -0
  296. package/dist/discovery/ucp/error.js.map +1 -0
  297. package/dist/discovery/ucp/index.d.ts +33 -0
  298. package/dist/discovery/ucp/index.js +28 -0
  299. package/dist/discovery/ucp/index.js.map +1 -0
  300. package/dist/discovery/ucp/intersect.d.ts +148 -0
  301. package/dist/discovery/ucp/intersect.js +312 -0
  302. package/dist/discovery/ucp/intersect.js.map +1 -0
  303. package/dist/discovery/ucp/resolver.d.ts +62 -0
  304. package/dist/discovery/ucp/resolver.js +214 -0
  305. package/dist/discovery/ucp/resolver.js.map +1 -0
  306. package/dist/discovery/ucp/types.d.ts +97 -0
  307. package/dist/discovery/ucp/types.js +103 -0
  308. package/dist/discovery/ucp/types.js.map +1 -0
  309. package/dist/discovery/ucp/validate.d.ts +38 -0
  310. package/dist/discovery/ucp/validate.js +232 -0
  311. package/dist/discovery/ucp/validate.js.map +1 -0
  312. package/dist/discovery/ucp/vendor.d.ts +60 -0
  313. package/dist/discovery/ucp/vendor.js +61 -0
  314. package/dist/discovery/ucp/vendor.js.map +1 -0
  315. package/dist/doctor.d.ts +26 -0
  316. package/dist/doctor.js +113 -0
  317. package/dist/doctor.js.map +1 -0
  318. package/dist/exit-codes.d.ts +26 -0
  319. package/dist/exit-codes.js +27 -0
  320. package/dist/exit-codes.js.map +1 -0
  321. package/dist/fanout/disclosure.d.ts +138 -0
  322. package/dist/fanout/disclosure.js +188 -0
  323. package/dist/fanout/disclosure.js.map +1 -0
  324. package/dist/fanout/index.d.ts +32 -0
  325. package/dist/fanout/index.js +30 -0
  326. package/dist/fanout/index.js.map +1 -0
  327. package/dist/fanout/orchestrator.d.ts +153 -0
  328. package/dist/fanout/orchestrator.js +439 -0
  329. package/dist/fanout/orchestrator.js.map +1 -0
  330. package/dist/fanout/policy.d.ts +128 -0
  331. package/dist/fanout/policy.js +130 -0
  332. package/dist/fanout/policy.js.map +1 -0
  333. package/dist/handoff/acp-commerce.d.ts +58 -0
  334. package/dist/handoff/acp-commerce.js +69 -0
  335. package/dist/handoff/acp-commerce.js.map +1 -0
  336. package/dist/handoff/authorization.d.ts +127 -0
  337. package/dist/handoff/authorization.js +107 -0
  338. package/dist/handoff/authorization.js.map +1 -0
  339. package/dist/handoff/candidate.d.ts +94 -0
  340. package/dist/handoff/candidate.js +172 -0
  341. package/dist/handoff/candidate.js.map +1 -0
  342. package/dist/handoff/channel.d.ts +88 -0
  343. package/dist/handoff/channel.js +189 -0
  344. package/dist/handoff/channel.js.map +1 -0
  345. package/dist/handoff/completion.d.ts +44 -0
  346. package/dist/handoff/completion.js +136 -0
  347. package/dist/handoff/completion.js.map +1 -0
  348. package/dist/handoff/delivery.d.ts +59 -0
  349. package/dist/handoff/delivery.js +185 -0
  350. package/dist/handoff/delivery.js.map +1 -0
  351. package/dist/handoff/destination.d.ts +39 -0
  352. package/dist/handoff/destination.js +99 -0
  353. package/dist/handoff/destination.js.map +1 -0
  354. package/dist/handoff/errors.d.ts +34 -0
  355. package/dist/handoff/errors.js +47 -0
  356. package/dist/handoff/errors.js.map +1 -0
  357. package/dist/handoff/idempotency.d.ts +51 -0
  358. package/dist/handoff/idempotency.js +168 -0
  359. package/dist/handoff/idempotency.js.map +1 -0
  360. package/dist/handoff/index.d.ts +46 -0
  361. package/dist/handoff/index.js +48 -0
  362. package/dist/handoff/index.js.map +1 -0
  363. package/dist/handoff/ledger.d.ts +94 -0
  364. package/dist/handoff/ledger.js +195 -0
  365. package/dist/handoff/ledger.js.map +1 -0
  366. package/dist/handoff/lifecycle.d.ts +29 -0
  367. package/dist/handoff/lifecycle.js +102 -0
  368. package/dist/handoff/lifecycle.js.map +1 -0
  369. package/dist/handoff/metrics.d.ts +56 -0
  370. package/dist/handoff/metrics.js +78 -0
  371. package/dist/handoff/metrics.js.map +1 -0
  372. package/dist/handoff/operator-approval.d.ts +143 -0
  373. package/dist/handoff/operator-approval.js +287 -0
  374. package/dist/handoff/operator-approval.js.map +1 -0
  375. package/dist/handoff/order-record.d.ts +104 -0
  376. package/dist/handoff/order-record.js +235 -0
  377. package/dist/handoff/order-record.js.map +1 -0
  378. package/dist/handoff/package.d.ts +102 -0
  379. package/dist/handoff/package.js +132 -0
  380. package/dist/handoff/package.js.map +1 -0
  381. package/dist/handoff/transaction.d.ts +96 -0
  382. package/dist/handoff/transaction.js +263 -0
  383. package/dist/handoff/transaction.js.map +1 -0
  384. package/dist/handoff/ucp-checkout/cart-channel.d.ts +111 -0
  385. package/dist/handoff/ucp-checkout/cart-channel.js +370 -0
  386. package/dist/handoff/ucp-checkout/cart-channel.js.map +1 -0
  387. package/dist/handoff/ucp-checkout/cart-parse.d.ts +22 -0
  388. package/dist/handoff/ucp-checkout/cart-parse.js +102 -0
  389. package/dist/handoff/ucp-checkout/cart-parse.js.map +1 -0
  390. package/dist/handoff/ucp-checkout/cart-types.d.ts +93 -0
  391. package/dist/handoff/ucp-checkout/cart-types.js +38 -0
  392. package/dist/handoff/ucp-checkout/cart-types.js.map +1 -0
  393. package/dist/handoff/ucp-checkout/channel.d.ts +159 -0
  394. package/dist/handoff/ucp-checkout/channel.js +636 -0
  395. package/dist/handoff/ucp-checkout/channel.js.map +1 -0
  396. package/dist/handoff/ucp-checkout/client.d.ts +88 -0
  397. package/dist/handoff/ucp-checkout/client.js +228 -0
  398. package/dist/handoff/ucp-checkout/client.js.map +1 -0
  399. package/dist/handoff/ucp-checkout/endpoint.d.ts +36 -0
  400. package/dist/handoff/ucp-checkout/endpoint.js +145 -0
  401. package/dist/handoff/ucp-checkout/endpoint.js.map +1 -0
  402. package/dist/handoff/ucp-checkout/index.d.ts +35 -0
  403. package/dist/handoff/ucp-checkout/index.js +36 -0
  404. package/dist/handoff/ucp-checkout/index.js.map +1 -0
  405. package/dist/handoff/ucp-checkout/parse.d.ts +71 -0
  406. package/dist/handoff/ucp-checkout/parse.js +349 -0
  407. package/dist/handoff/ucp-checkout/parse.js.map +1 -0
  408. package/dist/handoff/ucp-checkout/totals.d.ts +41 -0
  409. package/dist/handoff/ucp-checkout/totals.js +36 -0
  410. package/dist/handoff/ucp-checkout/totals.js.map +1 -0
  411. package/dist/handoff/ucp-checkout/types.d.ts +149 -0
  412. package/dist/handoff/ucp-checkout/types.js +58 -0
  413. package/dist/handoff/ucp-checkout/types.js.map +1 -0
  414. package/dist/handoff/url-safety.d.ts +44 -0
  415. package/dist/handoff/url-safety.js +121 -0
  416. package/dist/handoff/url-safety.js.map +1 -0
  417. package/dist/i18n.d.ts +24 -0
  418. package/dist/i18n.js +27 -0
  419. package/dist/i18n.js.map +1 -0
  420. package/dist/negotiation/action-candidate.d.ts +97 -0
  421. package/dist/negotiation/action-candidate.js +160 -0
  422. package/dist/negotiation/action-candidate.js.map +1 -0
  423. package/dist/negotiation/condition/evaluator.d.ts +36 -0
  424. package/dist/negotiation/condition/evaluator.js +123 -0
  425. package/dist/negotiation/condition/evaluator.js.map +1 -0
  426. package/dist/negotiation/context-map/index.d.ts +23 -0
  427. package/dist/negotiation/context-map/index.js +22 -0
  428. package/dist/negotiation/context-map/index.js.map +1 -0
  429. package/dist/negotiation/context-map/store.d.ts +51 -0
  430. package/dist/negotiation/context-map/store.js +186 -0
  431. package/dist/negotiation/context-map/store.js.map +1 -0
  432. package/dist/negotiation/context-map/types.d.ts +29 -0
  433. package/dist/negotiation/context-map/types.js +57 -0
  434. package/dist/negotiation/context-map/types.js.map +1 -0
  435. package/dist/negotiation/domain/common.d.ts +95 -0
  436. package/dist/negotiation/domain/common.js +216 -0
  437. package/dist/negotiation/domain/common.js.map +1 -0
  438. package/dist/negotiation/domain/envelope.d.ts +55 -0
  439. package/dist/negotiation/domain/envelope.js +110 -0
  440. package/dist/negotiation/domain/envelope.js.map +1 -0
  441. package/dist/negotiation/domain/identifiers.d.ts +65 -0
  442. package/dist/negotiation/domain/identifiers.js +130 -0
  443. package/dist/negotiation/domain/identifiers.js.map +1 -0
  444. package/dist/negotiation/domain/objects.d.ts +149 -0
  445. package/dist/negotiation/domain/objects.js +335 -0
  446. package/dist/negotiation/domain/objects.js.map +1 -0
  447. package/dist/negotiation/idempotency/index.d.ts +26 -0
  448. package/dist/negotiation/idempotency/index.js +25 -0
  449. package/dist/negotiation/idempotency/index.js.map +1 -0
  450. package/dist/negotiation/idempotency/store.d.ts +52 -0
  451. package/dist/negotiation/idempotency/store.js +189 -0
  452. package/dist/negotiation/idempotency/store.js.map +1 -0
  453. package/dist/negotiation/idempotency/types.d.ts +102 -0
  454. package/dist/negotiation/idempotency/types.js +47 -0
  455. package/dist/negotiation/idempotency/types.js.map +1 -0
  456. package/dist/negotiation/jcs.d.ts +21 -0
  457. package/dist/negotiation/jcs.js +114 -0
  458. package/dist/negotiation/jcs.js.map +1 -0
  459. package/dist/negotiation/ledger/event.d.ts +142 -0
  460. package/dist/negotiation/ledger/event.js +206 -0
  461. package/dist/negotiation/ledger/event.js.map +1 -0
  462. package/dist/negotiation/ledger/index.d.ts +26 -0
  463. package/dist/negotiation/ledger/index.js +25 -0
  464. package/dist/negotiation/ledger/index.js.map +1 -0
  465. package/dist/negotiation/ledger/store.d.ts +97 -0
  466. package/dist/negotiation/ledger/store.js +338 -0
  467. package/dist/negotiation/ledger/store.js.map +1 -0
  468. package/dist/negotiation/prompt.d.ts +34 -0
  469. package/dist/negotiation/prompt.js +113 -0
  470. package/dist/negotiation/prompt.js.map +1 -0
  471. package/dist/negotiation/recovery/index.d.ts +26 -0
  472. package/dist/negotiation/recovery/index.js +24 -0
  473. package/dist/negotiation/recovery/index.js.map +1 -0
  474. package/dist/negotiation/recovery/outbound.d.ts +49 -0
  475. package/dist/negotiation/recovery/outbound.js +34 -0
  476. package/dist/negotiation/recovery/outbound.js.map +1 -0
  477. package/dist/negotiation/recovery/recover.d.ts +59 -0
  478. package/dist/negotiation/recovery/recover.js +486 -0
  479. package/dist/negotiation/recovery/recover.js.map +1 -0
  480. package/dist/negotiation/recovery/types.d.ts +85 -0
  481. package/dist/negotiation/recovery/types.js +17 -0
  482. package/dist/negotiation/recovery/types.js.map +1 -0
  483. package/dist/negotiation/state/phase.d.ts +70 -0
  484. package/dist/negotiation/state/phase.js +200 -0
  485. package/dist/negotiation/state/phase.js.map +1 -0
  486. package/dist/negotiation/types.d.ts +139 -0
  487. package/dist/negotiation/types.js +24 -0
  488. package/dist/negotiation/types.js.map +1 -0
  489. package/dist/net/safe-http.d.ts +54 -0
  490. package/dist/net/safe-http.js +116 -0
  491. package/dist/net/safe-http.js.map +1 -0
  492. package/dist/operator/controller.d.ts +181 -0
  493. package/dist/operator/controller.js +784 -0
  494. package/dist/operator/controller.js.map +1 -0
  495. package/dist/operator/runner.d.ts +128 -0
  496. package/dist/operator/runner.js +248 -0
  497. package/dist/operator/runner.js.map +1 -0
  498. package/dist/operator/store.d.ts +39 -0
  499. package/dist/operator/store.js +169 -0
  500. package/dist/operator/store.js.map +1 -0
  501. package/dist/operator/strategy.d.ts +54 -0
  502. package/dist/operator/strategy.js +249 -0
  503. package/dist/operator/strategy.js.map +1 -0
  504. package/dist/operator/tui.d.ts +27 -0
  505. package/dist/operator/tui.js +395 -0
  506. package/dist/operator/tui.js.map +1 -0
  507. package/dist/operator/types.d.ts +224 -0
  508. package/dist/operator/types.js +17 -0
  509. package/dist/operator/types.js.map +1 -0
  510. package/dist/product-buyer.d.ts +74 -0
  511. package/dist/product-buyer.js +161 -0
  512. package/dist/product-buyer.js.map +1 -0
  513. package/dist/product-cli.d.ts +56 -0
  514. package/dist/product-cli.js +175 -0
  515. package/dist/product-cli.js.map +1 -0
  516. package/dist/product-compat.d.ts +50 -0
  517. package/dist/product-compat.js +63 -0
  518. package/dist/product-compat.js.map +1 -0
  519. package/dist/product-init.d.ts +73 -0
  520. package/dist/product-init.js +203 -0
  521. package/dist/product-init.js.map +1 -0
  522. package/dist/product-publish.d.ts +85 -0
  523. package/dist/product-publish.js +216 -0
  524. package/dist/product-publish.js.map +1 -0
  525. package/dist/protocol/legacy-shopping-negotiation/adapter.d.ts +42 -0
  526. package/dist/protocol/legacy-shopping-negotiation/adapter.js +561 -0
  527. package/dist/protocol/legacy-shopping-negotiation/adapter.js.map +1 -0
  528. package/dist/protocol/legacy-shopping-negotiation/mapping.d.ts +78 -0
  529. package/dist/protocol/legacy-shopping-negotiation/mapping.js +321 -0
  530. package/dist/protocol/legacy-shopping-negotiation/mapping.js.map +1 -0
  531. package/dist/protocol/legacy-shopping-negotiation/money.d.ts +49 -0
  532. package/dist/protocol/legacy-shopping-negotiation/money.js +70 -0
  533. package/dist/protocol/legacy-shopping-negotiation/money.js.map +1 -0
  534. package/dist/protocol/legacy-shopping-negotiation/types.d.ts +107 -0
  535. package/dist/protocol/legacy-shopping-negotiation/types.js +34 -0
  536. package/dist/protocol/legacy-shopping-negotiation/types.js.map +1 -0
  537. package/dist/runtime/buyer-policy.d.ts +58 -0
  538. package/dist/runtime/buyer-policy.js +89 -0
  539. package/dist/runtime/buyer-policy.js.map +1 -0
  540. package/dist/runtime/fake-model.d.ts +77 -0
  541. package/dist/runtime/fake-model.js +307 -0
  542. package/dist/runtime/fake-model.js.map +1 -0
  543. package/dist/runtime/foreground.d.ts +56 -0
  544. package/dist/runtime/foreground.js +97 -0
  545. package/dist/runtime/foreground.js.map +1 -0
  546. package/dist/runtime/heartbeat.d.ts +36 -0
  547. package/dist/runtime/heartbeat.js +49 -0
  548. package/dist/runtime/heartbeat.js.map +1 -0
  549. package/dist/runtime/merchant-turn.d.ts +35 -0
  550. package/dist/runtime/merchant-turn.js +20 -0
  551. package/dist/runtime/merchant-turn.js.map +1 -0
  552. package/dist/runtime/model.d.ts +40 -0
  553. package/dist/runtime/model.js +86 -0
  554. package/dist/runtime/model.js.map +1 -0
  555. package/dist/runtime/negotiation-turn.d.ts +101 -0
  556. package/dist/runtime/negotiation-turn.js +317 -0
  557. package/dist/runtime/negotiation-turn.js.map +1 -0
  558. package/dist/runtime/tools.d.ts +64 -0
  559. package/dist/runtime/tools.js +236 -0
  560. package/dist/runtime/tools.js.map +1 -0
  561. package/dist/supervisor/init.d.ts +31 -0
  562. package/dist/supervisor/init.js +222 -0
  563. package/dist/supervisor/init.js.map +1 -0
  564. package/dist/supervisor/logs.d.ts +28 -0
  565. package/dist/supervisor/logs.js +101 -0
  566. package/dist/supervisor/logs.js.map +1 -0
  567. package/dist/supervisor/manage.d.ts +72 -0
  568. package/dist/supervisor/manage.js +419 -0
  569. package/dist/supervisor/manage.js.map +1 -0
  570. package/dist/supervisor/manifest.d.ts +69 -0
  571. package/dist/supervisor/manifest.js +209 -0
  572. package/dist/supervisor/manifest.js.map +1 -0
  573. package/dist/supervisor/stack-config.d.ts +79 -0
  574. package/dist/supervisor/stack-config.js +262 -0
  575. package/dist/supervisor/stack-config.js.map +1 -0
  576. package/dist/supervisor/wrapper.d.ts +17 -0
  577. package/dist/supervisor/wrapper.js +138 -0
  578. package/dist/supervisor/wrapper.js.map +1 -0
  579. package/dist/trust/identity/auth-verifier.d.ts +96 -0
  580. package/dist/trust/identity/auth-verifier.js +166 -0
  581. package/dist/trust/identity/auth-verifier.js.map +1 -0
  582. package/dist/trust/identity/identity-binding.d.ts +63 -0
  583. package/dist/trust/identity/identity-binding.js +59 -0
  584. package/dist/trust/identity/identity-binding.js.map +1 -0
  585. package/dist/trust/identity/index.d.ts +38 -0
  586. package/dist/trust/identity/index.js +31 -0
  587. package/dist/trust/identity/index.js.map +1 -0
  588. package/dist/trust/identity/jws.d.ts +64 -0
  589. package/dist/trust/identity/jws.js +178 -0
  590. package/dist/trust/identity/jws.js.map +1 -0
  591. package/dist/trust/identity/keys.d.ts +71 -0
  592. package/dist/trust/identity/keys.js +118 -0
  593. package/dist/trust/identity/keys.js.map +1 -0
  594. package/dist/trust/identity/message-signature.d.ts +105 -0
  595. package/dist/trust/identity/message-signature.js +297 -0
  596. package/dist/trust/identity/message-signature.js.map +1 -0
  597. package/dist/trust/identity/nonce.d.ts +45 -0
  598. package/dist/trust/identity/nonce.js +50 -0
  599. package/dist/trust/identity/nonce.js.map +1 -0
  600. package/dist/trust/identity/signature-base.d.ts +84 -0
  601. package/dist/trust/identity/signature-base.js +261 -0
  602. package/dist/trust/identity/signature-base.js.map +1 -0
  603. package/dist/trust/identity/trust-policy.d.ts +92 -0
  604. package/dist/trust/identity/trust-policy.js +95 -0
  605. package/dist/trust/identity/trust-policy.js.map +1 -0
  606. package/dist/trust/index.d.ts +21 -0
  607. package/dist/trust/index.js +22 -0
  608. package/dist/trust/index.js.map +1 -0
  609. package/dist/trust/records/evaluator.d.ts +76 -0
  610. package/dist/trust/records/evaluator.js +122 -0
  611. package/dist/trust/records/evaluator.js.map +1 -0
  612. package/dist/trust/records/index.d.ts +28 -0
  613. package/dist/trust/records/index.js +26 -0
  614. package/dist/trust/records/index.js.map +1 -0
  615. package/dist/trust/records/store.d.ts +75 -0
  616. package/dist/trust/records/store.js +339 -0
  617. package/dist/trust/records/store.js.map +1 -0
  618. package/dist/trust/records/types.d.ts +159 -0
  619. package/dist/trust/records/types.js +40 -0
  620. package/dist/trust/records/types.js.map +1 -0
  621. package/dist/tui/banner.d.ts +46 -0
  622. package/dist/tui/banner.js +99 -0
  623. package/dist/tui/banner.js.map +1 -0
  624. package/dist/tui/styles.d.ts +70 -0
  625. package/dist/tui/styles.js +197 -0
  626. package/dist/tui/styles.js.map +1 -0
  627. package/dist/tui/theme.d.ts +63 -0
  628. package/dist/tui/theme.js +136 -0
  629. package/dist/tui/theme.js.map +1 -0
  630. package/examples/profiles/buyer.deepseek.yaml +34 -0
  631. package/examples/profiles/buyer.fake.yaml +36 -0
  632. package/examples/profiles/buyer.local.yaml +40 -0
  633. package/examples/profiles/merchant.deepseek.yaml +32 -0
  634. package/examples/profiles/merchant.fake.yaml +31 -0
  635. package/examples/profiles/merchant.local.yaml +34 -0
  636. package/package.json +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/agent/kernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,YAAY,GAGb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAmB,MAAM,eAAe,CAAC;AACrF,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAoC,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AACzF,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,GAEzB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAmC,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAS5E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAuCtC;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,KAAkB,EAAE,KAAwB;IAC7E,MAAM,OAAO,GAAG;QACd,wBAAwB,KAAK,CAAC,aAAa,OAAO,KAAK,CAAC,cAAc,EAAE;QACxE,IAAI,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QAClI,cAAc,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;QACtG,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;KACzE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC7B,SAAS,EAAE,SAAS;QACpB,GAAG,EAAE,mBAAmB,KAAK,CAAC,aAAa,EAAE;QAC7C,KAAK,EAAE;YACL,IAAI,EAAE,iBAAiB;YACvB,cAAc,EAAE,KAAK,CAAC,aAAa;YACnC,gBAAgB,EAAE,KAAK,CAAC,cAAc;YACtC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,iBAAiB,EAAE,KAAK,CAAC,eAAe;YACxC,gBAAgB,EAAE,KAAK,CAAC,cAAc;YACtC,YAAY,EAAE,KAAK,CAAC,WAAW;SAChC;QACD,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,CAAC;QACb,uBAAuB,EAAE,KAAK;QAC9B,QAAQ,EAAE;YACR,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,KAAK,CAAC,aAAa;YAC/B,OAAO;SACR;QACD,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;AAC7F,CAAC;AASD,SAAS,aAAa,CAAC,OAAyB;IAC9C,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,iFAAiF;AACjF,SAAS,oBAAoB,CAAC,KAAkB;IAC9C,MAAM,GAAG,GAA0C,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAAE,SAAS;QACxC,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAqB,EAAE,IAAe;IAClE,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAClF,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAChD,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAClD,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;8BAcQ,CAAC;AAE/B,wEAAwE;AACxE,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,IAAuD,CAAC;IAC5D,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,IAAI,KAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IACE,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC7B,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAClC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EACjC,CAAC;gBACD,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9D,CAAC;iBAAM,IACL,KAAK,CAAC,IAAI,KAAK,SAAS;gBACxB,KAAK,CAAC,OAAO,KAAK,IAAI;gBACtB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EACjC,CAAC;gBACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAA+D,CAAC;gBAChF,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5F,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,WAAW;IACb,OAAO,CAAe;IACtB,SAAS,CAAY;IACb,KAAK,CAAa;IAClB,EAAE,CAAe;IACjB,KAAK,CAAc;IACnB,OAAO,CAAU;IACjB,OAAO,CAAe;IAC/B,QAAQ,CAAqB;IACrC,6CAA6C;IAC5B,KAAK,CAAe;IAC7B,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,iBAAiB,GAAG,KAAK,CAAC;IAC1B,MAAM,GAAG,KAAK,CAAC;IACN,SAAS,CAAkB;IAC3B,SAAS,CAAiB;IAC1B,SAAS,CAA+B;IACzD,mDAAmD;IAClC,cAAc,CAAuE;IACrF,cAAc,CAAkB;IAChC,cAAc,CAAkB;IAChC,MAAM,CAAoB;IAC3C,qFAAqF;IACpE,OAAO,GAAyB,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC/E,uEAAuE;IACtD,YAAY,CAAkC;IAC/D,yFAAyF;IACxE,MAAM,CAAsB;IACrC,OAAO,GAAG,CAAC,CAAC;IACpB,kGAAkG;IACjF,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzD,YAAoB,OAmBnB;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACxE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACxE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACxE,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACvF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACvF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACvF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAA2B;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1E,6CAA6C;QAC7C,mCAAmC;QACnC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzD,IACE,YAAY,KAAK,SAAS;gBAC1B,CAAC,YAAY,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAC/F,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,YAAY,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;YACtC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YACtC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YAClC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;SAC3B,CAAC,CAAC;QACH,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,qDAAqD;YACjE,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5G,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,kBAAkB,EAAE,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC3D,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAoD,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACrF,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,2BAA2B,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3G,IAAI,SAAqC,CAAC;QAC1C,IAAI,SAAoC,CAAC;QACzC,IAAI,UAAU,GAAuC,EAAE,CAAC;QACxD,IAAI,aAAa,GAA0C,EAAE,CAAC;QAC9D,IAAI,cAA+F,CAAC;QACpG,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxE,SAAS,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/F,SAAS,GAAG,IAAI,aAAa,CAAC;gBAC5B,KAAK,EAAE,SAAS;gBAChB,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC/B,GAAG,EAAE,KAAK;aACX,CAAC,CAAC;YACH,4DAA4D;YAC5D,uCAAuC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,MAAM,kBAAkB,GAAG,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACxF,cAAc,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;YAC5E,UAAU,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;oBAC/B,CAAC,CAAC;wBACE,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,+DAA+D;wBAC/D,oDAAoD;wBACpD,+BAA+B;wBAC/B,aAAa,EAAE,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;qBACnE;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,SAAS;gBACT,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK;gBACzB,eAAe;gBACf,GAAG,EAAE,KAAK;gBACV,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC/D,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE;aACpE,CAAC,CAAC;QACL,CAAC;aAAM,IACL,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;YACnC,OAAO,CAAC,cAAc,KAAK,SAAS;YACpC,OAAO,CAAC,MAAM,KAAK,SAAS,EAC5B,CAAC;YACD,aAAa,GAAG,kBAAkB,CAAC;gBACjC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,gEAAgE;gBAChE,iDAAiD;gBACjD,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS;gBACT,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK;gBACzB,eAAe;gBACf,GAAG,EAAE,KAAK;gBACV,aAAa,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,QAA4B,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC;YAC/B,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC;YACtG,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,QAAQ,EAAE,CAAC;YACpF,yEAAyE;YACzE,oEAAoE;YACpE,aAAa,EAAE;gBACb,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI;aAC/D;YACD,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC,CAAC;QACH,6DAA6D;QAC7D,mDAAmD;QACnD,gDAAgD;QAChD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;YAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK;YACL,EAAE;YACF,KAAK;YACL,SAAS;YACT,OAAO;YACP,OAAO;YACP,SAAS;YACT,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO;YACP,YAAY;YACZ,MAAM;YACN,GAAG,EAAE,KAAK;YACV,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE;YAChC,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,cAAc,GAAwC,GAAG,EAAE,CAAC,SAAS,CAAC;IAE9E;;;OAGG;IACH,IAAI,cAAc;QAchB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACjE,MAAM,UAAU,GAOX,EAAE,CAAC;QACR,MAAM,QAAQ,GAAoD,EAAE,CAAC;QACrE,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,oBAAoB,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBAChG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBAC/C,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBACtH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBACpG,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,2BAA2B,CAAC,CAAC;oBAC1F,MAAM,QAAQ,GACZ,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI;wBAC5B,CAAC,CAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAiD;wBAC5E,CAAC,CAAC,SAAS,CAAC;oBAChB,UAAU,CAAC,IAAI,CAAC;wBACd,YAAY,EAAE,KAAK,CAAC,oBAAoB;wBACxC,cAAc,EAAE,aAAa;wBAC7B,SAAS,EAAE,SAAS,IAAI,SAAS;wBACjC,gBAAgB,EACd,OAAO,QAAQ,EAAE,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG;wBAClF,eAAe,EAAE,OAAO,QAAQ,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG;wBAC/F,eAAe,EAAE,CAAC,GAAG,EAAE;4BACrB,MAAM,OAAO,GAAG,QAAQ,EAAE,eAAsD,CAAC;4BACjF,OAAO;gCACL,QAAQ,EAAE,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG;gCACxE,OAAO,EAAE,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;6BACtE,CAAC;wBACJ,CAAC,CAAC,EAAE;qBACL,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1E,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBACnC,QAAQ,CAAC,IAAI,CAAC;wBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG;qBACxF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACjD,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,aAAqB;QAC1D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACvE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,cAAc,SAAS,gBAAgB,aAAa,IAAI,CAAC;QAChG,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;QAC3D,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,mBAAmB,CAAC;QAC1D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,WAAW,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,2BAA2B,CAAC,CAAC;QAC1F,MAAM,QAAQ,GACZ,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI;YAC5B,CAAC,CAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAiD;YAC5E,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC;QAClD,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACrD,YAAY,CAAC;YACX,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YAClC,SAAS;YACT,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,SAAS,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE;YACnI,UAAU,EAAE,EAAE,UAAU,EAAE,0CAA0C,EAAE,gBAAgB,EAAE,KAAK,EAAE;YAC/F,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,WAAW,SAAS,0BAA0B,CAAC;IACxD,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,aAAqB;QACjE,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;QACvE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,cAAc,SAAS,gBAAgB,aAAa,IAAI,CAAC;QAChG,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;QAC3D,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,mBAAmB,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,KAAK,WAAW,CAAC;aACrD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,2BAA2B,CAAC,CAAC;QAC7D,MAAM,QAAQ,GACZ,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI;YAC5B,CAAC,CAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAiD;YAC5E,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC;QAClD,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACrD,kBAAkB,CAAC;YACjB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YAClC,SAAS;YACT,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,SAAS,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE;YACnI,UAAU,EAAE,EAAE,UAAU,EAAE,0CAA0C,EAAE,gBAAgB,EAAE,KAAK,EAAE;YAC/F,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;SAC1F,CAAC,CAAC;QACH,OAAO,WAAW,SAAS,mDAAmD,CAAC;IACjF,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,yDAAyD;IACzD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,sFAAsF;IACtF,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,wDAAwD;IACxD,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAe,EAAE,OAAiC;QACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACrD,IAAI,IAAI,KAAK,WAAW,IAAI,OAAO,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,iFAAiF;IACjF,oBAAoB;QAClB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,+BAA+B;QAC7E,+CAA+C;QAC/C,2CAA2C;QAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wCAAwC;IAChC,cAAc,CAAC,WAAmB;QACxC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,WAAmB;QAClC,yEAAyE;QACzE,yEAAyE;QACzE,6BAA6B;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,qFAAqF;IAC7E,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QACrD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,8DAA8D;QAC9D,wDAAwD;QACxD,+CAA+C;QAC/C,qDAAqD;QACrD,2BAA2B;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,SAAS;gBACT,MAAM,EAAE,kDAAkD;aAC3D,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,gEAAgE;YAChE,oEAAoE;YACpE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAqB;gBAC9D,MAAM,EAAE,MAAM,WAAW,iCAAiC;aAC3D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACnF,yDAAyD;QACzD,+BAA+B;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2EAA2E;IAC3E,eAAe,CAAC,WAAmB;QACjC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC;QAClF,IAAI,SAAS,CAAC,MAAM,KAAK,kBAAkB,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,QAAQ,SAAS,CAAC,MAAM,OAAO,EAAE,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,SAAqB,EAAE;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,gDAAgD;YAChD,kCAAkC;YAClC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO;oBACL,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,EAAE;oBACjB,cAAc,EAAE,EAAE;oBAClB,aAAa,EAAE,EAAE;oBACjB,MAAM,EAAE,EAAE;iBACX,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,sBAAsB;QACpB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB;QACjB,wDAAwD;QACxD,iDAAiD;QACjD,8CAA8C;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QACzD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxD,wEAAwE;QACxE,uEAAuE;QACvE,6DAA6D;QAC7D,IAAI,OAAmE,CAAC;QACxE,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yEAAyE;QACzE,mDAAmD;QACnD,IAAI,KAAgC,CAAC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChG,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClD,IAAI,IAAI,KAAK,SAAS;oBAAE,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,MAAM,MAAM;aAC1B,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;aACtD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;QAEhD,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,QAAQ,CAAC,kBAAkB,KAAK,mBAAmB,EAAE,CAAC;YACxD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,8CAA8C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtG,OAAO,6BAA6B,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,uBAAuB,CAAC;QAC1D,uDAAuD;QACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,mBAAmB;YAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE3F,MAAM,WAAW,GACf,QAAQ,CAAC,mBAAmB,KAAK,SAAS;YACxC,CAAC,CAAC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;YACrD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,MAAM,KAAK,GACT,QAAQ,KAAK,SAAS;YACpB,CAAC,CAAC,OAAO,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,GACR,QAAQ,CAAC,QAAQ,CAAC,cAAc,KAAK,EAAE;YACrC,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;YACzD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,MAAM,GACV,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,CACL,SAAS,MAAM,IAAI,WAAW,KAAK;YACnC,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,2EAA2E;IACnE,OAAO,CAAI,IAAsB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAC/B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,UAAU,IAAI,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,KAAwB;QACxC,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnC,UAAU,EAAE,eAAe;gBAC3B,OAAO,EAAE,SAAS;gBAClB,IAAI;aACL,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpD,qEAAqE;YACrE,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,eAAe,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrC,kEAAkE;gBAClE,+BAA+B;gBAC/B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBACjB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAChD,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,IAAI,EAAE,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe;oBAC/E,IAAI,EAAE,KAAK;iBACZ,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa;QACrC,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,SAAS;oBACZ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACvD,KAAK,SAAS;oBACZ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACvD,KAAK,UAAU;oBACb,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACxD,KAAK,UAAU;oBACb,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACxD,KAAK,UAAU;oBACb,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACrD,KAAK,MAAM;oBACT,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACjD,KAAK,OAAO;oBACV,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACrD,KAAK,UAAU;oBACb,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACrD,KAAK,UAAU;oBACb,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC9D,KAAK,SAAS;oBACZ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACvD,KAAK,WAAW;oBACd,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC/D,KAAK,OAAO;oBACV,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC9C,KAAK,OAAO;oBACV,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACzC;oBACE,OAAO,EAAE,IAAI,EAAE,QAAQ,OAAO,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvE,OAAO,EAAE,IAAI,EAAE,QAAQ,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,YAAY,CAAC,GAAW;QAC9B,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,iBAAiB,CAAC;YACjD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CACrB,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC,cAAc,GAAG,CAC/G,CAAC;YACF,OAAO,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YACrE,MAAM,KAAK,GAAa,CAAC,6BAA6B,CAAC,CAAC;YACxD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC;YACnF,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,KAAK,CAAC,MAAM,oCAAoC,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3F,CAAC;IAEO,mBAAmB,CAAC,GAAW;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;aACvB,YAAY,CAAC,EAAE,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,GAAG,QAAQ,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,GAAG,2BAA2B,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAe,CAAC;IAClC,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,2BAA2B,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACjE,OAAO,YAAY,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC;IACjE,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,OAAO,IAAI,CAAC;YAAE,OAAO,+BAA+B,CAAC;QACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,+BAA+B,CAAC;QACvD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,GAAG,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QACrF,OAAO,YAAY,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,OAAO,eAAe,CAAC;IAC1E,CAAC;IAED,gFAAgF;IACxE,aAAa;QACnB,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QACjD,OAAO;YACL,oCAAoC;YACpC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED;qEACiE;IACzD,aAAa,CAAC,GAAW;QAC/B,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,yBAAyB,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,qCAAqC,CAAC;QAC/C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,YAAY,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7D,CAAC;IAEO,SAAS;QACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,eAAe,UAAU,CAAC,CAAC,UAAU,GAAG,CAChH,CAAC;QACF,OAAO,CAAC,qBAAqB,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,8EAA8E;IAEtE,UAAU,CAAC,GAAW;QAC5B,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACf,OAAO,kBAAkB,IAAI,CAAC,OAAO,EAAE,mDAAmD,CAAC;QAC7F,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAmB,EAAE,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,QAAQ,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;QACxD,OAAO,aAAa,IAAI,CAAC,OAAO,EAAE,qCAAqC,CAAC;IAC1E,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,sBAAsB,CAAC;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,UAAU,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,OAAO;YACL,4EAA4E;YAC5E,GAAG,KAAK;SACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW;QACrC,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,yBAAyB,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC3D,MAAM,IAAI,GACR,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,YAAY,QAAQ,CAAC,MAAM,UAAU,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3F,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,eAAe,OAAO,iCAAiC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YACH,yEAAyE;YACzE,0DAA0D;YAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,WAAW,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,OAAO,WAAW,EAAE,QAAQ,MAAM,CAAC,MAAM,gBAAgB,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,WAAW,EAAE,WAAW,CAAC;YAClC,CAAC;YACD,OAAO,WAAW,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,IAAI,GAAG,KAAK,EAAE;YAAE,OAAO,oBAAoB,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,eAAe,GAAG,CAAC,IAAI,EAAE,iCAAiC,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,QAAQ,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;QACxD,OAAO,WAAW,EAAE,aAAa,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc,CAAC,GAAW;QACtC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE;YACrD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACtF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CACL,sFAAsF;gBACtF,iFAAiF;gBACjF,gCAAgC,CACjC,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;QAClG,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACrF,MAAM,MAAM,GACV,SAAS,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,YAAY,WAAW,QAAQ,CAAC;QAC9F,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;gBACxC,cAAc,EAAE,OAAO;gBACvB,MAAM;gBACN,YAAY;gBACZ,aAAa,EAAE,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACzE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACjC,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;aAC9D,CAAC,CAAC;YACH,OAAO,2BAA2B,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,GAAG,WAAW,MAAM,CAAC,MAAM,IAAI,GAAG,kCAAkC,CAAC;QAC7I,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACxF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,KAAa;QACrC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC7C,sDAAsD;QACtD,gCAAgC;QAChC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3D,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACzD,OAAO,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,YAAsB,CAAC;QAChD,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,YAAY,CAAC;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,YAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,CAAC;IAED,8EAA8E;IAE9E,4DAA4D;IAC5D,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,oDAAoD;QACpD,0CAA0C;QAC1C,oDAAoD;QACpD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * SQLite schema and versioned migrations for Principal Memory (design §8–§9).
18
+ *
19
+ * Migrations run in transactions with a schema_migrations ledger; a failed
20
+ * migration rolls back completely — no half-applied schema. The store opens
21
+ * fail-closed when the on-disk schema is NEWER than this build.
22
+ */
23
+ import type { DatabaseSync } from "node:sqlite";
24
+ export declare const MEMORY_SCHEMA_VERSION = 3;
25
+ export declare class MigrationError extends Error {
26
+ constructor(message: string);
27
+ }
28
+ /**
29
+ * Bring the database up to MEMORY_SCHEMA_VERSION. Exposed for rollback tests
30
+ * with an injected (broken) migration set.
31
+ */
32
+ export declare function migrateMemorySchema(db: DatabaseSync, migrations?: Readonly<Record<number, string>>, targetVersion?: number): void;
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export const MEMORY_SCHEMA_VERSION = 3;
17
+ export class MigrationError extends Error {
18
+ constructor(message) {
19
+ super(message);
20
+ this.name = "MigrationError";
21
+ }
22
+ }
23
+ const MIGRATION_1 = `
24
+ CREATE TABLE principals (
25
+ principal_id TEXT PRIMARY KEY,
26
+ owner_id TEXT NOT NULL,
27
+ role TEXT NOT NULL CHECK (role IN ('buyer','merchant')),
28
+ display_name TEXT,
29
+ locale TEXT NOT NULL DEFAULT 'zh-CN',
30
+ timezone TEXT NOT NULL DEFAULT 'Asia/Shanghai',
31
+ memory_schema_version INTEGER NOT NULL DEFAULT 1,
32
+ created_at TEXT NOT NULL,
33
+ updated_at TEXT NOT NULL
34
+ );
35
+
36
+ CREATE TABLE private_vault (
37
+ vault_ref TEXT PRIMARY KEY,
38
+ principal_id TEXT NOT NULL REFERENCES principals(principal_id),
39
+ kind TEXT NOT NULL CHECK (kind IN ('address','contact','private_budget','merchant_cost','merchant_floor','other')),
40
+ ciphertext BLOB NOT NULL,
41
+ nonce BLOB NOT NULL,
42
+ key_version INTEGER NOT NULL,
43
+ value_fingerprint TEXT NOT NULL,
44
+ retention_json TEXT NOT NULL DEFAULT '{}',
45
+ created_at TEXT NOT NULL,
46
+ updated_at TEXT NOT NULL
47
+ );
48
+
49
+ CREATE TABLE memory_items (
50
+ memory_id TEXT PRIMARY KEY,
51
+ principal_id TEXT NOT NULL REFERENCES principals(principal_id),
52
+ namespace TEXT NOT NULL CHECK (namespace IN ('profile','constraint','preference','routine','episode','task_context')),
53
+ key TEXT NOT NULL,
54
+ value_json TEXT,
55
+ -- Not a foreign key: forgetting a Restricted memory hard-erases the Vault
56
+ -- row while the tombstone keeps the reference for audit (design §9.2).
57
+ vault_ref TEXT,
58
+ scope_json TEXT NOT NULL DEFAULT '{}',
59
+ source_kind TEXT NOT NULL CHECK (source_kind IN ('explicit','observed','inferred','imported')),
60
+ confidence REAL NOT NULL CHECK (confidence >= 0 AND confidence <= 1),
61
+ sensitivity TEXT NOT NULL CHECK (sensitivity IN ('normal','private','restricted')),
62
+ status TEXT NOT NULL CHECK (status IN ('candidate','active','needs_review','superseded','deleted','expired')),
63
+ confirmed_at TEXT,
64
+ valid_from TEXT,
65
+ expires_at TEXT,
66
+ last_observed_at TEXT,
67
+ evidence_count INTEGER NOT NULL DEFAULT 0,
68
+ version INTEGER NOT NULL DEFAULT 1,
69
+ created_at TEXT NOT NULL,
70
+ updated_at TEXT NOT NULL,
71
+ -- value_json and vault_ref are mutually exclusive (design §9.2).
72
+ CHECK ((value_json IS NULL) <> (vault_ref IS NULL))
73
+ );
74
+ CREATE INDEX idx_memory_items_principal_status ON memory_items (principal_id, status);
75
+ CREATE INDEX idx_memory_items_lookup ON memory_items (principal_id, namespace, key);
76
+ CREATE INDEX idx_memory_items_expiry ON memory_items (expires_at) WHERE expires_at IS NOT NULL;
77
+
78
+ CREATE TABLE memory_evidence (
79
+ evidence_id TEXT PRIMARY KEY,
80
+ memory_id TEXT NOT NULL REFERENCES memory_items(memory_id),
81
+ source_type TEXT NOT NULL CHECK (source_type IN ('chat','task_feedback','selection','rejection','import')),
82
+ source_ref TEXT NOT NULL,
83
+ polarity TEXT NOT NULL CHECK (polarity IN ('support','contradict')),
84
+ weight REAL NOT NULL CHECK (weight >= 0 AND weight <= 1),
85
+ summary TEXT NOT NULL,
86
+ observed_at TEXT NOT NULL,
87
+ created_at TEXT NOT NULL
88
+ );
89
+ CREATE INDEX idx_memory_evidence_memory ON memory_evidence (memory_id, source_ref);
90
+
91
+ CREATE TABLE memory_events (
92
+ event_id TEXT PRIMARY KEY,
93
+ memory_id TEXT NOT NULL,
94
+ type TEXT NOT NULL CHECK (type IN (
95
+ 'memory.proposed','memory.confirmed','memory.activated','memory.corrected',
96
+ 'memory.contradicted','memory.superseded','memory.forgotten','memory.expired')),
97
+ actor TEXT NOT NULL,
98
+ reason TEXT,
99
+ before_json TEXT,
100
+ after_json TEXT,
101
+ created_at TEXT NOT NULL
102
+ );
103
+ CREATE INDEX idx_memory_events_memory ON memory_events (memory_id, created_at);
104
+
105
+ CREATE TABLE memory_retrieval_log (
106
+ retrieval_id TEXT PRIMARY KEY,
107
+ task_id TEXT,
108
+ session_id TEXT NOT NULL,
109
+ memory_id TEXT NOT NULL,
110
+ purpose TEXT NOT NULL CHECK (purpose IN ('filter','rank','clarify','negotiate','explain')),
111
+ redaction_level TEXT NOT NULL CHECK (redaction_level IN ('full','coarse','metadata_only')),
112
+ created_at TEXT NOT NULL
113
+ );
114
+ CREATE INDEX idx_retrieval_log_session ON memory_retrieval_log (session_id, created_at);
115
+ `;
116
+ const MIGRATION_2 = `
117
+ -- v0.3.0-B: Buyer tasks, candidates, observations and tracking rules (§11).
118
+ CREATE TABLE buyer_tasks (
119
+ task_id TEXT PRIMARY KEY,
120
+ principal_id TEXT NOT NULL REFERENCES principals(principal_id),
121
+ status TEXT NOT NULL CHECK (status IN (
122
+ 'draft','clarifying','ready','searching','tracking','shortlist_ready',
123
+ 'awaiting_user','consulting','negotiating','selected_nonbinding',
124
+ 'cancelled','failed','expired')),
125
+ goal_text TEXT NOT NULL,
126
+ intent_json TEXT NOT NULL DEFAULT '{}',
127
+ constraints_json TEXT NOT NULL DEFAULT '{}',
128
+ ranking_policy_json TEXT NOT NULL DEFAULT '{}',
129
+ connector_scope_json TEXT NOT NULL DEFAULT '{}',
130
+ search_budget_json TEXT NOT NULL DEFAULT '{}',
131
+ tracking_policy_json TEXT NOT NULL DEFAULT '{}',
132
+ selected_candidate_id TEXT,
133
+ next_run_at TEXT,
134
+ expires_at TEXT,
135
+ version INTEGER NOT NULL DEFAULT 1,
136
+ created_at TEXT NOT NULL,
137
+ updated_at TEXT NOT NULL
138
+ );
139
+ CREATE INDEX idx_buyer_tasks_principal ON buyer_tasks (principal_id, status);
140
+ CREATE INDEX idx_buyer_tasks_wakeup ON buyer_tasks (next_run_at) WHERE next_run_at IS NOT NULL;
141
+
142
+ CREATE TABLE task_events (
143
+ event_id TEXT PRIMARY KEY,
144
+ task_id TEXT NOT NULL REFERENCES buyer_tasks(task_id),
145
+ type TEXT NOT NULL,
146
+ payload_json TEXT NOT NULL DEFAULT '{}',
147
+ origin TEXT NOT NULL CHECK (origin IN ('user','scheduler','model','connector','policy')),
148
+ idempotency_key TEXT NOT NULL UNIQUE,
149
+ created_at TEXT NOT NULL
150
+ );
151
+ CREATE INDEX idx_task_events_task ON task_events (task_id, created_at);
152
+
153
+ CREATE TABLE product_candidates (
154
+ candidate_id TEXT PRIMARY KEY,
155
+ task_id TEXT NOT NULL REFERENCES buyer_tasks(task_id),
156
+ connector_id TEXT NOT NULL,
157
+ platform TEXT NOT NULL,
158
+ external_product_id TEXT NOT NULL,
159
+ sku TEXT,
160
+ merchant_id TEXT,
161
+ canonical_key TEXT NOT NULL,
162
+ eligibility TEXT NOT NULL CHECK (eligibility IN ('eligible','ineligible','unknown')),
163
+ candidate_status TEXT NOT NULL CHECK (candidate_status IN
164
+ ('discovered','tracked','shortlisted','rejected','selected','stale')),
165
+ score REAL,
166
+ score_explanation_json TEXT,
167
+ rejection_reasons_json TEXT,
168
+ first_seen_at TEXT NOT NULL,
169
+ last_seen_at TEXT NOT NULL,
170
+ latest_observation_id TEXT,
171
+ UNIQUE (task_id, canonical_key)
172
+ );
173
+ CREATE INDEX idx_candidates_task ON product_candidates (task_id, candidate_status);
174
+
175
+ CREATE TABLE product_observations (
176
+ observation_id TEXT PRIMARY KEY,
177
+ candidate_id TEXT NOT NULL REFERENCES product_candidates(candidate_id),
178
+ observed_at TEXT NOT NULL,
179
+ source_url_or_ref TEXT NOT NULL,
180
+ title TEXT NOT NULL,
181
+ price_json TEXT NOT NULL DEFAULT '{}',
182
+ promotion_json TEXT NOT NULL DEFAULT '{}',
183
+ stock_json TEXT NOT NULL DEFAULT '{}',
184
+ delivery_json TEXT NOT NULL DEFAULT '{}',
185
+ after_sales_json TEXT NOT NULL DEFAULT '{}',
186
+ merchant_json TEXT NOT NULL DEFAULT '{}',
187
+ content_hash TEXT NOT NULL,
188
+ fresh_until TEXT NOT NULL,
189
+ UNIQUE (candidate_id, content_hash)
190
+ );
191
+ CREATE INDEX idx_observations_candidate ON product_observations (candidate_id, observed_at);
192
+
193
+ CREATE TABLE tracking_rules (
194
+ rule_id TEXT PRIMARY KEY,
195
+ task_id TEXT NOT NULL REFERENCES buyer_tasks(task_id),
196
+ candidate_id TEXT REFERENCES product_candidates(candidate_id),
197
+ rule_type TEXT NOT NULL CHECK (rule_type IN (
198
+ 'price_below','stock_available','promotion_changed','delivery_before',
199
+ 'new_candidate','periodic_review')),
200
+ condition_json TEXT NOT NULL DEFAULT '{}',
201
+ interval_seconds INTEGER NOT NULL CHECK (interval_seconds > 0),
202
+ next_check_at TEXT NOT NULL,
203
+ last_triggered_at TEXT,
204
+ cooldown_seconds INTEGER NOT NULL DEFAULT 0,
205
+ status TEXT NOT NULL CHECK (status IN ('active','paused','completed','expired'))
206
+ );
207
+ CREATE INDEX idx_tracking_rules_due ON tracking_rules (status, next_check_at);
208
+ `;
209
+ const MIGRATION_3 = `
210
+ -- v0.3.0-C: consultation links and approval WriteApprovalCandidates (§11.8, §16).
211
+ -- consultation_links associates a Buyer task + candidate with the authoritative
212
+ -- Marketplace Conversation (shopping-cli) without copying its state.
213
+ CREATE TABLE consultation_links (
214
+ link_id TEXT PRIMARY KEY,
215
+ task_id TEXT NOT NULL REFERENCES buyer_tasks(task_id),
216
+ candidate_id TEXT REFERENCES product_candidates(candidate_id),
217
+ connector_id TEXT NOT NULL,
218
+ conversation_id TEXT NOT NULL,
219
+ status TEXT NOT NULL CHECK (status IN ('consulting','negotiating','closed','stale')),
220
+ last_message_id TEXT,
221
+ created_at TEXT NOT NULL,
222
+ updated_at TEXT NOT NULL,
223
+ UNIQUE (task_id, conversation_id)
224
+ );
225
+ CREATE INDEX idx_consultation_links_task ON consultation_links (task_id, status);
226
+ CREATE INDEX idx_consultation_links_conv ON consultation_links (connector_id, conversation_id);
227
+
228
+ -- WriteApprovalCandidates are content-hashed approval objects (§16): the operator
229
+ -- approves a specific argument set against a specific precondition state.
230
+ -- arguments_json holds only public catalog/inventory facts — Restricted
231
+ -- values (private floors, costs) never enter this table, the event log or
232
+ -- any model-visible output.
233
+ CREATE TABLE action_candidates (
234
+ candidate_id TEXT PRIMARY KEY,
235
+ principal_id TEXT NOT NULL REFERENCES principals(principal_id),
236
+ task_id TEXT,
237
+ tool TEXT NOT NULL,
238
+ arguments_json TEXT NOT NULL,
239
+ arguments_hash TEXT NOT NULL,
240
+ preconditions_json TEXT NOT NULL,
241
+ preconditions_hash TEXT NOT NULL,
242
+ risk TEXT NOT NULL,
243
+ status TEXT NOT NULL CHECK (status IN (
244
+ 'pending_approval','approved','executed','rejected','superseded','expired')),
245
+ expires_at TEXT NOT NULL,
246
+ created_at TEXT NOT NULL,
247
+ updated_at TEXT NOT NULL
248
+ );
249
+ CREATE INDEX idx_action_candidates_principal ON action_candidates (principal_id, status);
250
+ CREATE INDEX idx_action_candidates_expiry ON action_candidates (expires_at) WHERE status = 'pending_approval';
251
+ `;
252
+ /** Ordered migrations: version number -> SQL. */
253
+ const MIGRATIONS = {
254
+ 1: MIGRATION_1,
255
+ 2: MIGRATION_2,
256
+ 3: MIGRATION_3,
257
+ };
258
+ /**
259
+ * Bring the database up to MEMORY_SCHEMA_VERSION. Exposed for rollback tests
260
+ * with an injected (broken) migration set.
261
+ */
262
+ export function migrateMemorySchema(db, migrations = MIGRATIONS, targetVersion = MEMORY_SCHEMA_VERSION) {
263
+ db.exec(`
264
+ CREATE TABLE IF NOT EXISTS schema_migrations (
265
+ version INTEGER PRIMARY KEY,
266
+ applied_at TEXT NOT NULL
267
+ )
268
+ `);
269
+ const row = db.prepare("SELECT MAX(version) AS v FROM schema_migrations").get();
270
+ const current = row.v ?? 0;
271
+ if (current > targetVersion) {
272
+ throw new MigrationError(`memory schema version ${current} is newer than this build (${targetVersion}); refusing to open`);
273
+ }
274
+ for (let v = current + 1; v <= targetVersion; v++) {
275
+ const sql = migrations[v];
276
+ if (sql === undefined) {
277
+ throw new MigrationError(`missing migration for schema version ${v}`);
278
+ }
279
+ db.exec("BEGIN");
280
+ try {
281
+ db.exec(sql);
282
+ db.prepare("INSERT INTO schema_migrations (version, applied_at) VALUES (?, ?)").run(v, new Date().toISOString());
283
+ db.exec("COMMIT");
284
+ }
285
+ catch (err) {
286
+ db.exec("ROLLBACK");
287
+ throw new MigrationError(`migration to schema version ${v} failed and was rolled back: ${err instanceof Error ? err.message : String(err)}`);
288
+ }
289
+ }
290
+ }
291
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/agent/memory/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FnB,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FnB,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CnB,CAAC;AAEF,iDAAiD;AACjD,MAAM,UAAU,GAAqC;IACnD,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAgB,EAChB,aAA+C,UAAU,EACzD,gBAAwB,qBAAqB;IAE7C,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,EAE5E,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,aAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,cAAc,CACtB,yBAAyB,OAAO,8BAA8B,aAAa,qBAAqB,CACjG,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,CACjF,CAAC,EACD,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;YACF,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpB,MAAM,IAAI,cAAc,CACtB,+BAA+B,CAAC,gCAC9B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Copyright 2026 harrylabsj
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * MemoryStore (design §8–§10): the governed read/write path over the
18
+ * per-agent SQLite memory database.
19
+ *
20
+ * Write governance (§10.1):
21
+ * - explicit user statement ("记住…", not a Restricted inference) =>
22
+ * active + confirmed, confidence 1.0;
23
+ * - a single observed/inferred signal => candidate (never a hard filter);
24
+ * - >= 3 deduplicated supporting evidences => soft preference activates;
25
+ * - inferred/observed can never write the `constraint` namespace;
26
+ * - Restricted values live only in the Vault, require an explicit source
27
+ * and a configured data key — otherwise fail closed;
28
+ * - conflicts never silently overwrite: a recent explicit statement
29
+ * supersedes; anything weaker appends contradict evidence to the
30
+ * existing item.
31
+ *
32
+ * Read path (§10.3): deterministic score =
33
+ * relevance × scope match × confidence × freshness × source weight
34
+ * (× needs_review penalty). deleted/superseded/expired are never
35
+ * returned; every returned item is written to the retrieval log with the
36
+ * redaction level it was served at. Restricted values never leave the
37
+ * store (metadata_only).
38
+ */
39
+ import type { DatabaseSync } from "node:sqlite";
40
+ import type { EvidenceSourceType, MemoryEventRecord, MemoryItem, MemoryNamespace, MemoryScope, MemorySensitivity, MemorySourceKind, MemoryStatus, Principal, RetrievalLogEntry, RetrievalPurpose, RetrievedMemory, VaultKind } from "./types.js";
41
+ import type { PrivateVault } from "./vault.js";
42
+ export interface EvidenceInput {
43
+ source_type: EvidenceSourceType;
44
+ /** Task/session/event reference; dedup key (same-task repeats don't count). */
45
+ source_ref: string;
46
+ summary: string;
47
+ weight?: number;
48
+ observed_at?: string;
49
+ }
50
+ export interface RememberInput {
51
+ namespace: MemoryNamespace;
52
+ key: string;
53
+ /** Non-Restricted structured value. Mutually exclusive with `restricted`. */
54
+ value?: unknown;
55
+ /** Restricted plaintext, sealed into the Vault. Mutually exclusive with `value`. */
56
+ restricted?: {
57
+ kind: VaultKind;
58
+ plaintext: string;
59
+ };
60
+ scope?: MemoryScope;
61
+ source_kind: MemorySourceKind;
62
+ confidence?: number;
63
+ sensitivity: MemorySensitivity;
64
+ expires_at?: string;
65
+ evidence: EvidenceInput;
66
+ /** The user actually stated this (vs. the model inferred it from behavior). */
67
+ explicit_user_statement: boolean;
68
+ actor: string;
69
+ }
70
+ export type RememberOutcome = {
71
+ kind: "active";
72
+ memory: MemoryItem;
73
+ } | {
74
+ kind: "candidate";
75
+ memory: MemoryItem;
76
+ } | {
77
+ kind: "merged";
78
+ memory: MemoryItem;
79
+ evidence_added: boolean;
80
+ } | {
81
+ kind: "conflict";
82
+ existing: MemoryItem;
83
+ evidence_added: boolean;
84
+ };
85
+ export interface RetrieveQuery {
86
+ session_id: string;
87
+ task_id?: string;
88
+ purpose: RetrievalPurpose;
89
+ /** User/task text for deterministic relevance matching. */
90
+ text?: string;
91
+ /** Task scopes for scope matching (empty/absent = global query). */
92
+ scopes?: MemoryScope[];
93
+ limit?: number;
94
+ namespaces?: MemoryNamespace[];
95
+ }
96
+ export interface MemoryStoreOptions {
97
+ db: DatabaseSync;
98
+ vault: PrivateVault;
99
+ now?: () => string;
100
+ }
101
+ export declare class MemoryStore {
102
+ private readonly db;
103
+ private readonly vault;
104
+ private readonly now;
105
+ constructor(options: MemoryStoreOptions);
106
+ /** Create or return the principal. Role and owner are immutable — mismatch fails closed. */
107
+ ensurePrincipal(input: {
108
+ principal_id: string;
109
+ owner_id: string;
110
+ role: "buyer" | "merchant";
111
+ display_name?: string;
112
+ locale?: string;
113
+ timezone?: string;
114
+ }): Principal;
115
+ getPrincipal(principalId: string): Principal | undefined;
116
+ remember(input: RememberInput): RememberOutcome;
117
+ private validateRemember;
118
+ private rememberTx;
119
+ /** Same live (namespace, key, scope): merge evidence or handle a value conflict. */
120
+ private mergeOrConflict;
121
+ private insertItem;
122
+ private sealVault;
123
+ /**
124
+ * Add evidence. Dedup (design §9.3): a repeat from the same source_ref
125
+ * never inflates evidence_count; only supporting, deduplicated evidence
126
+ * counts. Returns true when a new evidence row was inserted.
127
+ */
128
+ private addEvidenceTx;
129
+ /** >= 3 deduplicated signals activate a soft preference (design §10.1). */
130
+ private maybeAutoActivate;
131
+ /** Public evidence hook (task feedback, selections, rejections). */
132
+ addEvidence(memoryId: string, input: EvidenceInput & {
133
+ polarity?: "support" | "contradict";
134
+ }): boolean;
135
+ /** User confirms a candidate (design: Restricted candidates become valid only here). */
136
+ confirmMemory(memoryId: string, actor: string): MemoryItem;
137
+ /**
138
+ * User correction (design §6.4 /correct): updates in place with a version
139
+ * bump and a before/after audit event. A correction IS an explicit user
140
+ * statement: source becomes explicit, confidence 1.0, confirmed.
141
+ * Restricted items keep their Vault value unless a new plaintext is given;
142
+ * sensitivity downgrades from restricted are refused.
143
+ */
144
+ correctMemory(memoryId: string, patch: {
145
+ value?: unknown;
146
+ restricted?: {
147
+ kind: VaultKind;
148
+ plaintext: string;
149
+ };
150
+ scope?: MemoryScope;
151
+ }, actor: string, reason?: string): MemoryItem;
152
+ /**
153
+ * Forget (tombstone + audit; design §9.2). The Vault ciphertext of a
154
+ * Restricted memory is hard-deleted; retrieval never returns the item.
155
+ */
156
+ forgetMemory(memoryId: string, actor: string, reason?: string): MemoryItem;
157
+ /** Expire due items (task_context after its task, dated memories at expires_at). */
158
+ expireDue(): number;
159
+ retrieve(query: RetrieveQuery): RetrievedMemory[];
160
+ /** Data behind /why: the most recent retrieval batch for a session. */
161
+ explainLastRetrieval(sessionId: string): {
162
+ entries: (RetrievalLogEntry & {
163
+ key: string;
164
+ namespace: MemoryNamespace;
165
+ confidence: number;
166
+ })[];
167
+ };
168
+ retrievalLog(sessionId: string): RetrievalLogEntry[];
169
+ getMemory(memoryId: string): MemoryItem | undefined;
170
+ /** /memory overview. Restricted items are listed without any value. */
171
+ listMemories(filter: {
172
+ namespace?: MemoryNamespace;
173
+ sensitivity?: MemorySensitivity;
174
+ statuses?: MemoryStatus[];
175
+ }): MemoryItem[];
176
+ memoryEvents(memoryId: string): MemoryEventRecord[];
177
+ /** Vault metadata for /memory private — never ciphertext, never plaintext. */
178
+ vaultEntries(): {
179
+ vault_ref: string;
180
+ kind: VaultKind;
181
+ created_at: string;
182
+ }[];
183
+ /** Open a Vault value (owner-side use only; never exposed to the model). */
184
+ openVaultValue(vaultRef: string): string;
185
+ private principalId?;
186
+ /** Bind the store to one principal (set by the kernel after ensurePrincipal). */
187
+ bindPrincipal(principalId: string): void;
188
+ private requirePrincipal;
189
+ private requireMemory;
190
+ private findLiveByKey;
191
+ private rowToItem;
192
+ private appendEvent;
193
+ }