@stigmer/server 3.15.3-dev.20260914100347 → 3.15.3-dev.20260916211208

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 (570) hide show
  1. package/README.md +3 -3
  2. package/dist/archive/content-store.d.ts +35 -0
  3. package/dist/archive/content-store.d.ts.map +1 -0
  4. package/dist/archive/content-store.js +98 -0
  5. package/dist/archive/content-store.js.map +1 -0
  6. package/dist/archive/inflate.d.ts +22 -0
  7. package/dist/archive/inflate.d.ts.map +1 -0
  8. package/dist/archive/inflate.js +75 -0
  9. package/dist/archive/inflate.js.map +1 -0
  10. package/dist/archive/limits.d.ts +33 -0
  11. package/dist/archive/limits.d.ts.map +1 -0
  12. package/dist/archive/limits.js +31 -0
  13. package/dist/archive/limits.js.map +1 -0
  14. package/dist/archive/open.d.ts +24 -0
  15. package/dist/archive/open.d.ts.map +1 -0
  16. package/dist/archive/open.js +93 -0
  17. package/dist/archive/open.js.map +1 -0
  18. package/dist/{domain/skill/storage → archive}/prefilter.d.ts +5 -0
  19. package/dist/archive/prefilter.d.ts.map +1 -0
  20. package/dist/archive/prefilter.js.map +1 -0
  21. package/dist/archive/write.d.ts +8 -0
  22. package/dist/archive/write.d.ts.map +1 -0
  23. package/dist/archive/write.js +44 -0
  24. package/dist/archive/write.js.map +1 -0
  25. package/dist/authorization/authorizer.d.ts +98 -0
  26. package/dist/authorization/authorizer.d.ts.map +1 -0
  27. package/dist/authorization/authorizer.js +156 -0
  28. package/dist/authorization/authorizer.js.map +1 -0
  29. package/dist/authorization/derived-tuples.d.ts +42 -0
  30. package/dist/authorization/derived-tuples.d.ts.map +1 -0
  31. package/dist/authorization/derived-tuples.js +240 -0
  32. package/dist/authorization/derived-tuples.js.map +1 -0
  33. package/dist/authorization/evaluator.d.ts +66 -0
  34. package/dist/authorization/evaluator.d.ts.map +1 -0
  35. package/dist/authorization/evaluator.js +153 -0
  36. package/dist/authorization/evaluator.js.map +1 -0
  37. package/dist/authorization/facts.d.ts +29 -0
  38. package/dist/authorization/facts.d.ts.map +1 -0
  39. package/dist/authorization/facts.js +17 -0
  40. package/dist/authorization/facts.js.map +1 -0
  41. package/dist/authorization/list-read-scope.d.ts +18 -0
  42. package/dist/authorization/list-read-scope.d.ts.map +1 -0
  43. package/dist/authorization/list-read-scope.js +155 -0
  44. package/dist/authorization/list-read-scope.js.map +1 -0
  45. package/dist/authorization/model/agent.d.ts +2 -0
  46. package/dist/authorization/model/agent.d.ts.map +1 -0
  47. package/dist/authorization/model/agent.js +42 -0
  48. package/dist/authorization/model/agent.js.map +1 -0
  49. package/dist/authorization/model/agent_channel.d.ts +2 -0
  50. package/dist/authorization/model/agent_channel.d.ts.map +1 -0
  51. package/dist/authorization/model/agent_channel.js +38 -0
  52. package/dist/authorization/model/agent_channel.js.map +1 -0
  53. package/dist/authorization/model/agent_execution.d.ts +2 -0
  54. package/dist/authorization/model/agent_execution.d.ts.map +1 -0
  55. package/dist/authorization/model/agent_execution.js +25 -0
  56. package/dist/authorization/model/agent_execution.js.map +1 -0
  57. package/dist/authorization/model/agent_instance.d.ts +2 -0
  58. package/dist/authorization/model/agent_instance.d.ts.map +1 -0
  59. package/dist/authorization/model/agent_instance.js +47 -0
  60. package/dist/authorization/model/agent_instance.js.map +1 -0
  61. package/dist/authorization/model/agent_share.d.ts +2 -0
  62. package/dist/authorization/model/agent_share.d.ts.map +1 -0
  63. package/dist/authorization/model/agent_share.js +29 -0
  64. package/dist/authorization/model/agent_share.js.map +1 -0
  65. package/dist/authorization/model/api_key.d.ts +2 -0
  66. package/dist/authorization/model/api_key.d.ts.map +1 -0
  67. package/dist/authorization/model/api_key.js +27 -0
  68. package/dist/authorization/model/api_key.js.map +1 -0
  69. package/dist/authorization/model/artifact.d.ts +2 -0
  70. package/dist/authorization/model/artifact.d.ts.map +1 -0
  71. package/dist/authorization/model/artifact.js +27 -0
  72. package/dist/authorization/model/artifact.js.map +1 -0
  73. package/dist/authorization/model/channel_app.d.ts +2 -0
  74. package/dist/authorization/model/channel_app.d.ts.map +1 -0
  75. package/dist/authorization/model/channel_app.js +28 -0
  76. package/dist/authorization/model/channel_app.js.map +1 -0
  77. package/dist/authorization/model/default-of.d.ts +38 -0
  78. package/dist/authorization/model/default-of.d.ts.map +1 -0
  79. package/dist/authorization/model/default-of.js +39 -0
  80. package/dist/authorization/model/default-of.js.map +1 -0
  81. package/dist/authorization/model/environment.d.ts +2 -0
  82. package/dist/authorization/model/environment.d.ts.map +1 -0
  83. package/dist/authorization/model/environment.js +33 -0
  84. package/dist/authorization/model/environment.js.map +1 -0
  85. package/dist/authorization/model/execution_context.d.ts +2 -0
  86. package/dist/authorization/model/execution_context.d.ts.map +1 -0
  87. package/dist/authorization/model/execution_context.js +19 -0
  88. package/dist/authorization/model/execution_context.js.map +1 -0
  89. package/dist/authorization/model/iam_policy.d.ts +2 -0
  90. package/dist/authorization/model/iam_policy.d.ts.map +1 -0
  91. package/dist/authorization/model/iam_policy.js +31 -0
  92. package/dist/authorization/model/iam_policy.js.map +1 -0
  93. package/dist/authorization/model/identity_account.d.ts +2 -0
  94. package/dist/authorization/model/identity_account.d.ts.map +1 -0
  95. package/dist/authorization/model/identity_account.js +25 -0
  96. package/dist/authorization/model/identity_account.js.map +1 -0
  97. package/dist/authorization/model/index.d.ts +36 -0
  98. package/dist/authorization/model/index.d.ts.map +1 -0
  99. package/dist/authorization/model/index.js +72 -0
  100. package/dist/authorization/model/index.js.map +1 -0
  101. package/dist/authorization/model/mcp_server.d.ts +2 -0
  102. package/dist/authorization/model/mcp_server.d.ts.map +1 -0
  103. package/dist/authorization/model/mcp_server.js +37 -0
  104. package/dist/authorization/model/mcp_server.js.map +1 -0
  105. package/dist/authorization/model/memory.d.ts +2 -0
  106. package/dist/authorization/model/memory.d.ts.map +1 -0
  107. package/dist/authorization/model/memory.js +26 -0
  108. package/dist/authorization/model/memory.js.map +1 -0
  109. package/dist/authorization/model/oauth_app.d.ts +2 -0
  110. package/dist/authorization/model/oauth_app.d.ts.map +1 -0
  111. package/dist/authorization/model/oauth_app.js +30 -0
  112. package/dist/authorization/model/oauth_app.js.map +1 -0
  113. package/dist/authorization/model/organization.d.ts +2 -0
  114. package/dist/authorization/model/organization.d.ts.map +1 -0
  115. package/dist/authorization/model/organization.js +54 -0
  116. package/dist/authorization/model/organization.js.map +1 -0
  117. package/dist/authorization/model/plugin.d.ts +2 -0
  118. package/dist/authorization/model/plugin.d.ts.map +1 -0
  119. package/dist/authorization/model/plugin.js +44 -0
  120. package/dist/authorization/model/plugin.js.map +1 -0
  121. package/dist/authorization/model/project.d.ts +2 -0
  122. package/dist/authorization/model/project.d.ts.map +1 -0
  123. package/dist/authorization/model/project.js +32 -0
  124. package/dist/authorization/model/project.js.map +1 -0
  125. package/dist/authorization/model/rewrite.d.ts +127 -0
  126. package/dist/authorization/model/rewrite.d.ts.map +1 -0
  127. package/dist/authorization/model/rewrite.js +82 -0
  128. package/dist/authorization/model/rewrite.js.map +1 -0
  129. package/dist/authorization/model/schedule.d.ts +2 -0
  130. package/dist/authorization/model/schedule.d.ts.map +1 -0
  131. package/dist/authorization/model/schedule.js +29 -0
  132. package/dist/authorization/model/schedule.js.map +1 -0
  133. package/dist/authorization/model/session.d.ts +2 -0
  134. package/dist/authorization/model/session.d.ts.map +1 -0
  135. package/dist/authorization/model/session.js +38 -0
  136. package/dist/authorization/model/session.js.map +1 -0
  137. package/dist/authorization/model/skill.d.ts +2 -0
  138. package/dist/authorization/model/skill.d.ts.map +1 -0
  139. package/dist/authorization/model/skill.js +38 -0
  140. package/dist/authorization/model/skill.js.map +1 -0
  141. package/dist/authorization/model/workflow.d.ts +2 -0
  142. package/dist/authorization/model/workflow.d.ts.map +1 -0
  143. package/dist/authorization/model/workflow.js +38 -0
  144. package/dist/authorization/model/workflow.js.map +1 -0
  145. package/dist/authorization/model/workflow_execution.d.ts +2 -0
  146. package/dist/authorization/model/workflow_execution.d.ts.map +1 -0
  147. package/dist/authorization/model/workflow_execution.js +32 -0
  148. package/dist/authorization/model/workflow_execution.js.map +1 -0
  149. package/dist/authorization/model/workflow_instance.d.ts +2 -0
  150. package/dist/authorization/model/workflow_instance.d.ts.map +1 -0
  151. package/dist/authorization/model/workflow_instance.js +92 -0
  152. package/dist/authorization/model/workflow_instance.js.map +1 -0
  153. package/dist/authorization/organization-directory.d.ts +13 -0
  154. package/dist/authorization/organization-directory.d.ts.map +1 -0
  155. package/dist/authorization/organization-directory.js +83 -0
  156. package/dist/authorization/organization-directory.js.map +1 -0
  157. package/dist/authorization/person.d.ts +42 -0
  158. package/dist/authorization/person.d.ts.map +1 -0
  159. package/dist/authorization/person.js +19 -0
  160. package/dist/authorization/person.js.map +1 -0
  161. package/dist/authorization/posture.d.ts +38 -0
  162. package/dist/authorization/posture.d.ts.map +1 -0
  163. package/dist/authorization/posture.js +7 -0
  164. package/dist/authorization/posture.js.map +1 -0
  165. package/dist/authorization/schedule-fire-caller.d.ts +12 -0
  166. package/dist/authorization/schedule-fire-caller.d.ts.map +1 -0
  167. package/dist/authorization/schedule-fire-caller.js +67 -0
  168. package/dist/authorization/schedule-fire-caller.js.map +1 -0
  169. package/dist/authorization/store-test-kit.d.ts +68 -0
  170. package/dist/authorization/store-test-kit.d.ts.map +1 -0
  171. package/dist/authorization/store-test-kit.js +311 -0
  172. package/dist/authorization/store-test-kit.js.map +1 -0
  173. package/dist/authorization/tuples.d.ts +115 -0
  174. package/dist/authorization/tuples.d.ts.map +1 -0
  175. package/dist/authorization/tuples.js +83 -0
  176. package/dist/authorization/tuples.js.map +1 -0
  177. package/dist/boot/compose.d.ts.map +1 -1
  178. package/dist/boot/compose.js +157 -32
  179. package/dist/boot/compose.js.map +1 -1
  180. package/dist/boot/inprocess.d.ts +12 -0
  181. package/dist/boot/inprocess.d.ts.map +1 -1
  182. package/dist/boot/inprocess.js +62 -20
  183. package/dist/boot/inprocess.js.map +1 -1
  184. package/dist/domain/agent/controller.d.ts.map +1 -1
  185. package/dist/domain/agent/controller.js +9 -0
  186. package/dist/domain/agent/controller.js.map +1 -1
  187. package/dist/domain/iampolicy/constants.d.ts +11 -0
  188. package/dist/domain/iampolicy/constants.d.ts.map +1 -1
  189. package/dist/domain/iampolicy/constants.js +11 -0
  190. package/dist/domain/iampolicy/constants.js.map +1 -1
  191. package/dist/domain/iampolicy/membership.d.ts +72 -1
  192. package/dist/domain/iampolicy/membership.d.ts.map +1 -1
  193. package/dist/domain/iampolicy/membership.js +141 -56
  194. package/dist/domain/iampolicy/membership.js.map +1 -1
  195. package/dist/domain/identityaccount/actor.d.ts +26 -0
  196. package/dist/domain/identityaccount/actor.d.ts.map +1 -0
  197. package/dist/domain/identityaccount/actor.js +17 -0
  198. package/dist/domain/identityaccount/actor.js.map +1 -0
  199. package/dist/domain/mcpserver/controller.d.ts.map +1 -1
  200. package/dist/domain/mcpserver/controller.js +9 -0
  201. package/dist/domain/mcpserver/controller.js.map +1 -1
  202. package/dist/domain/plugin/archive.d.ts +37 -0
  203. package/dist/domain/plugin/archive.d.ts.map +1 -0
  204. package/dist/domain/plugin/archive.js +50 -0
  205. package/dist/domain/plugin/archive.js.map +1 -0
  206. package/dist/domain/plugin/constants.d.ts +38 -0
  207. package/dist/domain/plugin/constants.d.ts.map +1 -0
  208. package/dist/domain/plugin/constants.js +46 -0
  209. package/dist/domain/plugin/constants.js.map +1 -0
  210. package/dist/domain/plugin/controller.d.ts +25 -0
  211. package/dist/domain/plugin/controller.d.ts.map +1 -0
  212. package/dist/domain/plugin/controller.js +493 -0
  213. package/dist/domain/plugin/controller.js.map +1 -0
  214. package/dist/domain/plugin/materialize/agent.d.ts +13 -0
  215. package/dist/domain/plugin/materialize/agent.d.ts.map +1 -0
  216. package/dist/domain/plugin/materialize/agent.js +128 -0
  217. package/dist/domain/plugin/materialize/agent.js.map +1 -0
  218. package/dist/domain/plugin/materialize/default-agent-instructions.d.ts +22 -0
  219. package/dist/domain/plugin/materialize/default-agent-instructions.d.ts.map +1 -0
  220. package/dist/domain/plugin/materialize/default-agent-instructions.js +31 -0
  221. package/dist/domain/plugin/materialize/default-agent-instructions.js.map +1 -0
  222. package/dist/domain/plugin/materialize/identity.d.ts +28 -0
  223. package/dist/domain/plugin/materialize/identity.d.ts.map +1 -0
  224. package/dist/domain/plugin/materialize/identity.js +40 -0
  225. package/dist/domain/plugin/materialize/identity.js.map +1 -0
  226. package/dist/domain/plugin/materialize/mcp-servers.d.ts +15 -0
  227. package/dist/domain/plugin/materialize/mcp-servers.d.ts.map +1 -0
  228. package/dist/domain/plugin/materialize/mcp-servers.js +131 -0
  229. package/dist/domain/plugin/materialize/mcp-servers.js.map +1 -0
  230. package/dist/domain/plugin/materialize/plan.d.ts +24 -0
  231. package/dist/domain/plugin/materialize/plan.d.ts.map +1 -0
  232. package/dist/domain/plugin/materialize/plan.js +77 -0
  233. package/dist/domain/plugin/materialize/plan.js.map +1 -0
  234. package/dist/domain/plugin/materialize/ports.d.ts +42 -0
  235. package/dist/domain/plugin/materialize/ports.d.ts.map +1 -0
  236. package/dist/domain/plugin/materialize/ports.js +2 -0
  237. package/dist/domain/plugin/materialize/ports.js.map +1 -0
  238. package/dist/domain/plugin/materialize/skills.d.ts +12 -0
  239. package/dist/domain/plugin/materialize/skills.d.ts.map +1 -0
  240. package/dist/domain/plugin/materialize/skills.js +44 -0
  241. package/dist/domain/plugin/materialize/skills.js.map +1 -0
  242. package/dist/domain/plugin/materialize/workflows.d.ts +15 -0
  243. package/dist/domain/plugin/materialize/workflows.d.ts.map +1 -0
  244. package/dist/domain/plugin/materialize/workflows.js +31 -0
  245. package/dist/domain/plugin/materialize/workflows.js.map +1 -0
  246. package/dist/domain/plugin/members.d.ts +42 -0
  247. package/dist/domain/plugin/members.d.ts.map +1 -0
  248. package/dist/domain/plugin/members.js +97 -0
  249. package/dist/domain/plugin/members.js.map +1 -0
  250. package/dist/domain/plugin/overlay/documents.d.ts +31 -0
  251. package/dist/domain/plugin/overlay/documents.d.ts.map +1 -0
  252. package/dist/domain/plugin/overlay/documents.js +38 -0
  253. package/dist/domain/plugin/overlay/documents.js.map +1 -0
  254. package/dist/domain/plugin/overlay/parse.d.ts +16 -0
  255. package/dist/domain/plugin/overlay/parse.d.ts.map +1 -0
  256. package/dist/domain/plugin/overlay/parse.js +79 -0
  257. package/dist/domain/plugin/overlay/parse.js.map +1 -0
  258. package/dist/domain/plugin/overlay/sanitize.d.ts +10 -0
  259. package/dist/domain/plugin/overlay/sanitize.d.ts.map +1 -0
  260. package/dist/domain/plugin/overlay/sanitize.js +101 -0
  261. package/dist/domain/plugin/overlay/sanitize.js.map +1 -0
  262. package/dist/domain/plugin/push.d.ts +133 -0
  263. package/dist/domain/plugin/push.d.ts.map +1 -0
  264. package/dist/domain/plugin/push.js +800 -0
  265. package/dist/domain/plugin/push.js.map +1 -0
  266. package/dist/domain/plugin/search-extractor.d.ts +3 -0
  267. package/dist/domain/plugin/search-extractor.d.ts.map +1 -0
  268. package/dist/domain/plugin/search-extractor.js +41 -0
  269. package/dist/domain/plugin/search-extractor.js.map +1 -0
  270. package/dist/domain/skill/constants.d.ts +6 -11
  271. package/dist/domain/skill/constants.d.ts.map +1 -1
  272. package/dist/domain/skill/constants.js +6 -11
  273. package/dist/domain/skill/constants.js.map +1 -1
  274. package/dist/domain/skill/controller.d.ts.map +1 -1
  275. package/dist/domain/skill/controller.js +33 -30
  276. package/dist/domain/skill/controller.js.map +1 -1
  277. package/dist/domain/skill/push.d.ts +9 -10
  278. package/dist/domain/skill/push.d.ts.map +1 -1
  279. package/dist/domain/skill/push.js +53 -122
  280. package/dist/domain/skill/push.js.map +1 -1
  281. package/dist/domain/skill/search-extractor.d.ts.map +1 -1
  282. package/dist/domain/skill/search-extractor.js.map +1 -1
  283. package/dist/domain/skill/storage/artifact-storage.d.ts +26 -29
  284. package/dist/domain/skill/storage/artifact-storage.d.ts.map +1 -1
  285. package/dist/domain/skill/storage/artifact-storage.js +6 -103
  286. package/dist/domain/skill/storage/artifact-storage.js.map +1 -1
  287. package/dist/domain/skill/storage/zip-gate.d.ts +1 -2
  288. package/dist/domain/skill/storage/zip-gate.d.ts.map +1 -1
  289. package/dist/domain/skill/storage/zip-gate.js +56 -126
  290. package/dist/domain/skill/storage/zip-gate.js.map +1 -1
  291. package/dist/domain/skill/version-resolution.d.ts +5 -5
  292. package/dist/domain/skill/version-resolution.d.ts.map +1 -1
  293. package/dist/domain/skill/version-resolution.js +34 -216
  294. package/dist/domain/skill/version-resolution.js.map +1 -1
  295. package/dist/domain/workflow/controller.d.ts.map +1 -1
  296. package/dist/domain/workflow/controller.js +30 -3
  297. package/dist/domain/workflow/controller.js.map +1 -1
  298. package/dist/domain/workflow/registry/data/task-kind-registry.json +1 -0
  299. package/dist/extensions/authorizer.d.ts +10 -5
  300. package/dist/extensions/authorizer.d.ts.map +1 -1
  301. package/dist/extensions/drivers.d.ts +4 -1
  302. package/dist/extensions/drivers.d.ts.map +1 -1
  303. package/dist/extensions/list-read-scope.d.ts +75 -11
  304. package/dist/extensions/list-read-scope.d.ts.map +1 -1
  305. package/dist/extensions/list-read-scope.js +40 -7
  306. package/dist/extensions/list-read-scope.js.map +1 -1
  307. package/dist/extensions/organization-directory.d.ts +13 -9
  308. package/dist/extensions/organization-directory.d.ts.map +1 -1
  309. package/dist/extensions/organization-directory.js.map +1 -1
  310. package/dist/extensions/resource-authorization.d.ts +33 -0
  311. package/dist/extensions/resource-authorization.d.ts.map +1 -1
  312. package/dist/extensions/schedule-fire-caller.d.ts +45 -18
  313. package/dist/extensions/schedule-fire-caller.d.ts.map +1 -1
  314. package/dist/extensions/schedule-fire-caller.js +12 -1
  315. package/dist/extensions/schedule-fire-caller.js.map +1 -1
  316. package/dist/index.d.ts +10 -0
  317. package/dist/index.d.ts.map +1 -1
  318. package/dist/index.js +8 -0
  319. package/dist/index.js.map +1 -1
  320. package/dist/pipeline/apiresource-labels.d.ts +23 -3
  321. package/dist/pipeline/apiresource-labels.d.ts.map +1 -1
  322. package/dist/pipeline/apiresource-labels.js +20 -0
  323. package/dist/pipeline/apiresource-labels.js.map +1 -1
  324. package/dist/pipeline/apiresource-meta.d.ts +21 -0
  325. package/dist/pipeline/apiresource-meta.d.ts.map +1 -1
  326. package/dist/pipeline/apiresource-meta.js +28 -0
  327. package/dist/pipeline/apiresource-meta.js.map +1 -1
  328. package/dist/pipeline/errors.d.ts.map +1 -1
  329. package/dist/pipeline/errors.js.map +1 -1
  330. package/dist/pipeline/steps/authorization-facts.d.ts +12 -0
  331. package/dist/pipeline/steps/authorization-facts.d.ts.map +1 -0
  332. package/dist/pipeline/steps/authorization-facts.js +100 -0
  333. package/dist/pipeline/steps/authorization-facts.js.map +1 -0
  334. package/dist/pipeline/steps/authorization-tuples.d.ts.map +1 -1
  335. package/dist/pipeline/steps/authorization-tuples.js +7 -26
  336. package/dist/pipeline/steps/authorization-tuples.js.map +1 -1
  337. package/dist/pipeline/steps/delete.d.ts.map +1 -1
  338. package/dist/pipeline/steps/delete.js +1 -1
  339. package/dist/pipeline/steps/delete.js.map +1 -1
  340. package/dist/pipeline/steps/duplicate.d.ts.map +1 -1
  341. package/dist/pipeline/steps/duplicate.js.map +1 -1
  342. package/dist/pipeline/steps/guard-plugin-managed.d.ts +12 -0
  343. package/dist/pipeline/steps/guard-plugin-managed.d.ts.map +1 -0
  344. package/dist/pipeline/steps/guard-plugin-managed.js +96 -0
  345. package/dist/pipeline/steps/guard-plugin-managed.js.map +1 -0
  346. package/dist/pipeline/steps/guard-reserved-labels.d.ts +16 -2
  347. package/dist/pipeline/steps/guard-reserved-labels.d.ts.map +1 -1
  348. package/dist/pipeline/steps/guard-reserved-labels.js +11 -7
  349. package/dist/pipeline/steps/guard-reserved-labels.js.map +1 -1
  350. package/dist/pipeline/steps/helpers.d.ts.map +1 -1
  351. package/dist/pipeline/steps/helpers.js.map +1 -1
  352. package/dist/pipeline/steps/index-search.d.ts.map +1 -1
  353. package/dist/pipeline/steps/index-search.js.map +1 -1
  354. package/dist/pipeline/steps/load-existing.d.ts.map +1 -1
  355. package/dist/pipeline/steps/load-existing.js +1 -1
  356. package/dist/pipeline/steps/load-existing.js.map +1 -1
  357. package/dist/pipeline/steps/references.d.ts +16 -0
  358. package/dist/pipeline/steps/references.d.ts.map +1 -1
  359. package/dist/pipeline/steps/references.js +18 -0
  360. package/dist/pipeline/steps/references.js.map +1 -1
  361. package/dist/pipeline/steps/resolve-artifact-source.d.ts +35 -0
  362. package/dist/pipeline/steps/resolve-artifact-source.d.ts.map +1 -0
  363. package/dist/pipeline/steps/resolve-artifact-source.js +27 -0
  364. package/dist/pipeline/steps/resolve-artifact-source.js.map +1 -0
  365. package/dist/pipeline/steps/server-stamped-reserved-labels.d.ts.map +1 -1
  366. package/dist/pipeline/steps/server-stamped-reserved-labels.js.map +1 -1
  367. package/dist/pipeline/steps/shapes.d.ts +18 -0
  368. package/dist/pipeline/steps/shapes.d.ts.map +1 -1
  369. package/dist/pipeline/steps/shapes.js +29 -0
  370. package/dist/pipeline/steps/shapes.js.map +1 -1
  371. package/dist/pipeline/steps/slug.d.ts.map +1 -1
  372. package/dist/pipeline/steps/slug.js.map +1 -1
  373. package/dist/pipeline/steps/validate-visibility.d.ts +9 -0
  374. package/dist/pipeline/steps/validate-visibility.d.ts.map +1 -1
  375. package/dist/pipeline/steps/validate-visibility.js +6 -1
  376. package/dist/pipeline/steps/validate-visibility.js.map +1 -1
  377. package/dist/pipeline/steps/validation.d.ts.map +1 -1
  378. package/dist/pipeline/steps/validation.js.map +1 -1
  379. package/dist/pipeline/steps/version-archive.d.ts +63 -0
  380. package/dist/pipeline/steps/version-archive.d.ts.map +1 -0
  381. package/dist/pipeline/steps/version-archive.js +129 -0
  382. package/dist/pipeline/steps/version-archive.js.map +1 -0
  383. package/dist/pipeline/steps/version-history.d.ts +49 -0
  384. package/dist/pipeline/steps/version-history.d.ts.map +1 -0
  385. package/dist/pipeline/steps/version-history.js +229 -0
  386. package/dist/pipeline/steps/version-history.js.map +1 -0
  387. package/dist/pipeline/steps/visibility-gates.d.ts +8 -0
  388. package/dist/pipeline/steps/visibility-gates.d.ts.map +1 -1
  389. package/dist/pipeline/steps/visibility-gates.js +7 -2
  390. package/dist/pipeline/steps/visibility-gates.js.map +1 -1
  391. package/dist/query/search/registry.d.ts.map +1 -1
  392. package/dist/query/search/registry.js +2 -0
  393. package/dist/query/search/registry.js.map +1 -1
  394. package/dist/temporal/schedule/run-starter.d.ts +1 -1
  395. package/dist/temporal/schedule/run-starter.d.ts.map +1 -1
  396. package/dist/temporal/schedule/run-starter.js +14 -1
  397. package/dist/temporal/schedule/run-starter.js.map +1 -1
  398. package/package.json +5 -4
  399. package/src/archive/__tests__/archive.test.ts +233 -0
  400. package/src/{domain/skill → archive}/__tests__/prefilter.test.ts +1 -1
  401. package/src/archive/content-store.ts +132 -0
  402. package/src/archive/inflate.ts +107 -0
  403. package/src/archive/limits.ts +42 -0
  404. package/src/archive/open.ts +131 -0
  405. package/src/{domain/skill/storage → archive}/prefilter.ts +5 -0
  406. package/src/archive/write.ts +54 -0
  407. package/src/authorization/README.md +124 -0
  408. package/src/authorization/__tests__/authorizer.test.ts +719 -0
  409. package/src/authorization/__tests__/derived-tuples.test.ts +802 -0
  410. package/src/authorization/__tests__/drivers.ts +70 -0
  411. package/src/authorization/__tests__/evaluator.test.ts +359 -0
  412. package/src/authorization/__tests__/facts.test.ts +155 -0
  413. package/src/authorization/__tests__/fixtures/fga/agent-channel-owner.fga.yaml +112 -0
  414. package/src/authorization/__tests__/fixtures/fga/agent-share-owner.fga.yaml +109 -0
  415. package/src/authorization/__tests__/fixtures/fga/artifact-org-and-owner.fga.yaml +128 -0
  416. package/src/authorization/__tests__/fixtures/fga/blueprint-private-visibility.fga.yaml +410 -0
  417. package/src/authorization/__tests__/fixtures/fga/channel-app-owner.fga.yaml +125 -0
  418. package/src/authorization/__tests__/fixtures/fga/channel-participation.fga.yaml +201 -0
  419. package/src/authorization/__tests__/fixtures/fga/channel-session-visibility.fga.yaml +187 -0
  420. package/src/authorization/__tests__/fixtures/fga/cross-org-share-creation.fga.yaml +98 -0
  421. package/src/authorization/__tests__/fixtures/fga/default-instance-inheritance.fga.yaml +271 -0
  422. package/src/authorization/__tests__/fixtures/fga/memory-subject-only.fga.yaml +72 -0
  423. package/src/authorization/__tests__/fixtures/fga/org-admin-owner-inheritance.fga.yaml +328 -0
  424. package/src/authorization/__tests__/fixtures/fga/org-shared-environment.fga.yaml +144 -0
  425. package/src/authorization/__tests__/fixtures/fga/platform-visibility.fga.yaml +223 -0
  426. package/src/authorization/__tests__/fixtures/fga/provider-standing-viewer.fga.yaml +40 -0
  427. package/src/authorization/__tests__/fixtures/fga/public-visibility-setter.fga.yaml +52 -0
  428. package/src/authorization/__tests__/fixtures/fga/reserved-label-writer.fga.yaml +41 -0
  429. package/src/authorization/__tests__/fixtures/fga/schedule-owner.fga.yaml +113 -0
  430. package/src/authorization/__tests__/fixtures/fga/schedule-session-visibility.fga.yaml +214 -0
  431. package/src/authorization/__tests__/fixtures/fga/session-personal-resource.fga.yaml +117 -0
  432. package/src/authorization/__tests__/fixtures/fga/workflow-execution-sharing.fga.yaml +192 -0
  433. package/src/authorization/__tests__/list-read-scope.measure.test.ts +317 -0
  434. package/src/authorization/__tests__/list-read-scope.test.ts +796 -0
  435. package/src/authorization/__tests__/organization-directory.test.ts +236 -0
  436. package/src/authorization/__tests__/person.test.ts +114 -0
  437. package/src/authorization/__tests__/posture.test.ts +25 -0
  438. package/src/authorization/__tests__/schedule-fire-caller.test.ts +134 -0
  439. package/src/authorization/__tests__/store-tests.test.ts +306 -0
  440. package/src/authorization/__tests__/support.ts +101 -0
  441. package/src/authorization/__tests__/tuples.test.ts +62 -0
  442. package/src/authorization/__tests__/wire-permissions.test.ts +154 -0
  443. package/src/authorization/authorizer.ts +208 -0
  444. package/src/authorization/derived-tuples.ts +384 -0
  445. package/src/authorization/evaluator.ts +283 -0
  446. package/src/authorization/facts.ts +47 -0
  447. package/src/authorization/list-read-scope.ts +216 -0
  448. package/src/authorization/model/__tests__/registry.test.ts +317 -0
  449. package/src/authorization/model/agent.ts +64 -0
  450. package/src/authorization/model/agent_channel.ts +49 -0
  451. package/src/authorization/model/agent_execution.ts +33 -0
  452. package/src/authorization/model/agent_instance.ts +66 -0
  453. package/src/authorization/model/agent_share.ts +40 -0
  454. package/src/authorization/model/api_key.ts +28 -0
  455. package/src/authorization/model/artifact.ts +38 -0
  456. package/src/authorization/model/channel_app.ts +39 -0
  457. package/src/authorization/model/default-of.ts +99 -0
  458. package/src/authorization/model/environment.ts +48 -0
  459. package/src/authorization/model/execution_context.ts +20 -0
  460. package/src/authorization/model/iam_policy.ts +42 -0
  461. package/src/authorization/model/identity_account.ts +26 -0
  462. package/src/authorization/model/index.ts +108 -0
  463. package/src/authorization/model/mcp_server.ts +59 -0
  464. package/src/authorization/model/memory.ts +27 -0
  465. package/src/authorization/model/oauth_app.ts +42 -0
  466. package/src/authorization/model/organization.ts +55 -0
  467. package/src/authorization/model/plugin.ts +66 -0
  468. package/src/authorization/model/project.ts +47 -0
  469. package/src/authorization/model/rewrite.ts +213 -0
  470. package/src/authorization/model/schedule.ts +40 -0
  471. package/src/authorization/model/session.ts +50 -0
  472. package/src/authorization/model/skill.ts +60 -0
  473. package/src/authorization/model/workflow.ts +60 -0
  474. package/src/authorization/model/workflow_execution.ts +44 -0
  475. package/src/authorization/model/workflow_instance.ts +122 -0
  476. package/src/authorization/organization-directory.ts +114 -0
  477. package/src/authorization/person.ts +68 -0
  478. package/src/authorization/posture.ts +49 -0
  479. package/src/authorization/schedule-fire-caller.ts +91 -0
  480. package/src/authorization/store-test-kit.ts +454 -0
  481. package/src/authorization/tuples.ts +190 -0
  482. package/src/boot/compose.ts +175 -38
  483. package/src/boot/inprocess.ts +108 -30
  484. package/src/domain/agent/controller.ts +11 -0
  485. package/src/domain/iampolicy/__tests__/membership.test.ts +357 -3
  486. package/src/domain/iampolicy/constants.ts +12 -0
  487. package/src/domain/iampolicy/membership.ts +221 -66
  488. package/src/domain/identityaccount/actor.ts +44 -0
  489. package/src/domain/mcpserver/controller.ts +11 -0
  490. package/src/domain/plugin/__tests__/materialize.test.ts +303 -0
  491. package/src/domain/plugin/__tests__/overlay-parse.test.ts +85 -0
  492. package/src/domain/plugin/__tests__/plugin.test.ts +681 -0
  493. package/src/domain/plugin/__tests__/sanitize.test.ts +174 -0
  494. package/src/domain/plugin/archive.ts +89 -0
  495. package/src/domain/plugin/constants.ts +53 -0
  496. package/src/domain/plugin/controller.ts +913 -0
  497. package/src/domain/plugin/materialize/agent.ts +186 -0
  498. package/src/domain/plugin/materialize/default-agent-instructions.ts +59 -0
  499. package/src/domain/plugin/materialize/identity.ts +67 -0
  500. package/src/domain/plugin/materialize/mcp-servers.ts +175 -0
  501. package/src/domain/plugin/materialize/plan.ts +124 -0
  502. package/src/domain/plugin/materialize/ports.ts +53 -0
  503. package/src/domain/plugin/materialize/skills.ts +68 -0
  504. package/src/domain/plugin/materialize/workflows.ts +51 -0
  505. package/src/domain/plugin/members.ts +180 -0
  506. package/src/domain/plugin/overlay/documents.ts +78 -0
  507. package/src/domain/plugin/overlay/parse.ts +115 -0
  508. package/src/domain/plugin/overlay/sanitize.ts +149 -0
  509. package/src/domain/plugin/push.ts +1062 -0
  510. package/src/domain/plugin/search-extractor.ts +60 -0
  511. package/src/domain/skill/constants.ts +11 -14
  512. package/src/domain/skill/controller.ts +44 -36
  513. package/src/domain/skill/push.ts +61 -156
  514. package/src/domain/skill/search-extractor.ts +3 -1
  515. package/src/domain/skill/storage/artifact-storage.ts +23 -124
  516. package/src/domain/skill/storage/zip-gate.ts +58 -154
  517. package/src/domain/skill/version-resolution.ts +67 -269
  518. package/src/domain/workflow/controller.ts +38 -4
  519. package/src/domain/workflow/registry/data/task-kind-registry.json +1 -0
  520. package/src/extensions/__tests__/built-in-authorization-composed.test.ts +835 -0
  521. package/src/extensions/__tests__/composed-support.ts +32 -1
  522. package/src/extensions/__tests__/extension-composition.test.ts +35 -0
  523. package/src/extensions/__tests__/list-read-scope.test.ts +245 -3
  524. package/src/extensions/__tests__/role-reconciliation-composed.test.ts +209 -0
  525. package/src/extensions/__tests__/tier-truthfulness.test.ts +6 -14
  526. package/src/extensions/authorizer.ts +10 -5
  527. package/src/extensions/drivers.ts +4 -1
  528. package/src/extensions/list-read-scope.ts +116 -16
  529. package/src/extensions/organization-directory.ts +13 -9
  530. package/src/extensions/resource-authorization.ts +34 -0
  531. package/src/extensions/schedule-fire-caller.ts +49 -18
  532. package/src/index.ts +51 -1
  533. package/src/pipeline/__tests__/inherited-authorization-parent.test.ts +51 -0
  534. package/src/pipeline/__tests__/router-transport.test.ts +1 -3
  535. package/src/pipeline/apiresource-labels.ts +31 -3
  536. package/src/pipeline/apiresource-meta.ts +37 -0
  537. package/src/pipeline/errors.ts +5 -5
  538. package/src/pipeline/steps/__tests__/authorize-annotation-completeness.test.ts +1 -20
  539. package/src/pipeline/steps/__tests__/guard-memory-capture.test.ts +3 -9
  540. package/src/pipeline/steps/__tests__/guard-plugin-managed.test.ts +151 -0
  541. package/src/pipeline/steps/__tests__/guard-reserved-labels.test.ts +83 -8
  542. package/src/pipeline/steps/authorization-facts.ts +131 -0
  543. package/src/pipeline/steps/authorization-tuples.ts +7 -28
  544. package/src/pipeline/steps/delete.ts +11 -3
  545. package/src/pipeline/steps/duplicate.ts +8 -2
  546. package/src/pipeline/steps/guard-plugin-managed.ts +133 -0
  547. package/src/pipeline/steps/guard-reserved-labels.ts +29 -8
  548. package/src/pipeline/steps/helpers.ts +4 -1
  549. package/src/pipeline/steps/index-search.ts +28 -15
  550. package/src/pipeline/steps/load-existing.ts +12 -3
  551. package/src/pipeline/steps/references.ts +36 -2
  552. package/src/pipeline/steps/resolve-artifact-source.ts +66 -0
  553. package/src/pipeline/steps/server-stamped-reserved-labels.ts +2 -1
  554. package/src/pipeline/steps/shapes.ts +31 -0
  555. package/src/pipeline/steps/slug.ts +7 -2
  556. package/src/pipeline/steps/validate-visibility.ts +9 -2
  557. package/src/pipeline/steps/validation.ts +3 -1
  558. package/src/pipeline/steps/version-archive.ts +225 -0
  559. package/src/pipeline/steps/version-history.ts +362 -0
  560. package/src/pipeline/steps/visibility-gates.ts +12 -9
  561. package/src/query/README.md +1 -1
  562. package/src/query/search/__tests__/criteria.test.ts +6 -7
  563. package/src/query/search/__tests__/query-store.test.ts +9 -2
  564. package/src/query/search/__tests__/registry.test.ts +6 -4
  565. package/src/query/search/registry.ts +6 -1
  566. package/src/temporal/schedule/__tests__/run-starter.test.ts +86 -24
  567. package/src/temporal/schedule/run-starter.ts +31 -8
  568. package/dist/domain/skill/storage/prefilter.d.ts.map +0 -1
  569. package/dist/domain/skill/storage/prefilter.js.map +0 -1
  570. /package/dist/{domain/skill/storage → archive}/prefilter.js +0 -0
@@ -3,10 +3,15 @@
3
3
  * arm-for-arm. Validates an uploaded artifact (size caps, ZIP-bomb
4
4
  * budgets, entry-count and filename rules, root-SKILL.md presence with the
5
5
  * #452 hint), extracts SKILL.md IN MEMORY ONLY (never to disk), and parses
6
- * its frontmatter. Structural parsing rides @stigmer/zip-structure
7
- * (central-directory-based, issues #450/#567); the safearchive-parity
8
- * entry pre-filter runs first (prefilter.ts, sub-project DD-001) exactly
9
- * as Go's reader rewrites its entry list before validation.
6
+ * its frontmatter.
7
+ *
8
+ * The kind-agnostic half (open, hash, prefilter, structural walk, capped
9
+ * inflate with CRC) is src/archive's, shared with the plugin gate since
10
+ * plugins are pushed as archives too; this module composes it and owns
11
+ * what is a SKILL's: the root-SKILL.md rule, the 1 MB document cap, the
12
+ * frontmatter parse, and every sentence below. The observable error order
13
+ * is the Go gate's exactly: the structural walk tracks SKILL.md placement
14
+ * in the same pass it validates, and rules on presence last.
10
15
  *
11
16
  * Error strings are wire-visible contract (the push pipeline wraps them
12
17
  * into the InvalidArgument "failed to extract SKILL.md: ..." arm), pinned
@@ -21,113 +26,57 @@
21
26
  * Proven by __tests__/zip-gate.test.ts and the skill conformance suite's
22
27
  * push-validation negatives (CONFORMANCE_TARGET=local).
23
28
  */
24
- import { createHash } from "node:crypto";
25
- import { inflateRawSync } from "node:zlib";
26
- import { crc32, parseZipStructure } from "@stigmer/zip-structure";
27
- import { MAX_COMPRESSION_RATIO, MAX_FILES, MAX_SKILL_MD_SIZE, MAX_UNCOMPRESSED_SIZE, MAX_ZIP_SIZE, NESTED_SKILL_MD_HINT, } from "../constants.js";
28
- import { applyEntryPrefilter } from "./prefilter.js";
29
+ import { InflateError, inflateEntry } from "../../../archive/inflate.js";
30
+ import { PLATFORM_ARCHIVE_LIMITS } from "../../../archive/limits.js";
31
+ import { openArchive, validateArchiveStructure, } from "../../../archive/open.js";
32
+ import { MAX_SKILL_MD_SIZE, MAX_ZIP_SIZE, NESTED_SKILL_MD_HINT, } from "../constants.js";
29
33
  import { parseFrontmatter } from "./frontmatter.js";
30
- /** ZIP compression methods the gate can open (Go registers the same two). */
31
- const METHOD_STORED = 0;
32
- const METHOD_DEFLATED = 8;
34
+ export { calculateHash } from "../../../archive/open.js";
33
35
  /**
34
36
  * Validates the artifact and extracts SKILL.md + frontmatter (Go
35
37
  * ExtractSkillMd). Throws plain Errors with byte-pinned messages; the
36
38
  * push pipeline owns the gRPC code.
37
39
  */
38
40
  export function extractSkillMd(zipData) {
39
- if (zipData.length > MAX_ZIP_SIZE) {
40
- throw new Error(`ZIP file too large: ${zipData.length} bytes (max: ${MAX_ZIP_SIZE})`);
41
- }
42
- const hash = calculateHash(zipData);
43
- let entries;
44
- try {
45
- entries = parseZipStructure(zipData);
46
- }
47
- catch {
48
- // Go's zip.NewReader surfaces stdlib ErrFormat here; its text is what
49
- // clients see via the %w chain, so it is pinned verbatim.
50
- throw new Error("invalid ZIP file: zip: not a valid zip file");
51
- }
52
- // safearchive MaximumSecurityMode rewrites the entry list before any
53
- // validation sees it (DD-001) — sanitized names, shadowed/special/8.3
54
- // entries dropped.
55
- const filtered = applyEntryPrefilter(entries);
56
- validateZipContent(filtered);
57
- const content = extractSkillMdContent(filtered);
58
- let frontmatter;
59
- try {
60
- frontmatter = parseFrontmatter(content);
61
- }
62
- catch (error) {
63
- throw new Error(`invalid SKILL.md frontmatter: ${error instanceof Error ? error.message : String(error)}`);
64
- }
65
- return {
66
- content,
67
- hash,
68
- name: frontmatter.name,
69
- description: frontmatter.description,
70
- };
71
- }
72
- /**
73
- * Security validation over the (pre-filtered) entry list — Go
74
- * validateZipContent, checks in its exact order: empty archive, file-count
75
- * cap, then per entry SKILL.md placement tracking, filename
76
- * control-character rejection, the running declared-uncompressed budget
77
- * (fail-fast), and the per-file compression-ratio cap; finally the
78
- * root-SKILL.md presence rule with the #452 nested-only hint.
79
- */
80
- function validateZipContent(entries) {
81
- if (entries.length === 0) {
82
- throw new Error("ZIP file is empty");
83
- }
84
- if (entries.length > MAX_FILES) {
85
- throw new Error(`too many files in ZIP: ${entries.length} (max: ${MAX_FILES})`);
86
- }
87
- let totalUncompressedSize = 0;
41
+ const { hash, entries } = openArchive(zipData, MAX_ZIP_SIZE);
42
+ // SKILL.md must be at the archive root. Nested occurrences are tracked
43
+ // only to make the rejection actionable (the #452 hint), in the same
44
+ // pass the structural checks run so their precedence stays Go's.
88
45
  let hasSkillMd = false;
89
46
  let hasNestedSkillMd = false;
90
- for (const { name, entry } of entries) {
91
- // SKILL.md must be at the archive root. Nested occurrences are tracked
92
- // only to make the rejection actionable (below).
47
+ validateArchiveStructure(entries, PLATFORM_ARCHIVE_LIMITS, (name) => {
93
48
  if (name === "SKILL.md") {
94
49
  hasSkillMd = true;
95
50
  }
96
51
  else if (name.endsWith("/SKILL.md")) {
97
52
  hasNestedSkillMd = true;
98
53
  }
99
- // Reject null bytes and control characters in entry names (code
100
- // points, not UTF-16 units — Go ranges over runes).
101
- for (const ch of name) {
102
- const codePoint = ch.codePointAt(0);
103
- if (codePoint < 32 || codePoint === 127) {
104
- throw new Error(`invalid character in filename: ${name}`);
105
- }
106
- }
107
- // Track the declared uncompressed total (fail fast once exceeded).
108
- totalUncompressedSize += entry.uncompressedSize;
109
- if (totalUncompressedSize > MAX_UNCOMPRESSED_SIZE) {
110
- throw new Error(`total uncompressed size too large: ${totalUncompressedSize} bytes (max: ${MAX_UNCOMPRESSED_SIZE})`);
111
- }
112
- // Per-file compression ratio (ZIP-bomb guard); integer division as Go.
113
- if (entry.compressedSize > 0) {
114
- const ratio = Math.floor(entry.uncompressedSize / entry.compressedSize);
115
- if (ratio > MAX_COMPRESSION_RATIO) {
116
- throw new Error(`suspicious compression ratio in ${name}: ${ratio}:1 (max: ${MAX_COMPRESSION_RATIO}:1)`);
117
- }
118
- }
119
- }
54
+ });
120
55
  if (!hasSkillMd) {
121
56
  if (hasNestedSkillMd) {
122
57
  throw new Error(NESTED_SKILL_MD_HINT);
123
58
  }
124
59
  throw new Error("SKILL.md not found in ZIP archive");
125
60
  }
61
+ const content = extractSkillMdContent(entries);
62
+ let frontmatter;
63
+ try {
64
+ frontmatter = parseFrontmatter(content);
65
+ }
66
+ catch (error) {
67
+ throw new Error(`invalid SKILL.md frontmatter: ${error instanceof Error ? error.message : String(error)}`);
68
+ }
69
+ return {
70
+ content,
71
+ hash,
72
+ name: frontmatter.name,
73
+ description: frontmatter.description,
74
+ };
126
75
  }
127
76
  /**
128
77
  * Extracts SKILL.md's content in memory (Go extractSkillMdContent): the
129
- * first root-named entry, decompressed under the 1MB cap, CRC-verified
130
- * (Go's reader checks the checksum on every read), UTF-8 decoded.
78
+ * first root-named entry, decompressed under the 1MB cap, CRC-verified,
79
+ * UTF-8 decoded. The typed inflate outcome maps to Go's sentences here.
131
80
  */
132
81
  function extractSkillMdContent(entries) {
133
82
  for (const { name, entry } of entries) {
@@ -135,36 +84,27 @@ function extractSkillMdContent(entries) {
135
84
  continue;
136
85
  }
137
86
  let contentBytes;
138
- switch (entry.compressionMethod) {
139
- case METHOD_STORED:
140
- contentBytes = entry.compressedData;
141
- break;
142
- case METHOD_DEFLATED:
143
- try {
144
- // The cap bounds the ACTUAL inflated output — declared sizes are
145
- // client claims (the ratio check upstream only sees declarations).
146
- contentBytes = new Uint8Array(inflateRawSync(entry.compressedData, {
147
- maxOutputLength: MAX_SKILL_MD_SIZE + 1,
148
- }));
149
- }
150
- catch (error) {
151
- if (isOutputLengthError(error)) {
152
- throw new Error(`SKILL.md too large (max: ${MAX_SKILL_MD_SIZE} bytes)`);
153
- }
154
- throw new Error(`failed to read SKILL.md: ${error instanceof Error ? error.message : String(error)}`);
155
- }
156
- break;
157
- default:
158
- // Go: File.Open returns ErrAlgorithm for methods without a
159
- // registered decompressor; the text is pinned via the %w chain.
160
- throw new Error("failed to open SKILL.md: zip: unsupported compression algorithm");
87
+ try {
88
+ contentBytes = inflateEntry(entry, MAX_SKILL_MD_SIZE);
161
89
  }
162
- if (contentBytes.length > MAX_SKILL_MD_SIZE) {
163
- throw new Error(`SKILL.md too large (max: ${MAX_SKILL_MD_SIZE} bytes)`);
164
- }
165
- if (crc32(contentBytes) !== entry.crc32) {
166
- // Go's checksumReader: stdlib ErrChecksum via the read-error arm.
167
- throw new Error("failed to read SKILL.md: zip: checksum error");
90
+ catch (error) {
91
+ if (!(error instanceof InflateError)) {
92
+ throw error;
93
+ }
94
+ switch (error.kind) {
95
+ case "too-large":
96
+ throw new Error(`SKILL.md too large (max: ${MAX_SKILL_MD_SIZE} bytes)`);
97
+ case "read-failed":
98
+ throw new Error(`failed to read SKILL.md: ${error.detail}`);
99
+ case "unsupported-method":
100
+ throw new Error(`failed to open SKILL.md: ${error.detail}`);
101
+ case "checksum":
102
+ throw new Error(`failed to read SKILL.md: ${error.detail}`);
103
+ default: {
104
+ const exhaustive = error.kind;
105
+ throw new Error(`unknown inflate failure ${String(exhaustive)}`);
106
+ }
107
+ }
168
108
  }
169
109
  if (contentBytes.length === 0) {
170
110
  throw new Error("SKILL.md is empty");
@@ -173,14 +113,4 @@ function extractSkillMdContent(entries) {
173
113
  }
174
114
  throw new Error("SKILL.md not found in ZIP archive");
175
115
  }
176
- /** node:zlib's maxOutputLength violation (the output-cap arm). */
177
- function isOutputLengthError(error) {
178
- return (error instanceof Error &&
179
- (("code" in error && error.code === "ERR_BUFFER_TOO_LARGE") ||
180
- error.message.includes("maxOutputLength")));
181
- }
182
- /** SHA-256 hex of the artifact bytes (Go CalculateHash). */
183
- export function calculateHash(data) {
184
- return createHash("sha256").update(data).digest("hex");
185
- }
186
116
  //# sourceMappingURL=zip-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zip-gate.js","sourceRoot":"","sources":["../../../../src/domain/skill/storage/zip-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip-gate.js","sourceRoot":"","sources":["../../../../src/domain/skill/storage/zip-gate.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { SkillQueryController } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/query_pb";
2
2
  import type { PipelineStep } from "../../pipeline/pipeline.js";
3
3
  import type { Store } from "../../store/interface.js";
4
+ import { LIST_VERSIONS_HEAD_HASH_KEY, LIST_VERSIONS_RESPONSE_KEY } from "../../pipeline/steps/version-history.js";
5
+ /** The context keys the controller's mid-chain authorize step reads. */
6
+ export declare const LIST_VERSIONS_SKILL_ID_KEY = "listVersionsResourceId";
7
+ export { LIST_VERSIONS_HEAD_HASH_KEY, LIST_VERSIONS_RESPONSE_KEY };
4
8
  type GetByReferenceDesc = typeof SkillQueryController.method.getByReference.input;
9
+ type ListVersionsDesc = typeof SkillQueryController.method.listVersions.input;
5
10
  /** Go LoadSkillByReferenceStep — the reference + version ladder. */
6
11
  export declare function newLoadSkillByReferenceStep(store: Store): PipelineStep<GetByReferenceDesc>;
7
- export declare const LIST_VERSIONS_SKILL_ID_KEY = "listVersionsSkillId";
8
- export declare const LIST_VERSIONS_HEAD_HASH_KEY = "listVersionsHeadHash";
9
- export declare const LIST_VERSIONS_RESPONSE_KEY = "listVersionsResponse";
10
- type ListVersionsDesc = typeof SkillQueryController.method.listVersions.input;
11
12
  /** Go ResolveSkillBySlugStep — resolves the skill and captures the head hash. */
12
13
  export declare function newResolveSkillBySlugStep(store: Store): PipelineStep<ListVersionsDesc>;
13
14
  /** Go LoadAndMapVersionsStep — audit records → entries → one page. */
14
15
  export declare function newLoadAndMapVersionsStep(store: Store): PipelineStep<ListVersionsDesc>;
15
- export {};
16
16
  //# sourceMappingURL=version-resolution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-resolution.d.ts","sourceRoot":"","sources":["../../../src/domain/skill/version-resolution.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAa5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAStD,KAAK,kBAAkB,GACrB,OAAO,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,kBAAkB,CAAC,CA8DlC;AAoDD,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAChE,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AAEjE,KAAK,gBAAgB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;AAE9E,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,gBAAgB,CAAC,CA2BhC;AAED,sEAAsE;AACtE,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,gBAAgB,CAAC,CAsEhC"}
1
+ {"version":3,"file":"version-resolution.d.ts","sourceRoot":"","sources":["../../../src/domain/skill/version-resolution.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAW5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,2BAA2B,EAE3B,0BAA0B,EAI3B,MAAM,yCAAyC,CAAC;AAGjD,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,2BAAgC,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,CAAC;AAEnE,KAAK,kBAAkB,GACrB,OAAO,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;AAC1D,KAAK,gBAAgB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;AAwB9E,oEAAoE;AACpE,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,kBAAkB,CAAC,CAMlC;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,gBAAgB,CAAC,CAMhC;AAED,sEAAsE;AACtE,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,gBAAgB,CAAC,CAMhC"}
@@ -1,238 +1,56 @@
1
1
  /**
2
- * Skill version resolution — ports pkg/domain/skill/controller/
3
- * load_skill_by_reference.go and list_versions.go: the getByReference
4
- * version ladder and the paginated version history.
5
- *
6
- * The ladder (Go LoadSkillByReferenceStep): resolve the live head by
7
- * slug+org; empty/"latest" returns it; a 64-hex version matches the head's
8
- * hash or falls to the indexed audit-by-hash lookup; anything else is a
9
- * tag, matching the head's live spec.tag first (honest under the
10
- * single-holder model: push reconciles the live tag with the audit tag
11
- * column, clearing spec.tag when assignment fails) and then the indexed
12
- * audit-by-tag lookup.
13
- *
14
- * listVersions marks is_current by HEAD-HASH match, not recency: under
15
- * repoint semantics (#475) re-pushing archived content re-activates its
16
- * existing row, so the current version need not be the newest-archived
17
- * one. Tags come from the audit COLUMN (the single-holder source of
18
- * truth), never from the snapshot — snapshots archive tagless and a legacy
19
- * snapshot's embedded tag may have moved since it was written.
2
+ * Skill version resolution — the skill binding of the shared
3
+ * content-addressed version steps (pipeline/steps/version-history.ts): the
4
+ * getByReference version ladder and the paginated version history, ported
5
+ * from pkg/domain/skill/controller/load_skill_by_reference.go and
6
+ * list_versions.go. The ladder, the is_current rule and the pagination
7
+ * live in the shared module since plugins needed the identical shape; what
8
+ * is a skill's is here: the schema, the noun in sentences, the head hash in
9
+ * status.version_hash, the live tag in spec.tag, and the SkillVersionEntry
10
+ * mapping (pushed_at/pushed_by prefer the spec-audit updated stamps and fall
11
+ * back to created, because first pushes only carry created).
20
12
  *
21
13
  * Proven by __tests__/skill.test.ts's ladder and pagination blocks and
22
14
  * the conformance suite's getByReference/listVersions blocks.
23
15
  */
24
- import { create, fromBinary } from "@bufbuild/protobuf";
16
+ import { create } from "@bufbuild/protobuf";
25
17
  import { SkillSchema } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
26
18
  import { ListSkillVersionsResponseSchema, SkillVersionEntrySchema, } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/io_pb";
27
19
  import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
28
- import { internalError, invalidArgumentError, notFoundError, } from "../../pipeline/errors.js";
29
- import { findResourceBySlug, requireOrgForReference } from "../../pipeline/steps/helpers.js";
30
- import { TARGET_RESOURCE_KEY } from "../../pipeline/steps/load-target.js";
31
- import { AuditNotFoundError } from "../../store/interface.js";
32
- /** A 64-character lowercase-hex string (a SHA-256 content hash). */
33
- const HASH_PATTERN = /^[a-f0-9]{64}$/;
34
- function isHash(version) {
35
- return HASH_PATTERN.test(version);
36
- }
20
+ import { LIST_VERSIONS_HEAD_HASH_KEY, LIST_VERSIONS_RESOURCE_ID_KEY, LIST_VERSIONS_RESPONSE_KEY, newLoadAndMapVersionsStep as newSharedLoadAndMapVersionsStep, newLoadByReferenceWithVersionStep, newResolveBySlugForVersionsStep, } from "../../pipeline/steps/version-history.js";
21
+ /** The context keys the controller's mid-chain authorize step reads. */
22
+ export const LIST_VERSIONS_SKILL_ID_KEY = LIST_VERSIONS_RESOURCE_ID_KEY;
23
+ export { LIST_VERSIONS_HEAD_HASH_KEY, LIST_VERSIONS_RESPONSE_KEY };
24
+ /** Where a skill keeps its hash and its tag, and how its history renders. */
25
+ const skillVersionBinding = {
26
+ kind: ApiResourceKind.skill,
27
+ schema: SkillSchema,
28
+ noun: "skill",
29
+ headHashOf: (skill) => skill.status?.versionHash ?? "",
30
+ liveTagOf: (skill) => skill.spec?.tag ?? "",
31
+ input: (req) => req,
32
+ mapEntry: mapSkillToVersionEntry,
33
+ response: (versions, nextPageToken, totalCount) => create(ListSkillVersionsResponseSchema, {
34
+ versions,
35
+ nextPageToken,
36
+ totalCount,
37
+ }),
38
+ };
37
39
  /** Go LoadSkillByReferenceStep — the reference + version ladder. */
38
40
  export function newLoadSkillByReferenceStep(store) {
39
- return {
40
- name: "LoadSkillByReference",
41
- async execute(ctx) {
42
- const ref = ctx.input;
43
- if (ref.slug === "") {
44
- throw invalidArgumentError("slug is required in reference");
45
- }
46
- // Skill is org-scoped: its slug is unique only within an org, so an
47
- // empty-org reference is under-specified.
48
- requireOrgForReference(ctx.apiResourceKind, ref.org);
49
- if (ref.kind !== ApiResourceKind.api_resource_kind_unknown &&
50
- ref.kind !== ApiResourceKind.skill) {
51
- throw invalidArgumentError(`kind mismatch: expected ${ApiResourceKind[ApiResourceKind.skill]}, got ${ApiResourceKind[ref.kind]}`);
52
- }
53
- let mainSkill;
54
- try {
55
- mainSkill = await findResourceBySlug(store, ctx.apiResourceKind, SkillSchema, ref.slug, ref.org);
56
- }
57
- catch (error) {
58
- throw internalError(error, "failed to list skills");
59
- }
60
- if (mainSkill === undefined) {
61
- throw notFoundError("skill", ref.slug);
62
- }
63
- const version = ref.version.trim();
64
- if (version === "" || version === "latest") {
65
- ctx.set(TARGET_RESOURCE_KEY, mainSkill);
66
- return;
67
- }
68
- if (skillMatchesVersion(mainSkill, version)) {
69
- ctx.set(TARGET_RESOURCE_KEY, mainSkill);
70
- return;
71
- }
72
- const auditSkill = await findAuditSkillByVersion(store, ctx.apiResourceKind, mainSkill.metadata.id, version);
73
- if (auditSkill === undefined) {
74
- throw notFoundError("skill version", `${ref.slug}:${version}`);
75
- }
76
- ctx.set(TARGET_RESOURCE_KEY, auditSkill);
77
- },
78
- };
79
- }
80
- /**
81
- * Whether the live head IS the requested version — by hash, or by its
82
- * live spec.tag (honest under the single-holder tag model, see module doc).
83
- */
84
- function skillMatchesVersion(skill, version) {
85
- if (skill.status === undefined) {
86
- return false;
87
- }
88
- if (isHash(version)) {
89
- return skill.status.versionHash === version;
90
- }
91
- return skill.spec !== undefined && skill.spec.tag === version;
92
- }
93
- /**
94
- * Indexed audit lookup by hash or tag (Go findAuditSkillByVersion) —
95
- * not-found is a normal outcome (undefined), storage failures are
96
- * Internal.
97
- */
98
- async function findAuditSkillByVersion(store, kind, skillId, version) {
99
- if (isHash(version)) {
100
- try {
101
- return await store.getAuditByHash(kind, skillId, version, SkillSchema);
102
- }
103
- catch (error) {
104
- if (error instanceof AuditNotFoundError) {
105
- return undefined;
106
- }
107
- throw internalError(error, "failed to query audit by hash");
108
- }
109
- }
110
- try {
111
- return await store.getAuditByTag(kind, skillId, version, SkillSchema);
112
- }
113
- catch (error) {
114
- if (error instanceof AuditNotFoundError) {
115
- return undefined;
116
- }
117
- throw internalError(error, "failed to query audit by tag");
118
- }
41
+ return newLoadByReferenceWithVersionStep(store, skillVersionBinding, "LoadSkillByReference");
119
42
  }
120
- // ─── listVersions ────────────────────────────────────────────────────────
121
- const DEFAULT_PAGE_SIZE = 50;
122
- const MAX_PAGE_SIZE = 100;
123
- export const LIST_VERSIONS_SKILL_ID_KEY = "listVersionsSkillId";
124
- export const LIST_VERSIONS_HEAD_HASH_KEY = "listVersionsHeadHash";
125
- export const LIST_VERSIONS_RESPONSE_KEY = "listVersionsResponse";
126
43
  /** Go ResolveSkillBySlugStep — resolves the skill and captures the head hash. */
127
44
  export function newResolveSkillBySlugStep(store) {
128
- return {
129
- name: "ResolveSkillBySlug",
130
- async execute(ctx) {
131
- const req = ctx.input;
132
- let skill;
133
- try {
134
- skill = await findResourceBySlug(store, ctx.apiResourceKind, SkillSchema, req.slug, req.org);
135
- }
136
- catch (error) {
137
- throw internalError(error, "failed to search for skill");
138
- }
139
- if (skill === undefined) {
140
- throw notFoundError("skill", `${req.slug} (org: ${req.org})`);
141
- }
142
- ctx.set(LIST_VERSIONS_SKILL_ID_KEY, skill.metadata.id);
143
- // The live head's hash decides is_current downstream. Under repoint
144
- // semantics the current version need not be the newest-archived row,
145
- // so recency cannot stand in for currency.
146
- ctx.set(LIST_VERSIONS_HEAD_HASH_KEY, skill.status?.versionHash ?? "");
147
- },
148
- };
45
+ return newResolveBySlugForVersionsStep(store, skillVersionBinding, "ResolveSkillBySlug");
149
46
  }
150
47
  /** Go LoadAndMapVersionsStep — audit records → entries → one page. */
151
48
  export function newLoadAndMapVersionsStep(store) {
152
- return {
153
- name: "LoadAndMapVersions",
154
- async execute(ctx) {
155
- const req = ctx.input;
156
- const skillId = ctx.get(LIST_VERSIONS_SKILL_ID_KEY);
157
- let records;
158
- try {
159
- records = await store.listAuditRecords(ctx.apiResourceKind, skillId);
160
- }
161
- catch (error) {
162
- throw internalError(error, "failed to load version history");
163
- }
164
- // is_current = the entry whose hash matches the live head, not the
165
- // newest row. Legacy data may hold duplicate-hash rows (predating
166
- // repoint semantics); marking only the first match keeps
167
- // exactly-one-current true for them too.
168
- const headHash = ctx.get(LIST_VERSIONS_HEAD_HASH_KEY);
169
- let currentMarked = false;
170
- const entries = [];
171
- for (const record of records) {
172
- let skill;
173
- try {
174
- skill = fromBinary(SkillSchema, record.data);
175
- }
176
- catch {
177
- continue;
178
- }
179
- const isCurrent = !currentMarked &&
180
- headHash !== "" &&
181
- (skill.status?.versionHash ?? "") === headHash;
182
- currentMarked = currentMarked || isCurrent;
183
- // Tag comes from the audit column (source of truth), not the snapshot.
184
- entries.push(mapSkillToVersionEntry(skill, isCurrent, record.tag));
185
- }
186
- let pageSize = req.pageSize;
187
- if (pageSize <= 0) {
188
- pageSize = DEFAULT_PAGE_SIZE;
189
- }
190
- if (pageSize > MAX_PAGE_SIZE) {
191
- pageSize = MAX_PAGE_SIZE;
192
- }
193
- let startIndex = 0;
194
- if (req.pageToken !== "") {
195
- startIndex = decodePageToken(req.pageToken);
196
- }
197
- let pageEntries = [];
198
- let nextPageToken = "";
199
- if (startIndex < entries.length) {
200
- const end = Math.min(startIndex + pageSize, entries.length);
201
- pageEntries = entries.slice(startIndex, end);
202
- if (end < entries.length) {
203
- nextPageToken = Buffer.from(String(end)).toString("base64");
204
- }
205
- }
206
- ctx.set(LIST_VERSIONS_RESPONSE_KEY, create(ListSkillVersionsResponseSchema, {
207
- versions: pageEntries,
208
- nextPageToken,
209
- totalCount: entries.length,
210
- }));
211
- },
212
- };
213
- }
214
- /**
215
- * Decodes the base64 cursor with Go's strictness: base64.StdEncoding
216
- * rejects malformed input and strconv.Atoi rejects trailing garbage —
217
- * Buffer.from is lenient on both, so validity is checked explicitly.
218
- */
219
- function decodePageToken(token) {
220
- const decoded = Buffer.from(token, "base64");
221
- if (decoded.toString("base64") !== token) {
222
- throw invalidArgumentError("invalid page_token");
223
- }
224
- const text = decoded.toString("utf8");
225
- const index = Number.parseInt(text, 10);
226
- if (!Number.isSafeInteger(index) || String(index) !== text || index < 0) {
227
- throw invalidArgumentError("invalid page_token");
228
- }
229
- return index;
49
+ return newSharedLoadAndMapVersionsStep(store, skillVersionBinding, "LoadAndMapVersions");
230
50
  }
231
51
  /**
232
52
  * Maps an archived Skill snapshot to a version entry (Go
233
- * mapSkillToVersionEntry). pushed_at/pushed_by prefer the spec-audit
234
- * updated stamps and fall back to created (first pushes only carry
235
- * created).
53
+ * mapSkillToVersionEntry).
236
54
  */
237
55
  function mapSkillToVersionEntry(skill, isCurrent, tag) {
238
56
  const entry = create(SkillVersionEntrySchema, { isCurrent, tag });
@@ -1 +1 @@
1
- {"version":3,"file":"version-resolution.js","sourceRoot":"","sources":["../../../src/domain/skill/version-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-resolution.js","sourceRoot":"","sources":["../../../src/domain/skill/version-resolution.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/domain/workflow/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAuCzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AA2EjG,OAAO,KAAK,EAAe,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAepE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kHAAkH;IAClH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,qFAAqF;IACrF,QAAQ,CAAC,sBAAsB,EAAE,8BAA8B,GAAG,SAAS,CAAC;IAC5E,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;CACnE;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,sBAAsB,GAC3B,IAAI,CAsBN"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/domain/workflow/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAuCzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AA4EjG,OAAO,KAAK,EAAe,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAepE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kHAAkH;IAClH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,qFAAqF;IACrF,QAAQ,CAAC,sBAAsB,EAAE,8BAA8B,GAAG,SAAS,CAAC;IAC5E,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;CACnE;AAED,qEAAqE;AACrE,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,sBAAsB,GAC3B,IAAI,CAsBN"}