@lucern/contracts 0.1.2-alpha.5 → 0.3.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +675 -0
- package/dist/dsl.js.map +1 -0
- package/dist/function-registry/beliefs.d.ts +519 -0
- package/dist/function-registry/beliefs.js +4326 -0
- package/dist/function-registry/beliefs.js.map +1 -0
- package/dist/function-registry/coding.d.ts +347 -0
- package/dist/function-registry/coding.js +4268 -0
- package/dist/function-registry/coding.js.map +1 -0
- package/dist/function-registry/context.d.ts +218 -0
- package/dist/function-registry/context.js +4175 -0
- package/dist/function-registry/context.js.map +1 -0
- package/dist/function-registry/contracts.d.ts +218 -0
- package/dist/function-registry/contracts.js +4143 -0
- package/dist/function-registry/contracts.js.map +1 -0
- package/dist/function-registry/coordination.d.ts +476 -0
- package/dist/function-registry/coordination.js +4254 -0
- package/dist/function-registry/coordination.js.map +1 -0
- package/dist/function-registry/edges.d.ts +175 -0
- package/dist/function-registry/edges.js +4150 -0
- package/dist/function-registry/edges.js.map +1 -0
- package/dist/function-registry/evidence.d.ts +433 -0
- package/dist/function-registry/evidence.js +4302 -0
- package/dist/function-registry/evidence.js.map +1 -0
- package/dist/function-registry/graph.d.ts +648 -0
- package/dist/function-registry/graph.js +4329 -0
- package/dist/function-registry/graph.js.map +1 -0
- package/dist/function-registry/helpers.d.ts +86 -0
- package/dist/function-registry/helpers.js +4131 -0
- package/dist/function-registry/helpers.js.map +1 -0
- package/dist/function-registry/identity.d.ts +218 -0
- package/dist/function-registry/identity.js +4154 -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 +4235 -0
- package/dist/function-registry/index.js.map +1 -0
- package/dist/function-registry/judgments.d.ts +175 -0
- package/dist/function-registry/judgments.js +4157 -0
- package/dist/function-registry/judgments.js.map +1 -0
- package/dist/function-registry/legacy.d.ts +132 -0
- package/dist/function-registry/legacy.js +4118 -0
- package/dist/function-registry/legacy.js.map +1 -0
- package/dist/function-registry/lenses.d.ts +261 -0
- package/dist/function-registry/lenses.js +4160 -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 +366 -0
- package/dist/function-registry/manifest.js.map +1 -0
- package/dist/function-registry/ontologies.d.ts +562 -0
- package/dist/function-registry/ontologies.js +4292 -0
- package/dist/function-registry/ontologies.js.map +1 -0
- package/dist/function-registry/pipeline.d.ts +218 -0
- package/dist/function-registry/pipeline.js +4143 -0
- package/dist/function-registry/pipeline.js.map +1 -0
- package/dist/function-registry/questions.d.ts +605 -0
- package/dist/function-registry/questions.js +4329 -0
- package/dist/function-registry/questions.js.map +1 -0
- package/dist/function-registry/tasks.d.ts +261 -0
- package/dist/function-registry/tasks.js +4166 -0
- package/dist/function-registry/tasks.js.map +1 -0
- package/dist/function-registry/topics.d.ts +304 -0
- package/dist/function-registry/topics.js +4193 -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 +476 -0
- package/dist/function-registry/worktrees.js +4277 -0
- package/dist/function-registry/worktrees.js.map +1 -0
- package/dist/generated/convexSchemas.d.ts +20 -0
- package/dist/generated/convexSchemas.js +160 -0
- package/dist/generated/convexSchemas.js.map +1 -0
- package/dist/generated/schema-manifest.json +5179 -0
- package/dist/generated/tableOwnership.d.ts +127 -0
- package/dist/generated/tableOwnership.js +276 -0
- package/dist/generated/tableOwnership.js.map +1 -0
- package/dist/generated/tier-expectations.json +360 -0
- package/dist/idOf-DR8tkhQS.d.ts +10 -0
- package/dist/index-DoDXl8KS.d.ts +19 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.js +5739 -315
- 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/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 +5 -0
- package/dist/schemas/index.js +4240 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/manifest.d.ts +24521 -0
- package/dist/schemas/manifest.js +4242 -0
- package/dist/schemas/manifest.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 +315 -0
- package/dist/schemas/tables/kernel/epistemic.js +327 -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 +171 -0
- package/dist/schemas/tables/kernel/infra.js +160 -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 +328 -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-tools.contract-BnV0hKLp.d.ts → sdk-tools.contract-C2kQN_Xk.d.ts} +3 -7
- package/dist/sdk-tools.contract.d.ts +2 -2
- package/dist/sdk-tools.contract.js +664 -175
- package/dist/sdk-tools.contract.js.map +1 -1
- package/dist/tool-contracts-WCnuE9DW.d.ts +288 -0
- package/dist/tool-contracts.d.ts +1 -0
- package/dist/{mcp-tools.contract.js → tool-contracts.js} +666 -116
- package/dist/tool-contracts.js.map +1 -0
- package/package.json +119 -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,294 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// src/schemas/tables/mc/pack.ts
|
|
4
|
+
|
|
5
|
+
// src/dsl/defineTable.ts
|
|
6
|
+
function defineTable(spec) {
|
|
7
|
+
return spec;
|
|
8
|
+
}
|
|
9
|
+
var CONVEX_ID_TABLE = /* @__PURE__ */ Symbol.for("lucern.contracts.convexIdTable");
|
|
10
|
+
function idOf(table) {
|
|
11
|
+
const schema = z.string().brand();
|
|
12
|
+
Object.defineProperty(schema, CONVEX_ID_TABLE, {
|
|
13
|
+
configurable: false,
|
|
14
|
+
enumerable: false,
|
|
15
|
+
value: table,
|
|
16
|
+
writable: false
|
|
17
|
+
});
|
|
18
|
+
return schema;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/schemas/tables/mc/pack.ts
|
|
22
|
+
var packAssignments = defineTable({
|
|
23
|
+
name: "packAssignments",
|
|
24
|
+
component: "mc",
|
|
25
|
+
category: "pack",
|
|
26
|
+
shape: z.object({
|
|
27
|
+
"groupId": idOf("groups"),
|
|
28
|
+
"packKey": z.string(),
|
|
29
|
+
"tenantId": idOf("tenants"),
|
|
30
|
+
"status": z.enum(["active", "revoked"]),
|
|
31
|
+
"assignedBy": z.string(),
|
|
32
|
+
"createdAt": z.number(),
|
|
33
|
+
"updatedAt": z.number()
|
|
34
|
+
}),
|
|
35
|
+
indices: [
|
|
36
|
+
{ kind: "index", name: "by_groupId", columns: ["groupId"] },
|
|
37
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
38
|
+
{ kind: "index", name: "by_tenant_packKey", columns: ["tenantId", "packKey"] },
|
|
39
|
+
{ kind: "index", name: "by_group_packKey", columns: ["groupId", "packKey"] },
|
|
40
|
+
{ kind: "index", name: "by_status", columns: ["status"] }
|
|
41
|
+
]
|
|
42
|
+
});
|
|
43
|
+
var packDefinitions = defineTable({
|
|
44
|
+
name: "packDefinitions",
|
|
45
|
+
component: "mc",
|
|
46
|
+
category: "pack",
|
|
47
|
+
shape: z.object({
|
|
48
|
+
"packKey": z.string(),
|
|
49
|
+
"name": z.string(),
|
|
50
|
+
"description": z.string().optional(),
|
|
51
|
+
"category": z.enum(["developer", "strategy", "data", "methodology", "ontology", "custom"]),
|
|
52
|
+
"lifecycle": z.enum(["active", "beta", "experimental"]),
|
|
53
|
+
"tierRequirement": z.enum(["free", "developer", "team", "enterprise"]),
|
|
54
|
+
"installScope": z.enum(["tenant", "workspace"]).optional(),
|
|
55
|
+
"toolNames": z.array(z.string()),
|
|
56
|
+
"promptNames": z.array(z.string()).optional(),
|
|
57
|
+
"agentKeys": z.array(z.string()).optional(),
|
|
58
|
+
"methodologyPackIds": z.array(z.string()).optional(),
|
|
59
|
+
"ontologyConfig": z.object({
|
|
60
|
+
"ontologyKey": z.string(),
|
|
61
|
+
"ontologyVersion": z.string().optional(),
|
|
62
|
+
"topicBindings": z.array(z.object({
|
|
63
|
+
"topicType": z.string(),
|
|
64
|
+
"autoBindNewTopics": z.boolean()
|
|
65
|
+
})).optional()
|
|
66
|
+
}).optional(),
|
|
67
|
+
"lensConfig": z.array(z.object({
|
|
68
|
+
"lensKey": z.string(),
|
|
69
|
+
"perspectiveType": z.string()
|
|
70
|
+
})).optional(),
|
|
71
|
+
"configTemplates": z.record(z.any()).optional(),
|
|
72
|
+
"topicIds": z.array(z.string()).optional(),
|
|
73
|
+
"status": z.enum(["draft", "active", "archived"]),
|
|
74
|
+
"createdBy": z.string(),
|
|
75
|
+
"createdAt": z.number(),
|
|
76
|
+
"updatedAt": z.number()
|
|
77
|
+
}),
|
|
78
|
+
indices: [
|
|
79
|
+
{ kind: "index", name: "by_packKey", columns: ["packKey"] },
|
|
80
|
+
{ kind: "index", name: "by_category", columns: ["category"] },
|
|
81
|
+
{ kind: "index", name: "by_lifecycle", columns: ["lifecycle"] },
|
|
82
|
+
{ kind: "index", name: "by_status", columns: ["status"] },
|
|
83
|
+
{ kind: "index", name: "by_tierRequirement", columns: ["tierRequirement"] }
|
|
84
|
+
]
|
|
85
|
+
});
|
|
86
|
+
var packEntitlements = defineTable({
|
|
87
|
+
name: "packEntitlements",
|
|
88
|
+
component: "mc",
|
|
89
|
+
category: "pack",
|
|
90
|
+
shape: z.object({
|
|
91
|
+
"tenantId": idOf("tenants"),
|
|
92
|
+
"workspaceId": idOf("workspaces").optional(),
|
|
93
|
+
"packKey": z.string(),
|
|
94
|
+
"status": z.enum(["active", "disabled", "revoked"]),
|
|
95
|
+
"allowedLifecycles": z.array(z.enum(["active", "beta", "experimental"])).optional(),
|
|
96
|
+
"minVersion": z.string().optional(),
|
|
97
|
+
"maxVersion": z.string().optional(),
|
|
98
|
+
"metadata": z.record(z.any()).optional(),
|
|
99
|
+
"grantedBy": z.string().optional(),
|
|
100
|
+
"createdAt": z.number(),
|
|
101
|
+
"updatedAt": z.number()
|
|
102
|
+
}),
|
|
103
|
+
indices: [
|
|
104
|
+
{ kind: "index", name: "by_packKey", columns: ["packKey"] },
|
|
105
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
106
|
+
{ kind: "index", name: "by_workspaceId", columns: ["workspaceId"] },
|
|
107
|
+
{ kind: "index", name: "by_tenant_packKey", columns: ["tenantId", "packKey"] },
|
|
108
|
+
{ kind: "index", name: "by_tenant_workspace_packKey", columns: ["tenantId", "workspaceId", "packKey"] },
|
|
109
|
+
{ kind: "index", name: "by_tenant_status", columns: ["tenantId", "status"] },
|
|
110
|
+
{ kind: "index", name: "by_workspace_status", columns: ["workspaceId", "status"] }
|
|
111
|
+
]
|
|
112
|
+
});
|
|
113
|
+
var packGroupAssignments = defineTable({
|
|
114
|
+
name: "packGroupAssignments",
|
|
115
|
+
component: "mc",
|
|
116
|
+
category: "pack",
|
|
117
|
+
shape: z.object({
|
|
118
|
+
"groupId": idOf("groups"),
|
|
119
|
+
"tenantId": idOf("tenants"),
|
|
120
|
+
"packKey": z.string(),
|
|
121
|
+
"packVersion": z.string().optional(),
|
|
122
|
+
"status": z.enum(["active", "disabled"]),
|
|
123
|
+
"assignedBy": z.string(),
|
|
124
|
+
"createdAt": z.number(),
|
|
125
|
+
"updatedAt": z.number()
|
|
126
|
+
}),
|
|
127
|
+
indices: [
|
|
128
|
+
{ kind: "index", name: "by_groupId", columns: ["groupId"] },
|
|
129
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
130
|
+
{ kind: "index", name: "by_tenant_packKey", columns: ["tenantId", "packKey"] },
|
|
131
|
+
{ kind: "index", name: "by_group_packKey", columns: ["groupId", "packKey"] }
|
|
132
|
+
]
|
|
133
|
+
});
|
|
134
|
+
var packInstallations = defineTable({
|
|
135
|
+
name: "packInstallations",
|
|
136
|
+
component: "mc",
|
|
137
|
+
category: "pack",
|
|
138
|
+
shape: z.object({
|
|
139
|
+
"tenantId": idOf("tenants"),
|
|
140
|
+
"workspaceId": idOf("workspaces").optional(),
|
|
141
|
+
"installScope": z.enum(["tenant", "workspace"]).optional(),
|
|
142
|
+
"packKey": z.string(),
|
|
143
|
+
"packVersion": z.string(),
|
|
144
|
+
"candidateVersion": z.string().optional(),
|
|
145
|
+
"versionWindowState": z.enum(["none", "prepared", "canary", "committed", "rolled_back"]).optional(),
|
|
146
|
+
"upgradeStartedAt": z.number().optional(),
|
|
147
|
+
"upgradeCompletedAt": z.number().optional(),
|
|
148
|
+
"runtimeState": z.enum(["registered", "validated", "installed", "enabled", "degraded", "disabled", "removed"]),
|
|
149
|
+
"healthStatus": z.enum(["unknown", "healthy", "degraded", "failing"]),
|
|
150
|
+
"installStatus": z.enum(["installing", "installed", "partial_failure", "uninstalling"]).optional(),
|
|
151
|
+
"componentStatus": z.record(z.any()).optional(),
|
|
152
|
+
"lastError": z.string().optional(),
|
|
153
|
+
"installedBy": z.string().optional(),
|
|
154
|
+
"enabledBy": z.string().optional(),
|
|
155
|
+
"disabledBy": z.string().optional(),
|
|
156
|
+
"lastHealthCheckAt": z.number().optional(),
|
|
157
|
+
"metadata": z.record(z.any()).optional(),
|
|
158
|
+
"createdAt": z.number(),
|
|
159
|
+
"updatedAt": z.number()
|
|
160
|
+
}),
|
|
161
|
+
indices: [
|
|
162
|
+
{ kind: "index", name: "by_tenantId", columns: ["tenantId"] },
|
|
163
|
+
{ kind: "index", name: "by_workspaceId", columns: ["workspaceId"] },
|
|
164
|
+
{ kind: "index", name: "by_packKey", columns: ["packKey"] },
|
|
165
|
+
{ kind: "index", name: "by_packKey_version", columns: ["packKey", "packVersion"] },
|
|
166
|
+
{ kind: "index", name: "by_tenant_packKey", columns: ["tenantId", "packKey"] },
|
|
167
|
+
{ kind: "index", name: "by_tenant_workspace_packKey", columns: ["tenantId", "workspaceId", "packKey"] },
|
|
168
|
+
{ kind: "index", name: "by_tenant_runtimeState", columns: ["tenantId", "runtimeState"] },
|
|
169
|
+
{ kind: "index", name: "by_workspace_runtimeState", columns: ["workspaceId", "runtimeState"] },
|
|
170
|
+
{ kind: "index", name: "by_tenant_healthStatus", columns: ["tenantId", "healthStatus"] },
|
|
171
|
+
{ kind: "index", name: "by_workspace_healthStatus", columns: ["workspaceId", "healthStatus"] }
|
|
172
|
+
]
|
|
173
|
+
});
|
|
174
|
+
var packVersions = defineTable({
|
|
175
|
+
name: "packVersions",
|
|
176
|
+
component: "mc",
|
|
177
|
+
category: "pack",
|
|
178
|
+
shape: z.object({
|
|
179
|
+
"packKey": z.string(),
|
|
180
|
+
"version": z.string(),
|
|
181
|
+
"status": z.enum(["draft", "published", "deprecated"]),
|
|
182
|
+
"toolManifest": z.array(z.object({
|
|
183
|
+
"toolName": z.string(),
|
|
184
|
+
"toolVersion": z.string(),
|
|
185
|
+
"description": z.string().optional(),
|
|
186
|
+
"category": z.enum(["read", "write", "admin", "system"]).optional(),
|
|
187
|
+
"requiredRole": z.enum(["platform_admin", "tenant_admin", "workspace_admin", "editor", "viewer", "auditor", "service_agent"]).optional(),
|
|
188
|
+
"requiredAction": z.enum(["read", "mutate", "admin", "summarize", "export", "create", "delete", "grant", "revoke"]).optional(),
|
|
189
|
+
"surfaces": z.array(z.enum(["mcp", "chat", "voice", "sprint", "api", "sdk", "cli"])).optional(),
|
|
190
|
+
"handlerRef": z.string().optional(),
|
|
191
|
+
"parameterSchema": z.record(z.any()).optional(),
|
|
192
|
+
"returnSchema": z.record(z.any()).optional(),
|
|
193
|
+
"executionAdapter": z.enum(["convex_mutation", "convex_action", "http_callback", "mcp_tool", "sdk_invocation", "external_observed"]).optional(),
|
|
194
|
+
"safetyMetadata": z.object({
|
|
195
|
+
"readOnly": z.boolean(),
|
|
196
|
+
"idempotent": z.boolean(),
|
|
197
|
+
"sideEffectLevel": z.enum(["none", "low", "high"])
|
|
198
|
+
}).optional()
|
|
199
|
+
})),
|
|
200
|
+
"promptManifest": z.array(z.string()).optional(),
|
|
201
|
+
"agentManifest": z.array(z.string()).optional(),
|
|
202
|
+
"methodologyManifest": z.array(z.string()).optional(),
|
|
203
|
+
"ontologySnapshot": z.object({
|
|
204
|
+
"ontologyKey": z.string(),
|
|
205
|
+
"version": z.string(),
|
|
206
|
+
"entityTypes": z.array(z.object({
|
|
207
|
+
"value": z.string(),
|
|
208
|
+
"label": z.string(),
|
|
209
|
+
"description": z.string().optional(),
|
|
210
|
+
"schema": z.any().optional(),
|
|
211
|
+
"subtypes": z.array(z.object({
|
|
212
|
+
"value": z.string(),
|
|
213
|
+
"label": z.string(),
|
|
214
|
+
"description": z.string().optional()
|
|
215
|
+
})).optional()
|
|
216
|
+
})),
|
|
217
|
+
"edgeTypes": z.array(z.object({
|
|
218
|
+
"value": z.string(),
|
|
219
|
+
"label": z.string(),
|
|
220
|
+
"description": z.string().optional(),
|
|
221
|
+
"sourceTypes": z.array(z.string()).optional(),
|
|
222
|
+
"targetTypes": z.array(z.string()).optional(),
|
|
223
|
+
"constraintSeverity": z.enum(["warn", "info"]).optional()
|
|
224
|
+
})),
|
|
225
|
+
"topicBindings": z.array(z.object({
|
|
226
|
+
"topicType": z.string(),
|
|
227
|
+
"autoBindNewTopics": z.boolean()
|
|
228
|
+
})).optional()
|
|
229
|
+
}).optional(),
|
|
230
|
+
"lensManifest": z.array(z.object({
|
|
231
|
+
"lensKey": z.string(),
|
|
232
|
+
"name": z.string(),
|
|
233
|
+
"description": z.string().optional(),
|
|
234
|
+
"perspectiveType": z.string(),
|
|
235
|
+
"promptTemplates": z.array(z.object({
|
|
236
|
+
"key": z.string(),
|
|
237
|
+
"promptRef": z.string(),
|
|
238
|
+
"phase": z.string().optional(),
|
|
239
|
+
"role": z.string().optional(),
|
|
240
|
+
"version": z.string().optional(),
|
|
241
|
+
"required": z.boolean().optional(),
|
|
242
|
+
"metadata": z.any().optional()
|
|
243
|
+
})),
|
|
244
|
+
"workflowTemplates": z.array(z.object({
|
|
245
|
+
"key": z.string(),
|
|
246
|
+
"name": z.string(),
|
|
247
|
+
"description": z.string().optional(),
|
|
248
|
+
"steps": z.array(z.object({
|
|
249
|
+
"key": z.string(),
|
|
250
|
+
"title": z.string(),
|
|
251
|
+
"description": z.string().optional(),
|
|
252
|
+
"promptTemplateKey": z.string().optional(),
|
|
253
|
+
"taskTemplateKeys": z.array(z.string()).optional(),
|
|
254
|
+
"metadata": z.any().optional()
|
|
255
|
+
})),
|
|
256
|
+
"metadata": z.any().optional()
|
|
257
|
+
})),
|
|
258
|
+
"taskTemplates": z.array(z.object({
|
|
259
|
+
"key": z.string(),
|
|
260
|
+
"title": z.string(),
|
|
261
|
+
"description": z.string().optional(),
|
|
262
|
+
"priority": z.enum(["critical", "high", "medium", "low"]).optional(),
|
|
263
|
+
"phase": z.string().optional(),
|
|
264
|
+
"metadata": z.any().optional()
|
|
265
|
+
})),
|
|
266
|
+
"questionTemplates": z.array(z.object({
|
|
267
|
+
"key": z.string(),
|
|
268
|
+
"text": z.string(),
|
|
269
|
+
"priority": z.enum(["critical", "high", "medium", "low"]).optional(),
|
|
270
|
+
"linkedBeliefKey": z.string().optional(),
|
|
271
|
+
"metadata": z.any().optional()
|
|
272
|
+
})).optional(),
|
|
273
|
+
"filterCriteria": z.any().optional(),
|
|
274
|
+
"topicTypeAffinity": z.array(z.string()).optional(),
|
|
275
|
+
"metadata": z.any().optional()
|
|
276
|
+
})).optional(),
|
|
277
|
+
"configSnapshot": z.record(z.any()).optional(),
|
|
278
|
+
"topicIds": z.array(z.string()).optional(),
|
|
279
|
+
"releaseNotes": z.string().optional(),
|
|
280
|
+
"releasedBy": z.string(),
|
|
281
|
+
"publishedAt": z.number().optional(),
|
|
282
|
+
"createdAt": z.number()
|
|
283
|
+
}),
|
|
284
|
+
indices: [
|
|
285
|
+
{ kind: "index", name: "by_packKey", columns: ["packKey"] },
|
|
286
|
+
{ kind: "index", name: "by_packKey_version", columns: ["packKey", "version"] },
|
|
287
|
+
{ kind: "index", name: "by_status", columns: ["status"] },
|
|
288
|
+
{ kind: "index", name: "by_publishedAt", columns: ["publishedAt"] }
|
|
289
|
+
]
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
export { packAssignments, packDefinitions, packEntitlements, packGroupAssignments, packInstallations, packVersions };
|
|
293
|
+
//# sourceMappingURL=pack.js.map
|
|
294
|
+
//# sourceMappingURL=pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/dsl/defineTable.ts","../../../../src/dsl/idOf.ts","../../../../src/schemas/tables/mc/pack.ts"],"names":["z"],"mappings":"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","file":"pack.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","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","/**\n * Schema contracts for mc/pack.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const packAssignments = defineTable({\n name: \"packAssignments\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"packKey\": z.string(),\n \"tenantId\": idOf(\"tenants\"),\n \"status\": z.enum([\"active\", \"revoked\"]),\n \"assignedBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_group_packKey\", columns: [\"groupId\", \"packKey\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] }\n ],\n});\n\nexport const packDefinitions = defineTable({\n name: \"packDefinitions\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"packKey\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"category\": z.enum([\"developer\", \"strategy\", \"data\", \"methodology\", \"ontology\", \"custom\"]),\n \"lifecycle\": z.enum([\"active\", \"beta\", \"experimental\"]),\n \"tierRequirement\": z.enum([\"free\", \"developer\", \"team\", \"enterprise\"]),\n \"installScope\": z.enum([\"tenant\", \"workspace\"]).optional(),\n \"toolNames\": z.array(z.string()),\n \"promptNames\": z.array(z.string()).optional(),\n \"agentKeys\": z.array(z.string()).optional(),\n \"methodologyPackIds\": z.array(z.string()).optional(),\n \"ontologyConfig\": z.object({\n \"ontologyKey\": z.string(),\n \"ontologyVersion\": z.string().optional(),\n \"topicBindings\": z.array(z.object({\n \"topicType\": z.string(),\n \"autoBindNewTopics\": z.boolean()\n })).optional()\n }).optional(),\n \"lensConfig\": z.array(z.object({\n \"lensKey\": z.string(),\n \"perspectiveType\": z.string()\n })).optional(),\n \"configTemplates\": z.record(z.any()).optional(),\n \"topicIds\": z.array(z.string()).optional(),\n \"status\": z.enum([\"draft\", \"active\", \"archived\"]),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_category\", columns: [\"category\"] },\n { kind: 'index', name: \"by_lifecycle\", columns: [\"lifecycle\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_tierRequirement\", columns: [\"tierRequirement\"] }\n ],\n});\n\nexport const packEntitlements = defineTable({\n name: \"packEntitlements\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"packKey\": z.string(),\n \"status\": z.enum([\"active\", \"disabled\", \"revoked\"]),\n \"allowedLifecycles\": z.array(z.enum([\"active\", \"beta\", \"experimental\"])).optional(),\n \"minVersion\": z.string().optional(),\n \"maxVersion\": z.string().optional(),\n \"metadata\": z.record(z.any()).optional(),\n \"grantedBy\": z.string().optional(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_workspace_packKey\", columns: [\"tenantId\", \"workspaceId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] }\n ],\n});\n\nexport const packGroupAssignments = defineTable({\n name: \"packGroupAssignments\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"groupId\": idOf(\"groups\"),\n \"tenantId\": idOf(\"tenants\"),\n \"packKey\": z.string(),\n \"packVersion\": z.string().optional(),\n \"status\": z.enum([\"active\", \"disabled\"]),\n \"assignedBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_groupId\", columns: [\"groupId\"] },\n { kind: 'index', name: \"by_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_group_packKey\", columns: [\"groupId\", \"packKey\"] }\n ],\n});\n\nexport const packInstallations = defineTable({\n name: \"packInstallations\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"installScope\": z.enum([\"tenant\", \"workspace\"]).optional(),\n \"packKey\": z.string(),\n \"packVersion\": z.string(),\n \"candidateVersion\": z.string().optional(),\n \"versionWindowState\": z.enum([\"none\", \"prepared\", \"canary\", \"committed\", \"rolled_back\"]).optional(),\n \"upgradeStartedAt\": z.number().optional(),\n \"upgradeCompletedAt\": z.number().optional(),\n \"runtimeState\": z.enum([\"registered\", \"validated\", \"installed\", \"enabled\", \"degraded\", \"disabled\", \"removed\"]),\n \"healthStatus\": z.enum([\"unknown\", \"healthy\", \"degraded\", \"failing\"]),\n \"installStatus\": z.enum([\"installing\", \"installed\", \"partial_failure\", \"uninstalling\"]).optional(),\n \"componentStatus\": z.record(z.any()).optional(),\n \"lastError\": z.string().optional(),\n \"installedBy\": z.string().optional(),\n \"enabledBy\": z.string().optional(),\n \"disabledBy\": z.string().optional(),\n \"lastHealthCheckAt\": 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_tenantId\", columns: [\"tenantId\"] },\n { kind: 'index', name: \"by_workspaceId\", columns: [\"workspaceId\"] },\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_packKey_version\", columns: [\"packKey\", \"packVersion\"] },\n { kind: 'index', name: \"by_tenant_packKey\", columns: [\"tenantId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_workspace_packKey\", columns: [\"tenantId\", \"workspaceId\", \"packKey\"] },\n { kind: 'index', name: \"by_tenant_runtimeState\", columns: [\"tenantId\", \"runtimeState\"] },\n { kind: 'index', name: \"by_workspace_runtimeState\", columns: [\"workspaceId\", \"runtimeState\"] },\n { kind: 'index', name: \"by_tenant_healthStatus\", columns: [\"tenantId\", \"healthStatus\"] },\n { kind: 'index', name: \"by_workspace_healthStatus\", columns: [\"workspaceId\", \"healthStatus\"] }\n ],\n});\n\nexport const packVersions = defineTable({\n name: \"packVersions\",\n component: \"mc\",\n category: \"pack\",\n shape: z.object({\n \"packKey\": z.string(),\n \"version\": z.string(),\n \"status\": z.enum([\"draft\", \"published\", \"deprecated\"]),\n \"toolManifest\": z.array(z.object({\n \"toolName\": z.string(),\n \"toolVersion\": z.string(),\n \"description\": z.string().optional(),\n \"category\": z.enum([\"read\", \"write\", \"admin\", \"system\"]).optional(),\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 \"handlerRef\": z.string().optional(),\n \"parameterSchema\": z.record(z.any()).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 })),\n \"promptManifest\": z.array(z.string()).optional(),\n \"agentManifest\": z.array(z.string()).optional(),\n \"methodologyManifest\": z.array(z.string()).optional(),\n \"ontologySnapshot\": z.object({\n \"ontologyKey\": z.string(),\n \"version\": z.string(),\n \"entityTypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"schema\": z.any().optional(),\n \"subtypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional()\n })).optional()\n })),\n \"edgeTypes\": z.array(z.object({\n \"value\": z.string(),\n \"label\": z.string(),\n \"description\": z.string().optional(),\n \"sourceTypes\": z.array(z.string()).optional(),\n \"targetTypes\": z.array(z.string()).optional(),\n \"constraintSeverity\": z.enum([\"warn\", \"info\"]).optional()\n })),\n \"topicBindings\": z.array(z.object({\n \"topicType\": z.string(),\n \"autoBindNewTopics\": z.boolean()\n })).optional()\n }).optional(),\n \"lensManifest\": z.array(z.object({\n \"lensKey\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"perspectiveType\": z.string(),\n \"promptTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"promptRef\": z.string(),\n \"phase\": z.string().optional(),\n \"role\": z.string().optional(),\n \"version\": z.string().optional(),\n \"required\": z.boolean().optional(),\n \"metadata\": z.any().optional()\n })),\n \"workflowTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"name\": z.string(),\n \"description\": z.string().optional(),\n \"steps\": z.array(z.object({\n \"key\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"promptTemplateKey\": z.string().optional(),\n \"taskTemplateKeys\": z.array(z.string()).optional(),\n \"metadata\": z.any().optional()\n })),\n \"metadata\": z.any().optional()\n })),\n \"taskTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"title\": z.string(),\n \"description\": z.string().optional(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"phase\": z.string().optional(),\n \"metadata\": z.any().optional()\n })),\n \"questionTemplates\": z.array(z.object({\n \"key\": z.string(),\n \"text\": z.string(),\n \"priority\": z.enum([\"critical\", \"high\", \"medium\", \"low\"]).optional(),\n \"linkedBeliefKey\": z.string().optional(),\n \"metadata\": z.any().optional()\n })).optional(),\n \"filterCriteria\": z.any().optional(),\n \"topicTypeAffinity\": z.array(z.string()).optional(),\n \"metadata\": z.any().optional()\n })).optional(),\n \"configSnapshot\": z.record(z.any()).optional(),\n \"topicIds\": z.array(z.string()).optional(),\n \"releaseNotes\": z.string().optional(),\n \"releasedBy\": z.string(),\n \"publishedAt\": z.number().optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_packKey\", columns: [\"packKey\"] },\n { kind: 'index', name: \"by_packKey_version\", columns: [\"packKey\", \"version\"] },\n { kind: 'index', name: \"by_status\", columns: [\"status\"] },\n { kind: 'index', name: \"by_publishedAt\", columns: [\"publishedAt\"] }\n ],\n});\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { T as TableContract } from '../../../defineTable-CBQ03FXl.js';
|
|
3
|
+
import { C as ConvexIdSchema } from '../../../idOf-DR8tkhQS.js';
|
|
4
|
+
|
|
5
|
+
declare const policyBundles: TableContract<{
|
|
6
|
+
bundleKey: z.ZodString;
|
|
7
|
+
version: z.ZodNumber;
|
|
8
|
+
scope: z.ZodEnum<["platform", "tenant", "workspace"]>;
|
|
9
|
+
tenantId: z.ZodOptional<ConvexIdSchema<"tenants">>;
|
|
10
|
+
workspaceId: z.ZodOptional<ConvexIdSchema<"workspaces">>;
|
|
11
|
+
status: z.ZodEnum<["draft", "validated", "enforced", "archived"]>;
|
|
12
|
+
policyHash: z.ZodOptional<z.ZodString>;
|
|
13
|
+
rules: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
14
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
15
|
+
createdBy: z.ZodOptional<z.ZodString>;
|
|
16
|
+
createdAt: z.ZodNumber;
|
|
17
|
+
updatedAt: z.ZodNumber;
|
|
18
|
+
}>;
|
|
19
|
+
declare const policyDecisionLogs: TableContract<{
|
|
20
|
+
principalId: z.ZodString;
|
|
21
|
+
tenantId: z.ZodOptional<ConvexIdSchema<"tenants">>;
|
|
22
|
+
workspaceId: z.ZodOptional<ConvexIdSchema<"workspaces">>;
|
|
23
|
+
resourceType: z.ZodString;
|
|
24
|
+
resourceId: z.ZodString;
|
|
25
|
+
action: z.ZodEnum<["read", "summarize", "export", "mutate", "admin", "comment", "escalate", "resolve", "vote"]>;
|
|
26
|
+
decision: z.ZodEnum<["allow", "deny"]>;
|
|
27
|
+
reasonCode: z.ZodString;
|
|
28
|
+
policyVersion: z.ZodString;
|
|
29
|
+
policyBundleId: z.ZodOptional<ConvexIdSchema<"policyBundles">>;
|
|
30
|
+
audienceKey: z.ZodOptional<z.ZodString>;
|
|
31
|
+
audienceClass: z.ZodOptional<z.ZodEnum<["internal", "restricted_external", "public"]>>;
|
|
32
|
+
audienceMode: z.ZodOptional<z.ZodString>;
|
|
33
|
+
traceId: z.ZodOptional<z.ZodString>;
|
|
34
|
+
packKey: z.ZodOptional<z.ZodString>;
|
|
35
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
36
|
+
createdAt: z.ZodNumber;
|
|
37
|
+
}>;
|
|
38
|
+
declare const policySimulations: TableContract<{
|
|
39
|
+
simulationKey: z.ZodString;
|
|
40
|
+
tenantId: z.ZodOptional<ConvexIdSchema<"tenants">>;
|
|
41
|
+
workspaceId: z.ZodOptional<ConvexIdSchema<"workspaces">>;
|
|
42
|
+
actorPrincipalId: z.ZodString;
|
|
43
|
+
input: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
44
|
+
result: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
45
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
46
|
+
createdAt: z.ZodNumber;
|
|
47
|
+
}>;
|
|
48
|
+
declare const controlPlaneToolAcls: TableContract<{
|
|
49
|
+
tenantId: ConvexIdSchema<"tenants">;
|
|
50
|
+
role: z.ZodString;
|
|
51
|
+
toolName: z.ZodString;
|
|
52
|
+
createdBy: z.ZodString;
|
|
53
|
+
createdAt: z.ZodNumber;
|
|
54
|
+
updatedAt: z.ZodNumber;
|
|
55
|
+
}>;
|
|
56
|
+
|
|
57
|
+
export { controlPlaneToolAcls, policyBundles, policyDecisionLogs, policySimulations };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// src/schemas/tables/mc/policy.ts
|
|
4
|
+
|
|
5
|
+
// src/dsl/defineTable.ts
|
|
6
|
+
function defineTable(spec) {
|
|
7
|
+
return spec;
|
|
8
|
+
}
|
|
9
|
+
var CONVEX_ID_TABLE = /* @__PURE__ */ Symbol.for("lucern.contracts.convexIdTable");
|
|
10
|
+
function idOf(table) {
|
|
11
|
+
const schema = z.string().brand();
|
|
12
|
+
Object.defineProperty(schema, CONVEX_ID_TABLE, {
|
|
13
|
+
configurable: false,
|
|
14
|
+
enumerable: false,
|
|
15
|
+
value: table,
|
|
16
|
+
writable: false
|
|
17
|
+
});
|
|
18
|
+
return schema;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/schemas/tables/mc/policy.ts
|
|
22
|
+
var policyBundles = defineTable({
|
|
23
|
+
name: "policyBundles",
|
|
24
|
+
component: "mc",
|
|
25
|
+
category: "policy",
|
|
26
|
+
shape: z.object({
|
|
27
|
+
"bundleKey": z.string(),
|
|
28
|
+
"version": z.number(),
|
|
29
|
+
"scope": z.enum(["platform", "tenant", "workspace"]),
|
|
30
|
+
"tenantId": idOf("tenants").optional(),
|
|
31
|
+
"workspaceId": idOf("workspaces").optional(),
|
|
32
|
+
"status": z.enum(["draft", "validated", "enforced", "archived"]),
|
|
33
|
+
"policyHash": z.string().optional(),
|
|
34
|
+
"rules": z.record(z.any()),
|
|
35
|
+
"metadata": z.record(z.any()).optional(),
|
|
36
|
+
"createdBy": z.string().optional(),
|
|
37
|
+
"createdAt": z.number(),
|
|
38
|
+
"updatedAt": z.number()
|
|
39
|
+
}),
|
|
40
|
+
indices: [
|
|
41
|
+
{ kind: "index", name: "by_bundle_key", columns: ["bundleKey"] },
|
|
42
|
+
{ kind: "index", name: "by_bundle_key_version", columns: ["bundleKey", "version"] },
|
|
43
|
+
{ kind: "index", name: "by_scope_status", columns: ["scope", "status"] },
|
|
44
|
+
{ kind: "index", name: "by_tenant_status", columns: ["tenantId", "status"] },
|
|
45
|
+
{ kind: "index", name: "by_workspace_status", columns: ["workspaceId", "status"] }
|
|
46
|
+
]
|
|
47
|
+
});
|
|
48
|
+
var policyDecisionLogs = defineTable({
|
|
49
|
+
name: "policyDecisionLogs",
|
|
50
|
+
component: "mc",
|
|
51
|
+
category: "policy",
|
|
52
|
+
shape: z.object({
|
|
53
|
+
"principalId": z.string(),
|
|
54
|
+
"tenantId": idOf("tenants").optional(),
|
|
55
|
+
"workspaceId": idOf("workspaces").optional(),
|
|
56
|
+
"resourceType": z.string(),
|
|
57
|
+
"resourceId": z.string(),
|
|
58
|
+
"action": z.enum(["read", "summarize", "export", "mutate", "admin", "comment", "escalate", "resolve", "vote"]),
|
|
59
|
+
"decision": z.enum(["allow", "deny"]),
|
|
60
|
+
"reasonCode": z.string(),
|
|
61
|
+
"policyVersion": z.string(),
|
|
62
|
+
"policyBundleId": idOf("policyBundles").optional(),
|
|
63
|
+
"audienceKey": z.string().optional(),
|
|
64
|
+
"audienceClass": z.enum(["internal", "restricted_external", "public"]).optional(),
|
|
65
|
+
"audienceMode": z.string().optional(),
|
|
66
|
+
"traceId": z.string().optional(),
|
|
67
|
+
"packKey": z.string().optional(),
|
|
68
|
+
"metadata": z.record(z.any()).optional(),
|
|
69
|
+
"createdAt": z.number()
|
|
70
|
+
}),
|
|
71
|
+
indices: [
|
|
72
|
+
{ kind: "index", name: "by_principal_createdAt", columns: ["principalId", "createdAt"] },
|
|
73
|
+
{ kind: "index", name: "by_tenant_createdAt", columns: ["tenantId", "createdAt"] },
|
|
74
|
+
{ kind: "index", name: "by_pack_createdAt", columns: ["packKey", "createdAt"] },
|
|
75
|
+
{ kind: "index", name: "by_audienceKey_createdAt", columns: ["audienceKey", "createdAt"] },
|
|
76
|
+
{ kind: "index", name: "by_decision_createdAt", columns: ["decision", "createdAt"] },
|
|
77
|
+
{ kind: "index", name: "by_traceId", columns: ["traceId"] }
|
|
78
|
+
]
|
|
79
|
+
});
|
|
80
|
+
var policySimulations = defineTable({
|
|
81
|
+
name: "policySimulations",
|
|
82
|
+
component: "mc",
|
|
83
|
+
category: "policy",
|
|
84
|
+
shape: z.object({
|
|
85
|
+
"simulationKey": z.string(),
|
|
86
|
+
"tenantId": idOf("tenants").optional(),
|
|
87
|
+
"workspaceId": idOf("workspaces").optional(),
|
|
88
|
+
"actorPrincipalId": z.string(),
|
|
89
|
+
"input": z.record(z.any()),
|
|
90
|
+
"result": z.record(z.any()),
|
|
91
|
+
"metadata": z.record(z.any()).optional(),
|
|
92
|
+
"createdAt": z.number()
|
|
93
|
+
}),
|
|
94
|
+
indices: [
|
|
95
|
+
{ kind: "index", name: "by_simulation_key", columns: ["simulationKey"] },
|
|
96
|
+
{ kind: "index", name: "by_tenant_createdAt", columns: ["tenantId", "createdAt"] },
|
|
97
|
+
{ kind: "index", name: "by_workspace_createdAt", columns: ["workspaceId", "createdAt"] },
|
|
98
|
+
{ kind: "index", name: "by_actor_createdAt", columns: ["actorPrincipalId", "createdAt"] }
|
|
99
|
+
]
|
|
100
|
+
});
|
|
101
|
+
var controlPlaneToolAcls = defineTable({
|
|
102
|
+
name: "controlPlaneToolAcls",
|
|
103
|
+
component: "mc",
|
|
104
|
+
category: "policy",
|
|
105
|
+
shape: z.object({
|
|
106
|
+
"tenantId": idOf("tenants"),
|
|
107
|
+
"role": z.string(),
|
|
108
|
+
"toolName": z.string(),
|
|
109
|
+
"createdBy": z.string(),
|
|
110
|
+
"createdAt": z.number(),
|
|
111
|
+
"updatedAt": z.number()
|
|
112
|
+
}),
|
|
113
|
+
indices: [
|
|
114
|
+
{ kind: "index", name: "by_tenant_role", columns: ["tenantId", "role"] },
|
|
115
|
+
{ kind: "index", name: "by_tenant_toolName", columns: ["tenantId", "toolName"] }
|
|
116
|
+
]
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export { controlPlaneToolAcls, policyBundles, policyDecisionLogs, policySimulations };
|
|
120
|
+
//# sourceMappingURL=policy.js.map
|
|
121
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/dsl/defineTable.ts","../../../../src/dsl/idOf.ts","../../../../src/schemas/tables/mc/policy.ts"],"names":["z"],"mappings":"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","file":"policy.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","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","/**\n * Schema contracts for mc/policy.\n *\n * Mirrored from:\n * - services/master-control/convex/schema.ts\n */\n\nimport { z } from 'zod';\nimport { defineTable, idOf } from '../../../dsl.js';\n\nexport const policyBundles = defineTable({\n name: \"policyBundles\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"bundleKey\": z.string(),\n \"version\": z.number(),\n \"scope\": z.enum([\"platform\", \"tenant\", \"workspace\"]),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"status\": z.enum([\"draft\", \"validated\", \"enforced\", \"archived\"]),\n \"policyHash\": z.string().optional(),\n \"rules\": z.record(z.any()),\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_bundle_key\", columns: [\"bundleKey\"] },\n { kind: 'index', name: \"by_bundle_key_version\", columns: [\"bundleKey\", \"version\"] },\n { kind: 'index', name: \"by_scope_status\", columns: [\"scope\", \"status\"] },\n { kind: 'index', name: \"by_tenant_status\", columns: [\"tenantId\", \"status\"] },\n { kind: 'index', name: \"by_workspace_status\", columns: [\"workspaceId\", \"status\"] }\n ],\n});\n\nexport const policyDecisionLogs = defineTable({\n name: \"policyDecisionLogs\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"principalId\": z.string(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").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\": idOf(\"policyBundles\").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_decision_createdAt\", columns: [\"decision\", \"createdAt\"] },\n { kind: 'index', name: \"by_traceId\", columns: [\"traceId\"] }\n ],\n});\n\nexport const policySimulations = defineTable({\n name: \"policySimulations\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"simulationKey\": z.string(),\n \"tenantId\": idOf(\"tenants\").optional(),\n \"workspaceId\": idOf(\"workspaces\").optional(),\n \"actorPrincipalId\": z.string(),\n \"input\": z.record(z.any()),\n \"result\": z.record(z.any()),\n \"metadata\": z.record(z.any()).optional(),\n \"createdAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_simulation_key\", columns: [\"simulationKey\"] },\n { kind: 'index', name: \"by_tenant_createdAt\", columns: [\"tenantId\", \"createdAt\"] },\n { kind: 'index', name: \"by_workspace_createdAt\", columns: [\"workspaceId\", \"createdAt\"] },\n { kind: 'index', name: \"by_actor_createdAt\", columns: [\"actorPrincipalId\", \"createdAt\"] }\n ],\n});\n\nexport const controlPlaneToolAcls = defineTable({\n name: \"controlPlaneToolAcls\",\n component: \"mc\",\n category: \"policy\",\n shape: z.object({\n \"tenantId\": idOf(\"tenants\"),\n \"role\": z.string(),\n \"toolName\": z.string(),\n \"createdBy\": z.string(),\n \"createdAt\": z.number(),\n \"updatedAt\": z.number()\n }),\n indices: [\n { kind: 'index', name: \"by_tenant_role\", columns: [\"tenantId\", \"role\"] },\n { kind: 'index', name: \"by_tenant_toolName\", columns: [\"tenantId\", \"toolName\"] }\n ],\n});\n"]}
|