@thanh01.pmt/domain-kit 0.4.0 → 0.6.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 (68) hide show
  1. package/README.md +682 -168
  2. package/dist/assembly/index.d.cts +2 -2
  3. package/dist/assembly/index.d.ts +2 -2
  4. package/dist/{chunk-HILSUZOF.mjs → chunk-2OGNQUXC.mjs} +171 -31
  5. package/dist/chunk-2OGNQUXC.mjs.map +1 -0
  6. package/dist/{chunk-LZQLLAYP.mjs → chunk-5OMSYKQP.mjs} +43 -23
  7. package/dist/chunk-5OMSYKQP.mjs.map +1 -0
  8. package/dist/{chunk-BL5NBKPH.mjs → chunk-67GXK3ZE.mjs} +18 -8
  9. package/dist/chunk-67GXK3ZE.mjs.map +1 -0
  10. package/dist/{chunk-PKUEOSZ3.mjs → chunk-CGNXGVHV.mjs} +46 -4
  11. package/dist/chunk-CGNXGVHV.mjs.map +1 -0
  12. package/dist/{chunk-VCPIWJ7R.mjs → chunk-ERDTHXQA.mjs} +21 -3
  13. package/dist/chunk-ERDTHXQA.mjs.map +1 -0
  14. package/dist/chunk-OYSZQVPY.mjs +10 -0
  15. package/dist/chunk-OYSZQVPY.mjs.map +1 -0
  16. package/dist/{chunk-QJF4QCBJ.mjs → chunk-WKTH3JPA.mjs} +202 -36
  17. package/dist/chunk-WKTH3JPA.mjs.map +1 -0
  18. package/dist/{conceptEscalator-YfMKIKCZ.d.ts → conceptEscalator-BCsw0ys_.d.ts} +10 -1
  19. package/dist/{conceptEscalator-ltRLtPhf.d.cts → conceptEscalator-DPrs4PwC.d.cts} +10 -1
  20. package/dist/concepts/index.d.cts +1 -1
  21. package/dist/concepts/index.d.ts +1 -1
  22. package/dist/{curriculumFeedSchema-B66H3gEV.d.ts → curriculumFeedSchema-DYayelAA.d.cts} +212 -1
  23. package/dist/{curriculumFeedSchema-B66H3gEV.d.cts → curriculumFeedSchema-DYayelAA.d.ts} +212 -1
  24. package/dist/detector/index.cjs +21 -6
  25. package/dist/detector/index.cjs.map +1 -1
  26. package/dist/detector/index.mjs +2 -1
  27. package/dist/feed/index.cjs +243 -33
  28. package/dist/feed/index.cjs.map +1 -1
  29. package/dist/feed/index.d.cts +32 -2
  30. package/dist/feed/index.d.ts +32 -2
  31. package/dist/feed/index.mjs +2 -2
  32. package/dist/graph/index.cjs +163 -28
  33. package/dist/graph/index.cjs.map +1 -1
  34. package/dist/graph/index.d.cts +14 -5
  35. package/dist/graph/index.d.ts +14 -5
  36. package/dist/graph/index.mjs +2 -1
  37. package/dist/{hybridGraphPipeline-DXQDbBEj.d.ts → hybridGraphPipeline-9dRKJj7r.d.ts} +6 -2
  38. package/dist/{hybridGraphPipeline-dT-bio-3.d.cts → hybridGraphPipeline-CocfYe4d.d.cts} +6 -2
  39. package/dist/{hybridGraphSchema-nrUeSwpU.d.ts → hybridGraphSchema-C37qxdTM.d.cts} +16 -3
  40. package/dist/{hybridGraphSchema-nrUeSwpU.d.cts → hybridGraphSchema-C37qxdTM.d.ts} +16 -3
  41. package/dist/index.cjs +3742 -3362
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.d.cts +6 -6
  44. package/dist/index.d.ts +6 -6
  45. package/dist/index.mjs +7 -6
  46. package/dist/llmClient-CX5uUiQ1.d.cts +60 -0
  47. package/dist/llmClient-CX5uUiQ1.d.ts +60 -0
  48. package/dist/pipeline/index.cjs +1556 -1202
  49. package/dist/pipeline/index.cjs.map +1 -1
  50. package/dist/pipeline/index.d.cts +13 -5
  51. package/dist/pipeline/index.d.ts +13 -5
  52. package/dist/pipeline/index.mjs +6 -5
  53. package/dist/schemas/index.cjs +64 -2
  54. package/dist/schemas/index.cjs.map +1 -1
  55. package/dist/schemas/index.d.cts +2 -2
  56. package/dist/schemas/index.d.ts +2 -2
  57. package/dist/schemas/index.mjs +2 -2
  58. package/package.json +1 -1
  59. package/dist/chunk-BL5NBKPH.mjs.map +0 -1
  60. package/dist/chunk-HILSUZOF.mjs.map +0 -1
  61. package/dist/chunk-LZQLLAYP.mjs.map +0 -1
  62. package/dist/chunk-PKUEOSZ3.mjs.map +0 -1
  63. package/dist/chunk-QJF4QCBJ.mjs.map +0 -1
  64. package/dist/chunk-VCPIWJ7R.mjs.map +0 -1
  65. package/dist/curriculumFeedEmitter-6IK6PFDH.mjs +0 -4
  66. package/dist/curriculumFeedEmitter-6IK6PFDH.mjs.map +0 -1
  67. package/dist/llmClient-ysPhLjcH.d.cts +0 -16
  68. package/dist/llmClient-ysPhLjcH.d.ts +0 -16
@@ -1,11 +1,11 @@
1
- import { L as LlmClientConfig } from '../llmClient-ysPhLjcH.cjs';
1
+ import { L as LlmClientConfig, a as LlmClient } from '../llmClient-CX5uUiQ1.cjs';
2
2
  import { d as Feature, c as Step } from '../projectGraphSchema-DnD7orZV.cjs';
3
3
  import { K as Keyword } from '../keywordExtractor-BxlGRMHC.cjs';
4
- export { H as Hallucination, j as HybridGraphPipelineOptions, k as HybridGraphPipelineResult, K as KnowledgeGraphPipelineOptions, a as KnowledgeGraphPipelineResult, f as KnowledgeGraphVerificationReport, V as VerifyOptions, i as auditPhasePlan, e as auditSyllabusCoverage, c as breakPrerequisiteCycles, d as detectPrerequisiteCycles, h as generateHybridGraph, g as generateKnowledgeGraph, b as verifyKnowledgeGraph, v as verifyProjectGraph } from '../hybridGraphPipeline-dT-bio-3.cjs';
5
- export { C as ConceptMapping, E as EscalateOptions, e as escalateAndMapConcepts } from '../conceptEscalator-ltRLtPhf.cjs';
4
+ export { H as Hallucination, j as HybridGraphPipelineOptions, k as HybridGraphPipelineResult, K as KnowledgeGraphPipelineOptions, a as KnowledgeGraphPipelineResult, f as KnowledgeGraphVerificationReport, V as VerifyOptions, i as auditPhasePlan, e as auditSyllabusCoverage, c as breakPrerequisiteCycles, d as detectPrerequisiteCycles, h as generateHybridGraph, g as generateKnowledgeGraph, b as verifyKnowledgeGraph, v as verifyProjectGraph } from '../hybridGraphPipeline-CocfYe4d.cjs';
5
+ export { C as ConceptMapping, E as EscalateOptions, e as escalateAndMapConcepts } from '../conceptEscalator-DPrs4PwC.cjs';
6
6
  import 'zod';
7
7
  import '../cpp-CZUPqJt9.cjs';
8
- import '../hybridGraphSchema-nrUeSwpU.cjs';
8
+ import '../hybridGraphSchema-C37qxdTM.cjs';
9
9
  import '../syllabusParser-MSX1fEzW.cjs';
10
10
 
11
11
  /**
@@ -21,6 +21,9 @@ interface ExtractScaffoldOptions {
21
21
  techStack: string;
22
22
  fileList: string[];
23
23
  llmConfig?: LlmClientConfig;
24
+ /** Pre-built client from the calling pipeline — reused so every step of one run
25
+ * lands in ONE callLog and the feed can report real provenance. */
26
+ sharedClient?: LlmClient;
24
27
  }
25
28
  /**
26
29
  * Extract the FOUNDATION & SETUP feature (F0) via LLM.
@@ -49,6 +52,9 @@ interface ExtractOverviewOptions {
49
52
  fileContentsMap: Map<string, string>;
50
53
  astKeywords?: Keyword[];
51
54
  llmConfig?: LlmClientConfig;
55
+ /** Pre-built client from the calling pipeline — reused so every step of one run
56
+ * lands in ONE callLog and the feed can report real provenance. */
57
+ sharedClient?: LlmClient;
52
58
  }
53
59
  /**
54
60
  * Extract project overview (features meta) via LLM.
@@ -77,6 +83,9 @@ interface ExtractStepsOptions {
77
83
  fileContentsMap: Map<string, string>;
78
84
  feature: Feature;
79
85
  llmConfig?: LlmClientConfig;
86
+ /** Pre-built client from the calling pipeline — reused so every step of one run
87
+ * lands in ONE callLog and the feed can report real provenance. */
88
+ sharedClient?: LlmClient;
80
89
  }
81
90
  /**
82
91
  * Extract steps for a SINGLE feature via LLM.
@@ -91,7 +100,7 @@ declare function extractFeatureStepsBatched(goal: string, techStack: string, sdk
91
100
  kind: string;
92
101
  used_in_demo: boolean;
93
102
  }>;
94
- }, fileContentsMap: Map<string, string>, featuresMeta: Feature[], llmConfig?: LlmClientConfig): Promise<Map<string, Step[]>>;
103
+ }, fileContentsMap: Map<string, string>, featuresMeta: Feature[], llmConfig?: LlmClientConfig, sharedClient?: LlmClient): Promise<Map<string, Step[]>>;
95
104
 
96
105
  interface DepthLayerAudit {
97
106
  conceptId: string;
@@ -1,11 +1,11 @@
1
- import { L as LlmClientConfig } from '../llmClient-ysPhLjcH.js';
1
+ import { L as LlmClientConfig, a as LlmClient } from '../llmClient-CX5uUiQ1.js';
2
2
  import { d as Feature, c as Step } from '../projectGraphSchema-DnD7orZV.js';
3
3
  import { K as Keyword } from '../keywordExtractor-DU5XRN8-.js';
4
- export { H as Hallucination, j as HybridGraphPipelineOptions, k as HybridGraphPipelineResult, K as KnowledgeGraphPipelineOptions, a as KnowledgeGraphPipelineResult, f as KnowledgeGraphVerificationReport, V as VerifyOptions, i as auditPhasePlan, e as auditSyllabusCoverage, c as breakPrerequisiteCycles, d as detectPrerequisiteCycles, h as generateHybridGraph, g as generateKnowledgeGraph, b as verifyKnowledgeGraph, v as verifyProjectGraph } from '../hybridGraphPipeline-DXQDbBEj.js';
5
- export { C as ConceptMapping, E as EscalateOptions, e as escalateAndMapConcepts } from '../conceptEscalator-YfMKIKCZ.js';
4
+ export { H as Hallucination, j as HybridGraphPipelineOptions, k as HybridGraphPipelineResult, K as KnowledgeGraphPipelineOptions, a as KnowledgeGraphPipelineResult, f as KnowledgeGraphVerificationReport, V as VerifyOptions, i as auditPhasePlan, e as auditSyllabusCoverage, c as breakPrerequisiteCycles, d as detectPrerequisiteCycles, h as generateHybridGraph, g as generateKnowledgeGraph, b as verifyKnowledgeGraph, v as verifyProjectGraph } from '../hybridGraphPipeline-9dRKJj7r.js';
5
+ export { C as ConceptMapping, E as EscalateOptions, e as escalateAndMapConcepts } from '../conceptEscalator-BCsw0ys_.js';
6
6
  import 'zod';
7
7
  import '../cpp-CZUPqJt9.js';
8
- import '../hybridGraphSchema-nrUeSwpU.js';
8
+ import '../hybridGraphSchema-C37qxdTM.js';
9
9
  import '../syllabusParser-MSX1fEzW.js';
10
10
 
11
11
  /**
@@ -21,6 +21,9 @@ interface ExtractScaffoldOptions {
21
21
  techStack: string;
22
22
  fileList: string[];
23
23
  llmConfig?: LlmClientConfig;
24
+ /** Pre-built client from the calling pipeline — reused so every step of one run
25
+ * lands in ONE callLog and the feed can report real provenance. */
26
+ sharedClient?: LlmClient;
24
27
  }
25
28
  /**
26
29
  * Extract the FOUNDATION & SETUP feature (F0) via LLM.
@@ -49,6 +52,9 @@ interface ExtractOverviewOptions {
49
52
  fileContentsMap: Map<string, string>;
50
53
  astKeywords?: Keyword[];
51
54
  llmConfig?: LlmClientConfig;
55
+ /** Pre-built client from the calling pipeline — reused so every step of one run
56
+ * lands in ONE callLog and the feed can report real provenance. */
57
+ sharedClient?: LlmClient;
52
58
  }
53
59
  /**
54
60
  * Extract project overview (features meta) via LLM.
@@ -77,6 +83,9 @@ interface ExtractStepsOptions {
77
83
  fileContentsMap: Map<string, string>;
78
84
  feature: Feature;
79
85
  llmConfig?: LlmClientConfig;
86
+ /** Pre-built client from the calling pipeline — reused so every step of one run
87
+ * lands in ONE callLog and the feed can report real provenance. */
88
+ sharedClient?: LlmClient;
80
89
  }
81
90
  /**
82
91
  * Extract steps for a SINGLE feature via LLM.
@@ -91,7 +100,7 @@ declare function extractFeatureStepsBatched(goal: string, techStack: string, sdk
91
100
  kind: string;
92
101
  used_in_demo: boolean;
93
102
  }>;
94
- }, fileContentsMap: Map<string, string>, featuresMeta: Feature[], llmConfig?: LlmClientConfig): Promise<Map<string, Step[]>>;
103
+ }, fileContentsMap: Map<string, string>, featuresMeta: Feature[], llmConfig?: LlmClientConfig, sharedClient?: LlmClient): Promise<Map<string, Step[]>>;
95
104
 
96
105
  interface DepthLayerAudit {
97
106
  conceptId: string;
@@ -1,5 +1,6 @@
1
1
  import '../chunk-ZKLT27T4.mjs';
2
- export { CIO_CODE_RE, CONCEPT_CODE_RE, LEARNER_CLAUSE, SIO_CODE_RE, ULO_CODE_RE, assignConceptCodes, auditDepthLayers, auditPhasePlan, auditSyllabusCoverage, breakPrerequisiteCycles, cioActionSlug, cioCode, conceptCodeFromName, detectPrerequisiteCycles, escalateAndMapConcepts, extractFeatureSteps, extractFeatureStepsBatched, extractProjectOverview, extractScaffold, generateHybridGraph, generateKnowledgeGraph, sioCode, standardStatement, techTagFor, uloCode, verifyKnowledgeGraph, verifyProjectGraph } from '../chunk-HILSUZOF.mjs';
2
+ export { CIO_CODE_RE, CONCEPT_CODE_RE, LEARNER_CLAUSE, SIO_CODE_RE, ULO_CODE_RE, assignConceptCodes, auditDepthLayers, auditPhasePlan, auditSyllabusCoverage, breakPrerequisiteCycles, cioActionSlug, cioCode, conceptCodeFromName, detectPrerequisiteCycles, escalateAndMapConcepts, extractFeatureSteps, extractFeatureStepsBatched, extractProjectOverview, extractScaffold, generateHybridGraph, generateKnowledgeGraph, sioCode, standardStatement, techTagFor, uloCode, verifyKnowledgeGraph, verifyProjectGraph } from '../chunk-2OGNQUXC.mjs';
3
3
  import '../chunk-T4Y2DE2W.mjs';
4
+ import '../chunk-OYSZQVPY.mjs';
4
5
  //# sourceMappingURL=index.mjs.map
5
6
  //# sourceMappingURL=index.mjs.map
@@ -1,6 +1,6 @@
1
1
  import { u as ProjectGraph } from './projectGraphSchema-DnD7orZV.js';
2
- import { L as LlmClientConfig } from './llmClient-ysPhLjcH.js';
3
- import { g as KnowledgeGraph, b as Concept, j as HybridGraph, l as DevelopmentPhase } from './hybridGraphSchema-nrUeSwpU.js';
2
+ import { L as LlmClientConfig, b as LlmCallRecord } from './llmClient-CX5uUiQ1.js';
3
+ import { g as KnowledgeGraph, b as Concept, j as HybridGraph, l as DevelopmentPhase } from './hybridGraphSchema-C37qxdTM.js';
4
4
  import { P as ParsedSyllabus } from './syllabusParser-MSX1fEzW.js';
5
5
 
6
6
  /**
@@ -126,6 +126,8 @@ interface KnowledgeGraphPipelineResult {
126
126
  knowledgeGraph: KnowledgeGraph;
127
127
  warnings: string[];
128
128
  verificationReport?: KnowledgeGraphVerificationReport;
129
+ /** Which providers served this graph, and whether any call fell over. */
130
+ provenance: LlmCallRecord[];
129
131
  }
130
132
  /**
131
133
  * Generate a KnowledgeGraph from syllabus/description via LLM.
@@ -153,6 +155,8 @@ interface HybridGraphPipelineOptions {
153
155
  interface HybridGraphPipelineResult {
154
156
  hybridGraph: HybridGraph;
155
157
  warnings: string[];
158
+ /** Which providers served this graph, and whether any call fell over. */
159
+ provenance: LlmCallRecord[];
156
160
  }
157
161
  declare function generateHybridGraph(options: HybridGraphPipelineOptions): Promise<HybridGraphPipelineResult>;
158
162
  declare function auditPhasePlan(plan: Array<Record<string, unknown>>, features: Array<{
@@ -1,6 +1,6 @@
1
1
  import { u as ProjectGraph } from './projectGraphSchema-DnD7orZV.cjs';
2
- import { L as LlmClientConfig } from './llmClient-ysPhLjcH.cjs';
3
- import { g as KnowledgeGraph, b as Concept, j as HybridGraph, l as DevelopmentPhase } from './hybridGraphSchema-nrUeSwpU.cjs';
2
+ import { L as LlmClientConfig, b as LlmCallRecord } from './llmClient-CX5uUiQ1.cjs';
3
+ import { g as KnowledgeGraph, b as Concept, j as HybridGraph, l as DevelopmentPhase } from './hybridGraphSchema-C37qxdTM.cjs';
4
4
  import { P as ParsedSyllabus } from './syllabusParser-MSX1fEzW.cjs';
5
5
 
6
6
  /**
@@ -126,6 +126,8 @@ interface KnowledgeGraphPipelineResult {
126
126
  knowledgeGraph: KnowledgeGraph;
127
127
  warnings: string[];
128
128
  verificationReport?: KnowledgeGraphVerificationReport;
129
+ /** Which providers served this graph, and whether any call fell over. */
130
+ provenance: LlmCallRecord[];
129
131
  }
130
132
  /**
131
133
  * Generate a KnowledgeGraph from syllabus/description via LLM.
@@ -153,6 +155,8 @@ interface HybridGraphPipelineOptions {
153
155
  interface HybridGraphPipelineResult {
154
156
  hybridGraph: HybridGraph;
155
157
  warnings: string[];
158
+ /** Which providers served this graph, and whether any call fell over. */
159
+ provenance: LlmCallRecord[];
156
160
  }
157
161
  declare function generateHybridGraph(options: HybridGraphPipelineOptions): Promise<HybridGraphPipelineResult>;
158
162
  declare function auditPhasePlan(plan: Array<Record<string, unknown>>, features: Array<{
@@ -2246,9 +2246,22 @@ declare const HybridGraphSchema: z.ZodObject<{
2246
2246
  }[] | undefined;
2247
2247
  }>, "many">>>;
2248
2248
  description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2249
+ /** Minutes of PRODUCT work: sum over every feature step. */
2249
2250
  total_project_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2251
+ /** Minutes of CONCEPT work: sum over EVERY concept in the graph. */
2250
2252
  total_concept_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2251
- estimated_total_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2253
+ /**
2254
+ * Renamed from `estimated_total_minutes` (2026-10-05) — the old name read
2255
+ * like "the course total" but the number is narrower:
2256
+ * total_project_minutes + (minutes of concepts that HAVE a feature link)
2257
+ * unlinked concepts are deliberately excluded, and per concept the MAXIMUM
2258
+ * link estimate wins, not the sum. Expect this to sit well BELOW
2259
+ * total_project_minutes + total_concept_minutes.
2260
+ *
2261
+ * The figure the phase planner actually commits to is
2262
+ * total_project_minutes + total_concept_minutes (see decomposePhases).
2263
+ */
2264
+ linked_prereq_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2252
2265
  }, "strip", z.ZodTypeAny, {
2253
2266
  type: "hybrid_graph";
2254
2267
  description: string;
@@ -2539,7 +2552,7 @@ declare const HybridGraphSchema: z.ZodObject<{
2539
2552
  }[];
2540
2553
  total_project_minutes: number;
2541
2554
  total_concept_minutes: number;
2542
- estimated_total_minutes: number;
2555
+ linked_prereq_minutes: number;
2543
2556
  }, {
2544
2557
  knowledge_graph: {
2545
2558
  subject: {
@@ -2830,7 +2843,7 @@ declare const HybridGraphSchema: z.ZodObject<{
2830
2843
  }[] | undefined;
2831
2844
  total_project_minutes?: number | undefined;
2832
2845
  total_concept_minutes?: number | undefined;
2833
- estimated_total_minutes?: number | undefined;
2846
+ linked_prereq_minutes?: number | undefined;
2834
2847
  }>;
2835
2848
  type HybridGraph = z.infer<typeof HybridGraphSchema>;
2836
2849
  type ProjectConceptLink = z.infer<typeof ProjectConceptLinkSchema>;
@@ -2246,9 +2246,22 @@ declare const HybridGraphSchema: z.ZodObject<{
2246
2246
  }[] | undefined;
2247
2247
  }>, "many">>>;
2248
2248
  description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2249
+ /** Minutes of PRODUCT work: sum over every feature step. */
2249
2250
  total_project_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2251
+ /** Minutes of CONCEPT work: sum over EVERY concept in the graph. */
2250
2252
  total_concept_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2251
- estimated_total_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2253
+ /**
2254
+ * Renamed from `estimated_total_minutes` (2026-10-05) — the old name read
2255
+ * like "the course total" but the number is narrower:
2256
+ * total_project_minutes + (minutes of concepts that HAVE a feature link)
2257
+ * unlinked concepts are deliberately excluded, and per concept the MAXIMUM
2258
+ * link estimate wins, not the sum. Expect this to sit well BELOW
2259
+ * total_project_minutes + total_concept_minutes.
2260
+ *
2261
+ * The figure the phase planner actually commits to is
2262
+ * total_project_minutes + total_concept_minutes (see decomposePhases).
2263
+ */
2264
+ linked_prereq_minutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2252
2265
  }, "strip", z.ZodTypeAny, {
2253
2266
  type: "hybrid_graph";
2254
2267
  description: string;
@@ -2539,7 +2552,7 @@ declare const HybridGraphSchema: z.ZodObject<{
2539
2552
  }[];
2540
2553
  total_project_minutes: number;
2541
2554
  total_concept_minutes: number;
2542
- estimated_total_minutes: number;
2555
+ linked_prereq_minutes: number;
2543
2556
  }, {
2544
2557
  knowledge_graph: {
2545
2558
  subject: {
@@ -2830,7 +2843,7 @@ declare const HybridGraphSchema: z.ZodObject<{
2830
2843
  }[] | undefined;
2831
2844
  total_project_minutes?: number | undefined;
2832
2845
  total_concept_minutes?: number | undefined;
2833
- estimated_total_minutes?: number | undefined;
2846
+ linked_prereq_minutes?: number | undefined;
2834
2847
  }>;
2835
2848
  type HybridGraph = z.infer<typeof HybridGraphSchema>;
2836
2849
  type ProjectConceptLink = z.infer<typeof ProjectConceptLinkSchema>;