@stigmer/sdk 3.34.0 → 3.36.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/activity.d.ts.map +1 -1
- package/activity.js.map +1 -1
- package/artifact-routing.d.ts.map +1 -1
- package/artifact-routing.js.map +1 -1
- package/authorization-config.d.ts.map +1 -1
- package/authorization-config.js.map +1 -1
- package/billing.d.ts.map +1 -1
- package/billing.js.map +1 -1
- package/config.d.ts.map +1 -1
- package/config.js.map +1 -1
- package/cursor-accounts.d.ts.map +1 -1
- package/cursor-accounts.js.map +1 -1
- package/ensure-identity-account.d.ts.map +1 -1
- package/ensure-identity-account.js.map +1 -1
- package/errors.d.ts.map +1 -1
- package/errors.js.map +1 -1
- package/execution/approval-provenance.d.ts.map +1 -1
- package/execution/approval-provenance.js.map +1 -1
- package/execution/conversation-rules.d.ts.map +1 -1
- package/execution/conversation-rules.js.map +1 -1
- package/execution/execution-phases.d.ts.map +1 -1
- package/execution/execution-phases.js.map +1 -1
- package/execution/file-review-fold.d.ts.map +1 -1
- package/execution/file-review-fold.js.map +1 -1
- package/execution/to-display-file-change.d.ts.map +1 -1
- package/execution/to-display-file-change.js.map +1 -1
- package/execution/tool-view.d.ts.map +1 -1
- package/execution/tool-view.js.map +1 -1
- package/execution/transcript.d.ts.map +1 -1
- package/execution/transcript.js.map +1 -1
- package/gen/agent.d.ts.map +1 -1
- package/gen/agent.js.map +1 -1
- package/gen/agentchannel.d.ts.map +1 -1
- package/gen/agentchannel.js.map +1 -1
- package/gen/agentexecution.d.ts.map +1 -1
- package/gen/agentexecution.js.map +1 -1
- package/gen/agentinstance.d.ts.map +1 -1
- package/gen/agentinstance.js.map +1 -1
- package/gen/agentshare.d.ts.map +1 -1
- package/gen/agentshare.js.map +1 -1
- package/gen/apikey.d.ts.map +1 -1
- package/gen/apikey.js.map +1 -1
- package/gen/artifact.d.ts.map +1 -1
- package/gen/artifact.js.map +1 -1
- package/gen/authorization-config.d.ts.map +1 -1
- package/gen/authorization-config.js +2 -2
- package/gen/authorization-config.js.map +1 -1
- package/gen/bidi-stream.d.ts.map +1 -1
- package/gen/bidi-stream.js.map +1 -1
- package/gen/channelapp.d.ts.map +1 -1
- package/gen/channelapp.js.map +1 -1
- package/gen/client.d.ts.map +1 -1
- package/gen/client.js.map +1 -1
- package/gen/environment.d.ts.map +1 -1
- package/gen/environment.js.map +1 -1
- package/gen/errors.d.ts.map +1 -1
- package/gen/errors.js.map +1 -1
- package/gen/executioncontext.d.ts.map +1 -1
- package/gen/executioncontext.js.map +1 -1
- package/gen/iampolicy.d.ts.map +1 -1
- package/gen/iampolicy.js.map +1 -1
- package/gen/identityaccount.d.ts.map +1 -1
- package/gen/identityaccount.js.map +1 -1
- package/gen/identityprovider.d.ts.map +1 -1
- package/gen/identityprovider.js.map +1 -1
- package/gen/invitation.d.ts.map +1 -1
- package/gen/invitation.js.map +1 -1
- package/gen/license.d.ts.map +1 -1
- package/gen/license.js.map +1 -1
- package/gen/mcpserver.d.ts.map +1 -1
- package/gen/mcpserver.js.map +1 -1
- package/gen/memory.d.ts.map +1 -1
- package/gen/memory.js.map +1 -1
- package/gen/oauthapp.d.ts.map +1 -1
- package/gen/oauthapp.js.map +1 -1
- package/gen/organization.d.ts.map +1 -1
- package/gen/organization.js.map +1 -1
- package/gen/plan.d.ts.map +1 -1
- package/gen/plan.js.map +1 -1
- package/gen/platformclient.d.ts.map +1 -1
- package/gen/platformclient.js.map +1 -1
- package/gen/plugin.d.ts.map +1 -1
- package/gen/plugin.js.map +1 -1
- package/gen/proto-utils.d.ts.map +1 -1
- package/gen/proto-utils.js.map +1 -1
- package/gen/resource-availability.d.ts.map +1 -1
- package/gen/resource-availability.js.map +1 -1
- package/gen/schedule.d.ts.map +1 -1
- package/gen/schedule.js.map +1 -1
- package/gen/session.d.ts.map +1 -1
- package/gen/session.js.map +1 -1
- package/gen/skill.d.ts.map +1 -1
- package/gen/skill.js.map +1 -1
- package/gen/subscription.d.ts.map +1 -1
- package/gen/subscription.js.map +1 -1
- package/gen/team.d.ts.map +1 -1
- package/gen/team.js.map +1 -1
- package/gen/types.d.ts.map +1 -1
- package/gen/types.js.map +1 -1
- package/gen/workflow.d.ts.map +1 -1
- package/gen/workflow.js.map +1 -1
- package/gen/workflowexecution.d.ts.map +1 -1
- package/gen/workflowexecution.js.map +1 -1
- package/gen/workflowinstance.d.ts.map +1 -1
- package/gen/workflowinstance.js.map +1 -1
- package/github.d.ts.map +1 -1
- package/github.js.map +1 -1
- package/guest-auth.d.ts.map +1 -1
- package/guest-auth.js.map +1 -1
- package/iam-principal.d.ts.map +1 -1
- package/iam-principal.js.map +1 -1
- package/iam-role.d.ts.map +1 -1
- package/iam-role.js.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/internal/interceptors.d.ts.map +1 -1
- package/internal/interceptors.js.map +1 -1
- package/manifest/client.d.ts.map +1 -1
- package/manifest/client.js.map +1 -1
- package/manifest/document.d.ts.map +1 -1
- package/manifest/document.js.map +1 -1
- package/manifest/index.d.ts.map +1 -1
- package/manifest/index.js.map +1 -1
- package/manifest/parse.d.ts.map +1 -1
- package/manifest/parse.js.map +1 -1
- package/manifest/redaction.d.ts.map +1 -1
- package/manifest/redaction.js.map +1 -1
- package/manifest/registry.d.ts.map +1 -1
- package/manifest/registry.js.map +1 -1
- package/manifest/serialize.d.ts.map +1 -1
- package/manifest/serialize.js.map +1 -1
- package/mcpserver-connect.d.ts.map +1 -1
- package/mcpserver-connect.js.map +1 -1
- package/node.d.ts.map +1 -1
- package/node.js.map +1 -1
- package/package.json +2 -2
- package/platform-client-auth.d.ts.map +1 -1
- package/platform-client-auth.js.map +1 -1
- package/platform.d.ts.map +1 -1
- package/platform.js.map +1 -1
- package/plugin.d.ts.map +1 -1
- package/plugin.js.map +1 -1
- package/provider-standing.d.ts.map +1 -1
- package/provider-standing.js.map +1 -1
- package/resource-availability.d.ts.map +1 -1
- package/resource-availability.js.map +1 -1
- package/runner-adapter.d.ts.map +1 -1
- package/runner-adapter.js.map +1 -1
- package/search.d.ts.map +1 -1
- package/search.js.map +1 -1
- package/session.d.ts.map +1 -1
- package/session.js.map +1 -1
- package/sharing.d.ts.map +1 -1
- package/sharing.js.map +1 -1
- package/skill.d.ts.map +1 -1
- package/skill.js.map +1 -1
- package/src/gen/authorization-config.ts +2 -2
- package/stigmer.d.ts.map +1 -1
- package/stigmer.js.map +1 -1
- package/transport.d.ts.map +1 -1
- package/transport.js.map +1 -1
- package/__tests__/billing.test.d.ts +0 -2
- package/__tests__/billing.test.d.ts.map +0 -1
- package/__tests__/billing.test.js +0 -120
- package/__tests__/billing.test.js.map +0 -1
- package/__tests__/config.test.d.ts +0 -2
- package/__tests__/config.test.d.ts.map +0 -1
- package/__tests__/config.test.js +0 -35
- package/__tests__/config.test.js.map +0 -1
- package/__tests__/ensure-identity-account.test.d.ts +0 -2
- package/__tests__/ensure-identity-account.test.d.ts.map +0 -1
- package/__tests__/ensure-identity-account.test.js +0 -108
- package/__tests__/ensure-identity-account.test.js.map +0 -1
- package/__tests__/errors.test.d.ts +0 -2
- package/__tests__/errors.test.d.ts.map +0 -1
- package/__tests__/errors.test.js +0 -228
- package/__tests__/errors.test.js.map +0 -1
- package/__tests__/gen/errors.test.d.ts +0 -2
- package/__tests__/gen/errors.test.d.ts.map +0 -1
- package/__tests__/gen/errors.test.js +0 -97
- package/__tests__/gen/errors.test.js.map +0 -1
- package/__tests__/gen/invitation-client.test.d.ts +0 -2
- package/__tests__/gen/invitation-client.test.d.ts.map +0 -1
- package/__tests__/gen/invitation-client.test.js +0 -106
- package/__tests__/gen/invitation-client.test.js.map +0 -1
- package/__tests__/gen/proto-utils.test.d.ts +0 -2
- package/__tests__/gen/proto-utils.test.d.ts.map +0 -1
- package/__tests__/gen/proto-utils.test.js +0 -85
- package/__tests__/gen/proto-utils.test.js.map +0 -1
- package/__tests__/gen/session-client.test.d.ts +0 -2
- package/__tests__/gen/session-client.test.d.ts.map +0 -1
- package/__tests__/gen/session-client.test.js +0 -152
- package/__tests__/gen/session-client.test.js.map +0 -1
- package/__tests__/guest-auth.test.d.ts +0 -2
- package/__tests__/guest-auth.test.d.ts.map +0 -1
- package/__tests__/guest-auth.test.js +0 -223
- package/__tests__/guest-auth.test.js.map +0 -1
- package/__tests__/iam-principal.test.d.ts +0 -2
- package/__tests__/iam-principal.test.d.ts.map +0 -1
- package/__tests__/iam-principal.test.js +0 -65
- package/__tests__/iam-principal.test.js.map +0 -1
- package/__tests__/manifest.test.d.ts +0 -2
- package/__tests__/manifest.test.d.ts.map +0 -1
- package/__tests__/manifest.test.js +0 -306
- package/__tests__/manifest.test.js.map +0 -1
- package/__tests__/mcpserver-connect.test.d.ts +0 -2
- package/__tests__/mcpserver-connect.test.d.ts.map +0 -1
- package/__tests__/mcpserver-connect.test.js +0 -146
- package/__tests__/mcpserver-connect.test.js.map +0 -1
- package/__tests__/node.test.d.ts +0 -2
- package/__tests__/node.test.d.ts.map +0 -1
- package/__tests__/node.test.js +0 -67
- package/__tests__/node.test.js.map +0 -1
- package/__tests__/platform-client-auth.test.d.ts +0 -2
- package/__tests__/platform-client-auth.test.d.ts.map +0 -1
- package/__tests__/platform-client-auth.test.js +0 -59
- package/__tests__/platform-client-auth.test.js.map +0 -1
- package/__tests__/platform.test.d.ts +0 -2
- package/__tests__/platform.test.d.ts.map +0 -1
- package/__tests__/platform.test.js +0 -52
- package/__tests__/platform.test.js.map +0 -1
- package/__tests__/plugin.test.d.ts +0 -2
- package/__tests__/plugin.test.d.ts.map +0 -1
- package/__tests__/plugin.test.js +0 -74
- package/__tests__/plugin.test.js.map +0 -1
- package/__tests__/resource-availability.test.d.ts +0 -2
- package/__tests__/resource-availability.test.d.ts.map +0 -1
- package/__tests__/resource-availability.test.js +0 -80
- package/__tests__/resource-availability.test.js.map +0 -1
- package/__tests__/runner-adapter.test.d.ts +0 -2
- package/__tests__/runner-adapter.test.d.ts.map +0 -1
- package/__tests__/runner-adapter.test.js +0 -88
- package/__tests__/runner-adapter.test.js.map +0 -1
- package/__tests__/session.test.d.ts +0 -6
- package/__tests__/session.test.d.ts.map +0 -1
- package/__tests__/session.test.js +0 -50
- package/__tests__/session.test.js.map +0 -1
- package/__tests__/sharing.test.d.ts +0 -2
- package/__tests__/sharing.test.d.ts.map +0 -1
- package/__tests__/sharing.test.js +0 -106
- package/__tests__/sharing.test.js.map +0 -1
- package/__tests__/skill.test.d.ts +0 -2
- package/__tests__/skill.test.d.ts.map +0 -1
- package/__tests__/skill.test.js +0 -117
- package/__tests__/skill.test.js.map +0 -1
- package/__tests__/stigmer.test.d.ts +0 -2
- package/__tests__/stigmer.test.d.ts.map +0 -1
- package/__tests__/stigmer.test.js +0 -127
- package/__tests__/stigmer.test.js.map +0 -1
- package/__tests__/update-input-roundtrip.test.d.ts +0 -2
- package/__tests__/update-input-roundtrip.test.d.ts.map +0 -1
- package/__tests__/update-input-roundtrip.test.js +0 -775
- package/__tests__/update-input-roundtrip.test.js.map +0 -1
- package/__tests__/update-input.test.d.ts +0 -2
- package/__tests__/update-input.test.d.ts.map +0 -1
- package/__tests__/update-input.test.js +0 -188
- package/__tests__/update-input.test.js.map +0 -1
- package/execution/__tests__/approval-provenance.test.d.ts +0 -2
- package/execution/__tests__/approval-provenance.test.d.ts.map +0 -1
- package/execution/__tests__/approval-provenance.test.js +0 -42
- package/execution/__tests__/approval-provenance.test.js.map +0 -1
- package/execution/__tests__/file-review-fold.corpus.test.d.ts +0 -2
- package/execution/__tests__/file-review-fold.corpus.test.d.ts.map +0 -1
- package/execution/__tests__/file-review-fold.corpus.test.js +0 -82
- package/execution/__tests__/file-review-fold.corpus.test.js.map +0 -1
- package/execution/__tests__/file-review-fold.test.d.ts +0 -2
- package/execution/__tests__/file-review-fold.test.d.ts.map +0 -1
- package/execution/__tests__/file-review-fold.test.js +0 -184
- package/execution/__tests__/file-review-fold.test.js.map +0 -1
- package/execution/__tests__/to-display-file-change.test.d.ts +0 -2
- package/execution/__tests__/to-display-file-change.test.d.ts.map +0 -1
- package/execution/__tests__/to-display-file-change.test.js +0 -81
- package/execution/__tests__/to-display-file-change.test.js.map +0 -1
- package/execution/__tests__/tool-view.file-changes.test.d.ts +0 -2
- package/execution/__tests__/tool-view.file-changes.test.d.ts.map +0 -1
- package/execution/__tests__/tool-view.file-changes.test.js +0 -86
- package/execution/__tests__/tool-view.file-changes.test.js.map +0 -1
- package/execution/__tests__/tool-view.fixtures.test.d.ts +0 -2
- package/execution/__tests__/tool-view.fixtures.test.d.ts.map +0 -1
- package/execution/__tests__/tool-view.fixtures.test.js +0 -152
- package/execution/__tests__/tool-view.fixtures.test.js.map +0 -1
- package/execution/__tests__/tool-view.output-ref.test.d.ts +0 -2
- package/execution/__tests__/tool-view.output-ref.test.d.ts.map +0 -1
- package/execution/__tests__/tool-view.output-ref.test.js +0 -64
- package/execution/__tests__/tool-view.output-ref.test.js.map +0 -1
- package/execution/__tests__/tool-view.read.test.d.ts +0 -2
- package/execution/__tests__/tool-view.read.test.d.ts.map +0 -1
- package/execution/__tests__/tool-view.read.test.js +0 -56
- package/execution/__tests__/tool-view.read.test.js.map +0 -1
- package/execution/__tests__/tool-view.search.test.d.ts +0 -2
- package/execution/__tests__/tool-view.search.test.d.ts.map +0 -1
- package/execution/__tests__/tool-view.search.test.js +0 -200
- package/execution/__tests__/tool-view.search.test.js.map +0 -1
- package/execution/__tests__/tool-view.shell.test.d.ts +0 -2
- package/execution/__tests__/tool-view.shell.test.d.ts.map +0 -1
- package/execution/__tests__/tool-view.shell.test.js +0 -104
- package/execution/__tests__/tool-view.shell.test.js.map +0 -1
- package/execution/__tests__/transcript.test.d.ts +0 -2
- package/execution/__tests__/transcript.test.d.ts.map +0 -1
- package/execution/__tests__/transcript.test.js +0 -591
- package/execution/__tests__/transcript.test.js.map +0 -1
- package/node.test.d.ts +0 -2
- package/node.test.d.ts.map +0 -1
- package/node.test.js +0 -35
- package/node.test.js.map +0 -1
- package/src/__tests__/billing.test.ts +0 -146
- package/src/__tests__/config.test.ts +0 -52
- package/src/__tests__/ensure-identity-account.test.ts +0 -146
- package/src/__tests__/errors.test.ts +0 -349
- package/src/__tests__/gen/errors.test.ts +0 -138
- package/src/__tests__/gen/invitation-client.test.ts +0 -132
- package/src/__tests__/gen/proto-utils.test.ts +0 -99
- package/src/__tests__/gen/session-client.test.ts +0 -208
- package/src/__tests__/guest-auth.test.ts +0 -287
- package/src/__tests__/iam-principal.test.ts +0 -82
- package/src/__tests__/manifest.test.ts +0 -362
- package/src/__tests__/mcpserver-connect.test.ts +0 -181
- package/src/__tests__/node.test.ts +0 -74
- package/src/__tests__/platform-client-auth.test.ts +0 -76
- package/src/__tests__/platform.test.ts +0 -74
- package/src/__tests__/plugin.test.ts +0 -92
- package/src/__tests__/resource-availability.test.ts +0 -118
- package/src/__tests__/runner-adapter.test.ts +0 -122
- package/src/__tests__/session.test.ts +0 -66
- package/src/__tests__/sharing.test.ts +0 -159
- package/src/__tests__/skill.test.ts +0 -150
- package/src/__tests__/stigmer.test.ts +0 -170
- package/src/__tests__/update-input-roundtrip.test.ts +0 -1007
- package/src/__tests__/update-input.test.ts +0 -250
- package/src/execution/__tests__/approval-provenance.test.ts +0 -60
- package/src/execution/__tests__/file-review-fold.corpus.test.ts +0 -127
- package/src/execution/__tests__/file-review-fold.test.ts +0 -281
- package/src/execution/__tests__/to-display-file-change.test.ts +0 -106
- package/src/execution/__tests__/tool-view.file-changes.test.ts +0 -100
- package/src/execution/__tests__/tool-view.fixtures.test.ts +0 -225
- package/src/execution/__tests__/tool-view.output-ref.test.ts +0 -76
- package/src/execution/__tests__/tool-view.read.test.ts +0 -71
- package/src/execution/__tests__/tool-view.search.test.ts +0 -264
- package/src/execution/__tests__/tool-view.shell.test.ts +0 -127
- package/src/execution/__tests__/transcript.golden.md +0 -100
- package/src/execution/__tests__/transcript.test.ts +0 -697
- package/src/node.test.ts +0 -38
package/__tests__/node.test.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { createNodeClient, createNodeTransport } from "../node";
|
|
3
|
-
describe("createNodeTransport", () => {
|
|
4
|
-
it("creates a transport with an API key", () => {
|
|
5
|
-
const transport = createNodeTransport({
|
|
6
|
-
baseUrl: "https://api.stigmer.ai",
|
|
7
|
-
apiKey: "sk_test_123",
|
|
8
|
-
});
|
|
9
|
-
expect(transport).toBeDefined();
|
|
10
|
-
});
|
|
11
|
-
it("creates a transport with a token provider", () => {
|
|
12
|
-
const transport = createNodeTransport({
|
|
13
|
-
baseUrl: "https://api.stigmer.ai",
|
|
14
|
-
getAccessToken: () => "token_abc",
|
|
15
|
-
});
|
|
16
|
-
expect(transport).toBeDefined();
|
|
17
|
-
});
|
|
18
|
-
it("creates a transport without auth", () => {
|
|
19
|
-
const transport = createNodeTransport({
|
|
20
|
-
baseUrl: "https://api.stigmer.ai",
|
|
21
|
-
});
|
|
22
|
-
expect(transport).toBeDefined();
|
|
23
|
-
});
|
|
24
|
-
it("creates a native gRPC transport when protocol is grpc", () => {
|
|
25
|
-
const transport = createNodeTransport({
|
|
26
|
-
baseUrl: "https://api.stigmer.ai",
|
|
27
|
-
apiKey: "sk_test_123",
|
|
28
|
-
protocol: "grpc",
|
|
29
|
-
});
|
|
30
|
-
expect(transport).toBeDefined();
|
|
31
|
-
});
|
|
32
|
-
it("defaults to gRPC-web when protocol is omitted", () => {
|
|
33
|
-
const transport = createNodeTransport({
|
|
34
|
-
baseUrl: "https://api.stigmer.ai",
|
|
35
|
-
protocol: "grpc-web",
|
|
36
|
-
});
|
|
37
|
-
expect(transport).toBeDefined();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe("createNodeClient", () => {
|
|
41
|
-
it("creates a Stigmer client with API key", () => {
|
|
42
|
-
const client = createNodeClient({
|
|
43
|
-
baseUrl: "https://api.stigmer.ai",
|
|
44
|
-
apiKey: "sk_test_123",
|
|
45
|
-
});
|
|
46
|
-
expect(client).toBeDefined();
|
|
47
|
-
expect(client.baseUrl).toBe("https://api.stigmer.ai");
|
|
48
|
-
});
|
|
49
|
-
it("creates a Stigmer client with token provider", () => {
|
|
50
|
-
const client = createNodeClient({
|
|
51
|
-
baseUrl: "https://api.stigmer.ai",
|
|
52
|
-
getAccessToken: () => "token_abc",
|
|
53
|
-
});
|
|
54
|
-
expect(client).toBeDefined();
|
|
55
|
-
expect(client.baseUrl).toBe("https://api.stigmer.ai");
|
|
56
|
-
});
|
|
57
|
-
it("exposes resource sub-clients", () => {
|
|
58
|
-
const client = createNodeClient({
|
|
59
|
-
baseUrl: "https://api.stigmer.ai",
|
|
60
|
-
apiKey: "sk_test_123",
|
|
61
|
-
});
|
|
62
|
-
expect(client.agent).toBeDefined();
|
|
63
|
-
expect(client.session).toBeDefined();
|
|
64
|
-
expect(client.agentExecution).toBeDefined();
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
//# sourceMappingURL=node.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.test.js","sourceRoot":"","sources":["../../src/__tests__/node.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform-client-auth.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/platform-client-auth.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { createPlatformClientAuth, PlatformClientAuth, } from "../platform-client-auth";
|
|
3
|
-
describe("createPlatformClientAuth", () => {
|
|
4
|
-
it("throws when baseUrl is missing", () => {
|
|
5
|
-
expect(() => createPlatformClientAuth({
|
|
6
|
-
baseUrl: "",
|
|
7
|
-
clientId: "stgm_cid_abc",
|
|
8
|
-
clientSecret: "stgm_cs_xyz",
|
|
9
|
-
})).toThrow("baseUrl is required");
|
|
10
|
-
});
|
|
11
|
-
it("throws when clientId is missing", () => {
|
|
12
|
-
expect(() => createPlatformClientAuth({
|
|
13
|
-
baseUrl: "https://api.stigmer.ai",
|
|
14
|
-
clientId: "",
|
|
15
|
-
clientSecret: "stgm_cs_xyz",
|
|
16
|
-
})).toThrow("clientId is required");
|
|
17
|
-
});
|
|
18
|
-
it("throws when clientSecret is missing", () => {
|
|
19
|
-
expect(() => createPlatformClientAuth({
|
|
20
|
-
baseUrl: "https://api.stigmer.ai",
|
|
21
|
-
clientId: "stgm_cid_abc",
|
|
22
|
-
clientSecret: "",
|
|
23
|
-
})).toThrow("clientSecret is required");
|
|
24
|
-
});
|
|
25
|
-
it("returns a PlatformClientAuth instance with valid config", () => {
|
|
26
|
-
const auth = createPlatformClientAuth({
|
|
27
|
-
baseUrl: "https://api.stigmer.ai",
|
|
28
|
-
clientId: "stgm_cid_abc",
|
|
29
|
-
clientSecret: "stgm_cs_xyz",
|
|
30
|
-
});
|
|
31
|
-
expect(auth).toBeInstanceOf(PlatformClientAuth);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
describe("PlatformClientAuth.mintUserToken", () => {
|
|
35
|
-
it("throws StigmerError when userId is empty", async () => {
|
|
36
|
-
const auth = createPlatformClientAuth({
|
|
37
|
-
baseUrl: "https://api.stigmer.ai",
|
|
38
|
-
clientId: "stgm_cid_abc",
|
|
39
|
-
clientSecret: "stgm_cs_xyz",
|
|
40
|
-
});
|
|
41
|
-
await expect(auth.mintUserToken({ userId: "" })).rejects.toThrow("userId is required");
|
|
42
|
-
});
|
|
43
|
-
it("throws StigmerError with invalid-argument code when userId is empty", async () => {
|
|
44
|
-
const auth = createPlatformClientAuth({
|
|
45
|
-
baseUrl: "https://api.stigmer.ai",
|
|
46
|
-
clientId: "stgm_cid_abc",
|
|
47
|
-
clientSecret: "stgm_cs_xyz",
|
|
48
|
-
});
|
|
49
|
-
try {
|
|
50
|
-
await auth.mintUserToken({ userId: "" });
|
|
51
|
-
expect.fail("should have thrown");
|
|
52
|
-
}
|
|
53
|
-
catch (e) {
|
|
54
|
-
expect(e).toHaveProperty("code", "invalid-argument");
|
|
55
|
-
expect(e).toHaveProperty("name", "StigmerError");
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=platform-client-auth.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform-client-auth.test.js","sourceRoot":"","sources":["../../src/__tests__/platform-client-auth.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC;YACvB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CACH,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC;YACvB,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,aAAa;SAC5B,CAAC,CACH,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,GAAG,EAAE,CACV,wBAAwB,CAAC;YACvB,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,EAAE;SACjB,CAAC,CACH,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACnC,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAI,GAAG,wBAAwB,CAAC;YACpC,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACrD,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/platform.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pins PlatformClient.getServerInfo's edition-to-mode mapping: the client
|
|
3
|
-
* reports the server's edition through the one converter
|
|
4
|
-
* (`deploymentModeOf`), so a third edition on the wire reaches consumers
|
|
5
|
-
* as its own mode and never collapses into "cloud" by accident. The raw
|
|
6
|
-
* edition rides beside it for callers that want the wire value.
|
|
7
|
-
*
|
|
8
|
-
* Also pins the authentication posture across the wire: a server's `true`
|
|
9
|
-
* and `false` reach callers as they were sent, and a server that predates
|
|
10
|
-
* the field answers `undefined`, never `false` — the difference between
|
|
11
|
-
* "this server trusts every request" and "this server did not say", which
|
|
12
|
-
* a console meeting an older server must not confuse.
|
|
13
|
-
*/
|
|
14
|
-
import { describe, expect, it } from "vitest";
|
|
15
|
-
import { createRouterTransport } from "@connectrpc/connect";
|
|
16
|
-
import { create } from "@bufbuild/protobuf";
|
|
17
|
-
import { GetServerInfoOutputSchema, PlatformQueryController, ServerEdition, } from "@stigmer/protos/ai/stigmer/platform/v1/server_info_pb";
|
|
18
|
-
import { PlatformClient } from "../platform";
|
|
19
|
-
function clientAnswering(edition, authenticationRequired) {
|
|
20
|
-
return new PlatformClient(createRouterTransport(({ service }) => {
|
|
21
|
-
service(PlatformQueryController, {
|
|
22
|
-
getServerInfo: () => create(GetServerInfoOutputSchema, {
|
|
23
|
-
edition,
|
|
24
|
-
version: "1.2.3",
|
|
25
|
-
...(authenticationRequired !== undefined
|
|
26
|
-
? { authenticationRequired }
|
|
27
|
-
: {}),
|
|
28
|
-
}),
|
|
29
|
-
});
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
describe("PlatformClient.getServerInfo", () => {
|
|
33
|
-
it.each([
|
|
34
|
-
[ServerEdition.oss, "local"],
|
|
35
|
-
[ServerEdition.enterprise, "enterprise"],
|
|
36
|
-
[ServerEdition.cloud, "cloud"],
|
|
37
|
-
])("maps edition %d to deploymentMode %s and keeps the raw edition", async (edition, mode) => {
|
|
38
|
-
const info = await clientAnswering(edition).getServerInfo();
|
|
39
|
-
expect(info.deploymentMode).toBe(mode);
|
|
40
|
-
expect(info.edition).toBe(edition);
|
|
41
|
-
expect(info.version).toBe("1.2.3");
|
|
42
|
-
});
|
|
43
|
-
it.each([
|
|
44
|
-
[true, true],
|
|
45
|
-
[false, false],
|
|
46
|
-
[undefined, undefined],
|
|
47
|
-
])("reports a server's authentication posture of %s as %s", async (sent, reported) => {
|
|
48
|
-
const info = await clientAnswering(ServerEdition.cloud, sent).getServerInfo();
|
|
49
|
-
expect(info.authenticationRequired).toBe(reported);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=platform.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.test.js","sourceRoot":"","sources":["../../src/__tests__/platform.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,aAAa,GACd,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,eAAe,CACtB,OAAsB,EACtB,sBAAgC;IAEhC,OAAO,IAAI,cAAc,CACvB,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,OAAO,CAAC,uBAAuB,EAAE;YAC/B,aAAa,EAAE,GAAG,EAAE,CAClB,MAAM,CAAC,yBAAyB,EAAE;gBAChC,OAAO;gBACP,OAAO,EAAE,OAAO;gBAChB,GAAG,CAAC,sBAAsB,KAAK,SAAS;oBACtC,CAAC,CAAC,EAAE,sBAAsB,EAAE;oBAC5B,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;QAC5B,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC;QACxC,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;KACtB,CAAC,CACT,gEAAgE,EAChE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,IAAI,EAAE,IAAI,CAAC;QACZ,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,SAAS,EAAE,SAAS,CAAC;KACd,CAAC,CACT,uDAAuD,EACvD,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,aAAa,CAAC,KAAK,EACnB,IAAI,CACL,CAAC,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/plugin.test.ts"],"names":[],"mappings":""}
|
package/__tests__/plugin.test.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
// Wire-shape tests for RoutedPluginClient's size-routed push: the plugin
|
|
2
|
-
// binding of the shared artifact routing. The routing mechanism itself is
|
|
3
|
-
// pinned by skill.test.ts; these arms pin that the plugin binding reads
|
|
4
|
-
// and rewrites ITS request shape (org, artifact, artifactUploadRef,
|
|
5
|
-
// visibility, message) and mints through ITS createArtifactUploadUrl.
|
|
6
|
-
import { describe, expect, it, vi } from "vitest";
|
|
7
|
-
import { createRouterTransport } from "@connectrpc/connect";
|
|
8
|
-
import { create } from "@bufbuild/protobuf";
|
|
9
|
-
import { PluginCommandController } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/command_pb";
|
|
10
|
-
import { PluginSchema } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/api_pb";
|
|
11
|
-
import { PluginArtifactUploadUrlSchema, PushPluginRequestSchema, } from "@stigmer/protos/ai/stigmer/agentic/plugin/v1/io_pb";
|
|
12
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
13
|
-
import { RoutedPluginClient } from "../plugin.js";
|
|
14
|
-
import { MAX_INLINE_ARTIFACT_BYTES } from "../skill.js";
|
|
15
|
-
const STAGING_URL = "http://stage.example/v1/skill-artifacts/uploads/sau_p";
|
|
16
|
-
function fakeTransport(captured) {
|
|
17
|
-
return createRouterTransport(({ service }) => {
|
|
18
|
-
service(PluginCommandController, {
|
|
19
|
-
push: (req) => {
|
|
20
|
-
captured.pushes.push(req);
|
|
21
|
-
return create(PluginSchema, {});
|
|
22
|
-
},
|
|
23
|
-
createArtifactUploadUrl: (req) => {
|
|
24
|
-
captured.mints++;
|
|
25
|
-
expect(req.org).toBe("acme");
|
|
26
|
-
expect(req.sizeBytes).toBeGreaterThan(0n);
|
|
27
|
-
return create(PluginArtifactUploadUrlSchema, {
|
|
28
|
-
url: STAGING_URL,
|
|
29
|
-
artifactUploadRef: "sau_p",
|
|
30
|
-
ttlSeconds: 900,
|
|
31
|
-
});
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
describe("RoutedPluginClient.push size routing", () => {
|
|
37
|
-
it("keeps a small archive inline", async () => {
|
|
38
|
-
const captured = { pushes: [], mints: 0 };
|
|
39
|
-
const client = new RoutedPluginClient(fakeTransport(captured));
|
|
40
|
-
await client.push(create(PushPluginRequestSchema, {
|
|
41
|
-
org: "acme",
|
|
42
|
-
artifact: new Uint8Array(2048),
|
|
43
|
-
}));
|
|
44
|
-
expect(captured.mints).toBe(0);
|
|
45
|
-
expect(captured.pushes[0]?.artifact.length).toBe(2048);
|
|
46
|
-
});
|
|
47
|
-
it("stages a large archive through the plugin's own mint and pushes by reference, keeping the envelope", async () => {
|
|
48
|
-
const captured = { pushes: [], mints: 0 };
|
|
49
|
-
const record = {};
|
|
50
|
-
const fetchImpl = vi.fn(async (url, init) => {
|
|
51
|
-
record.url = String(url);
|
|
52
|
-
record.bytes =
|
|
53
|
-
init.body instanceof Uint8Array ? init.body.byteLength : -1;
|
|
54
|
-
return new Response(null, { status: 200 });
|
|
55
|
-
});
|
|
56
|
-
const client = new RoutedPluginClient(fakeTransport(captured), fetchImpl);
|
|
57
|
-
const artifact = new Uint8Array(MAX_INLINE_ARTIFACT_BYTES + 1);
|
|
58
|
-
await client.push(create(PushPluginRequestSchema, {
|
|
59
|
-
org: "acme",
|
|
60
|
-
artifact,
|
|
61
|
-
visibility: ApiResourceVisibility.visibility_org,
|
|
62
|
-
message: "big",
|
|
63
|
-
}));
|
|
64
|
-
expect(captured.mints).toBe(1);
|
|
65
|
-
expect(record.url).toBe(STAGING_URL);
|
|
66
|
-
expect(record.bytes).toBe(artifact.length);
|
|
67
|
-
const pushed = captured.pushes[0];
|
|
68
|
-
expect(pushed.artifact.length).toBe(0);
|
|
69
|
-
expect(pushed.artifactUploadRef).toBe("sau_p");
|
|
70
|
-
expect(pushed.visibility).toBe(ApiResourceVisibility.visibility_org);
|
|
71
|
-
expect(pushed.message).toBe("big");
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
//# sourceMappingURL=plugin.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.test.js","sourceRoot":"","sources":["../../src/__tests__/plugin.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resource-availability.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/resource-availability.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pins the edition vocabulary (`resource-availability.ts`): the one
|
|
3
|
-
* edition-to-mode converter, the rank comparison behind
|
|
4
|
-
* `isResourceAvailable`, and the two properties the DDs assumed and this
|
|
5
|
-
* module has to make true —
|
|
6
|
-
*
|
|
7
|
-
* - ranks, never wire numbers: `enterprise = 3` sits ABOVE `cloud = 2`
|
|
8
|
-
* and `cloud_only = 2` on the wire, so a comparison on enum values
|
|
9
|
-
* would say an Enterprise-tier kind is not served by a Cloud server;
|
|
10
|
-
* - forward compatibility: an edition value this SDK does not know
|
|
11
|
-
* (a newer server) maps to `"cloud"` instead of throwing, so an older
|
|
12
|
-
* console never breaks against a newer server.
|
|
13
|
-
*
|
|
14
|
-
* The kinds named here are chosen one per tier; re-tiering any of them is
|
|
15
|
-
* a contract change and must touch this file (editions program, DD-001).
|
|
16
|
-
*/
|
|
17
|
-
import { describe, expect, it } from "vitest";
|
|
18
|
-
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
19
|
-
import { ServerEdition } from "@stigmer/protos/ai/stigmer/platform/v1/server_info_pb";
|
|
20
|
-
import { deploymentModeOf, isResourceAvailable, } from "../resource-availability";
|
|
21
|
-
const MODES = ["local", "enterprise", "cloud"];
|
|
22
|
-
describe("deploymentModeOf — the one edition-to-mode converter", () => {
|
|
23
|
-
it("maps each known edition to its mode", () => {
|
|
24
|
-
expect(deploymentModeOf(ServerEdition.oss)).toBe("local");
|
|
25
|
-
expect(deploymentModeOf(ServerEdition.enterprise)).toBe("enterprise");
|
|
26
|
-
expect(deploymentModeOf(ServerEdition.cloud)).toBe("cloud");
|
|
27
|
-
});
|
|
28
|
-
it("maps unspecified to cloud — the documented safe default (nothing hidden on a broken server)", () => {
|
|
29
|
-
expect(deploymentModeOf(ServerEdition.server_edition_unspecified)).toBe("cloud");
|
|
30
|
-
});
|
|
31
|
-
it("maps an edition this SDK does not know to cloud instead of throwing — older client, newer server", () => {
|
|
32
|
-
// A future fourth edition arrives off the wire as a number the enum
|
|
33
|
-
// type does not name. The cast is the test's point.
|
|
34
|
-
expect(deploymentModeOf(99)).toBe("cloud");
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe("isResourceAvailable — a tier is a minimum edition", () => {
|
|
38
|
-
it("open_source-tier kinds are available in every mode", () => {
|
|
39
|
-
for (const mode of MODES) {
|
|
40
|
-
expect(isResourceAvailable(ApiResourceKind.agent, mode), mode).toBe(true);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
it("enterprise-tier kinds are available in enterprise and cloud, not local", () => {
|
|
44
|
-
// `invitation` is the example since `iam_policy` moved to open_source
|
|
45
|
-
// (20260913.01: the row half is served by every edition).
|
|
46
|
-
expect(isResourceAvailable(ApiResourceKind.invitation, "local")).toBe(false);
|
|
47
|
-
expect(isResourceAvailable(ApiResourceKind.invitation, "enterprise")).toBe(true);
|
|
48
|
-
// The inversion case: enterprise = 3 > cloud = 2 on the wire. A
|
|
49
|
-
// wire-number comparison fails exactly here.
|
|
50
|
-
expect(isResourceAvailable(ApiResourceKind.invitation, "cloud")).toBe(true);
|
|
51
|
-
});
|
|
52
|
-
it("iam_policy is open_source since the row half moved into open source — served everywhere", () => {
|
|
53
|
-
for (const mode of MODES) {
|
|
54
|
-
expect(isResourceAvailable(ApiResourceKind.iam_policy, mode), mode).toBe(true);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
it("cloud_only-tier kinds are available in cloud only", () => {
|
|
58
|
-
expect(isResourceAvailable(ApiResourceKind.api_resource_version, "local")).toBe(false);
|
|
59
|
-
expect(isResourceAvailable(ApiResourceKind.api_resource_version, "enterprise")).toBe(false);
|
|
60
|
-
expect(isResourceAvailable(ApiResourceKind.api_resource_version, "cloud")).toBe(true);
|
|
61
|
-
});
|
|
62
|
-
it("the kinds this entry re-tiers read as their new tier", () => {
|
|
63
|
-
// oauth_app: served by the OSS server; the cloud_only tier was drift.
|
|
64
|
-
expect(isResourceAvailable(ApiResourceKind.oauth_app, "local")).toBe(true);
|
|
65
|
-
// platform: the operator seat a self-hosting Enterprise company owns.
|
|
66
|
-
expect(isResourceAvailable(ApiResourceKind.platform, "local")).toBe(false);
|
|
67
|
-
expect(isResourceAvailable(ApiResourceKind.platform, "enterprise")).toBe(true);
|
|
68
|
-
// identity_account: open_source since the open-source server serves the
|
|
69
|
-
// domain (20260911.11 slice 5); the tier moved in the same change as
|
|
70
|
-
// the serving code, never ahead of it.
|
|
71
|
-
expect(isResourceAvailable(ApiResourceKind.identity_account, "local")).toBe(true);
|
|
72
|
-
// agent_share and channel_app: served by OSS; they never moved.
|
|
73
|
-
expect(isResourceAvailable(ApiResourceKind.agent_share, "local")).toBe(true);
|
|
74
|
-
expect(isResourceAvailable(ApiResourceKind.channel_app, "local")).toBe(true);
|
|
75
|
-
});
|
|
76
|
-
it("refuses a kind with no tier — a programming error, never silently available", () => {
|
|
77
|
-
expect(() => isResourceAvailable(ApiResourceKind.api_resource_kind_unknown, "cloud")).toThrow(/no tier/);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=resource-availability.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resource-availability.test.js","sourceRoot":"","sources":["../../src/__tests__/resource-availability.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-adapter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runner-adapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from "vitest";
|
|
2
|
-
import { createRunnerAdapter, } from "../runner-adapter";
|
|
3
|
-
function createMockHost() {
|
|
4
|
-
return {
|
|
5
|
-
addSession: vi.fn().mockResolvedValue(undefined),
|
|
6
|
-
removeSession: vi.fn().mockResolvedValue(undefined),
|
|
7
|
-
addWorkflowExecution: vi.fn().mockResolvedValue(undefined),
|
|
8
|
-
removeWorkflowExecution: vi.fn().mockResolvedValue(undefined),
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
describe("createRunnerAdapter", () => {
|
|
12
|
-
it("returns an adapter with all four lifecycle methods", () => {
|
|
13
|
-
const adapter = createRunnerAdapter(createMockHost());
|
|
14
|
-
expect(adapter.onSessionOpened).toBeInstanceOf(Function);
|
|
15
|
-
expect(adapter.onSessionClosed).toBeInstanceOf(Function);
|
|
16
|
-
expect(adapter.onWorkflowExecutionCreated).toBeInstanceOf(Function);
|
|
17
|
-
expect(adapter.onWorkflowExecutionTerminated).toBeInstanceOf(Function);
|
|
18
|
-
});
|
|
19
|
-
it("maps onSessionOpened to host.addSession with the session id", async () => {
|
|
20
|
-
const host = createMockHost();
|
|
21
|
-
const adapter = createRunnerAdapter(host);
|
|
22
|
-
await adapter.onSessionOpened("ses-123");
|
|
23
|
-
expect(host.addSession).toHaveBeenCalledTimes(1);
|
|
24
|
-
expect(host.addSession).toHaveBeenCalledWith("ses-123");
|
|
25
|
-
// The asymmetric mapping is the footgun this factory exists to prevent:
|
|
26
|
-
// closing/removing must not fire on open.
|
|
27
|
-
expect(host.removeSession).not.toHaveBeenCalled();
|
|
28
|
-
});
|
|
29
|
-
it("maps onSessionClosed to host.removeSession with the session id", async () => {
|
|
30
|
-
const host = createMockHost();
|
|
31
|
-
const adapter = createRunnerAdapter(host);
|
|
32
|
-
await adapter.onSessionClosed("ses-123");
|
|
33
|
-
expect(host.removeSession).toHaveBeenCalledTimes(1);
|
|
34
|
-
expect(host.removeSession).toHaveBeenCalledWith("ses-123");
|
|
35
|
-
expect(host.addSession).not.toHaveBeenCalled();
|
|
36
|
-
});
|
|
37
|
-
it("maps onWorkflowExecutionCreated to host.addWorkflowExecution with the execution id", async () => {
|
|
38
|
-
const host = createMockHost();
|
|
39
|
-
const adapter = createRunnerAdapter(host);
|
|
40
|
-
await adapter.onWorkflowExecutionCreated("wfexec-456");
|
|
41
|
-
expect(host.addWorkflowExecution).toHaveBeenCalledTimes(1);
|
|
42
|
-
expect(host.addWorkflowExecution).toHaveBeenCalledWith("wfexec-456");
|
|
43
|
-
expect(host.removeWorkflowExecution).not.toHaveBeenCalled();
|
|
44
|
-
});
|
|
45
|
-
it("maps onWorkflowExecutionTerminated to host.removeWorkflowExecution with the execution id", async () => {
|
|
46
|
-
const host = createMockHost();
|
|
47
|
-
const adapter = createRunnerAdapter(host);
|
|
48
|
-
await adapter.onWorkflowExecutionTerminated("wfexec-456");
|
|
49
|
-
expect(host.removeWorkflowExecution).toHaveBeenCalledTimes(1);
|
|
50
|
-
expect(host.removeWorkflowExecution).toHaveBeenCalledWith("wfexec-456");
|
|
51
|
-
expect(host.addWorkflowExecution).not.toHaveBeenCalled();
|
|
52
|
-
});
|
|
53
|
-
it("resolves to undefined regardless of the host's return value", async () => {
|
|
54
|
-
// The host's add methods return a task queue string; the adapter contract
|
|
55
|
-
// is Promise<void>, so the value must be swallowed.
|
|
56
|
-
const host = createMockHost();
|
|
57
|
-
host.addSession.mockResolvedValue("session:ses-123");
|
|
58
|
-
host.addWorkflowExecution.mockResolvedValue("wfexec:wfexec-456");
|
|
59
|
-
const adapter = createRunnerAdapter(host);
|
|
60
|
-
await expect(adapter.onSessionOpened("ses-123")).resolves.toBeUndefined();
|
|
61
|
-
await expect(adapter.onWorkflowExecutionCreated("wfexec-456")).resolves.toBeUndefined();
|
|
62
|
-
});
|
|
63
|
-
it("awaits the host: it does not resolve before the host settles", async () => {
|
|
64
|
-
let release;
|
|
65
|
-
const gate = new Promise((resolve) => {
|
|
66
|
-
release = resolve;
|
|
67
|
-
});
|
|
68
|
-
const host = createMockHost();
|
|
69
|
-
host.addSession.mockReturnValue(gate);
|
|
70
|
-
const adapter = createRunnerAdapter(host);
|
|
71
|
-
let settled = false;
|
|
72
|
-
const pending = adapter.onSessionOpened("ses-123").then(() => {
|
|
73
|
-
settled = true;
|
|
74
|
-
});
|
|
75
|
-
await Promise.resolve();
|
|
76
|
-
expect(settled).toBe(false);
|
|
77
|
-
release();
|
|
78
|
-
await pending;
|
|
79
|
-
expect(settled).toBe(true);
|
|
80
|
-
});
|
|
81
|
-
it("propagates a host rejection", async () => {
|
|
82
|
-
const host = createMockHost();
|
|
83
|
-
host.removeSession.mockRejectedValue(new Error("worker teardown failed"));
|
|
84
|
-
const adapter = createRunnerAdapter(host);
|
|
85
|
-
await expect(adapter.onSessionClosed("ses-123")).rejects.toThrow("worker teardown failed");
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
//# sourceMappingURL=runner-adapter.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-adapter.test.js","sourceRoot":"","sources":["../../src/__tests__/runner-adapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/session.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for the hand-written session utilities: the pinned
|
|
3
|
-
* session-context metadata key and the typed-context merge semantics.
|
|
4
|
-
*/
|
|
5
|
-
import { describe, it, expect } from "vitest";
|
|
6
|
-
import { SESSION_CONTEXT_METADATA_KEY, mergeSessionContext, } from "../session.js";
|
|
7
|
-
describe("SESSION_CONTEXT_METADATA_KEY", () => {
|
|
8
|
-
it("is pinned verbatim to the runner's constant (mirror guard)", () => {
|
|
9
|
-
// Pinned to SESSION_CONTEXT_METADATA_KEY in
|
|
10
|
-
// backend/services/runner/src/shared/session-context.ts. Changing
|
|
11
|
-
// either side alone silently blinds the agent to the embedder's
|
|
12
|
-
// context; change BOTH together.
|
|
13
|
-
expect(SESSION_CONTEXT_METADATA_KEY).toBe("stigmer.ai/session-context");
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
describe("mergeSessionContext", () => {
|
|
17
|
-
it("folds the context into the metadata map under the reserved key", () => {
|
|
18
|
-
expect(mergeSessionContext({ "acme/tenant": "t-1" }, "Role: admin")).toEqual({
|
|
19
|
-
"acme/tenant": "t-1",
|
|
20
|
-
[SESSION_CONTEXT_METADATA_KEY]: "Role: admin",
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
it("creates the map when metadata is undefined", () => {
|
|
24
|
-
expect(mergeSessionContext(undefined, "Role: admin")).toEqual({
|
|
25
|
-
[SESSION_CONTEXT_METADATA_KEY]: "Role: admin",
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
it("lets the typed field win over a raw entry under the reserved key", () => {
|
|
29
|
-
expect(mergeSessionContext({ [SESSION_CONTEXT_METADATA_KEY]: "stale raw value" }, "typed value")).toEqual({ [SESSION_CONTEXT_METADATA_KEY]: "typed value" });
|
|
30
|
-
});
|
|
31
|
-
it("returns metadata untouched when the context is undefined", () => {
|
|
32
|
-
const metadata = { "acme/tenant": "t-1" };
|
|
33
|
-
expect(mergeSessionContext(metadata, undefined)).toBe(metadata);
|
|
34
|
-
});
|
|
35
|
-
it("returns undefined when both inputs are absent — callers never send an empty map", () => {
|
|
36
|
-
expect(mergeSessionContext(undefined, undefined)).toBeUndefined();
|
|
37
|
-
expect(mergeSessionContext(undefined, " ")).toBeUndefined();
|
|
38
|
-
});
|
|
39
|
-
it("trims the context before storing (blank means absent)", () => {
|
|
40
|
-
expect(mergeSessionContext(undefined, " Role: admin ")).toEqual({
|
|
41
|
-
[SESSION_CONTEXT_METADATA_KEY]: "Role: admin",
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
it("does not mutate the caller's metadata map", () => {
|
|
45
|
-
const metadata = { "acme/tenant": "t-1" };
|
|
46
|
-
mergeSessionContext(metadata, "Role: admin");
|
|
47
|
-
expect(metadata).toEqual({ "acme/tenant": "t-1" });
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=session.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.test.js","sourceRoot":"","sources":["../../src/__tests__/session.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,4CAA4C;QAC5C,kEAAkE;QAClE,gEAAgE;QAChE,iCAAiC;QACjC,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3E,aAAa,EAAE,KAAK;YACpB,CAAC,4BAA4B,CAAC,EAAE,aAAa;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,CAAC,4BAA4B,CAAC,EAAE,aAAa;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CACJ,mBAAmB,CACjB,EAAE,CAAC,4BAA4B,CAAC,EAAE,iBAAiB,EAAE,EACrD,aAAa,CACd,CACF,CAAC,OAAO,CAAC,EAAE,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,QAAQ,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAC1C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAClE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,CAAC,4BAA4B,CAAC,EAAE,aAAa;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAC1C,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sharing.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sharing.test.ts"],"names":[],"mappings":""}
|