@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.
- package/README.md +3 -3
- package/dist/archive/content-store.d.ts +35 -0
- package/dist/archive/content-store.d.ts.map +1 -0
- package/dist/archive/content-store.js +98 -0
- package/dist/archive/content-store.js.map +1 -0
- package/dist/archive/inflate.d.ts +22 -0
- package/dist/archive/inflate.d.ts.map +1 -0
- package/dist/archive/inflate.js +75 -0
- package/dist/archive/inflate.js.map +1 -0
- package/dist/archive/limits.d.ts +33 -0
- package/dist/archive/limits.d.ts.map +1 -0
- package/dist/archive/limits.js +31 -0
- package/dist/archive/limits.js.map +1 -0
- package/dist/archive/open.d.ts +24 -0
- package/dist/archive/open.d.ts.map +1 -0
- package/dist/archive/open.js +93 -0
- package/dist/archive/open.js.map +1 -0
- package/dist/{domain/skill/storage → archive}/prefilter.d.ts +5 -0
- package/dist/archive/prefilter.d.ts.map +1 -0
- package/dist/archive/prefilter.js.map +1 -0
- package/dist/archive/write.d.ts +8 -0
- package/dist/archive/write.d.ts.map +1 -0
- package/dist/archive/write.js +44 -0
- package/dist/archive/write.js.map +1 -0
- package/dist/authorization/authorizer.d.ts +98 -0
- package/dist/authorization/authorizer.d.ts.map +1 -0
- package/dist/authorization/authorizer.js +156 -0
- package/dist/authorization/authorizer.js.map +1 -0
- package/dist/authorization/derived-tuples.d.ts +42 -0
- package/dist/authorization/derived-tuples.d.ts.map +1 -0
- package/dist/authorization/derived-tuples.js +240 -0
- package/dist/authorization/derived-tuples.js.map +1 -0
- package/dist/authorization/evaluator.d.ts +66 -0
- package/dist/authorization/evaluator.d.ts.map +1 -0
- package/dist/authorization/evaluator.js +153 -0
- package/dist/authorization/evaluator.js.map +1 -0
- package/dist/authorization/facts.d.ts +29 -0
- package/dist/authorization/facts.d.ts.map +1 -0
- package/dist/authorization/facts.js +17 -0
- package/dist/authorization/facts.js.map +1 -0
- package/dist/authorization/list-read-scope.d.ts +18 -0
- package/dist/authorization/list-read-scope.d.ts.map +1 -0
- package/dist/authorization/list-read-scope.js +155 -0
- package/dist/authorization/list-read-scope.js.map +1 -0
- package/dist/authorization/model/agent.d.ts +2 -0
- package/dist/authorization/model/agent.d.ts.map +1 -0
- package/dist/authorization/model/agent.js +42 -0
- package/dist/authorization/model/agent.js.map +1 -0
- package/dist/authorization/model/agent_channel.d.ts +2 -0
- package/dist/authorization/model/agent_channel.d.ts.map +1 -0
- package/dist/authorization/model/agent_channel.js +38 -0
- package/dist/authorization/model/agent_channel.js.map +1 -0
- package/dist/authorization/model/agent_execution.d.ts +2 -0
- package/dist/authorization/model/agent_execution.d.ts.map +1 -0
- package/dist/authorization/model/agent_execution.js +25 -0
- package/dist/authorization/model/agent_execution.js.map +1 -0
- package/dist/authorization/model/agent_instance.d.ts +2 -0
- package/dist/authorization/model/agent_instance.d.ts.map +1 -0
- package/dist/authorization/model/agent_instance.js +47 -0
- package/dist/authorization/model/agent_instance.js.map +1 -0
- package/dist/authorization/model/agent_share.d.ts +2 -0
- package/dist/authorization/model/agent_share.d.ts.map +1 -0
- package/dist/authorization/model/agent_share.js +29 -0
- package/dist/authorization/model/agent_share.js.map +1 -0
- package/dist/authorization/model/api_key.d.ts +2 -0
- package/dist/authorization/model/api_key.d.ts.map +1 -0
- package/dist/authorization/model/api_key.js +27 -0
- package/dist/authorization/model/api_key.js.map +1 -0
- package/dist/authorization/model/artifact.d.ts +2 -0
- package/dist/authorization/model/artifact.d.ts.map +1 -0
- package/dist/authorization/model/artifact.js +27 -0
- package/dist/authorization/model/artifact.js.map +1 -0
- package/dist/authorization/model/channel_app.d.ts +2 -0
- package/dist/authorization/model/channel_app.d.ts.map +1 -0
- package/dist/authorization/model/channel_app.js +28 -0
- package/dist/authorization/model/channel_app.js.map +1 -0
- package/dist/authorization/model/default-of.d.ts +38 -0
- package/dist/authorization/model/default-of.d.ts.map +1 -0
- package/dist/authorization/model/default-of.js +39 -0
- package/dist/authorization/model/default-of.js.map +1 -0
- package/dist/authorization/model/environment.d.ts +2 -0
- package/dist/authorization/model/environment.d.ts.map +1 -0
- package/dist/authorization/model/environment.js +33 -0
- package/dist/authorization/model/environment.js.map +1 -0
- package/dist/authorization/model/execution_context.d.ts +2 -0
- package/dist/authorization/model/execution_context.d.ts.map +1 -0
- package/dist/authorization/model/execution_context.js +19 -0
- package/dist/authorization/model/execution_context.js.map +1 -0
- package/dist/authorization/model/iam_policy.d.ts +2 -0
- package/dist/authorization/model/iam_policy.d.ts.map +1 -0
- package/dist/authorization/model/iam_policy.js +31 -0
- package/dist/authorization/model/iam_policy.js.map +1 -0
- package/dist/authorization/model/identity_account.d.ts +2 -0
- package/dist/authorization/model/identity_account.d.ts.map +1 -0
- package/dist/authorization/model/identity_account.js +25 -0
- package/dist/authorization/model/identity_account.js.map +1 -0
- package/dist/authorization/model/index.d.ts +36 -0
- package/dist/authorization/model/index.d.ts.map +1 -0
- package/dist/authorization/model/index.js +72 -0
- package/dist/authorization/model/index.js.map +1 -0
- package/dist/authorization/model/mcp_server.d.ts +2 -0
- package/dist/authorization/model/mcp_server.d.ts.map +1 -0
- package/dist/authorization/model/mcp_server.js +37 -0
- package/dist/authorization/model/mcp_server.js.map +1 -0
- package/dist/authorization/model/memory.d.ts +2 -0
- package/dist/authorization/model/memory.d.ts.map +1 -0
- package/dist/authorization/model/memory.js +26 -0
- package/dist/authorization/model/memory.js.map +1 -0
- package/dist/authorization/model/oauth_app.d.ts +2 -0
- package/dist/authorization/model/oauth_app.d.ts.map +1 -0
- package/dist/authorization/model/oauth_app.js +30 -0
- package/dist/authorization/model/oauth_app.js.map +1 -0
- package/dist/authorization/model/organization.d.ts +2 -0
- package/dist/authorization/model/organization.d.ts.map +1 -0
- package/dist/authorization/model/organization.js +54 -0
- package/dist/authorization/model/organization.js.map +1 -0
- package/dist/authorization/model/plugin.d.ts +2 -0
- package/dist/authorization/model/plugin.d.ts.map +1 -0
- package/dist/authorization/model/plugin.js +44 -0
- package/dist/authorization/model/plugin.js.map +1 -0
- package/dist/authorization/model/project.d.ts +2 -0
- package/dist/authorization/model/project.d.ts.map +1 -0
- package/dist/authorization/model/project.js +32 -0
- package/dist/authorization/model/project.js.map +1 -0
- package/dist/authorization/model/rewrite.d.ts +127 -0
- package/dist/authorization/model/rewrite.d.ts.map +1 -0
- package/dist/authorization/model/rewrite.js +82 -0
- package/dist/authorization/model/rewrite.js.map +1 -0
- package/dist/authorization/model/schedule.d.ts +2 -0
- package/dist/authorization/model/schedule.d.ts.map +1 -0
- package/dist/authorization/model/schedule.js +29 -0
- package/dist/authorization/model/schedule.js.map +1 -0
- package/dist/authorization/model/session.d.ts +2 -0
- package/dist/authorization/model/session.d.ts.map +1 -0
- package/dist/authorization/model/session.js +38 -0
- package/dist/authorization/model/session.js.map +1 -0
- package/dist/authorization/model/skill.d.ts +2 -0
- package/dist/authorization/model/skill.d.ts.map +1 -0
- package/dist/authorization/model/skill.js +38 -0
- package/dist/authorization/model/skill.js.map +1 -0
- package/dist/authorization/model/workflow.d.ts +2 -0
- package/dist/authorization/model/workflow.d.ts.map +1 -0
- package/dist/authorization/model/workflow.js +38 -0
- package/dist/authorization/model/workflow.js.map +1 -0
- package/dist/authorization/model/workflow_execution.d.ts +2 -0
- package/dist/authorization/model/workflow_execution.d.ts.map +1 -0
- package/dist/authorization/model/workflow_execution.js +32 -0
- package/dist/authorization/model/workflow_execution.js.map +1 -0
- package/dist/authorization/model/workflow_instance.d.ts +2 -0
- package/dist/authorization/model/workflow_instance.d.ts.map +1 -0
- package/dist/authorization/model/workflow_instance.js +92 -0
- package/dist/authorization/model/workflow_instance.js.map +1 -0
- package/dist/authorization/organization-directory.d.ts +13 -0
- package/dist/authorization/organization-directory.d.ts.map +1 -0
- package/dist/authorization/organization-directory.js +83 -0
- package/dist/authorization/organization-directory.js.map +1 -0
- package/dist/authorization/person.d.ts +42 -0
- package/dist/authorization/person.d.ts.map +1 -0
- package/dist/authorization/person.js +19 -0
- package/dist/authorization/person.js.map +1 -0
- package/dist/authorization/posture.d.ts +38 -0
- package/dist/authorization/posture.d.ts.map +1 -0
- package/dist/authorization/posture.js +7 -0
- package/dist/authorization/posture.js.map +1 -0
- package/dist/authorization/schedule-fire-caller.d.ts +12 -0
- package/dist/authorization/schedule-fire-caller.d.ts.map +1 -0
- package/dist/authorization/schedule-fire-caller.js +67 -0
- package/dist/authorization/schedule-fire-caller.js.map +1 -0
- package/dist/authorization/store-test-kit.d.ts +68 -0
- package/dist/authorization/store-test-kit.d.ts.map +1 -0
- package/dist/authorization/store-test-kit.js +311 -0
- package/dist/authorization/store-test-kit.js.map +1 -0
- package/dist/authorization/tuples.d.ts +115 -0
- package/dist/authorization/tuples.d.ts.map +1 -0
- package/dist/authorization/tuples.js +83 -0
- package/dist/authorization/tuples.js.map +1 -0
- package/dist/boot/compose.d.ts.map +1 -1
- package/dist/boot/compose.js +157 -32
- package/dist/boot/compose.js.map +1 -1
- package/dist/boot/inprocess.d.ts +12 -0
- package/dist/boot/inprocess.d.ts.map +1 -1
- package/dist/boot/inprocess.js +62 -20
- package/dist/boot/inprocess.js.map +1 -1
- package/dist/domain/agent/controller.d.ts.map +1 -1
- package/dist/domain/agent/controller.js +9 -0
- package/dist/domain/agent/controller.js.map +1 -1
- package/dist/domain/iampolicy/constants.d.ts +11 -0
- package/dist/domain/iampolicy/constants.d.ts.map +1 -1
- package/dist/domain/iampolicy/constants.js +11 -0
- package/dist/domain/iampolicy/constants.js.map +1 -1
- package/dist/domain/iampolicy/membership.d.ts +72 -1
- package/dist/domain/iampolicy/membership.d.ts.map +1 -1
- package/dist/domain/iampolicy/membership.js +141 -56
- package/dist/domain/iampolicy/membership.js.map +1 -1
- package/dist/domain/identityaccount/actor.d.ts +26 -0
- package/dist/domain/identityaccount/actor.d.ts.map +1 -0
- package/dist/domain/identityaccount/actor.js +17 -0
- package/dist/domain/identityaccount/actor.js.map +1 -0
- package/dist/domain/mcpserver/controller.d.ts.map +1 -1
- package/dist/domain/mcpserver/controller.js +9 -0
- package/dist/domain/mcpserver/controller.js.map +1 -1
- package/dist/domain/plugin/archive.d.ts +37 -0
- package/dist/domain/plugin/archive.d.ts.map +1 -0
- package/dist/domain/plugin/archive.js +50 -0
- package/dist/domain/plugin/archive.js.map +1 -0
- package/dist/domain/plugin/constants.d.ts +38 -0
- package/dist/domain/plugin/constants.d.ts.map +1 -0
- package/dist/domain/plugin/constants.js +46 -0
- package/dist/domain/plugin/constants.js.map +1 -0
- package/dist/domain/plugin/controller.d.ts +25 -0
- package/dist/domain/plugin/controller.d.ts.map +1 -0
- package/dist/domain/plugin/controller.js +493 -0
- package/dist/domain/plugin/controller.js.map +1 -0
- package/dist/domain/plugin/materialize/agent.d.ts +13 -0
- package/dist/domain/plugin/materialize/agent.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/agent.js +128 -0
- package/dist/domain/plugin/materialize/agent.js.map +1 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.d.ts +22 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.js +31 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.js.map +1 -0
- package/dist/domain/plugin/materialize/identity.d.ts +28 -0
- package/dist/domain/plugin/materialize/identity.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/identity.js +40 -0
- package/dist/domain/plugin/materialize/identity.js.map +1 -0
- package/dist/domain/plugin/materialize/mcp-servers.d.ts +15 -0
- package/dist/domain/plugin/materialize/mcp-servers.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/mcp-servers.js +131 -0
- package/dist/domain/plugin/materialize/mcp-servers.js.map +1 -0
- package/dist/domain/plugin/materialize/plan.d.ts +24 -0
- package/dist/domain/plugin/materialize/plan.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/plan.js +77 -0
- package/dist/domain/plugin/materialize/plan.js.map +1 -0
- package/dist/domain/plugin/materialize/ports.d.ts +42 -0
- package/dist/domain/plugin/materialize/ports.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/ports.js +2 -0
- package/dist/domain/plugin/materialize/ports.js.map +1 -0
- package/dist/domain/plugin/materialize/skills.d.ts +12 -0
- package/dist/domain/plugin/materialize/skills.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/skills.js +44 -0
- package/dist/domain/plugin/materialize/skills.js.map +1 -0
- package/dist/domain/plugin/materialize/workflows.d.ts +15 -0
- package/dist/domain/plugin/materialize/workflows.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/workflows.js +31 -0
- package/dist/domain/plugin/materialize/workflows.js.map +1 -0
- package/dist/domain/plugin/members.d.ts +42 -0
- package/dist/domain/plugin/members.d.ts.map +1 -0
- package/dist/domain/plugin/members.js +97 -0
- package/dist/domain/plugin/members.js.map +1 -0
- package/dist/domain/plugin/overlay/documents.d.ts +31 -0
- package/dist/domain/plugin/overlay/documents.d.ts.map +1 -0
- package/dist/domain/plugin/overlay/documents.js +38 -0
- package/dist/domain/plugin/overlay/documents.js.map +1 -0
- package/dist/domain/plugin/overlay/parse.d.ts +16 -0
- package/dist/domain/plugin/overlay/parse.d.ts.map +1 -0
- package/dist/domain/plugin/overlay/parse.js +79 -0
- package/dist/domain/plugin/overlay/parse.js.map +1 -0
- package/dist/domain/plugin/overlay/sanitize.d.ts +10 -0
- package/dist/domain/plugin/overlay/sanitize.d.ts.map +1 -0
- package/dist/domain/plugin/overlay/sanitize.js +101 -0
- package/dist/domain/plugin/overlay/sanitize.js.map +1 -0
- package/dist/domain/plugin/push.d.ts +133 -0
- package/dist/domain/plugin/push.d.ts.map +1 -0
- package/dist/domain/plugin/push.js +800 -0
- package/dist/domain/plugin/push.js.map +1 -0
- package/dist/domain/plugin/search-extractor.d.ts +3 -0
- package/dist/domain/plugin/search-extractor.d.ts.map +1 -0
- package/dist/domain/plugin/search-extractor.js +41 -0
- package/dist/domain/plugin/search-extractor.js.map +1 -0
- package/dist/domain/skill/constants.d.ts +6 -11
- package/dist/domain/skill/constants.d.ts.map +1 -1
- package/dist/domain/skill/constants.js +6 -11
- package/dist/domain/skill/constants.js.map +1 -1
- package/dist/domain/skill/controller.d.ts.map +1 -1
- package/dist/domain/skill/controller.js +33 -30
- package/dist/domain/skill/controller.js.map +1 -1
- package/dist/domain/skill/push.d.ts +9 -10
- package/dist/domain/skill/push.d.ts.map +1 -1
- package/dist/domain/skill/push.js +53 -122
- package/dist/domain/skill/push.js.map +1 -1
- package/dist/domain/skill/search-extractor.d.ts.map +1 -1
- package/dist/domain/skill/search-extractor.js.map +1 -1
- package/dist/domain/skill/storage/artifact-storage.d.ts +26 -29
- package/dist/domain/skill/storage/artifact-storage.d.ts.map +1 -1
- package/dist/domain/skill/storage/artifact-storage.js +6 -103
- package/dist/domain/skill/storage/artifact-storage.js.map +1 -1
- package/dist/domain/skill/storage/zip-gate.d.ts +1 -2
- package/dist/domain/skill/storage/zip-gate.d.ts.map +1 -1
- package/dist/domain/skill/storage/zip-gate.js +56 -126
- package/dist/domain/skill/storage/zip-gate.js.map +1 -1
- package/dist/domain/skill/version-resolution.d.ts +5 -5
- package/dist/domain/skill/version-resolution.d.ts.map +1 -1
- package/dist/domain/skill/version-resolution.js +34 -216
- package/dist/domain/skill/version-resolution.js.map +1 -1
- package/dist/domain/workflow/controller.d.ts.map +1 -1
- package/dist/domain/workflow/controller.js +30 -3
- package/dist/domain/workflow/controller.js.map +1 -1
- package/dist/domain/workflow/registry/data/task-kind-registry.json +1 -0
- package/dist/extensions/authorizer.d.ts +10 -5
- package/dist/extensions/authorizer.d.ts.map +1 -1
- package/dist/extensions/drivers.d.ts +4 -1
- package/dist/extensions/drivers.d.ts.map +1 -1
- package/dist/extensions/list-read-scope.d.ts +75 -11
- package/dist/extensions/list-read-scope.d.ts.map +1 -1
- package/dist/extensions/list-read-scope.js +40 -7
- package/dist/extensions/list-read-scope.js.map +1 -1
- package/dist/extensions/organization-directory.d.ts +13 -9
- package/dist/extensions/organization-directory.d.ts.map +1 -1
- package/dist/extensions/organization-directory.js.map +1 -1
- package/dist/extensions/resource-authorization.d.ts +33 -0
- package/dist/extensions/resource-authorization.d.ts.map +1 -1
- package/dist/extensions/schedule-fire-caller.d.ts +45 -18
- package/dist/extensions/schedule-fire-caller.d.ts.map +1 -1
- package/dist/extensions/schedule-fire-caller.js +12 -1
- package/dist/extensions/schedule-fire-caller.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline/apiresource-labels.d.ts +23 -3
- package/dist/pipeline/apiresource-labels.d.ts.map +1 -1
- package/dist/pipeline/apiresource-labels.js +20 -0
- package/dist/pipeline/apiresource-labels.js.map +1 -1
- package/dist/pipeline/apiresource-meta.d.ts +21 -0
- package/dist/pipeline/apiresource-meta.d.ts.map +1 -1
- package/dist/pipeline/apiresource-meta.js +28 -0
- package/dist/pipeline/apiresource-meta.js.map +1 -1
- package/dist/pipeline/errors.d.ts.map +1 -1
- package/dist/pipeline/errors.js.map +1 -1
- package/dist/pipeline/steps/authorization-facts.d.ts +12 -0
- package/dist/pipeline/steps/authorization-facts.d.ts.map +1 -0
- package/dist/pipeline/steps/authorization-facts.js +100 -0
- package/dist/pipeline/steps/authorization-facts.js.map +1 -0
- package/dist/pipeline/steps/authorization-tuples.d.ts.map +1 -1
- package/dist/pipeline/steps/authorization-tuples.js +7 -26
- package/dist/pipeline/steps/authorization-tuples.js.map +1 -1
- package/dist/pipeline/steps/delete.d.ts.map +1 -1
- package/dist/pipeline/steps/delete.js +1 -1
- package/dist/pipeline/steps/delete.js.map +1 -1
- package/dist/pipeline/steps/duplicate.d.ts.map +1 -1
- package/dist/pipeline/steps/duplicate.js.map +1 -1
- package/dist/pipeline/steps/guard-plugin-managed.d.ts +12 -0
- package/dist/pipeline/steps/guard-plugin-managed.d.ts.map +1 -0
- package/dist/pipeline/steps/guard-plugin-managed.js +96 -0
- package/dist/pipeline/steps/guard-plugin-managed.js.map +1 -0
- package/dist/pipeline/steps/guard-reserved-labels.d.ts +16 -2
- package/dist/pipeline/steps/guard-reserved-labels.d.ts.map +1 -1
- package/dist/pipeline/steps/guard-reserved-labels.js +11 -7
- package/dist/pipeline/steps/guard-reserved-labels.js.map +1 -1
- package/dist/pipeline/steps/helpers.d.ts.map +1 -1
- package/dist/pipeline/steps/helpers.js.map +1 -1
- package/dist/pipeline/steps/index-search.d.ts.map +1 -1
- package/dist/pipeline/steps/index-search.js.map +1 -1
- package/dist/pipeline/steps/load-existing.d.ts.map +1 -1
- package/dist/pipeline/steps/load-existing.js +1 -1
- package/dist/pipeline/steps/load-existing.js.map +1 -1
- package/dist/pipeline/steps/references.d.ts +16 -0
- package/dist/pipeline/steps/references.d.ts.map +1 -1
- package/dist/pipeline/steps/references.js +18 -0
- package/dist/pipeline/steps/references.js.map +1 -1
- package/dist/pipeline/steps/resolve-artifact-source.d.ts +35 -0
- package/dist/pipeline/steps/resolve-artifact-source.d.ts.map +1 -0
- package/dist/pipeline/steps/resolve-artifact-source.js +27 -0
- package/dist/pipeline/steps/resolve-artifact-source.js.map +1 -0
- package/dist/pipeline/steps/server-stamped-reserved-labels.d.ts.map +1 -1
- package/dist/pipeline/steps/server-stamped-reserved-labels.js.map +1 -1
- package/dist/pipeline/steps/shapes.d.ts +18 -0
- package/dist/pipeline/steps/shapes.d.ts.map +1 -1
- package/dist/pipeline/steps/shapes.js +29 -0
- package/dist/pipeline/steps/shapes.js.map +1 -1
- package/dist/pipeline/steps/slug.d.ts.map +1 -1
- package/dist/pipeline/steps/slug.js.map +1 -1
- package/dist/pipeline/steps/validate-visibility.d.ts +9 -0
- package/dist/pipeline/steps/validate-visibility.d.ts.map +1 -1
- package/dist/pipeline/steps/validate-visibility.js +6 -1
- package/dist/pipeline/steps/validate-visibility.js.map +1 -1
- package/dist/pipeline/steps/validation.d.ts.map +1 -1
- package/dist/pipeline/steps/validation.js.map +1 -1
- package/dist/pipeline/steps/version-archive.d.ts +63 -0
- package/dist/pipeline/steps/version-archive.d.ts.map +1 -0
- package/dist/pipeline/steps/version-archive.js +129 -0
- package/dist/pipeline/steps/version-archive.js.map +1 -0
- package/dist/pipeline/steps/version-history.d.ts +49 -0
- package/dist/pipeline/steps/version-history.d.ts.map +1 -0
- package/dist/pipeline/steps/version-history.js +229 -0
- package/dist/pipeline/steps/version-history.js.map +1 -0
- package/dist/pipeline/steps/visibility-gates.d.ts +8 -0
- package/dist/pipeline/steps/visibility-gates.d.ts.map +1 -1
- package/dist/pipeline/steps/visibility-gates.js +7 -2
- package/dist/pipeline/steps/visibility-gates.js.map +1 -1
- package/dist/query/search/registry.d.ts.map +1 -1
- package/dist/query/search/registry.js +2 -0
- package/dist/query/search/registry.js.map +1 -1
- package/dist/temporal/schedule/run-starter.d.ts +1 -1
- package/dist/temporal/schedule/run-starter.d.ts.map +1 -1
- package/dist/temporal/schedule/run-starter.js +14 -1
- package/dist/temporal/schedule/run-starter.js.map +1 -1
- package/package.json +5 -4
- package/src/archive/__tests__/archive.test.ts +233 -0
- package/src/{domain/skill → archive}/__tests__/prefilter.test.ts +1 -1
- package/src/archive/content-store.ts +132 -0
- package/src/archive/inflate.ts +107 -0
- package/src/archive/limits.ts +42 -0
- package/src/archive/open.ts +131 -0
- package/src/{domain/skill/storage → archive}/prefilter.ts +5 -0
- package/src/archive/write.ts +54 -0
- package/src/authorization/README.md +124 -0
- package/src/authorization/__tests__/authorizer.test.ts +719 -0
- package/src/authorization/__tests__/derived-tuples.test.ts +802 -0
- package/src/authorization/__tests__/drivers.ts +70 -0
- package/src/authorization/__tests__/evaluator.test.ts +359 -0
- package/src/authorization/__tests__/facts.test.ts +155 -0
- package/src/authorization/__tests__/fixtures/fga/agent-channel-owner.fga.yaml +112 -0
- package/src/authorization/__tests__/fixtures/fga/agent-share-owner.fga.yaml +109 -0
- package/src/authorization/__tests__/fixtures/fga/artifact-org-and-owner.fga.yaml +128 -0
- package/src/authorization/__tests__/fixtures/fga/blueprint-private-visibility.fga.yaml +410 -0
- package/src/authorization/__tests__/fixtures/fga/channel-app-owner.fga.yaml +125 -0
- package/src/authorization/__tests__/fixtures/fga/channel-participation.fga.yaml +201 -0
- package/src/authorization/__tests__/fixtures/fga/channel-session-visibility.fga.yaml +187 -0
- package/src/authorization/__tests__/fixtures/fga/cross-org-share-creation.fga.yaml +98 -0
- package/src/authorization/__tests__/fixtures/fga/default-instance-inheritance.fga.yaml +271 -0
- package/src/authorization/__tests__/fixtures/fga/memory-subject-only.fga.yaml +72 -0
- package/src/authorization/__tests__/fixtures/fga/org-admin-owner-inheritance.fga.yaml +328 -0
- package/src/authorization/__tests__/fixtures/fga/org-shared-environment.fga.yaml +144 -0
- package/src/authorization/__tests__/fixtures/fga/platform-visibility.fga.yaml +223 -0
- package/src/authorization/__tests__/fixtures/fga/provider-standing-viewer.fga.yaml +40 -0
- package/src/authorization/__tests__/fixtures/fga/public-visibility-setter.fga.yaml +52 -0
- package/src/authorization/__tests__/fixtures/fga/reserved-label-writer.fga.yaml +41 -0
- package/src/authorization/__tests__/fixtures/fga/schedule-owner.fga.yaml +113 -0
- package/src/authorization/__tests__/fixtures/fga/schedule-session-visibility.fga.yaml +214 -0
- package/src/authorization/__tests__/fixtures/fga/session-personal-resource.fga.yaml +117 -0
- package/src/authorization/__tests__/fixtures/fga/workflow-execution-sharing.fga.yaml +192 -0
- package/src/authorization/__tests__/list-read-scope.measure.test.ts +317 -0
- package/src/authorization/__tests__/list-read-scope.test.ts +796 -0
- package/src/authorization/__tests__/organization-directory.test.ts +236 -0
- package/src/authorization/__tests__/person.test.ts +114 -0
- package/src/authorization/__tests__/posture.test.ts +25 -0
- package/src/authorization/__tests__/schedule-fire-caller.test.ts +134 -0
- package/src/authorization/__tests__/store-tests.test.ts +306 -0
- package/src/authorization/__tests__/support.ts +101 -0
- package/src/authorization/__tests__/tuples.test.ts +62 -0
- package/src/authorization/__tests__/wire-permissions.test.ts +154 -0
- package/src/authorization/authorizer.ts +208 -0
- package/src/authorization/derived-tuples.ts +384 -0
- package/src/authorization/evaluator.ts +283 -0
- package/src/authorization/facts.ts +47 -0
- package/src/authorization/list-read-scope.ts +216 -0
- package/src/authorization/model/__tests__/registry.test.ts +317 -0
- package/src/authorization/model/agent.ts +64 -0
- package/src/authorization/model/agent_channel.ts +49 -0
- package/src/authorization/model/agent_execution.ts +33 -0
- package/src/authorization/model/agent_instance.ts +66 -0
- package/src/authorization/model/agent_share.ts +40 -0
- package/src/authorization/model/api_key.ts +28 -0
- package/src/authorization/model/artifact.ts +38 -0
- package/src/authorization/model/channel_app.ts +39 -0
- package/src/authorization/model/default-of.ts +99 -0
- package/src/authorization/model/environment.ts +48 -0
- package/src/authorization/model/execution_context.ts +20 -0
- package/src/authorization/model/iam_policy.ts +42 -0
- package/src/authorization/model/identity_account.ts +26 -0
- package/src/authorization/model/index.ts +108 -0
- package/src/authorization/model/mcp_server.ts +59 -0
- package/src/authorization/model/memory.ts +27 -0
- package/src/authorization/model/oauth_app.ts +42 -0
- package/src/authorization/model/organization.ts +55 -0
- package/src/authorization/model/plugin.ts +66 -0
- package/src/authorization/model/project.ts +47 -0
- package/src/authorization/model/rewrite.ts +213 -0
- package/src/authorization/model/schedule.ts +40 -0
- package/src/authorization/model/session.ts +50 -0
- package/src/authorization/model/skill.ts +60 -0
- package/src/authorization/model/workflow.ts +60 -0
- package/src/authorization/model/workflow_execution.ts +44 -0
- package/src/authorization/model/workflow_instance.ts +122 -0
- package/src/authorization/organization-directory.ts +114 -0
- package/src/authorization/person.ts +68 -0
- package/src/authorization/posture.ts +49 -0
- package/src/authorization/schedule-fire-caller.ts +91 -0
- package/src/authorization/store-test-kit.ts +454 -0
- package/src/authorization/tuples.ts +190 -0
- package/src/boot/compose.ts +175 -38
- package/src/boot/inprocess.ts +108 -30
- package/src/domain/agent/controller.ts +11 -0
- package/src/domain/iampolicy/__tests__/membership.test.ts +357 -3
- package/src/domain/iampolicy/constants.ts +12 -0
- package/src/domain/iampolicy/membership.ts +221 -66
- package/src/domain/identityaccount/actor.ts +44 -0
- package/src/domain/mcpserver/controller.ts +11 -0
- package/src/domain/plugin/__tests__/materialize.test.ts +303 -0
- package/src/domain/plugin/__tests__/overlay-parse.test.ts +85 -0
- package/src/domain/plugin/__tests__/plugin.test.ts +681 -0
- package/src/domain/plugin/__tests__/sanitize.test.ts +174 -0
- package/src/domain/plugin/archive.ts +89 -0
- package/src/domain/plugin/constants.ts +53 -0
- package/src/domain/plugin/controller.ts +913 -0
- package/src/domain/plugin/materialize/agent.ts +186 -0
- package/src/domain/plugin/materialize/default-agent-instructions.ts +59 -0
- package/src/domain/plugin/materialize/identity.ts +67 -0
- package/src/domain/plugin/materialize/mcp-servers.ts +175 -0
- package/src/domain/plugin/materialize/plan.ts +124 -0
- package/src/domain/plugin/materialize/ports.ts +53 -0
- package/src/domain/plugin/materialize/skills.ts +68 -0
- package/src/domain/plugin/materialize/workflows.ts +51 -0
- package/src/domain/plugin/members.ts +180 -0
- package/src/domain/plugin/overlay/documents.ts +78 -0
- package/src/domain/plugin/overlay/parse.ts +115 -0
- package/src/domain/plugin/overlay/sanitize.ts +149 -0
- package/src/domain/plugin/push.ts +1062 -0
- package/src/domain/plugin/search-extractor.ts +60 -0
- package/src/domain/skill/constants.ts +11 -14
- package/src/domain/skill/controller.ts +44 -36
- package/src/domain/skill/push.ts +61 -156
- package/src/domain/skill/search-extractor.ts +3 -1
- package/src/domain/skill/storage/artifact-storage.ts +23 -124
- package/src/domain/skill/storage/zip-gate.ts +58 -154
- package/src/domain/skill/version-resolution.ts +67 -269
- package/src/domain/workflow/controller.ts +38 -4
- package/src/domain/workflow/registry/data/task-kind-registry.json +1 -0
- package/src/extensions/__tests__/built-in-authorization-composed.test.ts +835 -0
- package/src/extensions/__tests__/composed-support.ts +32 -1
- package/src/extensions/__tests__/extension-composition.test.ts +35 -0
- package/src/extensions/__tests__/list-read-scope.test.ts +245 -3
- package/src/extensions/__tests__/role-reconciliation-composed.test.ts +209 -0
- package/src/extensions/__tests__/tier-truthfulness.test.ts +6 -14
- package/src/extensions/authorizer.ts +10 -5
- package/src/extensions/drivers.ts +4 -1
- package/src/extensions/list-read-scope.ts +116 -16
- package/src/extensions/organization-directory.ts +13 -9
- package/src/extensions/resource-authorization.ts +34 -0
- package/src/extensions/schedule-fire-caller.ts +49 -18
- package/src/index.ts +51 -1
- package/src/pipeline/__tests__/inherited-authorization-parent.test.ts +51 -0
- package/src/pipeline/__tests__/router-transport.test.ts +1 -3
- package/src/pipeline/apiresource-labels.ts +31 -3
- package/src/pipeline/apiresource-meta.ts +37 -0
- package/src/pipeline/errors.ts +5 -5
- package/src/pipeline/steps/__tests__/authorize-annotation-completeness.test.ts +1 -20
- package/src/pipeline/steps/__tests__/guard-memory-capture.test.ts +3 -9
- package/src/pipeline/steps/__tests__/guard-plugin-managed.test.ts +151 -0
- package/src/pipeline/steps/__tests__/guard-reserved-labels.test.ts +83 -8
- package/src/pipeline/steps/authorization-facts.ts +131 -0
- package/src/pipeline/steps/authorization-tuples.ts +7 -28
- package/src/pipeline/steps/delete.ts +11 -3
- package/src/pipeline/steps/duplicate.ts +8 -2
- package/src/pipeline/steps/guard-plugin-managed.ts +133 -0
- package/src/pipeline/steps/guard-reserved-labels.ts +29 -8
- package/src/pipeline/steps/helpers.ts +4 -1
- package/src/pipeline/steps/index-search.ts +28 -15
- package/src/pipeline/steps/load-existing.ts +12 -3
- package/src/pipeline/steps/references.ts +36 -2
- package/src/pipeline/steps/resolve-artifact-source.ts +66 -0
- package/src/pipeline/steps/server-stamped-reserved-labels.ts +2 -1
- package/src/pipeline/steps/shapes.ts +31 -0
- package/src/pipeline/steps/slug.ts +7 -2
- package/src/pipeline/steps/validate-visibility.ts +9 -2
- package/src/pipeline/steps/validation.ts +3 -1
- package/src/pipeline/steps/version-archive.ts +225 -0
- package/src/pipeline/steps/version-history.ts +362 -0
- package/src/pipeline/steps/visibility-gates.ts +12 -9
- package/src/query/README.md +1 -1
- package/src/query/search/__tests__/criteria.test.ts +6 -7
- package/src/query/search/__tests__/query-store.test.ts +9 -2
- package/src/query/search/__tests__/registry.test.ts +6 -4
- package/src/query/search/registry.ts +6 -1
- package/src/temporal/schedule/__tests__/run-starter.test.ts +86 -24
- package/src/temporal/schedule/run-starter.ts +31 -8
- package/dist/domain/skill/storage/prefilter.d.ts.map +0 -1
- package/dist/domain/skill/storage/prefilter.js.map +0 -1
- /package/dist/{domain/skill/storage → archive}/prefilter.js +0 -0
package/src/boot/compose.ts
CHANGED
|
@@ -29,8 +29,18 @@ import path from "node:path";
|
|
|
29
29
|
import type { ConnectRouter, Transport } from "@connectrpc/connect";
|
|
30
30
|
|
|
31
31
|
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
32
|
+
import { ServerEdition } from "@stigmer/protos/ai/stigmer/platform/v1/server_info_pb";
|
|
32
33
|
import { HealthCheckResponse_ServingStatus as ServingStatus } from "@stigmer/protos/grpc/health/v1/health_pb";
|
|
33
34
|
|
|
35
|
+
import { newBuiltInAuthorizer } from "../authorization/authorizer.js";
|
|
36
|
+
import { newBuiltInListReadScope } from "../authorization/list-read-scope.js";
|
|
37
|
+
import { newBuiltInOrganizationDirectory } from "../authorization/organization-directory.js";
|
|
38
|
+
import { authorizationPostureOf } from "../authorization/posture.js";
|
|
39
|
+
import { newBuiltInScheduleFireCaller } from "../authorization/schedule-fire-caller.js";
|
|
40
|
+
import type { Authorizer } from "../extensions/authorizer.js";
|
|
41
|
+
import type { ListReadScope } from "../extensions/list-read-scope.js";
|
|
42
|
+
import type { OrganizationDirectory } from "../extensions/organization-directory.js";
|
|
43
|
+
import type { ScheduleFireCallerMint } from "../extensions/schedule-fire-caller.js";
|
|
34
44
|
import { registerAgentServices } from "../domain/agent/controller.js";
|
|
35
45
|
import {
|
|
36
46
|
newConfigFromEnv,
|
|
@@ -99,12 +109,15 @@ import { registerMcpServerServices } from "../domain/mcpserver/controller.js";
|
|
|
99
109
|
import { registerPlatformServices } from "../domain/platform/controller.js";
|
|
100
110
|
import { registerProjectServices } from "../domain/project/controller.js";
|
|
101
111
|
import { registerSessionServices } from "../domain/session/controller.js";
|
|
112
|
+
import { registerPluginServices } from "../domain/plugin/controller.js";
|
|
113
|
+
import { PLUGIN_ARTIFACT_KEY_PREFIX } from "../domain/plugin/constants.js";
|
|
102
114
|
import { registerSkillServices } from "../domain/skill/controller.js";
|
|
103
115
|
import {
|
|
104
116
|
DEFAULT_SLOT_TTL_MS,
|
|
105
117
|
MAX_ZIP_SIZE,
|
|
106
118
|
} from "../domain/skill/constants.js";
|
|
107
119
|
import { newSkillArtifactStorage } from "../domain/skill/storage/artifact-storage.js";
|
|
120
|
+
import { newContentAddressedArchiveStore } from "../archive/content-store.js";
|
|
108
121
|
import {
|
|
109
122
|
newSkillTransferLane,
|
|
110
123
|
uploadUrl as skillUploadUrl,
|
|
@@ -285,20 +298,6 @@ export async function composeServer(
|
|
|
285
298
|
units: extensions.unitNames.join(", "),
|
|
286
299
|
});
|
|
287
300
|
}
|
|
288
|
-
// The ONE composed Authorizer (DD-007 §3): an extension's registration
|
|
289
|
-
// or the OSS permissive single-team default. Resolved here, handed to
|
|
290
|
-
// every controller as an explicit dependency — the Authorize step at
|
|
291
|
-
// position 1 of every chain calls it (O2).
|
|
292
|
-
const authorizer =
|
|
293
|
-
extensions.authorizer ?? newPermissiveSingleTeamAuthorizer();
|
|
294
|
-
// The built-in authorization POSTURE (20260913.01, Q-OR-6), named once:
|
|
295
|
-
// no unit registered an Authorizer, so the roles open source records
|
|
296
|
-
// exist to feed the built-in one. Under it — and only under it — the
|
|
297
|
-
// identity-accounts stage below installs the built-in role lifecycle
|
|
298
|
-
// and the membership rules; a composition with its own Authorizer has
|
|
299
|
-
// its own onboarding and gets neither.
|
|
300
|
-
const builtInAuthorization = extensions.authorizer === undefined;
|
|
301
|
-
|
|
302
301
|
// Stage: storage — the driver selection seam (DD-010): DATABASE_URL
|
|
303
302
|
// present → Postgres (async connect + advisory-locked migrations), else
|
|
304
303
|
// sqlite on DB_PATH (migrations v1–v7, incl. adopting a Go-created
|
|
@@ -331,6 +330,38 @@ export async function composeServer(
|
|
|
331
330
|
const requireAuthentication =
|
|
332
331
|
authEnabled || extensions.requireAuthentication !== undefined;
|
|
333
332
|
|
|
333
|
+
// The AUTHORIZATION posture (authorization/posture.ts), named once and
|
|
334
|
+
// handed down: a unit's own Authorizer (nothing built in installs);
|
|
335
|
+
// the built-in posture (no unit Authorizer under an authentication
|
|
336
|
+
// posture — open source composes its Authorizer, organization directory
|
|
337
|
+
// and schedule fire caller below, and the roles 2b records are
|
|
338
|
+
// enforced); or trusted-local (the permissive default: one caller,
|
|
339
|
+
// nothing to separate). `builtInAuthorization` (20260913.01, Q-OR-6) is
|
|
340
|
+
// the first two together — the roles exist to feed the built-in
|
|
341
|
+
// authorizer, so the identity stage installs the built-in role
|
|
342
|
+
// lifecycle and the membership rules under both; a composition with its
|
|
343
|
+
// own Authorizer has its own onboarding and gets neither.
|
|
344
|
+
const authorizationPosture = authorizationPostureOf({
|
|
345
|
+
unitAuthorizer: extensions.authorizer !== undefined,
|
|
346
|
+
requireAuthentication,
|
|
347
|
+
});
|
|
348
|
+
const builtInAuthorization = authorizationPosture !== "unit-authorizer";
|
|
349
|
+
// The built-in authorizer declares the open-source kinds and no other
|
|
350
|
+
// (its registry is pinned set-equal to that tier), so a composition
|
|
351
|
+
// that serves a wider edition must bring its own Authorizer: every
|
|
352
|
+
// check on a kind the model does not declare would otherwise fault
|
|
353
|
+
// INTERNAL per request. Refused at boot, the same class as a
|
|
354
|
+
// misconfigured registry (DD-006 §2b) and the verifierless posture
|
|
355
|
+
// below — caught before any side effect.
|
|
356
|
+
if (
|
|
357
|
+
authorizationPosture === "built-in" &&
|
|
358
|
+
extensions.edition !== ServerEdition.oss
|
|
359
|
+
) {
|
|
360
|
+
throw new Error(
|
|
361
|
+
`the composition serves edition '${ServerEdition[extensions.edition]}' under the require-authentication posture but registers no Authorizer — the built-in authorizer enforces the open-source kinds only; register an Authorizer or serve the open-source edition`,
|
|
362
|
+
);
|
|
363
|
+
}
|
|
364
|
+
|
|
334
365
|
// Stage: identity accounts (20260911.11) — the first domain whose
|
|
335
366
|
// persistence is a PORT rather than the generic Store. The composed
|
|
336
367
|
// driver (`drivers.identityAccountStore`, Q-IA-9) serves when a unit
|
|
@@ -400,6 +431,75 @@ export async function composeServer(
|
|
|
400
431
|
operatorEmail: operatorIdentity.email,
|
|
401
432
|
})
|
|
402
433
|
: undefined;
|
|
434
|
+
// The ONE composed Authorizer (DD-007 §3), bound here — after the store,
|
|
435
|
+
// the account port and the IamPolicy port it reads — and handed to every
|
|
436
|
+
// controller as an explicit dependency; the Authorize step at position 1
|
|
437
|
+
// of every chain calls it (O2). By posture: an extension's registration;
|
|
438
|
+
// open source's built-in Authorizer (authorization/authorizer.ts — the
|
|
439
|
+
// cloud's model evaluated over the tuples the row would have had); or
|
|
440
|
+
// the permissive single-team default. The organization directory and the
|
|
441
|
+
// schedule fire caller are bound beside it under the same posture, so
|
|
442
|
+
// `findMyOrganizations` lists what a person may view and a scheduled run
|
|
443
|
+
// belongs to the person who scheduled it — a fire the internal lane
|
|
444
|
+
// would otherwise hand to nobody an enforcing evaluator recognizes.
|
|
445
|
+
const authorizer: Authorizer =
|
|
446
|
+
extensions.authorizer ??
|
|
447
|
+
(authorizationPosture === "built-in"
|
|
448
|
+
? newBuiltInAuthorizer({
|
|
449
|
+
store,
|
|
450
|
+
policies: iamPolicies,
|
|
451
|
+
accounts: identityAccounts,
|
|
452
|
+
edition: extensions.edition,
|
|
453
|
+
logger,
|
|
454
|
+
})
|
|
455
|
+
: newPermissiveSingleTeamAuthorizer());
|
|
456
|
+
const organizationDirectory: OrganizationDirectory | undefined =
|
|
457
|
+
extensions.drivers.organizationDirectory ??
|
|
458
|
+
(authorizationPosture === "built-in"
|
|
459
|
+
? newBuiltInOrganizationDirectory({
|
|
460
|
+
store,
|
|
461
|
+
policies: iamPolicies,
|
|
462
|
+
accounts: identityAccounts,
|
|
463
|
+
})
|
|
464
|
+
: undefined);
|
|
465
|
+
const scheduleFireCaller: ScheduleFireCallerMint | undefined =
|
|
466
|
+
extensions.drivers.scheduleFireCaller ??
|
|
467
|
+
(authorizationPosture === "built-in"
|
|
468
|
+
? newBuiltInScheduleFireCaller({ store, accounts: identityAccounts })
|
|
469
|
+
: undefined);
|
|
470
|
+
// The ONE list read scope (the seam's single-instance point), bound
|
|
471
|
+
// here under the same posture and handed to every list-shaped consumer
|
|
472
|
+
// below — the post-scan lanes through restrictListByReadScope, the
|
|
473
|
+
// search, activity and summary lanes through the enumeration verb. A
|
|
474
|
+
// unit's driver wins in every posture; the built-in one evaluates the
|
|
475
|
+
// model per candidate over the facts the candidate carries
|
|
476
|
+
// (authorization/list-read-scope.ts); trusted-local composes none and
|
|
477
|
+
// keeps the full scan.
|
|
478
|
+
const listReadScope: ListReadScope | undefined =
|
|
479
|
+
extensions.drivers.listReadScope ??
|
|
480
|
+
(authorizationPosture === "built-in"
|
|
481
|
+
? newBuiltInListReadScope({
|
|
482
|
+
store,
|
|
483
|
+
policies: iamPolicies,
|
|
484
|
+
accounts: identityAccounts,
|
|
485
|
+
logger,
|
|
486
|
+
})
|
|
487
|
+
: undefined);
|
|
488
|
+
logger.info("authorization posture resolved", {
|
|
489
|
+
posture: authorizationPosture,
|
|
490
|
+
authorizer:
|
|
491
|
+
extensions.authorizer !== undefined
|
|
492
|
+
? "extension"
|
|
493
|
+
: authorizationPosture === "built-in"
|
|
494
|
+
? "built-in"
|
|
495
|
+
: "permissive",
|
|
496
|
+
listReadScope:
|
|
497
|
+
extensions.drivers.listReadScope !== undefined
|
|
498
|
+
? "extension"
|
|
499
|
+
: authorizationPosture === "built-in"
|
|
500
|
+
? "built-in"
|
|
501
|
+
: "none",
|
|
502
|
+
});
|
|
403
503
|
const identityAccountPath = {
|
|
404
504
|
accounts: identityAccounts,
|
|
405
505
|
logger,
|
|
@@ -456,6 +556,22 @@ export async function composeServer(
|
|
|
456
556
|
});
|
|
457
557
|
}
|
|
458
558
|
}
|
|
559
|
+
// The built-in posture's own boot ensure, the sibling of the block
|
|
560
|
+
// above: the membership rules run at a person's FIRST provisioning, so a
|
|
561
|
+
// database whose people were provisioned before the rules existed (a
|
|
562
|
+
// 3.15.x self-host with OIDC on) holds accounts with no role rows — and
|
|
563
|
+
// the built-in authorizer below would make every one of them an
|
|
564
|
+
// outsider on every organization, with nobody left who could grant a
|
|
565
|
+
// way back. Once per database (a bootstrap-state marker; the rules'
|
|
566
|
+
// header), the same arms run for every person account in creation
|
|
567
|
+
// order; a fault is a loud boot throw like the storage stage's, and the
|
|
568
|
+
// next boot converges. Under the built-in posture only: a unit with its
|
|
569
|
+
// own Authorizer has its own onboarding, and trusted-local has the
|
|
570
|
+
// operator ensure above and one principal.
|
|
571
|
+
if (authorizationPosture === "built-in" && membership !== undefined) {
|
|
572
|
+
await membership.ensureRolesForExistingAccounts();
|
|
573
|
+
logger.info("built-in posture role reconciliation ensured");
|
|
574
|
+
}
|
|
459
575
|
|
|
460
576
|
// Stage: keys — the ratified fail-loud boot ASYMMETRY (D2 cross-domain
|
|
461
577
|
// invariants; Go server.go:277-293):
|
|
@@ -643,9 +759,10 @@ export async function composeServer(
|
|
|
643
759
|
);
|
|
644
760
|
// Every fire enters the FULL execution create pipeline through the
|
|
645
761
|
// in-process agentexecution client (Go server.go 581: the RunStarter's
|
|
646
|
-
// ExecutionCreator edge). The
|
|
647
|
-
// (stigmer-cloud#572
|
|
648
|
-
//
|
|
762
|
+
// ExecutionCreator edge). The scheduleFireCaller driver bound in the
|
|
763
|
+
// identity stage (stigmer-cloud#572; a unit's, or open source's under
|
|
764
|
+
// the built-in posture), when present, gives each fire its identity —
|
|
765
|
+
// propagated by the creator's asCaller lane.
|
|
649
766
|
const scheduleRunStarter = new RunStarter({
|
|
650
767
|
store,
|
|
651
768
|
config: scheduleTemporalConfig,
|
|
@@ -656,7 +773,7 @@ export async function composeServer(
|
|
|
656
773
|
fireCaller,
|
|
657
774
|
),
|
|
658
775
|
},
|
|
659
|
-
fireCallerMint:
|
|
776
|
+
fireCallerMint: scheduleFireCaller,
|
|
660
777
|
logger,
|
|
661
778
|
});
|
|
662
779
|
const scheduleReconciler = new ScheduleReconciler(
|
|
@@ -820,6 +937,14 @@ export async function composeServer(
|
|
|
820
937
|
);
|
|
821
938
|
})();
|
|
822
939
|
const skillArtifactStorage = newSkillArtifactStorage(skillStorageDriver);
|
|
940
|
+
// Plugin archives are pushed archives exactly as skills' are, so they
|
|
941
|
+
// ride the same blob driver and backend selection; the key prefix
|
|
942
|
+
// (`plugins/`) keeps the two stores apart and the plugin store owns its
|
|
943
|
+
// keys (src/archive/content-store.ts).
|
|
944
|
+
const pluginArtifactStorage = newContentAddressedArchiveStore(
|
|
945
|
+
skillStorageDriver,
|
|
946
|
+
PLUGIN_ARTIFACT_KEY_PREFIX,
|
|
947
|
+
);
|
|
823
948
|
const skillTransferLane = newSkillTransferLane(
|
|
824
949
|
skillUploadSlots,
|
|
825
950
|
skillArtifactStorage,
|
|
@@ -886,14 +1011,10 @@ export async function composeServer(
|
|
|
886
1011
|
const searchHandler = new SearchHandler(
|
|
887
1012
|
searchQueryStore,
|
|
888
1013
|
logger,
|
|
889
|
-
|
|
1014
|
+
listReadScope,
|
|
890
1015
|
);
|
|
891
1016
|
// The activity recents feed (#14) — pure reads over listResources.
|
|
892
|
-
const activityHandler = new ActivityHandler(
|
|
893
|
-
store,
|
|
894
|
-
logger,
|
|
895
|
-
extensions.drivers.listReadScope,
|
|
896
|
-
);
|
|
1017
|
+
const activityHandler = new ActivityHandler(store, logger, listReadScope);
|
|
897
1018
|
// The environment runtime-resolution service (#5) — the decrypt-for-
|
|
898
1019
|
// execution path the EC builder uses to resolve environment_refs (the
|
|
899
1020
|
// RPC surface redacts secret values, oss#405).
|
|
@@ -972,10 +1093,10 @@ export async function composeServer(
|
|
|
972
1093
|
logger,
|
|
973
1094
|
authorizer,
|
|
974
1095
|
gateSteps: extensions.gateSteps,
|
|
975
|
-
// The role lifecycle (the identity stage): the
|
|
976
|
-
// open source's
|
|
1096
|
+
// The role lifecycle and the directory (the identity stage): the
|
|
1097
|
+
// composed drivers, or open source's under the built-in posture.
|
|
977
1098
|
authorizationLifecycle: roleLifecycle,
|
|
978
|
-
organizationDirectory
|
|
1099
|
+
organizationDirectory,
|
|
979
1100
|
});
|
|
980
1101
|
// ApiKey is the first domain born AFTER the Go port (O3, 20260827.06 —
|
|
981
1102
|
// DD-003: the apikey contract is wholly OSS), so it has no Go
|
|
@@ -987,7 +1108,7 @@ export async function composeServer(
|
|
|
987
1108
|
logger,
|
|
988
1109
|
authorizer,
|
|
989
1110
|
authorizationLifecycle,
|
|
990
|
-
listReadScope
|
|
1111
|
+
listReadScope,
|
|
991
1112
|
});
|
|
992
1113
|
// IdentityAccount (20260911.11): served once by open source in every
|
|
993
1114
|
// edition over the store PORT bound in the identity-accounts stage; a
|
|
@@ -1028,7 +1149,7 @@ export async function composeServer(
|
|
|
1028
1149
|
authorizer,
|
|
1029
1150
|
secretService,
|
|
1030
1151
|
authorizationLifecycle,
|
|
1031
|
-
listReadScope
|
|
1152
|
+
listReadScope,
|
|
1032
1153
|
});
|
|
1033
1154
|
// OAuthApp reuses the environment's SecretService instance — Go wires
|
|
1034
1155
|
// ONE encryption service for both (server.go 302–307).
|
|
@@ -1060,7 +1181,7 @@ export async function composeServer(
|
|
|
1060
1181
|
authorizer,
|
|
1061
1182
|
authorizationLifecycle,
|
|
1062
1183
|
parentAgentLoader: () => requireInProcess().parentAgentLoader,
|
|
1063
|
-
listReadScope
|
|
1184
|
+
listReadScope,
|
|
1064
1185
|
});
|
|
1065
1186
|
registerSessionServices(router, {
|
|
1066
1187
|
store,
|
|
@@ -1071,7 +1192,7 @@ export async function composeServer(
|
|
|
1071
1192
|
gateSteps: extensions.gateSteps,
|
|
1072
1193
|
sandboxLane,
|
|
1073
1194
|
authorizationLifecycle,
|
|
1074
|
-
listReadScope
|
|
1195
|
+
listReadScope,
|
|
1075
1196
|
});
|
|
1076
1197
|
// The sharing/channel family registers after the agent family, as in
|
|
1077
1198
|
// Go server.go (agent 378 → agentshare 384 → agentchannel 391 →
|
|
@@ -1083,14 +1204,14 @@ export async function composeServer(
|
|
|
1083
1204
|
logger,
|
|
1084
1205
|
authorizer,
|
|
1085
1206
|
authorizationLifecycle,
|
|
1086
|
-
listReadScope
|
|
1207
|
+
listReadScope,
|
|
1087
1208
|
});
|
|
1088
1209
|
registerAgentChannelServices(router, {
|
|
1089
1210
|
store,
|
|
1090
1211
|
logger,
|
|
1091
1212
|
authorizer,
|
|
1092
1213
|
authorizationLifecycle,
|
|
1093
|
-
listReadScope
|
|
1214
|
+
listReadScope,
|
|
1094
1215
|
// The SAME domain-owned registry instance the workflow validator
|
|
1095
1216
|
// and the registry lanes read — the channel model-pin rule
|
|
1096
1217
|
// (stigmer/stigmer#774) can never drift from the served pickers.
|
|
@@ -1124,14 +1245,14 @@ export async function composeServer(
|
|
|
1124
1245
|
clock: () => scheduleSyncer,
|
|
1125
1246
|
runner: () => scheduleRunStarter,
|
|
1126
1247
|
authorizationLifecycle,
|
|
1127
|
-
listReadScope
|
|
1248
|
+
listReadScope,
|
|
1128
1249
|
});
|
|
1129
1250
|
registerMemoryServices(router, {
|
|
1130
1251
|
store,
|
|
1131
1252
|
logger,
|
|
1132
1253
|
authorizer,
|
|
1133
1254
|
authorizationLifecycle,
|
|
1134
|
-
listReadScope
|
|
1255
|
+
listReadScope,
|
|
1135
1256
|
runnerCredentialProvider: runnerCredentials,
|
|
1136
1257
|
});
|
|
1137
1258
|
registerAgentExecutionServices(router, {
|
|
@@ -1139,7 +1260,7 @@ export async function composeServer(
|
|
|
1139
1260
|
logger,
|
|
1140
1261
|
authorizer,
|
|
1141
1262
|
authorizationLifecycle,
|
|
1142
|
-
listReadScope
|
|
1263
|
+
listReadScope,
|
|
1143
1264
|
runnerCredentialProvider: runnerCredentials,
|
|
1144
1265
|
broker: agentExecutionStreamBroker,
|
|
1145
1266
|
engineState: executionEngineState,
|
|
@@ -1182,14 +1303,14 @@ export async function composeServer(
|
|
|
1182
1303
|
authorizer,
|
|
1183
1304
|
authorizationLifecycle,
|
|
1184
1305
|
parentWorkflowLoader: () => requireInProcess().parentWorkflowLoader,
|
|
1185
|
-
listReadScope
|
|
1306
|
+
listReadScope,
|
|
1186
1307
|
});
|
|
1187
1308
|
registerWorkflowExecutionServices(router, {
|
|
1188
1309
|
store,
|
|
1189
1310
|
logger,
|
|
1190
1311
|
authorizer,
|
|
1191
1312
|
authorizationLifecycle,
|
|
1192
|
-
listReadScope
|
|
1313
|
+
listReadScope,
|
|
1193
1314
|
gateSteps: extensions.gateSteps,
|
|
1194
1315
|
engineState: workflowExecutionEngineState,
|
|
1195
1316
|
broker: workflowExecutionStreamBroker,
|
|
@@ -1263,6 +1384,22 @@ export async function composeServer(
|
|
|
1263
1384
|
baseUrl: config.skillTransferBaseUrl,
|
|
1264
1385
|
},
|
|
1265
1386
|
});
|
|
1387
|
+
// Plugins materialise their members through the in-process lane as
|
|
1388
|
+
// the installing caller; the lazy provider resolves the clients built
|
|
1389
|
+
// from these same routes after boot. The upload slots are the skill
|
|
1390
|
+
// lane's: one upload surface for every archive.
|
|
1391
|
+
registerPluginServices(router, {
|
|
1392
|
+
store,
|
|
1393
|
+
logger,
|
|
1394
|
+
authorizer,
|
|
1395
|
+
authorizationLifecycle,
|
|
1396
|
+
artifactStorage: pluginArtifactStorage,
|
|
1397
|
+
materializerProvider: () => requireInProcess().pluginMaterializer,
|
|
1398
|
+
transferLane: {
|
|
1399
|
+
slots: skillUploadSlots,
|
|
1400
|
+
baseUrl: config.skillTransferBaseUrl,
|
|
1401
|
+
},
|
|
1402
|
+
});
|
|
1266
1403
|
// Artifact CRUD shares the ONE blob store with agentexecution's
|
|
1267
1404
|
// attachment lanes (Go server.go 347–374).
|
|
1268
1405
|
registerArtifactServices(router, {
|
package/src/boot/inprocess.ts
CHANGED
|
@@ -70,6 +70,9 @@ import type {
|
|
|
70
70
|
import type { AgentExecutionApprovalForwarder } from "../domain/workflowexecution/submit-approval.js";
|
|
71
71
|
import type { AgentExecutionFileDecisionForwarder } from "../domain/workflowexecution/submit-file-decision.js";
|
|
72
72
|
import type { ParentWorkflowLoader } from "../domain/workflowinstance/steps.js";
|
|
73
|
+
import type { PluginMaterializer } from "../domain/plugin/materialize/ports.js";
|
|
74
|
+
import { UpdateVisibilityInputSchema } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
|
|
75
|
+
import type { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
73
76
|
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
74
77
|
import type { OrphanDeleter } from "../domain/project/reconcile.js";
|
|
75
78
|
import type { ExecutionStatusWriter } from "../temporal/agentexecution/activities.js";
|
|
@@ -153,6 +156,17 @@ export interface InProcessClients {
|
|
|
153
156
|
* minted — exactly like the schedule clock and the reconciler above.
|
|
154
157
|
*/
|
|
155
158
|
readonly executionStatusWriter: ExecutionStatusWriter;
|
|
159
|
+
/**
|
|
160
|
+
* The plugin controller's materialisation edge: every member a plugin
|
|
161
|
+
* installs, upgrades, re-levels or removes goes through the owning
|
|
162
|
+
* domain's FULL chain (skill push, the three applies, updateVisibility,
|
|
163
|
+
* delete) AS THE INSTALLING CALLER (the asCaller call options), so a
|
|
164
|
+
* materialised skill is attributed to the user who installed it and
|
|
165
|
+
* carries the plugin's reserved labels by the in-process origin the
|
|
166
|
+
* guards pass structurally. The delete routing is the reconciler's
|
|
167
|
+
* switch, shared.
|
|
168
|
+
*/
|
|
169
|
+
readonly pluginMaterializer: PluginMaterializer;
|
|
156
170
|
}
|
|
157
171
|
|
|
158
172
|
/**
|
|
@@ -378,38 +392,102 @@ export function createInProcessClients(
|
|
|
378
392
|
// delete is attempted, in both editions. Log-only surface: reconcile
|
|
379
393
|
// failures never reach the wire.
|
|
380
394
|
projectOrphanDeleter: {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
await mcpServerCommand.delete(
|
|
397
|
-
create(ApiResourceDeleteInputSchema, { resourceId }),
|
|
398
|
-
);
|
|
399
|
-
return;
|
|
400
|
-
case ApiResourceKind.skill:
|
|
401
|
-
await skillCommand.delete(
|
|
402
|
-
create(SkillIdSchema, { value: resourceId }),
|
|
403
|
-
);
|
|
404
|
-
return;
|
|
405
|
-
default:
|
|
406
|
-
throw new Error(
|
|
407
|
-
`unsupported resource kind for delete: ${ApiResourceKind[kind] ?? String(kind)}`,
|
|
408
|
-
);
|
|
409
|
-
}
|
|
410
|
-
},
|
|
395
|
+
delete: (kind, resourceId) => deleteByKind(kind, resourceId),
|
|
396
|
+
},
|
|
397
|
+
pluginMaterializer: {
|
|
398
|
+
pushSkill: (request, caller) =>
|
|
399
|
+
skillCommand.push(request, asCaller(caller)),
|
|
400
|
+
applyMcpServer: (server, caller) =>
|
|
401
|
+
mcpServerCommand.apply(server, asCaller(caller)),
|
|
402
|
+
applyAgent: (agent, caller) =>
|
|
403
|
+
agentCommand.apply(agent, asCaller(caller)),
|
|
404
|
+
applyWorkflow: (workflow, caller) =>
|
|
405
|
+
workflowCommand.apply(workflow, asCaller(caller)),
|
|
406
|
+
updateVisibility: (kind, resourceId, visibility, caller) =>
|
|
407
|
+
updateVisibilityByKind(kind, resourceId, visibility, asCaller(caller)),
|
|
408
|
+
deleteByKind: (kind, resourceId, caller) =>
|
|
409
|
+
deleteByKind(kind, resourceId, asCaller(caller)),
|
|
411
410
|
},
|
|
412
411
|
};
|
|
413
412
|
|
|
413
|
+
/**
|
|
414
|
+
* Delete routing for the four reconciled kinds — Go's
|
|
415
|
+
* ResourceDeleterAdapter.Delete switch (execution_engine.go:75-92),
|
|
416
|
+
* shared by the project reconciler (internal class, no caller) and the
|
|
417
|
+
* plugin controller (as the installing caller). Every orphan or member
|
|
418
|
+
* delete runs the owning domain's FULL pipeline. The unsupported-kind
|
|
419
|
+
* default is defense-in-depth: both callers refuse unsupported kinds
|
|
420
|
+
* before any delete is attempted.
|
|
421
|
+
*/
|
|
422
|
+
async function deleteByKind(
|
|
423
|
+
kind: ApiResourceKind,
|
|
424
|
+
resourceId: string,
|
|
425
|
+
options?: CallOptions,
|
|
426
|
+
): Promise<void> {
|
|
427
|
+
switch (kind) {
|
|
428
|
+
case ApiResourceKind.agent:
|
|
429
|
+
await agentCommand.delete(
|
|
430
|
+
create(AgentIdSchema, { value: resourceId }),
|
|
431
|
+
options,
|
|
432
|
+
);
|
|
433
|
+
return;
|
|
434
|
+
case ApiResourceKind.workflow:
|
|
435
|
+
await workflowCommand.delete(
|
|
436
|
+
create(WorkflowIdSchema, { value: resourceId }),
|
|
437
|
+
options,
|
|
438
|
+
);
|
|
439
|
+
return;
|
|
440
|
+
case ApiResourceKind.mcp_server:
|
|
441
|
+
// McpServer's delete input is the commons ApiResourceDeleteInput
|
|
442
|
+
// (not an id wrapper) — Go's client builds the same message.
|
|
443
|
+
await mcpServerCommand.delete(
|
|
444
|
+
create(ApiResourceDeleteInputSchema, { resourceId }),
|
|
445
|
+
options,
|
|
446
|
+
);
|
|
447
|
+
return;
|
|
448
|
+
case ApiResourceKind.skill:
|
|
449
|
+
await skillCommand.delete(
|
|
450
|
+
create(SkillIdSchema, { value: resourceId }),
|
|
451
|
+
options,
|
|
452
|
+
);
|
|
453
|
+
return;
|
|
454
|
+
default:
|
|
455
|
+
throw new Error(
|
|
456
|
+
`unsupported resource kind for delete: ${ApiResourceKind[kind] ?? String(kind)}`,
|
|
457
|
+
);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
/** The one door for a level change on each member kind (metadata.proto). */
|
|
462
|
+
async function updateVisibilityByKind(
|
|
463
|
+
kind: ApiResourceKind,
|
|
464
|
+
resourceId: string,
|
|
465
|
+
visibility: ApiResourceVisibility,
|
|
466
|
+
options: CallOptions,
|
|
467
|
+
): Promise<void> {
|
|
468
|
+
const input = create(UpdateVisibilityInputSchema, {
|
|
469
|
+
resourceId,
|
|
470
|
+
visibility,
|
|
471
|
+
});
|
|
472
|
+
switch (kind) {
|
|
473
|
+
case ApiResourceKind.agent:
|
|
474
|
+
await agentCommand.updateVisibility(input, options);
|
|
475
|
+
return;
|
|
476
|
+
case ApiResourceKind.workflow:
|
|
477
|
+
await workflowCommand.updateVisibility(input, options);
|
|
478
|
+
return;
|
|
479
|
+
case ApiResourceKind.mcp_server:
|
|
480
|
+
await mcpServerCommand.updateVisibility(input, options);
|
|
481
|
+
return;
|
|
482
|
+
case ApiResourceKind.skill:
|
|
483
|
+
await skillCommand.updateVisibility(input, options);
|
|
484
|
+
return;
|
|
485
|
+
default:
|
|
486
|
+
throw new Error(
|
|
487
|
+
`unsupported resource kind for updateVisibility: ${ApiResourceKind[kind] ?? String(kind)}`,
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
414
492
|
return { clients, transport };
|
|
415
493
|
}
|
|
@@ -64,6 +64,7 @@ import {
|
|
|
64
64
|
EXISTING_RESOURCE_KEY,
|
|
65
65
|
newLoadExistingStep,
|
|
66
66
|
} from "../../pipeline/steps/load-existing.js";
|
|
67
|
+
import { newGuardPluginManagedStep } from "../../pipeline/steps/guard-plugin-managed.js";
|
|
67
68
|
import {
|
|
68
69
|
SHOULD_CREATE_KEY,
|
|
69
70
|
newLoadForApplyStep,
|
|
@@ -216,6 +217,10 @@ async function update(
|
|
|
216
217
|
.addStep(newValidateProtoStep())
|
|
217
218
|
.addStep(newResolveSlugStep())
|
|
218
219
|
.addStep(newLoadExistingStep(deps.store))
|
|
220
|
+
// A resource a plugin materialised is the plugin's to redefine; a client
|
|
221
|
+
// write is refused naming the plugin (GuardPluginManaged, keyed on the
|
|
222
|
+
// STORED labels and the plugin row's existence).
|
|
223
|
+
.addStep(newGuardPluginManagedStep(deps.store))
|
|
219
224
|
.addStep(newBuildUpdateStateStep())
|
|
220
225
|
.addStep(newGuardReservedLabelsStep(deps.authorizer))
|
|
221
226
|
.addStep(newNormalizeReferencesStep())
|
|
@@ -294,6 +299,7 @@ async function deleteAgent(
|
|
|
294
299
|
.addStep(newValidateProtoStep())
|
|
295
300
|
.addStep(newExtractResourceIdStep())
|
|
296
301
|
.addStep(newLoadExistingForDeleteStep(deps.store, AgentSchema))
|
|
302
|
+
.addStep(newGuardPluginManagedStep(deps.store))
|
|
297
303
|
.addStep(newCascadeDeleteInstancesStep(deps.store, deps.logger))
|
|
298
304
|
.addStep(newCascadeDeleteSharesStep(deps.store, deps.logger))
|
|
299
305
|
.addStep(newDeleteResourceStep(deps.store))
|
|
@@ -349,6 +355,11 @@ async function updateVisibility(
|
|
|
349
355
|
)
|
|
350
356
|
.addStep(newValidateProtoStep())
|
|
351
357
|
.addStep(newLoadAgentForVisibilityUpdateStep(deps.store))
|
|
358
|
+
.addStep(
|
|
359
|
+
newGuardPluginManagedStep(deps.store, {
|
|
360
|
+
existingKey: UPDATE_VISIBILITY_AGENT_KEY,
|
|
361
|
+
}),
|
|
362
|
+
)
|
|
352
363
|
.addStep(newRecordVisibilityBeforeUpdateStep(UPDATE_VISIBILITY_AGENT_KEY))
|
|
353
364
|
.addStep(newValidateVisibilityUpdateStep())
|
|
354
365
|
.addStep(
|