@lucern/contracts 0.1.2-alpha.5 → 0.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/defineFunction-DO97DKs4.d.ts +14 -0
- package/dist/defineTable-CBQ03FXl.d.ts +36 -0
- package/dist/dsl-BgpoVOVQ.d.ts +110 -0
- package/dist/dsl.d.ts +5 -0
- package/dist/dsl.js +678 -0
- package/dist/dsl.js.map +1 -0
- package/dist/function-registry/beliefs.d.ts +479 -0
- package/dist/function-registry/beliefs.js +4677 -0
- package/dist/function-registry/beliefs.js.map +1 -0
- package/dist/function-registry/coding.d.ts +323 -0
- package/dist/function-registry/coding.js +4451 -0
- package/dist/function-registry/coding.js.map +1 -0
- package/dist/function-registry/context.d.ts +206 -0
- package/dist/function-registry/context.js +4336 -0
- package/dist/function-registry/context.js.map +1 -0
- package/dist/function-registry/contracts.d.ts +206 -0
- package/dist/function-registry/contracts.js +4284 -0
- package/dist/function-registry/contracts.js.map +1 -0
- package/dist/function-registry/coordination.d.ts +440 -0
- package/dist/function-registry/coordination.js +4405 -0
- package/dist/function-registry/coordination.js.map +1 -0
- package/dist/function-registry/edges.d.ts +167 -0
- package/dist/function-registry/edges.js +4425 -0
- package/dist/function-registry/edges.js.map +1 -0
- package/dist/function-registry/evidence.d.ts +401 -0
- package/dist/function-registry/evidence.js +4598 -0
- package/dist/function-registry/evidence.js.map +1 -0
- package/dist/function-registry/graph.d.ts +596 -0
- package/dist/function-registry/graph.js +4489 -0
- package/dist/function-registry/graph.js.map +1 -0
- package/dist/function-registry/helpers.d.ts +84 -0
- package/dist/function-registry/helpers.js +4280 -0
- package/dist/function-registry/helpers.js.map +1 -0
- package/dist/function-registry/identity.d.ts +206 -0
- package/dist/function-registry/identity.js +4295 -0
- package/dist/function-registry/identity.js.map +1 -0
- package/dist/function-registry/index.d.ts +32 -0
- package/dist/function-registry/index.js +4384 -0
- package/dist/function-registry/index.js.map +1 -0
- package/dist/function-registry/judgments.d.ts +167 -0
- package/dist/function-registry/judgments.js +4308 -0
- package/dist/function-registry/judgments.js.map +1 -0
- package/dist/function-registry/legacy.d.ts +128 -0
- package/dist/function-registry/legacy.js +4259 -0
- package/dist/function-registry/legacy.js.map +1 -0
- package/dist/function-registry/lenses.d.ts +245 -0
- package/dist/function-registry/lenses.js +4343 -0
- package/dist/function-registry/lenses.js.map +1 -0
- package/dist/function-registry/manifest.d.ts +36 -0
- package/dist/function-registry/manifest.js +367 -0
- package/dist/function-registry/manifest.js.map +1 -0
- package/dist/function-registry/ontologies.d.ts +518 -0
- package/dist/function-registry/ontologies.js +4442 -0
- package/dist/function-registry/ontologies.js.map +1 -0
- package/dist/function-registry/pipeline.d.ts +206 -0
- package/dist/function-registry/pipeline.js +4295 -0
- package/dist/function-registry/pipeline.js.map +1 -0
- package/dist/function-registry/questions.d.ts +557 -0
- package/dist/function-registry/questions.js +4528 -0
- package/dist/function-registry/questions.js.map +1 -0
- package/dist/function-registry/tasks.d.ts +245 -0
- package/dist/function-registry/tasks.js +4373 -0
- package/dist/function-registry/tasks.js.map +1 -0
- package/dist/function-registry/topics.d.ts +284 -0
- package/dist/function-registry/topics.js +4350 -0
- package/dist/function-registry/topics.js.map +1 -0
- package/dist/function-registry/types.d.ts +84 -0
- package/dist/function-registry/types.js +3 -0
- package/dist/function-registry/types.js.map +1 -0
- package/dist/function-registry/worktrees.d.ts +479 -0
- package/dist/function-registry/worktrees.js +4522 -0
- package/dist/function-registry/worktrees.js.map +1 -0
- package/dist/generated/convexSchemas.d.ts +20 -0
- package/dist/generated/convexSchemas.js +161 -0
- package/dist/generated/convexSchemas.js.map +1 -0
- package/dist/generated/schema-manifest.json +5231 -0
- package/dist/generated/tableOwnership.d.ts +128 -0
- package/dist/generated/tableOwnership.js +278 -0
- package/dist/generated/tableOwnership.js.map +1 -0
- package/dist/generated/tier-expectations.json +363 -0
- package/dist/idOf-DR8tkhQS.d.ts +10 -0
- package/dist/index-CV-0_VWJ.d.ts +25 -0
- package/dist/index.d.ts +421 -2
- package/dist/index.js +7634 -1607
- package/dist/index.js.map +1 -1
- package/dist/schema-helpers/enumValidation.d.ts +17 -0
- package/dist/schema-helpers/enumValidation.js +143 -0
- package/dist/schema-helpers/enumValidation.js.map +1 -0
- package/dist/schema-helpers/spine/nodes/decision.d.ts +19 -0
- package/dist/schema-helpers/spine/nodes/decision.js +81 -0
- package/dist/schema-helpers/spine/nodes/decision.js.map +1 -0
- package/dist/schema-helpers/spine/tables/epistemicNodes.d.ts +9 -0
- package/dist/schema-helpers/spine/tables/epistemicNodes.js +62 -0
- package/dist/schema-helpers/spine/tables/epistemicNodes.js.map +1 -0
- package/dist/schema-helpers/topicIds.d.ts +17 -0
- package/dist/schema-helpers/topicIds.js +21 -0
- package/dist/schema-helpers/topicIds.js.map +1 -0
- package/dist/schema-helpers/topicLegacyScope.d.ts +19 -0
- package/dist/schema-helpers/topicLegacyScope.js +44 -0
- package/dist/schema-helpers/topicLegacyScope.js.map +1 -0
- package/dist/schema-helpers/validators.d.ts +8 -0
- package/dist/schema-helpers/validators.js +18 -0
- package/dist/schema-helpers/validators.js.map +1 -0
- package/dist/schemas/component-table-manifest.d.ts +74 -0
- package/dist/schemas/component-table-manifest.js +26 -0
- package/dist/schemas/component-table-manifest.js.map +1 -0
- package/dist/schemas/enums.d.ts +12 -0
- package/dist/schemas/enums.js +11 -0
- package/dist/schemas/enums.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.js +4298 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/manifest.d.ts +24586 -0
- package/dist/schemas/manifest.js +4269 -0
- package/dist/schemas/manifest.js.map +1 -0
- package/dist/schemas/sl-opinion.d.ts +31 -0
- package/dist/schemas/sl-opinion.js +19 -0
- package/dist/schemas/sl-opinion.js.map +1 -0
- package/dist/schemas/tables/identity/agent.d.ts +21 -0
- package/dist/schemas/tables/identity/agent.js +41 -0
- package/dist/schemas/tables/identity/agent.js.map +1 -0
- package/dist/schemas/tables/identity/epistemic.d.ts +18 -0
- package/dist/schemas/tables/identity/epistemic.js +38 -0
- package/dist/schemas/tables/identity/epistemic.js.map +1 -0
- package/dist/schemas/tables/identity/model.d.ts +62 -0
- package/dist/schemas/tables/identity/model.js +110 -0
- package/dist/schemas/tables/identity/model.js.map +1 -0
- package/dist/schemas/tables/identity/platform.d.ts +392 -0
- package/dist/schemas/tables/identity/platform.js +475 -0
- package/dist/schemas/tables/identity/platform.js.map +1 -0
- package/dist/schemas/tables/identity/project.d.ts +22 -0
- package/dist/schemas/tables/identity/project.js +48 -0
- package/dist/schemas/tables/identity/project.js.map +1 -0
- package/dist/schemas/tables/identity/user.d.ts +26 -0
- package/dist/schemas/tables/identity/user.js +47 -0
- package/dist/schemas/tables/identity/user.js.map +1 -0
- package/dist/schemas/tables/kernel/config.d.ts +20 -0
- package/dist/schemas/tables/kernel/config.js +39 -0
- package/dist/schemas/tables/kernel/config.js.map +1 -0
- package/dist/schemas/tables/kernel/coordination.d.ts +30 -0
- package/dist/schemas/tables/kernel/coordination.js +57 -0
- package/dist/schemas/tables/kernel/coordination.js.map +1 -0
- package/dist/schemas/tables/kernel/decision.d.ts +246 -0
- package/dist/schemas/tables/kernel/decision.js +371 -0
- package/dist/schemas/tables/kernel/decision.js.map +1 -0
- package/dist/schemas/tables/kernel/embedding.d.ts +18 -0
- package/dist/schemas/tables/kernel/embedding.js +48 -0
- package/dist/schemas/tables/kernel/embedding.js.map +1 -0
- package/dist/schemas/tables/kernel/epistemic.d.ts +317 -0
- package/dist/schemas/tables/kernel/epistemic.js +329 -0
- package/dist/schemas/tables/kernel/epistemic.js.map +1 -0
- package/dist/schemas/tables/kernel/idempotency.d.ts +13 -0
- package/dist/schemas/tables/kernel/idempotency.js +31 -0
- package/dist/schemas/tables/kernel/idempotency.js.map +1 -0
- package/dist/schemas/tables/kernel/infra.d.ts +183 -0
- package/dist/schemas/tables/kernel/infra.js +182 -0
- package/dist/schemas/tables/kernel/infra.js.map +1 -0
- package/dist/schemas/tables/kernel/intelligence.d.ts +293 -0
- package/dist/schemas/tables/kernel/intelligence.js +207 -0
- package/dist/schemas/tables/kernel/intelligence.js.map +1 -0
- package/dist/schemas/tables/kernel/lens.d.ts +192 -0
- package/dist/schemas/tables/kernel/lens.js +122 -0
- package/dist/schemas/tables/kernel/lens.js.map +1 -0
- package/dist/schemas/tables/kernel/ontology.d.ts +89 -0
- package/dist/schemas/tables/kernel/ontology.js +91 -0
- package/dist/schemas/tables/kernel/ontology.js.map +1 -0
- package/dist/schemas/tables/kernel/platform.d.ts +353 -0
- package/dist/schemas/tables/kernel/platform.js +349 -0
- package/dist/schemas/tables/kernel/platform.js.map +1 -0
- package/dist/schemas/tables/kernel/spine.d.ts +206 -0
- package/dist/schemas/tables/kernel/spine.js +243 -0
- package/dist/schemas/tables/kernel/spine.js.map +1 -0
- package/dist/schemas/tables/kernel/task.d.ts +614 -0
- package/dist/schemas/tables/kernel/task.js +189 -0
- package/dist/schemas/tables/kernel/task.js.map +1 -0
- package/dist/schemas/tables/kernel/topic.d.ts +25 -0
- package/dist/schemas/tables/kernel/topic.js +62 -0
- package/dist/schemas/tables/kernel/topic.js.map +1 -0
- package/dist/schemas/tables/kernel/workflow.d.ts +45 -0
- package/dist/schemas/tables/kernel/workflow.js +94 -0
- package/dist/schemas/tables/kernel/workflow.js.map +1 -0
- package/dist/schemas/tables/kernel/worktree.d.ts +823 -0
- package/dist/schemas/tables/kernel/worktree.js +330 -0
- package/dist/schemas/tables/kernel/worktree.js.map +1 -0
- package/dist/schemas/tables/mc/identity.d.ts +134 -0
- package/dist/schemas/tables/mc/identity.js +221 -0
- package/dist/schemas/tables/mc/identity.js.map +1 -0
- package/dist/schemas/tables/mc/methodology.d.ts +46 -0
- package/dist/schemas/tables/mc/methodology.js +69 -0
- package/dist/schemas/tables/mc/methodology.js.map +1 -0
- package/dist/schemas/tables/mc/pack.d.ts +540 -0
- package/dist/schemas/tables/mc/pack.js +294 -0
- package/dist/schemas/tables/mc/pack.js.map +1 -0
- package/dist/schemas/tables/mc/policy.d.ts +57 -0
- package/dist/schemas/tables/mc/policy.js +121 -0
- package/dist/schemas/tables/mc/policy.js.map +1 -0
- package/dist/schemas/tables/mc/registry.d.ts +155 -0
- package/dist/schemas/tables/mc/registry.js +164 -0
- package/dist/schemas/tables/mc/registry.js.map +1 -0
- package/dist/schemas/tables/mc/runtime.d.ts +119 -0
- package/dist/schemas/tables/mc/runtime.js +199 -0
- package/dist/schemas/tables/mc/runtime.js.map +1 -0
- package/dist/schemas/tables/mc/tenant.d.ts +106 -0
- package/dist/schemas/tables/mc/tenant.js +114 -0
- package/dist/schemas/tables/mc/tenant.js.map +1 -0
- package/dist/schemas/tables/mc/workspace.d.ts +28 -0
- package/dist/schemas/tables/mc/workspace.js +52 -0
- package/dist/schemas/tables/mc/workspace.js.map +1 -0
- package/dist/sdk-methods.contract.d.ts +5 -2
- package/dist/{sdk-tools.contract-BnV0hKLp.d.ts → sdk-tools.contract-S4ia0TTo.d.ts} +3 -7
- package/dist/sdk-tools.contract.d.ts +2 -2
- package/dist/sdk-tools.contract.js +810 -218
- package/dist/sdk-tools.contract.js.map +1 -1
- package/dist/tool-contracts-C92-9ueT.d.ts +290 -0
- package/dist/tool-contracts.d.ts +1 -0
- package/dist/{mcp-tools.contract.js → tool-contracts.js} +812 -159
- package/dist/tool-contracts.js.map +1 -0
- package/dist/workflow-runtime.contract.js +1 -1
- package/dist/workflow-runtime.contract.js.map +1 -1
- package/package.json +137 -2
- package/dist/mcp-tools.contract-D8kXcP6d.d.ts +0 -254
- package/dist/mcp-tools.contract.d.ts +0 -1
- package/dist/mcp-tools.contract.js.map +0 -1
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// src/schemas/tables/identity/platform.ts
|
|
4
|
+
|
|
5
|
+
// src/dsl/defineTable.ts
|
|
6
|
+
function defineTable(spec) {
|
|
7
|
+
return spec;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// src/schemas/tables/identity/platform.ts
|
|
11
|
+
var mcpWritePolicy = defineTable({
|
|
12
|
+
name: "mcpWritePolicy",
|
|
13
|
+
component: "identity",
|
|
14
|
+
category: "platform",
|
|
15
|
+
shape: z.object({
|
|
16
|
+
"topicId": z.string().optional(),
|
|
17
|
+
"role": z.string(),
|
|
18
|
+
"toolCategory": z.string(),
|
|
19
|
+
"permission": z.enum(["allow", "deny", "review_required"]),
|
|
20
|
+
"maxWritesPerSession": z.number().optional(),
|
|
21
|
+
"enabled": z.boolean(),
|
|
22
|
+
"rationale": z.string().optional(),
|
|
23
|
+
"createdAt": z.number(),
|
|
24
|
+
"updatedAt": z.number(),
|
|
25
|
+
"createdBy": z.string()
|
|
26
|
+
}),
|
|
27
|
+
indices: [
|
|
28
|
+
{ kind: "index", name: "by_topicId", columns: ["topicId"] },
|
|
29
|
+
{ kind: "index", name: "by_role", columns: ["role"] },
|
|
30
|
+
{ kind: "index", name: "by_topicId_role", columns: ["topicId", "role"] },
|
|
31
|
+
{ kind: "index", name: "by_enabled", columns: ["enabled"] }
|
|
32
|
+
]
|
|
33
|
+
});
|
|
34
|
+
var platformAudienceGrants = defineTable({
|
|
35
|
+
name: "platformAudienceGrants",
|
|
36
|
+
component: "identity",
|
|
37
|
+
category: "platform",
|
|
38
|
+
shape: z.object({
|
|
39
|
+
"tenantId": z.string(),
|
|
40
|
+
"workspaceId": z.string().optional(),
|
|
41
|
+
"principalId": z.string().optional(),
|
|
42
|
+
"groupId": z.string().optional(),
|
|
43
|
+
"audienceKey": z.string(),
|
|
44
|
+
"audienceClass": z.enum(["internal", "restricted_external", "public"]),
|
|
45
|
+
"status": z.enum(["active", "revoked", "expired"]),
|
|
46
|
+
"grantedBy": z.string().optional(),
|
|
47
|
+
"expiresAt": z.number().optional(),
|
|
48
|
+
"metadata": z.record(z.any()).optional(),
|
|
49
|
+
"createdAt": z.number(),
|
|
50
|
+
"updatedAt": z.number()
|
|
51
|
+
}),
|
|
52
|
+
indices: [
|
|
53
|
+
{ kind: "index", name: "by_tenant_principal", columns: ["tenantId", "principalId"] },
|
|
54
|
+
{ kind: "index", name: "by_tenant_group", columns: ["tenantId", "groupId"] },
|
|
55
|
+
{ kind: "index", name: "by_tenant_audienceKey", columns: ["tenantId", "audienceKey"] },
|
|
56
|
+
{ kind: "index", name: "by_principal_status", columns: ["principalId", "status"] },
|
|
57
|
+
{ kind: "index", name: "by_group_status", columns: ["groupId", "status"] }
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
var platformAudiences = defineTable({
|
|
61
|
+
name: "platformAudiences",
|
|
62
|
+
component: "identity",
|
|
63
|
+
category: "platform",
|
|
64
|
+
shape: z.object({
|
|
65
|
+
"tenantId": z.string(),
|
|
66
|
+
"workspaceId": z.string().optional(),
|
|
67
|
+
"audienceKey": z.string(),
|
|
68
|
+
"audienceLabel": z.string(),
|
|
69
|
+
"audienceClass": z.enum(["internal", "restricted_external", "public"]),
|
|
70
|
+
"status": z.enum(["active", "disabled", "archived"]),
|
|
71
|
+
"description": z.string().optional(),
|
|
72
|
+
"metadata": z.record(z.any()).optional(),
|
|
73
|
+
"createdBy": z.string().optional(),
|
|
74
|
+
"createdAt": z.number(),
|
|
75
|
+
"updatedAt": z.number()
|
|
76
|
+
}),
|
|
77
|
+
indices: [
|
|
78
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
79
|
+
{ kind: "index", name: "by_workspaceId", columns: ["workspaceId"] },
|
|
80
|
+
{ kind: "index", name: "by_tenant_audienceKey", columns: ["tenantId", "audienceKey"] },
|
|
81
|
+
{ kind: "index", name: "by_tenant_workspace_audienceKey", columns: ["tenantId", "workspaceId", "audienceKey"] },
|
|
82
|
+
{ kind: "index", name: "by_tenant_status", columns: ["tenantId", "status"] }
|
|
83
|
+
]
|
|
84
|
+
});
|
|
85
|
+
var platformPolicyDecisionLogs = defineTable({
|
|
86
|
+
name: "platformPolicyDecisionLogs",
|
|
87
|
+
component: "identity",
|
|
88
|
+
category: "platform",
|
|
89
|
+
shape: z.object({
|
|
90
|
+
"principalId": z.string(),
|
|
91
|
+
"tenantId": z.string().optional(),
|
|
92
|
+
"workspaceId": z.string().optional(),
|
|
93
|
+
"topicId": z.string().optional(),
|
|
94
|
+
"resourceType": z.string(),
|
|
95
|
+
"resourceId": z.string(),
|
|
96
|
+
"action": z.enum(["read", "summarize", "export", "mutate", "admin", "comment", "escalate", "resolve", "vote"]),
|
|
97
|
+
"decision": z.enum(["allow", "deny"]),
|
|
98
|
+
"reasonCode": z.string(),
|
|
99
|
+
"policyVersion": z.string(),
|
|
100
|
+
"policyBundleId": z.string().optional(),
|
|
101
|
+
"audienceKey": z.string().optional(),
|
|
102
|
+
"audienceClass": z.enum(["internal", "restricted_external", "public"]).optional(),
|
|
103
|
+
"audienceMode": z.string().optional(),
|
|
104
|
+
"traceId": z.string().optional(),
|
|
105
|
+
"packKey": z.string().optional(),
|
|
106
|
+
"metadata": z.record(z.any()).optional(),
|
|
107
|
+
"createdAt": z.number()
|
|
108
|
+
}),
|
|
109
|
+
indices: [
|
|
110
|
+
{ kind: "index", name: "by_principal_createdAt", columns: ["principalId", "createdAt"] },
|
|
111
|
+
{ kind: "index", name: "by_tenant_createdAt", columns: ["tenantId", "createdAt"] },
|
|
112
|
+
{ kind: "index", name: "by_pack_createdAt", columns: ["packKey", "createdAt"] },
|
|
113
|
+
{ kind: "index", name: "by_audienceKey_createdAt", columns: ["audienceKey", "createdAt"] },
|
|
114
|
+
{ kind: "index", name: "by_audienceClass_createdAt", columns: ["audienceClass", "createdAt"] },
|
|
115
|
+
{ kind: "index", name: "by_decision_createdAt", columns: ["decision", "createdAt"] },
|
|
116
|
+
{ kind: "index", name: "by_traceId", columns: ["traceId"] },
|
|
117
|
+
{ kind: "index", name: "by_topicId", columns: ["topicId"] },
|
|
118
|
+
{ kind: "index", name: "by_topic_createdAt", columns: ["topicId", "createdAt"] }
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
var tenantApiKeys = defineTable({
|
|
122
|
+
name: "tenantApiKeys",
|
|
123
|
+
component: "identity",
|
|
124
|
+
category: "platform",
|
|
125
|
+
shape: z.object({
|
|
126
|
+
"tenantId": z.string(),
|
|
127
|
+
"workspaceId": z.string().optional(),
|
|
128
|
+
"label": z.string().optional(),
|
|
129
|
+
"keyPrefix": z.string(),
|
|
130
|
+
"hashedKey": z.string(),
|
|
131
|
+
"scopes": z.array(z.string()),
|
|
132
|
+
"status": z.enum(["active", "revoked", "expired"]),
|
|
133
|
+
"expiresAt": z.number().optional(),
|
|
134
|
+
"lastUsedAt": z.number().optional(),
|
|
135
|
+
"revokedAt": z.number().optional(),
|
|
136
|
+
"revokedBy": z.string().optional(),
|
|
137
|
+
"createdBy": z.string(),
|
|
138
|
+
"createdAt": z.number(),
|
|
139
|
+
"updatedAt": z.number()
|
|
140
|
+
}),
|
|
141
|
+
indices: [
|
|
142
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
143
|
+
{ kind: "index", name: "by_workspaceId", columns: ["workspaceId"] },
|
|
144
|
+
{ kind: "index", name: "by_hashedKey", columns: ["hashedKey"] },
|
|
145
|
+
{ kind: "index", name: "by_tenant_status", columns: ["tenantId", "status"] }
|
|
146
|
+
]
|
|
147
|
+
});
|
|
148
|
+
var tenantConfig = defineTable({
|
|
149
|
+
name: "tenantConfig",
|
|
150
|
+
component: "identity",
|
|
151
|
+
category: "platform",
|
|
152
|
+
shape: z.object({
|
|
153
|
+
"tenantId": z.string(),
|
|
154
|
+
"authPolicyMode": z.enum(["open", "invite_only", "sso_required"]),
|
|
155
|
+
"defaultSessionTTL": z.number(),
|
|
156
|
+
"defaultTopicVisibility": z.enum(["private", "tenant", "public"]),
|
|
157
|
+
"featureFlags": z.record(z.boolean()),
|
|
158
|
+
"maxWorkspaceCount": z.number(),
|
|
159
|
+
"defaultModelSlotOverrides": z.record(z.string()),
|
|
160
|
+
"updatedAt": z.number(),
|
|
161
|
+
"updatedBy": z.string()
|
|
162
|
+
}),
|
|
163
|
+
indices: [
|
|
164
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] }
|
|
165
|
+
]
|
|
166
|
+
});
|
|
167
|
+
var tenantIntegrations = defineTable({
|
|
168
|
+
name: "tenantIntegrations",
|
|
169
|
+
component: "identity",
|
|
170
|
+
category: "platform",
|
|
171
|
+
shape: z.object({
|
|
172
|
+
"tenantId": z.string(),
|
|
173
|
+
"integrationKey": z.string(),
|
|
174
|
+
"displayName": z.string(),
|
|
175
|
+
"description": z.string().optional(),
|
|
176
|
+
"category": z.enum(["search", "scraper", "llm", "analysis", "custom"]),
|
|
177
|
+
"capabilities": z.array(z.enum(["search", "deep_research", "scrape", "summarize", "generate"])),
|
|
178
|
+
"config": z.object({
|
|
179
|
+
"apiBaseUrl": z.string(),
|
|
180
|
+
"authType": z.enum(["api_key", "bearer", "basic", "none"]),
|
|
181
|
+
"authHeaderName": z.string().optional(),
|
|
182
|
+
"credentialSecretName": z.string().optional(),
|
|
183
|
+
"defaultParams": z.record(z.any()).optional(),
|
|
184
|
+
"timeout": z.number().optional(),
|
|
185
|
+
"customHeaders": z.record(z.any()).optional()
|
|
186
|
+
}),
|
|
187
|
+
"endpoints": z.object({
|
|
188
|
+
"search": z.object({
|
|
189
|
+
"path": z.string(),
|
|
190
|
+
"method": z.string().optional(),
|
|
191
|
+
"queryParamName": z.string().optional(),
|
|
192
|
+
"resultPath": z.string().optional()
|
|
193
|
+
}).optional(),
|
|
194
|
+
"deepResearch": z.object({
|
|
195
|
+
"path": z.string(),
|
|
196
|
+
"method": z.string().optional(),
|
|
197
|
+
"resultPath": z.string().optional(),
|
|
198
|
+
"async": z.boolean().optional(),
|
|
199
|
+
"pollPath": z.string().optional(),
|
|
200
|
+
"pollIntervalMs": z.number().optional()
|
|
201
|
+
}).optional(),
|
|
202
|
+
"scrape": z.object({
|
|
203
|
+
"path": z.string(),
|
|
204
|
+
"method": z.string().optional(),
|
|
205
|
+
"resultPath": z.string().optional()
|
|
206
|
+
}).optional()
|
|
207
|
+
}).optional(),
|
|
208
|
+
"status": z.enum(["active", "disabled", "error"]),
|
|
209
|
+
"lastUsedAt": z.number().optional(),
|
|
210
|
+
"lastError": z.string().optional(),
|
|
211
|
+
"usageCount": z.number().optional(),
|
|
212
|
+
"createdAt": z.number(),
|
|
213
|
+
"updatedAt": z.number(),
|
|
214
|
+
"createdBy": z.string().optional()
|
|
215
|
+
}),
|
|
216
|
+
indices: [
|
|
217
|
+
{ kind: "index", name: "by_tenant", columns: ["tenantId"] },
|
|
218
|
+
{ kind: "index", name: "by_tenant_key", columns: ["tenantId", "integrationKey"] },
|
|
219
|
+
{ kind: "index", name: "by_tenant_status", columns: ["tenantId", "status"] }
|
|
220
|
+
]
|
|
221
|
+
});
|
|
222
|
+
var tenantModelSlotBindings = defineTable({
|
|
223
|
+
name: "tenantModelSlotBindings",
|
|
224
|
+
component: "identity",
|
|
225
|
+
category: "platform",
|
|
226
|
+
shape: z.object({
|
|
227
|
+
"bindingId": z.string(),
|
|
228
|
+
"tenantId": z.string(),
|
|
229
|
+
"providerId": z.string(),
|
|
230
|
+
"modelSlotId": z.string(),
|
|
231
|
+
"secretRef": z.string(),
|
|
232
|
+
"status": z.enum(["active", "revoked"]),
|
|
233
|
+
"passThroughOnly": z.boolean(),
|
|
234
|
+
"revokedAt": z.number().optional(),
|
|
235
|
+
"revokedBy": z.string().optional(),
|
|
236
|
+
"metadata": z.record(z.any()).optional(),
|
|
237
|
+
"createdBy": z.string(),
|
|
238
|
+
"createdAt": z.number(),
|
|
239
|
+
"updatedAt": z.number()
|
|
240
|
+
}),
|
|
241
|
+
indices: [
|
|
242
|
+
{ kind: "index", name: "by_bindingId", columns: ["bindingId"] },
|
|
243
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
244
|
+
{ kind: "index", name: "by_tenant_slot", columns: ["tenantId", "modelSlotId"] },
|
|
245
|
+
{ kind: "index", name: "by_tenant_provider_slot", columns: ["tenantId", "providerId", "modelSlotId"] },
|
|
246
|
+
{ kind: "index", name: "by_secretRef", columns: ["secretRef"] },
|
|
247
|
+
{ kind: "index", name: "by_status", columns: ["status"] }
|
|
248
|
+
]
|
|
249
|
+
});
|
|
250
|
+
var tenantPolicies = defineTable({
|
|
251
|
+
name: "tenantPolicies",
|
|
252
|
+
component: "identity",
|
|
253
|
+
category: "platform",
|
|
254
|
+
shape: z.object({
|
|
255
|
+
"tenantId": z.string(),
|
|
256
|
+
"workspaceId": z.string().optional(),
|
|
257
|
+
"roleName": z.string(),
|
|
258
|
+
"description": z.string().optional(),
|
|
259
|
+
"permissions": z.array(z.object({
|
|
260
|
+
"resource": z.string(),
|
|
261
|
+
"actions": z.array(z.string())
|
|
262
|
+
})),
|
|
263
|
+
"groupBindings": z.array(z.string()),
|
|
264
|
+
"createdAt": z.number(),
|
|
265
|
+
"updatedAt": z.number(),
|
|
266
|
+
"createdBy": z.string(),
|
|
267
|
+
"updatedBy": z.string().optional()
|
|
268
|
+
}),
|
|
269
|
+
indices: [
|
|
270
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
271
|
+
{ kind: "index", name: "by_workspaceId", columns: ["workspaceId"] },
|
|
272
|
+
{ kind: "index", name: "by_tenant_roleName", columns: ["tenantId", "roleName"] }
|
|
273
|
+
]
|
|
274
|
+
});
|
|
275
|
+
var tenantProviderSecrets = defineTable({
|
|
276
|
+
name: "tenantProviderSecrets",
|
|
277
|
+
component: "identity",
|
|
278
|
+
category: "platform",
|
|
279
|
+
shape: z.object({
|
|
280
|
+
"secretRef": z.string(),
|
|
281
|
+
"tenantId": z.string(),
|
|
282
|
+
"providerId": z.string(),
|
|
283
|
+
"label": z.string().optional(),
|
|
284
|
+
"encryptedSecret": z.string(),
|
|
285
|
+
"encryptionVersion": z.string(),
|
|
286
|
+
"secretFingerprint": z.string(),
|
|
287
|
+
"keyHint": z.string(),
|
|
288
|
+
"status": z.enum(["active", "rotated", "revoked"]),
|
|
289
|
+
"rotatedFromSecretRef": z.string().optional(),
|
|
290
|
+
"revokedAt": z.number().optional(),
|
|
291
|
+
"revokedBy": z.string().optional(),
|
|
292
|
+
"lastUsedAt": z.number().optional(),
|
|
293
|
+
"metadata": z.record(z.any()).optional(),
|
|
294
|
+
"createdBy": z.string(),
|
|
295
|
+
"createdAt": z.number(),
|
|
296
|
+
"updatedAt": z.number()
|
|
297
|
+
}),
|
|
298
|
+
indices: [
|
|
299
|
+
{ kind: "index", name: "by_secretRef", columns: ["secretRef"] },
|
|
300
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
301
|
+
{ kind: "index", name: "by_tenant_provider", columns: ["tenantId", "providerId"] },
|
|
302
|
+
{ kind: "index", name: "by_tenant_provider_status", columns: ["tenantId", "providerId", "status"] },
|
|
303
|
+
{ kind: "index", name: "by_status", columns: ["status"] }
|
|
304
|
+
]
|
|
305
|
+
});
|
|
306
|
+
var tenantProxyGatewayUsage = defineTable({
|
|
307
|
+
name: "tenantProxyGatewayUsage",
|
|
308
|
+
component: "identity",
|
|
309
|
+
category: "platform",
|
|
310
|
+
shape: z.object({
|
|
311
|
+
"usageId": z.string(),
|
|
312
|
+
"tenantId": z.string(),
|
|
313
|
+
"providerId": z.string(),
|
|
314
|
+
"modelSlotId": z.string(),
|
|
315
|
+
"secretRef": z.string(),
|
|
316
|
+
"proxyTokenId": z.string(),
|
|
317
|
+
"sessionId": z.string(),
|
|
318
|
+
"principalId": z.string(),
|
|
319
|
+
"workspaceId": z.string().optional(),
|
|
320
|
+
"modelId": z.string().optional(),
|
|
321
|
+
"requestPath": z.string(),
|
|
322
|
+
"status": z.enum(["success", "error"]),
|
|
323
|
+
"responseStatus": z.number().optional(),
|
|
324
|
+
"inputTokens": z.number().optional(),
|
|
325
|
+
"outputTokens": z.number().optional(),
|
|
326
|
+
"tokenCount": z.number().optional(),
|
|
327
|
+
"latencyMs": z.number(),
|
|
328
|
+
"estimatedCostUsd": z.number().optional(),
|
|
329
|
+
"failureCode": z.string().optional(),
|
|
330
|
+
"metadata": z.record(z.any()).optional(),
|
|
331
|
+
"createdAt": z.number(),
|
|
332
|
+
"updatedAt": z.number()
|
|
333
|
+
}),
|
|
334
|
+
indices: [
|
|
335
|
+
{ kind: "index", name: "by_usageId", columns: ["usageId"] },
|
|
336
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId", "createdAt"] },
|
|
337
|
+
{ kind: "index", name: "by_tenant_provider", columns: ["tenantId", "providerId", "createdAt"] },
|
|
338
|
+
{ kind: "index", name: "by_proxyTokenId", columns: ["proxyTokenId", "createdAt"] }
|
|
339
|
+
]
|
|
340
|
+
});
|
|
341
|
+
var tenantProxyTokenMints = defineTable({
|
|
342
|
+
name: "tenantProxyTokenMints",
|
|
343
|
+
component: "identity",
|
|
344
|
+
category: "platform",
|
|
345
|
+
shape: z.object({
|
|
346
|
+
"proxyTokenId": z.string(),
|
|
347
|
+
"tenantId": z.string(),
|
|
348
|
+
"providerId": z.string(),
|
|
349
|
+
"modelSlotId": z.string(),
|
|
350
|
+
"sessionId": z.string(),
|
|
351
|
+
"principalId": z.string(),
|
|
352
|
+
"workspaceId": z.string().optional(),
|
|
353
|
+
"secretRef": z.string(),
|
|
354
|
+
"expiresAt": z.number(),
|
|
355
|
+
"metadata": z.record(z.any()).optional(),
|
|
356
|
+
"createdAt": z.number()
|
|
357
|
+
}),
|
|
358
|
+
indices: [
|
|
359
|
+
{ kind: "index", name: "by_proxyTokenId", columns: ["proxyTokenId"] },
|
|
360
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId", "createdAt"] },
|
|
361
|
+
{ kind: "index", name: "by_sessionId", columns: ["sessionId", "createdAt"] }
|
|
362
|
+
]
|
|
363
|
+
});
|
|
364
|
+
var tenantSandboxAuditEvents = defineTable({
|
|
365
|
+
name: "tenantSandboxAuditEvents",
|
|
366
|
+
component: "identity",
|
|
367
|
+
category: "platform",
|
|
368
|
+
shape: z.object({
|
|
369
|
+
"eventId": z.string(),
|
|
370
|
+
"tenantId": z.string(),
|
|
371
|
+
"actorClerkId": z.string(),
|
|
372
|
+
"action": z.enum(["sandbox_created", "sandbox_secret_injected", "sandbox_execution_started", "sandbox_execution_completed", "sandbox_limit_violated"]),
|
|
373
|
+
"executionId": z.string(),
|
|
374
|
+
"sessionId": z.string().optional(),
|
|
375
|
+
"principalId": z.string().optional(),
|
|
376
|
+
"workspaceId": z.string().optional(),
|
|
377
|
+
"providerId": z.string().optional(),
|
|
378
|
+
"secretRef": z.string().optional(),
|
|
379
|
+
"toolCallId": z.string().optional(),
|
|
380
|
+
"correlationId": z.string().optional(),
|
|
381
|
+
"sandboxDir": z.string().optional(),
|
|
382
|
+
"timeoutMs": z.number().optional(),
|
|
383
|
+
"memoryLimitMb": z.number().optional(),
|
|
384
|
+
"allowedOrigins": z.array(z.string()).optional(),
|
|
385
|
+
"limitName": z.string().optional(),
|
|
386
|
+
"outcome": z.string().optional(),
|
|
387
|
+
"responseStatus": z.number().optional(),
|
|
388
|
+
"durationMs": z.number().optional(),
|
|
389
|
+
"metadata": z.record(z.any()).optional(),
|
|
390
|
+
"createdAt": z.number()
|
|
391
|
+
}),
|
|
392
|
+
indices: [
|
|
393
|
+
{ kind: "index", name: "by_eventId", columns: ["eventId"] },
|
|
394
|
+
{ kind: "index", name: "by_executionId", columns: ["executionId", "createdAt"] },
|
|
395
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId", "createdAt"] }
|
|
396
|
+
]
|
|
397
|
+
});
|
|
398
|
+
var tenantSecrets = defineTable({
|
|
399
|
+
name: "tenantSecrets",
|
|
400
|
+
component: "identity",
|
|
401
|
+
category: "platform",
|
|
402
|
+
shape: z.object({
|
|
403
|
+
"tenantId": z.string(),
|
|
404
|
+
"workspaceId": z.string().optional(),
|
|
405
|
+
"name": z.string(),
|
|
406
|
+
"description": z.string().optional(),
|
|
407
|
+
"encryptedValue": z.string(),
|
|
408
|
+
"lastRotated": z.number(),
|
|
409
|
+
"createdBy": z.string(),
|
|
410
|
+
"updatedBy": z.string().optional(),
|
|
411
|
+
"createdAt": z.number(),
|
|
412
|
+
"updatedAt": z.number()
|
|
413
|
+
}),
|
|
414
|
+
indices: [
|
|
415
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
416
|
+
{ kind: "index", name: "by_workspaceId", columns: ["workspaceId"] },
|
|
417
|
+
{ kind: "index", name: "by_tenant_name", columns: ["tenantId", "name"] }
|
|
418
|
+
]
|
|
419
|
+
});
|
|
420
|
+
var toolAcls = defineTable({
|
|
421
|
+
name: "toolAcls",
|
|
422
|
+
component: "identity",
|
|
423
|
+
category: "platform",
|
|
424
|
+
shape: z.object({
|
|
425
|
+
"role": z.enum(["platform_admin", "tenant_admin", "workspace_admin", "editor", "viewer", "auditor", "service_agent"]),
|
|
426
|
+
"toolName": z.string(),
|
|
427
|
+
"createdBy": z.string().optional(),
|
|
428
|
+
"createdAt": z.number().optional()
|
|
429
|
+
}),
|
|
430
|
+
indices: [
|
|
431
|
+
{ kind: "index", name: "by_role", columns: ["role"] },
|
|
432
|
+
{ kind: "index", name: "by_toolName", columns: ["toolName"] }
|
|
433
|
+
]
|
|
434
|
+
});
|
|
435
|
+
var toolRegistry = defineTable({
|
|
436
|
+
name: "toolRegistry",
|
|
437
|
+
component: "identity",
|
|
438
|
+
category: "platform",
|
|
439
|
+
shape: z.object({
|
|
440
|
+
"toolName": z.string(),
|
|
441
|
+
"description": z.string().optional(),
|
|
442
|
+
"version": z.string().optional(),
|
|
443
|
+
"status": z.enum(["active", "deprecated", "disabled"]),
|
|
444
|
+
"requiredRole": z.enum(["platform_admin", "tenant_admin", "workspace_admin", "editor", "viewer", "auditor", "service_agent"]).optional(),
|
|
445
|
+
"requiredAction": z.enum(["read", "mutate", "admin", "summarize", "export", "create", "delete", "grant", "revoke"]).optional(),
|
|
446
|
+
"surfaces": z.array(z.enum(["mcp", "chat", "voice", "sprint", "api", "sdk", "cli"])).optional(),
|
|
447
|
+
"approvalGateId": z.string().optional(),
|
|
448
|
+
"category": z.enum(["read", "write", "admin", "system"]).optional(),
|
|
449
|
+
"parameterSchema": z.record(z.any()).optional(),
|
|
450
|
+
"handlerRef": z.string().optional(),
|
|
451
|
+
"returnSchema": z.record(z.any()).optional(),
|
|
452
|
+
"executionAdapter": z.enum(["convex_mutation", "convex_action", "http_callback", "mcp_tool", "sdk_invocation", "external_observed"]).optional(),
|
|
453
|
+
"safetyMetadata": z.object({
|
|
454
|
+
"readOnly": z.boolean(),
|
|
455
|
+
"idempotent": z.boolean(),
|
|
456
|
+
"sideEffectLevel": z.enum(["none", "low", "high"])
|
|
457
|
+
}).optional(),
|
|
458
|
+
"packKey": z.string().optional(),
|
|
459
|
+
"packVersion": z.string().optional(),
|
|
460
|
+
"isCore": z.boolean(),
|
|
461
|
+
"mcVersion": z.string().optional(),
|
|
462
|
+
"registeredBy": z.string().optional(),
|
|
463
|
+
"registeredAt": z.number().optional()
|
|
464
|
+
}),
|
|
465
|
+
indices: [
|
|
466
|
+
{ kind: "index", name: "by_toolName", columns: ["toolName"] },
|
|
467
|
+
{ kind: "index", name: "by_status", columns: ["status"] },
|
|
468
|
+
{ kind: "index", name: "by_isCore", columns: ["isCore"] },
|
|
469
|
+
{ kind: "index", name: "by_packKey", columns: ["packKey"] }
|
|
470
|
+
]
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
export { mcpWritePolicy, platformAudienceGrants, platformAudiences, platformPolicyDecisionLogs, tenantApiKeys, tenantConfig, tenantIntegrations, tenantModelSlotBindings, tenantPolicies, tenantProviderSecrets, tenantProxyGatewayUsage, tenantProxyTokenMints, tenantSandboxAuditEvents, tenantSecrets, toolAcls, toolRegistry };
|
|
474
|
+
//# sourceMappingURL=platform.js.map
|
|
475
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/dsl/defineTable.ts","../../../../src/schemas/tables/identity/platform.ts"],"names":["z"],"mappings":"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","file":"platform.js","sourcesContent":["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","/**\n * Schema contracts for identity/platform.\n *\n * Mirrored from:\n * - packages/identity/src/component/schema/domains/platform.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const mcpWritePolicy = defineTable({\n name: \"mcpWritePolicy\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"topicId\": z.string().optional(),\n \"role\": z.string(),\n \"toolCategory\": z.string(),\n \"permission\": z.enum([\"allow\", \"deny\", \"review_required\"]),\n \"maxWritesPerSession\": z.number().optional(),\n \"enabled\": z.boolean(),\n \"rationale\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_role\", columns: [\"role\"] },\n { kind: 'index', name: \"by_topicId_role\", columns: [\"topicId\", \"role\"] },\n { kind: 'index', name: \"by_enabled\", columns: [\"enabled\"] }\n ],\n});\n\nexport const platformAudienceGrants = defineTable({\n name: \"platformAudienceGrants\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"principalId\": z.string().optional(),\n \"groupId\": z.string().optional(),\n \"audienceKey\": z.string(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]),\n \"status\": z.enum([\"active\", \"revoked\", \"expired\"]),\n \"grantedBy\": z.string().optional(),\n \"expiresAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant_principal\", columns: [\"tenantId\", \"principalId\"] },\n { kind: 'index', name: \"by_tenant_group\", columns: [\"tenantId\", \"groupId\"] },\n { kind: 'index', name: \"by_tenant_audienceKey\", columns: [\"tenantId\", \"audienceKey\"] },\n { kind: 'index', name: \"by_principal_status\", columns: [\"principalId\", \"status\"] },\n { kind: 'index', name: \"by_group_status\", columns: [\"groupId\", \"status\"] }\n ],\n});\n\nexport const platformAudiences = defineTable({\n name: \"platformAudiences\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"audienceKey\": z.string(),\n \"audienceLabel\": z.string(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]),\n \"status\": z.enum([\"active\", \"disabled\", \"archived\"]),\n \"description\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_audienceKey\", columns: [\"tenantId\", \"audienceKey\"] },\n { kind: 'index', name: \"by_tenant_workspace_audienceKey\", columns: [\"tenantId\", \"workspaceId\", \"audienceKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const platformPolicyDecisionLogs = defineTable({\n name: \"platformPolicyDecisionLogs\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"principalId\": z.string(),\n \"tenantId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"topicId\": z.string().optional(),\n \"resourceType\": z.string(),\n \"resourceId\": z.string(),\n \"action\": z.enum([\"read\", \"summarize\", \"export\", \"mutate\", \"admin\", \"comment\", \"escalate\", \"resolve\", \"vote\"]),\n \"decision\": z.enum([\"allow\", \"deny\"]),\n \"reasonCode\": z.string(),\n \"policyVersion\": z.string(),\n \"policyBundleId\": z.string().optional(),\n \"audienceKey\": z.string().optional(),\n \"audienceClass\": z.enum([\"internal\", \"restricted_external\", \"public\"]).optional(),\n \"audienceMode\": z.string().optional(),\n \"traceId\": z.string().optional(),\n \"packKey\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_principal_createdAt\", columns: [\"principalId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenant_createdAt\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_pack_createdAt\", columns: [\"packKey\", \"createdAt\"] },\n { kind: 'index', name: \"by_audienceKey_createdAt\", columns: [\"audienceKey\", \"createdAt\"] },\n { kind: 'index', name: \"by_audienceClass_createdAt\", columns: [\"audienceClass\", \"createdAt\"] },\n { kind: 'index', name: \"by_decision_createdAt\", columns: [\"decision\", \"createdAt\"] },\n { kind: 'index', name: \"by_traceId\", columns: [\"traceId\"] },\n { kind: 'index', name: \"by_topicId\", columns: [\"topicId\"] },\n { kind: 'index', name: \"by_topic_createdAt\", columns: [\"topicId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantApiKeys = defineTable({\n name: \"tenantApiKeys\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"label\": z.string().optional(),\n \"keyPrefix\": z.string(),\n \"hashedKey\": z.string(),\n \"scopes\": z.array(z.string()),\n \"status\": z.enum([\"active\", \"revoked\", \"expired\"]),\n \"expiresAt\": z.number().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_hashedKey\", columns: [\"hashedKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const tenantConfig = defineTable({\n name: \"tenantConfig\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"authPolicyMode\": z.enum([\"open\", \"invite_only\", \"sso_required\"]),\n \"defaultSessionTTL\": z.number(),\n \"defaultTopicVisibility\": z.enum([\"private\", \"tenant\", \"public\"]),\n \"featureFlags\": z.record(z.boolean()),\n \"maxWorkspaceCount\": z.number(),\n \"defaultModelSlotOverrides\": z.record(z.string()),\n \"updatedAt\": z.number(),\n \"updatedBy\": z.string()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] }\n ],\n});\n\nexport const tenantIntegrations = defineTable({\n name: \"tenantIntegrations\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"integrationKey\": z.string(),\n \"displayName\": z.string(),\n \"description\": z.string().optional(),\n \"category\": z.enum([\"search\", \"scraper\", \"llm\", \"analysis\", \"custom\"]),\n \"capabilities\": z.array(z.enum([\"search\", \"deep_research\", \"scrape\", \"summarize\", \"generate\"])),\n \"config\": z.object({\n \"apiBaseUrl\": z.string(),\n \"authType\": z.enum([\"api_key\", \"bearer\", \"basic\", \"none\"]),\n \"authHeaderName\": z.string().optional(),\n \"credentialSecretName\": z.string().optional(),\n \"defaultParams\": z.record(z.any()).optional(),\n \"timeout\": z.number().optional(),\n \"customHeaders\": z.record(z.any()).optional()\n }),\n \"endpoints\": z.object({\n \"search\": z.object({\n \"path\": z.string(),\n \"method\": z.string().optional(),\n \"queryParamName\": z.string().optional(),\n \"resultPath\": z.string().optional()\n }).optional(),\n \"deepResearch\": z.object({\n \"path\": z.string(),\n \"method\": z.string().optional(),\n \"resultPath\": z.string().optional(),\n \"async\": z.boolean().optional(),\n \"pollPath\": z.string().optional(),\n \"pollIntervalMs\": z.number().optional()\n }).optional(),\n \"scrape\": z.object({\n \"path\": z.string(),\n \"method\": z.string().optional(),\n \"resultPath\": z.string().optional()\n }).optional()\n }).optional(),\n \"status\": z.enum([\"active\", \"disabled\", \"error\"]),\n \"lastUsedAt\": z.number().optional(),\n \"lastError\": z.string().optional(),\n \"usageCount\": z.number().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_key\", columns: [\"tenantId\", \"integrationKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] }\n ],\n});\n\nexport const tenantModelSlotBindings = defineTable({\n name: \"tenantModelSlotBindings\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"bindingId\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"secretRef\": z.string(),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"passThroughOnly\": z.boolean(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_bindingId\", columns: [\"bindingId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_slot\", columns: [\"tenantId\", \"modelSlotId\"] },\n { kind: 'index', name: \"by_tenant_provider_slot\", columns: [\"tenantId\", \"providerId\", \"modelSlotId\"] },\n { kind: 'index', name: \"by_secretRef\", columns: [\"secretRef\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const tenantPolicies = defineTable({\n name: \"tenantPolicies\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"roleName\": z.string(),\n \"description\": z.string().optional(),\n \"permissions\": z.array(z.object({\n \"resource\": z.string(),\n \"actions\": z.array(z.string())\n })),\n \"groupBindings\": z.array(z.string()),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number(),\n \"createdBy\": z.string(),\n \"updatedBy\": z.string().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_roleName\", columns: [\"tenantId\", \"roleName\"] }\n ],\n});\n\nexport const tenantProviderSecrets = defineTable({\n name: \"tenantProviderSecrets\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"secretRef\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"label\": z.string().optional(),\n \"encryptedSecret\": z.string(),\n \"encryptionVersion\": z.string(),\n \"secretFingerprint\": z.string(),\n \"keyHint\": z.string(),\n \"status\": z.enum([\"active\", \"rotated\", \"revoked\"]),\n \"rotatedFromSecretRef\": z.string().optional(),\n \"revokedAt\": z.number().optional(),\n \"revokedBy\": z.string().optional(),\n \"lastUsedAt\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_secretRef\", columns: [\"secretRef\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_provider\", columns: [\"tenantId\", \"providerId\"] },\n { kind: 'index', name: \"by_tenant_provider_status\", columns: [\"tenantId\", \"providerId\", \"status\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const tenantProxyGatewayUsage = defineTable({\n name: \"tenantProxyGatewayUsage\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"usageId\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"secretRef\": z.string(),\n \"proxyTokenId\": z.string(),\n \"sessionId\": z.string(),\n \"principalId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"modelId\": z.string().optional(),\n \"requestPath\": z.string(),\n \"status\": z.enum([\"success\", \"error\"]),\n \"responseStatus\": z.number().optional(),\n \"inputTokens\": z.number().optional(),\n \"outputTokens\": z.number().optional(),\n \"tokenCount\": z.number().optional(),\n \"latencyMs\": z.number(),\n \"estimatedCostUsd\": z.number().optional(),\n \"failureCode\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_usageId\", columns: [\"usageId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenant_provider\", columns: [\"tenantId\", \"providerId\", \"createdAt\"] },\n { kind: 'index', name: \"by_proxyTokenId\", columns: [\"proxyTokenId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantProxyTokenMints = defineTable({\n name: \"tenantProxyTokenMints\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"proxyTokenId\": z.string(),\n \"tenantId\": z.string(),\n \"providerId\": z.string(),\n \"modelSlotId\": z.string(),\n \"sessionId\": z.string(),\n \"principalId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"secretRef\": z.string(),\n \"expiresAt\": z.number(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_proxyTokenId\", columns: [\"proxyTokenId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_sessionId\", columns: [\"sessionId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantSandboxAuditEvents = defineTable({\n name: \"tenantSandboxAuditEvents\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"eventId\": z.string(),\n \"tenantId\": z.string(),\n \"actorClerkId\": z.string(),\n \"action\": z.enum([\"sandbox_created\", \"sandbox_secret_injected\", \"sandbox_execution_started\", \"sandbox_execution_completed\", \"sandbox_limit_violated\"]),\n \"executionId\": z.string(),\n \"sessionId\": z.string().optional(),\n \"principalId\": z.string().optional(),\n \"workspaceId\": z.string().optional(),\n \"providerId\": z.string().optional(),\n \"secretRef\": z.string().optional(),\n \"toolCallId\": z.string().optional(),\n \"correlationId\": z.string().optional(),\n \"sandboxDir\": z.string().optional(),\n \"timeoutMs\": z.number().optional(),\n \"memoryLimitMb\": z.number().optional(),\n \"allowedOrigins\": z.array(z.string()).optional(),\n \"limitName\": z.string().optional(),\n \"outcome\": z.string().optional(),\n \"responseStatus\": z.number().optional(),\n \"durationMs\": z.number().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_eventId\", columns: [\"eventId\"] },\n { kind: 'index', name: \"by_executionId\", columns: [\"executionId\", \"createdAt\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\", \"createdAt\"] }\n ],\n});\n\nexport const tenantSecrets = defineTable({\n name: \"tenantSecrets\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"tenantId\": z.string(),\n \"workspaceId\": z.string().optional(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"encryptedValue\": z.string(),\n \"lastRotated\": z.number(),\n \"createdBy\": z.string(),\n \"updatedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_name\", columns: [\"tenantId\", \"name\"] }\n ],\n});\n\nexport const toolAcls = defineTable({\n name: \"toolAcls\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"role\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]),\n \"toolName\": z.string(),\n \"createdBy\": z.string().optional(),\n \"createdAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_role\", columns: [\"role\"] },\n { kind: 'index', name: \"by_toolName\", columns: [\"toolName\"] }\n ],\n});\n\nexport const toolRegistry = defineTable({\n name: \"toolRegistry\",\n component: \"identity\",\n category: \"platform\",\n shape: z.object({\n \"toolName\": z.string(),\n \"description\": z.string().optional(),\n \"version\": z.string().optional(),\n \"status\": z.enum([\"active\", \"deprecated\", \"disabled\"]),\n \"requiredRole\": z.enum([\"platform_admin\", \"tenant_admin\", \"workspace_admin\", \"editor\", \"viewer\", \"auditor\", \"service_agent\"]).optional(),\n \"requiredAction\": z.enum([\"read\", \"mutate\", \"admin\", \"summarize\", \"export\", \"create\", \"delete\", \"grant\", \"revoke\"]).optional(),\n \"surfaces\": z.array(z.enum([\"mcp\", \"chat\", \"voice\", \"sprint\", \"api\", \"sdk\", \"cli\"])).optional(),\n \"approvalGateId\": z.string().optional(),\n \"category\": z.enum([\"read\", \"write\", \"admin\", \"system\"]).optional(),\n \"parameterSchema\": z.record(z.any()).optional(),\n \"handlerRef\": z.string().optional(),\n \"returnSchema\": z.record(z.any()).optional(),\n \"executionAdapter\": z.enum([\"convex_mutation\", \"convex_action\", \"http_callback\", \"mcp_tool\", \"sdk_invocation\", \"external_observed\"]).optional(),\n \"safetyMetadata\": z.object({\n \"readOnly\": z.boolean(),\n \"idempotent\": z.boolean(),\n \"sideEffectLevel\": z.enum([\"none\", \"low\", \"high\"])\n }).optional(),\n \"packKey\": z.string().optional(),\n \"packVersion\": z.string().optional(),\n \"isCore\": z.boolean(),\n \"mcVersion\": z.string().optional(),\n \"registeredBy\": z.string().optional(),\n \"registeredAt\": z.number().optional()\n }),\n indices: [\n { kind: 'index', name: \"by_toolName\", columns: [\"toolName\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_isCore\", columns: [\"isCore\"] },\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] }\n ],\n});\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { T as TableContract } from '../../../defineTable-CBQ03FXl.js';
|
|
3
|
+
|
|
4
|
+
declare const projectGrants: TableContract<{
|
|
5
|
+
projectId: z.ZodOptional<z.ZodString>;
|
|
6
|
+
topicId: z.ZodOptional<z.ZodString>;
|
|
7
|
+
beliefClusterId: z.ZodOptional<z.ZodString>;
|
|
8
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
9
|
+
workspaceId: z.ZodOptional<z.ZodString>;
|
|
10
|
+
subjectType: z.ZodEnum<["principal", "group"]>;
|
|
11
|
+
principalId: z.ZodOptional<z.ZodString>;
|
|
12
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
13
|
+
role: z.ZodEnum<["viewer", "editor", "owner_delegate"]>;
|
|
14
|
+
status: z.ZodEnum<["active", "revoked", "expired"]>;
|
|
15
|
+
source: z.ZodEnum<["owner_share", "group_share", "external_share", "policy", "api", "migration"]>;
|
|
16
|
+
grantedBy: z.ZodOptional<z.ZodString>;
|
|
17
|
+
expiresAt: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
createdAt: z.ZodNumber;
|
|
19
|
+
updatedAt: z.ZodNumber;
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
export { projectGrants };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// src/schemas/tables/identity/project.ts
|
|
4
|
+
|
|
5
|
+
// src/dsl/defineTable.ts
|
|
6
|
+
function defineTable(spec) {
|
|
7
|
+
return spec;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// src/schemas/tables/identity/project.ts
|
|
11
|
+
var projectGrants = defineTable({
|
|
12
|
+
name: "projectGrants",
|
|
13
|
+
component: "identity",
|
|
14
|
+
category: "project",
|
|
15
|
+
shape: z.object({
|
|
16
|
+
"projectId": z.string().optional(),
|
|
17
|
+
"topicId": z.string().optional(),
|
|
18
|
+
"beliefClusterId": z.string().optional(),
|
|
19
|
+
"tenantId": z.string().optional(),
|
|
20
|
+
"workspaceId": z.string().optional(),
|
|
21
|
+
"subjectType": z.enum(["principal", "group"]),
|
|
22
|
+
"principalId": z.string().optional(),
|
|
23
|
+
"groupId": z.string().optional(),
|
|
24
|
+
"role": z.enum(["viewer", "editor", "owner_delegate"]),
|
|
25
|
+
"status": z.enum(["active", "revoked", "expired"]),
|
|
26
|
+
"source": z.enum(["owner_share", "group_share", "external_share", "policy", "api", "migration"]),
|
|
27
|
+
"grantedBy": z.string().optional(),
|
|
28
|
+
"expiresAt": z.number().optional(),
|
|
29
|
+
"createdAt": z.number(),
|
|
30
|
+
"updatedAt": z.number()
|
|
31
|
+
}),
|
|
32
|
+
indices: [
|
|
33
|
+
{ kind: "index", name: "by_principal_status", columns: ["principalId", "status"] },
|
|
34
|
+
{ kind: "index", name: "by_group_status", columns: ["groupId", "status"] },
|
|
35
|
+
{ kind: "index", name: "by_tenant_workspace", columns: ["tenantId", "workspaceId"] },
|
|
36
|
+
{ kind: "index", name: "by_status", columns: ["status"] },
|
|
37
|
+
{ kind: "index", name: "by_topicId", columns: ["topicId"] },
|
|
38
|
+
{ kind: "index", name: "by_topic_status", columns: ["topicId", "status"] },
|
|
39
|
+
{ kind: "index", name: "by_topic_principal", columns: ["topicId", "principalId"] },
|
|
40
|
+
{ kind: "index", name: "by_topic_group", columns: ["topicId", "groupId"] },
|
|
41
|
+
{ kind: "index", name: "by_topic_cluster", columns: ["topicId", "beliefClusterId"] },
|
|
42
|
+
{ kind: "index", name: "by_topic_cluster_status", columns: ["topicId", "beliefClusterId", "status"] }
|
|
43
|
+
]
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export { projectGrants };
|
|
47
|
+
//# sourceMappingURL=project.js.map
|
|
48
|
+
//# sourceMappingURL=project.js.map
|