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