@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
@@ -0,0 +1,144 @@
1
+ # Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/org-shared-environment.fga.yaml
2
+ # at commit b87dd1170 (the OpenFGA store test the cloud runs against its live model).
3
+ # The body below is byte-identical to the source; the cloud re-runs the LIVE
4
+ # file against this evaluator at the re-pin, so a stale copy is caught there.
5
+ # Store tests for org-shared environments (T06).
6
+ #
7
+ # Environments are personal resources with opt-in org sharing. Setting
8
+ # visibility_org writes one tuple (viewer@organization:<org>#viewer — the
9
+ # org's full read audience, cloud#257) that grants everyone in the org
10
+ # REDACTED view only. The creator-only secret-reveal
11
+ # invariant holds at every level: can_read_secrets never widens with
12
+ # sharing. Runtime resolution for executions is app-level (server-side
13
+ # policy on metadata.visibility), deliberately NOT modeled here — no FGA
14
+ # relation could allow a member's execution to use a secret while denying
15
+ # the same member's reveal.
16
+ #
17
+ # Run with:
18
+ # fga model test --tests org-shared-environment.fga.yaml
19
+ #
20
+ # Scenario: org "acme" has creator carol, plain member dave, read-only
21
+ # viewer vera, and an explicit viewer grant for frank on the private
22
+ # environment; mallory belongs to an unrelated org. Carol owns a PRIVATE environment and an
23
+ # ORG-shared environment.
24
+ name: org-shared-environment
25
+ model_file: ../model/fga.mod
26
+
27
+ tuples:
28
+ # --- Org memberships ---
29
+ - user: identity_account:carol
30
+ relation: member
31
+ object: organization:acme
32
+ - user: identity_account:dave
33
+ relation: member
34
+ object: organization:acme
35
+ - user: identity_account:frank
36
+ relation: member
37
+ object: organization:acme
38
+ - user: identity_account:vera
39
+ relation: viewer
40
+ object: organization:acme
41
+ - user: identity_account:mallory
42
+ relation: member
43
+ object: organization:outsider
44
+
45
+ # --- PRIVATE environment (creation tuples only) ---
46
+ - user: organization:acme
47
+ relation: organization
48
+ object: environment:private-creds
49
+ - user: identity_account:carol
50
+ relation: owner
51
+ object: environment:private-creds
52
+ - user: identity_account:carol
53
+ relation: creator
54
+ object: environment:private-creds
55
+ # Explicit viewer grant to frank (redacted view, no secret reveal).
56
+ - user: identity_account:frank
57
+ relation: viewer
58
+ object: environment:private-creds
59
+
60
+ # --- ORG-shared environment (creation tuples + the org viewer tuple) ---
61
+ - user: organization:acme
62
+ relation: organization
63
+ object: environment:team-creds
64
+ - user: identity_account:carol
65
+ relation: owner
66
+ object: environment:team-creds
67
+ - user: identity_account:carol
68
+ relation: creator
69
+ object: environment:team-creds
70
+ - user: organization:acme#viewer
71
+ relation: viewer
72
+ object: environment:team-creds
73
+
74
+ tests:
75
+ - name: private-environment-invisible-to-org-members
76
+ check:
77
+ - user: identity_account:dave
78
+ object: environment:private-creds
79
+ assertions:
80
+ can_view: false
81
+ can_edit: false
82
+ can_read_secrets: false
83
+
84
+ - name: explicit-viewer-grant-is-redacted-view-only
85
+ check:
86
+ - user: identity_account:frank
87
+ object: environment:private-creds
88
+ assertions:
89
+ can_view: true
90
+ can_edit: false
91
+ can_read_secrets: false
92
+
93
+ - name: org-sharing-grants-members-redacted-view-only
94
+ check:
95
+ - user: identity_account:dave
96
+ object: environment:team-creds
97
+ assertions:
98
+ can_view: true
99
+ can_edit: false
100
+ can_delete: false
101
+ can_grant_access: false
102
+ # THE invariant: org sharing never widens secret reveal.
103
+ can_read_secrets: false
104
+
105
+ - name: org-sharing-reaches-read-only-viewers-redacted-too
106
+ check:
107
+ # cloud#257: the org viewer role is read-only by definition — an
108
+ # org-shared environment is readable (REDACTED) to vera, secrets never.
109
+ - user: identity_account:vera
110
+ object: environment:team-creds
111
+ assertions:
112
+ can_view: true
113
+ can_edit: false
114
+ can_read_secrets: false
115
+ - user: identity_account:vera
116
+ object: environment:private-creds
117
+ assertions:
118
+ can_view: false
119
+
120
+ - name: creator-keeps-full-access-on-shared-environment
121
+ check:
122
+ - user: identity_account:carol
123
+ object: environment:team-creds
124
+ assertions:
125
+ can_view: true
126
+ can_edit: true
127
+ can_delete: true
128
+ can_read_secrets: true
129
+
130
+ - name: org-sharing-does-not-leak-across-orgs
131
+ check:
132
+ - user: identity_account:mallory
133
+ object: environment:team-creds
134
+ assertions:
135
+ can_view: false
136
+ can_read_secrets: false
137
+
138
+ - name: org-members-can-list-shared-environments-only
139
+ list_objects:
140
+ - user: identity_account:dave
141
+ type: environment
142
+ assertions:
143
+ can_view:
144
+ - environment:team-creds
@@ -0,0 +1,223 @@
1
+ # Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/platform-visibility.fga.yaml
2
+ # at commit b87dd1170 (the OpenFGA store test the cloud runs against its live model).
3
+ # The body below is byte-identical to the source; the cloud re-runs the LIVE
4
+ # file against this evaluator at the re-pin, so a stale copy is caught there.
5
+ # Store tests for platform visibility (visibility_platform).
6
+ #
7
+ # Verifies the userset chain end-to-end against the authorization model:
8
+ #
9
+ # blueprint#platform_viewer -> identity_provider#platform_user
10
+ # -> member from managed_org -> organization#member
11
+ #
12
+ # Run with:
13
+ # fga model test --tests platform-visibility.fga.yaml
14
+ #
15
+ # Scenario: "planton" is a platform org owning identity_provider:idp1, which
16
+ # manages two customer orgs (acme, beta). Blueprints owned by planton and
17
+ # shared with visibility_platform must be viewable/executable by acme and
18
+ # beta members, invisible to members of an unrelated org, and never editable
19
+ # by managed-org members.
20
+ name: platform-visibility
21
+ model_file: ../model/fga.mod
22
+
23
+ tuples:
24
+ # --- Platform tenancy: idp1 is owned by planton and manages acme + beta ---
25
+ - user: organization:planton
26
+ relation: organization
27
+ object: identity_provider:idp1
28
+ - user: organization:acme
29
+ relation: managed_org
30
+ object: identity_provider:idp1
31
+ - user: organization:beta
32
+ relation: managed_org
33
+ object: identity_provider:idp1
34
+
35
+ # --- Org memberships ---
36
+ - user: identity_account:swarup
37
+ relation: owner
38
+ object: organization:planton
39
+ - user: identity_account:priya
40
+ relation: member
41
+ object: organization:planton
42
+ - user: identity_account:veda
43
+ relation: viewer
44
+ object: organization:planton
45
+ - user: identity_account:alice
46
+ relation: member
47
+ object: organization:acme
48
+ - user: identity_account:bob
49
+ relation: member
50
+ object: organization:beta
51
+ - user: identity_account:mallory
52
+ relation: member
53
+ object: organization:outsider
54
+
55
+ # --- Platform-shared agent (visibility_platform) owned by planton ---
56
+ # PLATFORM carries the org floor tuple too (viewer@org#viewer — the org's
57
+ # full read audience, cloud#257), exactly as VisibilityTupleReconciler
58
+ # writes it, so everyone in the platform org keeps access.
59
+ - user: organization:planton
60
+ relation: organization
61
+ object: agent:sara
62
+ - user: identity_account:swarup
63
+ relation: owner
64
+ object: agent:sara
65
+ - user: identity_provider:idp1#platform_user
66
+ relation: platform_viewer
67
+ object: agent:sara
68
+ - user: organization:planton#viewer
69
+ relation: viewer
70
+ object: agent:sara
71
+
72
+ # --- Private agent owned by planton (no platform_viewer tuple) ---
73
+ - user: organization:planton
74
+ relation: organization
75
+ object: agent:internal-bot
76
+ - user: identity_account:swarup
77
+ relation: owner
78
+ object: agent:internal-bot
79
+
80
+ # --- Platform-shared blueprints of the other three kinds ---
81
+ - user: organization:planton
82
+ relation: organization
83
+ object: skill:research
84
+ - user: identity_provider:idp1#platform_user
85
+ relation: platform_viewer
86
+ object: skill:research
87
+ - user: organization:planton
88
+ relation: organization
89
+ object: workflow:onboarding
90
+ - user: identity_provider:idp1#platform_user
91
+ relation: platform_viewer
92
+ object: workflow:onboarding
93
+ - user: organization:planton
94
+ relation: organization
95
+ object: mcp_server:github
96
+ - user: identity_provider:idp1#platform_user
97
+ relation: platform_viewer
98
+ object: mcp_server:github
99
+
100
+ tests:
101
+ - name: managed-org members can view and execute a platform-shared agent
102
+ check:
103
+ - user: identity_account:alice
104
+ object: agent:sara
105
+ context:
106
+ allow: false
107
+ assertions:
108
+ can_view: true
109
+ can_execute: true
110
+ can_create_instance: true
111
+ can_edit: false
112
+ can_delete: false
113
+ - user: identity_account:bob
114
+ object: agent:sara
115
+ context:
116
+ allow: false
117
+ assertions:
118
+ can_view: true
119
+ can_execute: true
120
+
121
+ - name: outsiders and unrelated orgs get nothing from platform visibility
122
+ check:
123
+ - user: identity_account:mallory
124
+ object: agent:sara
125
+ context:
126
+ allow: false
127
+ assertions:
128
+ can_view: false
129
+ can_execute: false
130
+ can_create_instance: false
131
+
132
+ - name: platform org's own members keep access via the org floor tuple
133
+ check:
134
+ - user: identity_account:priya
135
+ object: agent:sara
136
+ context:
137
+ allow: false
138
+ assertions:
139
+ can_view: true
140
+ can_execute: true
141
+ can_edit: false
142
+ # cloud#257: the viewer-shaped org floor reaches the platform org's own
143
+ # read-only viewers too. (Managed-org audiences are deliberately
144
+ # narrower: platform_user resolves member-from-managed_org.)
145
+ - user: identity_account:veda
146
+ object: agent:sara
147
+ context:
148
+ allow: false
149
+ assertions:
150
+ can_view: true
151
+ can_edit: false
152
+
153
+ - name: platform visibility does not leak the platform org's private agents
154
+ check:
155
+ - user: identity_account:alice
156
+ object: agent:internal-bot
157
+ context:
158
+ allow: false
159
+ assertions:
160
+ can_view: false
161
+ can_execute: false
162
+ # Private is real: even the platform org's own members see nothing
163
+ # without an explicit visibility tuple.
164
+ - user: identity_account:priya
165
+ object: agent:internal-bot
166
+ context:
167
+ allow: false
168
+ assertions:
169
+ can_view: false
170
+ can_execute: false
171
+
172
+ - name: platform-shared skill is usable by managed-org members
173
+ check:
174
+ - user: identity_account:alice
175
+ object: skill:research
176
+ context:
177
+ allow: false
178
+ assertions:
179
+ can_view: true
180
+ can_use: true
181
+ can_edit: false
182
+
183
+ - name: platform-shared workflow is viewable and executable by managed-org members
184
+ check:
185
+ - user: identity_account:alice
186
+ object: workflow:onboarding
187
+ context:
188
+ allow: false
189
+ assertions:
190
+ can_view: true
191
+ can_execute: true
192
+
193
+ - name: platform-shared mcp_server is usable by managed-org members
194
+ check:
195
+ - user: identity_account:alice
196
+ object: mcp_server:github
197
+ context:
198
+ allow: false
199
+ assertions:
200
+ can_view: true
201
+ can_use: true
202
+ can_connect: true
203
+
204
+ - name: platform owner retains full control of shared blueprints
205
+ check:
206
+ - user: identity_account:swarup
207
+ object: agent:sara
208
+ context:
209
+ allow: false
210
+ assertions:
211
+ can_view: true
212
+ can_edit: true
213
+ can_delete: true
214
+
215
+ - name: list managed-org member's viewable agents includes only the shared one
216
+ list_objects:
217
+ - user: identity_account:alice
218
+ type: agent
219
+ context:
220
+ allow: false
221
+ assertions:
222
+ can_view:
223
+ - agent:sara
@@ -0,0 +1,40 @@
1
+ # Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/provider-standing-viewer.fga.yaml
2
+ # at commit b87dd1170 (the OpenFGA store test the cloud runs against its live model).
3
+ # The body below is byte-identical to the source; the cloud re-runs the LIVE
4
+ # file against this evaluator at the re-pin, so a stale copy is caught there.
5
+ # Store tests for the provider-standing view permission (cloud#447).
6
+ #
7
+ # can_view_provider_standing gates the read-only operator console view of
8
+ # platform provider standing (the canary-probe verdicts the cloud#370
9
+ # probe records). It derives from the platform operator role — provider
10
+ # account health is platform-internal, so ordinary tenants (even org
11
+ # owners) never see it, regardless of what they own.
12
+ #
13
+ # Run with:
14
+ # fga model test --tests provider-standing-viewer.fga.yaml
15
+ name: provider-standing-viewer
16
+ model_file: ../model/fga.mod
17
+
18
+ tuples:
19
+ # A platform operator.
20
+ - user: identity_account:opal
21
+ relation: operator
22
+ object: platform:stigmer
23
+
24
+ # A tenant org owner — owns everything in their org, nothing on the
25
+ # platform.
26
+ - user: identity_account:mallory
27
+ relation: owner
28
+ object: organization:acme
29
+
30
+ tests:
31
+ - name: operator may view provider standing, tenants may not
32
+ check:
33
+ - user: identity_account:opal
34
+ object: platform:stigmer
35
+ assertions:
36
+ can_view_provider_standing: true
37
+ - user: identity_account:mallory
38
+ object: platform:stigmer
39
+ assertions:
40
+ can_view_provider_standing: false
@@ -0,0 +1,52 @@
1
+ # Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/public-visibility-setter.fga.yaml
2
+ # at commit b87dd1170 (the OpenFGA store test the cloud runs against its live model).
3
+ # The body below is byte-identical to the source; the cloud re-runs the LIVE
4
+ # file against this evaluator at the re-pin, so a stale copy is caught there.
5
+ # Store tests for the public-visibility permission (marketplace curation).
6
+ #
7
+ # can_set_public_visibility gates who may set a resource's visibility to
8
+ # PUBLIC — the only level that crosses every org boundary. It derives
9
+ # from the platform operator role: operators (human curators and the
10
+ # seeding machine account) hold it; ordinary tenants — even org owners,
11
+ # who can otherwise fully manage their resources — never do. Enforced by
12
+ # PublicVisibilityEscalationPolicy at both write doors (updateVisibility
13
+ # escalation and create-with-public).
14
+ #
15
+ # Run with:
16
+ # fga model test --tests public-visibility-setter.fga.yaml
17
+ name: public-visibility-setter
18
+ model_file: ../model/fga.mod
19
+
20
+ tuples:
21
+ # The bootstrap machine account is the platform operator
22
+ # (BootstrapIdentitySeeder re-asserts this tuple on every boot).
23
+ - user: identity_account:machine
24
+ relation: operator
25
+ object: platform:stigmer
26
+
27
+ # A human operator granted the same platform role.
28
+ - user: identity_account:opal
29
+ relation: operator
30
+ object: platform:stigmer
31
+
32
+ # A tenant org owner — owns everything in their org, nothing on the
33
+ # platform.
34
+ - user: identity_account:mallory
35
+ relation: owner
36
+ object: organization:acme
37
+
38
+ tests:
39
+ - name: operators may set public visibility, tenants may not
40
+ check:
41
+ - user: identity_account:machine
42
+ object: platform:stigmer
43
+ assertions:
44
+ can_set_public_visibility: true
45
+ - user: identity_account:opal
46
+ object: platform:stigmer
47
+ assertions:
48
+ can_set_public_visibility: true
49
+ - user: identity_account:mallory
50
+ object: platform:stigmer
51
+ assertions:
52
+ can_set_public_visibility: false
@@ -0,0 +1,41 @@
1
+ # Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/reserved-label-writer.fga.yaml
2
+ # at commit b87dd1170 (the OpenFGA store test the cloud runs against its live model).
3
+ # The body below is byte-identical to the source; the cloud re-runs the LIVE
4
+ # file against this evaluator at the re-pin, so a stale copy is caught there.
5
+ # Store tests for the reserved-label write permission (cloud#320).
6
+ #
7
+ # can_write_reserved_labels gates who may introduce or change labels in
8
+ # the reserved stigmer.ai/* namespace at client-facing write boundaries
9
+ # (GuardReservedLabelsStep). It derives from the platform operator role
10
+ # — the seeding machine account holds it, ordinary tenants (even org
11
+ # owners) never do, regardless of what they own.
12
+ #
13
+ # Run with:
14
+ # fga model test --tests reserved-label-writer.fga.yaml
15
+ name: reserved-label-writer
16
+ model_file: ../model/fga.mod
17
+
18
+ tuples:
19
+ # The bootstrap machine account is the platform operator
20
+ # (BootstrapIdentitySeeder re-asserts this tuple on every boot).
21
+ - user: identity_account:machine
22
+ relation: operator
23
+ object: platform:stigmer
24
+
25
+ # A tenant org owner — owns everything in their org, nothing on the
26
+ # platform.
27
+ - user: identity_account:mallory
28
+ relation: owner
29
+ object: organization:acme
30
+
31
+ tests:
32
+ - name: operator may write reserved labels, tenants may not
33
+ check:
34
+ - user: identity_account:machine
35
+ object: platform:stigmer
36
+ assertions:
37
+ can_write_reserved_labels: true
38
+ - user: identity_account:mallory
39
+ object: platform:stigmer
40
+ assertions:
41
+ can_write_reserved_labels: false
@@ -0,0 +1,113 @@
1
+ # Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/schedule-owner.fga.yaml
2
+ # at commit b87dd1170 (the OpenFGA store test the cloud runs against its live model).
3
+ # The body below is byte-identical to the source; the cloud re-runs the LIVE
4
+ # file against this evaluator at the re-pin, so a stale copy is caught there.
5
+ # Schedules are owner-scoped operational config (whatsapp-proactive-
6
+ # messaging DD-008/DD-009, cloned from the agent_channel model): the
7
+ # creator owns the schedule; view/edit/delete require ownership or an
8
+ # explicit grant. Plain org members get NO implicit access — a schedule's
9
+ # levers are billing-affecting (every fire spends the owning org's
10
+ # credits, unattended). Creation is target-gated (can_edit on the
11
+ # referenced agent, checked in-handler), so no organization-level
12
+ # can_create_schedule relation exists to test.
13
+ #
14
+ # Org ADMINS inherit owner (T08, consistent with agents and channels — an
15
+ # admin who can edit the agent can manage its schedules). The narrowness
16
+ # these tests pin: owner + admins have control, granted viewers read,
17
+ # plain members have nothing.
18
+ #
19
+ # Run: fga model test --tests schedule-owner.fga.yaml
20
+
21
+ name: schedule-owner
22
+ model_file: ../model/fga.mod
23
+
24
+ tuples:
25
+ # Org membership for both accounts — proving membership grants nothing.
26
+ - user: identity_account:alice
27
+ relation: member
28
+ object: organization:acme
29
+ - user: identity_account:mallory
30
+ relation: member
31
+ object: organization:acme
32
+
33
+ # Org admin — proving T08 inheritance reaches schedules.
34
+ - user: identity_account:ana
35
+ relation: admin
36
+ object: organization:acme
37
+
38
+ # The schedule, created by alice (the config-driven create tuples).
39
+ - user: organization:acme
40
+ relation: organization
41
+ object: schedule:daily-fee-reminders
42
+ - user: identity_account:alice
43
+ relation: owner
44
+ object: schedule:daily-fee-reminders
45
+
46
+ # An explicit viewer grant to carol (not even an org member).
47
+ - user: identity_account:carol
48
+ relation: viewer
49
+ object: schedule:daily-fee-reminders
50
+
51
+ tests:
52
+ - name: owner has full control including grant management
53
+ check:
54
+ - user: identity_account:alice
55
+ object: schedule:daily-fee-reminders
56
+ assertions:
57
+ can_view: true
58
+ can_edit: true
59
+ can_delete: true
60
+ can_grant_access: true
61
+ can_view_access: true
62
+
63
+ - name: explicitly granted viewer can read but not mutate
64
+ check:
65
+ - user: identity_account:carol
66
+ object: schedule:daily-fee-reminders
67
+ assertions:
68
+ can_view: true
69
+ can_edit: false
70
+ can_delete: false
71
+ can_grant_access: false
72
+ can_view_access: true
73
+
74
+ - name: fellow org member has no implicit access
75
+ check:
76
+ - user: identity_account:mallory
77
+ object: schedule:daily-fee-reminders
78
+ assertions:
79
+ can_view: false
80
+ can_edit: false
81
+ can_delete: false
82
+ can_grant_access: false
83
+ can_view_access: false
84
+
85
+ - name: org admin inherits schedule management (T08)
86
+ check:
87
+ - user: identity_account:ana
88
+ object: schedule:daily-fee-reminders
89
+ assertions:
90
+ can_view: true
91
+ can_edit: true
92
+ can_delete: true
93
+ can_grant_access: true
94
+
95
+ - name: listing schedules reflects ownership and grants, not membership
96
+ list_objects:
97
+ - user: identity_account:alice
98
+ type: schedule
99
+ assertions:
100
+ can_view:
101
+ - schedule:daily-fee-reminders
102
+ can_edit:
103
+ - schedule:daily-fee-reminders
104
+ - user: identity_account:carol
105
+ type: schedule
106
+ assertions:
107
+ can_view:
108
+ - schedule:daily-fee-reminders
109
+ can_edit: []
110
+ - user: identity_account:mallory
111
+ type: schedule
112
+ assertions:
113
+ can_view: []