@stigmer/server 3.40.1 → 3.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/authorization/authorizer.d.ts +16 -10
- package/dist/authorization/authorizer.d.ts.map +1 -1
- package/dist/authorization/authorizer.js +17 -9
- package/dist/authorization/authorizer.js.map +1 -1
- package/dist/authorization/derived-tuples.d.ts +7 -3
- package/dist/authorization/derived-tuples.d.ts.map +1 -1
- package/dist/authorization/derived-tuples.js +62 -6
- package/dist/authorization/derived-tuples.js.map +1 -1
- package/dist/authorization/evaluator.d.ts +11 -7
- package/dist/authorization/evaluator.d.ts.map +1 -1
- package/dist/authorization/evaluator.js +16 -10
- package/dist/authorization/evaluator.js.map +1 -1
- package/dist/authorization/list-read-scope.d.ts +4 -0
- package/dist/authorization/list-read-scope.d.ts.map +1 -1
- package/dist/authorization/list-read-scope.js +1 -0
- package/dist/authorization/list-read-scope.js.map +1 -1
- package/dist/authorization/model/data/authorization-model.json +830 -67
- package/dist/authorization/model/execution-viewer.d.ts.map +1 -1
- package/dist/authorization/model/execution-viewer.js +26 -24
- package/dist/authorization/model/execution-viewer.js.map +1 -1
- package/dist/authorization/model/index.d.ts +4 -1
- package/dist/authorization/model/index.d.ts.map +1 -1
- package/dist/authorization/model/index.js +4 -1
- package/dist/authorization/model/index.js.map +1 -1
- package/dist/authorization/model/rewrite.d.ts +5 -3
- package/dist/authorization/model/rewrite.d.ts.map +1 -1
- package/dist/authorization/organization-directory.d.ts +44 -0
- package/dist/authorization/organization-directory.d.ts.map +1 -1
- package/dist/authorization/organization-directory.js +1 -0
- package/dist/authorization/organization-directory.js.map +1 -1
- package/dist/authorization/person.d.ts +14 -1
- package/dist/authorization/person.d.ts.map +1 -1
- package/dist/authorization/person.js +16 -0
- package/dist/authorization/person.js.map +1 -1
- package/dist/authorization/policy-check.d.ts +52 -0
- package/dist/authorization/policy-check.d.ts.map +1 -0
- package/dist/authorization/policy-check.js +35 -0
- package/dist/authorization/policy-check.js.map +1 -0
- package/dist/authorization/posture.d.ts +30 -4
- package/dist/authorization/posture.d.ts.map +1 -1
- package/dist/authorization/posture.js +58 -0
- package/dist/authorization/posture.js.map +1 -1
- package/dist/authorization/resource-creators.d.ts +4 -0
- package/dist/authorization/resource-creators.d.ts.map +1 -0
- package/dist/authorization/resource-creators.js +44 -0
- package/dist/authorization/resource-creators.js.map +1 -0
- package/dist/authorization/trusted-local-authorizer.d.ts +9 -0
- package/dist/authorization/trusted-local-authorizer.d.ts.map +1 -0
- package/dist/authorization/trusted-local-authorizer.js +70 -0
- package/dist/authorization/trusted-local-authorizer.js.map +1 -0
- package/dist/authorization/tuples.d.ts +12 -0
- package/dist/authorization/tuples.d.ts.map +1 -1
- package/dist/authorization/tuples.js +3 -0
- package/dist/authorization/tuples.js.map +1 -1
- package/dist/boot/compose.d.ts.map +1 -1
- package/dist/boot/compose.js +132 -43
- package/dist/boot/compose.js.map +1 -1
- package/dist/boot/config.d.ts +22 -7
- package/dist/boot/config.d.ts.map +1 -1
- package/dist/boot/config.js +2 -1
- package/dist/boot/config.js.map +1 -1
- package/dist/boot/inprocess.d.ts.map +1 -1
- package/dist/boot/inprocess.js +10 -4
- package/dist/boot/inprocess.js.map +1 -1
- package/dist/boot/list-indexes.d.ts.map +1 -1
- package/dist/boot/list-indexes.js +6 -1
- package/dist/boot/list-indexes.js.map +1 -1
- package/dist/boot/logger.d.ts +3 -1
- package/dist/boot/logger.d.ts.map +1 -1
- package/dist/boot/logger.js +3 -1
- package/dist/boot/logger.js.map +1 -1
- package/dist/boot/oauth-redirect-uri.d.ts +33 -12
- package/dist/boot/oauth-redirect-uri.d.ts.map +1 -1
- package/dist/boot/oauth-redirect-uri.js +43 -14
- package/dist/boot/oauth-redirect-uri.js.map +1 -1
- package/dist/boot/skill-transfer-origin.d.ts +46 -14
- package/dist/boot/skill-transfer-origin.d.ts.map +1 -1
- package/dist/boot/skill-transfer-origin.js +53 -13
- package/dist/boot/skill-transfer-origin.js.map +1 -1
- package/dist/domain/agentchannel/steps.d.ts +8 -6
- package/dist/domain/agentchannel/steps.d.ts.map +1 -1
- package/dist/domain/agentchannel/steps.js +9 -7
- package/dist/domain/agentchannel/steps.js.map +1 -1
- package/dist/domain/agentexecution/controller.d.ts +7 -0
- package/dist/domain/agentexecution/controller.d.ts.map +1 -1
- package/dist/domain/agentexecution/controller.js +1 -1
- package/dist/domain/agentexecution/controller.js.map +1 -1
- package/dist/domain/agentexecution/create-steps.d.ts +26 -12
- package/dist/domain/agentexecution/create-steps.d.ts.map +1 -1
- package/dist/domain/agentexecution/create-steps.js +61 -43
- package/dist/domain/agentexecution/create-steps.js.map +1 -1
- package/dist/domain/agentexecution/submit-approval.d.ts.map +1 -1
- package/dist/domain/agentexecution/submit-approval.js +9 -6
- package/dist/domain/agentexecution/submit-approval.js.map +1 -1
- package/dist/domain/agentexecution/submit-file-decision.d.ts.map +1 -1
- package/dist/domain/agentexecution/submit-file-decision.js +5 -4
- package/dist/domain/agentexecution/submit-file-decision.js.map +1 -1
- package/dist/domain/agentshare/steps.d.ts +5 -3
- package/dist/domain/agentshare/steps.d.ts.map +1 -1
- package/dist/domain/agentshare/steps.js +6 -4
- package/dist/domain/agentshare/steps.js.map +1 -1
- package/dist/domain/apikey/verifier.d.ts +7 -0
- package/dist/domain/apikey/verifier.d.ts.map +1 -1
- package/dist/domain/apikey/verifier.js +34 -1
- package/dist/domain/apikey/verifier.js.map +1 -1
- package/dist/domain/channelapp/controller.d.ts +4 -3
- package/dist/domain/channelapp/controller.d.ts.map +1 -1
- package/dist/domain/channelapp/controller.js.map +1 -1
- package/dist/domain/executioncontext/steps.d.ts +2 -1
- package/dist/domain/executioncontext/steps.d.ts.map +1 -1
- package/dist/domain/executioncontext/steps.js +2 -1
- package/dist/domain/executioncontext/steps.js.map +1 -1
- package/dist/domain/iampolicy/access-lists.d.ts.map +1 -1
- package/dist/domain/iampolicy/access-lists.js +57 -2
- package/dist/domain/iampolicy/access-lists.js.map +1 -1
- package/dist/domain/iampolicy/change.d.ts +53 -0
- package/dist/domain/iampolicy/change.d.ts.map +1 -0
- package/dist/domain/iampolicy/change.js +44 -0
- package/dist/domain/iampolicy/change.js.map +1 -0
- package/dist/domain/iampolicy/constants.d.ts +6 -0
- package/dist/domain/iampolicy/constants.d.ts.map +1 -1
- package/dist/domain/iampolicy/constants.js +6 -0
- package/dist/domain/iampolicy/constants.js.map +1 -1
- package/dist/domain/iampolicy/controller.d.ts.map +1 -1
- package/dist/domain/iampolicy/controller.js +9 -5
- package/dist/domain/iampolicy/controller.js.map +1 -1
- package/dist/domain/iampolicy/grant-path.d.ts +31 -13
- package/dist/domain/iampolicy/grant-path.d.ts.map +1 -1
- package/dist/domain/iampolicy/grant-path.js +216 -19
- package/dist/domain/iampolicy/grant-path.js.map +1 -1
- package/dist/domain/iampolicy/membership.d.ts +11 -3
- package/dist/domain/iampolicy/membership.d.ts.map +1 -1
- package/dist/domain/iampolicy/membership.js +18 -13
- package/dist/domain/iampolicy/membership.js.map +1 -1
- package/dist/domain/iampolicy/resource-store.d.ts.map +1 -1
- package/dist/domain/iampolicy/resource-store.js +4 -0
- package/dist/domain/iampolicy/resource-store.js.map +1 -1
- package/dist/domain/iampolicy/role-lifecycle.d.ts.map +1 -1
- package/dist/domain/iampolicy/role-lifecycle.js +2 -2
- package/dist/domain/iampolicy/role-lifecycle.js.map +1 -1
- package/dist/domain/iampolicy/roles.d.ts.map +1 -1
- package/dist/domain/iampolicy/roles.js +7 -0
- package/dist/domain/iampolicy/roles.js.map +1 -1
- package/dist/domain/iampolicy/steps.d.ts +4 -3
- package/dist/domain/iampolicy/steps.d.ts.map +1 -1
- package/dist/domain/iampolicy/steps.js +7 -7
- package/dist/domain/iampolicy/steps.js.map +1 -1
- package/dist/domain/iampolicy/store-contract.d.ts.map +1 -1
- package/dist/domain/iampolicy/store-contract.js +22 -1
- package/dist/domain/iampolicy/store-contract.js.map +1 -1
- package/dist/domain/iampolicy/store.d.ts +18 -5
- package/dist/domain/iampolicy/store.d.ts.map +1 -1
- package/dist/domain/iampolicy/store.js.map +1 -1
- package/dist/domain/identityaccount/constants.d.ts +15 -0
- package/dist/domain/identityaccount/constants.d.ts.map +1 -1
- package/dist/domain/identityaccount/constants.js +17 -0
- package/dist/domain/identityaccount/constants.js.map +1 -1
- package/dist/domain/identityaccount/controller.d.ts.map +1 -1
- package/dist/domain/identityaccount/controller.js +17 -6
- package/dist/domain/identityaccount/controller.js.map +1 -1
- package/dist/domain/identityaccount/resolve.d.ts +47 -0
- package/dist/domain/identityaccount/resolve.d.ts.map +1 -1
- package/dist/domain/identityaccount/resolve.js +38 -1
- package/dist/domain/identityaccount/resolve.js.map +1 -1
- package/dist/domain/identityaccount/resource-store.d.ts.map +1 -1
- package/dist/domain/identityaccount/resource-store.js +11 -1
- package/dist/domain/identityaccount/resource-store.js.map +1 -1
- package/dist/domain/identityaccount/steps.d.ts +2 -1
- package/dist/domain/identityaccount/steps.d.ts.map +1 -1
- package/dist/domain/identityaccount/steps.js +4 -3
- package/dist/domain/identityaccount/steps.js.map +1 -1
- package/dist/domain/identityaccount/store-contract.js +2 -2
- package/dist/domain/identityaccount/store-contract.js.map +1 -1
- package/dist/domain/identityaccount/store.d.ts +6 -1
- package/dist/domain/identityaccount/store.d.ts.map +1 -1
- package/dist/domain/mcpserver/connect-sandbox.d.ts +67 -0
- package/dist/domain/mcpserver/connect-sandbox.d.ts.map +1 -0
- package/dist/domain/mcpserver/connect-sandbox.js +64 -0
- package/dist/domain/mcpserver/connect-sandbox.js.map +1 -0
- package/dist/domain/mcpserver/connect.d.ts +42 -10
- package/dist/domain/mcpserver/connect.d.ts.map +1 -1
- package/dist/domain/mcpserver/connect.js +147 -40
- package/dist/domain/mcpserver/connect.js.map +1 -1
- package/dist/domain/mcpserver/controller.js +4 -2
- package/dist/domain/mcpserver/controller.js.map +1 -1
- package/dist/domain/mcpserver/engine.d.ts +26 -7
- package/dist/domain/mcpserver/engine.d.ts.map +1 -1
- package/dist/domain/mcpserver/engine.js.map +1 -1
- package/dist/domain/mcpserver/start-connect.d.ts +5 -0
- package/dist/domain/mcpserver/start-connect.d.ts.map +1 -1
- package/dist/domain/mcpserver/start-connect.js +38 -15
- package/dist/domain/mcpserver/start-connect.js.map +1 -1
- package/dist/domain/memory/controller.js +2 -1
- package/dist/domain/memory/controller.js.map +1 -1
- package/dist/domain/memory/list-index.d.ts +2 -0
- package/dist/domain/memory/list-index.d.ts.map +1 -0
- package/dist/domain/memory/list-index.js +31 -0
- package/dist/domain/memory/list-index.js.map +1 -0
- package/dist/domain/memory/queries.d.ts +10 -0
- package/dist/domain/memory/queries.d.ts.map +1 -0
- package/dist/domain/memory/queries.js +54 -0
- package/dist/domain/memory/queries.js.map +1 -0
- package/dist/domain/memory/steps.d.ts +13 -11
- package/dist/domain/memory/steps.d.ts.map +1 -1
- package/dist/domain/memory/steps.js +26 -57
- package/dist/domain/memory/steps.js.map +1 -1
- package/dist/domain/organization/steps.d.ts.map +1 -1
- package/dist/domain/organization/steps.js +1 -1
- package/dist/domain/organization/steps.js.map +1 -1
- package/dist/domain/platformclient/mint.d.ts.map +1 -1
- package/dist/domain/platformclient/mint.js +2 -2
- package/dist/domain/platformclient/mint.js.map +1 -1
- package/dist/domain/platformclient/verifier.d.ts.map +1 -1
- package/dist/domain/platformclient/verifier.js +6 -3
- package/dist/domain/platformclient/verifier.js.map +1 -1
- package/dist/domain/plugin/push.d.ts.map +1 -1
- package/dist/domain/plugin/push.js +1 -0
- package/dist/domain/plugin/push.js.map +1 -1
- package/dist/domain/schedule/steps.d.ts +3 -1
- package/dist/domain/schedule/steps.d.ts.map +1 -1
- package/dist/domain/schedule/steps.js +3 -1
- package/dist/domain/schedule/steps.js.map +1 -1
- package/dist/domain/skill/push.d.ts.map +1 -1
- package/dist/domain/skill/push.js +1 -0
- package/dist/domain/skill/push.js.map +1 -1
- package/dist/domain/workflow/registry/data/task-kind-registry.json +27 -1
- package/dist/domain/workflowexecution/submit-approval.d.ts +5 -2
- package/dist/domain/workflowexecution/submit-approval.d.ts.map +1 -1
- package/dist/domain/workflowexecution/submit-approval.js +1 -1
- package/dist/domain/workflowexecution/submit-approval.js.map +1 -1
- package/dist/domain/workflowexecution/submit-file-decision.d.ts +5 -2
- package/dist/domain/workflowexecution/submit-file-decision.d.ts.map +1 -1
- package/dist/domain/workflowexecution/submit-file-decision.js +1 -1
- package/dist/domain/workflowexecution/submit-file-decision.js.map +1 -1
- package/dist/domain/workflowexecution/submit-workflow-task-approval.d.ts.map +1 -1
- package/dist/domain/workflowexecution/submit-workflow-task-approval.js +12 -1
- package/dist/domain/workflowexecution/submit-workflow-task-approval.js.map +1 -1
- package/dist/domain/workflowinstance/controller.d.ts +6 -3
- package/dist/domain/workflowinstance/controller.d.ts.map +1 -1
- package/dist/domain/workflowinstance/controller.js +12 -7
- package/dist/domain/workflowinstance/controller.js.map +1 -1
- package/dist/domain/workflowinstance/steps.d.ts +31 -0
- package/dist/domain/workflowinstance/steps.d.ts.map +1 -1
- package/dist/domain/workflowinstance/steps.js +88 -1
- package/dist/domain/workflowinstance/steps.js.map +1 -1
- package/dist/extensions/composed-services.d.ts +56 -0
- package/dist/extensions/composed-services.d.ts.map +1 -0
- package/dist/extensions/composed-services.js +2 -0
- package/dist/extensions/composed-services.js.map +1 -0
- package/dist/extensions/drivers.d.ts +32 -1
- package/dist/extensions/drivers.d.ts.map +1 -1
- package/dist/extensions/identity.d.ts +4 -1
- package/dist/extensions/identity.d.ts.map +1 -1
- package/dist/extensions/identity.js +4 -1
- package/dist/extensions/identity.js.map +1 -1
- package/dist/extensions/registry.d.ts +37 -0
- package/dist/extensions/registry.d.ts.map +1 -1
- package/dist/extensions/registry.js +50 -0
- package/dist/extensions/registry.js.map +1 -1
- package/dist/extensions/resource-authorization.d.ts +78 -0
- package/dist/extensions/resource-authorization.d.ts.map +1 -1
- package/dist/extensions/resource-row-reader.d.ts +43 -0
- package/dist/extensions/resource-row-reader.d.ts.map +1 -0
- package/dist/extensions/resource-row-reader.js +2 -0
- package/dist/extensions/resource-row-reader.js.map +1 -0
- package/dist/extensions/visitor-classifier.d.ts +41 -0
- package/dist/extensions/visitor-classifier.d.ts.map +1 -0
- package/dist/extensions/visitor-classifier.js +2 -0
- package/dist/extensions/visitor-classifier.js.map +1 -0
- package/dist/identity/oidc-userinfo.d.ts +6 -1
- package/dist/identity/oidc-userinfo.d.ts.map +1 -1
- package/dist/identity/oidc-userinfo.js.map +1 -1
- package/dist/identity/oidc-verifier.d.ts.map +1 -1
- package/dist/identity/oidc-verifier.js +37 -8
- package/dist/identity/oidc-verifier.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/dist/pipeline/errors.d.ts +8 -0
- package/dist/pipeline/errors.d.ts.map +1 -1
- package/dist/pipeline/errors.js +25 -16
- package/dist/pipeline/errors.js.map +1 -1
- package/dist/pipeline/interceptors/auth.d.ts +17 -9
- package/dist/pipeline/interceptors/auth.d.ts.map +1 -1
- package/dist/pipeline/interceptors/auth.js +17 -9
- package/dist/pipeline/interceptors/auth.js.map +1 -1
- package/dist/pipeline/steps/authorization-tuples.d.ts +23 -1
- package/dist/pipeline/steps/authorization-tuples.d.ts.map +1 -1
- package/dist/pipeline/steps/authorization-tuples.js +42 -0
- package/dist/pipeline/steps/authorization-tuples.js.map +1 -1
- package/dist/pipeline/steps/authorize.d.ts +6 -5
- package/dist/pipeline/steps/authorize.d.ts.map +1 -1
- package/dist/pipeline/steps/authorize.js +6 -5
- package/dist/pipeline/steps/authorize.js.map +1 -1
- package/dist/pipeline/steps/defaults.d.ts +12 -0
- package/dist/pipeline/steps/defaults.d.ts.map +1 -1
- package/dist/pipeline/steps/defaults.js +42 -7
- package/dist/pipeline/steps/defaults.js.map +1 -1
- package/dist/pipeline/steps/guard-memory-capture.d.ts +13 -15
- package/dist/pipeline/steps/guard-memory-capture.d.ts.map +1 -1
- package/dist/pipeline/steps/guard-memory-capture.js +2 -3
- package/dist/pipeline/steps/guard-memory-capture.js.map +1 -1
- package/dist/runnerauth/built-in-runner-credential-provider.d.ts +0 -2
- package/dist/runnerauth/built-in-runner-credential-provider.d.ts.map +1 -1
- package/dist/runnerauth/built-in-runner-credential-provider.js +8 -17
- package/dist/runnerauth/built-in-runner-credential-provider.js.map +1 -1
- package/dist/runnerauth/runner-credential-provider.d.ts +17 -7
- package/dist/runnerauth/runner-credential-provider.d.ts.map +1 -1
- package/dist/runnerauth/runner-credential-provider.js.map +1 -1
- package/dist/sandbox/docker.d.ts.map +1 -1
- package/dist/sandbox/docker.js +3 -0
- package/dist/sandbox/docker.js.map +1 -1
- package/dist/sandbox/kubernetes.d.ts.map +1 -1
- package/dist/sandbox/kubernetes.js +3 -0
- package/dist/sandbox/kubernetes.js.map +1 -1
- package/dist/sandbox/local-process.d.ts.map +1 -1
- package/dist/sandbox/local-process.js +4 -0
- package/dist/sandbox/local-process.js.map +1 -1
- package/dist/sandbox/provisioner.d.ts +18 -6
- package/dist/sandbox/provisioner.d.ts.map +1 -1
- package/dist/sandbox/provisioner.js.map +1 -1
- package/dist/temporal/manager.d.ts +5 -0
- package/dist/temporal/manager.d.ts.map +1 -1
- package/dist/temporal/manager.js +9 -0
- package/dist/temporal/manager.js.map +1 -1
- package/dist/temporal/mcpserver/engine-client.d.ts +2 -2
- package/dist/temporal/mcpserver/engine-client.d.ts.map +1 -1
- package/dist/temporal/mcpserver/engine-client.js +6 -4
- package/dist/temporal/mcpserver/engine-client.js.map +1 -1
- package/dist/temporal/mcpserver/names.d.ts +13 -2
- package/dist/temporal/mcpserver/names.d.ts.map +1 -1
- package/dist/temporal/mcpserver/names.js +15 -2
- package/dist/temporal/mcpserver/names.js.map +1 -1
- package/dist/temporal/sdk-logger.d.ts +74 -0
- package/dist/temporal/sdk-logger.d.ts.map +1 -0
- package/dist/temporal/sdk-logger.js +143 -0
- package/dist/temporal/sdk-logger.js.map +1 -0
- package/package.json +6 -6
- package/src/authorization/README.md +18 -6
- package/src/authorization/__tests__/authorizer.test.ts +5 -1
- package/src/authorization/__tests__/derived-tuples.test.ts +26 -0
- package/src/authorization/__tests__/evaluator.test.ts +4 -0
- package/src/authorization/__tests__/list-read-scope.test.ts +11 -5
- package/src/authorization/__tests__/store-tests.test.ts +3 -1
- package/src/authorization/__tests__/trusted-local-authorizer.test.ts +155 -0
- package/src/authorization/__tests__/unit-owned-kinds.test.ts +420 -0
- package/src/authorization/__tests__/wire-permissions.test.ts +31 -2
- package/src/authorization/authorizer.ts +21 -10
- package/src/authorization/derived-tuples.ts +92 -18
- package/src/authorization/evaluator.ts +30 -15
- package/src/authorization/list-read-scope.ts +4 -0
- package/src/authorization/model/__tests__/registry.test.ts +23 -0
- package/src/authorization/model/data/authorization-model.json +830 -67
- package/src/authorization/model/execution-viewer.ts +32 -27
- package/src/authorization/model/index.ts +4 -1
- package/src/authorization/model/rewrite.ts +5 -3
- package/src/authorization/organization-directory.ts +4 -0
- package/src/authorization/person.ts +32 -1
- package/src/authorization/policy-check.ts +105 -0
- package/src/authorization/posture.ts +45 -4
- package/src/authorization/resource-creators.ts +48 -0
- package/src/authorization/trusted-local-authorizer.ts +91 -0
- package/src/authorization/tuples.ts +17 -0
- package/src/boot/__tests__/compose.test.ts +120 -4
- package/src/boot/__tests__/list-indexes.test.ts +4 -0
- package/src/boot/__tests__/oauth-redirect-uri.test.ts +121 -10
- package/src/boot/__tests__/skill-transfer-origin.test.ts +96 -25
- package/src/boot/compose.ts +153 -61
- package/src/boot/config.ts +28 -12
- package/src/boot/inprocess.ts +18 -4
- package/src/boot/list-indexes.ts +6 -1
- package/src/boot/logger.ts +3 -1
- package/src/boot/oauth-redirect-uri.ts +62 -17
- package/src/boot/skill-transfer-origin.ts +71 -16
- package/src/domain/agent/__tests__/agent.test.ts +42 -1
- package/src/domain/agentchannel/__tests__/agentchannel.test.ts +9 -0
- package/src/domain/agentchannel/__tests__/channel-runtime.test.ts +2 -0
- package/src/domain/agentchannel/__tests__/create-authorization.test.ts +7 -6
- package/src/domain/agentchannel/steps.ts +9 -7
- package/src/domain/agentexecution/__tests__/agentexecution.test.ts +148 -56
- package/src/domain/agentexecution/__tests__/create-steps.test.ts +175 -12
- package/src/domain/agentexecution/__tests__/file-review-seed.ts +91 -0
- package/src/domain/agentexecution/controller.ts +8 -0
- package/src/domain/agentexecution/create-steps.ts +74 -44
- package/src/domain/agentexecution/submit-approval.ts +9 -6
- package/src/domain/agentexecution/submit-file-decision.ts +5 -4
- package/src/domain/agentinstance/__tests__/agentinstance.test.ts +2 -0
- package/src/domain/agentshare/__tests__/agentshare.test.ts +17 -0
- package/src/domain/agentshare/__tests__/create-authorization.test.ts +5 -4
- package/src/domain/agentshare/steps.ts +6 -4
- package/src/domain/apikey/__tests__/verifier.test.ts +73 -1
- package/src/domain/apikey/verifier.ts +45 -1
- package/src/domain/artifact/__tests__/artifact.test.ts +13 -24
- package/src/domain/channelapp/__tests__/channelapp.test.ts +7 -0
- package/src/domain/channelapp/controller.ts +4 -3
- package/src/domain/environment/__tests__/environment.test.ts +13 -0
- package/src/domain/executioncontext/__tests__/executioncontext.test.ts +2 -0
- package/src/domain/executioncontext/steps.ts +2 -1
- package/src/domain/iampolicy/__tests__/access-lists.test.ts +79 -0
- package/src/domain/iampolicy/__tests__/change.test.ts +63 -0
- package/src/domain/iampolicy/__tests__/controller.test.ts +39 -3
- package/src/domain/iampolicy/__tests__/grant-path.test.ts +595 -27
- package/src/domain/iampolicy/__tests__/iampolicy.test.ts +33 -2
- package/src/domain/iampolicy/__tests__/membership.test.ts +47 -5
- package/src/domain/iampolicy/__tests__/resource-store.test.ts +1 -0
- package/src/domain/iampolicy/__tests__/role-lifecycle.test.ts +41 -8
- package/src/domain/iampolicy/__tests__/roles.test.ts +3 -2
- package/src/domain/iampolicy/__tests__/steps.test.ts +75 -6
- package/src/domain/iampolicy/__tests__/support.ts +68 -4
- package/src/domain/iampolicy/access-lists.ts +70 -2
- package/src/domain/iampolicy/change.ts +109 -0
- package/src/domain/iampolicy/constants.ts +8 -0
- package/src/domain/iampolicy/controller.ts +17 -3
- package/src/domain/iampolicy/grant-path.ts +349 -31
- package/src/domain/iampolicy/membership.ts +32 -12
- package/src/domain/iampolicy/resource-store.ts +4 -0
- package/src/domain/iampolicy/role-lifecycle.ts +2 -0
- package/src/domain/iampolicy/roles.ts +8 -0
- package/src/domain/iampolicy/steps.ts +15 -5
- package/src/domain/iampolicy/store-contract.ts +37 -1
- package/src/domain/iampolicy/store.ts +19 -5
- package/src/domain/identityaccount/__tests__/resolve.test.ts +246 -2
- package/src/domain/identityaccount/__tests__/resource-store.test.ts +1 -1
- package/src/domain/identityaccount/constants.ts +20 -0
- package/src/domain/identityaccount/controller.ts +20 -5
- package/src/domain/identityaccount/resolve.ts +80 -1
- package/src/domain/identityaccount/resource-store.ts +14 -1
- package/src/domain/identityaccount/steps.ts +4 -3
- package/src/domain/identityaccount/store-contract.ts +4 -4
- package/src/domain/identityaccount/store.ts +6 -1
- package/src/domain/mcpserver/__tests__/connect-authorization.test.ts +1 -0
- package/src/domain/mcpserver/__tests__/connect.test.ts +358 -15
- package/src/domain/mcpserver/__tests__/mcpserver.test.ts +2 -0
- package/src/domain/mcpserver/__tests__/oauth-handshake.test.ts +2 -0
- package/src/domain/mcpserver/__tests__/store-faults.test.ts +2 -0
- package/src/domain/mcpserver/connect-sandbox.ts +135 -0
- package/src/domain/mcpserver/connect.ts +226 -56
- package/src/domain/mcpserver/controller.ts +8 -2
- package/src/domain/mcpserver/engine.ts +24 -6
- package/src/domain/mcpserver/start-connect.ts +49 -10
- package/src/domain/memory/__tests__/memory.test.ts +92 -22
- package/src/domain/memory/__tests__/queries.test.ts +173 -0
- package/src/domain/memory/controller.ts +2 -1
- package/src/domain/memory/list-index.ts +32 -0
- package/src/domain/memory/queries.ts +72 -0
- package/src/domain/memory/steps.ts +26 -63
- package/src/domain/oauthapp/__tests__/oauthapp.test.ts +14 -0
- package/src/domain/organization/__tests__/support.ts +41 -0
- package/src/domain/organization/steps.ts +1 -0
- package/src/domain/platformclient/mint.ts +6 -2
- package/src/domain/platformclient/verifier.ts +6 -3
- package/src/domain/plugin/__tests__/plugin.test.ts +11 -24
- package/src/domain/plugin/push.ts +1 -0
- package/src/domain/schedule/__tests__/schedule.composed.test.ts +2 -0
- package/src/domain/schedule/steps.ts +3 -1
- package/src/domain/session/__tests__/session.test.ts +2 -0
- package/src/domain/skill/__tests__/skill.test.ts +7 -25
- package/src/domain/skill/push.ts +1 -0
- package/src/domain/workflow/__tests__/workflow.test.ts +2 -0
- package/src/domain/workflow/registry/data/task-kind-registry.json +27 -1
- package/src/domain/workflowexecution/__tests__/forward-attribution-composed.test.ts +270 -0
- package/src/domain/workflowexecution/__tests__/submit-workflow-task-approval.test.ts +196 -0
- package/src/domain/workflowexecution/__tests__/workflowexecution.test.ts +3 -57
- package/src/domain/workflowexecution/submit-approval.ts +9 -2
- package/src/domain/workflowexecution/submit-file-decision.ts +6 -1
- package/src/domain/workflowexecution/submit-workflow-task-approval.ts +23 -5
- package/src/domain/workflowinstance/controller.ts +27 -9
- package/src/domain/workflowinstance/steps.ts +123 -1
- package/src/extensions/__tests__/apikey-before-sign-in-composed.test.ts +172 -0
- package/src/extensions/__tests__/built-in-authorization-composed.test.ts +80 -1
- package/src/extensions/__tests__/composed-services-composed.test.ts +236 -0
- package/src/extensions/__tests__/extension-composition.test.ts +229 -16
- package/src/extensions/__tests__/identity-account-composed.test.ts +84 -4
- package/src/extensions/__tests__/list-read-scope-composed.test.ts +2 -0
- package/src/extensions/__tests__/registry.test.ts +147 -1
- package/src/extensions/__tests__/secret-cleanup-composed.test.ts +2 -0
- package/src/extensions/__tests__/visitor-classifier-points.test.ts +42 -0
- package/src/extensions/composed-services.ts +61 -0
- package/src/extensions/drivers.ts +33 -1
- package/src/extensions/identity.ts +4 -1
- package/src/extensions/registry.ts +105 -0
- package/src/extensions/resource-authorization.ts +87 -0
- package/src/extensions/resource-row-reader.ts +43 -0
- package/src/extensions/visitor-classifier.ts +41 -0
- package/src/identity/__tests__/oidc-verifier.test.ts +38 -12
- package/src/identity/oidc-userinfo.ts +6 -1
- package/src/identity/oidc-verifier.ts +42 -8
- package/src/index.ts +61 -6
- package/src/pipeline/__tests__/steps.test.ts +31 -4
- package/src/pipeline/errors.ts +30 -16
- package/src/pipeline/interceptors/auth.ts +17 -9
- package/src/pipeline/steps/__tests__/authorization-tuples.test.ts +20 -0
- package/src/pipeline/steps/__tests__/guard-memory-capture.test.ts +72 -15
- package/src/pipeline/steps/authorization-tuples.ts +54 -0
- package/src/pipeline/steps/authorize.ts +6 -5
- package/src/pipeline/steps/defaults.ts +52 -7
- package/src/pipeline/steps/guard-memory-capture.ts +15 -20
- package/src/runnerauth/__tests__/built-in-runner-credential-provider.test.ts +1 -1
- package/src/runnerauth/__tests__/runner-subject-composed.test.ts +13 -0
- package/src/runnerauth/bound-execution.ts +2 -2
- package/src/runnerauth/built-in-runner-credential-provider.ts +8 -21
- package/src/runnerauth/runner-credential-provider.ts +17 -7
- package/src/sandbox/__tests__/docker.integration.test.ts +4 -0
- package/src/sandbox/__tests__/kubernetes.test.ts +18 -1
- package/src/sandbox/__tests__/local-process.integration.test.ts +4 -0
- package/src/sandbox/__tests__/provisioner.test.ts +1 -0
- package/src/sandbox/docker.ts +3 -0
- package/src/sandbox/kubernetes.ts +3 -0
- package/src/sandbox/local-process.ts +4 -0
- package/src/sandbox/provisioner.ts +18 -6
- package/src/store/postgres/__tests__/support.ts +11 -2
- package/src/temporal/README.md +1 -0
- package/src/temporal/__tests__/manager.test.ts +56 -4
- package/src/temporal/__tests__/sdk-log-workflows.ts +26 -0
- package/src/temporal/__tests__/sdk-logger.e2e.test.ts +150 -0
- package/src/temporal/__tests__/sdk-logger.test.ts +238 -0
- package/src/temporal/manager.ts +9 -0
- package/src/temporal/mcpserver/engine-client.ts +8 -3
- package/src/temporal/mcpserver/names.ts +16 -2
- package/src/temporal/sdk-logger.ts +173 -0
- package/dist/authorization/lane-admission.d.ts +0 -50
- package/dist/authorization/lane-admission.d.ts.map +0 -1
- package/dist/authorization/lane-admission.js +0 -13
- package/dist/authorization/lane-admission.js.map +0 -1
- package/src/authorization/__tests__/lane-admission.test.ts +0 -115
- package/src/authorization/lane-admission.ts +0 -73
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import type { Client } from "@temporalio/client";
|
|
20
20
|
import type { Logger } from "../../boot/logger.js";
|
|
21
21
|
import type { AgentExecutionTemporalConfig } from "../../domain/agentexecution/temporal/config.js";
|
|
22
|
-
import type { ConnectRun, ConnectWorkflowInput, McpServerConnectEngine, McpServerEngineStateProvider } from "../../domain/mcpserver/engine.js";
|
|
22
|
+
import type { ConnectRun, ConnectTaskQueue, ConnectWorkflowInput, McpServerConnectEngine, McpServerEngineStateProvider } from "../../domain/mcpserver/engine.js";
|
|
23
23
|
import type { TemporalManager } from "../manager.js";
|
|
24
24
|
export interface McpServerEngineDeps {
|
|
25
25
|
readonly client: Client;
|
|
@@ -29,7 +29,7 @@ export interface McpServerEngineDeps {
|
|
|
29
29
|
export declare class TemporalMcpServerConnectEngine implements McpServerConnectEngine {
|
|
30
30
|
private readonly deps;
|
|
31
31
|
constructor(deps: McpServerEngineDeps);
|
|
32
|
-
startOrAttachConnect(mcpServerId: string, input: ConnectWorkflowInput, runTimeoutMs: number): Promise<ConnectRun>;
|
|
32
|
+
startOrAttachConnect(mcpServerId: string, input: ConnectWorkflowInput, runTimeoutMs: number, taskQueue: ConnectTaskQueue): Promise<ConnectRun>;
|
|
33
33
|
isConnectRunRunning(workflowId: string): Promise<boolean>;
|
|
34
34
|
hasRunnerQueuePollers(): Promise<boolean | undefined>;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-client.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAajD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,KAAK,EACV,UAAU,EAGV,oBAAoB,EAEpB,sBAAsB,EAEtB,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,8BAA+B,YAAW,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEhD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"engine-client.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAajD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACnG,OAAO,KAAK,EACV,UAAU,EAGV,gBAAgB,EAChB,oBAAoB,EAEpB,sBAAsB,EAEtB,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,8BAA+B,YAAW,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAEhD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,oBAAoB,EAC3B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAiDhB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczD,qBAAqB,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;CAmB5D;AAoGD;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,4BAA4B,CAsB/B"}
|
|
@@ -11,13 +11,15 @@ export class TemporalMcpServerConnectEngine {
|
|
|
11
11
|
constructor(deps) {
|
|
12
12
|
this.deps = deps;
|
|
13
13
|
}
|
|
14
|
-
async startOrAttachConnect(mcpServerId, input, runTimeoutMs) {
|
|
14
|
+
async startOrAttachConnect(mcpServerId, input, runTimeoutMs, taskQueue) {
|
|
15
15
|
const { client, config, logger } = this.deps;
|
|
16
16
|
const workflowId = connectWorkflowIdFor(mcpServerId);
|
|
17
17
|
// MCP connect is not session-scoped (it discovers tools at the server
|
|
18
|
-
// level), so it
|
|
19
|
-
//
|
|
20
|
-
|
|
18
|
+
// level), so it never takes the agent-execution routing mode: it runs
|
|
19
|
+
// on the shared runner queue (connect.go:642-645) or, with a sandbox
|
|
20
|
+
// provisioner composed, on the queue its own connect sandbox serves —
|
|
21
|
+
// the domain decides which (engine.ts ConnectTaskQueue).
|
|
22
|
+
const runnerQueue = taskQueue.kind === "runner" ? config.runnerQueue : taskQueue.name;
|
|
21
23
|
let handle;
|
|
22
24
|
let attached = false;
|
|
23
25
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-client.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAC5B,yEAAyE;AACzE,oEAAoE;AACpE,oEAAoE;AACpE,OAAO,aAAa,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine-client.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/engine-client.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oCAAoC,GACrC,MAAM,oBAAoB,CAAC;AAC5B,yEAAyE;AACzE,oEAAoE;AACpE,oEAAoE;AACpE,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAe9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQzE,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,IAAyB;QAAzB,SAAI,GAAJ,IAAI,CAAqB;IAAG,CAAC;IAE1D,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,KAA2B,EAC3B,YAAoB,EACpB,SAA2B;QAE3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7C,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACrD,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,WAAW,GACf,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAEpE,IAAI,MAAsB,CAAC;QAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBAC1D,UAAU;gBACV,SAAS,EAAE,WAAW;gBACtB,kBAAkB,EAAE,YAAY;gBAChC,IAAI,EAAE,CAAC,KAAK,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oCAAoC,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE;oBAClE,WAAW,EAAE,UAAU;oBACvB,aAAa,EAAE,WAAW;iBAC3B,CAAC,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC/C,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC1C,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,WAAW;gBAC1B,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,UAAU;YACV,QAAQ;YACR,MAAM,EAAE,CAAC,aAAsB,EAAE,EAAE,CACjC,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;iBAChD,SAAS,CAAC,UAAU,CAAC;iBACrB,QAAQ,EAAE,CAAC;YACd,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC;gBAC9D,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;gBACnC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE;gBACvC,aAAa,EACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa;qBAC9C,wBAAwB;aAC9B,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6DAA6D,EAAE;gBAC1E,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAsB,EACtB,aAAiC;IAEjC,MAAM,aAAa,GAAG,MAAM;SACzB,MAAM,EAAE;SACR,IAAI,CAAC,CAAC,MAAM,EAAqB,EAAE;QAClC,iEAAiE;QACjE,+DAA+D;QAC/D,iEAAiE;QACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,IAAI,EAAE,CAA0B,EAAE,CAAC;IACvE,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAqB,EAAE;QAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEL,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,QAAoC,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;QACjE,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,uDAAuD;YACvD,0DAA0D;YAC1D,mDAAmD;YACnD,OAAO,CAAC;gBACN,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE;aACjE,CAAC,CAAC;QACL,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAC9D,CAAC;YAAS,CAAC;QACT,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,oEAAoE;QACpE,yDAAyD;QACzD,mEAAmE;QACnE,sEAAsE;QACtE,yDAAyD;QACzD,iEAAiE;QACjE,kEAAkE;QAClE,IAAI,WAA2C,CAAC;QAChD,IAAI,OAAmC,CAAC;QACxC,IAAI,KAAK,GAAY,KAAK,CAAC,KAAK,CAAC;QACjC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC7C,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACrE,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBAC7D,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;YACD,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;QAC/C,CAAC;QACD,+DAA+D;QAC/D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,8DAA8D;YAC9D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,mDAAmD;YACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EACL,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE;gBAC9D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;gBACrB,CAAC,CAAC,KAAK,CAAC,OAAO;SACpB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;QAC3C,kEAAkE;QAClE,8CAA8C;QAC9C,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;IACvC,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAChE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAI/C;IACC,IAAI,IAAiE,CAAC;IACtE,OAAO,GAAG,EAAE;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,8BAA8B,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACjD,IAAI,GAAG;gBACL,MAAM;gBACN,KAAK,EAAE;oBACL,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,IAAI,8BAA8B,CAAC;wBACzC,MAAM;wBACN,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;qBACpB,CAAC;iBACH;aACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* McpServer connect workflow wire identifiers — cross-edition constants
|
|
3
|
-
* copied character-for-character from Go (connect.go:31-32, 584-586)
|
|
4
|
-
*
|
|
3
|
+
* copied character-for-character from Go (connect.go:31-32, 584-586), plus
|
|
4
|
+
* the connect sandbox's task queue (stigmer/stigmer#1474), which a
|
|
5
|
+
* sandboxed runner polls. Renaming one is a wire protocol break
|
|
6
|
+
* (guidelines §2).
|
|
5
7
|
*/
|
|
6
8
|
/** The runner's connect workflow type (Go connectWorkflowName). */
|
|
7
9
|
export declare const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
|
|
@@ -17,4 +19,13 @@ export declare const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
|
|
|
17
19
|
* is.
|
|
18
20
|
*/
|
|
19
21
|
export declare function connectWorkflowIdFor(mcpServerId: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* The task queue one connect sandbox serves: its runner polls exactly this
|
|
24
|
+
* queue (STIGMER_TASK_QUEUE) and the connect workflow is started on it. The
|
|
25
|
+
* colon form of every per-queue name (`session:`, `wfexec:`, `sandbox:`);
|
|
26
|
+
* the id is the connect's synthetic execution id
|
|
27
|
+
* (domain/mcpserver/connect-execution-id.ts), unique per attempt, so two
|
|
28
|
+
* connects of one server never share a sandbox.
|
|
29
|
+
*/
|
|
30
|
+
export declare function connectTaskQueueFor(connectExecutionId: string): string;
|
|
20
31
|
//# sourceMappingURL=names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAEtE"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* McpServer connect workflow wire identifiers — cross-edition constants
|
|
3
|
-
* copied character-for-character from Go (connect.go:31-32, 584-586)
|
|
4
|
-
*
|
|
3
|
+
* copied character-for-character from Go (connect.go:31-32, 584-586), plus
|
|
4
|
+
* the connect sandbox's task queue (stigmer/stigmer#1474), which a
|
|
5
|
+
* sandboxed runner polls. Renaming one is a wire protocol break
|
|
6
|
+
* (guidelines §2).
|
|
5
7
|
*/
|
|
6
8
|
/** The runner's connect workflow type (Go connectWorkflowName). */
|
|
7
9
|
export const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
|
|
@@ -19,4 +21,15 @@ export const CONNECT_WORKFLOW_NAME = "stigmer/mcp-server/connect";
|
|
|
19
21
|
export function connectWorkflowIdFor(mcpServerId) {
|
|
20
22
|
return `${CONNECT_WORKFLOW_NAME}/${mcpServerId}`;
|
|
21
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* The task queue one connect sandbox serves: its runner polls exactly this
|
|
26
|
+
* queue (STIGMER_TASK_QUEUE) and the connect workflow is started on it. The
|
|
27
|
+
* colon form of every per-queue name (`session:`, `wfexec:`, `sandbox:`);
|
|
28
|
+
* the id is the connect's synthetic execution id
|
|
29
|
+
* (domain/mcpserver/connect-execution-id.ts), unique per attempt, so two
|
|
30
|
+
* connects of one server never share a sandbox.
|
|
31
|
+
*/
|
|
32
|
+
export function connectTaskQueueFor(connectExecutionId) {
|
|
33
|
+
return `mcpconnect:${connectExecutionId}`;
|
|
34
|
+
}
|
|
22
35
|
//# sourceMappingURL=names.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/temporal/mcpserver/names.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,GAAG,qBAAqB,IAAI,WAAW,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,kBAA0B;IAC5D,OAAO,cAAc,kBAAkB,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Temporal SDK's log lines, routed through the server logger (#1037).
|
|
3
|
+
*
|
|
4
|
+
* The SDK logs through its process-wide Runtime logger: `Activity failed`
|
|
5
|
+
* with the activity's identity and error, worker lifecycle lines, and every
|
|
6
|
+
* `log.*` a workflow body calls (the workflow sink resolves to the same
|
|
7
|
+
* logger). Left at its default, that logger writes its own format to
|
|
8
|
+
* stderr, outside LOG_LEVEL and outside the sink seam, so a deployable that
|
|
9
|
+
* exports the server's lines (boot/logger.ts's `sink`) never sees the
|
|
10
|
+
* warnings an operator most needs. One `Runtime.install({ logger })` before
|
|
11
|
+
* the first native connection routes them all through the server logger,
|
|
12
|
+
* with the same threshold, shape and export as every other line.
|
|
13
|
+
*
|
|
14
|
+
* Meta becomes fields by one table, keyed on who wrote the line. The SDK
|
|
15
|
+
* tags each line with `sdkComponent`; `workflow`, `activity` and `nexus`
|
|
16
|
+
* are the context loggers user code calls, and the SDK "never publishes
|
|
17
|
+
* messages with" them (@temporalio/common's SdkComponent). Those lines are
|
|
18
|
+
* ours and get the server logger's own contract: values pass as the call
|
|
19
|
+
* site wrote them, and redaction is the call site's. Every other line is
|
|
20
|
+
* the SDK's own, and keeps only strings, numbers and booleans, because
|
|
21
|
+
* its nested values are not ours to vouch for: at debug the SDK logs
|
|
22
|
+
* `Creating worker` with the whole worker options, which hold the payload
|
|
23
|
+
* codecs and their decryption keys. An unknown or absent component is
|
|
24
|
+
* treated as the SDK's, since the SDK says its component list may change.
|
|
25
|
+
* On every line: symbol keys are dropped (the workflow sink's call-time
|
|
26
|
+
* stamp rides one), `taskToken` is dropped (it can complete the activity
|
|
27
|
+
* from outside, and has no business in a log store), null and undefined
|
|
28
|
+
* are dropped, an Error becomes its message as every server call site logs
|
|
29
|
+
* one, and a bigint becomes its decimal string because JSON cannot carry
|
|
30
|
+
* it. Keys keep the SDK's names (`activityType`, `workflowId`), which are
|
|
31
|
+
* Temporal's documented vocabulary.
|
|
32
|
+
*
|
|
33
|
+
* Two consequences, accepted. A workflow line is stamped when its
|
|
34
|
+
* activation's sinks flush, milliseconds after the `log.*` call, because
|
|
35
|
+
* the server Logger takes no instant. And the table runs before the
|
|
36
|
+
* threshold drops a line, because the Logger exposes no level check; it
|
|
37
|
+
* walks a handful of keys, and drops the one large SDK object unwalked.
|
|
38
|
+
*
|
|
39
|
+
* Native (Rust core) lines stay on the console, as the SDK defaults:
|
|
40
|
+
* forwarding them makes the SDK buffer every runtime-logger line for
|
|
41
|
+
* 100 ms (RuntimeOptions' telemetryOptions.logging), which would delay and
|
|
42
|
+
* restamp `Activity failed` itself.
|
|
43
|
+
*
|
|
44
|
+
* The Runtime is a process singleton, so the install is a bridge with one
|
|
45
|
+
* process instance: the first attach installs an adapter that reads the
|
|
46
|
+
* bridge's current target, and every later attach (a reconnect, a second
|
|
47
|
+
* composition in one test process) only retargets it. A Runtime created
|
|
48
|
+
* before the first attach (a test environment, or an embedder that touched
|
|
49
|
+
* the SDK first) keeps the SDK default; the attach says so once and never
|
|
50
|
+
* fails the boot over it. TemporalManager attaches before every native
|
|
51
|
+
* connect, so every worker it builds, OSS and extension alike, is covered.
|
|
52
|
+
* A composition that prebuilds a bundle with `bundleWorkflowCode` passes
|
|
53
|
+
* that call its own logger: the bundler never reads the Runtime.
|
|
54
|
+
*/
|
|
55
|
+
import { type LogMetadata, type Logger as SdkLogger } from "@temporalio/common";
|
|
56
|
+
import { type RuntimeOptions } from "@temporalio/worker";
|
|
57
|
+
import type { LogFields, Logger } from "../boot/logger.js";
|
|
58
|
+
/** The meta table (module header), exported for its own unit arms. */
|
|
59
|
+
export declare function toLogFields(meta: LogMetadata | undefined): LogFields;
|
|
60
|
+
/** The SDK's Logger over whichever server logger `target` returns now. */
|
|
61
|
+
export declare function createSdkLoggerAdapter(target: () => Logger): SdkLogger;
|
|
62
|
+
/** `Runtime.install`'s shape, the bridge's test seam. */
|
|
63
|
+
export type RuntimeInstall = (options: RuntimeOptions) => unknown;
|
|
64
|
+
export interface SdkLogBridge {
|
|
65
|
+
/**
|
|
66
|
+
* Routes the SDK's lines to `logger`: installs the Runtime logger on the
|
|
67
|
+
* first call, retargets it on every later one.
|
|
68
|
+
*/
|
|
69
|
+
attach(logger: Logger): void;
|
|
70
|
+
}
|
|
71
|
+
export declare function createSdkLogBridge(install: RuntimeInstall): SdkLogBridge;
|
|
72
|
+
/** The process's one bridge, over the SDK's one Runtime. */
|
|
73
|
+
export declare const processSdkLogBridge: SdkLogBridge;
|
|
74
|
+
//# sourceMappingURL=sdk-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-logger.d.ts","sourceRoot":"","sources":["../../src/temporal/sdk-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,MAAM,IAAI,SAAS,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAY,MAAM,mBAAmB,CAAC;AAoBrE,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAwBpE;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,CAYtE;AAED,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,YAAY,CA+BxE;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,YAEjC,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Temporal SDK's log lines, routed through the server logger (#1037).
|
|
3
|
+
*
|
|
4
|
+
* The SDK logs through its process-wide Runtime logger: `Activity failed`
|
|
5
|
+
* with the activity's identity and error, worker lifecycle lines, and every
|
|
6
|
+
* `log.*` a workflow body calls (the workflow sink resolves to the same
|
|
7
|
+
* logger). Left at its default, that logger writes its own format to
|
|
8
|
+
* stderr, outside LOG_LEVEL and outside the sink seam, so a deployable that
|
|
9
|
+
* exports the server's lines (boot/logger.ts's `sink`) never sees the
|
|
10
|
+
* warnings an operator most needs. One `Runtime.install({ logger })` before
|
|
11
|
+
* the first native connection routes them all through the server logger,
|
|
12
|
+
* with the same threshold, shape and export as every other line.
|
|
13
|
+
*
|
|
14
|
+
* Meta becomes fields by one table, keyed on who wrote the line. The SDK
|
|
15
|
+
* tags each line with `sdkComponent`; `workflow`, `activity` and `nexus`
|
|
16
|
+
* are the context loggers user code calls, and the SDK "never publishes
|
|
17
|
+
* messages with" them (@temporalio/common's SdkComponent). Those lines are
|
|
18
|
+
* ours and get the server logger's own contract: values pass as the call
|
|
19
|
+
* site wrote them, and redaction is the call site's. Every other line is
|
|
20
|
+
* the SDK's own, and keeps only strings, numbers and booleans, because
|
|
21
|
+
* its nested values are not ours to vouch for: at debug the SDK logs
|
|
22
|
+
* `Creating worker` with the whole worker options, which hold the payload
|
|
23
|
+
* codecs and their decryption keys. An unknown or absent component is
|
|
24
|
+
* treated as the SDK's, since the SDK says its component list may change.
|
|
25
|
+
* On every line: symbol keys are dropped (the workflow sink's call-time
|
|
26
|
+
* stamp rides one), `taskToken` is dropped (it can complete the activity
|
|
27
|
+
* from outside, and has no business in a log store), null and undefined
|
|
28
|
+
* are dropped, an Error becomes its message as every server call site logs
|
|
29
|
+
* one, and a bigint becomes its decimal string because JSON cannot carry
|
|
30
|
+
* it. Keys keep the SDK's names (`activityType`, `workflowId`), which are
|
|
31
|
+
* Temporal's documented vocabulary.
|
|
32
|
+
*
|
|
33
|
+
* Two consequences, accepted. A workflow line is stamped when its
|
|
34
|
+
* activation's sinks flush, milliseconds after the `log.*` call, because
|
|
35
|
+
* the server Logger takes no instant. And the table runs before the
|
|
36
|
+
* threshold drops a line, because the Logger exposes no level check; it
|
|
37
|
+
* walks a handful of keys, and drops the one large SDK object unwalked.
|
|
38
|
+
*
|
|
39
|
+
* Native (Rust core) lines stay on the console, as the SDK defaults:
|
|
40
|
+
* forwarding them makes the SDK buffer every runtime-logger line for
|
|
41
|
+
* 100 ms (RuntimeOptions' telemetryOptions.logging), which would delay and
|
|
42
|
+
* restamp `Activity failed` itself.
|
|
43
|
+
*
|
|
44
|
+
* The Runtime is a process singleton, so the install is a bridge with one
|
|
45
|
+
* process instance: the first attach installs an adapter that reads the
|
|
46
|
+
* bridge's current target, and every later attach (a reconnect, a second
|
|
47
|
+
* composition in one test process) only retargets it. A Runtime created
|
|
48
|
+
* before the first attach (a test environment, or an embedder that touched
|
|
49
|
+
* the SDK first) keeps the SDK default; the attach says so once and never
|
|
50
|
+
* fails the boot over it. TemporalManager attaches before every native
|
|
51
|
+
* connect, so every worker it builds, OSS and extension alike, is covered.
|
|
52
|
+
* A composition that prebuilds a bundle with `bundleWorkflowCode` passes
|
|
53
|
+
* that call its own logger: the bundler never reads the Runtime.
|
|
54
|
+
*/
|
|
55
|
+
import { IllegalStateError, SdkComponent, } from "@temporalio/common";
|
|
56
|
+
import { Runtime } from "@temporalio/worker";
|
|
57
|
+
/** The components whose lines come from our own code (module header). */
|
|
58
|
+
const CALLER_COMPONENTS = new Set([
|
|
59
|
+
SdkComponent.workflow,
|
|
60
|
+
SdkComponent.activity,
|
|
61
|
+
SdkComponent.nexus,
|
|
62
|
+
]);
|
|
63
|
+
/** Dropped on every line: it completes the activity from outside. */
|
|
64
|
+
const TASK_TOKEN_KEY = "taskToken";
|
|
65
|
+
const LEVELS = {
|
|
66
|
+
TRACE: "debug",
|
|
67
|
+
DEBUG: "debug",
|
|
68
|
+
INFO: "info",
|
|
69
|
+
WARN: "warn",
|
|
70
|
+
ERROR: "error",
|
|
71
|
+
};
|
|
72
|
+
/** The meta table (module header), exported for its own unit arms. */
|
|
73
|
+
export function toLogFields(meta) {
|
|
74
|
+
const fields = {};
|
|
75
|
+
if (meta === undefined) {
|
|
76
|
+
return fields;
|
|
77
|
+
}
|
|
78
|
+
const fromCaller = CALLER_COMPONENTS.has(String(meta["sdkComponent"]));
|
|
79
|
+
for (const [key, value] of Object.entries(meta)) {
|
|
80
|
+
if (key === TASK_TOKEN_KEY || value === null || value === undefined) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (value instanceof Error) {
|
|
84
|
+
fields[key] = value.message;
|
|
85
|
+
}
|
|
86
|
+
else if (typeof value === "bigint") {
|
|
87
|
+
fields[key] = value.toString();
|
|
88
|
+
}
|
|
89
|
+
else if (fromCaller ||
|
|
90
|
+
typeof value === "string" ||
|
|
91
|
+
typeof value === "number" ||
|
|
92
|
+
typeof value === "boolean") {
|
|
93
|
+
fields[key] = value;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return fields;
|
|
97
|
+
}
|
|
98
|
+
/** The SDK's Logger over whichever server logger `target` returns now. */
|
|
99
|
+
export function createSdkLoggerAdapter(target) {
|
|
100
|
+
const log = (level, message, meta) => {
|
|
101
|
+
target()[LEVELS[level]](message, toLogFields(meta));
|
|
102
|
+
};
|
|
103
|
+
return {
|
|
104
|
+
log,
|
|
105
|
+
trace: (message, meta) => log("TRACE", message, meta),
|
|
106
|
+
debug: (message, meta) => log("DEBUG", message, meta),
|
|
107
|
+
info: (message, meta) => log("INFO", message, meta),
|
|
108
|
+
warn: (message, meta) => log("WARN", message, meta),
|
|
109
|
+
error: (message, meta) => log("ERROR", message, meta),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export function createSdkLogBridge(install) {
|
|
113
|
+
let state = "pending";
|
|
114
|
+
let target;
|
|
115
|
+
const adapter = createSdkLoggerAdapter(() => {
|
|
116
|
+
if (target === undefined) {
|
|
117
|
+
throw new Error("Temporal SDK log bridge used before attach");
|
|
118
|
+
}
|
|
119
|
+
return target;
|
|
120
|
+
});
|
|
121
|
+
return {
|
|
122
|
+
attach(logger) {
|
|
123
|
+
target = logger;
|
|
124
|
+
if (state !== "pending") {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
install({ logger: adapter });
|
|
129
|
+
state = "installed";
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (!(error instanceof IllegalStateError)) {
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
state = "preempted";
|
|
136
|
+
logger.warn("Temporal SDK logger not installed: the Temporal runtime already existed before the worker manager's first connect", { error: error.message });
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/** The process's one bridge, over the SDK's one Runtime. */
|
|
142
|
+
export const processSdkLogBridge = createSdkLogBridge((options) => Runtime.install(options));
|
|
143
|
+
//# sourceMappingURL=sdk-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-logger.js","sourceRoot":"","sources":["../../src/temporal/sdk-logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/server",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.41.0",
|
|
4
4
|
"description": "The Stigmer OSS control plane as a composable library: composeServer, the extension registry and the driver seams a composition builds on. The self-contained deployable of the same server is @stigmer/server-slim.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -63,11 +63,11 @@
|
|
|
63
63
|
"@connectrpc/connect-node": "^2.0.0",
|
|
64
64
|
"@kubernetes/client-node": "2.0.0",
|
|
65
65
|
"@opentelemetry/api": "^1.9.0",
|
|
66
|
-
"@stigmer/outbound": "3.
|
|
67
|
-
"@stigmer/plugin-package": "3.
|
|
68
|
-
"@stigmer/protos": "3.
|
|
69
|
-
"@stigmer/temporal-codecs": "3.
|
|
70
|
-
"@stigmer/zip-structure": "3.
|
|
66
|
+
"@stigmer/outbound": "3.41.0",
|
|
67
|
+
"@stigmer/plugin-package": "3.41.0",
|
|
68
|
+
"@stigmer/protos": "3.41.0",
|
|
69
|
+
"@stigmer/temporal-codecs": "3.41.0",
|
|
70
|
+
"@stigmer/zip-structure": "3.41.0",
|
|
71
71
|
"@temporalio/activity": "1.16.2",
|
|
72
72
|
"@temporalio/client": "1.16.2",
|
|
73
73
|
"@temporalio/common": "1.16.2",
|
|
@@ -42,14 +42,16 @@ computes.
|
|
|
42
42
|
edition evaluates (`authorizer.ts`, arm 2).
|
|
43
43
|
- `tuples.ts` — the tuple vocabulary (object, relation, subject; the string
|
|
44
44
|
notation), the `Person` type (the caller as the model sees them: account id
|
|
45
|
-
plus the aliases a creator stamp may carry)
|
|
45
|
+
plus the aliases a creator stamp may carry), and the `Principal` a check asks
|
|
46
|
+
about: a person, or any other object matched by its own reference. The model declares no wildcard
|
|
46
47
|
subject and no condition, so a check carries no context and the parser refuses
|
|
47
48
|
the `type:*` notation.
|
|
48
49
|
- `person.ts` — the one construction of a `Person`: `resolvePerson` reads the
|
|
49
50
|
caller's account through the port the way whoAmI does, `personFor` builds the
|
|
50
51
|
aliases (the account id and the issuer subject; an email is nobody's) and
|
|
51
52
|
refuses an identity that names no person. Every driver resolves the caller
|
|
52
|
-
here
|
|
53
|
+
here; `personOfAccount` builds the same aliases for an account id no caller
|
|
54
|
+
stands for (an invitation's creator).
|
|
53
55
|
- `evaluator.ts` — OpenFGA's check over a model and a tuple source: type
|
|
54
56
|
restrictions enforced on direct tuples (model drift fails closed), a memo per
|
|
55
57
|
(object, relation), OpenFGA's depth bound, cycles and undeclared targets as
|
|
@@ -68,7 +70,10 @@ computes.
|
|
|
68
70
|
organization's owner is a row, and a stamp that names no person is no tuple. A
|
|
69
71
|
source may be seeded with candidates' facts (the list scope), so a seeded
|
|
70
72
|
object's tuples derive without a read of its row; a `derived` rule still reads
|
|
71
|
-
the row it needs.
|
|
73
|
+
the row it needs. A row is read where the composition keeps it: open source's
|
|
74
|
+
kinds from the generic Store, an account through the account port, and a kind
|
|
75
|
+
a unit keeps itself through the reader it registered
|
|
76
|
+
(`drivers.resourceRowReaders`).
|
|
72
77
|
- `strict-json.ts` — the strict reads both data inputs share (the compiled
|
|
73
78
|
model and the store tests): an unknown key or a wrong shape is a fault naming
|
|
74
79
|
where, never a half-read input.
|
|
@@ -78,8 +83,9 @@ computes.
|
|
|
78
83
|
with the Java copy; a kind this edition does not serve denied (a platform
|
|
79
84
|
capability no self-host holds); the target loaded once through the source;
|
|
80
85
|
`not-found` for a missing row except on the kinds the cloud never probes
|
|
81
|
-
(`NOT_FOUND_EXEMPT_KINDS
|
|
82
|
-
|
|
86
|
+
(`NOT_FOUND_EXEMPT_KINDS`, the cloud's own set: accounts, policies, platform
|
|
87
|
+
clients, and the platform, identity providers, invitations and teams an
|
|
88
|
+
edition above open source serves — ids cannot be enumerated); the model's answer with an empty reason on a denial so
|
|
83
89
|
the annotation's copy wins; every fault `unavailable`, never a denial and
|
|
84
90
|
never a throw.
|
|
85
91
|
- `organization-directory.ts` — `findMyOrganizations` as the cloud answers it
|
|
@@ -100,8 +106,14 @@ computes.
|
|
|
100
106
|
that does not decode skipped; the `internal` class keeps everything (the
|
|
101
107
|
in-process skip); a fault throws and is never an empty answer; an undeclared
|
|
102
108
|
kind is a consumer bug, loud.
|
|
109
|
+
- `policy-check.ts` — the one query-engine verb a unit asks, "is this policy
|
|
110
|
+
held", answered by the evaluator for a person by account id or for any other
|
|
111
|
+
object; handed to units as the composition's `authorizationQueries` under
|
|
112
|
+
the built-in posture. Contextual policies and userset principals are refused.
|
|
103
113
|
- `posture.ts` — the three postures, named once for the composition root and the
|
|
104
|
-
boot log
|
|
114
|
+
boot log, and `kindsWithoutRows`: the served kinds the built-in posture could
|
|
115
|
+
not read, which refuses the boot of an edition above open source until each
|
|
116
|
+
has a reader.
|
|
105
117
|
|
|
106
118
|
## Proof
|
|
107
119
|
|
|
@@ -115,12 +115,16 @@ const SEEDED_KINDS: ReadonlyArray<ApiResourceKind> = [
|
|
|
115
115
|
afterAll(dropPostgresFixture);
|
|
116
116
|
|
|
117
117
|
describe("NOT_FOUND_EXEMPT_KINDS", () => {
|
|
118
|
-
it("is the cloud's probe exemption
|
|
118
|
+
it("is the cloud's probe exemption: accounts, policies and platform clients, and the platform, providers, invitations and teams a wider edition serves", () => {
|
|
119
119
|
expect([...NOT_FOUND_EXEMPT_KINDS].sort()).toEqual(
|
|
120
120
|
[
|
|
121
|
+
ApiResourceKind.platform,
|
|
121
122
|
ApiResourceKind.identity_account,
|
|
123
|
+
ApiResourceKind.identity_provider,
|
|
122
124
|
ApiResourceKind.iam_policy,
|
|
123
125
|
ApiResourceKind.platform_client,
|
|
126
|
+
ApiResourceKind.invitation,
|
|
127
|
+
ApiResourceKind.team,
|
|
124
128
|
].sort(),
|
|
125
129
|
);
|
|
126
130
|
});
|
|
@@ -379,6 +379,30 @@ describe.each(driverFixtures(SEEDED_KINDS))(
|
|
|
379
379
|
).toEqual([]);
|
|
380
380
|
});
|
|
381
381
|
|
|
382
|
+
it("derives the organization's affiliated tuple from each role row the person holds there, in the same read", async () => {
|
|
383
|
+
const affiliated = async (person: Person) =>
|
|
384
|
+
(
|
|
385
|
+
await sourceFor(person).tuplesOf(
|
|
386
|
+
parseObjectRef("organization:acme"),
|
|
387
|
+
"affiliated",
|
|
388
|
+
)
|
|
389
|
+
).map(formatTuple);
|
|
390
|
+
expect(await affiliated(ROOT)).toEqual([
|
|
391
|
+
"organization:acme#affiliated@identity_account:ida_root",
|
|
392
|
+
]);
|
|
393
|
+
expect(await affiliated(DAVE)).toEqual([
|
|
394
|
+
"organization:acme#affiliated@identity_account:ida_dave",
|
|
395
|
+
]);
|
|
396
|
+
// The userset row (a partner organization's members as viewers)
|
|
397
|
+
// is structure, not a role the person holds: no affiliation.
|
|
398
|
+
expect(
|
|
399
|
+
await sourceFor(ROOT).tuplesOf(
|
|
400
|
+
parseObjectRef("organization:partner"),
|
|
401
|
+
"affiliated",
|
|
402
|
+
),
|
|
403
|
+
).toEqual([]);
|
|
404
|
+
});
|
|
405
|
+
|
|
382
406
|
it("answers the person's own rows on the organization, and nobody else's", async () => {
|
|
383
407
|
const source = sourceFor(ROOT);
|
|
384
408
|
expect(
|
|
@@ -736,6 +760,7 @@ describe.each(driverFixtures(SEEDED_KINDS))(
|
|
|
736
760
|
expect(
|
|
737
761
|
(await sourceFor(DAVE).personTuples()).map(formatTuple).sort(),
|
|
738
762
|
).toEqual([
|
|
763
|
+
"organization:acme#affiliated@identity_account:ida_dave",
|
|
739
764
|
"organization:acme#member@identity_account:ida_dave",
|
|
740
765
|
"team:tm_core#member@identity_account:ida_dave",
|
|
741
766
|
]);
|
|
@@ -778,6 +803,7 @@ describe.each(driverFixtures(SEEDED_KINDS))(
|
|
|
778
803
|
const policies = newResourceIamPolicyStore(opened.store);
|
|
779
804
|
await grant(policies, orgRole(ROOT.accountId, "owner", "acme"));
|
|
780
805
|
await grant(policies, orgRole(DAVE.accountId, "member", "acme"));
|
|
806
|
+
await grant(policies, orgRole(CAROL.accountId, "member", "acme"));
|
|
781
807
|
await seed("organization", "acme", {
|
|
782
808
|
org: "",
|
|
783
809
|
visibility: ApiResourceVisibility.visibility_private,
|
|
@@ -73,9 +73,12 @@ async function allowed(
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
describe("a person against a direct tuple", () => {
|
|
76
|
+
// carol holds a role on acme, so her account carries the organization's
|
|
77
|
+
// `affiliated` tuple the model bounds every direct grant with.
|
|
76
78
|
const source = newInMemoryTupleSource([
|
|
77
79
|
tuple("agent:a#organization@organization:acme"),
|
|
78
80
|
tuple("agent:a#owner@identity_account:auth0|carol"),
|
|
81
|
+
tuple("organization:acme#affiliated@identity_account:ida_carol"),
|
|
79
82
|
]);
|
|
80
83
|
|
|
81
84
|
it("matches on any alias, so a row stamped with the 3.14 issuer subject is still its creator's", async () => {
|
|
@@ -256,6 +259,7 @@ describe("the walk itself", () => {
|
|
|
256
259
|
// role AND still one of the organization's viewers.
|
|
257
260
|
const source = newInMemoryTupleSource([
|
|
258
261
|
tuple("organization:acme#viewer@identity_account:ida_vic"),
|
|
262
|
+
tuple("organization:acme#affiliated@identity_account:ida_vic"),
|
|
259
263
|
tuple("team:sre#organization@organization:acme"),
|
|
260
264
|
tuple("team:sre#member@identity_account:ida_vic"),
|
|
261
265
|
tuple("team:sre#member@identity_account:ida_left"),
|
|
@@ -618,22 +618,28 @@ describe.each(driverFixtures(SEEDED_KINDS))(
|
|
|
618
618
|
expect(storeReads).toEqual({ rows: 0, scans: 0 });
|
|
619
619
|
});
|
|
620
620
|
|
|
621
|
-
it("an unprovisioned subject
|
|
622
|
-
// `agt_legacy` is stamped with LEGACY's raw subject
|
|
623
|
-
//
|
|
624
|
-
//
|
|
621
|
+
it("an unprovisioned subject holds no role, so it reaches nothing an organization holds, the row its 3.14 subject stamped included", async () => {
|
|
622
|
+
// `agt_legacy` is stamped with LEGACY's raw subject. A caller who
|
|
623
|
+
// IS that subject but holds no account holds no role on the
|
|
624
|
+
// organization, and every direct grant, authorship included, is
|
|
625
|
+
// bounded by the organization's `affiliated`: the row becomes
|
|
626
|
+
// theirs again once they sign in and their roles are assigned
|
|
627
|
+
// (the next case).
|
|
625
628
|
expect(
|
|
626
629
|
await listAs(idpShaped(LEGACY_SUBJECT), ApiResourceKind.agent, [
|
|
627
630
|
rows.get(ApiResourceKind.agent)!.get("agt_legacy")!,
|
|
628
631
|
rows.get(ApiResourceKind.agent)!.get("agt_org")!,
|
|
629
632
|
]),
|
|
630
|
-
).toEqual([
|
|
633
|
+
).toEqual([]);
|
|
631
634
|
expect(
|
|
632
635
|
await listAs(idpShaped(FRESH_SUBJECT), ApiResourceKind.agent),
|
|
633
636
|
).toEqual([]);
|
|
634
637
|
});
|
|
635
638
|
|
|
636
639
|
it("a provisioned account whose idp subject stamped the row still owns it — the alias comparison the 3.14 rows need, on the list verb", async () => {
|
|
640
|
+
// Provisioned: the membership rules gave the account whose
|
|
641
|
+
// subject stamped rows a role at its first sign-in.
|
|
642
|
+
await grant(orgRole(LEGACY, "member", ORG));
|
|
637
643
|
expect(
|
|
638
644
|
await listAs(resolved(LEGACY), ApiResourceKind.agent, [
|
|
639
645
|
rows.get(ApiResourceKind.agent)!.get("agt_legacy")!,
|
|
@@ -51,8 +51,9 @@ const DOCUMENTS = [
|
|
|
51
51
|
"agent-instance-creation.fga.yaml",
|
|
52
52
|
"agent-share-owner.fga.yaml",
|
|
53
53
|
"artifact-org-and-owner.fga.yaml",
|
|
54
|
+
"blueprint-editor.fga.yaml",
|
|
54
55
|
"blueprint-private-visibility.fga.yaml",
|
|
55
|
-
"channel-app-
|
|
56
|
+
"channel-app-administration.fga.yaml",
|
|
56
57
|
"channel-participation.fga.yaml",
|
|
57
58
|
"channel-session-visibility.fga.yaml",
|
|
58
59
|
"credit-issuer.fga.yaml",
|
|
@@ -65,6 +66,7 @@ const DOCUMENTS = [
|
|
|
65
66
|
"oauth-app-administration.fga.yaml",
|
|
66
67
|
"org-admin-owner-inheritance.fga.yaml",
|
|
67
68
|
"org-shared-environment.fga.yaml",
|
|
69
|
+
"organization-affiliation-bound.fga.yaml",
|
|
68
70
|
"organization-role-assignment.fga.yaml",
|
|
69
71
|
"plan-catalog-manager.fga.yaml",
|
|
70
72
|
"platform-client-administration.fga.yaml",
|