@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-input-roundtrip.test.js","sourceRoot":"","sources":["../../src/__tests__/update-input-roundtrip.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-input.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/update-input.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { create, toJson } from "@bufbuild/protobuf";
|
|
3
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
4
|
-
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
5
|
-
import { OrganizationSchema, } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/api_pb";
|
|
6
|
-
import { OrganizationSpecSchema } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/spec_pb";
|
|
7
|
-
import { ManagementMode } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/enum_pb";
|
|
8
|
-
import { IdentityAccountSchema, } from "@stigmer/protos/ai/stigmer/iam/identityaccount/v1/api_pb";
|
|
9
|
-
import { IdentityAccountSpecSchema } from "@stigmer/protos/ai/stigmer/iam/identityaccount/v1/spec_pb";
|
|
10
|
-
import { IdentityAccountProvisioningMode } from "@stigmer/protos/ai/stigmer/iam/identityaccount/v1/enum_pb";
|
|
11
|
-
import { buildOrganizationProto, toOrganizationUpdateInput, } from "../gen/organization";
|
|
12
|
-
import { buildIdentityAccountProto, toIdentityAccountUpdateInput, } from "../gen/identityaccount";
|
|
13
|
-
/**
|
|
14
|
-
* Update RPCs are full-spec replacements, so a complete mapper must
|
|
15
|
-
* round-trip EVERY mutable field of a loaded resource through the generated
|
|
16
|
-
* builder without loss. These tests pin that contract: fully-populated
|
|
17
|
-
* resource → mapper → builder → spec (as JSON, defaults omitted) deep-equals
|
|
18
|
-
* the original. If a mapper drops a field, the wipe-bug class is back.
|
|
19
|
-
*/
|
|
20
|
-
function fullOrganization() {
|
|
21
|
-
return create(OrganizationSchema, {
|
|
22
|
-
apiVersion: "tenancy.stigmer.ai/v1",
|
|
23
|
-
kind: "Organization",
|
|
24
|
-
metadata: {
|
|
25
|
-
id: "acme",
|
|
26
|
-
name: "Acme Corp",
|
|
27
|
-
slug: "acme",
|
|
28
|
-
org: "acme",
|
|
29
|
-
labels: { tier: "gold" },
|
|
30
|
-
visibility: ApiResourceVisibility.visibility_private,
|
|
31
|
-
},
|
|
32
|
-
spec: {
|
|
33
|
-
description: "We make everything.",
|
|
34
|
-
logoUrl: "https://acme.example/logo.png",
|
|
35
|
-
managementMode: ManagementMode.self_managed,
|
|
36
|
-
identityProviderRef: {
|
|
37
|
-
org: "acme",
|
|
38
|
-
slug: "acme-okta",
|
|
39
|
-
kind: ApiResourceKind.identity_provider,
|
|
40
|
-
},
|
|
41
|
-
externalOrgId: "ext-org-1",
|
|
42
|
-
isPersonal: true,
|
|
43
|
-
preferences: { standingContext: "We deploy to us-east-1." },
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
function fullIdentityAccount() {
|
|
48
|
-
return create(IdentityAccountSchema, {
|
|
49
|
-
apiVersion: "iam.stigmer.ai/v1",
|
|
50
|
-
kind: "IdentityAccount",
|
|
51
|
-
metadata: {
|
|
52
|
-
id: "ia-123",
|
|
53
|
-
name: "Ada Lovelace",
|
|
54
|
-
slug: "ada-lovelace",
|
|
55
|
-
org: "acme",
|
|
56
|
-
labels: { team: "platform" },
|
|
57
|
-
visibility: ApiResourceVisibility.visibility_private,
|
|
58
|
-
},
|
|
59
|
-
spec: {
|
|
60
|
-
idpId: "auth0|abc123",
|
|
61
|
-
email: "ada@acme.example",
|
|
62
|
-
firstName: "Ada",
|
|
63
|
-
lastName: "Lovelace",
|
|
64
|
-
pictureUrl: "https://acme.example/ada.png",
|
|
65
|
-
isMachineAccount: true,
|
|
66
|
-
provisioningMode: IdentityAccountProvisioningMode.federated,
|
|
67
|
-
identityProviderRef: { org: "acme", slug: "acme-okta" },
|
|
68
|
-
preferences: {
|
|
69
|
-
standingContext: "Keep answers terse.",
|
|
70
|
-
defaultHarness: "cursor",
|
|
71
|
-
defaultNativeModel: "claude-sonnet-4.6",
|
|
72
|
-
defaultCursorModel: "composer-2.5",
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
describe("toOrganizationUpdateInput", () => {
|
|
78
|
-
it("round-trips a fully-populated organization spec through the builder", () => {
|
|
79
|
-
const org = fullOrganization();
|
|
80
|
-
const built = buildOrganizationProto(toOrganizationUpdateInput(org));
|
|
81
|
-
expect(toJson(OrganizationSpecSchema, built.spec)).toEqual(toJson(OrganizationSpecSchema, org.spec));
|
|
82
|
-
expect(built.metadata?.name).toBe("Acme Corp");
|
|
83
|
-
expect(built.metadata?.slug).toBe("acme");
|
|
84
|
-
expect(built.metadata?.org).toBe("acme");
|
|
85
|
-
expect(built.metadata?.labels).toEqual({ tier: "gold" });
|
|
86
|
-
expect(built.metadata?.visibility).toBe(ApiResourceVisibility.visibility_private);
|
|
87
|
-
});
|
|
88
|
-
it("preserves preferences when a caller overrides only profile fields (the wipe-bug class)", () => {
|
|
89
|
-
const org = fullOrganization();
|
|
90
|
-
const built = buildOrganizationProto({
|
|
91
|
-
...toOrganizationUpdateInput(org),
|
|
92
|
-
description: "New description",
|
|
93
|
-
});
|
|
94
|
-
expect(built.spec?.preferences?.standingContext).toBe("We deploy to us-east-1.");
|
|
95
|
-
expect(built.spec?.description).toBe("New description");
|
|
96
|
-
expect(built.spec?.logoUrl).toBe("https://acme.example/logo.png");
|
|
97
|
-
});
|
|
98
|
-
it("maps an empty spec without inventing values", () => {
|
|
99
|
-
const org = create(OrganizationSchema, {
|
|
100
|
-
metadata: { name: "Bare", slug: "bare", org: "bare" },
|
|
101
|
-
spec: {},
|
|
102
|
-
});
|
|
103
|
-
const built = buildOrganizationProto(toOrganizationUpdateInput(org));
|
|
104
|
-
expect(toJson(OrganizationSpecSchema, built.spec)).toEqual({});
|
|
105
|
-
});
|
|
106
|
-
it("falls back to the slug when metadata.org is empty", () => {
|
|
107
|
-
const org = create(OrganizationSchema, {
|
|
108
|
-
metadata: { name: "Bare", slug: "bare" },
|
|
109
|
-
});
|
|
110
|
-
expect(toOrganizationUpdateInput(org).org).toBe("bare");
|
|
111
|
-
});
|
|
112
|
-
it("carries metadata.id for exact update addressing", () => {
|
|
113
|
-
const built = buildOrganizationProto(toOrganizationUpdateInput(fullOrganization()));
|
|
114
|
-
expect(built.metadata?.id).toBe("acme");
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
describe("toIdentityAccountUpdateInput", () => {
|
|
118
|
-
it("round-trips a fully-populated identity account spec through the builder", () => {
|
|
119
|
-
const account = fullIdentityAccount();
|
|
120
|
-
const built = buildIdentityAccountProto(toIdentityAccountUpdateInput(account));
|
|
121
|
-
expect(toJson(IdentityAccountSpecSchema, built.spec)).toEqual(toJson(IdentityAccountSpecSchema, account.spec));
|
|
122
|
-
expect(built.metadata?.name).toBe("Ada Lovelace");
|
|
123
|
-
expect(built.metadata?.labels).toEqual({ team: "platform" });
|
|
124
|
-
});
|
|
125
|
-
it("carries org and slug — the update pipeline's fallback address", () => {
|
|
126
|
-
const input = toIdentityAccountUpdateInput(fullIdentityAccount());
|
|
127
|
-
expect(input.org).toBe("acme");
|
|
128
|
-
expect(input.slug).toBe("ada-lovelace");
|
|
129
|
-
});
|
|
130
|
-
it("carries metadata.id — the ONLY address that works for a real (org-less) account", () => {
|
|
131
|
-
// Identity accounts are platform-scoped: metadata.org is never set in
|
|
132
|
-
// production, so the pipeline's org+slug fallback structurally cannot
|
|
133
|
-
// match one. Without the id, this update is NOT_FOUND by construction.
|
|
134
|
-
const account = create(IdentityAccountSchema, {
|
|
135
|
-
metadata: {
|
|
136
|
-
id: "ida_01JEXAMPLE",
|
|
137
|
-
name: "ada@acme.example",
|
|
138
|
-
slug: "ada-acme-example",
|
|
139
|
-
},
|
|
140
|
-
spec: { idpId: "auth0|abc123" },
|
|
141
|
-
});
|
|
142
|
-
const built = buildIdentityAccountProto(toIdentityAccountUpdateInput(account));
|
|
143
|
-
expect(built.metadata?.id).toBe("ida_01JEXAMPLE");
|
|
144
|
-
expect(built.metadata?.slug).toBe("ada-acme-example");
|
|
145
|
-
});
|
|
146
|
-
it("preserves the rest of the spec when a caller overrides only preferences", () => {
|
|
147
|
-
const account = fullIdentityAccount();
|
|
148
|
-
const mapped = toIdentityAccountUpdateInput(account);
|
|
149
|
-
const built = buildIdentityAccountProto({
|
|
150
|
-
...mapped,
|
|
151
|
-
preferences: { ...mapped.preferences, standingContext: "Prefer bullet points." },
|
|
152
|
-
});
|
|
153
|
-
expect(built.spec?.preferences?.standingContext).toBe("Prefer bullet points.");
|
|
154
|
-
expect(built.spec?.email).toBe("ada@acme.example");
|
|
155
|
-
expect(built.spec?.idpId).toBe("auth0|abc123");
|
|
156
|
-
expect(built.spec?.provisioningMode).toBe(IdentityAccountProvisioningMode.federated);
|
|
157
|
-
});
|
|
158
|
-
it("preserves structured defaults when only standing context is edited (nested wipe-bug class)", () => {
|
|
159
|
-
const account = fullIdentityAccount();
|
|
160
|
-
const mapped = toIdentityAccountUpdateInput(account);
|
|
161
|
-
// The correct editor pattern for a nested message: spread the mapper's
|
|
162
|
-
// COMPLETE preferences and override only the edited field. A bare
|
|
163
|
-
// `preferences: { standingContext }` literal would wipe the structured
|
|
164
|
-
// defaults — the session-4 wipe bug recurring one level down.
|
|
165
|
-
const built = buildIdentityAccountProto({
|
|
166
|
-
...mapped,
|
|
167
|
-
preferences: { ...mapped.preferences, standingContext: "Terser still." },
|
|
168
|
-
});
|
|
169
|
-
expect(built.spec?.preferences?.standingContext).toBe("Terser still.");
|
|
170
|
-
expect(built.spec?.preferences?.defaultHarness).toBe("cursor");
|
|
171
|
-
expect(built.spec?.preferences?.defaultNativeModel).toBe("claude-sonnet-4.6");
|
|
172
|
-
expect(built.spec?.preferences?.defaultCursorModel).toBe("composer-2.5");
|
|
173
|
-
});
|
|
174
|
-
it("clears standing context to wire-absent when the text is emptied", () => {
|
|
175
|
-
const account = fullIdentityAccount();
|
|
176
|
-
const mapped = toIdentityAccountUpdateInput(account);
|
|
177
|
-
const built = buildIdentityAccountProto({
|
|
178
|
-
...mapped,
|
|
179
|
-
preferences: { ...mapped.preferences, standingContext: "" },
|
|
180
|
-
});
|
|
181
|
-
// Proto3 empty string is the field default — wire-identical to absent,
|
|
182
|
-
// which the server compose steps treat as "no preference declared".
|
|
183
|
-
expect(built.spec?.preferences?.standingContext ?? "").toBe("");
|
|
184
|
-
// Clearing one field never disturbs its siblings.
|
|
185
|
-
expect(built.spec?.preferences?.defaultHarness).toBe("cursor");
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
//# sourceMappingURL=update-input.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-input.test.js","sourceRoot":"","sources":["../../src/__tests__/update-input.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"approval-provenance.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/approval-provenance.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { ApprovalPolicySource, describeApprovalPolicySource, isInformativePolicySource, } from "../approval-provenance";
|
|
3
|
-
describe("describeApprovalPolicySource", () => {
|
|
4
|
-
it("maps each known source to a stable human phrase", () => {
|
|
5
|
-
expect(describeApprovalPolicySource(ApprovalPolicySource.CLASSIFIER_DEFAULT)).toBe("required by the tool's default policy");
|
|
6
|
-
expect(describeApprovalPolicySource(ApprovalPolicySource.BUILTIN_CATEGORY)).toBe("required by built-in tool policy");
|
|
7
|
-
expect(describeApprovalPolicySource(ApprovalPolicySource.AGENT_OVERRIDE)).toBe("required by agent override");
|
|
8
|
-
expect(describeApprovalPolicySource(ApprovalPolicySource.ANNOTATION_DESTRUCTIVE_TIGHTEN)).toBe("required: marked destructive by the server");
|
|
9
|
-
});
|
|
10
|
-
it("returns null for UNSPECIFIED (legacy / ungated)", () => {
|
|
11
|
-
expect(describeApprovalPolicySource(ApprovalPolicySource.UNSPECIFIED)).toBeNull();
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
describe("isInformativePolicySource", () => {
|
|
15
|
-
it("suppresses the everyday default gating reasons", () => {
|
|
16
|
-
// These add nothing beyond "this tool needs approval" — noise at the gate.
|
|
17
|
-
expect(isInformativePolicySource(ApprovalPolicySource.CLASSIFIER_DEFAULT)).toBe(false);
|
|
18
|
-
expect(isInformativePolicySource(ApprovalPolicySource.BUILTIN_CATEGORY)).toBe(false);
|
|
19
|
-
expect(isInformativePolicySource(ApprovalPolicySource.UNSPECIFIED)).toBe(false);
|
|
20
|
-
});
|
|
21
|
-
it("surfaces reasons that change the user's understanding of the gate", () => {
|
|
22
|
-
expect(isInformativePolicySource(ApprovalPolicySource.PINNED_OVERRIDE)).toBe(true);
|
|
23
|
-
expect(isInformativePolicySource(ApprovalPolicySource.AGENT_OVERRIDE)).toBe(true);
|
|
24
|
-
expect(isInformativePolicySource(ApprovalPolicySource.ANNOTATION_DESTRUCTIVE_TIGHTEN)).toBe(true);
|
|
25
|
-
expect(isInformativePolicySource(ApprovalPolicySource.AUTO_APPROVE_ALL)).toBe(true);
|
|
26
|
-
expect(isInformativePolicySource(ApprovalPolicySource.APPROVAL_LEASE)).toBe(true);
|
|
27
|
-
});
|
|
28
|
-
it("only surfaces a reason that also has a phrase to show", () => {
|
|
29
|
-
// The card renders `isInformative(source) && describe(source) != null`; the
|
|
30
|
-
// two must never disagree for a surfaced source.
|
|
31
|
-
for (const source of [
|
|
32
|
-
ApprovalPolicySource.PINNED_OVERRIDE,
|
|
33
|
-
ApprovalPolicySource.AGENT_OVERRIDE,
|
|
34
|
-
ApprovalPolicySource.ANNOTATION_DESTRUCTIVE_TIGHTEN,
|
|
35
|
-
ApprovalPolicySource.AUTO_APPROVE_ALL,
|
|
36
|
-
ApprovalPolicySource.APPROVAL_LEASE,
|
|
37
|
-
]) {
|
|
38
|
-
expect(describeApprovalPolicySource(source)).not.toBeNull();
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
//# sourceMappingURL=approval-provenance.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"approval-provenance.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/approval-provenance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAChF,uCAAuC,CACxC,CAAC;QACF,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAC9E,kCAAkC,CACnC,CAAC;QACF,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAC5E,4BAA4B,CAC7B,CAAC;QACF,MAAM,CACJ,4BAA4B,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAClF,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,2EAA2E;QAC3E,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,MAAM,CACJ,yBAAyB,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAC/E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,MAAM,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,4EAA4E;QAC5E,iDAAiD;QACjD,KAAK,MAAM,MAAM,IAAI;YACnB,oBAAoB,CAAC,eAAe;YACpC,oBAAoB,CAAC,cAAc;YACnC,oBAAoB,CAAC,8BAA8B;YACnD,oBAAoB,CAAC,gBAAgB;YACrC,oBAAoB,CAAC,cAAc;SACpC,EAAE,CAAC;YACF,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-review-fold.corpus.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.corpus.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// Cross-edition parity lock for the file-review projection.
|
|
2
|
-
//
|
|
3
|
-
// The Go (`FileChangeSetProjector` / project.go) and Java (`FileChangeSetProjector`)
|
|
4
|
-
// projectors replay the shared corpus at apis/testdata/hitl/file-review/*.json.
|
|
5
|
-
// This test replays the SAME corpus against the TypeScript fold, so a drift
|
|
6
|
-
// between the SDK and either backend fails here rather than shipping.
|
|
7
|
-
//
|
|
8
|
-
// The corpus `expected` is the server (actionable) projection, which is empty
|
|
9
|
-
// for a terminal execution. The SDK's display fold intentionally has no terminal
|
|
10
|
-
// gate, so to reproduce the server contract exactly this test applies the phase
|
|
11
|
-
// gate the accessor's callers apply: isTerminalPhase(phase) ? [] : fold(stream).
|
|
12
|
-
// That both proves parity for non-terminal vectors AND pins the terminal-empty
|
|
13
|
-
// vector — the one place the SDK deliberately differs is covered by the accessor
|
|
14
|
-
// test in file-review-fold.test.ts, not here.
|
|
15
|
-
import { readFileSync, readdirSync } from "node:fs";
|
|
16
|
-
import { fileURLToPath } from "node:url";
|
|
17
|
-
import { dirname, resolve } from "node:path";
|
|
18
|
-
import { describe, it, expect } from "vitest";
|
|
19
|
-
import { create, fromJson } from "@bufbuild/protobuf";
|
|
20
|
-
import { FileReviewEventSchema, FileReviewEventStreamSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
21
|
-
import { ExecutionPhase, FileChangeSetStatus, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
22
|
-
import { foldFileReviewEventStream } from "../file-review-fold";
|
|
23
|
-
import { isTerminalPhase } from "../execution-phases";
|
|
24
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
25
|
-
// sdk/typescript/src/execution/__tests__ -> repo root is five levels up.
|
|
26
|
-
const corpusDir = resolve(here, "../../../../../apis/testdata/hitl/file-review");
|
|
27
|
-
function statusFromName(name) {
|
|
28
|
-
const key = name.replace(/^FILE_CHANGE_SET_STATUS_/, "");
|
|
29
|
-
const value = FileChangeSetStatus[key];
|
|
30
|
-
if (typeof value !== "number") {
|
|
31
|
-
throw new Error(`unknown FileChangeSetStatus in corpus: ${name}`);
|
|
32
|
-
}
|
|
33
|
-
return value;
|
|
34
|
-
}
|
|
35
|
-
function phaseFromName(name) {
|
|
36
|
-
const value = ExecutionPhase[name];
|
|
37
|
-
if (typeof value !== "number") {
|
|
38
|
-
throw new Error(`unknown ExecutionPhase in corpus: ${name}`);
|
|
39
|
-
}
|
|
40
|
-
return value;
|
|
41
|
-
}
|
|
42
|
-
const vectorFiles = readdirSync(corpusDir).filter((f) => f.endsWith(".json") && f !== "schema.json");
|
|
43
|
-
describe("file-review fold — cross-edition corpus parity", () => {
|
|
44
|
-
it("finds the corpus vectors", () => {
|
|
45
|
-
expect(vectorFiles.length).toBeGreaterThan(0);
|
|
46
|
-
});
|
|
47
|
-
for (const file of vectorFiles) {
|
|
48
|
-
const vector = JSON.parse(readFileSync(resolve(corpusDir, file), "utf8"));
|
|
49
|
-
it(`${file}: ${vector.name}`, () => {
|
|
50
|
-
// Decode each event with the generated schema so a malformed fixture fails
|
|
51
|
-
// loudly (matching the backend corpus drivers), then build the stream.
|
|
52
|
-
const events = vector.events.map((ev) => fromJson(FileReviewEventSchema, ev));
|
|
53
|
-
const stream = create(FileReviewEventStreamSchema, {
|
|
54
|
-
executionId: vector.execution_id,
|
|
55
|
-
events,
|
|
56
|
-
});
|
|
57
|
-
const phase = phaseFromName(vector.phase);
|
|
58
|
-
// Reproduce the server's actionable projection: phase-gated fold.
|
|
59
|
-
const projected = isTerminalPhase(phase)
|
|
60
|
-
? []
|
|
61
|
-
: foldFileReviewEventStream(stream);
|
|
62
|
-
const actual = projected.map((set) => ({
|
|
63
|
-
id: set.id,
|
|
64
|
-
status: set.status,
|
|
65
|
-
change_ids: set.changes.map((c) => c.id),
|
|
66
|
-
decision_count: set.decisions.length,
|
|
67
|
-
aggregate_digest: set.aggregateDigest,
|
|
68
|
-
has_approved_snapshot: set.approvedSnapshot !== undefined,
|
|
69
|
-
}));
|
|
70
|
-
const expected = vector.expected.map((e) => ({
|
|
71
|
-
id: e.id,
|
|
72
|
-
status: statusFromName(e.status),
|
|
73
|
-
change_ids: e.change_ids ?? [],
|
|
74
|
-
decision_count: e.decision_count ?? 0,
|
|
75
|
-
aggregate_digest: e.aggregate_digest ?? "",
|
|
76
|
-
has_approved_snapshot: e.has_approved_snapshot ?? false,
|
|
77
|
-
}));
|
|
78
|
-
expect(actual).toEqual(expected);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
//# sourceMappingURL=file-review-fold.corpus.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-review-fold.corpus.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.corpus.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-review-fold.test.d.ts","sourceRoot":"","sources":["../../../src/execution/__tests__/file-review-fold.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
// Unit tests for the file-review fold and its display read-seam. The
|
|
2
|
-
// cross-edition parity with the Go/Java projectors is locked separately by
|
|
3
|
-
// file-review-fold.corpus.test.ts; these cover the TS-specific edges and the
|
|
4
|
-
// deliberate terminal divergence of displayFileChangeSets.
|
|
5
|
-
import { describe, it, expect } from "vitest";
|
|
6
|
-
import { create } from "@bufbuild/protobuf";
|
|
7
|
-
import { FileChangeSetSchema, CapturedFileChangeSchema, FileDecisionSchema, FileReviewEventSchema, FileReviewEventStreamSchema, FileReviewBaselineCapturedSchema, FileReviewCandidateCapturedSchema, FileReviewReconciledSchema, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
8
|
-
import { AgentExecutionStatusSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
9
|
-
import { FileChangeKind, FileChangeSetStatus, FileDecisionAction, FileDecisionScope, FileReviewEventType, } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
10
|
-
import { displayFileChangeSets, foldFileReviewEventStream, } from "../file-review-fold";
|
|
11
|
-
// ---------------------------------------------------------------------------
|
|
12
|
-
// Event builders (keep the tests readable)
|
|
13
|
-
// ---------------------------------------------------------------------------
|
|
14
|
-
function change(id, path = `src/${id}.ts`) {
|
|
15
|
-
return create(CapturedFileChangeSchema, {
|
|
16
|
-
id,
|
|
17
|
-
pathAfter: path,
|
|
18
|
-
kind: FileChangeKind.MODIFY,
|
|
19
|
-
diffComplete: true,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
function baseline(changeSetId) {
|
|
23
|
-
return create(FileReviewEventSchema, {
|
|
24
|
-
changeSetId,
|
|
25
|
-
eventType: FileReviewEventType.BASELINE_CAPTURED,
|
|
26
|
-
payload: {
|
|
27
|
-
case: "baselineCaptured",
|
|
28
|
-
value: create(FileReviewBaselineCapturedSchema, {
|
|
29
|
-
changeSetId,
|
|
30
|
-
turnId: "t1",
|
|
31
|
-
harnessId: "deep-agent",
|
|
32
|
-
}),
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
function candidate(changeSetId, changes, agg = "agg") {
|
|
37
|
-
return create(FileReviewEventSchema, {
|
|
38
|
-
changeSetId,
|
|
39
|
-
eventType: FileReviewEventType.CANDIDATE_CAPTURED,
|
|
40
|
-
payload: {
|
|
41
|
-
case: "candidateCaptured",
|
|
42
|
-
value: create(FileReviewCandidateCapturedSchema, {
|
|
43
|
-
changeSetId,
|
|
44
|
-
changes,
|
|
45
|
-
aggregateDigest: agg,
|
|
46
|
-
}),
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
function fileDecision(changeSetId, fileChangeId, action = FileDecisionAction.APPROVE) {
|
|
51
|
-
return create(FileReviewEventSchema, {
|
|
52
|
-
changeSetId,
|
|
53
|
-
eventType: FileReviewEventType.FILE_DECIDED,
|
|
54
|
-
payload: {
|
|
55
|
-
case: "fileDecided",
|
|
56
|
-
value: create(FileDecisionSchema, {
|
|
57
|
-
changeSetId,
|
|
58
|
-
fileChangeId,
|
|
59
|
-
scope: FileDecisionScope.FILE,
|
|
60
|
-
action,
|
|
61
|
-
}),
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
function changeSetDecision(changeSetId) {
|
|
66
|
-
return create(FileReviewEventSchema, {
|
|
67
|
-
changeSetId,
|
|
68
|
-
eventType: FileReviewEventType.FILE_DECIDED,
|
|
69
|
-
payload: {
|
|
70
|
-
case: "fileDecided",
|
|
71
|
-
value: create(FileDecisionSchema, {
|
|
72
|
-
changeSetId,
|
|
73
|
-
scope: FileDecisionScope.CHANGE_SET,
|
|
74
|
-
action: FileDecisionAction.APPROVE,
|
|
75
|
-
}),
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
function reconciled(changeSetId) {
|
|
80
|
-
return create(FileReviewEventSchema, {
|
|
81
|
-
changeSetId,
|
|
82
|
-
eventType: FileReviewEventType.RECONCILED,
|
|
83
|
-
payload: {
|
|
84
|
-
case: "reconciled",
|
|
85
|
-
value: create(FileReviewReconciledSchema, { changeSetId }),
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function failed(changeSetId) {
|
|
90
|
-
return create(FileReviewEventSchema, {
|
|
91
|
-
changeSetId,
|
|
92
|
-
eventType: FileReviewEventType.FAILED,
|
|
93
|
-
payload: { case: undefined },
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
function stream(...events) {
|
|
97
|
-
return create(FileReviewEventStreamSchema, { executionId: "aex_1", events });
|
|
98
|
-
}
|
|
99
|
-
// ---------------------------------------------------------------------------
|
|
100
|
-
// foldFileReviewEventStream
|
|
101
|
-
// ---------------------------------------------------------------------------
|
|
102
|
-
describe("foldFileReviewEventStream", () => {
|
|
103
|
-
it("returns [] for undefined / empty streams", () => {
|
|
104
|
-
expect(foldFileReviewEventStream(undefined)).toEqual([]);
|
|
105
|
-
expect(foldFileReviewEventStream(stream())).toEqual([]);
|
|
106
|
-
});
|
|
107
|
-
it("opens a set as CAPTURING on baseline, before any candidate", () => {
|
|
108
|
-
const [set] = foldFileReviewEventStream(stream(baseline("cs1")));
|
|
109
|
-
expect(set.status).toBe(FileChangeSetStatus.CAPTURING);
|
|
110
|
-
expect(set.turnId).toBe("t1");
|
|
111
|
-
expect(set.harnessId).toBe("deep-agent");
|
|
112
|
-
expect(set.changes).toHaveLength(0);
|
|
113
|
-
});
|
|
114
|
-
it("moves to AWAITING_REVIEW once a candidate carries changes", () => {
|
|
115
|
-
const [set] = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1")], "agg1")));
|
|
116
|
-
expect(set.status).toBe(FileChangeSetStatus.AWAITING_REVIEW);
|
|
117
|
-
expect(set.changes.map((c) => c.id)).toEqual(["fc1"]);
|
|
118
|
-
expect(set.aggregateDigest).toBe("agg1");
|
|
119
|
-
});
|
|
120
|
-
it("replaces the change list wholesale on a later candidate", () => {
|
|
121
|
-
const [set] = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), candidate("cs1", [change("fc3")])));
|
|
122
|
-
expect(set.changes.map((c) => c.id)).toEqual(["fc3"]);
|
|
123
|
-
});
|
|
124
|
-
it("marks DECIDED only when every file has a verdict", () => {
|
|
125
|
-
const partial = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), fileDecision("cs1", "fc1")))[0];
|
|
126
|
-
expect(partial.status).toBe(FileChangeSetStatus.AWAITING_REVIEW);
|
|
127
|
-
expect(partial.decisions).toHaveLength(1);
|
|
128
|
-
const full = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), fileDecision("cs1", "fc1"), fileDecision("cs1", "fc2")))[0];
|
|
129
|
-
expect(full.status).toBe(FileChangeSetStatus.DECIDED);
|
|
130
|
-
});
|
|
131
|
-
it("treats a CHANGE_SET decision as covering every file", () => {
|
|
132
|
-
const [set] = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1"), change("fc2")]), changeSetDecision("cs1")));
|
|
133
|
-
expect(set.status).toBe(FileChangeSetStatus.DECIDED);
|
|
134
|
-
});
|
|
135
|
-
it("keeps terminal RECONCILED/FAILED sticky against a later decision", () => {
|
|
136
|
-
const reconciledSet = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1")]), reconciled("cs1"), fileDecision("cs1", "fc1")))[0];
|
|
137
|
-
expect(reconciledSet.status).toBe(FileChangeSetStatus.RECONCILED);
|
|
138
|
-
const failedSet = foldFileReviewEventStream(stream(baseline("cs1"), candidate("cs1", [change("fc1")]), failed("cs1")))[0];
|
|
139
|
-
expect(failedSet.status).toBe(FileChangeSetStatus.FAILED);
|
|
140
|
-
});
|
|
141
|
-
it("groups multiple change sets in first-seen order", () => {
|
|
142
|
-
const sets = foldFileReviewEventStream(stream(baseline("cs2"), candidate("cs2", [change("fc-a")]), baseline("cs1"), candidate("cs1", [change("fc-b")])));
|
|
143
|
-
expect(sets.map((s) => s.id)).toEqual(["cs2", "cs1"]);
|
|
144
|
-
});
|
|
145
|
-
it("skips events with no change_set_id", () => {
|
|
146
|
-
const orphan = create(FileReviewEventSchema, {
|
|
147
|
-
changeSetId: "",
|
|
148
|
-
eventType: FileReviewEventType.BASELINE_CAPTURED,
|
|
149
|
-
});
|
|
150
|
-
expect(foldFileReviewEventStream(stream(orphan))).toEqual([]);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
// ---------------------------------------------------------------------------
|
|
154
|
-
// displayFileChangeSets — projection-first, fold-on-terminal
|
|
155
|
-
// ---------------------------------------------------------------------------
|
|
156
|
-
describe("displayFileChangeSets", () => {
|
|
157
|
-
it("returns [] for undefined status", () => {
|
|
158
|
-
expect(displayFileChangeSets(undefined)).toEqual([]);
|
|
159
|
-
});
|
|
160
|
-
it("prefers the server projection when present (preserving its reference)", () => {
|
|
161
|
-
const projected = [create(FileChangeSetSchema, { id: "cs1" })];
|
|
162
|
-
const status = create(AgentExecutionStatusSchema, {
|
|
163
|
-
fileChangeSets: projected,
|
|
164
|
-
// A ledger is also present, but the projection wins for a live execution.
|
|
165
|
-
fileReviewEventStream: stream(baseline("cs1")),
|
|
166
|
-
});
|
|
167
|
-
const result = displayFileChangeSets(status);
|
|
168
|
-
expect(result).toBe(status.fileChangeSets); // same ref — no re-fold, memo-safe
|
|
169
|
-
});
|
|
170
|
-
it("folds the ledger when the projection is empty (terminal execution)", () => {
|
|
171
|
-
const status = create(AgentExecutionStatusSchema, {
|
|
172
|
-
fileChangeSets: [], // terminal: server projects nil
|
|
173
|
-
fileReviewEventStream: stream(baseline("cs1"), candidate("cs1", [change("fc1")]), changeSetDecision("cs1"), reconciled("cs1")),
|
|
174
|
-
});
|
|
175
|
-
const result = displayFileChangeSets(status);
|
|
176
|
-
expect(result.map((s) => s.id)).toEqual(["cs1"]);
|
|
177
|
-
expect(result[0].status).toBe(FileChangeSetStatus.RECONCILED);
|
|
178
|
-
});
|
|
179
|
-
it("returns [] when neither projection nor ledger has content", () => {
|
|
180
|
-
const status = create(AgentExecutionStatusSchema, {});
|
|
181
|
-
expect(displayFileChangeSets(status)).toEqual([]);
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
//# sourceMappingURL=file-review-fold.test.js.map
|