@lucern/contracts 0.3.0-alpha.9 → 1.0.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/CHANGELOG.md +7 -0
- package/dist/api-enums.contract.d.ts +5 -3
- package/dist/api-enums.contract.js +14 -12
- package/dist/api-enums.contract.js.map +1 -1
- package/dist/auth-context.contract.js +14 -2
- package/dist/auth-context.contract.js.map +1 -1
- package/dist/auth-session.contract.js +14 -2
- package/dist/auth-session.contract.js.map +1 -1
- package/dist/auth.contract.d.ts +1 -1
- package/dist/auth.contract.js +14 -2
- package/dist/auth.contract.js.map +1 -1
- package/dist/component-boundary.contract.d.ts +1 -1
- package/dist/component-boundary.contract.js +46 -26
- package/dist/component-boundary.contract.js.map +1 -1
- package/dist/component-host-boundary.contract.d.ts +10 -5
- package/dist/component-host-boundary.contract.js +10 -4
- package/dist/component-host-boundary.contract.js.map +1 -1
- package/dist/{defineTable-CBQ03FXl.d.ts → defineTable-t1wr5wgn.d.ts} +1 -1
- package/dist/{dsl-djCRfuWC.d.ts → dsl-DVPthQGY.d.ts} +1 -1
- package/dist/dsl.d.ts +2 -2
- package/dist/dsl.js.map +1 -1
- package/dist/function-registry/beliefs.d.ts +23 -10
- package/dist/function-registry/beliefs.js +467 -36
- package/dist/function-registry/beliefs.js.map +1 -1
- package/dist/function-registry/coding.d.ts +15 -6
- package/dist/function-registry/coding.js +531 -22
- package/dist/function-registry/coding.js.map +1 -1
- package/dist/function-registry/context.d.ts +9 -3
- package/dist/function-registry/context.js +464 -21
- package/dist/function-registry/context.js.map +1 -1
- package/dist/function-registry/contracts.d.ts +9 -3
- package/dist/function-registry/contracts.js +464 -21
- package/dist/function-registry/contracts.js.map +1 -1
- package/dist/function-registry/coordination.d.ts +21 -9
- package/dist/function-registry/coordination.js +464 -21
- package/dist/function-registry/coordination.js.map +1 -1
- package/dist/function-registry/edges.d.ts +167 -2
- package/dist/function-registry/edges.js +619 -28
- package/dist/function-registry/edges.js.map +1 -1
- package/dist/function-registry/evidence.d.ts +19 -8
- package/dist/function-registry/evidence.js +469 -36
- package/dist/function-registry/evidence.js.map +1 -1
- package/dist/function-registry/graph.d.ts +33 -15
- package/dist/function-registry/graph.js +464 -21
- package/dist/function-registry/graph.js.map +1 -1
- package/dist/function-registry/helpers.d.ts +6 -3
- package/dist/function-registry/helpers.js +465 -22
- package/dist/function-registry/helpers.js.map +1 -1
- package/dist/function-registry/identity.d.ts +62 -16
- package/dist/function-registry/identity.js +487 -27
- package/dist/function-registry/identity.js.map +1 -1
- package/dist/function-registry/index.d.ts +4 -2
- package/dist/function-registry/index.js +468 -22
- package/dist/function-registry/index.js.map +1 -1
- package/dist/function-registry/judgments.d.ts +7 -2
- package/dist/function-registry/judgments.js +464 -21
- package/dist/function-registry/judgments.js.map +1 -1
- package/dist/function-registry/legacy.d.ts +5 -1
- package/dist/function-registry/legacy.js +464 -21
- package/dist/function-registry/legacy.js.map +1 -1
- package/dist/function-registry/lenses.d.ts +11 -4
- package/dist/function-registry/lenses.js +464 -21
- package/dist/function-registry/lenses.js.map +1 -1
- package/dist/function-registry/manifest.d.ts +4 -4
- package/dist/function-registry/manifest.js +16 -1
- package/dist/function-registry/manifest.js.map +1 -1
- package/dist/function-registry/nodes.d.ts +412 -0
- package/dist/function-registry/nodes.js +5354 -0
- package/dist/function-registry/nodes.js.map +1 -0
- package/dist/function-registry/ontologies.d.ts +25 -11
- package/dist/function-registry/ontologies.js +464 -21
- package/dist/function-registry/ontologies.js.map +1 -1
- package/dist/function-registry/pipeline.d.ts +9 -3
- package/dist/function-registry/pipeline.js +464 -21
- package/dist/function-registry/pipeline.js.map +1 -1
- package/dist/function-registry/questions.d.ts +27 -12
- package/dist/function-registry/questions.js +466 -26
- package/dist/function-registry/questions.js.map +1 -1
- package/dist/function-registry/tasks.d.ts +11 -4
- package/dist/function-registry/tasks.js +497 -30
- package/dist/function-registry/tasks.js.map +1 -1
- package/dist/function-registry/topics.d.ts +93 -5
- package/dist/function-registry/topics.js +534 -24
- package/dist/function-registry/topics.js.map +1 -1
- package/dist/function-registry/types.d.ts +7 -3
- package/dist/function-registry/worktrees.d.ts +25 -11
- package/dist/function-registry/worktrees.js +480 -21
- package/dist/function-registry/worktrees.js.map +1 -1
- package/dist/gateway.contract.d.ts +4 -0
- package/dist/gateway.contract.js.map +1 -1
- package/dist/generated/convexSchemas.d.ts +3 -3
- package/dist/generated/convexSchemas.js +37 -17
- package/dist/generated/convexSchemas.js.map +1 -1
- package/dist/generated/infisicalRuntimeEnv.d.ts +70 -0
- package/dist/generated/infisicalRuntimeEnv.js +27585 -0
- package/dist/generated/infisicalRuntimeEnv.js.map +1 -0
- package/dist/generated/lucernGatewayEnv.d.ts +17 -0
- package/dist/generated/lucernGatewayEnv.js +38 -0
- package/dist/generated/lucernGatewayEnv.js.map +1 -0
- package/dist/generated/lucernWebPublicEnv.d.ts +26 -0
- package/dist/generated/lucernWebPublicEnv.js +32 -0
- package/dist/generated/lucernWebPublicEnv.js.map +1 -0
- package/dist/generated/lucernWebServerEnv.d.ts +33 -0
- package/dist/generated/lucernWebServerEnv.js +51 -0
- package/dist/generated/lucernWebServerEnv.js.map +1 -0
- package/dist/generated/schema-manifest.json +1221 -114
- package/dist/generated/tableOwnership.d.ts +48 -28
- package/dist/generated/tableOwnership.js +66 -26
- package/dist/generated/tableOwnership.js.map +1 -1
- package/dist/generated/tier-expectations.json +64 -9
- package/dist/{index-O09U2xHk.d.ts → index-CM1Pl_vI.d.ts} +3 -3
- package/dist/index.d.ts +11 -6
- package/dist/index.js +32838 -413
- package/dist/index.js.map +1 -1
- package/dist/infisical-runtime.contract.d.ts +1763 -6
- package/dist/infisical-runtime.contract.js +2994 -15
- package/dist/infisical-runtime.contract.js.map +1 -1
- package/dist/manifests/infisical-runtime-manifest.d.ts +1689 -6
- package/dist/manifests/infisical-runtime-manifest.js +2847 -12
- package/dist/manifests/infisical-runtime-manifest.js.map +1 -1
- package/dist/manifests/tenant-client-manifest.d.ts +19 -14
- package/dist/manifests/tenant-client-manifest.js +29 -12
- package/dist/manifests/tenant-client-manifest.js.map +1 -1
- package/dist/mcp-gateway-boundary.contract.d.ts +23 -3
- package/dist/mcp-gateway-boundary.contract.js +2 -0
- package/dist/mcp-gateway-boundary.contract.js.map +1 -1
- package/dist/permit-principal-projection.contract.d.ts +74 -0
- package/dist/permit-principal-projection.contract.js +167 -0
- package/dist/permit-principal-projection.contract.js.map +1 -0
- package/dist/projections/check-convex-args-shape.js +10 -6
- package/dist/projections/check-convex-args-shape.js.map +1 -1
- package/dist/projections/create-evidence.projection.d.ts +6 -6
- package/dist/projections/create-evidence.projection.js +2 -3
- package/dist/projections/create-evidence.projection.js.map +1 -1
- package/dist/projections/index.d.ts +3 -3
- package/dist/projections/index.js +10 -6
- package/dist/projections/index.js.map +1 -1
- package/dist/projections/list-tasks.projection.d.ts +20 -8
- package/dist/projections/list-tasks.projection.js +8 -3
- package/dist/projections/list-tasks.projection.js.map +1 -1
- package/dist/proof-attestation.json +45 -0
- package/dist/schemas/component-table-manifest.d.ts +6 -6
- package/dist/schemas/component-table-manifest.js +2 -2
- package/dist/schemas/component-table-manifest.js.map +1 -1
- package/dist/schemas/index.d.ts +2 -2
- package/dist/schemas/index.js +1123 -137
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/manifest.d.ts +2102 -132
- package/dist/schemas/manifest.js +1121 -135
- package/dist/schemas/manifest.js.map +1 -1
- package/dist/schemas/tables/controlPlane/accessControl.d.ts +260 -0
- package/dist/schemas/tables/controlPlane/accessControl.js +658 -0
- package/dist/schemas/tables/controlPlane/accessControl.js.map +1 -0
- package/dist/schemas/tables/{identity → controlPlane}/agent.d.ts +1 -1
- package/dist/schemas/tables/{identity → controlPlane}/agent.js +3 -3
- package/dist/schemas/tables/controlPlane/agent.js.map +1 -0
- package/dist/schemas/tables/{identity → controlPlane}/epistemic.d.ts +1 -1
- package/dist/schemas/tables/{identity → controlPlane}/epistemic.js +3 -3
- package/dist/schemas/tables/controlPlane/epistemic.js.map +1 -0
- package/dist/schemas/tables/{identity → controlPlane}/model.d.ts +1 -1
- package/dist/schemas/tables/{identity → controlPlane}/model.js +6 -6
- package/dist/schemas/tables/controlPlane/model.js.map +1 -0
- package/dist/schemas/tables/{identity → controlPlane}/platform.d.ts +1 -1
- package/dist/schemas/tables/{identity → controlPlane}/platform.js +18 -18
- package/dist/schemas/tables/controlPlane/platform.js.map +1 -0
- package/dist/schemas/tables/{identity → controlPlane}/project.d.ts +1 -1
- package/dist/schemas/tables/{identity → controlPlane}/project.js +3 -3
- package/dist/schemas/tables/controlPlane/project.js.map +1 -0
- package/dist/schemas/tables/{identity → controlPlane}/user.d.ts +1 -1
- package/dist/schemas/tables/{identity → controlPlane}/user.js +3 -3
- package/dist/schemas/tables/controlPlane/user.js.map +1 -0
- package/dist/schemas/tables/kernel/config.d.ts +1 -1
- package/dist/schemas/tables/kernel/config.js.map +1 -1
- package/dist/schemas/tables/kernel/coordination.d.ts +1 -1
- package/dist/schemas/tables/kernel/coordination.js.map +1 -1
- package/dist/schemas/tables/kernel/decision.d.ts +1 -1
- package/dist/schemas/tables/kernel/decision.js.map +1 -1
- package/dist/schemas/tables/kernel/embedding.d.ts +1 -1
- package/dist/schemas/tables/kernel/embedding.js.map +1 -1
- package/dist/schemas/tables/kernel/epistemic.d.ts +1 -1
- package/dist/schemas/tables/kernel/epistemic.js.map +1 -1
- package/dist/schemas/tables/kernel/events.d.ts +21 -0
- package/dist/schemas/tables/kernel/events.js +43 -0
- package/dist/schemas/tables/kernel/events.js.map +1 -0
- package/dist/schemas/tables/kernel/idempotency.d.ts +1 -1
- package/dist/schemas/tables/kernel/idempotency.js.map +1 -1
- package/dist/schemas/tables/kernel/infra.d.ts +1 -1
- package/dist/schemas/tables/kernel/infra.js.map +1 -1
- package/dist/schemas/tables/kernel/intelligence.d.ts +1 -1
- package/dist/schemas/tables/kernel/intelligence.js.map +1 -1
- package/dist/schemas/tables/kernel/lens.d.ts +1 -1
- package/dist/schemas/tables/kernel/lens.js.map +1 -1
- package/dist/schemas/tables/kernel/ontology.d.ts +1 -1
- package/dist/schemas/tables/kernel/ontology.js.map +1 -1
- package/dist/schemas/tables/kernel/platform.d.ts +1 -1
- package/dist/schemas/tables/kernel/platform.js.map +1 -1
- package/dist/schemas/tables/kernel/spine.d.ts +2 -1
- package/dist/schemas/tables/kernel/spine.js +1 -0
- package/dist/schemas/tables/kernel/spine.js.map +1 -1
- package/dist/schemas/tables/kernel/task.d.ts +1 -1
- package/dist/schemas/tables/kernel/task.js.map +1 -1
- package/dist/schemas/tables/kernel/topic.d.ts +1 -1
- package/dist/schemas/tables/kernel/topic.js +1 -0
- package/dist/schemas/tables/kernel/topic.js.map +1 -1
- package/dist/schemas/tables/kernel/workflow.d.ts +1 -1
- package/dist/schemas/tables/kernel/workflow.js.map +1 -1
- package/dist/schemas/tables/kernel/worktree.d.ts +17 -17
- package/dist/schemas/tables/kernel/worktree.js.map +1 -1
- package/dist/schemas/tables/mc/identity.d.ts +19 -2
- package/dist/schemas/tables/mc/identity.js +32 -1
- package/dist/schemas/tables/mc/identity.js.map +1 -1
- package/dist/schemas/tables/mc/methodology.d.ts +1 -1
- package/dist/schemas/tables/mc/methodology.js.map +1 -1
- package/dist/schemas/tables/mc/pack.d.ts +1 -1
- package/dist/schemas/tables/mc/pack.js.map +1 -1
- package/dist/schemas/tables/mc/policy.d.ts +2 -2
- package/dist/schemas/tables/mc/policy.js +1 -1
- package/dist/schemas/tables/mc/policy.js.map +1 -1
- package/dist/schemas/tables/mc/registry.d.ts +1 -1
- package/dist/schemas/tables/mc/registry.js.map +1 -1
- package/dist/schemas/tables/mc/runtime.d.ts +109 -3
- package/dist/schemas/tables/mc/runtime.js +330 -104
- package/dist/schemas/tables/mc/runtime.js.map +1 -1
- package/dist/schemas/tables/mc/tenant.d.ts +4 -2
- package/dist/schemas/tables/mc/tenant.js +3 -1
- package/dist/schemas/tables/mc/tenant.js.map +1 -1
- package/dist/schemas/tables/mc/workspace.d.ts +22 -5
- package/dist/schemas/tables/mc/workspace.js +34 -2
- package/dist/schemas/tables/mc/workspace.js.map +1 -1
- package/dist/{sdk-tools.contract-Ci8bkoai.d.ts → sdk-tools.contract-CKmSsrZ2.d.ts} +1 -1
- package/dist/sdk-tools.contract.d.ts +2 -2
- package/dist/sdk-tools.contract.js +417 -13
- package/dist/sdk-tools.contract.js.map +1 -1
- package/dist/tenant-bootstrap-seed.contract.d.ts +244 -56
- package/dist/tenant-bootstrap-seed.contract.js +139 -28
- package/dist/tenant-bootstrap-seed.contract.js.map +1 -1
- package/dist/tenant-bootstrap-seed.defaults.d.ts +2 -2
- package/dist/tenant-bootstrap-seed.defaults.js +31 -13
- package/dist/tenant-bootstrap-seed.defaults.js.map +1 -1
- package/dist/tenant-client.contract.d.ts +20 -15
- package/dist/tenant-client.contract.js +29 -12
- package/dist/tenant-client.contract.js.map +1 -1
- package/dist/{tool-contracts-B4iWhejG.d.ts → tool-contracts-C_xvM9q2.d.ts} +32 -2
- package/dist/tool-contracts.d.ts +1 -1
- package/dist/tool-contracts.js +418 -14
- package/dist/tool-contracts.js.map +1 -1
- package/package.json +22 -1
- package/dist/schemas/tables/identity/agent.js.map +0 -1
- package/dist/schemas/tables/identity/epistemic.js.map +0 -1
- package/dist/schemas/tables/identity/model.js.map +0 -1
- package/dist/schemas/tables/identity/platform.js.map +0 -1
- package/dist/schemas/tables/identity/project.js.map +0 -1
- package/dist/schemas/tables/identity/user.js.map +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Host deployments may call component APIs, but they must not create or mutate
|
|
5
5
|
* component-owned tables directly through top-level ctx.db. This contract keeps
|
|
6
|
-
* tenant SDK clients from accidentally recreating Lucern kernel/
|
|
6
|
+
* tenant SDK clients from accidentally recreating Lucern kernel/control-plane tables
|
|
7
7
|
* as host "ghost tables".
|
|
8
8
|
*/
|
|
9
9
|
declare const COMPONENT_HOST_BOUNDARY_CONTRACT_VERSION: "2026-04-28";
|
|
@@ -14,9 +14,9 @@ declare const COMPONENT_HOST_PROTECTED_TABLE_OWNERS: {
|
|
|
14
14
|
readonly backgroundJobSettings: "kernel_component";
|
|
15
15
|
readonly systemLogs: "kernel_component";
|
|
16
16
|
readonly epistemicAudit: "reasoning_kernel_component";
|
|
17
|
-
readonly platformPolicyDecisionLogs: "
|
|
18
|
-
readonly tenantApiKeys: "
|
|
19
|
-
readonly projectGrants: "
|
|
17
|
+
readonly platformPolicyDecisionLogs: "control_plane_component";
|
|
18
|
+
readonly tenantApiKeys: "control_plane_component";
|
|
19
|
+
readonly projectGrants: "control_plane_component";
|
|
20
20
|
readonly userSessions: "tenant_or_control_plane_schema";
|
|
21
21
|
};
|
|
22
22
|
declare const COMPONENT_HOST_DB_WRITE_OPERATIONS: readonly ["insert", "patch", "replace", "delete"];
|
|
@@ -24,7 +24,7 @@ type ComponentHostDbWriteOperation = (typeof COMPONENT_HOST_DB_WRITE_OPERATIONS)
|
|
|
24
24
|
declare const COMPONENT_HOST_DB_READ_OPERATIONS: readonly ["query"];
|
|
25
25
|
type ComponentHostDbReadOperation = (typeof COMPONENT_HOST_DB_READ_OPERATIONS)[number];
|
|
26
26
|
type ComponentHostDbOperation = ComponentHostDbWriteOperation | ComponentHostDbReadOperation;
|
|
27
|
-
declare const COMPONENT_HOST_WRITE_AUDIT_ROOTS: readonly ["apps/web/convex", "packages/server-core/src", "services/kernel-template/convex", "services/
|
|
27
|
+
declare const COMPONENT_HOST_WRITE_AUDIT_ROOTS: readonly ["apps/web/convex", "packages/server-core/src", "services/kernel-template/convex", "services/control-plane-template/convex", "services/master-control/convex"];
|
|
28
28
|
type ComponentHostWriteAuditRoot = (typeof COMPONENT_HOST_WRITE_AUDIT_ROOTS)[number];
|
|
29
29
|
declare const COMPONENT_HOST_WRITE_ALLOWED_EXCEPTIONS: readonly [{
|
|
30
30
|
readonly file: "services/master-control/convex/userSessions.ts";
|
|
@@ -36,6 +36,11 @@ declare const COMPONENT_HOST_WRITE_ALLOWED_EXCEPTIONS: readonly [{
|
|
|
36
36
|
readonly table: "userSessions";
|
|
37
37
|
readonly operation: "query";
|
|
38
38
|
readonly reason: "Master Control declares and owns its own userSessions table for gateway session validation.";
|
|
39
|
+
}, {
|
|
40
|
+
readonly file: "services/master-control/convex/permitEnforcement.ts";
|
|
41
|
+
readonly table: "userSessions";
|
|
42
|
+
readonly operation: "query";
|
|
43
|
+
readonly reason: "Permit enforcement validates MC-owned agent session scope before allowing protected control-plane functions.";
|
|
39
44
|
}];
|
|
40
45
|
|
|
41
46
|
export { COMPONENT_HOST_BOUNDARY_CONTRACT_VERSION, COMPONENT_HOST_DB_READ_OPERATIONS, COMPONENT_HOST_DB_WRITE_OPERATIONS, COMPONENT_HOST_PROTECTED_TABLES, COMPONENT_HOST_PROTECTED_TABLE_OWNERS, COMPONENT_HOST_WRITE_ALLOWED_EXCEPTIONS, COMPONENT_HOST_WRITE_AUDIT_ROOTS, type ComponentHostDbOperation, type ComponentHostDbReadOperation, type ComponentHostDbWriteOperation, type ComponentHostProtectedTable, type ComponentHostWriteAuditRoot };
|
|
@@ -15,9 +15,9 @@ var COMPONENT_HOST_PROTECTED_TABLE_OWNERS = {
|
|
|
15
15
|
backgroundJobSettings: "kernel_component",
|
|
16
16
|
systemLogs: "kernel_component",
|
|
17
17
|
epistemicAudit: "reasoning_kernel_component",
|
|
18
|
-
platformPolicyDecisionLogs: "
|
|
19
|
-
tenantApiKeys: "
|
|
20
|
-
projectGrants: "
|
|
18
|
+
platformPolicyDecisionLogs: "control_plane_component",
|
|
19
|
+
tenantApiKeys: "control_plane_component",
|
|
20
|
+
projectGrants: "control_plane_component",
|
|
21
21
|
userSessions: "tenant_or_control_plane_schema"
|
|
22
22
|
};
|
|
23
23
|
var COMPONENT_HOST_DB_WRITE_OPERATIONS = [
|
|
@@ -31,7 +31,7 @@ var COMPONENT_HOST_WRITE_AUDIT_ROOTS = [
|
|
|
31
31
|
"apps/web/convex",
|
|
32
32
|
"packages/server-core/src",
|
|
33
33
|
"services/kernel-template/convex",
|
|
34
|
-
"services/
|
|
34
|
+
"services/control-plane-template/convex",
|
|
35
35
|
"services/master-control/convex"
|
|
36
36
|
];
|
|
37
37
|
var COMPONENT_HOST_WRITE_ALLOWED_EXCEPTIONS = [
|
|
@@ -46,6 +46,12 @@ var COMPONENT_HOST_WRITE_ALLOWED_EXCEPTIONS = [
|
|
|
46
46
|
table: "userSessions",
|
|
47
47
|
operation: "query",
|
|
48
48
|
reason: "Master Control declares and owns its own userSessions table for gateway session validation."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
file: "services/master-control/convex/permitEnforcement.ts",
|
|
52
|
+
table: "userSessions",
|
|
53
|
+
operation: "query",
|
|
54
|
+
reason: "Permit enforcement validates MC-owned agent session scope before allowing protected control-plane functions."
|
|
49
55
|
}
|
|
50
56
|
];
|
|
51
57
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component-host-boundary.contract.ts"],"names":[],"mappings":";AASO,IAAM,wCAAA,GAA2C;AAEjD,IAAM,+BAAA,GAAkC;AAAA,EAC7C,mBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,4BAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF;AAIO,IAAM,qCAAA,GAAwC;AAAA,EACnD,iBAAA,EAAmB,kBAAA;AAAA,EACnB,qBAAA,EAAuB,kBAAA;AAAA,EACvB,UAAA,EAAY,kBAAA;AAAA,EACZ,cAAA,EAAgB,4BAAA;AAAA,EAChB,0BAAA,EAA4B,
|
|
1
|
+
{"version":3,"sources":["../src/component-host-boundary.contract.ts"],"names":[],"mappings":";AASO,IAAM,wCAAA,GAA2C;AAEjD,IAAM,+BAAA,GAAkC;AAAA,EAC7C,mBAAA;AAAA,EACA,uBAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,4BAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF;AAIO,IAAM,qCAAA,GAAwC;AAAA,EACnD,iBAAA,EAAmB,kBAAA;AAAA,EACnB,qBAAA,EAAuB,kBAAA;AAAA,EACvB,UAAA,EAAY,kBAAA;AAAA,EACZ,cAAA,EAAgB,4BAAA;AAAA,EAChB,0BAAA,EAA4B,yBAAA;AAAA,EAC5B,aAAA,EAAe,yBAAA;AAAA,EACf,aAAA,EAAe,yBAAA;AAAA,EACf,YAAA,EAAc;AAChB;AAEO,IAAM,kCAAA,GAAqC;AAAA,EAChD,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AAIO,IAAM,iCAAA,GAAoC,CAAC,OAAO;AAQlD,IAAM,gCAAA,GAAmC;AAAA,EAC9C,iBAAA;AAAA,EACA,0BAAA;AAAA,EACA,iCAAA;AAAA,EACA,wCAAA;AAAA,EACA;AACF;AAIO,IAAM,uCAAA,GAA0C;AAAA,EACrD;AAAA,IACE,IAAA,EAAM,gDAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,SAAA,EAAW,QAAA;AAAA,IACX,MAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,gDAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,SAAA,EAAW,OAAA;AAAA,IACX,MAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,qDAAA;AAAA,IACN,KAAA,EAAO,cAAA;AAAA,IACP,SAAA,EAAW,OAAA;AAAA,IACX,MAAA,EACE;AAAA;AAEN","file":"component-host-boundary.contract.js","sourcesContent":["/**\n * Component host persistence boundary\n *\n * Host deployments may call component APIs, but they must not create or mutate\n * component-owned tables directly through top-level ctx.db. This contract keeps\n * tenant SDK clients from accidentally recreating Lucern kernel/control-plane tables\n * as host \"ghost tables\".\n */\n\nexport const COMPONENT_HOST_BOUNDARY_CONTRACT_VERSION = \"2026-04-28\" as const;\n\nexport const COMPONENT_HOST_PROTECTED_TABLES = [\n \"backgroundJobRuns\",\n \"backgroundJobSettings\",\n \"systemLogs\",\n \"epistemicAudit\",\n \"platformPolicyDecisionLogs\",\n \"tenantApiKeys\",\n \"projectGrants\",\n \"userSessions\",\n] as const;\nexport type ComponentHostProtectedTable =\n (typeof COMPONENT_HOST_PROTECTED_TABLES)[number];\n\nexport const COMPONENT_HOST_PROTECTED_TABLE_OWNERS = {\n backgroundJobRuns: \"kernel_component\",\n backgroundJobSettings: \"kernel_component\",\n systemLogs: \"kernel_component\",\n epistemicAudit: \"reasoning_kernel_component\",\n platformPolicyDecisionLogs: \"control_plane_component\",\n tenantApiKeys: \"control_plane_component\",\n projectGrants: \"control_plane_component\",\n userSessions: \"tenant_or_control_plane_schema\",\n} as const satisfies Record<ComponentHostProtectedTable, string>;\n\nexport const COMPONENT_HOST_DB_WRITE_OPERATIONS = [\n \"insert\",\n \"patch\",\n \"replace\",\n \"delete\",\n] as const;\nexport type ComponentHostDbWriteOperation =\n (typeof COMPONENT_HOST_DB_WRITE_OPERATIONS)[number];\n\nexport const COMPONENT_HOST_DB_READ_OPERATIONS = [\"query\"] as const;\nexport type ComponentHostDbReadOperation =\n (typeof COMPONENT_HOST_DB_READ_OPERATIONS)[number];\n\nexport type ComponentHostDbOperation =\n | ComponentHostDbWriteOperation\n | ComponentHostDbReadOperation;\n\nexport const COMPONENT_HOST_WRITE_AUDIT_ROOTS = [\n \"apps/web/convex\",\n \"packages/server-core/src\",\n \"services/kernel-template/convex\",\n \"services/control-plane-template/convex\",\n \"services/master-control/convex\",\n] as const;\nexport type ComponentHostWriteAuditRoot =\n (typeof COMPONENT_HOST_WRITE_AUDIT_ROOTS)[number];\n\nexport const COMPONENT_HOST_WRITE_ALLOWED_EXCEPTIONS = [\n {\n file: \"services/master-control/convex/userSessions.ts\",\n table: \"userSessions\",\n operation: \"insert\",\n reason:\n \"Master Control declares and owns its own userSessions table for gateway session validation.\",\n },\n {\n file: \"services/master-control/convex/userSessions.ts\",\n table: \"userSessions\",\n operation: \"query\",\n reason:\n \"Master Control declares and owns its own userSessions table for gateway session validation.\",\n },\n {\n file: \"services/master-control/convex/permitEnforcement.ts\",\n table: \"userSessions\",\n operation: \"query\",\n reason:\n \"Permit enforcement validates MC-owned agent session scope before allowing protected control-plane functions.\",\n },\n] as const satisfies ReadonlyArray<{\n file: string;\n table: ComponentHostProtectedTable;\n operation: ComponentHostDbOperation;\n reason: string;\n}>;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as FunctionContract, F as FunctionEffect, d as defineFunction } from './defineFunction-DO97DKs4.js';
|
|
2
|
-
import { a as TableIndex, b as TableComponent, T as TableContract, c as TableDeprecation, d as defineTable } from './defineTable-
|
|
2
|
+
import { a as TableIndex, b as TableComponent, T as TableContract, c as TableDeprecation, d as defineTable } from './defineTable-t1wr5wgn.js';
|
|
3
3
|
import { a as CONVEX_ID_TABLE, C as ConvexIdSchema, g as getConvexIdTable, i as idOf } from './idOf-DR8tkhQS.js';
|
|
4
4
|
import { z, ZodTypeAny } from 'zod';
|
|
5
5
|
|
package/dist/dsl.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { a as FunctionContract, F as FunctionEffect, d as defineFunction } from './defineFunction-DO97DKs4.js';
|
|
2
|
-
export { b as TableComponent, T as TableContract, c as TableDeprecation, a as TableIndex, d as defineTable } from './defineTable-
|
|
3
|
-
export { A as AdapterContext, a as AdapterKind, b as AdapterPurpose, C as CliCommandSpec, c as CliOptionKind, e as CliOptionSpec, f as ConvexDefault, J as JsonSchema, S as SchemaAdapterError, Z as ZodToCliOptions, g as ZodToConvexOptions, h as ZodToConvexResult, i as ZodToJsonSchemaOptions, s as schemaAdapterError, t as tableIndexToConvexSource, z as zodToCli, j as zodToConvex, k as zodToJsonSchema } from './dsl-
|
|
2
|
+
export { b as TableComponent, T as TableContract, c as TableDeprecation, a as TableIndex, d as defineTable } from './defineTable-t1wr5wgn.js';
|
|
3
|
+
export { A as AdapterContext, a as AdapterKind, b as AdapterPurpose, C as CliCommandSpec, c as CliOptionKind, e as CliOptionSpec, f as ConvexDefault, J as JsonSchema, S as SchemaAdapterError, Z as ZodToCliOptions, g as ZodToConvexOptions, h as ZodToConvexResult, i as ZodToJsonSchemaOptions, s as schemaAdapterError, t as tableIndexToConvexSource, z as zodToCli, j as zodToConvex, k as zodToJsonSchema } from './dsl-DVPthQGY.js';
|
|
4
4
|
export { a as CONVEX_ID_TABLE, C as ConvexIdSchema, g as getConvexIdTable, i as idOf } from './idOf-DR8tkhQS.js';
|
|
5
5
|
import 'zod';
|
package/dist/dsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dsl/defineFunction.ts","../src/dsl/defineTable.ts","../src/dsl/errors.ts","../src/dsl/idOf.ts","../src/dsl/adapters/zod-to-cli.ts","../src/dsl/adapters/zod-to-convex.ts","../src/dsl/adapters/zod-to-jsonschema.ts"],"names":["getObjectShape","ZodFirstPartyTypeKind","unsupported","unwrapOptionalLike","convertLazy","convertSchema"],"mappings":"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","file":"dsl.js","sourcesContent":["import { z, type ZodObject, type ZodRawShape } from \"zod\";\n\nexport type FunctionEffect = \"read\" | \"write\" | \"admin\";\n\nexport type FunctionContract<\n A extends ZodRawShape = ZodRawShape,\n R extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n name: string;\n args: ZodObject<A>;\n returns: R;\n effects: readonly FunctionEffect[];\n idempotent?: boolean;\n invariants?: readonly string[];\n};\n\nexport function defineFunction<\n A extends ZodRawShape,\n R extends z.ZodTypeAny,\n>(spec: FunctionContract<A, R>): FunctionContract<A, R> {\n return spec;\n}\n","import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"identity\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","export type AdapterKind = \"convex\" | \"jsonschema\" | \"cli\";\n\nexport type AdapterPurpose = \"table\" | \"function_args\" | \"function_returns\";\n\nexport type AdapterContext = {\n adapter: AdapterKind;\n purpose?: AdapterPurpose;\n location?: string;\n path?: readonly string[];\n};\n\nfunction formatPath(path?: readonly string[]) {\n if (!path || path.length === 0) {\n return \"\";\n }\n\n return path.join(\".\");\n}\n\nfunction formatLocation(context: AdapterContext) {\n const segments: string[] = [context.adapter];\n if (context.purpose) {\n segments.push(context.purpose);\n }\n if (context.location) {\n segments.push(context.location);\n }\n const formattedPath = formatPath(context.path);\n if (formattedPath) {\n segments.push(formattedPath);\n }\n return segments.join(\" :: \");\n}\n\nexport class SchemaAdapterError extends Error {\n readonly context: AdapterContext;\n\n constructor(message: string, context: AdapterContext) {\n super(`${message} [${formatLocation(context)}]`);\n this.name = \"SchemaAdapterError\";\n this.context = context;\n }\n}\n\nexport function schemaAdapterError(\n message: string,\n context: AdapterContext\n): SchemaAdapterError {\n return new SchemaAdapterError(message, context);\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\n\nexport type CliOptionKind = \"string\" | \"number\" | \"bigint\" | \"boolean\" | \"json\";\n\nexport type CliOptionSpec = {\n name: string;\n kind: CliOptionKind;\n required: boolean;\n variadic?: boolean;\n nullable?: boolean;\n choices?: readonly (string | number | boolean)[];\n defaultValue?: unknown;\n description?: string;\n};\n\nexport type CliCommandSpec = {\n options: readonly CliOptionSpec[];\n};\n\nexport type ZodToCliOptions = {\n location?: string;\n};\n\ntype FieldState = {\n schema: ZodTypeAny;\n required: boolean;\n nullable: boolean;\n defaultValue?: unknown;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"cli\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapField(\n schema: ZodTypeAny,\n path: readonly string[]\n): FieldState {\n let current = schema;\n let required = true;\n let nullable = false;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodNullable:\n nullable = true;\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n nullable,\n defaultValue,\n };\n }\n }\n}\n\nfunction primitiveOption(\n name: string,\n kind: CliOptionKind,\n field: FieldState,\n choices?: readonly (string | number | boolean)[]\n): CliOptionSpec {\n return {\n name,\n kind,\n required: field.required,\n nullable: field.nullable || undefined,\n defaultValue: field.defaultValue,\n choices,\n description: field.schema.description,\n };\n}\n\nfunction optionFromSchema(\n name: string,\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): CliOptionSpec {\n const field = unwrapField(schema, path);\n\n switch (field.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodNumber:\n return primitiveOption(name, \"number\", field);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return primitiveOption(name, \"bigint\", field);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return primitiveOption(name, \"boolean\", field);\n case ZodFirstPartyTypeKind.ZodEnum:\n return primitiveOption(name, \"string\", field, field.schema._def.values);\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(field.schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return primitiveOption(\n name,\n values.every((value) => typeof value === \"number\") ? \"number\" : \"string\",\n field,\n values\n );\n }\n case ZodFirstPartyTypeKind.ZodLiteral:\n return primitiveOption(name, \"string\", field, [field.schema._def.value]);\n case ZodFirstPartyTypeKind.ZodArray: {\n const item = unwrapField(field.schema._def.type, [...path, \"[]\"]);\n switch (item.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { ...primitiveOption(name, \"string\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { ...primitiveOption(name, \"number\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { ...primitiveOption(name, \"bigint\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { ...primitiveOption(name, \"boolean\", field), variadic: true };\n default:\n return {\n ...primitiveOption(name, \"json\", field),\n variadic: false,\n };\n }\n }\n case ZodFirstPartyTypeKind.ZodLazy: {\n const lazySchema = field.schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the CLI adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return optionFromSchema(name, lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n }\n case ZodFirstPartyTypeKind.ZodBranded:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodObject:\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n case ZodFirstPartyTypeKind.ZodRecord:\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return primitiveOption(name, \"json\", field);\n default:\n unsupported(\n `Unsupported Zod schema kind ${field.schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToCli(\n schema: z.ZodObject<z.ZodRawShape>,\n options: ZodToCliOptions = {}\n): CliCommandSpec {\n if (schema._def.typeName !== ZodFirstPartyTypeKind.ZodObject) {\n throw schemaAdapterError(\"CLI generation requires a Zod object schema\", {\n adapter: \"cli\",\n location: options.location,\n path: [],\n });\n }\n\n const state: ConversionState = {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n };\n const optionsList = Object.entries(getObjectShape(schema))\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => optionFromSchema(name, value, state, [name]));\n\n return {\n options: optionsList,\n };\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport type { TableIndex } from \"../defineTable.js\";\nimport {\n SchemaAdapterError,\n schemaAdapterError,\n type AdapterPurpose,\n} from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type ConvexDefault = {\n path: readonly string[];\n value: unknown;\n};\n\nexport type ZodToConvexOptions = {\n purpose?: AdapterPurpose;\n location?: string;\n};\n\nexport type ZodToConvexResult = {\n source: string;\n defaults: readonly ConvexDefault[];\n};\n\ntype ConversionState = {\n location?: string;\n purpose: AdapterPurpose;\n seenLazySchemas: WeakSet<object>;\n};\n\ntype ConvertedSchema = {\n source: string;\n defaults: ConvexDefault[];\n};\n\nfunction encodeLiteral(value: string | number | bigint | boolean | null) {\n if (typeof value === \"bigint\") {\n return `${value}n`;\n }\n return JSON.stringify(value);\n}\n\nfunction sortEntries<T>(entries: readonly [string, T][]) {\n return [...entries].sort(([left], [right]) => left.localeCompare(right));\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n isOptional: boolean;\n defaults: ConvexDefault[];\n} {\n const defaults: ConvexDefault[] = [];\n let current = schema;\n let isOptional = false;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n isOptional = true;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault: {\n if (state.purpose === \"table\") {\n throw schemaAdapterError(\n \"Zod defaults are not allowed in table contracts\",\n {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n }\n );\n }\n isOptional = true;\n defaults.push({\n path,\n value: current._def.defaultValue(),\n });\n current = current._def.innerType;\n continue;\n }\n default:\n return {\n schema: current,\n isOptional,\n defaults,\n };\n }\n }\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const { schema: unwrapped, isOptional, defaults } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const converted = convertSchemaInner(unwrapped, state, path);\n return {\n source: isOptional ? `v.optional(${converted.source})` : converted.source,\n defaults: [...defaults, ...converted.defaults],\n };\n}\n\nfunction enumToUnion(values: readonly (string | number)[]) {\n if (values.length === 0) {\n return \"v.never()\";\n }\n if (values.length === 1) {\n return `v.literal(${encodeLiteral(values[0])})`;\n }\n return `v.union(${values\n .map((value) => `v.literal(${encodeLiteral(value)})`)\n .join(\", \")})`;\n}\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n });\n}\n\nfunction convertLazy(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const lazySchema = schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the Convex adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return convertSchema(lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n}\n\nfunction convertSchemaInner(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n source: `v.id(${JSON.stringify(idTable)})`,\n defaults: [],\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { source: \"v.string()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { source: \"v.number()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { source: \"v.int64()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { source: \"v.boolean()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNull:\n return { source: \"v.null()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return { source: \"v.any()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodLiteral: {\n return {\n source: `v.literal(${encodeLiteral(schema._def.value)})`,\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n source: enumToUnion(schema._def.values),\n defaults: [],\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = Object.values(schema._def.values).filter(\n (value): value is string | number =>\n typeof value === \"string\" || typeof value === \"number\"\n );\n return {\n source: enumToUnion([...new Set(values)]),\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n source: `v.nullable(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodArray: {\n const inner = convertSchema(schema._def.type, state, [...path, \"[]\"]);\n return {\n source: `v.array(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to Convex validators\",\n state,\n path\n );\n }\n const fields = sortEntries(Object.entries(getObjectShape(objectSchema)));\n const convertedFields = fields.map(([key, value]) => [\n key,\n convertSchema(value, state, [...path, key]),\n ] as const);\n return {\n source: `v.object({ ${convertedFields\n .map(([key, converted]) => `${JSON.stringify(key)}: ${converted.source}`)\n .join(\", \")} })`,\n defaults: convertedFields.flatMap(([, converted]) => converted.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion: {\n const members = schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n const members = options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to Convex validators\",\n state,\n path\n );\n }\n const value = convertSchema(schema._def.valueType, state, [...path, \"{}\"]);\n return {\n source: `v.record(v.string(), ${value.source})`,\n defaults: value.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema, state, path);\n case ZodFirstPartyTypeKind.ZodBranded: {\n return convertSchema(schema._def.type, state, path);\n }\n case ZodFirstPartyTypeKind.ZodEffects: {\n return convertSchema(schema._def.schema, state, path);\n }\n default:\n unsupported(`Unsupported Zod schema kind ${schema._def.typeName}`, state, path);\n }\n}\n\nexport function zodToConvex(\n schema: ZodTypeAny,\n options: ZodToConvexOptions = {}\n): ZodToConvexResult {\n const state: ConversionState = {\n location: options.location,\n purpose: options.purpose ?? \"function_returns\",\n seenLazySchemas: new WeakSet<object>(),\n };\n const converted = convertSchema(schema, state, []);\n return {\n source: converted.source,\n defaults: converted.defaults,\n };\n}\n\nexport function tableIndexToConvexSource(index: TableIndex): string {\n switch (index.kind) {\n case \"index\":\n return `.index(${JSON.stringify(index.name)}, [${index.columns\n .map((column) => JSON.stringify(column))\n .join(\", \")}])`;\n case \"search\":\n return `.searchIndex(${JSON.stringify(index.name)}, { searchField: ${JSON.stringify(\n index.searchField\n )}${index.filterFields?.length ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]` : \"\"} })`;\n case \"vector\":\n return `.vectorIndex(${JSON.stringify(index.name)}, { vectorField: ${JSON.stringify(\n index.vectorField\n )}, dimensions: ${index.dimensions}${\n index.filterFields?.length\n ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]`\n : \"\"\n } })`;\n default: {\n const exhaustive: never = index;\n throw new SchemaAdapterError(\n `Unsupported table index kind ${(exhaustive as { kind?: string }).kind ?? \"unknown\"}`,\n { adapter: \"convex\" }\n );\n }\n }\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type JsonSchema =\n | boolean\n | {\n $schema?: string;\n type?: string | readonly string[];\n properties?: Record<string, JsonSchema>;\n required?: readonly string[];\n additionalProperties?: boolean | JsonSchema;\n items?: JsonSchema;\n enum?: readonly (string | number | boolean)[];\n const?: string | number | boolean | null;\n anyOf?: readonly JsonSchema[];\n oneOf?: readonly JsonSchema[];\n default?: unknown;\n format?: string;\n description?: string;\n [key: string]: unknown;\n };\n\nexport type ZodToJsonSchemaOptions = {\n location?: string;\n};\n\ntype JsonField = {\n schema: JsonSchema;\n required: boolean;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"jsonschema\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n required: boolean;\n defaultValue?: unknown;\n} {\n let current = schema;\n let required = true;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n defaultValue,\n };\n }\n }\n}\n\nfunction convertLazy(\n schema: z.ZodLazy<ZodTypeAny>,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n if (state.seenLazySchemas.has(schema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the JSON Schema adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(schema);\n try {\n return convertSchema(schema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(schema);\n }\n}\n\nfunction literalType(value: unknown) {\n switch (typeof value) {\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isInteger(value) ? \"integer\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"bigint\":\n return \"integer\";\n default:\n return value === null ? \"null\" : undefined;\n }\n}\n\nfunction convertField(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonField {\n const { schema: unwrapped, required, defaultValue } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const field = convertSchema(unwrapped, state, path);\n if (typeof field === \"boolean\") {\n return {\n schema: field,\n required,\n };\n }\n return {\n schema:\n defaultValue === undefined ? field : { ...field, default: defaultValue },\n required,\n };\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n type: \"string\",\n \"x-convex-id-table\": idTable,\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { type: \"string\" };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { type: \"number\" };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { type: \"integer\", format: \"int64\" };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { type: \"boolean\" };\n case ZodFirstPartyTypeKind.ZodNull:\n return { type: \"null\" };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return {};\n case ZodFirstPartyTypeKind.ZodLiteral:\n return {\n const: schema._def.value,\n type: literalType(schema._def.value),\n };\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n type: \"string\",\n enum: schema._def.values,\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return {\n type: values.every((value) => typeof value === \"number\")\n ? \"number\"\n : \"string\",\n enum: values,\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n anyOf: [inner, { type: \"null\" }],\n };\n }\n case ZodFirstPartyTypeKind.ZodArray:\n return {\n type: \"array\",\n items: convertSchema(schema._def.type, state, [...path, \"[]\"]),\n };\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to JSON Schema\",\n state,\n path\n );\n }\n const entries = Object.entries(getObjectShape(objectSchema)).sort(([a], [b]) =>\n a.localeCompare(b)\n );\n const converted = entries.map(([key, value]) => [\n key,\n convertField(value, state, [...path, key]),\n ] as const);\n const required = converted\n .filter(([, field]) => field.required)\n .map(([key]) => key);\n return {\n type: \"object\",\n properties: Object.fromEntries(\n converted.map(([key, field]) => [key, field.schema])\n ),\n additionalProperties: false,\n ...(required.length > 0 ? { required } : {}),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion:\n return {\n anyOf: schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n return {\n oneOf: options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to JSON Schema\",\n state,\n path\n );\n }\n return {\n type: \"object\",\n additionalProperties: convertSchema(\n schema._def.valueType,\n state,\n [...path, \"{}\"]\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema as z.ZodLazy<ZodTypeAny>, state, path);\n case ZodFirstPartyTypeKind.ZodBranded:\n return convertSchema(schema._def.type, state, path);\n default:\n unsupported(\n `Unsupported Zod schema kind ${schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToJsonSchema(\n schema: ZodTypeAny,\n options: ZodToJsonSchemaOptions = {}\n): JsonSchema {\n const converted = convertSchema(schema, {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n }, []);\n if (typeof converted === \"boolean\") {\n return converted;\n }\n return {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n ...converted,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/dsl/defineFunction.ts","../src/dsl/defineTable.ts","../src/dsl/errors.ts","../src/dsl/idOf.ts","../src/dsl/adapters/zod-to-cli.ts","../src/dsl/adapters/zod-to-convex.ts","../src/dsl/adapters/zod-to-jsonschema.ts"],"names":["getObjectShape","ZodFirstPartyTypeKind","unsupported","unwrapOptionalLike","convertLazy","convertSchema"],"mappings":"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","file":"dsl.js","sourcesContent":["import { z, type ZodObject, type ZodRawShape } from \"zod\";\n\nexport type FunctionEffect = \"read\" | \"write\" | \"admin\";\n\nexport type FunctionContract<\n A extends ZodRawShape = ZodRawShape,\n R extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n name: string;\n args: ZodObject<A>;\n returns: R;\n effects: readonly FunctionEffect[];\n idempotent?: boolean;\n invariants?: readonly string[];\n};\n\nexport function defineFunction<\n A extends ZodRawShape,\n R extends z.ZodTypeAny,\n>(spec: FunctionContract<A, R>): FunctionContract<A, R> {\n return spec;\n}\n","import type { ZodObject, ZodRawShape } from \"zod\";\n\nexport type TableComponent = \"mc\" | \"kernel\" | \"control-plane\" | \"developer-pack\";\n\nexport type TableIndex =\n | {\n kind: \"index\";\n name: string;\n columns: readonly string[];\n }\n | {\n kind: \"search\";\n name: string;\n searchField: string;\n filterFields?: readonly string[];\n }\n | {\n kind: \"vector\";\n name: string;\n vectorField: string;\n dimensions: number;\n filterFields?: readonly string[];\n };\n\nexport type TableDeprecation = {\n since: string;\n reason: string;\n replacement?: string;\n};\n\nexport type TableContract<S extends ZodRawShape = ZodRawShape> = {\n name: string;\n component: TableComponent;\n category: string;\n shape: ZodObject<S>;\n indices: readonly TableIndex[];\n deprecated?: TableDeprecation;\n invariants?: readonly string[];\n};\n\nexport function defineTable<S extends ZodRawShape>(\n spec: TableContract<S>\n): TableContract<S> {\n return spec;\n}\n","export type AdapterKind = \"convex\" | \"jsonschema\" | \"cli\";\n\nexport type AdapterPurpose = \"table\" | \"function_args\" | \"function_returns\";\n\nexport type AdapterContext = {\n adapter: AdapterKind;\n purpose?: AdapterPurpose;\n location?: string;\n path?: readonly string[];\n};\n\nfunction formatPath(path?: readonly string[]) {\n if (!path || path.length === 0) {\n return \"\";\n }\n\n return path.join(\".\");\n}\n\nfunction formatLocation(context: AdapterContext) {\n const segments: string[] = [context.adapter];\n if (context.purpose) {\n segments.push(context.purpose);\n }\n if (context.location) {\n segments.push(context.location);\n }\n const formattedPath = formatPath(context.path);\n if (formattedPath) {\n segments.push(formattedPath);\n }\n return segments.join(\" :: \");\n}\n\nexport class SchemaAdapterError extends Error {\n readonly context: AdapterContext;\n\n constructor(message: string, context: AdapterContext) {\n super(`${message} [${formatLocation(context)}]`);\n this.name = \"SchemaAdapterError\";\n this.context = context;\n }\n}\n\nexport function schemaAdapterError(\n message: string,\n context: AdapterContext\n): SchemaAdapterError {\n return new SchemaAdapterError(message, context);\n}\n","import { z } from \"zod\";\n\nexport const CONVEX_ID_TABLE = Symbol.for(\"lucern.contracts.convexIdTable\");\n\nexport type ConvexIdSchema<T extends string> = z.ZodBranded<\n z.ZodString,\n `Id<${T}>`\n> & {\n readonly [CONVEX_ID_TABLE]: T;\n};\n\nexport function idOf<T extends string>(table: T): ConvexIdSchema<T> {\n const schema = z.string().brand<`Id<${T}>`>();\n Object.defineProperty(schema, CONVEX_ID_TABLE, {\n configurable: false,\n enumerable: false,\n value: table,\n writable: false,\n });\n return schema as ConvexIdSchema<T>;\n}\n\nexport function getConvexIdTable(schema: z.ZodTypeAny): string | undefined {\n return (schema as Partial<Record<typeof CONVEX_ID_TABLE, string>>)[\n CONVEX_ID_TABLE\n ];\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\n\nexport type CliOptionKind = \"string\" | \"number\" | \"bigint\" | \"boolean\" | \"json\";\n\nexport type CliOptionSpec = {\n name: string;\n kind: CliOptionKind;\n required: boolean;\n variadic?: boolean;\n nullable?: boolean;\n choices?: readonly (string | number | boolean)[];\n defaultValue?: unknown;\n description?: string;\n};\n\nexport type CliCommandSpec = {\n options: readonly CliOptionSpec[];\n};\n\nexport type ZodToCliOptions = {\n location?: string;\n};\n\ntype FieldState = {\n schema: ZodTypeAny;\n required: boolean;\n nullable: boolean;\n defaultValue?: unknown;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"cli\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapField(\n schema: ZodTypeAny,\n path: readonly string[]\n): FieldState {\n let current = schema;\n let required = true;\n let nullable = false;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodNullable:\n nullable = true;\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n nullable,\n defaultValue,\n };\n }\n }\n}\n\nfunction primitiveOption(\n name: string,\n kind: CliOptionKind,\n field: FieldState,\n choices?: readonly (string | number | boolean)[]\n): CliOptionSpec {\n return {\n name,\n kind,\n required: field.required,\n nullable: field.nullable || undefined,\n defaultValue: field.defaultValue,\n choices,\n description: field.schema.description,\n };\n}\n\nfunction optionFromSchema(\n name: string,\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): CliOptionSpec {\n const field = unwrapField(schema, path);\n\n switch (field.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodNumber:\n return primitiveOption(name, \"number\", field);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return primitiveOption(name, \"bigint\", field);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return primitiveOption(name, \"boolean\", field);\n case ZodFirstPartyTypeKind.ZodEnum:\n return primitiveOption(name, \"string\", field, field.schema._def.values);\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(field.schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return primitiveOption(\n name,\n values.every((value) => typeof value === \"number\") ? \"number\" : \"string\",\n field,\n values\n );\n }\n case ZodFirstPartyTypeKind.ZodLiteral:\n return primitiveOption(name, \"string\", field, [field.schema._def.value]);\n case ZodFirstPartyTypeKind.ZodArray: {\n const item = unwrapField(field.schema._def.type, [...path, \"[]\"]);\n switch (item.schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { ...primitiveOption(name, \"string\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { ...primitiveOption(name, \"number\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { ...primitiveOption(name, \"bigint\", field), variadic: true };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { ...primitiveOption(name, \"boolean\", field), variadic: true };\n default:\n return {\n ...primitiveOption(name, \"json\", field),\n variadic: false,\n };\n }\n }\n case ZodFirstPartyTypeKind.ZodLazy: {\n const lazySchema = field.schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the CLI adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return optionFromSchema(name, lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n }\n case ZodFirstPartyTypeKind.ZodBranded:\n return primitiveOption(name, \"string\", field);\n case ZodFirstPartyTypeKind.ZodObject:\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n case ZodFirstPartyTypeKind.ZodRecord:\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return primitiveOption(name, \"json\", field);\n default:\n unsupported(\n `Unsupported Zod schema kind ${field.schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToCli(\n schema: z.ZodObject<z.ZodRawShape>,\n options: ZodToCliOptions = {}\n): CliCommandSpec {\n if (schema._def.typeName !== ZodFirstPartyTypeKind.ZodObject) {\n throw schemaAdapterError(\"CLI generation requires a Zod object schema\", {\n adapter: \"cli\",\n location: options.location,\n path: [],\n });\n }\n\n const state: ConversionState = {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n };\n const optionsList = Object.entries(getObjectShape(schema))\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => optionFromSchema(name, value, state, [name]));\n\n return {\n options: optionsList,\n };\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport type { TableIndex } from \"../defineTable.js\";\nimport {\n SchemaAdapterError,\n schemaAdapterError,\n type AdapterPurpose,\n} from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type ConvexDefault = {\n path: readonly string[];\n value: unknown;\n};\n\nexport type ZodToConvexOptions = {\n purpose?: AdapterPurpose;\n location?: string;\n};\n\nexport type ZodToConvexResult = {\n source: string;\n defaults: readonly ConvexDefault[];\n};\n\ntype ConversionState = {\n location?: string;\n purpose: AdapterPurpose;\n seenLazySchemas: WeakSet<object>;\n};\n\ntype ConvertedSchema = {\n source: string;\n defaults: ConvexDefault[];\n};\n\nfunction encodeLiteral(value: string | number | bigint | boolean | null) {\n if (typeof value === \"bigint\") {\n return `${value}n`;\n }\n return JSON.stringify(value);\n}\n\nfunction sortEntries<T>(entries: readonly [string, T][]) {\n return [...entries].sort(([left], [right]) => left.localeCompare(right));\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n isOptional: boolean;\n defaults: ConvexDefault[];\n} {\n const defaults: ConvexDefault[] = [];\n let current = schema;\n let isOptional = false;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n isOptional = true;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault: {\n if (state.purpose === \"table\") {\n throw schemaAdapterError(\n \"Zod defaults are not allowed in table contracts\",\n {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n }\n );\n }\n isOptional = true;\n defaults.push({\n path,\n value: current._def.defaultValue(),\n });\n current = current._def.innerType;\n continue;\n }\n default:\n return {\n schema: current,\n isOptional,\n defaults,\n };\n }\n }\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const { schema: unwrapped, isOptional, defaults } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const converted = convertSchemaInner(unwrapped, state, path);\n return {\n source: isOptional ? `v.optional(${converted.source})` : converted.source,\n defaults: [...defaults, ...converted.defaults],\n };\n}\n\nfunction enumToUnion(values: readonly (string | number)[]) {\n if (values.length === 0) {\n return \"v.never()\";\n }\n if (values.length === 1) {\n return `v.literal(${encodeLiteral(values[0])})`;\n }\n return `v.union(${values\n .map((value) => `v.literal(${encodeLiteral(value)})`)\n .join(\", \")})`;\n}\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"convex\",\n purpose: state.purpose,\n location: state.location,\n path,\n });\n}\n\nfunction convertLazy(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const lazySchema = schema as z.ZodLazy<ZodTypeAny>;\n if (state.seenLazySchemas.has(lazySchema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the Convex adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(lazySchema);\n try {\n return convertSchema(lazySchema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(lazySchema);\n }\n}\n\nfunction convertSchemaInner(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): ConvertedSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n source: `v.id(${JSON.stringify(idTable)})`,\n defaults: [],\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { source: \"v.string()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { source: \"v.number()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { source: \"v.int64()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { source: \"v.boolean()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodNull:\n return { source: \"v.null()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return { source: \"v.any()\", defaults: [] };\n case ZodFirstPartyTypeKind.ZodLiteral: {\n return {\n source: `v.literal(${encodeLiteral(schema._def.value)})`,\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n source: enumToUnion(schema._def.values),\n defaults: [],\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = Object.values(schema._def.values).filter(\n (value): value is string | number =>\n typeof value === \"string\" || typeof value === \"number\"\n );\n return {\n source: enumToUnion([...new Set(values)]),\n defaults: [],\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n source: `v.nullable(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodArray: {\n const inner = convertSchema(schema._def.type, state, [...path, \"[]\"]);\n return {\n source: `v.array(${inner.source})`,\n defaults: inner.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to Convex validators\",\n state,\n path\n );\n }\n const fields = sortEntries(Object.entries(getObjectShape(objectSchema)));\n const convertedFields = fields.map(([key, value]) => [\n key,\n convertSchema(value, state, [...path, key]),\n ] as const);\n return {\n source: `v.object({ ${convertedFields\n .map(([key, converted]) => `${JSON.stringify(key)}: ${converted.source}`)\n .join(\", \")} })`,\n defaults: convertedFields.flatMap(([, converted]) => converted.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion: {\n const members = schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n const members = options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n );\n return {\n source: `v.union(${members\n .map((member: ConvertedSchema) => member.source)\n .join(\", \")})`,\n defaults: members.flatMap((member: ConvertedSchema) => member.defaults),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to Convex validators\",\n state,\n path\n );\n }\n const value = convertSchema(schema._def.valueType, state, [...path, \"{}\"]);\n return {\n source: `v.record(v.string(), ${value.source})`,\n defaults: value.defaults,\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema, state, path);\n case ZodFirstPartyTypeKind.ZodBranded: {\n return convertSchema(schema._def.type, state, path);\n }\n case ZodFirstPartyTypeKind.ZodEffects: {\n return convertSchema(schema._def.schema, state, path);\n }\n default:\n unsupported(`Unsupported Zod schema kind ${schema._def.typeName}`, state, path);\n }\n}\n\nexport function zodToConvex(\n schema: ZodTypeAny,\n options: ZodToConvexOptions = {}\n): ZodToConvexResult {\n const state: ConversionState = {\n location: options.location,\n purpose: options.purpose ?? \"function_returns\",\n seenLazySchemas: new WeakSet<object>(),\n };\n const converted = convertSchema(schema, state, []);\n return {\n source: converted.source,\n defaults: converted.defaults,\n };\n}\n\nexport function tableIndexToConvexSource(index: TableIndex): string {\n switch (index.kind) {\n case \"index\":\n return `.index(${JSON.stringify(index.name)}, [${index.columns\n .map((column) => JSON.stringify(column))\n .join(\", \")}])`;\n case \"search\":\n return `.searchIndex(${JSON.stringify(index.name)}, { searchField: ${JSON.stringify(\n index.searchField\n )}${index.filterFields?.length ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]` : \"\"} })`;\n case \"vector\":\n return `.vectorIndex(${JSON.stringify(index.name)}, { vectorField: ${JSON.stringify(\n index.vectorField\n )}, dimensions: ${index.dimensions}${\n index.filterFields?.length\n ? `, filterFields: [${index.filterFields\n .map((field) => JSON.stringify(field))\n .join(\", \")}]`\n : \"\"\n } })`;\n default: {\n const exhaustive: never = index;\n throw new SchemaAdapterError(\n `Unsupported table index kind ${(exhaustive as { kind?: string }).kind ?? \"unknown\"}`,\n { adapter: \"convex\" }\n );\n }\n }\n}\n","import { z, ZodFirstPartyTypeKind, type ZodTypeAny } from \"zod\";\nimport { schemaAdapterError } from \"../errors.js\";\nimport { getConvexIdTable } from \"../idOf.js\";\n\nexport type JsonSchema =\n | boolean\n | {\n $schema?: string;\n type?: string | readonly string[];\n properties?: Record<string, JsonSchema>;\n required?: readonly string[];\n additionalProperties?: boolean | JsonSchema;\n items?: JsonSchema;\n enum?: readonly (string | number | boolean)[];\n const?: string | number | boolean | null;\n anyOf?: readonly JsonSchema[];\n oneOf?: readonly JsonSchema[];\n default?: unknown;\n format?: string;\n description?: string;\n [key: string]: unknown;\n };\n\nexport type ZodToJsonSchemaOptions = {\n location?: string;\n};\n\ntype JsonField = {\n schema: JsonSchema;\n required: boolean;\n};\n\ntype ConversionState = {\n location?: string;\n seenLazySchemas: WeakSet<object>;\n};\n\nfunction unsupported(\n message: string,\n state: ConversionState,\n path: readonly string[]\n): never {\n throw schemaAdapterError(message, {\n adapter: \"jsonschema\",\n location: state.location,\n path,\n });\n}\n\nfunction getObjectShape(schema: z.ZodObject<z.ZodRawShape>) {\n const shape =\n typeof schema._def.shape === \"function\" ? schema._def.shape() : schema._def.shape;\n return shape as z.ZodRawShape;\n}\n\nfunction unwrapOptionalLike(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): {\n schema: ZodTypeAny;\n required: boolean;\n defaultValue?: unknown;\n} {\n let current = schema;\n let required = true;\n let defaultValue: unknown;\n\n while (true) {\n switch (current._def.typeName) {\n case ZodFirstPartyTypeKind.ZodOptional:\n required = false;\n current = current._def.innerType;\n continue;\n case ZodFirstPartyTypeKind.ZodDefault:\n required = false;\n defaultValue = current._def.defaultValue();\n current = current._def.innerType;\n continue;\n default:\n return {\n schema: current,\n required,\n defaultValue,\n };\n }\n }\n}\n\nfunction convertLazy(\n schema: z.ZodLazy<ZodTypeAny>,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n if (state.seenLazySchemas.has(schema)) {\n unsupported(\n \"Recursive z.lazy schemas are not supported by the JSON Schema adapter\",\n state,\n path\n );\n }\n state.seenLazySchemas.add(schema);\n try {\n return convertSchema(schema._def.getter(), state, path);\n } finally {\n state.seenLazySchemas.delete(schema);\n }\n}\n\nfunction literalType(value: unknown) {\n switch (typeof value) {\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isInteger(value) ? \"integer\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"bigint\":\n return \"integer\";\n default:\n return value === null ? \"null\" : undefined;\n }\n}\n\nfunction convertField(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonField {\n const { schema: unwrapped, required, defaultValue } = unwrapOptionalLike(\n schema,\n state,\n path\n );\n const field = convertSchema(unwrapped, state, path);\n if (typeof field === \"boolean\") {\n return {\n schema: field,\n required,\n };\n }\n return {\n schema:\n defaultValue === undefined ? field : { ...field, default: defaultValue },\n required,\n };\n}\n\nfunction convertSchema(\n schema: ZodTypeAny,\n state: ConversionState,\n path: readonly string[]\n): JsonSchema {\n const idTable = getConvexIdTable(schema);\n if (idTable) {\n return {\n type: \"string\",\n \"x-convex-id-table\": idTable,\n };\n }\n\n switch (schema._def.typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return { type: \"string\" };\n case ZodFirstPartyTypeKind.ZodNumber:\n return { type: \"number\" };\n case ZodFirstPartyTypeKind.ZodBigInt:\n return { type: \"integer\", format: \"int64\" };\n case ZodFirstPartyTypeKind.ZodBoolean:\n return { type: \"boolean\" };\n case ZodFirstPartyTypeKind.ZodNull:\n return { type: \"null\" };\n case ZodFirstPartyTypeKind.ZodAny:\n case ZodFirstPartyTypeKind.ZodUnknown:\n return {};\n case ZodFirstPartyTypeKind.ZodLiteral:\n return {\n const: schema._def.value,\n type: literalType(schema._def.value),\n };\n case ZodFirstPartyTypeKind.ZodEnum:\n return {\n type: \"string\",\n enum: schema._def.values,\n };\n case ZodFirstPartyTypeKind.ZodNativeEnum: {\n const values = [...new Set(Object.values(schema._def.values))].filter(\n (value): value is string | number | boolean =>\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n );\n return {\n type: values.every((value) => typeof value === \"number\")\n ? \"number\"\n : \"string\",\n enum: values,\n };\n }\n case ZodFirstPartyTypeKind.ZodNullable: {\n const inner = convertSchema(schema._def.innerType, state, path);\n return {\n anyOf: [inner, { type: \"null\" }],\n };\n }\n case ZodFirstPartyTypeKind.ZodArray:\n return {\n type: \"array\",\n items: convertSchema(schema._def.type, state, [...path, \"[]\"]),\n };\n case ZodFirstPartyTypeKind.ZodObject: {\n const objectSchema = schema as z.ZodObject<z.ZodRawShape>;\n if (\n objectSchema._def.catchall &&\n objectSchema._def.catchall._def.typeName !== ZodFirstPartyTypeKind.ZodNever\n ) {\n unsupported(\n \"Zod objects with catchall/passthrough fields cannot be lowered to JSON Schema\",\n state,\n path\n );\n }\n const entries = Object.entries(getObjectShape(objectSchema)).sort(([a], [b]) =>\n a.localeCompare(b)\n );\n const converted = entries.map(([key, value]) => [\n key,\n convertField(value, state, [...path, key]),\n ] as const);\n const required = converted\n .filter(([, field]) => field.required)\n .map(([key]) => key);\n return {\n type: \"object\",\n properties: Object.fromEntries(\n converted.map(([key, field]) => [key, field.schema])\n ),\n additionalProperties: false,\n ...(required.length > 0 ? { required } : {}),\n };\n }\n case ZodFirstPartyTypeKind.ZodUnion:\n return {\n anyOf: schema._def.options.map((option: ZodTypeAny, index: number) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion: {\n const discriminatedUnion = schema as z.ZodDiscriminatedUnion<\n string,\n [z.ZodObject<z.ZodRawShape>, ...z.ZodObject<z.ZodRawShape>[]]\n >;\n const options =\n discriminatedUnion.options instanceof Map\n ? [...discriminatedUnion.options.values()]\n : [...discriminatedUnion.options];\n return {\n oneOf: options.map((option, index) =>\n convertSchema(option, state, [...path, String(index)])\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodRecord: {\n const keyType = schema._def.keyType;\n if (\n keyType &&\n keyType._def.typeName !== ZodFirstPartyTypeKind.ZodString\n ) {\n unsupported(\n \"Only string-keyed z.record schemas can be lowered to JSON Schema\",\n state,\n path\n );\n }\n return {\n type: \"object\",\n additionalProperties: convertSchema(\n schema._def.valueType,\n state,\n [...path, \"{}\"]\n ),\n };\n }\n case ZodFirstPartyTypeKind.ZodLazy:\n return convertLazy(schema as z.ZodLazy<ZodTypeAny>, state, path);\n case ZodFirstPartyTypeKind.ZodBranded:\n return convertSchema(schema._def.type, state, path);\n default:\n unsupported(\n `Unsupported Zod schema kind ${schema._def.typeName}`,\n state,\n path\n );\n }\n}\n\nexport function zodToJsonSchema(\n schema: ZodTypeAny,\n options: ZodToJsonSchemaOptions = {}\n): JsonSchema {\n const converted = convertSchema(schema, {\n location: options.location,\n seenLazySchemas: new WeakSet<object>(),\n }, []);\n if (typeof converted === \"boolean\") {\n return converted;\n }\n return {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n ...converted,\n };\n}\n"]}
|
|
@@ -83,6 +83,9 @@ type FunctionConvexTarget = {
|
|
|
83
83
|
inputProjection?: ContractInputProjection;
|
|
84
84
|
outputProjection?: ContractOutputProjection;
|
|
85
85
|
};
|
|
86
|
+
type FunctionGatewayTarget = {
|
|
87
|
+
handler: "identity.whoami" | "beliefs.list" | "evidence.list" | "questions.list" | "tasks.create" | "tasks.list" | "tasks.update" | "tasks.complete";
|
|
88
|
+
};
|
|
86
89
|
|
|
87
90
|
declare const beliefsContracts: readonly [{
|
|
88
91
|
name: string;
|
|
@@ -112,9 +115,10 @@ declare const beliefsContracts: readonly [{
|
|
|
112
115
|
};
|
|
113
116
|
auth: {
|
|
114
117
|
scopes: string[];
|
|
115
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
118
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
116
119
|
};
|
|
117
120
|
convex: FunctionConvexTarget | undefined;
|
|
121
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
118
122
|
args: z.ZodTypeAny;
|
|
119
123
|
returns: z.ZodTypeAny;
|
|
120
124
|
input: z.ZodTypeAny;
|
|
@@ -151,9 +155,10 @@ declare const beliefsContracts: readonly [{
|
|
|
151
155
|
};
|
|
152
156
|
auth: {
|
|
153
157
|
scopes: string[];
|
|
154
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
158
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
155
159
|
};
|
|
156
160
|
convex: FunctionConvexTarget | undefined;
|
|
161
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
157
162
|
args: z.ZodTypeAny;
|
|
158
163
|
returns: z.ZodTypeAny;
|
|
159
164
|
input: z.ZodTypeAny;
|
|
@@ -190,9 +195,10 @@ declare const beliefsContracts: readonly [{
|
|
|
190
195
|
};
|
|
191
196
|
auth: {
|
|
192
197
|
scopes: string[];
|
|
193
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
198
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
194
199
|
};
|
|
195
200
|
convex: FunctionConvexTarget | undefined;
|
|
201
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
196
202
|
args: z.ZodTypeAny;
|
|
197
203
|
returns: z.ZodTypeAny;
|
|
198
204
|
input: z.ZodTypeAny;
|
|
@@ -229,9 +235,10 @@ declare const beliefsContracts: readonly [{
|
|
|
229
235
|
};
|
|
230
236
|
auth: {
|
|
231
237
|
scopes: string[];
|
|
232
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
238
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
233
239
|
};
|
|
234
240
|
convex: FunctionConvexTarget | undefined;
|
|
241
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
235
242
|
args: z.ZodTypeAny;
|
|
236
243
|
returns: z.ZodTypeAny;
|
|
237
244
|
input: z.ZodTypeAny;
|
|
@@ -268,9 +275,10 @@ declare const beliefsContracts: readonly [{
|
|
|
268
275
|
};
|
|
269
276
|
auth: {
|
|
270
277
|
scopes: string[];
|
|
271
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
278
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
272
279
|
};
|
|
273
280
|
convex: FunctionConvexTarget | undefined;
|
|
281
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
274
282
|
args: z.ZodTypeAny;
|
|
275
283
|
returns: z.ZodTypeAny;
|
|
276
284
|
input: z.ZodTypeAny;
|
|
@@ -307,9 +315,10 @@ declare const beliefsContracts: readonly [{
|
|
|
307
315
|
};
|
|
308
316
|
auth: {
|
|
309
317
|
scopes: string[];
|
|
310
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
318
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
311
319
|
};
|
|
312
320
|
convex: FunctionConvexTarget | undefined;
|
|
321
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
313
322
|
args: z.ZodTypeAny;
|
|
314
323
|
returns: z.ZodTypeAny;
|
|
315
324
|
input: z.ZodTypeAny;
|
|
@@ -346,9 +355,10 @@ declare const beliefsContracts: readonly [{
|
|
|
346
355
|
};
|
|
347
356
|
auth: {
|
|
348
357
|
scopes: string[];
|
|
349
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
358
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
350
359
|
};
|
|
351
360
|
convex: FunctionConvexTarget | undefined;
|
|
361
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
352
362
|
args: z.ZodTypeAny;
|
|
353
363
|
returns: z.ZodTypeAny;
|
|
354
364
|
input: z.ZodTypeAny;
|
|
@@ -385,9 +395,10 @@ declare const beliefsContracts: readonly [{
|
|
|
385
395
|
};
|
|
386
396
|
auth: {
|
|
387
397
|
scopes: string[];
|
|
388
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
398
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
389
399
|
};
|
|
390
400
|
convex: FunctionConvexTarget | undefined;
|
|
401
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
391
402
|
args: z.ZodTypeAny;
|
|
392
403
|
returns: z.ZodTypeAny;
|
|
393
404
|
input: z.ZodTypeAny;
|
|
@@ -424,9 +435,10 @@ declare const beliefsContracts: readonly [{
|
|
|
424
435
|
};
|
|
425
436
|
auth: {
|
|
426
437
|
scopes: string[];
|
|
427
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
438
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
428
439
|
};
|
|
429
440
|
convex: FunctionConvexTarget | undefined;
|
|
441
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
430
442
|
args: z.ZodTypeAny;
|
|
431
443
|
returns: z.ZodTypeAny;
|
|
432
444
|
input: z.ZodTypeAny;
|
|
@@ -463,9 +475,10 @@ declare const beliefsContracts: readonly [{
|
|
|
463
475
|
};
|
|
464
476
|
auth: {
|
|
465
477
|
scopes: string[];
|
|
466
|
-
allowedPrincipalTypes: ("user" | "service" | "agent")[];
|
|
478
|
+
allowedPrincipalTypes: ("user" | "service" | "agent" | "group" | "external_viewer")[];
|
|
467
479
|
};
|
|
468
480
|
convex: FunctionConvexTarget | undefined;
|
|
481
|
+
gateway: FunctionGatewayTarget | undefined;
|
|
469
482
|
args: z.ZodTypeAny;
|
|
470
483
|
returns: z.ZodTypeAny;
|
|
471
484
|
input: z.ZodTypeAny;
|