@lucern/contracts 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/function-registry/beliefs.d.ts +1 -1
- package/dist/function-registry/beliefs.js +126 -10
- package/dist/function-registry/beliefs.js.map +1 -1
- package/dist/function-registry/coding.d.ts +1 -1
- package/dist/function-registry/coding.js +124 -8
- package/dist/function-registry/coding.js.map +1 -1
- package/dist/function-registry/context.d.ts +44 -4
- package/dist/function-registry/context.js +146 -8
- package/dist/function-registry/context.js.map +1 -1
- package/dist/function-registry/contracts.d.ts +1 -1
- package/dist/function-registry/contracts.js +124 -8
- package/dist/function-registry/contracts.js.map +1 -1
- package/dist/function-registry/coordination.d.ts +1 -1
- package/dist/function-registry/coordination.js +124 -8
- package/dist/function-registry/coordination.js.map +1 -1
- package/dist/function-registry/edges.d.ts +1 -1
- package/dist/function-registry/edges.js +124 -8
- package/dist/function-registry/edges.js.map +1 -1
- package/dist/function-registry/evidence.d.ts +1 -1
- package/dist/function-registry/evidence.js +309 -40
- package/dist/function-registry/evidence.js.map +1 -1
- package/dist/function-registry/graph.d.ts +1 -1
- package/dist/function-registry/graph.js +126 -12
- package/dist/function-registry/graph.js.map +1 -1
- package/dist/function-registry/helpers.js +124 -8
- package/dist/function-registry/helpers.js.map +1 -1
- package/dist/function-registry/identity.d.ts +1 -1
- package/dist/function-registry/identity.js +124 -8
- package/dist/function-registry/identity.js.map +1 -1
- package/dist/function-registry/index.js +124 -8
- package/dist/function-registry/index.js.map +1 -1
- package/dist/function-registry/judgments.d.ts +1 -1
- package/dist/function-registry/judgments.js +124 -8
- package/dist/function-registry/judgments.js.map +1 -1
- package/dist/function-registry/legacy.d.ts +1 -1
- package/dist/function-registry/legacy.js +124 -8
- package/dist/function-registry/legacy.js.map +1 -1
- package/dist/function-registry/lenses.d.ts +1 -1
- package/dist/function-registry/lenses.js +124 -8
- package/dist/function-registry/lenses.js.map +1 -1
- package/dist/function-registry/manifest.d.ts +10 -4
- package/dist/function-registry/manifest.js +14 -1
- package/dist/function-registry/manifest.js.map +1 -1
- package/dist/function-registry/nodes.d.ts +1 -1
- package/dist/function-registry/nodes.js +124 -8
- package/dist/function-registry/nodes.js.map +1 -1
- package/dist/function-registry/ontologies.d.ts +1 -1
- package/dist/function-registry/ontologies.js +124 -8
- package/dist/function-registry/ontologies.js.map +1 -1
- package/dist/function-registry/pipeline.d.ts +1 -1
- package/dist/function-registry/pipeline.js +124 -8
- package/dist/function-registry/pipeline.js.map +1 -1
- package/dist/function-registry/questions.d.ts +1 -1
- package/dist/function-registry/questions.js +124 -8
- package/dist/function-registry/questions.js.map +1 -1
- package/dist/function-registry/tasks.d.ts +1 -1
- package/dist/function-registry/tasks.js +124 -8
- package/dist/function-registry/tasks.js.map +1 -1
- package/dist/function-registry/topics.d.ts +1 -1
- package/dist/function-registry/topics.js +126 -12
- package/dist/function-registry/topics.js.map +1 -1
- package/dist/function-registry/types.d.ts +1 -1
- package/dist/function-registry/worktrees.d.ts +1 -1
- package/dist/function-registry/worktrees.js +124 -8
- package/dist/function-registry/worktrees.js.map +1 -1
- package/dist/generated/infisicalRuntimeEnv.js +536 -1
- package/dist/generated/infisicalRuntimeEnv.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +941 -14
- package/dist/index.js.map +1 -1
- package/dist/infisical-runtime.base.d.ts +42 -1
- package/dist/infisical-runtime.base.js +50 -1
- package/dist/infisical-runtime.base.js.map +1 -1
- package/dist/infisical-runtime.contract.d.ts +102 -0
- package/dist/infisical-runtime.contract.js +170 -1
- package/dist/infisical-runtime.contract.js.map +1 -1
- package/dist/infisical-runtime.platform-secrets.d.ts +102 -0
- package/dist/infisical-runtime.platform-secrets.js +120 -0
- package/dist/infisical-runtime.platform-secrets.js.map +1 -1
- package/dist/infisical-runtime.tenant-secrets.js.map +1 -1
- package/dist/manifests/infisical-runtime-manifest.d.ts +144 -1
- package/dist/manifests/infisical-runtime-manifest.js +170 -1
- package/dist/manifests/infisical-runtime-manifest.js.map +1 -1
- package/dist/manifests/invariants/index.js +24 -5
- package/dist/manifests/invariants/index.js.map +1 -1
- package/dist/manifests/invariants/inv-1-beliefs-append-only.js +24 -5
- package/dist/manifests/invariants/inv-1-beliefs-append-only.js.map +1 -1
- package/dist/projections/check-convex-args-shape.js +138 -5
- package/dist/projections/check-convex-args-shape.js.map +1 -1
- package/dist/projections/create-evidence.projection.d.ts +168 -0
- package/dist/projections/create-evidence.projection.js +138 -5
- package/dist/projections/create-evidence.projection.js.map +1 -1
- package/dist/projections/index.d.ts +28 -0
- package/dist/projections/index.js +138 -5
- package/dist/projections/index.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/schemas/manifest.d.ts +20 -20
- package/dist/schemas/tables/kernel/platform.d.ts +4 -4
- package/dist/sdk-methods.contract.d.ts +3 -2
- package/dist/sdk-tools.contract.js +110 -7
- package/dist/sdk-tools.contract.js.map +1 -1
- package/dist/sdk-tools.contract.registry.js +110 -7
- package/dist/sdk-tools.contract.registry.js.map +1 -1
- package/dist/sdk-tools.contract.values.js +110 -7
- package/dist/sdk-tools.contract.values.js.map +1 -1
- package/dist/tool-contracts.context-orientation.d.ts +5 -0
- package/dist/tool-contracts.context-orientation.js +57 -0
- package/dist/tool-contracts.context-orientation.js.map +1 -0
- package/dist/tool-contracts.d.ts +1 -0
- package/dist/tool-contracts.intelligence-evidence.js +26 -4
- package/dist/tool-contracts.intelligence-evidence.js.map +1 -1
- package/dist/tool-contracts.js +111 -8
- package/dist/tool-contracts.js.map +1 -1
- package/dist/tool-contracts.lifecycle.js +2 -2
- package/dist/tool-contracts.lifecycle.js.map +1 -1
- package/dist/tool-contracts.questions-listing.js +27 -1
- package/dist/tool-contracts.questions-listing.js.map +1 -1
- package/dist/{tool-contracts.values-DjctSW7S.d.ts → tool-contracts.values-BhxfrXS5.d.ts} +3 -1
- package/dist/tool-contracts.values.d.ts +1 -0
- package/dist/tool-contracts.values.js +111 -8
- package/dist/tool-contracts.values.js.map +1 -1
- package/package.json +1 -1
|
@@ -23,6 +23,34 @@ declare const createEvidenceInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
23
23
|
targetNodeId: z.ZodOptional<z.ZodString>;
|
|
24
24
|
linkedBeliefNodeId: z.ZodOptional<z.ZodString>;
|
|
25
25
|
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
26
|
+
beliefRelations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
27
|
+
beliefId: z.ZodOptional<z.ZodString>;
|
|
28
|
+
beliefNodeId: z.ZodOptional<z.ZodString>;
|
|
29
|
+
targetId: z.ZodOptional<z.ZodString>;
|
|
30
|
+
relation: z.ZodOptional<z.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
31
|
+
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
32
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
beliefId?: string | undefined;
|
|
37
|
+
rationale?: string | undefined;
|
|
38
|
+
beliefNodeId?: string | undefined;
|
|
39
|
+
weight?: number | undefined;
|
|
40
|
+
confidence?: number | undefined;
|
|
41
|
+
targetId?: string | undefined;
|
|
42
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
43
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
beliefId?: string | undefined;
|
|
46
|
+
rationale?: string | undefined;
|
|
47
|
+
beliefNodeId?: string | undefined;
|
|
48
|
+
weight?: number | undefined;
|
|
49
|
+
confidence?: number | undefined;
|
|
50
|
+
targetId?: string | undefined;
|
|
51
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
52
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
53
|
+
}>, "many">>;
|
|
26
54
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
27
55
|
weight: z.ZodOptional<z.ZodNumber>;
|
|
28
56
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
@@ -51,6 +79,34 @@ declare const createEvidenceInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
51
79
|
targetNodeId: z.ZodOptional<z.ZodString>;
|
|
52
80
|
linkedBeliefNodeId: z.ZodOptional<z.ZodString>;
|
|
53
81
|
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
82
|
+
beliefRelations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
83
|
+
beliefId: z.ZodOptional<z.ZodString>;
|
|
84
|
+
beliefNodeId: z.ZodOptional<z.ZodString>;
|
|
85
|
+
targetId: z.ZodOptional<z.ZodString>;
|
|
86
|
+
relation: z.ZodOptional<z.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
87
|
+
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
88
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
beliefId?: string | undefined;
|
|
93
|
+
rationale?: string | undefined;
|
|
94
|
+
beliefNodeId?: string | undefined;
|
|
95
|
+
weight?: number | undefined;
|
|
96
|
+
confidence?: number | undefined;
|
|
97
|
+
targetId?: string | undefined;
|
|
98
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
99
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
100
|
+
}, {
|
|
101
|
+
beliefId?: string | undefined;
|
|
102
|
+
rationale?: string | undefined;
|
|
103
|
+
beliefNodeId?: string | undefined;
|
|
104
|
+
weight?: number | undefined;
|
|
105
|
+
confidence?: number | undefined;
|
|
106
|
+
targetId?: string | undefined;
|
|
107
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
108
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
109
|
+
}>, "many">>;
|
|
54
110
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
55
111
|
weight: z.ZodOptional<z.ZodNumber>;
|
|
56
112
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
@@ -79,6 +135,34 @@ declare const createEvidenceInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
79
135
|
targetNodeId: z.ZodOptional<z.ZodString>;
|
|
80
136
|
linkedBeliefNodeId: z.ZodOptional<z.ZodString>;
|
|
81
137
|
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
138
|
+
beliefRelations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
139
|
+
beliefId: z.ZodOptional<z.ZodString>;
|
|
140
|
+
beliefNodeId: z.ZodOptional<z.ZodString>;
|
|
141
|
+
targetId: z.ZodOptional<z.ZodString>;
|
|
142
|
+
relation: z.ZodOptional<z.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
143
|
+
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
144
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
145
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
146
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
147
|
+
}, "strip", z.ZodTypeAny, {
|
|
148
|
+
beliefId?: string | undefined;
|
|
149
|
+
rationale?: string | undefined;
|
|
150
|
+
beliefNodeId?: string | undefined;
|
|
151
|
+
weight?: number | undefined;
|
|
152
|
+
confidence?: number | undefined;
|
|
153
|
+
targetId?: string | undefined;
|
|
154
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
155
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
156
|
+
}, {
|
|
157
|
+
beliefId?: string | undefined;
|
|
158
|
+
rationale?: string | undefined;
|
|
159
|
+
beliefNodeId?: string | undefined;
|
|
160
|
+
weight?: number | undefined;
|
|
161
|
+
confidence?: number | undefined;
|
|
162
|
+
targetId?: string | undefined;
|
|
163
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
164
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
165
|
+
}>, "many">>;
|
|
82
166
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
83
167
|
weight: z.ZodOptional<z.ZodNumber>;
|
|
84
168
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
@@ -107,6 +191,34 @@ declare const createEvidenceInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
107
191
|
targetNodeId: z.ZodOptional<z.ZodString>;
|
|
108
192
|
linkedBeliefNodeId: z.ZodOptional<z.ZodString>;
|
|
109
193
|
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
194
|
+
beliefRelations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
195
|
+
beliefId: z.ZodOptional<z.ZodString>;
|
|
196
|
+
beliefNodeId: z.ZodOptional<z.ZodString>;
|
|
197
|
+
targetId: z.ZodOptional<z.ZodString>;
|
|
198
|
+
relation: z.ZodOptional<z.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
199
|
+
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
200
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
201
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
202
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
203
|
+
}, "strip", z.ZodTypeAny, {
|
|
204
|
+
beliefId?: string | undefined;
|
|
205
|
+
rationale?: string | undefined;
|
|
206
|
+
beliefNodeId?: string | undefined;
|
|
207
|
+
weight?: number | undefined;
|
|
208
|
+
confidence?: number | undefined;
|
|
209
|
+
targetId?: string | undefined;
|
|
210
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
211
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
212
|
+
}, {
|
|
213
|
+
beliefId?: string | undefined;
|
|
214
|
+
rationale?: string | undefined;
|
|
215
|
+
beliefNodeId?: string | undefined;
|
|
216
|
+
weight?: number | undefined;
|
|
217
|
+
confidence?: number | undefined;
|
|
218
|
+
targetId?: string | undefined;
|
|
219
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
220
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
221
|
+
}>, "many">>;
|
|
110
222
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
111
223
|
weight: z.ZodOptional<z.ZodNumber>;
|
|
112
224
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
@@ -135,6 +247,34 @@ declare const createEvidenceInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
135
247
|
targetNodeId: z.ZodOptional<z.ZodString>;
|
|
136
248
|
linkedBeliefNodeId: z.ZodOptional<z.ZodString>;
|
|
137
249
|
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
250
|
+
beliefRelations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
251
|
+
beliefId: z.ZodOptional<z.ZodString>;
|
|
252
|
+
beliefNodeId: z.ZodOptional<z.ZodString>;
|
|
253
|
+
targetId: z.ZodOptional<z.ZodString>;
|
|
254
|
+
relation: z.ZodOptional<z.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
255
|
+
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
256
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
257
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
258
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
259
|
+
}, "strip", z.ZodTypeAny, {
|
|
260
|
+
beliefId?: string | undefined;
|
|
261
|
+
rationale?: string | undefined;
|
|
262
|
+
beliefNodeId?: string | undefined;
|
|
263
|
+
weight?: number | undefined;
|
|
264
|
+
confidence?: number | undefined;
|
|
265
|
+
targetId?: string | undefined;
|
|
266
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
267
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
268
|
+
}, {
|
|
269
|
+
beliefId?: string | undefined;
|
|
270
|
+
rationale?: string | undefined;
|
|
271
|
+
beliefNodeId?: string | undefined;
|
|
272
|
+
weight?: number | undefined;
|
|
273
|
+
confidence?: number | undefined;
|
|
274
|
+
targetId?: string | undefined;
|
|
275
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
276
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
277
|
+
}>, "many">>;
|
|
138
278
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
139
279
|
weight: z.ZodOptional<z.ZodNumber>;
|
|
140
280
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
@@ -165,6 +305,34 @@ declare const createEvidenceProjection: ProjectionDef<z.objectInputType<{
|
|
|
165
305
|
targetNodeId: z.ZodOptional<z.ZodString>;
|
|
166
306
|
linkedBeliefNodeId: z.ZodOptional<z.ZodString>;
|
|
167
307
|
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
308
|
+
beliefRelations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
309
|
+
beliefId: z.ZodOptional<z.ZodString>;
|
|
310
|
+
beliefNodeId: z.ZodOptional<z.ZodString>;
|
|
311
|
+
targetId: z.ZodOptional<z.ZodString>;
|
|
312
|
+
relation: z.ZodOptional<z.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
313
|
+
evidenceRelation: z.ZodOptional<z.ZodEnum<["supports", "contradicts"]>>;
|
|
314
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
315
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
316
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
317
|
+
}, "strip", z.ZodTypeAny, {
|
|
318
|
+
beliefId?: string | undefined;
|
|
319
|
+
rationale?: string | undefined;
|
|
320
|
+
beliefNodeId?: string | undefined;
|
|
321
|
+
weight?: number | undefined;
|
|
322
|
+
confidence?: number | undefined;
|
|
323
|
+
targetId?: string | undefined;
|
|
324
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
325
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
326
|
+
}, {
|
|
327
|
+
beliefId?: string | undefined;
|
|
328
|
+
rationale?: string | undefined;
|
|
329
|
+
beliefNodeId?: string | undefined;
|
|
330
|
+
weight?: number | undefined;
|
|
331
|
+
confidence?: number | undefined;
|
|
332
|
+
targetId?: string | undefined;
|
|
333
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
334
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
335
|
+
}>, "many">>;
|
|
168
336
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
169
337
|
weight: z.ZodOptional<z.ZodNumber>;
|
|
170
338
|
reasoning: z.ZodOptional<z.ZodString>;
|
|
@@ -3,6 +3,20 @@ import { z } from 'zod';
|
|
|
3
3
|
|
|
4
4
|
// src/projections/create-evidence.projection.ts
|
|
5
5
|
|
|
6
|
+
// src/ids.contract.ts
|
|
7
|
+
var PREFIXED_ID_PATTERN = /^([a-z][a-z0-9]*)_(.+)$/;
|
|
8
|
+
function decodePrefixedId(id) {
|
|
9
|
+
const normalized = id.trim();
|
|
10
|
+
const match = PREFIXED_ID_PATTERN.exec(normalized);
|
|
11
|
+
if (!match) {
|
|
12
|
+
throw new Error(`Invalid prefixed ID: ${id}`);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
prefix: match[1],
|
|
16
|
+
value: match[2]
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
6
20
|
// src/projections/projection-dsl.ts
|
|
7
21
|
function defineProjection(def) {
|
|
8
22
|
return def;
|
|
@@ -10,6 +24,23 @@ function defineProjection(def) {
|
|
|
10
24
|
|
|
11
25
|
// src/projections/create-evidence.projection.ts
|
|
12
26
|
var jsonRecordSchema = z.record(z.unknown());
|
|
27
|
+
var evidenceRelationSchema = z.enum(["supports", "contradicts"]);
|
|
28
|
+
var evidenceRelationAliasSchema = z.enum([
|
|
29
|
+
"supports",
|
|
30
|
+
"contradicts",
|
|
31
|
+
"supporting",
|
|
32
|
+
"contradicting"
|
|
33
|
+
]);
|
|
34
|
+
var beliefRelationSchema = z.object({
|
|
35
|
+
beliefId: z.string().optional(),
|
|
36
|
+
beliefNodeId: z.string().optional(),
|
|
37
|
+
targetId: z.string().optional(),
|
|
38
|
+
relation: evidenceRelationAliasSchema.optional(),
|
|
39
|
+
evidenceRelation: evidenceRelationSchema.optional(),
|
|
40
|
+
confidence: z.number().optional(),
|
|
41
|
+
weight: z.number().optional(),
|
|
42
|
+
rationale: z.string().optional()
|
|
43
|
+
});
|
|
13
44
|
var createEvidenceInputSchemaBase = z.object({
|
|
14
45
|
projectId: z.string().optional(),
|
|
15
46
|
topicId: z.string().optional(),
|
|
@@ -31,7 +62,8 @@ var createEvidenceInputSchemaBase = z.object({
|
|
|
31
62
|
targetId: z.string().optional(),
|
|
32
63
|
targetNodeId: z.string().optional(),
|
|
33
64
|
linkedBeliefNodeId: z.string().optional(),
|
|
34
|
-
evidenceRelation:
|
|
65
|
+
evidenceRelation: evidenceRelationSchema.optional(),
|
|
66
|
+
beliefRelations: z.array(beliefRelationSchema).optional(),
|
|
35
67
|
confidence: z.number().optional(),
|
|
36
68
|
weight: z.number().optional(),
|
|
37
69
|
reasoning: z.string().optional(),
|
|
@@ -57,15 +89,103 @@ function isRecord(value) {
|
|
|
57
89
|
function recordValue(value) {
|
|
58
90
|
return isRecord(value) ? value : {};
|
|
59
91
|
}
|
|
92
|
+
function normalizeTopicIdForKernel(topicId) {
|
|
93
|
+
const normalized = topicId?.trim();
|
|
94
|
+
if (!normalized) {
|
|
95
|
+
return void 0;
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
const decoded = decodePrefixedId(normalized);
|
|
99
|
+
return decoded.prefix === "top" ? decoded.value : normalized;
|
|
100
|
+
} catch {
|
|
101
|
+
return normalized;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function normalizeWorktreeId(value) {
|
|
105
|
+
const normalized = value?.trim();
|
|
106
|
+
if (!normalized) {
|
|
107
|
+
return void 0;
|
|
108
|
+
}
|
|
109
|
+
if (normalized.startsWith("wt_")) {
|
|
110
|
+
return normalized.slice("wt_".length);
|
|
111
|
+
}
|
|
112
|
+
return normalized;
|
|
113
|
+
}
|
|
114
|
+
function targetKind(targetId) {
|
|
115
|
+
const normalized = targetId?.trim();
|
|
116
|
+
if (!normalized) {
|
|
117
|
+
return "unknown";
|
|
118
|
+
}
|
|
119
|
+
if (normalized.startsWith("wt_") || /^tn[a-z0-9]+$/i.test(normalized)) {
|
|
120
|
+
return "worktree";
|
|
121
|
+
}
|
|
122
|
+
if (normalized.startsWith("que_")) {
|
|
123
|
+
return "question";
|
|
124
|
+
}
|
|
125
|
+
if (normalized.startsWith("bel_")) {
|
|
126
|
+
return "belief";
|
|
127
|
+
}
|
|
128
|
+
return "unknown";
|
|
129
|
+
}
|
|
130
|
+
function normalizeRelation(value, weight) {
|
|
131
|
+
if (value === "supports" || value === "supporting") {
|
|
132
|
+
return "supports";
|
|
133
|
+
}
|
|
134
|
+
if (value === "contradicts" || value === "contradicting") {
|
|
135
|
+
return "contradicts";
|
|
136
|
+
}
|
|
137
|
+
if (weight === void 0) {
|
|
138
|
+
return void 0;
|
|
139
|
+
}
|
|
140
|
+
return weight < 0 ? "contradicts" : "supports";
|
|
141
|
+
}
|
|
142
|
+
function normalizeConfidence(confidence, weight) {
|
|
143
|
+
if (confidence !== void 0) {
|
|
144
|
+
return Math.min(1, Math.max(0, confidence));
|
|
145
|
+
}
|
|
146
|
+
if (weight === void 0) {
|
|
147
|
+
return void 0;
|
|
148
|
+
}
|
|
149
|
+
return Math.min(1, Math.max(0, Math.abs(weight)));
|
|
150
|
+
}
|
|
151
|
+
function normalizeBeliefRelation(relation) {
|
|
152
|
+
const beliefNodeId = relation.beliefNodeId ?? relation.beliefId ?? relation.targetId;
|
|
153
|
+
if (!beliefNodeId) {
|
|
154
|
+
return void 0;
|
|
155
|
+
}
|
|
156
|
+
const weight = typeof relation.weight === "number" ? relation.weight : void 0;
|
|
157
|
+
const evidenceRelation = normalizeRelation(
|
|
158
|
+
relation.evidenceRelation ?? relation.relation,
|
|
159
|
+
weight
|
|
160
|
+
);
|
|
161
|
+
if (!evidenceRelation) {
|
|
162
|
+
return void 0;
|
|
163
|
+
}
|
|
164
|
+
return compactRecord({
|
|
165
|
+
beliefNodeId,
|
|
166
|
+
relation: evidenceRelation,
|
|
167
|
+
confidence: normalizeConfidence(relation.confidence, weight),
|
|
168
|
+
rationale: relation.rationale
|
|
169
|
+
});
|
|
170
|
+
}
|
|
60
171
|
var createEvidenceProjection = defineProjection({
|
|
61
172
|
contractName: "create_evidence",
|
|
62
173
|
inputSchema: createEvidenceInputSchema,
|
|
63
174
|
project: (input) => {
|
|
64
175
|
const text = input.text ?? input.canonicalText;
|
|
65
176
|
const weight = typeof input.weight === "number" ? input.weight : void 0;
|
|
177
|
+
const target = input.targetId ?? input.targetNodeId;
|
|
178
|
+
const kind = targetKind(target);
|
|
179
|
+
const linkedWorktreeId = kind === "worktree" ? normalizeWorktreeId(target) : void 0;
|
|
180
|
+
const linkedBeliefNodeId = input.linkedBeliefNodeId ?? (kind === "belief" || kind === "unknown" ? input.targetNodeId ?? input.targetId : void 0);
|
|
181
|
+
const evidenceRelation = linkedBeliefNodeId ? normalizeRelation(input.evidenceRelation, weight) : void 0;
|
|
182
|
+
const confidence = evidenceRelation ? normalizeConfidence(input.confidence, weight) : void 0;
|
|
183
|
+
const beliefRelations = input.beliefRelations?.map(normalizeBeliefRelation).filter(
|
|
184
|
+
(relation) => relation !== void 0
|
|
185
|
+
);
|
|
66
186
|
return compactRecord({
|
|
67
187
|
projectId: input.projectId,
|
|
68
|
-
topicId: input.topicId,
|
|
188
|
+
topicId: normalizeTopicIdForKernel(input.topicId),
|
|
69
189
|
text,
|
|
70
190
|
title: input.title ?? text,
|
|
71
191
|
content: input.content ?? text,
|
|
@@ -84,13 +204,16 @@ var createEvidenceProjection = defineProjection({
|
|
|
84
204
|
source: input.source,
|
|
85
205
|
targetId: input.targetId,
|
|
86
206
|
targetNodeId: input.targetNodeId,
|
|
207
|
+
targetKind: kind === "unknown" ? void 0 : kind,
|
|
208
|
+
linkedWorktreeId,
|
|
87
209
|
weight,
|
|
88
210
|
reasoning: input.reasoning,
|
|
89
211
|
rationale: input.rationale
|
|
90
212
|
}),
|
|
91
|
-
linkedBeliefNodeId
|
|
92
|
-
evidenceRelation
|
|
93
|
-
confidence
|
|
213
|
+
linkedBeliefNodeId,
|
|
214
|
+
evidenceRelation,
|
|
215
|
+
confidence,
|
|
216
|
+
beliefRelations: beliefRelations && beliefRelations.length > 0 ? beliefRelations : void 0,
|
|
94
217
|
rationale: input.rationale,
|
|
95
218
|
trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true
|
|
96
219
|
});
|
|
@@ -119,6 +242,16 @@ var createEvidenceProjection = defineProjection({
|
|
|
119
242
|
v.literal("contradicts")
|
|
120
243
|
)
|
|
121
244
|
),
|
|
245
|
+
beliefRelations: v.optional(
|
|
246
|
+
v.array(
|
|
247
|
+
v.object({
|
|
248
|
+
beliefNodeId: v.string(),
|
|
249
|
+
relation: v.union(v.literal("supports"), v.literal("contradicts")),
|
|
250
|
+
confidence: v.optional(v.number()),
|
|
251
|
+
rationale: v.optional(v.string())
|
|
252
|
+
})
|
|
253
|
+
)
|
|
254
|
+
),
|
|
122
255
|
confidence: v.optional(v.number()),
|
|
123
256
|
rationale: v.string(),
|
|
124
257
|
trustedBypassAccessCheck: v.optional(v.boolean())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/projections/projection-dsl.ts","../../src/projections/create-evidence.projection.ts"],"names":[],"mappings":"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","file":"create-evidence.projection.js","sourcesContent":["import type { z } from \"zod\";\n\nexport interface ProjectionDef<TInput, TConvexArgs> {\n contractName: string;\n inputSchema: z.ZodSchema<TInput>;\n project: (input: TInput) => TConvexArgs;\n convexArgsValidator: unknown;\n}\n\nexport function defineProjection<I, C>(\n def: ProjectionDef<I, C>\n): ProjectionDef<I, C> {\n return def;\n}\n","import { v } from \"convex/values\";\nimport { z } from \"zod\";\nimport { defineProjection } from \"./projection-dsl.js\";\n\nconst jsonRecordSchema = z.record(z.unknown());\n\nconst createEvidenceInputSchemaBase = z\n .object({\n projectId: z.string().optional(),\n topicId: z.string().optional(),\n text: z.string().optional(),\n canonicalText: z.string().optional(),\n title: z.string().optional(),\n content: z.string().optional(),\n contentType: z.string().optional(),\n kind: z.string().optional(),\n tags: z.array(z.string()).optional(),\n source: z.string().optional(),\n sourceUrl: z.string().optional(),\n sourceType: z.string().optional(),\n externalSourceType: z.string().optional(),\n sourceQuestionId: z.string().optional(),\n methodology: z.string().optional(),\n informationAsymmetry: z.string().optional(),\n sourceDescription: z.string().optional(),\n targetId: z.string().optional(),\n targetNodeId: z.string().optional(),\n linkedBeliefNodeId: z.string().optional(),\n evidenceRelation: z.enum([\"supports\", \"contradicts\"]).optional(),\n confidence: z.number().optional(),\n weight: z.number().optional(),\n reasoning: z.string().optional(),\n rationale: z.string(),\n metadata: jsonRecordSchema.optional(),\n trustedBypassAccessCheck: z.boolean().optional(),\n })\n .passthrough();\n\nexport const createEvidenceInputSchema = createEvidenceInputSchemaBase.refine(\n (input) => Boolean(input.text ?? input.canonicalText),\n {\n message: \"create_evidence requires text\",\n path: [\"text\"],\n },\n);\n\nexport type CreateEvidenceProjectionInput = z.infer<\n typeof createEvidenceInputSchema\n>;\n\nfunction compactRecord(\n input: Record<string, unknown>,\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined),\n );\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction recordValue(value: unknown): Record<string, unknown> {\n return isRecord(value) ? value : {};\n}\n\nexport const createEvidenceProjection = defineProjection({\n contractName: \"create_evidence\",\n inputSchema: createEvidenceInputSchema,\n project: (input: CreateEvidenceProjectionInput) => {\n const text = input.text ?? input.canonicalText;\n const weight = typeof input.weight === \"number\" ? input.weight : undefined;\n\n return compactRecord({\n projectId: input.projectId,\n topicId: input.topicId,\n text,\n title: input.title ?? text,\n content: input.content ?? text,\n contentType: input.contentType,\n kind: input.kind,\n tags: input.tags,\n sourceType: input.sourceType,\n externalSourceType: input.externalSourceType,\n sourceUrl: input.sourceUrl ?? input.source,\n sourceQuestionId: input.sourceQuestionId,\n methodology: input.methodology,\n informationAsymmetry: input.informationAsymmetry,\n sourceDescription: input.sourceDescription,\n metadata: compactRecord({\n ...recordValue(input.metadata),\n source: input.source,\n targetId: input.targetId,\n targetNodeId: input.targetNodeId,\n weight,\n reasoning: input.reasoning,\n rationale: input.rationale,\n }),\n linkedBeliefNodeId:\n input.linkedBeliefNodeId ?? input.targetNodeId ?? input.targetId,\n evidenceRelation:\n input.evidenceRelation ??\n (weight === undefined\n ? undefined\n : weight < 0\n ? \"contradicts\"\n : \"supports\"),\n confidence:\n input.confidence ??\n (weight === undefined\n ? undefined\n : Math.min(1, Math.max(0, Math.abs(weight)))),\n rationale: input.rationale,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n });\n },\n convexArgsValidator: v.object({\n projectId: v.optional(v.string()),\n topicId: v.optional(v.string()),\n text: v.string(),\n title: v.optional(v.string()),\n content: v.optional(v.string()),\n contentType: v.optional(v.string()),\n kind: v.optional(v.string()),\n tags: v.optional(v.array(v.string())),\n sourceType: v.optional(v.string()),\n externalSourceType: v.optional(v.string()),\n sourceUrl: v.optional(v.string()),\n sourceQuestionId: v.optional(v.string()),\n methodology: v.optional(v.string()),\n informationAsymmetry: v.optional(v.string()),\n sourceDescription: v.optional(v.string()),\n metadata: v.optional(v.record(v.string(), v.any())),\n linkedBeliefNodeId: v.optional(v.string()),\n evidenceRelation: v.optional(\n v.union(\n v.literal(\"supports\"),\n v.literal(\"contradicts\"),\n ),\n ),\n confidence: v.optional(v.number()),\n rationale: v.string(),\n trustedBypassAccessCheck: v.optional(v.boolean()),\n }),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ids.contract.ts","../../src/projections/projection-dsl.ts","../../src/projections/create-evidence.projection.ts"],"names":[],"mappings":";;;;;;AAKA,IAAM,mBAAA,GAAsB,yBAAA;AAarB,SAAS,iBAAiB,EAAA,EAA+B;AAC9D,EAAA,MAAM,UAAA,GAAa,GAAG,IAAA,EAAK;AAC3B,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,IAAA,CAAK,UAAU,CAAA;AAEjD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,EAAE,CAAA,CAAE,CAAA;AAAA,EAC9C;AAEA,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,IACf,KAAA,EAAO,MAAM,CAAC;AAAA,GAChB;AACF;;;ACrBO,SAAS,iBACd,GAAA,EACqB;AACrB,EAAA,OAAO,GAAA;AACT;;;ACRA,IAAM,gBAAA,GAAmB,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,SAAS,CAAA;AAE7C,IAAM,yBAAyB,CAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,aAAa,CAAC,CAAA;AACjE,IAAM,2BAAA,GAA8B,EAAE,IAAA,CAAK;AAAA,EACzC,UAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,oBAAA,GAAuB,EAAE,MAAA,CAAO;AAAA,EACpC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,QAAA,EAAU,4BAA4B,QAAA,EAAS;AAAA,EAC/C,gBAAA,EAAkB,uBAAuB,QAAA,EAAS;AAAA,EAClD,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgC,EACnC,MAAA,CAAO;AAAA,EACN,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACnC,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,MAAM,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACnC,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,kBAAA,EAAoB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxC,gBAAA,EAAkB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,oBAAA,EAAsB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1C,iBAAA,EAAmB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACvC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,kBAAA,EAAoB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxC,gBAAA,EAAkB,uBAAuB,QAAA,EAAS;AAAA,EAClD,eAAA,EAAiB,CAAA,CAAE,KAAA,CAAM,oBAAoB,EAAE,QAAA,EAAS;AAAA,EACxD,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,SAAA,EAAW,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,EACpB,QAAA,EAAU,iBAAiB,QAAA,EAAS;AAAA,EACpC,wBAAA,EAA0B,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACxC,CAAC,EACA,WAAA,EAAY;AAER,IAAM,4BAA4B,6BAAA,CAA8B,MAAA;AAAA,EACrE,CAAC,KAAA,KAAU,OAAA,CAAQ,KAAA,CAAM,IAAA,IAAQ,MAAM,aAAa,CAAA;AAAA,EACpD;AAAA,IACE,OAAA,EAAS,+BAAA;AAAA,IACT,IAAA,EAAM,CAAC,MAAM;AAAA;AAEjB;AAMA,SAAS,cACP,KAAA,EACyB;AACzB,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IACZ,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAG,KAAK,CAAA,KAAM,KAAA,KAAU,MAAS;AAAA,GACjE;AACF;AAEA,SAAS,SAAS,KAAA,EAAkD;AAClE,EAAA,OAAO,OAAA,CAAQ,KAAK,CAAA,IAAK,OAAO,UAAU,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,YAAY,KAAA,EAAyC;AAC5D,EAAA,OAAO,QAAA,CAAS,KAAK,CAAA,GAAI,KAAA,GAAQ,EAAC;AACpC;AAEA,SAAS,0BACP,OAAA,EACoB;AACpB,EAAA,MAAM,UAAA,GAAa,SAAS,IAAA,EAAK;AACjC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAU,iBAAiB,UAAU,CAAA;AAC3C,IAAA,OAAO,OAAA,CAAQ,MAAA,KAAW,KAAA,GAAQ,OAAA,CAAQ,KAAA,GAAQ,UAAA;AAAA,EACpD,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,UAAA;AAAA,EACT;AACF;AAEA,SAAS,oBAAoB,KAAA,EAA+C;AAC1E,EAAA,MAAM,UAAA,GAAa,OAAO,IAAA,EAAK;AAC/B,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAA,CAAW,UAAA,CAAW,KAAK,CAAA,EAAG;AAChC,IAAA,OAAO,UAAA,CAAW,KAAA,CAAM,KAAA,CAAM,MAAM,CAAA;AAAA,EACtC;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,WACP,QAAA,EACgD;AAChD,EAAA,MAAM,UAAA,GAAa,UAAU,IAAA,EAAK;AAClC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,UAAA,CAAW,KAAK,KAAK,gBAAA,CAAiB,IAAA,CAAK,UAAU,CAAA,EAAG;AACrE,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAA,CAAW,UAAA,CAAW,MAAM,CAAA,EAAG;AACjC,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAA,CAAW,UAAA,CAAW,MAAM,CAAA,EAAG;AACjC,IAAA,OAAO,QAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA;AACT;AAEA,SAAS,iBAAA,CAAkB,OAA2B,MAAA,EAA4B;AAChF,EAAA,IAAI,KAAA,KAAU,UAAA,IAAc,KAAA,KAAU,YAAA,EAAc;AAClD,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,IAAI,KAAA,KAAU,aAAA,IAAiB,KAAA,KAAU,eAAA,EAAiB;AACxD,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA,GAAS,IAAK,aAAA,GAA2B,UAAA;AAClD;AAEA,SAAS,mBAAA,CACP,YACA,MAAA,EACA;AACA,EAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,IAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,CAAA,EAAG,UAAU,CAAC,CAAA;AAAA,EAC5C;AACA,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAC,CAAA;AAClD;AAEA,SAAS,wBACP,QAAA,EACA;AACA,EAAA,MAAM,YAAA,GACJ,QAAA,CAAS,YAAA,IAAgB,QAAA,CAAS,YAAY,QAAA,CAAS,QAAA;AACzD,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,SACJ,OAAO,QAAA,CAAS,MAAA,KAAW,QAAA,GAAW,SAAS,MAAA,GAAS,MAAA;AAC1D,EAAA,MAAM,gBAAA,GAAmB,iBAAA;AAAA,IACvB,QAAA,CAAS,oBAAoB,QAAA,CAAS,QAAA;AAAA,IACtC;AAAA,GACF;AACA,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,aAAA,CAAc;AAAA,IACnB,YAAA;AAAA,IACA,QAAA,EAAU,gBAAA;AAAA,IACV,UAAA,EAAY,mBAAA,CAAoB,QAAA,CAAS,UAAA,EAAY,MAAM,CAAA;AAAA,IAC3D,WAAW,QAAA,CAAS;AAAA,GACrB,CAAA;AACH;AAEO,IAAM,2BAA2B,gBAAA,CAAiB;AAAA,EACvD,YAAA,EAAc,iBAAA;AAAA,EACd,WAAA,EAAa,yBAAA;AAAA,EACb,OAAA,EAAS,CAAC,KAAA,KAAyC;AACjD,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,aAAA;AACjC,IAAA,MAAM,SAAS,OAAO,KAAA,CAAM,MAAA,KAAW,QAAA,GAAW,MAAM,MAAA,GAAS,MAAA;AACjE,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,QAAA,IAAY,KAAA,CAAM,YAAA;AACvC,IAAA,MAAM,IAAA,GAAO,WAAW,MAAM,CAAA;AAC9B,IAAA,MAAM,gBAAA,GACJ,IAAA,KAAS,UAAA,GAAa,mBAAA,CAAoB,MAAM,CAAA,GAAI,MAAA;AACtD,IAAA,MAAM,kBAAA,GACJ,KAAA,CAAM,kBAAA,KACL,IAAA,KAAS,QAAA,IAAY,SAAS,SAAA,GAC1B,KAAA,CAAM,YAAA,IAAgB,KAAA,CAAM,QAAA,GAC7B,MAAA,CAAA;AACN,IAAA,MAAM,mBAAmB,kBAAA,GACrB,iBAAA,CAAkB,KAAA,CAAM,gBAAA,EAAkB,MAAM,CAAA,GAChD,MAAA;AACJ,IAAA,MAAM,aAAa,gBAAA,GACf,mBAAA,CAAoB,KAAA,CAAM,UAAA,EAAY,MAAM,CAAA,GAC5C,MAAA;AACJ,IAAA,MAAM,eAAA,GAAkB,KAAA,CAAM,eAAA,EAC1B,GAAA,CAAI,uBAAuB,CAAA,CAC5B,MAAA;AAAA,MACC,CAAC,aAAkD,QAAA,KAAa;AAAA,KAClE;AAEF,IAAA,OAAO,aAAA,CAAc;AAAA,MACnB,WAAW,KAAA,CAAM,SAAA;AAAA,MACjB,OAAA,EAAS,yBAAA,CAA0B,KAAA,CAAM,OAAO,CAAA;AAAA,MAChD,IAAA;AAAA,MACA,KAAA,EAAO,MAAM,KAAA,IAAS,IAAA;AAAA,MACtB,OAAA,EAAS,MAAM,OAAA,IAAW,IAAA;AAAA,MAC1B,aAAa,KAAA,CAAM,WAAA;AAAA,MACnB,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,oBAAoB,KAAA,CAAM,kBAAA;AAAA,MAC1B,SAAA,EAAW,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,MAAA;AAAA,MACpC,kBAAkB,KAAA,CAAM,gBAAA;AAAA,MACxB,aAAa,KAAA,CAAM,WAAA;AAAA,MACnB,sBAAsB,KAAA,CAAM,oBAAA;AAAA,MAC5B,mBAAmB,KAAA,CAAM,iBAAA;AAAA,MACzB,UAAU,aAAA,CAAc;AAAA,QACtB,GAAG,WAAA,CAAY,KAAA,CAAM,QAAQ,CAAA;AAAA,QAC7B,QAAQ,KAAA,CAAM,MAAA;AAAA,QACd,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,cAAc,KAAA,CAAM,YAAA;AAAA,QACpB,UAAA,EAAY,IAAA,KAAS,SAAA,GAAY,MAAA,GAAY,IAAA;AAAA,QAC7C,gBAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,WAAW,KAAA,CAAM;AAAA,OAClB,CAAA;AAAA,MACD,kBAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,eAAA,EACE,eAAA,IAAmB,eAAA,CAAgB,MAAA,GAAS,IACxC,eAAA,GACA,MAAA;AAAA,MACN,WAAW,KAAA,CAAM,SAAA;AAAA,MACjB,wBAAA,EAA0B,MAAM,wBAAA,IAA4B;AAAA,KAC7D,CAAA;AAAA,EACH,CAAA;AAAA,EACA,mBAAA,EAAqB,EAAE,MAAA,CAAO;AAAA,IAC5B,SAAA,EAAW,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAChC,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAC9B,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,IACf,KAAA,EAAO,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAC5B,OAAA,EAAS,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAC9B,WAAA,EAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAClC,IAAA,EAAM,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAC3B,IAAA,EAAM,EAAE,QAAA,CAAS,CAAA,CAAE,MAAM,CAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,IACpC,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IACjC,kBAAA,EAAoB,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IACzC,SAAA,EAAW,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAChC,gBAAA,EAAkB,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IACvC,WAAA,EAAa,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAClC,oBAAA,EAAsB,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IAC3C,iBAAA,EAAmB,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IACxC,QAAA,EAAU,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,EAAO,EAAG,CAAA,CAAE,GAAA,EAAK,CAAC,CAAA;AAAA,IAClD,kBAAA,EAAoB,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IACzC,kBAAkB,CAAA,CAAE,QAAA;AAAA,MAClB,CAAA,CAAE,KAAA;AAAA,QACA,CAAA,CAAE,QAAQ,UAAU,CAAA;AAAA,QACpB,CAAA,CAAE,QAAQ,aAAa;AAAA;AACzB,KACF;AAAA,IACA,iBAAiB,CAAA,CAAE,QAAA;AAAA,MACjB,CAAA,CAAE,KAAA;AAAA,QACA,EAAE,MAAA,CAAO;AAAA,UACP,YAAA,EAAc,EAAE,MAAA,EAAO;AAAA,UACvB,QAAA,EAAU,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,OAAA,CAAQ,UAAU,CAAA,EAAG,CAAA,CAAE,OAAA,CAAQ,aAAa,CAAC,CAAA;AAAA,UACjE,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,UACjC,SAAA,EAAW,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ;AAAA,SACjC;AAAA;AACH,KACF;AAAA,IACA,UAAA,EAAY,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,QAAQ,CAAA;AAAA,IACjC,SAAA,EAAW,EAAE,MAAA,EAAO;AAAA,IACpB,wBAAA,EAA0B,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,SAAS;AAAA,GACjD;AACH,CAAC","file":"create-evidence.projection.js","sourcesContent":["export type DecodedPrefixedId = {\n prefix: string;\n value: string;\n};\n\nconst PREFIXED_ID_PATTERN = /^([a-z][a-z0-9]*)_(.+)$/;\n\nexport function encodePrefixedId(prefix: string, value: string): string {\n const normalizedPrefix = prefix.trim();\n const normalizedValue = value.trim();\n\n if (!normalizedPrefix || !normalizedValue) {\n throw new Error(\"Both prefix and value are required to encode a prefixed ID.\");\n }\n\n return `${normalizedPrefix}_${normalizedValue}`;\n}\n\nexport function decodePrefixedId(id: string): DecodedPrefixedId {\n const normalized = id.trim();\n const match = PREFIXED_ID_PATTERN.exec(normalized);\n\n if (!match) {\n throw new Error(`Invalid prefixed ID: ${id}`);\n }\n\n return {\n prefix: match[1],\n value: match[2],\n };\n}\n\nexport function hasPrefixedIdPrefix(id: string, prefix: string): boolean {\n const decoded = decodePrefixedId(id);\n return decoded.prefix === prefix.trim();\n}\n","import type { z } from \"zod\";\n\nexport interface ProjectionDef<TInput, TConvexArgs> {\n contractName: string;\n inputSchema: z.ZodSchema<TInput>;\n project: (input: TInput) => TConvexArgs;\n convexArgsValidator: unknown;\n}\n\nexport function defineProjection<I, C>(\n def: ProjectionDef<I, C>\n): ProjectionDef<I, C> {\n return def;\n}\n","import { v } from \"convex/values\";\nimport { z } from \"zod\";\nimport { decodePrefixedId } from \"../ids.contract.js\";\nimport { defineProjection } from \"./projection-dsl.js\";\n\nconst jsonRecordSchema = z.record(z.unknown());\n\nconst evidenceRelationSchema = z.enum([\"supports\", \"contradicts\"]);\nconst evidenceRelationAliasSchema = z.enum([\n \"supports\",\n \"contradicts\",\n \"supporting\",\n \"contradicting\",\n]);\nconst beliefRelationSchema = z.object({\n beliefId: z.string().optional(),\n beliefNodeId: z.string().optional(),\n targetId: z.string().optional(),\n relation: evidenceRelationAliasSchema.optional(),\n evidenceRelation: evidenceRelationSchema.optional(),\n confidence: z.number().optional(),\n weight: z.number().optional(),\n rationale: z.string().optional(),\n});\n\nconst createEvidenceInputSchemaBase = z\n .object({\n projectId: z.string().optional(),\n topicId: z.string().optional(),\n text: z.string().optional(),\n canonicalText: z.string().optional(),\n title: z.string().optional(),\n content: z.string().optional(),\n contentType: z.string().optional(),\n kind: z.string().optional(),\n tags: z.array(z.string()).optional(),\n source: z.string().optional(),\n sourceUrl: z.string().optional(),\n sourceType: z.string().optional(),\n externalSourceType: z.string().optional(),\n sourceQuestionId: z.string().optional(),\n methodology: z.string().optional(),\n informationAsymmetry: z.string().optional(),\n sourceDescription: z.string().optional(),\n targetId: z.string().optional(),\n targetNodeId: z.string().optional(),\n linkedBeliefNodeId: z.string().optional(),\n evidenceRelation: evidenceRelationSchema.optional(),\n beliefRelations: z.array(beliefRelationSchema).optional(),\n confidence: z.number().optional(),\n weight: z.number().optional(),\n reasoning: z.string().optional(),\n rationale: z.string(),\n metadata: jsonRecordSchema.optional(),\n trustedBypassAccessCheck: z.boolean().optional(),\n })\n .passthrough();\n\nexport const createEvidenceInputSchema = createEvidenceInputSchemaBase.refine(\n (input) => Boolean(input.text ?? input.canonicalText),\n {\n message: \"create_evidence requires text\",\n path: [\"text\"],\n },\n);\n\nexport type CreateEvidenceProjectionInput = z.infer<\n typeof createEvidenceInputSchema\n>;\n\nfunction compactRecord(\n input: Record<string, unknown>,\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined),\n );\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction recordValue(value: unknown): Record<string, unknown> {\n return isRecord(value) ? value : {};\n}\n\nfunction normalizeTopicIdForKernel(\n topicId: string | undefined,\n): string | undefined {\n const normalized = topicId?.trim();\n if (!normalized) {\n return undefined;\n }\n\n try {\n const decoded = decodePrefixedId(normalized);\n return decoded.prefix === \"top\" ? decoded.value : normalized;\n } catch {\n return normalized;\n }\n}\n\nfunction normalizeWorktreeId(value: string | undefined): string | undefined {\n const normalized = value?.trim();\n if (!normalized) {\n return undefined;\n }\n if (normalized.startsWith(\"wt_\")) {\n return normalized.slice(\"wt_\".length);\n }\n return normalized;\n}\n\nfunction targetKind(\n targetId: string | undefined,\n): \"belief\" | \"question\" | \"worktree\" | \"unknown\" {\n const normalized = targetId?.trim();\n if (!normalized) {\n return \"unknown\";\n }\n if (normalized.startsWith(\"wt_\") || /^tn[a-z0-9]+$/i.test(normalized)) {\n return \"worktree\";\n }\n if (normalized.startsWith(\"que_\")) {\n return \"question\";\n }\n if (normalized.startsWith(\"bel_\")) {\n return \"belief\";\n }\n return \"unknown\";\n}\n\nfunction normalizeRelation(value: string | undefined, weight: number | undefined) {\n if (value === \"supports\" || value === \"supporting\") {\n return \"supports\" as const;\n }\n if (value === \"contradicts\" || value === \"contradicting\") {\n return \"contradicts\" as const;\n }\n if (weight === undefined) {\n return undefined;\n }\n return weight < 0 ? (\"contradicts\" as const) : (\"supports\" as const);\n}\n\nfunction normalizeConfidence(\n confidence: number | undefined,\n weight: number | undefined,\n) {\n if (confidence !== undefined) {\n return Math.min(1, Math.max(0, confidence));\n }\n if (weight === undefined) {\n return undefined;\n }\n return Math.min(1, Math.max(0, Math.abs(weight)));\n}\n\nfunction normalizeBeliefRelation(\n relation: z.infer<typeof beliefRelationSchema>,\n) {\n const beliefNodeId =\n relation.beliefNodeId ?? relation.beliefId ?? relation.targetId;\n if (!beliefNodeId) {\n return undefined;\n }\n const weight =\n typeof relation.weight === \"number\" ? relation.weight : undefined;\n const evidenceRelation = normalizeRelation(\n relation.evidenceRelation ?? relation.relation,\n weight,\n );\n if (!evidenceRelation) {\n return undefined;\n }\n return compactRecord({\n beliefNodeId,\n relation: evidenceRelation,\n confidence: normalizeConfidence(relation.confidence, weight),\n rationale: relation.rationale,\n });\n}\n\nexport const createEvidenceProjection = defineProjection({\n contractName: \"create_evidence\",\n inputSchema: createEvidenceInputSchema,\n project: (input: CreateEvidenceProjectionInput) => {\n const text = input.text ?? input.canonicalText;\n const weight = typeof input.weight === \"number\" ? input.weight : undefined;\n const target = input.targetId ?? input.targetNodeId;\n const kind = targetKind(target);\n const linkedWorktreeId =\n kind === \"worktree\" ? normalizeWorktreeId(target) : undefined;\n const linkedBeliefNodeId =\n input.linkedBeliefNodeId ??\n (kind === \"belief\" || kind === \"unknown\"\n ? (input.targetNodeId ?? input.targetId)\n : undefined);\n const evidenceRelation = linkedBeliefNodeId\n ? normalizeRelation(input.evidenceRelation, weight)\n : undefined;\n const confidence = evidenceRelation\n ? normalizeConfidence(input.confidence, weight)\n : undefined;\n const beliefRelations = input.beliefRelations\n ?.map(normalizeBeliefRelation)\n .filter(\n (relation): relation is Record<string, unknown> => relation !== undefined,\n );\n\n return compactRecord({\n projectId: input.projectId,\n topicId: normalizeTopicIdForKernel(input.topicId),\n text,\n title: input.title ?? text,\n content: input.content ?? text,\n contentType: input.contentType,\n kind: input.kind,\n tags: input.tags,\n sourceType: input.sourceType,\n externalSourceType: input.externalSourceType,\n sourceUrl: input.sourceUrl ?? input.source,\n sourceQuestionId: input.sourceQuestionId,\n methodology: input.methodology,\n informationAsymmetry: input.informationAsymmetry,\n sourceDescription: input.sourceDescription,\n metadata: compactRecord({\n ...recordValue(input.metadata),\n source: input.source,\n targetId: input.targetId,\n targetNodeId: input.targetNodeId,\n targetKind: kind === \"unknown\" ? undefined : kind,\n linkedWorktreeId,\n weight,\n reasoning: input.reasoning,\n rationale: input.rationale,\n }),\n linkedBeliefNodeId,\n evidenceRelation,\n confidence,\n beliefRelations:\n beliefRelations && beliefRelations.length > 0\n ? beliefRelations\n : undefined,\n rationale: input.rationale,\n trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true,\n });\n },\n convexArgsValidator: v.object({\n projectId: v.optional(v.string()),\n topicId: v.optional(v.string()),\n text: v.string(),\n title: v.optional(v.string()),\n content: v.optional(v.string()),\n contentType: v.optional(v.string()),\n kind: v.optional(v.string()),\n tags: v.optional(v.array(v.string())),\n sourceType: v.optional(v.string()),\n externalSourceType: v.optional(v.string()),\n sourceUrl: v.optional(v.string()),\n sourceQuestionId: v.optional(v.string()),\n methodology: v.optional(v.string()),\n informationAsymmetry: v.optional(v.string()),\n sourceDescription: v.optional(v.string()),\n metadata: v.optional(v.record(v.string(), v.any())),\n linkedBeliefNodeId: v.optional(v.string()),\n evidenceRelation: v.optional(\n v.union(\n v.literal(\"supports\"),\n v.literal(\"contradicts\"),\n ),\n ),\n beliefRelations: v.optional(\n v.array(\n v.object({\n beliefNodeId: v.string(),\n relation: v.union(v.literal(\"supports\"), v.literal(\"contradicts\")),\n confidence: v.optional(v.number()),\n rationale: v.optional(v.string()),\n }),\n ),\n ),\n confidence: v.optional(v.number()),\n rationale: v.string(),\n trustedBypassAccessCheck: v.optional(v.boolean()),\n }),\n});\n"]}
|
|
@@ -29,6 +29,34 @@ declare const projections: {
|
|
|
29
29
|
targetNodeId: zod.ZodOptional<zod.ZodString>;
|
|
30
30
|
linkedBeliefNodeId: zod.ZodOptional<zod.ZodString>;
|
|
31
31
|
evidenceRelation: zod.ZodOptional<zod.ZodEnum<["supports", "contradicts"]>>;
|
|
32
|
+
beliefRelations: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
|
|
33
|
+
beliefId: zod.ZodOptional<zod.ZodString>;
|
|
34
|
+
beliefNodeId: zod.ZodOptional<zod.ZodString>;
|
|
35
|
+
targetId: zod.ZodOptional<zod.ZodString>;
|
|
36
|
+
relation: zod.ZodOptional<zod.ZodEnum<["supports", "contradicts", "supporting", "contradicting"]>>;
|
|
37
|
+
evidenceRelation: zod.ZodOptional<zod.ZodEnum<["supports", "contradicts"]>>;
|
|
38
|
+
confidence: zod.ZodOptional<zod.ZodNumber>;
|
|
39
|
+
weight: zod.ZodOptional<zod.ZodNumber>;
|
|
40
|
+
rationale: zod.ZodOptional<zod.ZodString>;
|
|
41
|
+
}, "strip", zod.ZodTypeAny, {
|
|
42
|
+
beliefId?: string | undefined;
|
|
43
|
+
rationale?: string | undefined;
|
|
44
|
+
beliefNodeId?: string | undefined;
|
|
45
|
+
weight?: number | undefined;
|
|
46
|
+
confidence?: number | undefined;
|
|
47
|
+
targetId?: string | undefined;
|
|
48
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
49
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
beliefId?: string | undefined;
|
|
52
|
+
rationale?: string | undefined;
|
|
53
|
+
beliefNodeId?: string | undefined;
|
|
54
|
+
weight?: number | undefined;
|
|
55
|
+
confidence?: number | undefined;
|
|
56
|
+
targetId?: string | undefined;
|
|
57
|
+
evidenceRelation?: "contradicts" | "supports" | undefined;
|
|
58
|
+
relation?: "contradicts" | "supports" | "supporting" | "contradicting" | undefined;
|
|
59
|
+
}>, "many">>;
|
|
32
60
|
confidence: zod.ZodOptional<zod.ZodNumber>;
|
|
33
61
|
weight: zod.ZodOptional<zod.ZodNumber>;
|
|
34
62
|
reasoning: zod.ZodOptional<zod.ZodString>;
|