@stigmer/server 3.22.1-dev.20260922095755 → 3.23.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 (330) hide show
  1. package/dist/artifactstorage/artifact-storage.d.ts +29 -31
  2. package/dist/artifactstorage/artifact-storage.d.ts.map +1 -1
  3. package/dist/artifactstorage/artifact-storage.js +5 -7
  4. package/dist/artifactstorage/artifact-storage.js.map +1 -1
  5. package/dist/artifactstorage/r2-storage.d.ts +12 -7
  6. package/dist/artifactstorage/r2-storage.d.ts.map +1 -1
  7. package/dist/artifactstorage/r2-storage.js +6 -14
  8. package/dist/artifactstorage/r2-storage.js.map +1 -1
  9. package/dist/authorization/authorizer.d.ts +8 -4
  10. package/dist/authorization/authorizer.d.ts.map +1 -1
  11. package/dist/authorization/authorizer.js +9 -5
  12. package/dist/authorization/authorizer.js.map +1 -1
  13. package/dist/authorization/derived-tuples.d.ts.map +1 -1
  14. package/dist/authorization/derived-tuples.js +25 -10
  15. package/dist/authorization/derived-tuples.js.map +1 -1
  16. package/dist/authorization/evaluator.d.ts +8 -7
  17. package/dist/authorization/evaluator.d.ts.map +1 -1
  18. package/dist/authorization/evaluator.js +20 -4
  19. package/dist/authorization/evaluator.js.map +1 -1
  20. package/dist/authorization/list-read-scope.d.ts.map +1 -1
  21. package/dist/authorization/list-read-scope.js +9 -5
  22. package/dist/authorization/list-read-scope.js.map +1 -1
  23. package/dist/authorization/model/agent.d.ts.map +1 -1
  24. package/dist/authorization/model/agent.js +5 -4
  25. package/dist/authorization/model/agent.js.map +1 -1
  26. package/dist/authorization/model/agent_instance.d.ts.map +1 -1
  27. package/dist/authorization/model/agent_instance.js +2 -2
  28. package/dist/authorization/model/agent_instance.js.map +1 -1
  29. package/dist/authorization/model/mcp_server.d.ts.map +1 -1
  30. package/dist/authorization/model/mcp_server.js +2 -2
  31. package/dist/authorization/model/mcp_server.js.map +1 -1
  32. package/dist/authorization/model/plugin.d.ts.map +1 -1
  33. package/dist/authorization/model/plugin.js +4 -3
  34. package/dist/authorization/model/plugin.js.map +1 -1
  35. package/dist/authorization/model/rewrite.d.ts +10 -8
  36. package/dist/authorization/model/rewrite.d.ts.map +1 -1
  37. package/dist/authorization/model/rewrite.js +3 -0
  38. package/dist/authorization/model/rewrite.js.map +1 -1
  39. package/dist/authorization/model/skill.d.ts.map +1 -1
  40. package/dist/authorization/model/skill.js +2 -2
  41. package/dist/authorization/model/skill.js.map +1 -1
  42. package/dist/authorization/model/workflow.d.ts.map +1 -1
  43. package/dist/authorization/model/workflow.js +2 -2
  44. package/dist/authorization/model/workflow.js.map +1 -1
  45. package/dist/authorization/model/workflow_instance.d.ts.map +1 -1
  46. package/dist/authorization/model/workflow_instance.js +2 -2
  47. package/dist/authorization/model/workflow_instance.js.map +1 -1
  48. package/dist/authorization/organization-directory.d.ts.map +1 -1
  49. package/dist/authorization/organization-directory.js +3 -2
  50. package/dist/authorization/organization-directory.js.map +1 -1
  51. package/dist/authorization/store-test-kit.d.ts +6 -0
  52. package/dist/authorization/store-test-kit.d.ts.map +1 -1
  53. package/dist/authorization/store-test-kit.js +62 -16
  54. package/dist/authorization/store-test-kit.js.map +1 -1
  55. package/dist/authorization/tuples.d.ts +32 -13
  56. package/dist/authorization/tuples.d.ts.map +1 -1
  57. package/dist/authorization/tuples.js +11 -3
  58. package/dist/authorization/tuples.js.map +1 -1
  59. package/dist/boot/compose.d.ts.map +1 -1
  60. package/dist/boot/compose.js +49 -24
  61. package/dist/boot/compose.js.map +1 -1
  62. package/dist/boot/config.d.ts +4 -3
  63. package/dist/boot/config.d.ts.map +1 -1
  64. package/dist/boot/config.js.map +1 -1
  65. package/dist/boot/skill-transfer-origin.d.ts +52 -0
  66. package/dist/boot/skill-transfer-origin.d.ts.map +1 -0
  67. package/dist/boot/skill-transfer-origin.js +54 -0
  68. package/dist/boot/skill-transfer-origin.js.map +1 -0
  69. package/dist/domain/agent/controller.d.ts.map +1 -1
  70. package/dist/domain/agent/controller.js +4 -4
  71. package/dist/domain/agent/controller.js.map +1 -1
  72. package/dist/domain/agentchannel/controller.d.ts.map +1 -1
  73. package/dist/domain/agentchannel/controller.js +1 -3
  74. package/dist/domain/agentchannel/controller.js.map +1 -1
  75. package/dist/domain/agentexecution/controller.d.ts.map +1 -1
  76. package/dist/domain/agentexecution/controller.js +1 -3
  77. package/dist/domain/agentexecution/controller.js.map +1 -1
  78. package/dist/domain/agentinstance/controller.d.ts.map +1 -1
  79. package/dist/domain/agentinstance/controller.js +4 -3
  80. package/dist/domain/agentinstance/controller.js.map +1 -1
  81. package/dist/domain/agentshare/constants.d.ts +11 -6
  82. package/dist/domain/agentshare/constants.d.ts.map +1 -1
  83. package/dist/domain/agentshare/constants.js +16 -8
  84. package/dist/domain/agentshare/constants.js.map +1 -1
  85. package/dist/domain/agentshare/controller.d.ts.map +1 -1
  86. package/dist/domain/agentshare/controller.js +1 -3
  87. package/dist/domain/agentshare/controller.js.map +1 -1
  88. package/dist/domain/agentshare/steps.d.ts +25 -18
  89. package/dist/domain/agentshare/steps.d.ts.map +1 -1
  90. package/dist/domain/agentshare/steps.js +142 -41
  91. package/dist/domain/agentshare/steps.js.map +1 -1
  92. package/dist/domain/environment/controller.d.ts.map +1 -1
  93. package/dist/domain/environment/controller.js +3 -2
  94. package/dist/domain/environment/controller.js.map +1 -1
  95. package/dist/domain/executioncontext/controller.d.ts.map +1 -1
  96. package/dist/domain/executioncontext/controller.js +1 -2
  97. package/dist/domain/executioncontext/controller.js.map +1 -1
  98. package/dist/domain/mcpserver/controller.d.ts.map +1 -1
  99. package/dist/domain/mcpserver/controller.js +4 -3
  100. package/dist/domain/mcpserver/controller.js.map +1 -1
  101. package/dist/domain/plugin/controller.d.ts +3 -7
  102. package/dist/domain/plugin/controller.d.ts.map +1 -1
  103. package/dist/domain/plugin/controller.js +11 -9
  104. package/dist/domain/plugin/controller.js.map +1 -1
  105. package/dist/domain/plugin/push.d.ts +5 -7
  106. package/dist/domain/plugin/push.d.ts.map +1 -1
  107. package/dist/domain/plugin/push.js +14 -8
  108. package/dist/domain/plugin/push.js.map +1 -1
  109. package/dist/domain/schedule/controller.d.ts.map +1 -1
  110. package/dist/domain/schedule/controller.js +1 -3
  111. package/dist/domain/schedule/controller.js.map +1 -1
  112. package/dist/domain/session/controller.d.ts.map +1 -1
  113. package/dist/domain/session/controller.js +2 -3
  114. package/dist/domain/session/controller.js.map +1 -1
  115. package/dist/domain/skill/constants.d.ts +26 -3
  116. package/dist/domain/skill/constants.d.ts.map +1 -1
  117. package/dist/domain/skill/constants.js +26 -3
  118. package/dist/domain/skill/constants.js.map +1 -1
  119. package/dist/domain/skill/controller.d.ts +6 -11
  120. package/dist/domain/skill/controller.d.ts.map +1 -1
  121. package/dist/domain/skill/controller.js +35 -22
  122. package/dist/domain/skill/controller.js.map +1 -1
  123. package/dist/domain/skill/push.d.ts +2 -2
  124. package/dist/domain/skill/push.d.ts.map +1 -1
  125. package/dist/domain/skill/push.js +2 -2
  126. package/dist/domain/skill/push.js.map +1 -1
  127. package/dist/domain/skill/transfer/handler.d.ts +17 -9
  128. package/dist/domain/skill/transfer/handler.d.ts.map +1 -1
  129. package/dist/domain/skill/transfer/handler.js +19 -8
  130. package/dist/domain/skill/transfer/handler.js.map +1 -1
  131. package/dist/domain/skill/transfer/slots.d.ts +26 -41
  132. package/dist/domain/skill/transfer/slots.d.ts.map +1 -1
  133. package/dist/domain/skill/transfer/slots.js +80 -87
  134. package/dist/domain/skill/transfer/slots.js.map +1 -1
  135. package/dist/domain/skill/transfer/staging.d.ts +48 -0
  136. package/dist/domain/skill/transfer/staging.d.ts.map +1 -0
  137. package/dist/domain/skill/transfer/staging.js +127 -0
  138. package/dist/domain/skill/transfer/staging.js.map +1 -0
  139. package/dist/domain/workflow/controller.d.ts.map +1 -1
  140. package/dist/domain/workflow/controller.js +6 -14
  141. package/dist/domain/workflow/controller.js.map +1 -1
  142. package/dist/domain/workflow/registry/data/task-kind-registry.json +1 -1
  143. package/dist/domain/workflow/validation/task-config-constraints.d.ts +1 -10
  144. package/dist/domain/workflow/validation/task-config-constraints.d.ts.map +1 -1
  145. package/dist/domain/workflow/validation/task-config-constraints.js +2 -3
  146. package/dist/domain/workflow/validation/task-config-constraints.js.map +1 -1
  147. package/dist/domain/workflowexecution/controller.d.ts.map +1 -1
  148. package/dist/domain/workflowexecution/controller.js +2 -4
  149. package/dist/domain/workflowexecution/controller.js.map +1 -1
  150. package/dist/domain/workflowinstance/controller.d.ts.map +1 -1
  151. package/dist/domain/workflowinstance/controller.js +4 -3
  152. package/dist/domain/workflowinstance/controller.js.map +1 -1
  153. package/dist/extensions/authorization-queries.d.ts +5 -6
  154. package/dist/extensions/authorization-queries.d.ts.map +1 -1
  155. package/dist/extensions/list-read-scope.d.ts +1 -1
  156. package/dist/extensions/resource-authorization.d.ts +2 -3
  157. package/dist/extensions/resource-authorization.d.ts.map +1 -1
  158. package/dist/index.d.ts +3 -1
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +13 -0
  161. package/dist/index.js.map +1 -1
  162. package/dist/pipeline/apiresource-meta.d.ts +3 -12
  163. package/dist/pipeline/apiresource-meta.d.ts.map +1 -1
  164. package/dist/pipeline/apiresource-meta.js +10 -21
  165. package/dist/pipeline/apiresource-meta.js.map +1 -1
  166. package/dist/pipeline/steps/authorization-tuples.d.ts +3 -9
  167. package/dist/pipeline/steps/authorization-tuples.d.ts.map +1 -1
  168. package/dist/pipeline/steps/authorization-tuples.js +11 -9
  169. package/dist/pipeline/steps/authorization-tuples.js.map +1 -1
  170. package/dist/pipeline/steps/references.d.ts +20 -178
  171. package/dist/pipeline/steps/references.d.ts.map +1 -1
  172. package/dist/pipeline/steps/references.js +43 -344
  173. package/dist/pipeline/steps/references.js.map +1 -1
  174. package/dist/pipeline/steps/resolve-artifact-source.d.ts +11 -8
  175. package/dist/pipeline/steps/resolve-artifact-source.d.ts.map +1 -1
  176. package/dist/pipeline/steps/resolve-artifact-source.js +8 -4
  177. package/dist/pipeline/steps/resolve-artifact-source.js.map +1 -1
  178. package/dist/pipeline/steps/visibility-gates.d.ts +27 -0
  179. package/dist/pipeline/steps/visibility-gates.d.ts.map +1 -0
  180. package/dist/pipeline/steps/visibility-gates.js +139 -0
  181. package/dist/pipeline/steps/visibility-gates.js.map +1 -0
  182. package/dist/query/search/controller.js +1 -0
  183. package/dist/query/search/controller.js.map +1 -1
  184. package/dist/query/search/criteria.d.ts +5 -1
  185. package/dist/query/search/criteria.d.ts.map +1 -1
  186. package/dist/query/search/criteria.js +13 -3
  187. package/dist/query/search/criteria.js.map +1 -1
  188. package/dist/query/search/handler.d.ts +4 -5
  189. package/dist/query/search/handler.d.ts.map +1 -1
  190. package/dist/query/search/handler.js +6 -7
  191. package/dist/query/search/handler.js.map +1 -1
  192. package/dist/query/search/query-store.d.ts.map +1 -1
  193. package/dist/query/search/query-store.js +2 -0
  194. package/dist/query/search/query-store.js.map +1 -1
  195. package/dist/store/interface.d.ts +6 -3
  196. package/dist/store/interface.d.ts.map +1 -1
  197. package/dist/store/interface.js.map +1 -1
  198. package/dist/store/postgres/migrations.d.ts +1 -3
  199. package/dist/store/postgres/migrations.d.ts.map +1 -1
  200. package/dist/store/postgres/migrations.js +1 -35
  201. package/dist/store/postgres/migrations.js.map +1 -1
  202. package/dist/store/postgres/store.d.ts.map +1 -1
  203. package/dist/store/postgres/store.js +9 -4
  204. package/dist/store/postgres/store.js.map +1 -1
  205. package/dist/store/sqlite/migrations.d.ts +1 -3
  206. package/dist/store/sqlite/migrations.d.ts.map +1 -1
  207. package/dist/store/sqlite/migrations.js +1 -36
  208. package/dist/store/sqlite/migrations.js.map +1 -1
  209. package/dist/store/sqlite/store.d.ts.map +1 -1
  210. package/dist/store/sqlite/store.js +8 -4
  211. package/dist/store/sqlite/store.js.map +1 -1
  212. package/package.json +6 -6
  213. package/src/artifactstorage/__tests__/artifact-storage.test.ts +36 -33
  214. package/src/artifactstorage/__tests__/r2-storage.test.ts +11 -13
  215. package/src/artifactstorage/artifact-storage.ts +37 -33
  216. package/src/artifactstorage/r2-storage.ts +6 -15
  217. package/src/authorization/README.md +26 -24
  218. package/src/authorization/__tests__/authorizer.test.ts +9 -10
  219. package/src/authorization/__tests__/derived-tuples.test.ts +11 -4
  220. package/src/authorization/__tests__/evaluator.test.ts +73 -14
  221. package/src/authorization/__tests__/facts.test.ts +2 -2
  222. package/src/authorization/__tests__/fixtures/fga/agent-instance-creation.fga.yaml +185 -0
  223. package/src/authorization/__tests__/fixtures/fga/blueprint-private-visibility.fga.yaml +98 -6
  224. package/src/authorization/__tests__/fixtures/fga/cross-org-share-creation.fga.yaml +98 -0
  225. package/src/authorization/__tests__/fixtures/fga/default-instance-inheritance.fga.yaml +61 -4
  226. package/src/authorization/__tests__/fixtures/fga/mcp-server-authoring.fga.yaml +143 -0
  227. package/src/authorization/__tests__/fixtures/fga/org-admin-owner-inheritance.fga.yaml +21 -1
  228. package/src/authorization/__tests__/fixtures/fga/platform-visibility.fga.yaml +25 -1
  229. package/src/authorization/__tests__/fixtures/fga/public-visibility-setter.fga.yaml +52 -0
  230. package/src/authorization/__tests__/fixtures/fga/workflow-execution-sharing.fga.yaml +3 -1
  231. package/src/authorization/__tests__/list-read-scope.test.ts +17 -18
  232. package/src/authorization/__tests__/store-tests.test.ts +8 -1
  233. package/src/authorization/__tests__/tuples.test.ts +11 -12
  234. package/src/authorization/authorizer.ts +9 -4
  235. package/src/authorization/derived-tuples.ts +31 -14
  236. package/src/authorization/evaluator.ts +44 -8
  237. package/src/authorization/list-read-scope.ts +11 -5
  238. package/src/authorization/model/agent.ts +5 -2
  239. package/src/authorization/model/agent_instance.ts +2 -0
  240. package/src/authorization/model/mcp_server.ts +2 -0
  241. package/src/authorization/model/plugin.ts +4 -1
  242. package/src/authorization/model/rewrite.ts +13 -8
  243. package/src/authorization/model/skill.ts +2 -0
  244. package/src/authorization/model/workflow.ts +2 -0
  245. package/src/authorization/model/workflow_instance.ts +2 -0
  246. package/src/authorization/organization-directory.ts +3 -1
  247. package/src/authorization/store-test-kit.ts +75 -16
  248. package/src/authorization/tuples.ts +39 -16
  249. package/src/boot/__tests__/skill-transfer-origin.test.ts +72 -0
  250. package/src/boot/compose.ts +62 -25
  251. package/src/boot/config.ts +4 -3
  252. package/src/boot/skill-transfer-origin.ts +76 -0
  253. package/src/domain/agent/__tests__/agent.test.ts +4 -11
  254. package/src/domain/agent/controller.ts +7 -7
  255. package/src/domain/agentchannel/__tests__/agentchannel.test.ts +48 -223
  256. package/src/domain/agentchannel/controller.ts +1 -6
  257. package/src/domain/agentexecution/controller.ts +1 -6
  258. package/src/domain/agentinstance/controller.ts +12 -6
  259. package/src/domain/agentshare/__tests__/agentshare.test.ts +172 -196
  260. package/src/domain/agentshare/__tests__/create-authorization.test.ts +31 -16
  261. package/src/domain/agentshare/constants.ts +26 -14
  262. package/src/domain/agentshare/controller.ts +1 -6
  263. package/src/domain/agentshare/steps.ts +194 -41
  264. package/src/domain/environment/controller.ts +8 -5
  265. package/src/domain/executioncontext/controller.ts +1 -5
  266. package/src/domain/mcpserver/__tests__/mcpserver.test.ts +28 -115
  267. package/src/domain/mcpserver/__tests__/oauth-handshake.test.ts +18 -53
  268. package/src/domain/mcpserver/controller.ts +12 -6
  269. package/src/domain/plugin/controller.ts +23 -18
  270. package/src/domain/plugin/push.ts +16 -8
  271. package/src/domain/schedule/controller.ts +1 -6
  272. package/src/domain/session/controller.ts +4 -12
  273. package/src/domain/skill/__tests__/skill.test.ts +5 -3
  274. package/src/domain/skill/__tests__/slots.test.ts +113 -60
  275. package/src/domain/skill/__tests__/staging.test.ts +304 -0
  276. package/src/domain/skill/constants.ts +28 -3
  277. package/src/domain/skill/controller.ts +51 -35
  278. package/src/domain/skill/push.ts +3 -3
  279. package/src/domain/skill/transfer/handler.ts +33 -15
  280. package/src/domain/skill/transfer/slots.ts +89 -100
  281. package/src/domain/skill/transfer/staging.ts +191 -0
  282. package/src/domain/workflow/controller.ts +10 -28
  283. package/src/domain/workflow/registry/data/task-kind-registry.json +1 -1
  284. package/src/domain/workflow/validation/task-config-constraints.ts +3 -7
  285. package/src/domain/workflowexecution/controller.ts +2 -7
  286. package/src/domain/workflowinstance/controller.ts +12 -6
  287. package/src/extensions/__tests__/built-in-authorization-composed.test.ts +19 -32
  288. package/src/extensions/__tests__/extension-composition.test.ts +4 -4
  289. package/src/extensions/__tests__/list-read-scope-composed.test.ts +6 -9
  290. package/src/extensions/authorization-queries.ts +5 -6
  291. package/src/extensions/list-read-scope.ts +1 -1
  292. package/src/extensions/resource-authorization.ts +5 -3
  293. package/src/index.ts +14 -0
  294. package/src/pipeline/apiresource-meta.ts +10 -21
  295. package/src/pipeline/steps/__tests__/authorization-tuples.test.ts +31 -18
  296. package/src/pipeline/steps/__tests__/visibility-gates.test.ts +187 -0
  297. package/src/pipeline/steps/authorization-tuples.ts +11 -9
  298. package/src/pipeline/steps/references.ts +70 -578
  299. package/src/pipeline/steps/resolve-artifact-source.ts +20 -13
  300. package/src/pipeline/steps/visibility-gates.ts +174 -0
  301. package/src/query/search/__tests__/criteria.test.ts +4 -0
  302. package/src/query/search/__tests__/query-store.test.ts +40 -11
  303. package/src/query/search/controller.ts +1 -0
  304. package/src/query/search/criteria.ts +14 -0
  305. package/src/query/search/handler.ts +7 -6
  306. package/src/query/search/query-store.ts +2 -0
  307. package/src/store/__tests__/store-contract.ts +51 -6
  308. package/src/store/interface.ts +6 -3
  309. package/src/store/postgres/__tests__/migrations.test.ts +6 -187
  310. package/src/store/postgres/__tests__/store-contract.test.ts +2 -0
  311. package/src/store/postgres/migrations.ts +1 -48
  312. package/src/store/postgres/store.ts +11 -4
  313. package/src/store/sqlite/__tests__/migrations.test.ts +5 -191
  314. package/src/store/sqlite/migrations.ts +1 -45
  315. package/src/store/sqlite/store.ts +10 -4
  316. package/src/transport/registry/__tests__/lanes.test.ts +1 -1
  317. package/dist/domain/workflow/agent-call-references.d.ts +0 -54
  318. package/dist/domain/workflow/agent-call-references.d.ts.map +0 -1
  319. package/dist/domain/workflow/agent-call-references.js +0 -97
  320. package/dist/domain/workflow/agent-call-references.js.map +0 -1
  321. package/dist/store/public-visibility-retired.d.ts +0 -67
  322. package/dist/store/public-visibility-retired.d.ts.map +0 -1
  323. package/dist/store/public-visibility-retired.js +0 -55
  324. package/dist/store/public-visibility-retired.js.map +0 -1
  325. package/src/domain/workflow/__tests__/agent-call-references.test.ts +0 -222
  326. package/src/domain/workflow/agent-call-references.ts +0 -157
  327. package/src/pipeline/__tests__/supports-visibility.test.ts +0 -112
  328. package/src/pipeline/steps/__tests__/references.test.ts +0 -703
  329. package/src/store/__tests__/public-visibility-retired.test.ts +0 -127
  330. package/src/store/public-visibility-retired.ts +0 -119
@@ -1,254 +1,10 @@
1
- import { fromBinary, getOption, hasOption } from "@bufbuild/protobuf";
2
1
  import { reflect } from "@bufbuild/protobuf/reflect";
3
- import { AgentSchema } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
4
- import { ChannelAppSchema } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
5
- import { EnvironmentSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
6
2
  import { McpServerSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
7
- import { SkillSchema } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
8
3
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
9
- import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
10
- import { reference_kind } from "@stigmer/protos/ai/stigmer/commons/apiresource/field_options_pb";
11
- import { OAuthAppSchema } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/api_pb";
12
- import { failedPreconditionError, internalError, invalidArgumentError, } from "../errors.js";
4
+ import { failedPreconditionError, internalError } from "../errors.js";
5
+ import { findResourceBySlug } from "./helpers.js";
13
6
  import { messageFieldByName, metadataOf } from "./shapes.js";
14
7
  const API_RESOURCE_REFERENCE_TYPE = "ai.stigmer.commons.apiresource.ApiResourceReference";
15
- export const REFERENCE_TARGET_KINDS = [
16
- {
17
- kind: ApiResourceKind.skill,
18
- schema: SkillSchema,
19
- readByRun: true,
20
- label: "skill(s)",
21
- listHint: "stigmer list skills",
22
- },
23
- {
24
- kind: ApiResourceKind.mcp_server,
25
- schema: McpServerSchema,
26
- readByRun: true,
27
- label: "MCP server(s)",
28
- listHint: "stigmer get mcp-servers",
29
- },
30
- {
31
- kind: ApiResourceKind.agent,
32
- schema: AgentSchema,
33
- readByRun: true,
34
- label: "agent(s)",
35
- listHint: "stigmer list agents",
36
- },
37
- {
38
- kind: ApiResourceKind.environment,
39
- schema: EnvironmentSchema,
40
- readByRun: false,
41
- label: "environment(s)",
42
- listHint: "stigmer list environments",
43
- },
44
- {
45
- kind: ApiResourceKind.channel_app,
46
- schema: ChannelAppSchema,
47
- readByRun: false,
48
- label: "channel app(s)",
49
- listHint: "stigmer list channel-app",
50
- },
51
- {
52
- kind: ApiResourceKind.oauth_app,
53
- schema: OAuthAppSchema,
54
- readByRun: false,
55
- label: "OAuth app(s)",
56
- listHint: undefined,
57
- },
58
- ];
59
- export function referenceTargetKind(kind) {
60
- return REFERENCE_TARGET_KINDS.find((entry) => entry.kind === kind);
61
- }
62
- /**
63
- * Loads the rows the given references could name: one `listResources` per
64
- * distinct kind, decoded once, indexed by (org, slug). A row that does not
65
- * decode is skipped as the slug helpers skip it — it is not a row a
66
- * reference can reach. A reference whose kind is not in the table is a
67
- * contract the pin test has not admitted yet and is an internal fault.
68
- */
69
- export async function loadReferenceTargets(store, refs) {
70
- const byKind = new Map();
71
- for (const kind of new Set(refs.map((ref) => ref.kind))) {
72
- const entry = referenceTargetKind(kind);
73
- if (entry === undefined) {
74
- throw internalError(new Error(`kind ${ApiResourceKind[kind] ?? kind} is not a reference target`), "reference rule table has no entry for the referenced kind");
75
- }
76
- const index = new Map();
77
- for (const data of await store.listResources(kind)) {
78
- let metadata;
79
- try {
80
- metadata = metadataOf(fromBinary(entry.schema, data));
81
- }
82
- catch {
83
- continue;
84
- }
85
- if (metadata === undefined || metadata.slug === "") {
86
- continue;
87
- }
88
- index.set(targetKey(metadata.org, metadata.slug), metadata.visibility);
89
- }
90
- byKind.set(kind, index);
91
- }
92
- return {
93
- visibilityOf(ref) {
94
- return byKind.get(ref.kind)?.get(targetKey(ref.org, ref.slug));
95
- },
96
- };
97
- }
98
- function targetKey(org, slug) {
99
- return `${org}/${slug}`;
100
- }
101
- /** The three clauses of the module header, for one reference. */
102
- export function checkReference(targets, parent, ref) {
103
- if (ref.org === "") {
104
- return { kind: "no-org" };
105
- }
106
- const target = targets.visibilityOf(ref);
107
- if (ref.org !== parent.org) {
108
- return target === ApiResourceVisibility.visibility_platform
109
- ? { kind: "ok" }
110
- : { kind: "not-available" };
111
- }
112
- if (target === undefined) {
113
- return { kind: "missing" };
114
- }
115
- const entry = referenceTargetKind(ref.kind);
116
- if (entry?.readByRun === true &&
117
- visibilityRank(target) < visibilityRank(parent.visibility)) {
118
- return { kind: "below-floor", targetVisibility: target };
119
- }
120
- return { kind: "ok" };
121
- }
122
- /**
123
- * The order the floor compares on: private < org < platform, an unset
124
- * level reading as private (the level a row with no config holds). The
125
- * retired public level is unreachable here — refused at every door and
126
- * moved off every stored row by the store migration — so meeting it is a
127
- * fault, not a rank.
128
- */
129
- function visibilityRank(level) {
130
- switch (level) {
131
- case ApiResourceVisibility.api_resource_visibility_unspecified:
132
- case ApiResourceVisibility.visibility_private:
133
- return 0;
134
- case ApiResourceVisibility.visibility_org:
135
- return 1;
136
- case ApiResourceVisibility.visibility_platform:
137
- return 2;
138
- case ApiResourceVisibility.visibility_public:
139
- throw new Error("the retired public level has no rank");
140
- default: {
141
- const exhaustive = level;
142
- throw new Error(`unknown visibility level: ${String(exhaustive)}`);
143
- }
144
- }
145
- }
146
- // ---------------------------------------------------------------------------
147
- // The copy.
148
- // ---------------------------------------------------------------------------
149
- /** Clause (i)'s sentence. */
150
- export function noOrgReferenceMessage(entry, slug) {
151
- return `referenced ${entry.label} '${slug}' names no organization; a reference is 'org/slug', or 'slug' for a resource of this organization.`;
152
- }
153
- /**
154
- * Clause (ii)'s sentence for the targets not found, one per kind. The MCP
155
- * server form is the wire contract that predates the rule; the others are
156
- * its siblings.
157
- */
158
- export function missingReferencesMessage(entry, handles) {
159
- const list = handles.map((h) => `'${h.slug}' (org: ${h.org})`).join(", ");
160
- const hint = entry.listHint === undefined
161
- ? ""
162
- : ` Use '${entry.listHint}' to list available ${plural(entry)}.`;
163
- return `referenced ${entry.label} not found: ${list}. Verify the slug and org are correct.${hint}`;
164
- }
165
- /** Clause (ii)'s floor sentence: the dependency and its level, against the resource's. */
166
- export function belowFloorMessage(entry, ref, targetVisibility, parentVisibility) {
167
- return `referenced ${singular(entry)} '${ref.org}/${ref.slug}' is ${levelWord(targetVisibility)} while this resource is ${levelWord(parentVisibility)}; a resource may not be more visible than the ${plural(entry)} it runs with. Widen the referenced resource's visibility or narrow this one.`;
168
- }
169
- /** The level as the copy names it: an unset level reads as private, which is how every reader treats it. */
170
- function levelWord(level) {
171
- return level === ApiResourceVisibility.api_resource_visibility_unspecified
172
- ? ApiResourceVisibility[ApiResourceVisibility.visibility_private]
173
- : ApiResourceVisibility[level];
174
- }
175
- /** Clause (iii)'s one sentence — the same whether the target is missing or not platform-visible. */
176
- export function notAvailableReferenceMessage(entry, ref) {
177
- return `referenced ${singular(entry)} '${ref.org}/${ref.slug}' is not available to this organization; another organization's resource can be referenced only when that organization shares it at platform visibility.`;
178
- }
179
- /** "MCP server(s)" → "MCP server" and "MCP servers": the label's two readings. */
180
- function singular(entry) {
181
- return entry.label.replace("(s)", "");
182
- }
183
- function plural(entry) {
184
- return entry.label.replace("(s)", "s");
185
- }
186
- /**
187
- * The refusal for a set of verdicts, or undefined when every one is ok.
188
- * Missing same-organization targets are grouped per kind into one sentence
189
- * (the contract's shape); every other refusal is its own sentence; the
190
- * sentences are joined in the order the references were read. A no-org
191
- * reference is malformed input (INVALID_ARGUMENT); everything else is a
192
- * precondition the store does not meet (FAILED_PRECONDITION), the code the
193
- * MCP-server contract already answers.
194
- */
195
- export function referenceRefusal(parent, verdicts) {
196
- // Missing same-organization targets, grouped per kind in the order the
197
- // first of each kind was read.
198
- const missingByKind = new Map();
199
- for (const { ref, verdict } of verdicts) {
200
- if (verdict.kind === "missing") {
201
- const held = missingByKind.get(ref.kind);
202
- if (held === undefined) {
203
- missingByKind.set(ref.kind, [ref]);
204
- }
205
- else {
206
- held.push(ref);
207
- }
208
- }
209
- }
210
- const sentences = [];
211
- const groupedKindsSaid = new Set();
212
- let malformed = false;
213
- for (const { ref, verdict } of verdicts) {
214
- const entry = referenceTargetKind(ref.kind);
215
- if (entry === undefined) {
216
- continue;
217
- }
218
- switch (verdict.kind) {
219
- case "ok":
220
- break;
221
- case "no-org":
222
- malformed = true;
223
- sentences.push(noOrgReferenceMessage(entry, ref.slug));
224
- break;
225
- case "missing":
226
- if (!groupedKindsSaid.has(ref.kind)) {
227
- groupedKindsSaid.add(ref.kind);
228
- sentences.push(missingReferencesMessage(entry, missingByKind.get(ref.kind) ?? []));
229
- }
230
- break;
231
- case "below-floor":
232
- sentences.push(belowFloorMessage(entry, ref, verdict.targetVisibility, parent.visibility));
233
- break;
234
- case "not-available":
235
- sentences.push(notAvailableReferenceMessage(entry, ref));
236
- break;
237
- default: {
238
- const exhaustive = verdict;
239
- throw new Error(`unknown verdict: ${JSON.stringify(exhaustive)}`);
240
- }
241
- }
242
- }
243
- if (sentences.length === 0) {
244
- return undefined;
245
- }
246
- const text = sentences.join(" ");
247
- return malformed ? invalidArgumentError(text) : failedPreconditionError(text);
248
- }
249
- // ---------------------------------------------------------------------------
250
- // The steps.
251
- // ---------------------------------------------------------------------------
252
8
  export function newNormalizeReferencesStep() {
253
9
  return {
254
10
  name: "NormalizeReferences",
@@ -257,8 +13,8 @@ export function newNormalizeReferencesStep() {
257
13
  if (metadata === undefined) {
258
14
  throw internalError(new Error("resource metadata is nil"), "normalize references");
259
15
  }
260
- // No org to resolve from — skip silently; the rule's first clause
261
- // refuses a reference left without one.
16
+ // No org to resolve from — skip silently; required-org validation is
17
+ // the validation step's responsibility, not this one's.
262
18
  if (metadata.org === "") {
263
19
  return;
264
20
  }
@@ -275,115 +31,58 @@ export function newValidateReferencesStep(store) {
275
31
  return {
276
32
  name: "ValidateReferences",
277
33
  async execute(ctx) {
278
- const metadata = metadataOf(ctx.newState);
279
- if (metadata === undefined) {
280
- throw internalError(new Error("resource metadata is nil"), "validate references");
281
- }
282
- const refs = collectSpecReferences(ctx.schema, ctx.newState).filter((ref) => ref.slug !== "");
283
- if (refs.length === 0) {
284
- return;
285
- }
286
- const parent = {
287
- org: metadata.org,
288
- visibility: metadata.visibility,
289
- };
290
- const refusal = await checkReferences(store, parent, refs);
291
- if (refusal !== undefined) {
292
- throw refusal;
293
- }
294
- },
295
- };
296
- }
297
- /** The rule over a collected list: load once, check each, render the refusal. */
298
- export async function checkReferences(store, parent, refs) {
299
- const targets = await loadReferenceTargets(store, refs);
300
- return referenceRefusal(parent, refs.map((ref) => ({ ref, verdict: checkReference(targets, parent, ref) })));
301
- }
302
- /**
303
- * The floor's second door (the module header): on an updateVisibility chain,
304
- * after the loaded row is on the context under `targetKey` and after
305
- * ValidateVisibilityUpdate, refuses raising the level while a run-read
306
- * reference the row carries would end below it.
307
- */
308
- export function newGuardReferenceFloorOnEscalationStep(store, targetKey, collectors) {
309
- return {
310
- name: "GuardReferenceFloorOnEscalation",
311
- async execute(ctx) {
312
- const row = ctx.get(targetKey);
313
- if (row === undefined) {
314
- // Wiring error, not a user error: a guard that silently passes
315
- // un-guards the boundary it exists to protect.
316
- throw internalError(new Error("GuardReferenceFloorOnEscalation ran without a loaded target — the step must follow the load step"), "reference floor requires the loaded resource");
317
- }
318
- const metadata = metadataOf(row);
319
- if (metadata === undefined) {
320
- throw internalError(new Error("resource metadata is nil"), "reference floor requires the loaded resource");
321
- }
322
- const requested = ctx.input.visibility;
323
- if (visibilityRank(requested) <= visibilityRank(metadata.visibility)) {
324
- return;
325
- }
326
- const refs = collectors
327
- .flatMap((collect) => collect(row))
328
- .filter((ref) => ref.slug !== "");
329
- if (refs.length === 0) {
330
- return;
34
+ const refs = [];
35
+ forEachSpecReference(ctx.schema, ctx.newState, (ref) => {
36
+ refs.push({
37
+ kind: numberField(ref, "kind"),
38
+ slug: stringField(ref, "slug"),
39
+ org: stringField(ref, "org"),
40
+ });
41
+ });
42
+ const missingMcpServers = [];
43
+ for (const ref of refs) {
44
+ if (ref.slug === "") {
45
+ continue;
46
+ }
47
+ // Per-kind validation, exactly Go's switch: only mcp_server today.
48
+ if (ref.kind === ApiResourceKind.mcp_server) {
49
+ const found = await findResourceBySlug(store, ApiResourceKind.mcp_server, McpServerSchema, ref.slug, ref.org);
50
+ if (found === undefined) {
51
+ missingMcpServers.push(`'${ref.slug}' (org: ${ref.org})`);
52
+ }
53
+ }
331
54
  }
332
- const parent = {
333
- org: metadata.org,
334
- visibility: requested,
335
- };
336
- const targets = await loadReferenceTargets(store, refs);
337
- const refusal = referenceRefusal(parent, refs
338
- .map((ref) => ({
339
- ref,
340
- verdict: checkReference(targets, parent, ref),
341
- }))
342
- .filter(({ verdict }) => verdict.kind === "below-floor"));
343
- if (refusal !== undefined) {
344
- throw refusal;
55
+ if (missingMcpServers.length > 0) {
56
+ throw failedPreconditionError(`referenced MCP server(s) not found: ${missingMcpServers.join(", ")}. ` +
57
+ "Verify the slug and org are correct. " +
58
+ "Use 'stigmer get mcp-servers' to list available MCP servers.");
345
59
  }
346
60
  },
347
61
  };
348
62
  }
349
- // ---------------------------------------------------------------------------
350
- // The walk.
351
- // ---------------------------------------------------------------------------
352
63
  /**
353
- * Every ApiResourceReference in a resource's spec, each with the kind its
354
- * field declares — the walk both steps run, exported for the readers that
355
- * ask the reverse question ("who references this?"): the plugin delete
356
- * guard scans an organization's agents and workflows for references to a
357
- * member it is about to remove.
64
+ * Every ApiResourceReference in a resource's spec — the same walk
65
+ * ValidateReferences runs, exported for the readers that ask the reverse
66
+ * question ("who references this?"): the plugin delete guard scans an
67
+ * organization's agents and workflows for references to a member it is
68
+ * about to remove.
358
69
  */
359
70
  export function collectSpecReferences(schema, msg) {
360
71
  const refs = [];
361
- forEachSpecReference(schema, msg, (ref, field) => {
72
+ forEachSpecReference(schema, msg, (ref) => {
362
73
  refs.push({
363
- kind: declaredKind(field, ref),
74
+ kind: numberField(ref, "kind"),
364
75
  slug: stringField(ref, "slug"),
365
76
  org: stringField(ref, "org"),
366
77
  });
367
78
  });
368
79
  return refs;
369
80
  }
370
- /**
371
- * The kind a reference names: the field's `reference_kind` option when the
372
- * contract declares one (every reference field does), else the kind the
373
- * message carries (the walk's only fallback, for a field the contract has
374
- * not annotated).
375
- */
376
- function declaredKind(field, ref) {
377
- if (hasOption(field, reference_kind)) {
378
- return getOption(field, reference_kind);
379
- }
380
- return numberField(ref, "kind");
381
- }
382
81
  /**
383
82
  * Walks the resource's spec and invokes fn on every ApiResourceReference
384
- * (singular, repeated, and map-valued message fields, recursively) with
385
- * the field that holds it. Mutations through the ReflectMessage write
386
- * through.
83
+ * (singular, repeated, and map-valued message fields, recursively) —
84
+ * the shared traversal behind both steps (Go walkAndResolveOrg /
85
+ * walkAndCollectRefs). Mutations through the ReflectMessage write through.
387
86
  */
388
87
  function forEachSpecReference(schema, msg, fn) {
389
88
  const root = reflect(schema, msg);
@@ -400,7 +99,7 @@ function walk(msg, fn) {
400
99
  continue;
401
100
  }
402
101
  for (const item of msg.get(field)) {
403
- visit(item, field, fn);
102
+ visit(item, fn);
404
103
  }
405
104
  }
406
105
  else if (field.fieldKind === "map") {
@@ -409,20 +108,20 @@ function walk(msg, fn) {
409
108
  }
410
109
  const map = msg.get(field);
411
110
  for (const [, value] of map) {
412
- visit(value, field, fn);
111
+ visit(value, fn);
413
112
  }
414
113
  }
415
114
  else if (field.fieldKind === "message") {
416
115
  if (!msg.isSet(field)) {
417
116
  continue;
418
117
  }
419
- visit(msg.get(field), field, fn);
118
+ visit(msg.get(field), fn);
420
119
  }
421
120
  }
422
121
  }
423
- function visit(sub, field, fn) {
122
+ function visit(sub, fn) {
424
123
  if (sub.desc.typeName === API_RESOURCE_REFERENCE_TYPE) {
425
- fn(sub, field);
124
+ fn(sub);
426
125
  }
427
126
  else {
428
127
  walk(sub, fn);
@@ -1 +1 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/pipeline/steps/references.ts"],"names":[],"mappings":"AAgFA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yDAAyD,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AACtH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,iEAAiE,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAGnF,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,2BAA2B,GAC/B,qDAAqD,CAAC;AAkBxD,MAAM,CAAC,MAAM,sBAAsB,GAAuC;IACxE;QACE,IAAI,EAAE,eAAe,CAAC,KAAK;QAC3B,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,qBAAqB;KAChC;IACD;QACE,IAAI,EAAE,eAAe,CAAC,UAAU;QAChC,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE,yBAAyB;KACpC;IACD;QACE,IAAI,EAAE,eAAe,CAAC,KAAK;QAC3B,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,qBAAqB;KAChC;IACD;QACE,IAAI,EAAE,eAAe,CAAC,WAAW;QACjC,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,2BAA2B;KACtC;IACD;QACE,IAAI,EAAE,eAAe,CAAC,WAAW;QACjC,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,0BAA0B;KACrC;IACD;QACE,IAAI,EAAE,eAAe,CAAC,SAAS;QAC/B,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF,MAAM,UAAU,mBAAmB,CACjC,IAAqB;IAErB,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrE,CAAC;AAuCD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAY,EACZ,IAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuD,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,aAAa,CACjB,IAAI,KAAK,CACP,QAAQ,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,4BAA4B,CAClE,EACD,2DAA2D,CAC5D,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBACnD,SAAS;YACX,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO;QACL,YAAY,CAAC,GAAG;YACd,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,IAAY;IAC1C,OAAO,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAC5B,OAAyB,EACzB,MAAuB,EACvB,GAAkB;IAElB,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,MAAM,KAAK,qBAAqB,CAAC,mBAAmB;YACzD,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;YAChB,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,IACE,KAAK,EAAE,SAAS,KAAK,IAAI;QACzB,cAAc,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAC1D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,KAA4B;IAClD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,qBAAqB,CAAC,mCAAmC,CAAC;QAC/D,KAAK,qBAAqB,CAAC,kBAAkB;YAC3C,OAAO,CAAC,CAAC;QACX,KAAK,qBAAqB,CAAC,cAAc;YACvC,OAAO,CAAC,CAAC;QACX,KAAK,qBAAqB,CAAC,mBAAmB;YAC5C,OAAO,CAAC,CAAC;QACX,KAAK,qBAAqB,CAAC,iBAAiB;YAC1C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,KAAK,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,6BAA6B;AAC7B,MAAM,UAAU,qBAAqB,CACnC,KAA0B,EAC1B,IAAY;IAEZ,OAAO,cAAc,KAAK,CAAC,KAAK,KAAK,IAAI,oGAAoG,CAAC;AAChJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA0B,EAC1B,OAAuE;IAEvE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,IAAI,GACR,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,uBAAuB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACrE,OAAO,cAAc,KAAK,CAAC,KAAK,eAAe,IAAI,yCAAyC,IAAI,EAAE,CAAC;AACrG,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAC/B,KAA0B,EAC1B,GAAkB,EAClB,gBAAuC,EACvC,gBAAuC;IAEvC,OAAO,cAAc,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,QAAQ,SAAS,CAAC,gBAAgB,CAAC,2BAA2B,SAAS,CAAC,gBAAgB,CAAC,iDAAiD,MAAM,CAAC,KAAK,CAAC,+EAA+E,CAAC;AACrS,CAAC;AAED,4GAA4G;AAC5G,SAAS,SAAS,CAAC,KAA4B;IAC7C,OAAO,KAAK,KAAK,qBAAqB,CAAC,mCAAmC;QACxE,CAAC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC;QACjE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,4BAA4B,CAC1C,KAA0B,EAC1B,GAAkB;IAElB,OAAO,cAAc,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,0JAA0J,CAAC;AACzN,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,KAA0B;IAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,MAAM,CAAC,KAA0B;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAuB,EACvB,QAGE;IAEF,uEAAuE;IACvE,+BAA+B;IAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoC,CAAC;IAClE,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,IAAI;gBACP,MAAM;YACR,KAAK,QAAQ;gBACX,SAAS,GAAG,IAAI,CAAC;gBACjB,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC/B,SAAS,CAAC,IAAI,CACZ,wBAAwB,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CACnE,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,KAAK,aAAa;gBAChB,SAAS,CAAC,IAAI,CACZ,iBAAiB,CACf,KAAK,EACL,GAAG,EACH,OAAO,CAAC,gBAAgB,EACxB,MAAM,CAAC,UAAU,CAClB,CACF,CAAC;gBACF,MAAM;YACR,KAAK,eAAe;gBAClB,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzD,MAAM;YACR,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,UAAU,GAAU,OAAO,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B;IAGxC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,OAAO,CAAC,GAAyB;YAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,aAAa,CACjB,IAAI,KAAK,CAAC,0BAA0B,CAAC,EACrC,sBAAsB,CACvB,CAAC;YACJ,CAAC;YACD,kEAAkE;YAClE,wCAAwC;YACxC,IAAI,QAAQ,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,oBAAoB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAC1D,IAAI,QAAQ,KAAK,SAAS,IAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAY,KAAK,EAAE,EAAE,CAAC;oBACnE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAY;IAEZ,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,KAAK,CAAC,OAAO,CAAC,GAAyB;YACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,aAAa,CACjB,IAAI,KAAK,CAAC,0BAA0B,CAAC,EACrC,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CACjE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CACzB,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAoB;gBAC9B,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC;YAChB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAY,EACZ,MAAuB,EACvB,IAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,gBAAgB,CACrB,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC;AAKD;;;;;GAKG;AACH,MAAM,UAAU,sCAAsC,CACpD,KAAY,EACZ,SAAiB,EACjB,UAA6C;IAE7C,OAAO;QACL,IAAI,EAAE,iCAAiC;QACvC,KAAK,CAAC,OAAO,CACX,GAAuD;YAEvD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAwB,CAAC;YACtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,+DAA+D;gBAC/D,+CAA+C;gBAC/C,MAAM,aAAa,CACjB,IAAI,KAAK,CACP,kGAAkG,CACnG,EACD,8CAA8C,CAC/C,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,aAAa,CACjB,IAAI,KAAK,CAAC,0BAA0B,CAAC,EACrC,8CAA8C,CAC/C,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,UAAU;iBACpB,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBAClC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAoB;gBAC9B,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,UAAU,EAAE,SAAS;aACtB,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,gBAAgB,CAC9B,MAAM,EACN,IAAI;iBACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,GAAG;gBACH,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC;aAC9C,CAAC,CAAC;iBACF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC,CAC3D,CAAC;YACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,CAAC;YAChB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAmB,EACnB,GAAkC;IAElC,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC/C,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;YAC9B,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;YAC9B,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAgB,EAAE,GAAmB;IACzD,IAAI,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,CAAoB,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,MAAmB,EACnB,GAAkC,EAClC,EAAmD;IAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,IAAI,CACX,GAAmB,EACnB,EAAmD;IAEnD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAsB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;gBAC5B,KAAK,CAAC,KAAuB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CACZ,GAAmB,EACnB,KAAgB,EAChB,EAAmD;IAEnD,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,2BAA2B,EAAE,CAAC;QACtD,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAmB,EAAE,IAAY;IACpD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,GAAmB,EAAE,IAAY;IACpD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/pipeline/steps/references.ts"],"names":[],"mappings":"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"}
@@ -8,17 +8,20 @@
8
8
  * are indistinguishable past this point.
9
9
  *
10
10
  * Skills carried this step alone (the Go ResolveArtifactSource port);
11
- * plugins are pushed the same two ways over the same upload slots (one
12
- * upload surface, as boot/compose.ts wires it), so the step lives
13
- * here and each kind names its lane-absent sentence and the request
14
- * fields it reads.
11
+ * plugins are pushed the same two ways over the same staging port (one
12
+ * upload surface, as boot/compose.ts wires it), so the step lives here
13
+ * and each kind names its lane-absent sentence and the request fields it
14
+ * reads. The staging port (domain/skill/transfer/staging.ts) hides which
15
+ * blob driver holds the bytes: the step never sees a slot or a bucket.
15
16
  *
16
17
  * The unusable-reference arm is INVALID_ARGUMENT, not a server fault: an
17
- * unknown, expired, already consumed, or minted-but-never-uploaded
18
- * reference all mean the client must re-mint and re-upload.
18
+ * unknown, expired, already consumed, or never-uploaded reference all mean
19
+ * the client must re-mint and re-upload. Any other failure reading the
20
+ * staged bytes is the driver's — an infrastructure fault the executor
21
+ * answers as a sanitized Internal, never dressed as the client's mistake.
19
22
  */
20
23
  import type { DescMessage, MessageShape } from "@bufbuild/protobuf";
21
- import type { UploadSlots } from "../../domain/skill/transfer/slots.js";
24
+ import type { ArchiveStaging } from "../../domain/skill/transfer/staging.js";
22
25
  import type { PipelineStep } from "../pipeline.js";
23
26
  /** Where the resolved bytes ride for every downstream step. */
24
27
  export declare const ARTIFACT_BYTES_KEY = "pushArtifactBytes";
@@ -31,5 +34,5 @@ export interface ArtifactSourceBinding<Desc extends DescMessage> {
31
34
  /** The FailedPrecondition copy when no lane is configured; each kind pins its own. */
32
35
  readonly laneNotConfigured: string;
33
36
  }
34
- export declare function newResolveArtifactSourceStep<Desc extends DescMessage>(slots: UploadSlots | undefined, binding: ArtifactSourceBinding<Desc>): PipelineStep<Desc>;
37
+ export declare function newResolveArtifactSourceStep<Desc extends DescMessage>(staging: ArchiveStaging | undefined, binding: ArtifactSourceBinding<Desc>): PipelineStep<Desc>;
35
38
  //# sourceMappingURL=resolve-artifact-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-artifact-source.d.ts","sourceRoot":"","sources":["../../../src/pipeline/steps/resolve-artifact-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,MAAM,WAAW,qBAAqB,CAAC,IAAI,SAAS,WAAW;IAC7D,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG;QACjC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACpC,CAAC;IACF,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,4BAA4B,CAAC,IAAI,SAAS,WAAW,EACnE,KAAK,EAAE,WAAW,GAAG,SAAS,EAC9B,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,GACnC,YAAY,CAAC,IAAI,CAAC,CAuBpB"}
1
+ {"version":3,"file":"resolve-artifact-source.d.ts","sourceRoot":"","sources":["../../../src/pipeline/steps/resolve-artifact-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,MAAM,WAAW,qBAAqB,CAAC,IAAI,SAAS,WAAW;IAC7D,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG;QACjC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;KACpC,CAAC;IACF,sFAAsF;IACtF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,wBAAgB,4BAA4B,CAAC,IAAI,SAAS,WAAW,EACnE,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,GACnC,YAAY,CAAC,IAAI,CAAC,CA0BpB"}
@@ -1,7 +1,8 @@
1
+ import { SlotUnknownError } from "../../domain/skill/transfer/slots.js";
1
2
  import { failedPreconditionError, invalidArgumentError } from "../errors.js";
2
3
  /** Where the resolved bytes ride for every downstream step. */
3
4
  export const ARTIFACT_BYTES_KEY = "pushArtifactBytes";
4
- export function newResolveArtifactSourceStep(slots, binding) {
5
+ export function newResolveArtifactSourceStep(staging, binding) {
5
6
  return {
6
7
  name: "ResolveArtifactSource",
7
8
  async execute(ctx) {
@@ -10,15 +11,18 @@ export function newResolveArtifactSourceStep(slots, binding) {
10
11
  ctx.set(ARTIFACT_BYTES_KEY, artifact);
11
12
  return;
12
13
  }
13
- if (slots === undefined) {
14
+ if (staging === undefined) {
14
15
  throw failedPreconditionError(binding.laneNotConfigured);
15
16
  }
16
17
  let data;
17
18
  try {
18
- data = await slots.consume(artifactUploadRef);
19
+ data = await staging.consume(artifactUploadRef);
19
20
  }
20
21
  catch (error) {
21
- throw invalidArgumentError(`artifact_upload_ref not usable: ${error instanceof Error ? error.message : String(error)} — request a new upload URL via createArtifactUploadUrl`);
22
+ if (error instanceof SlotUnknownError) {
23
+ throw invalidArgumentError(`artifact_upload_ref not usable: ${error.message} — request a new upload URL via createArtifactUploadUrl`);
24
+ }
25
+ throw error;
22
26
  }
23
27
  ctx.set(ARTIFACT_BYTES_KEY, data);
24
28
  },
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-artifact-source.js","sourceRoot":"","sources":["../../../src/pipeline/steps/resolve-artifact-source.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAI7E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAYtD,MAAM,UAAU,4BAA4B,CAC1C,KAA8B,EAC9B,OAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CAAC,OAAO,CAAC,GAAyB;YACrC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,iBAAiB,KAAK,EAAE,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,uBAAuB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,IAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,oBAAoB,CACxB,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CACnJ,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve-artifact-source.js","sourceRoot":"","sources":["../../../src/pipeline/steps/resolve-artifact-source.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAI7E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAYtD,MAAM,UAAU,4BAA4B,CAC1C,OAAmC,EACnC,OAAoC;IAEpC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CAAC,OAAO,CAAC,GAAyB;YACrC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,iBAAiB,KAAK,EAAE,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,uBAAuB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,IAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;oBACtC,MAAM,oBAAoB,CACxB,mCAAmC,KAAK,CAAC,OAAO,yDAAyD,CAC1G,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { DescMessage } from "@bufbuild/protobuf";
2
+ import type { Authorizer } from "../../extensions/authorizer.js";
3
+ import type { CallerIdentity } from "../../extensions/identity.js";
4
+ import type { PipelineStep } from "../pipeline.js";
5
+ /**
6
+ * The denial callers see at both doors (the Java policy copy verbatim).
7
+ * Deliberately not byte-pinned by the OSS conformance suite; the cloud
8
+ * gate itself is recorded via the clientPublicVisibilityWrites flag.
9
+ */
10
+ export declare const PUBLIC_VISIBILITY_DENY_MESSAGE: string;
11
+ /** The CREATE door: a new state declaring PUBLIC needs the operator grant. */
12
+ export declare function newGuardPublicVisibilityStep<Desc extends DescMessage>(authorizer: Authorizer): PipelineStep<Desc>;
13
+ /**
14
+ * The UPDATE door: escalation to PUBLIC (the stored level is anything
15
+ * else) needs the operator grant. Reads the loaded target from the
16
+ * chain's own context key (every updateVisibility chain stores it —
17
+ * the RecordVisibilityBeforeUpdate pattern).
18
+ */
19
+ export declare function newAuthorizeVisibilityTransitionStep<Desc extends DescMessage>(targetKey: string, authorizer: Authorizer): PipelineStep<Desc>;
20
+ /**
21
+ * The single owner of "may this caller set public?" — both doors call it,
22
+ * and so does the plugin push chain, whose requested level rides the
23
+ * request (the level then flows to every member through the members' own
24
+ * create and updateVisibility doors, which run this check again).
25
+ */
26
+ export declare function requireOperatorMaySetPublic(authorizer: Authorizer, caller: CallerIdentity): Promise<void>;
27
+ //# sourceMappingURL=visibility-gates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility-gates.d.ts","sourceRoot":"","sources":["../../../src/pipeline/steps/visibility-gates.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,QAEU,CAAC;AAEtD,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAAC,IAAI,SAAS,WAAW,EACnE,UAAU,EAAE,UAAU,GACrB,YAAY,CAAC,IAAI,CAAC,CAgBpB;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAAC,IAAI,SAAS,WAAW,EAC3E,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,YAAY,CAAC,IAAI,CAAC,CA+BpB;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Bf"}