@lucern/contracts 0.3.0-alpha.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/api-enums.contract.d.ts +5 -3
  3. package/dist/api-enums.contract.js +14 -12
  4. package/dist/api-enums.contract.js.map +1 -1
  5. package/dist/auth-context.contract.js +14 -2
  6. package/dist/auth-context.contract.js.map +1 -1
  7. package/dist/auth-session.contract.js +14 -2
  8. package/dist/auth-session.contract.js.map +1 -1
  9. package/dist/auth.contract.d.ts +1 -1
  10. package/dist/auth.contract.js +14 -2
  11. package/dist/auth.contract.js.map +1 -1
  12. package/dist/component-boundary.contract.d.ts +1 -1
  13. package/dist/component-boundary.contract.js +46 -26
  14. package/dist/component-boundary.contract.js.map +1 -1
  15. package/dist/component-host-boundary.contract.d.ts +10 -5
  16. package/dist/component-host-boundary.contract.js +10 -4
  17. package/dist/component-host-boundary.contract.js.map +1 -1
  18. package/dist/{defineTable-CBQ03FXl.d.ts → defineTable-t1wr5wgn.d.ts} +1 -1
  19. package/dist/{dsl-djCRfuWC.d.ts → dsl-DVPthQGY.d.ts} +1 -1
  20. package/dist/dsl.d.ts +2 -2
  21. package/dist/dsl.js.map +1 -1
  22. package/dist/edge-policy-manifest-Dw5IhT1L.d.ts +133 -0
  23. package/dist/function-registry/beliefs.d.ts +23 -10
  24. package/dist/function-registry/beliefs.js +467 -36
  25. package/dist/function-registry/beliefs.js.map +1 -1
  26. package/dist/function-registry/coding.d.ts +15 -6
  27. package/dist/function-registry/coding.js +531 -22
  28. package/dist/function-registry/coding.js.map +1 -1
  29. package/dist/function-registry/context.d.ts +9 -3
  30. package/dist/function-registry/context.js +464 -21
  31. package/dist/function-registry/context.js.map +1 -1
  32. package/dist/function-registry/contracts.d.ts +9 -3
  33. package/dist/function-registry/contracts.js +464 -21
  34. package/dist/function-registry/contracts.js.map +1 -1
  35. package/dist/function-registry/coordination.d.ts +21 -9
  36. package/dist/function-registry/coordination.js +464 -21
  37. package/dist/function-registry/coordination.js.map +1 -1
  38. package/dist/function-registry/edges.d.ts +167 -2
  39. package/dist/function-registry/edges.js +661 -52
  40. package/dist/function-registry/edges.js.map +1 -1
  41. package/dist/function-registry/evidence.d.ts +19 -8
  42. package/dist/function-registry/evidence.js +473 -40
  43. package/dist/function-registry/evidence.js.map +1 -1
  44. package/dist/function-registry/graph.d.ts +33 -15
  45. package/dist/function-registry/graph.js +464 -21
  46. package/dist/function-registry/graph.js.map +1 -1
  47. package/dist/function-registry/helpers.d.ts +6 -3
  48. package/dist/function-registry/helpers.js +465 -22
  49. package/dist/function-registry/helpers.js.map +1 -1
  50. package/dist/function-registry/identity.d.ts +62 -16
  51. package/dist/function-registry/identity.js +487 -27
  52. package/dist/function-registry/identity.js.map +1 -1
  53. package/dist/function-registry/index.d.ts +4 -2
  54. package/dist/function-registry/index.js +468 -22
  55. package/dist/function-registry/index.js.map +1 -1
  56. package/dist/function-registry/judgments.d.ts +7 -2
  57. package/dist/function-registry/judgments.js +464 -21
  58. package/dist/function-registry/judgments.js.map +1 -1
  59. package/dist/function-registry/legacy.d.ts +5 -1
  60. package/dist/function-registry/legacy.js +464 -21
  61. package/dist/function-registry/legacy.js.map +1 -1
  62. package/dist/function-registry/lenses.d.ts +11 -4
  63. package/dist/function-registry/lenses.js +464 -21
  64. package/dist/function-registry/lenses.js.map +1 -1
  65. package/dist/function-registry/manifest.d.ts +4 -4
  66. package/dist/function-registry/manifest.js +16 -1
  67. package/dist/function-registry/manifest.js.map +1 -1
  68. package/dist/function-registry/nodes.d.ts +412 -0
  69. package/dist/function-registry/nodes.js +5354 -0
  70. package/dist/function-registry/nodes.js.map +1 -0
  71. package/dist/function-registry/ontologies.d.ts +25 -11
  72. package/dist/function-registry/ontologies.js +464 -21
  73. package/dist/function-registry/ontologies.js.map +1 -1
  74. package/dist/function-registry/pipeline.d.ts +9 -3
  75. package/dist/function-registry/pipeline.js +464 -21
  76. package/dist/function-registry/pipeline.js.map +1 -1
  77. package/dist/function-registry/questions.d.ts +27 -12
  78. package/dist/function-registry/questions.js +466 -26
  79. package/dist/function-registry/questions.js.map +1 -1
  80. package/dist/function-registry/tasks.d.ts +11 -4
  81. package/dist/function-registry/tasks.js +497 -30
  82. package/dist/function-registry/tasks.js.map +1 -1
  83. package/dist/function-registry/topics.d.ts +93 -5
  84. package/dist/function-registry/topics.js +534 -24
  85. package/dist/function-registry/topics.js.map +1 -1
  86. package/dist/function-registry/types.d.ts +7 -3
  87. package/dist/function-registry/worktrees.d.ts +25 -11
  88. package/dist/function-registry/worktrees.js +480 -21
  89. package/dist/function-registry/worktrees.js.map +1 -1
  90. package/dist/gateway.contract.d.ts +4 -0
  91. package/dist/gateway.contract.js.map +1 -1
  92. package/dist/generated/convexSchemas.d.ts +3 -3
  93. package/dist/generated/convexSchemas.js +37 -17
  94. package/dist/generated/convexSchemas.js.map +1 -1
  95. package/dist/generated/infisicalRuntimeEnv.d.ts +70 -0
  96. package/dist/generated/infisicalRuntimeEnv.js +27585 -0
  97. package/dist/generated/infisicalRuntimeEnv.js.map +1 -0
  98. package/dist/generated/lucernGatewayEnv.d.ts +17 -0
  99. package/dist/generated/lucernGatewayEnv.js +38 -0
  100. package/dist/generated/lucernGatewayEnv.js.map +1 -0
  101. package/dist/generated/lucernWebPublicEnv.d.ts +26 -0
  102. package/dist/generated/lucernWebPublicEnv.js +32 -0
  103. package/dist/generated/lucernWebPublicEnv.js.map +1 -0
  104. package/dist/generated/lucernWebServerEnv.d.ts +33 -0
  105. package/dist/generated/lucernWebServerEnv.js +51 -0
  106. package/dist/generated/lucernWebServerEnv.js.map +1 -0
  107. package/dist/generated/schema-manifest.json +1221 -114
  108. package/dist/generated/tableOwnership.d.ts +48 -28
  109. package/dist/generated/tableOwnership.js +66 -26
  110. package/dist/generated/tableOwnership.js.map +1 -1
  111. package/dist/generated/tier-expectations.json +64 -9
  112. package/dist/{index-O09U2xHk.d.ts → index-CM1Pl_vI.d.ts} +3 -3
  113. package/dist/index.d.ts +12 -7
  114. package/dist/index.js +32892 -459
  115. package/dist/index.js.map +1 -1
  116. package/dist/infisical-runtime.contract.d.ts +1763 -6
  117. package/dist/infisical-runtime.contract.js +2994 -15
  118. package/dist/infisical-runtime.contract.js.map +1 -1
  119. package/dist/manifests/edge-policy-manifest.d.ts +1 -1
  120. package/dist/manifests/edge-policy-manifest.data.d.ts +6 -20
  121. package/dist/manifests/edge-policy-manifest.data.js +18 -26
  122. package/dist/manifests/edge-policy-manifest.data.js.map +1 -1
  123. package/dist/manifests/edge-policy-manifest.js +31 -4
  124. package/dist/manifests/edge-policy-manifest.js.map +1 -1
  125. package/dist/manifests/infisical-runtime-manifest.d.ts +1689 -6
  126. package/dist/manifests/infisical-runtime-manifest.js +2847 -12
  127. package/dist/manifests/infisical-runtime-manifest.js.map +1 -1
  128. package/dist/manifests/tenant-client-manifest.d.ts +19 -14
  129. package/dist/manifests/tenant-client-manifest.js +29 -12
  130. package/dist/manifests/tenant-client-manifest.js.map +1 -1
  131. package/dist/mcp-gateway-boundary.contract.d.ts +23 -3
  132. package/dist/mcp-gateway-boundary.contract.js +2 -0
  133. package/dist/mcp-gateway-boundary.contract.js.map +1 -1
  134. package/dist/permit-principal-projection.contract.d.ts +74 -0
  135. package/dist/permit-principal-projection.contract.js +167 -0
  136. package/dist/permit-principal-projection.contract.js.map +1 -0
  137. package/dist/projections/check-convex-args-shape.js +10 -6
  138. package/dist/projections/check-convex-args-shape.js.map +1 -1
  139. package/dist/projections/create-evidence.projection.d.ts +6 -6
  140. package/dist/projections/create-evidence.projection.js +2 -3
  141. package/dist/projections/create-evidence.projection.js.map +1 -1
  142. package/dist/projections/index.d.ts +3 -3
  143. package/dist/projections/index.js +10 -6
  144. package/dist/projections/index.js.map +1 -1
  145. package/dist/projections/list-tasks.projection.d.ts +20 -8
  146. package/dist/projections/list-tasks.projection.js +8 -3
  147. package/dist/projections/list-tasks.projection.js.map +1 -1
  148. package/dist/proof-attestation.json +45 -0
  149. package/dist/schemas/component-table-manifest.d.ts +6 -6
  150. package/dist/schemas/component-table-manifest.js +2 -2
  151. package/dist/schemas/component-table-manifest.js.map +1 -1
  152. package/dist/schemas/index.d.ts +2 -2
  153. package/dist/schemas/index.js +1123 -137
  154. package/dist/schemas/index.js.map +1 -1
  155. package/dist/schemas/manifest.d.ts +2102 -132
  156. package/dist/schemas/manifest.js +1121 -135
  157. package/dist/schemas/manifest.js.map +1 -1
  158. package/dist/schemas/tables/controlPlane/accessControl.d.ts +260 -0
  159. package/dist/schemas/tables/controlPlane/accessControl.js +658 -0
  160. package/dist/schemas/tables/controlPlane/accessControl.js.map +1 -0
  161. package/dist/schemas/tables/{identity → controlPlane}/agent.d.ts +1 -1
  162. package/dist/schemas/tables/{identity → controlPlane}/agent.js +3 -3
  163. package/dist/schemas/tables/controlPlane/agent.js.map +1 -0
  164. package/dist/schemas/tables/{identity → controlPlane}/epistemic.d.ts +1 -1
  165. package/dist/schemas/tables/{identity → controlPlane}/epistemic.js +3 -3
  166. package/dist/schemas/tables/controlPlane/epistemic.js.map +1 -0
  167. package/dist/schemas/tables/{identity → controlPlane}/model.d.ts +1 -1
  168. package/dist/schemas/tables/{identity → controlPlane}/model.js +6 -6
  169. package/dist/schemas/tables/controlPlane/model.js.map +1 -0
  170. package/dist/schemas/tables/{identity → controlPlane}/platform.d.ts +1 -1
  171. package/dist/schemas/tables/{identity → controlPlane}/platform.js +18 -18
  172. package/dist/schemas/tables/controlPlane/platform.js.map +1 -0
  173. package/dist/schemas/tables/{identity → controlPlane}/project.d.ts +1 -1
  174. package/dist/schemas/tables/{identity → controlPlane}/project.js +3 -3
  175. package/dist/schemas/tables/controlPlane/project.js.map +1 -0
  176. package/dist/schemas/tables/{identity → controlPlane}/user.d.ts +1 -1
  177. package/dist/schemas/tables/{identity → controlPlane}/user.js +3 -3
  178. package/dist/schemas/tables/controlPlane/user.js.map +1 -0
  179. package/dist/schemas/tables/kernel/config.d.ts +1 -1
  180. package/dist/schemas/tables/kernel/config.js.map +1 -1
  181. package/dist/schemas/tables/kernel/coordination.d.ts +1 -1
  182. package/dist/schemas/tables/kernel/coordination.js.map +1 -1
  183. package/dist/schemas/tables/kernel/decision.d.ts +1 -1
  184. package/dist/schemas/tables/kernel/decision.js.map +1 -1
  185. package/dist/schemas/tables/kernel/embedding.d.ts +1 -1
  186. package/dist/schemas/tables/kernel/embedding.js.map +1 -1
  187. package/dist/schemas/tables/kernel/epistemic.d.ts +1 -1
  188. package/dist/schemas/tables/kernel/epistemic.js.map +1 -1
  189. package/dist/schemas/tables/kernel/events.d.ts +21 -0
  190. package/dist/schemas/tables/kernel/events.js +43 -0
  191. package/dist/schemas/tables/kernel/events.js.map +1 -0
  192. package/dist/schemas/tables/kernel/idempotency.d.ts +1 -1
  193. package/dist/schemas/tables/kernel/idempotency.js.map +1 -1
  194. package/dist/schemas/tables/kernel/infra.d.ts +1 -1
  195. package/dist/schemas/tables/kernel/infra.js.map +1 -1
  196. package/dist/schemas/tables/kernel/intelligence.d.ts +1 -1
  197. package/dist/schemas/tables/kernel/intelligence.js.map +1 -1
  198. package/dist/schemas/tables/kernel/lens.d.ts +1 -1
  199. package/dist/schemas/tables/kernel/lens.js.map +1 -1
  200. package/dist/schemas/tables/kernel/ontology.d.ts +1 -1
  201. package/dist/schemas/tables/kernel/ontology.js.map +1 -1
  202. package/dist/schemas/tables/kernel/platform.d.ts +1 -1
  203. package/dist/schemas/tables/kernel/platform.js.map +1 -1
  204. package/dist/schemas/tables/kernel/spine.d.ts +2 -1
  205. package/dist/schemas/tables/kernel/spine.js +1 -0
  206. package/dist/schemas/tables/kernel/spine.js.map +1 -1
  207. package/dist/schemas/tables/kernel/task.d.ts +1 -1
  208. package/dist/schemas/tables/kernel/task.js.map +1 -1
  209. package/dist/schemas/tables/kernel/topic.d.ts +1 -1
  210. package/dist/schemas/tables/kernel/topic.js +1 -0
  211. package/dist/schemas/tables/kernel/topic.js.map +1 -1
  212. package/dist/schemas/tables/kernel/workflow.d.ts +1 -1
  213. package/dist/schemas/tables/kernel/workflow.js.map +1 -1
  214. package/dist/schemas/tables/kernel/worktree.d.ts +17 -17
  215. package/dist/schemas/tables/kernel/worktree.js.map +1 -1
  216. package/dist/schemas/tables/mc/identity.d.ts +19 -2
  217. package/dist/schemas/tables/mc/identity.js +32 -1
  218. package/dist/schemas/tables/mc/identity.js.map +1 -1
  219. package/dist/schemas/tables/mc/methodology.d.ts +1 -1
  220. package/dist/schemas/tables/mc/methodology.js.map +1 -1
  221. package/dist/schemas/tables/mc/pack.d.ts +1 -1
  222. package/dist/schemas/tables/mc/pack.js.map +1 -1
  223. package/dist/schemas/tables/mc/policy.d.ts +2 -2
  224. package/dist/schemas/tables/mc/policy.js +1 -1
  225. package/dist/schemas/tables/mc/policy.js.map +1 -1
  226. package/dist/schemas/tables/mc/registry.d.ts +1 -1
  227. package/dist/schemas/tables/mc/registry.js.map +1 -1
  228. package/dist/schemas/tables/mc/runtime.d.ts +109 -3
  229. package/dist/schemas/tables/mc/runtime.js +330 -104
  230. package/dist/schemas/tables/mc/runtime.js.map +1 -1
  231. package/dist/schemas/tables/mc/tenant.d.ts +4 -2
  232. package/dist/schemas/tables/mc/tenant.js +3 -1
  233. package/dist/schemas/tables/mc/tenant.js.map +1 -1
  234. package/dist/schemas/tables/mc/workspace.d.ts +22 -5
  235. package/dist/schemas/tables/mc/workspace.js +34 -2
  236. package/dist/schemas/tables/mc/workspace.js.map +1 -1
  237. package/dist/{sdk-tools.contract-Ci8bkoai.d.ts → sdk-tools.contract-CKmSsrZ2.d.ts} +1 -1
  238. package/dist/sdk-tools.contract.d.ts +2 -2
  239. package/dist/sdk-tools.contract.js +417 -13
  240. package/dist/sdk-tools.contract.js.map +1 -1
  241. package/dist/tenant-bootstrap-seed.contract.d.ts +244 -56
  242. package/dist/tenant-bootstrap-seed.contract.js +139 -28
  243. package/dist/tenant-bootstrap-seed.contract.js.map +1 -1
  244. package/dist/tenant-bootstrap-seed.defaults.d.ts +2 -2
  245. package/dist/tenant-bootstrap-seed.defaults.js +31 -13
  246. package/dist/tenant-bootstrap-seed.defaults.js.map +1 -1
  247. package/dist/tenant-client.contract.d.ts +20 -15
  248. package/dist/tenant-client.contract.js +29 -12
  249. package/dist/tenant-client.contract.js.map +1 -1
  250. package/dist/{tool-contracts-B4iWhejG.d.ts → tool-contracts-C_xvM9q2.d.ts} +32 -2
  251. package/dist/tool-contracts.d.ts +1 -1
  252. package/dist/tool-contracts.js +418 -14
  253. package/dist/tool-contracts.js.map +1 -1
  254. package/package.json +22 -1
  255. package/dist/edge-policy-manifest-Byv6cQPP.d.ts +0 -132
  256. package/dist/schemas/tables/identity/agent.js.map +0 -1
  257. package/dist/schemas/tables/identity/epistemic.js.map +0 -1
  258. package/dist/schemas/tables/identity/model.js.map +0 -1
  259. package/dist/schemas/tables/identity/platform.js.map +0 -1
  260. package/dist/schemas/tables/identity/project.js.map +0 -1
  261. package/dist/schemas/tables/identity/user.js.map +0 -1
@@ -1,2 +1,2 @@
1
1
  import 'zod';
2
- export { E as EdgePolicyEntry, a as EdgePolicyEntrySchema, b as EdgePolicyManifest, c as EdgePolicyManifestSchema, d as EdgePolicyViolation, h as assertEdgePolicyAllowed, i as findEdgePolicy } from '../edge-policy-manifest-Byv6cQPP.js';
2
+ export { E as EdgePolicyEntry, a as EdgePolicyEntrySchema, b as EdgePolicyManifest, c as EdgePolicyManifestSchema, d as EdgePolicyViolation, i as assertEdgePolicyAllowed, j as findEdgePolicy } from '../edge-policy-manifest-Dw5IhT1L.js';
@@ -1,27 +1,13 @@
1
1
  declare const edgePolicyManifest: {
2
2
  manifestVersion: "1.0.0";
3
- policies: ({
4
- edgeType: string;
5
- fromKinds: "epistemic_node"[];
6
- fromNodeTypes: "evidence"[];
7
- toKinds: "epistemic_node"[];
8
- toNodeTypes: "evidence"[];
9
- description: string;
10
- } | {
11
- edgeType: string;
12
- fromKinds: "epistemic_node"[];
13
- fromNodeTypes: "evidence"[];
14
- toKinds: "epistemic_node"[];
15
- toNodeTypes: "belief"[];
3
+ policies: {
16
4
  description: string;
17
- } | {
18
5
  edgeType: string;
19
- fromKinds: "epistemic_node"[];
20
- fromNodeTypes: "evidence"[];
21
- toKinds: "epistemic_node"[];
22
- toNodeTypes: "question"[];
23
- description: string;
24
- })[];
6
+ fromKinds: ("epistemic_node" | "external_belief")[];
7
+ toKinds: ("epistemic_node" | "external_belief")[];
8
+ fromNodeTypes?: ("function" | "belief" | "evidence" | "question" | "edge" | "contradiction" | "topic" | "ontology" | "source" | "lens" | "decision" | "claim" | "answer" | "theme" | "deal" | "synthesis" | "atomic_fact" | "excerpt" | "company" | "person" | "investor" | "value_chain")[] | undefined;
9
+ toNodeTypes?: ("function" | "belief" | "evidence" | "question" | "edge" | "contradiction" | "topic" | "ontology" | "source" | "lens" | "decision" | "claim" | "answer" | "theme" | "deal" | "synthesis" | "atomic_fact" | "excerpt" | "company" | "person" | "investor" | "value_chain")[] | undefined;
10
+ }[];
25
11
  };
26
12
 
27
13
  export { edgePolicyManifest };
@@ -1,32 +1,24 @@
1
+ import { z } from 'zod';
2
+
3
+ // src/schemas/enums.ts
4
+ z.enum(["decision", "belief", "question", "theme", "deal", "topic", "claim", "evidence", "synthesis", "answer", "atomic_fact", "excerpt", "source", "company", "person", "investor", "function", "value_chain"]);
5
+ var EDGE_TYPE_VALUES = ["supports", "informs", "depends_on", "derived_from", "contains", "tests", "supersedes", "responds_to", "belongs_to", "relates_to_thesis", "works_at", "invested_in", "competes_with", "participates_in", "founded_by", "evaluates", "performs", "function_in", "impacts", "raised_from", "mentioned_in", "perspective_on", "plays_theme", "answers", "explores", "qualifies", "based_on", "based_on_belief", "based_on_question", "blocked_by_contradiction", "informed_by_theme", "same_as", "reinforces", "parent_of", "child_of", "falsified_by", "exclusive_with", "collapses_if", "cascade_from", "counterfactual_of", "cascade_to", "mutually_exclusive", "correlates_with", "amplifies", "precondition_for", "in_tension_with", "strengthened_by", "weakened_by", "alternative_to", "subsumes", "validated_by", "required_for", "blocks", "prerequisite_for", "parallel_to", "corroborates", "extends", "same_source_as", "same_theme_as", "assumes", "would_predict", "analogous_to", "independent_of", "implements", "violates", "co_changes_with", "migrating_from", "migrating_to", "scoped_by", "about_entity", "entity_referenced_in", "contradicts", "cites", "summarizes", "related_to", "partially_answers", "refines", "branches_from"];
6
+ var STORAGE_EDGE_TYPE_VALUES = [...EDGE_TYPE_VALUES, "extracted_from"];
7
+ z.enum(EDGE_TYPE_VALUES);
8
+ z.enum(STORAGE_EDGE_TYPE_VALUES);
9
+ z.enum(["active", "archived", "watching"]);
10
+ z.enum(["private", "team", "firm", "external", "public"]);
11
+
1
12
  // src/manifests/edge-policy-manifest.data.ts
13
+ var publicEpistemicNodeEdgePolicy = (edgeType) => ({
14
+ edgeType,
15
+ fromKinds: ["epistemic_node"],
16
+ toKinds: ["epistemic_node"],
17
+ description: "Canonical public create_edge policy for graph-node relationships. The policy layer gates edge-type membership, not endpoint semantics."
18
+ });
2
19
  var edgePolicyManifest = {
3
20
  manifestVersion: "1.0.0",
4
- policies: [
5
- {
6
- edgeType: "evidence_derived_from_evidence",
7
- fromKinds: ["epistemic_node"],
8
- fromNodeTypes: ["evidence"],
9
- toKinds: ["epistemic_node"],
10
- toNodeTypes: ["evidence"],
11
- description: "Evidence E2 was synthesized from evidence E1 by a transformation. Provides chain-of-evidence lineage."
12
- },
13
- {
14
- edgeType: "evidence_supports_belief",
15
- fromKinds: ["epistemic_node"],
16
- fromNodeTypes: ["evidence"],
17
- toKinds: ["epistemic_node"],
18
- toNodeTypes: ["belief"],
19
- description: "Existing link_evidence_to_belief semantics promoted to the create_edge policy source."
20
- },
21
- {
22
- edgeType: "evidence_supports_question",
23
- fromKinds: ["epistemic_node"],
24
- fromNodeTypes: ["evidence"],
25
- toKinds: ["epistemic_node"],
26
- toNodeTypes: ["question"],
27
- description: "Existing link_evidence_to_question semantics promoted to the create_edge policy source."
28
- }
29
- ]
21
+ policies: EDGE_TYPE_VALUES.map(publicEpistemicNodeEdgePolicy)
30
22
  };
31
23
 
32
24
  export { edgePolicyManifest };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/manifests/edge-policy-manifest.data.ts"],"names":[],"mappings":";AAEO,IAAM,kBAAA,GAAqB;AAAA,EAChC,eAAA,EAAiB,OAAA;AAAA,EACjB,QAAA,EAAU;AAAA,IACR;AAAA,MACE,QAAA,EAAU,gCAAA;AAAA,MACV,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,MAC5B,aAAA,EAAe,CAAC,UAAU,CAAA;AAAA,MAC1B,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,MAC1B,WAAA,EAAa,CAAC,UAAU,CAAA;AAAA,MACxB,WAAA,EACE;AAAA,KACJ;AAAA,IACA;AAAA,MACE,QAAA,EAAU,0BAAA;AAAA,MACV,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,MAC5B,aAAA,EAAe,CAAC,UAAU,CAAA;AAAA,MAC1B,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,MAC1B,WAAA,EAAa,CAAC,QAAQ,CAAA;AAAA,MACtB,WAAA,EACE;AAAA,KACJ;AAAA,IACA;AAAA,MACE,QAAA,EAAU,4BAAA;AAAA,MACV,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,MAC5B,aAAA,EAAe,CAAC,UAAU,CAAA;AAAA,MAC1B,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,MAC1B,WAAA,EAAa,CAAC,UAAU,CAAA;AAAA,MACxB,WAAA,EACE;AAAA;AACJ;AAEJ","file":"edge-policy-manifest.data.js","sourcesContent":["import type { EdgePolicyManifest } from \"./edge-policy-manifest.js\";\n\nexport const edgePolicyManifest = {\n manifestVersion: \"1.0.0\",\n policies: [\n {\n edgeType: \"evidence_derived_from_evidence\",\n fromKinds: [\"epistemic_node\"],\n fromNodeTypes: [\"evidence\"],\n toKinds: [\"epistemic_node\"],\n toNodeTypes: [\"evidence\"],\n description:\n \"Evidence E2 was synthesized from evidence E1 by a transformation. Provides chain-of-evidence lineage.\",\n },\n {\n edgeType: \"evidence_supports_belief\",\n fromKinds: [\"epistemic_node\"],\n fromNodeTypes: [\"evidence\"],\n toKinds: [\"epistemic_node\"],\n toNodeTypes: [\"belief\"],\n description:\n \"Existing link_evidence_to_belief semantics promoted to the create_edge policy source.\",\n },\n {\n edgeType: \"evidence_supports_question\",\n fromKinds: [\"epistemic_node\"],\n fromNodeTypes: [\"evidence\"],\n toKinds: [\"epistemic_node\"],\n toNodeTypes: [\"question\"],\n description:\n \"Existing link_evidence_to_question semantics promoted to the create_edge policy source.\",\n },\n ],\n} satisfies EdgePolicyManifest;\n"]}
1
+ {"version":3,"sources":["../../src/schemas/enums.ts","../../src/manifests/edge-policy-manifest.data.ts"],"names":[],"mappings":";;;AAMyB,EAAE,IAAA,CAAK,CAAC,YAAY,QAAA,EAAU,UAAA,EAAY,OAAA,EAAS,MAAA,EAAQ,OAAA,EAAS,OAAA,EAAS,YAAY,WAAA,EAAa,QAAA,EAAU,eAAe,SAAA,EAAW,QAAA,EAAU,WAAW,QAAA,EAAU,UAAA,EAAY,UAAA,EAAY,aAAa,CAAC;AAEjO,IAAM,mBAAmB,CAAC,UAAA,EAAY,SAAA,EAAW,YAAA,EAAc,gBAAgB,UAAA,EAAY,OAAA,EAAS,YAAA,EAAc,aAAA,EAAe,cAAc,mBAAA,EAAqB,UAAA,EAAY,aAAA,EAAe,eAAA,EAAiB,mBAAmB,YAAA,EAAc,WAAA,EAAa,UAAA,EAAY,aAAA,EAAe,WAAW,aAAA,EAAe,cAAA,EAAgB,gBAAA,EAAkB,aAAA,EAAe,WAAW,UAAA,EAAY,WAAA,EAAa,UAAA,EAAY,iBAAA,EAAmB,qBAAqB,0BAAA,EAA4B,mBAAA,EAAqB,WAAW,YAAA,EAAc,WAAA,EAAa,YAAY,cAAA,EAAgB,gBAAA,EAAkB,cAAA,EAAgB,cAAA,EAAgB,qBAAqB,YAAA,EAAc,oBAAA,EAAsB,iBAAA,EAAmB,WAAA,EAAa,oBAAoB,iBAAA,EAAmB,iBAAA,EAAmB,aAAA,EAAe,gBAAA,EAAkB,YAAY,cAAA,EAAgB,cAAA,EAAgB,UAAU,kBAAA,EAAoB,aAAA,EAAe,gBAAgB,SAAA,EAAW,gBAAA,EAAkB,eAAA,EAAiB,SAAA,EAAW,iBAAiB,cAAA,EAAgB,gBAAA,EAAkB,YAAA,EAAc,UAAA,EAAY,mBAAmB,gBAAA,EAAkB,cAAA,EAAgB,WAAA,EAAa,cAAA,EAAgB,wBAAwB,aAAA,EAAe,OAAA,EAAS,cAAc,YAAA,EAAc,mBAAA,EAAqB,WAAW,eAAe,CAAA;AAEjtC,IAAM,wBAAA,GAA2B,CAAC,GAAG,gBAAA,EAAkB,gBAAgB,CAAA;AAErD,CAAA,CAAE,IAAA,CAAK,gBAAgB;AAIf,CAAA,CAAE,IAAA,CAAK,wBAAwB;AAEpC,CAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAA,EAAY,UAAU,CAAC;AAErC,EAAE,IAAA,CAAK,CAAC,WAAW,MAAA,EAAQ,MAAA,EAAQ,UAAA,EAAY,QAAQ,CAAC;;;ACdxF,IAAM,6BAAA,GAAgC,CACpC,QAAA,MACqB;AAAA,EACrB,QAAA;AAAA,EACA,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,EAC5B,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,EAC1B,WAAA,EACE;AACJ,CAAA,CAAA;AAEO,IAAM,kBAAA,GAAqB;AAAA,EAChC,eAAA,EAAiB,OAAA;AAAA,EACjB,QAAA,EAAU,gBAAA,CAAiB,GAAA,CAAI,6BAA6B;AAC9D","file":"edge-policy-manifest.data.js","sourcesContent":["/**\n * Shared schema enums referenced by the initial table manifest.\n */\n\nimport { z } from 'zod';\n\nexport const NODE_TYPE = z.enum([\"decision\", \"belief\", \"question\", \"theme\", \"deal\", \"topic\", \"claim\", \"evidence\", \"synthesis\", \"answer\", \"atomic_fact\", \"excerpt\", \"source\", \"company\", \"person\", \"investor\", \"function\", \"value_chain\"]);\n\nexport const EDGE_TYPE_VALUES = [\"supports\", \"informs\", \"depends_on\", \"derived_from\", \"contains\", \"tests\", \"supersedes\", \"responds_to\", \"belongs_to\", \"relates_to_thesis\", \"works_at\", \"invested_in\", \"competes_with\", \"participates_in\", \"founded_by\", \"evaluates\", \"performs\", \"function_in\", \"impacts\", \"raised_from\", \"mentioned_in\", \"perspective_on\", \"plays_theme\", \"answers\", \"explores\", \"qualifies\", \"based_on\", \"based_on_belief\", \"based_on_question\", \"blocked_by_contradiction\", \"informed_by_theme\", \"same_as\", \"reinforces\", \"parent_of\", \"child_of\", \"falsified_by\", \"exclusive_with\", \"collapses_if\", \"cascade_from\", \"counterfactual_of\", \"cascade_to\", \"mutually_exclusive\", \"correlates_with\", \"amplifies\", \"precondition_for\", \"in_tension_with\", \"strengthened_by\", \"weakened_by\", \"alternative_to\", \"subsumes\", \"validated_by\", \"required_for\", \"blocks\", \"prerequisite_for\", \"parallel_to\", \"corroborates\", \"extends\", \"same_source_as\", \"same_theme_as\", \"assumes\", \"would_predict\", \"analogous_to\", \"independent_of\", \"implements\", \"violates\", \"co_changes_with\", \"migrating_from\", \"migrating_to\", \"scoped_by\", \"about_entity\", \"entity_referenced_in\", \"contradicts\", \"cites\", \"summarizes\", \"related_to\", \"partially_answers\", \"refines\", \"branches_from\"] as const;\n\nexport const STORAGE_EDGE_TYPE_VALUES = [...EDGE_TYPE_VALUES, \"extracted_from\"] as const;\n\nexport const EDGE_TYPE = z.enum(EDGE_TYPE_VALUES);\n\n// Storage accepts the legacy provenance spelling while existing rows migrate.\n// Public surfaces should continue to expose EDGE_TYPE only.\nexport const STORAGE_EDGE_TYPE = z.enum(STORAGE_EDGE_TYPE_VALUES);\n\nexport const TOPIC_STATUS = z.enum([\"active\", \"archived\", \"watching\"]);\n\nexport const TOPIC_VISIBILITY = z.enum([\"private\", \"team\", \"firm\", \"external\", \"public\"]);\n","import { EDGE_TYPE_VALUES } from \"../schemas/enums.js\";\nimport type {\n EdgePolicyEntry,\n EdgePolicyManifest,\n} from \"./edge-policy-manifest.js\";\n\nconst publicEpistemicNodeEdgePolicy = (\n edgeType: (typeof EDGE_TYPE_VALUES)[number]\n): EdgePolicyEntry => ({\n edgeType,\n fromKinds: [\"epistemic_node\"],\n toKinds: [\"epistemic_node\"],\n description:\n \"Canonical public create_edge policy for graph-node relationships. The policy layer gates edge-type membership, not endpoint semantics.\",\n});\n\nexport const edgePolicyManifest = {\n manifestVersion: \"1.0.0\",\n policies: EDGE_TYPE_VALUES.map(publicEpistemicNodeEdgePolicy),\n} satisfies EdgePolicyManifest;\n"]}
@@ -1,17 +1,44 @@
1
1
  import { z } from 'zod';
2
2
 
3
3
  // src/manifests/edge-policy-manifest.ts
4
- var EpistemicNodeTypeSchema = z.enum([
4
+
5
+ // src/schema-helpers/spine/tables/epistemicNodes.ts
6
+ var NODE_TYPES = [
7
+ "decision",
5
8
  "belief",
6
- "evidence",
7
9
  "question",
8
- "answer",
10
+ "theme",
11
+ "deal",
9
12
  "topic",
13
+ "claim",
14
+ "evidence",
15
+ "synthesis",
16
+ "answer",
17
+ "atomic_fact",
18
+ "excerpt",
19
+ "source",
20
+ "company",
21
+ "person",
22
+ "investor",
23
+ "function",
24
+ "value_chain"
25
+ ];
26
+ new Set(NODE_TYPES);
27
+
28
+ // src/types/graph-ref.ts
29
+ var GRAPH_REF_EXTRA_NODE_TYPES = [
10
30
  "edge",
11
31
  "ontology",
12
32
  "lens",
13
33
  "contradiction"
14
- ]);
34
+ ];
35
+ var GRAPH_REF_NODE_TYPES = [
36
+ ...NODE_TYPES,
37
+ ...GRAPH_REF_EXTRA_NODE_TYPES
38
+ ];
39
+ var EpistemicNodeTypeSchema = z.enum(
40
+ GRAPH_REF_NODE_TYPES
41
+ );
15
42
  z.discriminatedUnion("kind", [
16
43
  z.object({
17
44
  kind: z.literal("epistemic_node"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/graph-ref.ts","../../src/manifests/edge-policy-manifest.ts"],"names":["z"],"mappings":"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","file":"edge-policy-manifest.js","sourcesContent":["import { z } from \"zod\";\n\nexport const EpistemicNodeTypeSchema = z.enum([\n \"belief\",\n \"evidence\",\n \"question\",\n \"answer\",\n \"topic\",\n \"edge\",\n \"ontology\",\n \"lens\",\n \"contradiction\",\n]);\n\nexport type EpistemicNodeType = z.infer<typeof EpistemicNodeTypeSchema>;\n\nexport type GraphRef =\n | { kind: \"epistemic_node\"; nodeId: string; nodeType: EpistemicNodeType }\n | { kind: \"external_belief\"; ref: { tenantId: string; beliefId: string } };\n\nexport const GraphRefSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"epistemic_node\"),\n nodeId: z.string(),\n nodeType: EpistemicNodeTypeSchema,\n }),\n z.object({\n kind: z.literal(\"external_belief\"),\n ref: z.object({\n tenantId: z.string(),\n beliefId: z.string(),\n }),\n }),\n]);\n","import { z } from \"zod\";\nimport {\n EpistemicNodeTypeSchema,\n type EpistemicNodeType,\n type GraphRef,\n} from \"../types/graph-ref.js\";\n\nconst graphRefKind = z.enum([\"epistemic_node\", \"external_belief\"]);\n\nexport const EdgePolicyEntrySchema = z.object({\n edgeType: z.string(),\n fromKinds: z.array(graphRefKind),\n fromNodeTypes: z.array(EpistemicNodeTypeSchema).optional(),\n toKinds: z.array(graphRefKind),\n toNodeTypes: z.array(EpistemicNodeTypeSchema).optional(),\n description: z.string(),\n});\n\nexport const EdgePolicyManifestSchema = z.object({\n manifestVersion: z.literal(\"1.0.0\"),\n policies: z.array(EdgePolicyEntrySchema),\n});\n\nexport type EdgePolicyEntry = z.infer<typeof EdgePolicyEntrySchema>;\nexport type EdgePolicyManifest = z.infer<typeof EdgePolicyManifestSchema>;\n\nexport type EdgePolicyViolation = {\n code: \"POLICY_VIOLATION\";\n edgeType: string;\n from: GraphRef;\n to: GraphRef;\n};\n\nexport function findEdgePolicy(\n manifest: EdgePolicyManifest,\n edgeType: string\n): EdgePolicyEntry | undefined {\n return manifest.policies.find((policy) => policy.edgeType === edgeType);\n}\n\nfunction nodeTypeAllowed(\n allowed: EpistemicNodeType[] | undefined,\n ref: GraphRef\n): boolean {\n return (\n ref.kind !== \"epistemic_node\" ||\n !allowed ||\n allowed.includes(ref.nodeType)\n );\n}\n\nexport function assertEdgePolicyAllowed(\n manifest: EdgePolicyManifest,\n edgeType: string,\n from: GraphRef,\n to: GraphRef\n): void {\n const policy = findEdgePolicy(manifest, edgeType);\n const allowed =\n Boolean(policy) &&\n policy!.fromKinds.includes(from.kind) &&\n policy!.toKinds.includes(to.kind) &&\n nodeTypeAllowed(policy!.fromNodeTypes, from) &&\n nodeTypeAllowed(policy!.toNodeTypes, to);\n\n if (!allowed) {\n const error = new Error(\n `Edge policy violation for ${edgeType}: ${from.kind} -> ${to.kind}`\n ) as Error & { code: \"POLICY_VIOLATION\"; details: EdgePolicyViolation };\n error.code = \"POLICY_VIOLATION\";\n error.details = { code: \"POLICY_VIOLATION\", edgeType, from, to };\n throw error;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/schema-helpers/spine/tables/epistemicNodes.ts","../../src/types/graph-ref.ts","../../src/manifests/edge-policy-manifest.ts"],"names":["z"],"mappings":"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","file":"edge-policy-manifest.js","sourcesContent":["export type NodeType =\n | \"decision\"\n | \"belief\"\n | \"question\"\n | \"theme\"\n | \"deal\"\n | \"topic\"\n | \"claim\"\n | \"evidence\"\n | \"synthesis\"\n | \"answer\"\n | \"atomic_fact\"\n | \"excerpt\"\n | \"source\"\n | \"company\"\n | \"person\"\n | \"investor\"\n | \"function\"\n | \"value_chain\";\n\nexport type EpistemicLayer =\n | \"L4\"\n | \"L3\"\n | \"L2\"\n | \"L1\"\n | \"ontological\"\n | \"organizational\";\n\nexport const NODE_TYPES = [\n \"decision\",\n \"belief\",\n \"question\",\n \"theme\",\n \"deal\",\n \"topic\",\n \"claim\",\n \"evidence\",\n \"synthesis\",\n \"answer\",\n \"atomic_fact\",\n \"excerpt\",\n \"source\",\n \"company\",\n \"person\",\n \"investor\",\n \"function\",\n \"value_chain\",\n] as const satisfies readonly NodeType[];\n\nconst NODE_TYPE_SET = new Set<string>(NODE_TYPES);\nconst NODE_TYPE_TO_LAYER = new Map<NodeType, EpistemicLayer>([\n [\"decision\", \"L4\"],\n [\"belief\", \"L3\"],\n [\"question\", \"L3\"],\n [\"theme\", \"L3\"],\n [\"deal\", \"L3\"],\n [\"claim\", \"L2\"],\n [\"evidence\", \"L2\"],\n [\"synthesis\", \"L2\"],\n [\"answer\", \"L2\"],\n [\"atomic_fact\", \"L1\"],\n [\"excerpt\", \"L1\"],\n [\"source\", \"L1\"],\n [\"topic\", \"organizational\"],\n [\"company\", \"ontological\"],\n [\"person\", \"ontological\"],\n [\"investor\", \"ontological\"],\n [\"function\", \"ontological\"],\n [\"value_chain\", \"ontological\"],\n]);\n\n// Backward compatibility type guard: callers depend on the exported predicate.\nexport function isNodeType(value: string): value is NodeType {\n return NODE_TYPE_SET.has(value);\n}\n\nexport function getLayerForNodeType(type: NodeType): EpistemicLayer {\n const layer = NODE_TYPE_TO_LAYER.get(type);\n if (!layer) {\n throw new Error(`Unknown node type: ${type}`);\n }\n return layer;\n}\n\nexport function resolveKnownLayerForNodeType(\n type: string\n): EpistemicLayer | undefined {\n return isNodeType(type) ? NODE_TYPE_TO_LAYER.get(type) : undefined;\n}\n\nexport function isEpistemicNodeType(type: NodeType): boolean {\n return getLayerForNodeType(type) !== \"ontological\";\n}\n","import { z } from \"zod\";\nimport { NODE_TYPES } from \"../schema-helpers/spine/tables/epistemicNodes.js\";\n\nconst GRAPH_REF_EXTRA_NODE_TYPES = [\n \"edge\",\n \"ontology\",\n \"lens\",\n \"contradiction\",\n] as const;\n\nexport const GRAPH_REF_NODE_TYPES = [\n ...NODE_TYPES,\n ...GRAPH_REF_EXTRA_NODE_TYPES,\n] as const;\n\ntype GraphRefNodeType = (typeof GRAPH_REF_NODE_TYPES)[number];\n\nexport const EpistemicNodeTypeSchema = z.enum(\n GRAPH_REF_NODE_TYPES as unknown as [GraphRefNodeType, ...GraphRefNodeType[]]\n);\n\nexport type EpistemicNodeType = z.infer<typeof EpistemicNodeTypeSchema>;\n\nexport type GraphRef =\n | { kind: \"epistemic_node\"; nodeId: string; nodeType: EpistemicNodeType }\n | { kind: \"external_belief\"; ref: { tenantId: string; beliefId: string } };\n\nexport const GraphRefSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"epistemic_node\"),\n nodeId: z.string(),\n nodeType: EpistemicNodeTypeSchema,\n }),\n z.object({\n kind: z.literal(\"external_belief\"),\n ref: z.object({\n tenantId: z.string(),\n beliefId: z.string(),\n }),\n }),\n]);\n","import { z } from \"zod\";\nimport {\n EpistemicNodeTypeSchema,\n type EpistemicNodeType,\n type GraphRef,\n} from \"../types/graph-ref.js\";\n\nconst graphRefKind = z.enum([\"epistemic_node\", \"external_belief\"]);\n\nexport const EdgePolicyEntrySchema = z.object({\n edgeType: z.string(),\n fromKinds: z.array(graphRefKind),\n fromNodeTypes: z.array(EpistemicNodeTypeSchema).optional(),\n toKinds: z.array(graphRefKind),\n toNodeTypes: z.array(EpistemicNodeTypeSchema).optional(),\n description: z.string(),\n});\n\nexport const EdgePolicyManifestSchema = z.object({\n manifestVersion: z.literal(\"1.0.0\"),\n policies: z.array(EdgePolicyEntrySchema),\n});\n\nexport type EdgePolicyEntry = z.infer<typeof EdgePolicyEntrySchema>;\nexport type EdgePolicyManifest = z.infer<typeof EdgePolicyManifestSchema>;\n\nexport type EdgePolicyViolation = {\n code: \"POLICY_VIOLATION\";\n edgeType: string;\n from: GraphRef;\n to: GraphRef;\n};\n\nexport function findEdgePolicy(\n manifest: EdgePolicyManifest,\n edgeType: string\n): EdgePolicyEntry | undefined {\n return manifest.policies.find((policy) => policy.edgeType === edgeType);\n}\n\nfunction nodeTypeAllowed(\n allowed: EpistemicNodeType[] | undefined,\n ref: GraphRef\n): boolean {\n return (\n ref.kind !== \"epistemic_node\" ||\n !allowed ||\n allowed.includes(ref.nodeType)\n );\n}\n\nexport function assertEdgePolicyAllowed(\n manifest: EdgePolicyManifest,\n edgeType: string,\n from: GraphRef,\n to: GraphRef\n): void {\n const policy = findEdgePolicy(manifest, edgeType);\n const allowed =\n Boolean(policy) &&\n policy!.fromKinds.includes(from.kind) &&\n policy!.toKinds.includes(to.kind) &&\n nodeTypeAllowed(policy!.fromNodeTypes, from) &&\n nodeTypeAllowed(policy!.toNodeTypes, to);\n\n if (!allowed) {\n const error = new Error(\n `Edge policy violation for ${edgeType}: ${from.kind} -> ${to.kind}`\n ) as Error & { code: \"POLICY_VIOLATION\"; details: EdgePolicyViolation };\n error.code = \"POLICY_VIOLATION\";\n error.details = { code: \"POLICY_VIOLATION\", edgeType, from, to };\n throw error;\n }\n}\n"]}