@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.
Files changed (223) hide show
  1. package/dist/defineFunction-DO97DKs4.d.ts +14 -0
  2. package/dist/defineTable-CBQ03FXl.d.ts +36 -0
  3. package/dist/dsl-BgpoVOVQ.d.ts +110 -0
  4. package/dist/dsl.d.ts +5 -0
  5. package/dist/dsl.js +678 -0
  6. package/dist/dsl.js.map +1 -0
  7. package/dist/function-registry/beliefs.d.ts +479 -0
  8. package/dist/function-registry/beliefs.js +4677 -0
  9. package/dist/function-registry/beliefs.js.map +1 -0
  10. package/dist/function-registry/coding.d.ts +323 -0
  11. package/dist/function-registry/coding.js +4451 -0
  12. package/dist/function-registry/coding.js.map +1 -0
  13. package/dist/function-registry/context.d.ts +206 -0
  14. package/dist/function-registry/context.js +4336 -0
  15. package/dist/function-registry/context.js.map +1 -0
  16. package/dist/function-registry/contracts.d.ts +206 -0
  17. package/dist/function-registry/contracts.js +4284 -0
  18. package/dist/function-registry/contracts.js.map +1 -0
  19. package/dist/function-registry/coordination.d.ts +440 -0
  20. package/dist/function-registry/coordination.js +4405 -0
  21. package/dist/function-registry/coordination.js.map +1 -0
  22. package/dist/function-registry/edges.d.ts +167 -0
  23. package/dist/function-registry/edges.js +4425 -0
  24. package/dist/function-registry/edges.js.map +1 -0
  25. package/dist/function-registry/evidence.d.ts +401 -0
  26. package/dist/function-registry/evidence.js +4598 -0
  27. package/dist/function-registry/evidence.js.map +1 -0
  28. package/dist/function-registry/graph.d.ts +596 -0
  29. package/dist/function-registry/graph.js +4489 -0
  30. package/dist/function-registry/graph.js.map +1 -0
  31. package/dist/function-registry/helpers.d.ts +84 -0
  32. package/dist/function-registry/helpers.js +4280 -0
  33. package/dist/function-registry/helpers.js.map +1 -0
  34. package/dist/function-registry/identity.d.ts +206 -0
  35. package/dist/function-registry/identity.js +4295 -0
  36. package/dist/function-registry/identity.js.map +1 -0
  37. package/dist/function-registry/index.d.ts +32 -0
  38. package/dist/function-registry/index.js +4384 -0
  39. package/dist/function-registry/index.js.map +1 -0
  40. package/dist/function-registry/judgments.d.ts +167 -0
  41. package/dist/function-registry/judgments.js +4308 -0
  42. package/dist/function-registry/judgments.js.map +1 -0
  43. package/dist/function-registry/legacy.d.ts +128 -0
  44. package/dist/function-registry/legacy.js +4259 -0
  45. package/dist/function-registry/legacy.js.map +1 -0
  46. package/dist/function-registry/lenses.d.ts +245 -0
  47. package/dist/function-registry/lenses.js +4343 -0
  48. package/dist/function-registry/lenses.js.map +1 -0
  49. package/dist/function-registry/manifest.d.ts +36 -0
  50. package/dist/function-registry/manifest.js +367 -0
  51. package/dist/function-registry/manifest.js.map +1 -0
  52. package/dist/function-registry/ontologies.d.ts +518 -0
  53. package/dist/function-registry/ontologies.js +4442 -0
  54. package/dist/function-registry/ontologies.js.map +1 -0
  55. package/dist/function-registry/pipeline.d.ts +206 -0
  56. package/dist/function-registry/pipeline.js +4295 -0
  57. package/dist/function-registry/pipeline.js.map +1 -0
  58. package/dist/function-registry/questions.d.ts +557 -0
  59. package/dist/function-registry/questions.js +4528 -0
  60. package/dist/function-registry/questions.js.map +1 -0
  61. package/dist/function-registry/tasks.d.ts +245 -0
  62. package/dist/function-registry/tasks.js +4373 -0
  63. package/dist/function-registry/tasks.js.map +1 -0
  64. package/dist/function-registry/topics.d.ts +284 -0
  65. package/dist/function-registry/topics.js +4350 -0
  66. package/dist/function-registry/topics.js.map +1 -0
  67. package/dist/function-registry/types.d.ts +84 -0
  68. package/dist/function-registry/types.js +3 -0
  69. package/dist/function-registry/types.js.map +1 -0
  70. package/dist/function-registry/worktrees.d.ts +479 -0
  71. package/dist/function-registry/worktrees.js +4522 -0
  72. package/dist/function-registry/worktrees.js.map +1 -0
  73. package/dist/generated/convexSchemas.d.ts +20 -0
  74. package/dist/generated/convexSchemas.js +161 -0
  75. package/dist/generated/convexSchemas.js.map +1 -0
  76. package/dist/generated/schema-manifest.json +5231 -0
  77. package/dist/generated/tableOwnership.d.ts +128 -0
  78. package/dist/generated/tableOwnership.js +278 -0
  79. package/dist/generated/tableOwnership.js.map +1 -0
  80. package/dist/generated/tier-expectations.json +363 -0
  81. package/dist/idOf-DR8tkhQS.d.ts +10 -0
  82. package/dist/index-CV-0_VWJ.d.ts +25 -0
  83. package/dist/index.d.ts +421 -2
  84. package/dist/index.js +7634 -1607
  85. package/dist/index.js.map +1 -1
  86. package/dist/schema-helpers/enumValidation.d.ts +17 -0
  87. package/dist/schema-helpers/enumValidation.js +143 -0
  88. package/dist/schema-helpers/enumValidation.js.map +1 -0
  89. package/dist/schema-helpers/spine/nodes/decision.d.ts +19 -0
  90. package/dist/schema-helpers/spine/nodes/decision.js +81 -0
  91. package/dist/schema-helpers/spine/nodes/decision.js.map +1 -0
  92. package/dist/schema-helpers/spine/tables/epistemicNodes.d.ts +9 -0
  93. package/dist/schema-helpers/spine/tables/epistemicNodes.js +62 -0
  94. package/dist/schema-helpers/spine/tables/epistemicNodes.js.map +1 -0
  95. package/dist/schema-helpers/topicIds.d.ts +17 -0
  96. package/dist/schema-helpers/topicIds.js +21 -0
  97. package/dist/schema-helpers/topicIds.js.map +1 -0
  98. package/dist/schema-helpers/topicLegacyScope.d.ts +19 -0
  99. package/dist/schema-helpers/topicLegacyScope.js +44 -0
  100. package/dist/schema-helpers/topicLegacyScope.js.map +1 -0
  101. package/dist/schema-helpers/validators.d.ts +8 -0
  102. package/dist/schema-helpers/validators.js +18 -0
  103. package/dist/schema-helpers/validators.js.map +1 -0
  104. package/dist/schemas/component-table-manifest.d.ts +74 -0
  105. package/dist/schemas/component-table-manifest.js +26 -0
  106. package/dist/schemas/component-table-manifest.js.map +1 -0
  107. package/dist/schemas/enums.d.ts +12 -0
  108. package/dist/schemas/enums.js +11 -0
  109. package/dist/schemas/enums.js.map +1 -0
  110. package/dist/schemas/index.d.ts +7 -0
  111. package/dist/schemas/index.js +4298 -0
  112. package/dist/schemas/index.js.map +1 -0
  113. package/dist/schemas/manifest.d.ts +24586 -0
  114. package/dist/schemas/manifest.js +4269 -0
  115. package/dist/schemas/manifest.js.map +1 -0
  116. package/dist/schemas/sl-opinion.d.ts +31 -0
  117. package/dist/schemas/sl-opinion.js +19 -0
  118. package/dist/schemas/sl-opinion.js.map +1 -0
  119. package/dist/schemas/tables/identity/agent.d.ts +21 -0
  120. package/dist/schemas/tables/identity/agent.js +41 -0
  121. package/dist/schemas/tables/identity/agent.js.map +1 -0
  122. package/dist/schemas/tables/identity/epistemic.d.ts +18 -0
  123. package/dist/schemas/tables/identity/epistemic.js +38 -0
  124. package/dist/schemas/tables/identity/epistemic.js.map +1 -0
  125. package/dist/schemas/tables/identity/model.d.ts +62 -0
  126. package/dist/schemas/tables/identity/model.js +110 -0
  127. package/dist/schemas/tables/identity/model.js.map +1 -0
  128. package/dist/schemas/tables/identity/platform.d.ts +392 -0
  129. package/dist/schemas/tables/identity/platform.js +475 -0
  130. package/dist/schemas/tables/identity/platform.js.map +1 -0
  131. package/dist/schemas/tables/identity/project.d.ts +22 -0
  132. package/dist/schemas/tables/identity/project.js +48 -0
  133. package/dist/schemas/tables/identity/project.js.map +1 -0
  134. package/dist/schemas/tables/identity/user.d.ts +26 -0
  135. package/dist/schemas/tables/identity/user.js +47 -0
  136. package/dist/schemas/tables/identity/user.js.map +1 -0
  137. package/dist/schemas/tables/kernel/config.d.ts +20 -0
  138. package/dist/schemas/tables/kernel/config.js +39 -0
  139. package/dist/schemas/tables/kernel/config.js.map +1 -0
  140. package/dist/schemas/tables/kernel/coordination.d.ts +30 -0
  141. package/dist/schemas/tables/kernel/coordination.js +57 -0
  142. package/dist/schemas/tables/kernel/coordination.js.map +1 -0
  143. package/dist/schemas/tables/kernel/decision.d.ts +246 -0
  144. package/dist/schemas/tables/kernel/decision.js +371 -0
  145. package/dist/schemas/tables/kernel/decision.js.map +1 -0
  146. package/dist/schemas/tables/kernel/embedding.d.ts +18 -0
  147. package/dist/schemas/tables/kernel/embedding.js +48 -0
  148. package/dist/schemas/tables/kernel/embedding.js.map +1 -0
  149. package/dist/schemas/tables/kernel/epistemic.d.ts +317 -0
  150. package/dist/schemas/tables/kernel/epistemic.js +329 -0
  151. package/dist/schemas/tables/kernel/epistemic.js.map +1 -0
  152. package/dist/schemas/tables/kernel/idempotency.d.ts +13 -0
  153. package/dist/schemas/tables/kernel/idempotency.js +31 -0
  154. package/dist/schemas/tables/kernel/idempotency.js.map +1 -0
  155. package/dist/schemas/tables/kernel/infra.d.ts +183 -0
  156. package/dist/schemas/tables/kernel/infra.js +182 -0
  157. package/dist/schemas/tables/kernel/infra.js.map +1 -0
  158. package/dist/schemas/tables/kernel/intelligence.d.ts +293 -0
  159. package/dist/schemas/tables/kernel/intelligence.js +207 -0
  160. package/dist/schemas/tables/kernel/intelligence.js.map +1 -0
  161. package/dist/schemas/tables/kernel/lens.d.ts +192 -0
  162. package/dist/schemas/tables/kernel/lens.js +122 -0
  163. package/dist/schemas/tables/kernel/lens.js.map +1 -0
  164. package/dist/schemas/tables/kernel/ontology.d.ts +89 -0
  165. package/dist/schemas/tables/kernel/ontology.js +91 -0
  166. package/dist/schemas/tables/kernel/ontology.js.map +1 -0
  167. package/dist/schemas/tables/kernel/platform.d.ts +353 -0
  168. package/dist/schemas/tables/kernel/platform.js +349 -0
  169. package/dist/schemas/tables/kernel/platform.js.map +1 -0
  170. package/dist/schemas/tables/kernel/spine.d.ts +206 -0
  171. package/dist/schemas/tables/kernel/spine.js +243 -0
  172. package/dist/schemas/tables/kernel/spine.js.map +1 -0
  173. package/dist/schemas/tables/kernel/task.d.ts +614 -0
  174. package/dist/schemas/tables/kernel/task.js +189 -0
  175. package/dist/schemas/tables/kernel/task.js.map +1 -0
  176. package/dist/schemas/tables/kernel/topic.d.ts +25 -0
  177. package/dist/schemas/tables/kernel/topic.js +62 -0
  178. package/dist/schemas/tables/kernel/topic.js.map +1 -0
  179. package/dist/schemas/tables/kernel/workflow.d.ts +45 -0
  180. package/dist/schemas/tables/kernel/workflow.js +94 -0
  181. package/dist/schemas/tables/kernel/workflow.js.map +1 -0
  182. package/dist/schemas/tables/kernel/worktree.d.ts +823 -0
  183. package/dist/schemas/tables/kernel/worktree.js +330 -0
  184. package/dist/schemas/tables/kernel/worktree.js.map +1 -0
  185. package/dist/schemas/tables/mc/identity.d.ts +134 -0
  186. package/dist/schemas/tables/mc/identity.js +221 -0
  187. package/dist/schemas/tables/mc/identity.js.map +1 -0
  188. package/dist/schemas/tables/mc/methodology.d.ts +46 -0
  189. package/dist/schemas/tables/mc/methodology.js +69 -0
  190. package/dist/schemas/tables/mc/methodology.js.map +1 -0
  191. package/dist/schemas/tables/mc/pack.d.ts +540 -0
  192. package/dist/schemas/tables/mc/pack.js +294 -0
  193. package/dist/schemas/tables/mc/pack.js.map +1 -0
  194. package/dist/schemas/tables/mc/policy.d.ts +57 -0
  195. package/dist/schemas/tables/mc/policy.js +121 -0
  196. package/dist/schemas/tables/mc/policy.js.map +1 -0
  197. package/dist/schemas/tables/mc/registry.d.ts +155 -0
  198. package/dist/schemas/tables/mc/registry.js +164 -0
  199. package/dist/schemas/tables/mc/registry.js.map +1 -0
  200. package/dist/schemas/tables/mc/runtime.d.ts +119 -0
  201. package/dist/schemas/tables/mc/runtime.js +199 -0
  202. package/dist/schemas/tables/mc/runtime.js.map +1 -0
  203. package/dist/schemas/tables/mc/tenant.d.ts +106 -0
  204. package/dist/schemas/tables/mc/tenant.js +114 -0
  205. package/dist/schemas/tables/mc/tenant.js.map +1 -0
  206. package/dist/schemas/tables/mc/workspace.d.ts +28 -0
  207. package/dist/schemas/tables/mc/workspace.js +52 -0
  208. package/dist/schemas/tables/mc/workspace.js.map +1 -0
  209. package/dist/sdk-methods.contract.d.ts +5 -2
  210. package/dist/{sdk-tools.contract-BnV0hKLp.d.ts → sdk-tools.contract-S4ia0TTo.d.ts} +3 -7
  211. package/dist/sdk-tools.contract.d.ts +2 -2
  212. package/dist/sdk-tools.contract.js +810 -218
  213. package/dist/sdk-tools.contract.js.map +1 -1
  214. package/dist/tool-contracts-C92-9ueT.d.ts +290 -0
  215. package/dist/tool-contracts.d.ts +1 -0
  216. package/dist/{mcp-tools.contract.js → tool-contracts.js} +812 -159
  217. package/dist/tool-contracts.js.map +1 -0
  218. package/dist/workflow-runtime.contract.js +1 -1
  219. package/dist/workflow-runtime.contract.js.map +1 -1
  220. package/package.json +137 -2
  221. package/dist/mcp-tools.contract-D8kXcP6d.d.ts +0 -254
  222. package/dist/mcp-tools.contract.d.ts +0 -1
  223. 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"]}