@lucern/sdk 0.2.0-alpha.2 → 0.2.0-alpha.3

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/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # @lucern/sdk
2
2
 
3
- The TypeScript SDK for Lucern, the reasoning operating system.
3
+ The reasoning operating system for AI-native applications.
4
4
 
5
- Lucern gives your application a knowledge graph that thinks. Beliefs evolve. Evidence compounds. Contradictions surface. Your software does not just store data. It reasons about it.
5
+ Your AI agent reads 50 documents. It generates insights. A week later, it reads 50 more and has no memory of what it learned before. Every session starts from zero.
6
+
7
+ Lucern fixes this. It gives your application a knowledge graph that accumulates understanding over time. Beliefs strengthen or weaken as evidence arrives. Contradictions are detected, not hidden. Your agents get smarter with every interaction because the graph remembers what was learned, when, and why.
6
8
 
7
9
  ## Install
8
10
 
@@ -10,7 +12,9 @@ Lucern gives your application a knowledge graph that thinks. Beliefs evolve. Evi
10
12
  npm install @lucern/sdk
11
13
  ```
12
14
 
13
- ## Quickstart
15
+ ## Quickstart — Build an Agent That Remembers
16
+
17
+ Your agent processes customer support tickets and builds an evolving understanding of product issues:
14
18
 
15
19
  ```typescript
16
20
  import { createLucernClient } from "@lucern/sdk";
@@ -20,263 +24,193 @@ const lucern = createLucernClient({
20
24
  baseUrl: "https://api.lucern.ai",
21
25
  });
22
26
 
23
- // 1. Create a topic (a scope for reasoning)
27
+ // Create a reasoning scope
24
28
  const topic = await lucern.topics.create({
25
- name: "Climate Tech Market Analysis",
29
+ name: "Product Issue Tracker",
26
30
  type: "domain",
27
31
  });
32
+ const topicId = topic.data.topicId;
28
33
 
29
- // 2. State a belief (what you think is true)
34
+ // Your agent processes a batch of support tickets and forms a belief
30
35
  const belief = await lucern.beliefs.create({
31
- topicId: topic.data.topicId,
32
- canonicalText: "Carbon capture will reach cost parity with offsets by 2028",
36
+ topicId,
37
+ canonicalText: "Authentication timeout errors are caused by the session refresh race condition, not the auth provider",
33
38
  });
34
39
 
35
- // 3. Ground it in evidence
40
+ // Attach the evidence that led to this belief
36
41
  await lucern.evidence.create({
37
- topicId: topic.data.topicId,
38
- text: "DOE report shows capture costs fell 40% in 2025, projecting $80/ton by 2027",
39
- sourceUrl: "https://energy.gov/reports/carbon-capture-2025",
42
+ topicId,
43
+ text: "12 of 15 timeout tickets occur within 200ms of token refresh. Stack traces show concurrent refresh calls.",
40
44
  targetId: belief.data.nodeId,
41
45
  weight: 0.85,
42
46
  });
43
47
 
44
- // 4. Score your confidence
48
+ // Score confidence based on evidence strength
45
49
  await lucern.beliefs.modulateConfidence(belief.data.nodeId, {
46
- confidence: 0.78,
50
+ confidence: 0.75,
47
51
  trigger: "evidence_added",
48
- rationale: "DOE data supports the trajectory, but assumes continued policy support",
52
+ rationale: "Strong correlation in timing data, but haven't reproduced in staging yet",
49
53
  });
50
54
 
51
- // 5. Ask what would change your mind
55
+ // Flag what would change this understanding
52
56
  await lucern.questions.create({
53
- topicId: topic.data.topicId,
54
- text: "What happens to capture economics if the IRA tax credits expire in 2026?",
57
+ topicId,
58
+ text: "Does disabling concurrent refresh eliminate the timeout pattern?",
55
59
  priority: "high",
56
60
  linkedBeliefId: belief.data.nodeId,
57
61
  });
58
62
  ```
59
63
 
60
- Five calls. A living knowledge graph with a belief grounded in evidence, scored with confidence, and tested by a question. The graph remembers everything: what you believed, when you believed it, and why.
61
-
62
- ## What Makes This Different
63
-
64
- Most knowledge tools store facts. Lucern tracks how understanding evolves.
64
+ Next week, your agent processes more tickets:
65
65
 
66
66
  ```typescript
67
- // New evidence contradicts your belief
67
+ // New evidence arrives that contradicts the original belief
68
68
  await lucern.evidence.create({
69
69
  topicId,
70
- text: "Shell exits direct air capture citing unfavorable unit economics at scale",
71
- sourceUrl: "https://reuters.com/shell-dac-exit-2026",
70
+ text: "Timeouts persist after disabling concurrent refresh. Network traces show upstream latency spikes from the auth provider during peak hours.",
72
71
  targetId: belief.data.nodeId,
73
- weight: -0.6,
72
+ weight: -0.7, // contradicts
74
73
  });
75
74
 
76
- // Your confidence changes
75
+ // Confidence drops — the graph tracks the evolution
77
76
  await lucern.beliefs.modulateConfidence(belief.data.nodeId, {
78
- confidence: 0.55,
77
+ confidence: 0.3,
79
78
  trigger: "evidence_added",
80
- rationale: "Major industry exit signals real-world cost barriers beyond DOE projections",
79
+ rationale: "Fix attempt failed. Evidence now points to upstream provider, not our code.",
81
80
  });
82
81
 
83
- // Flag the tension explicitly
84
- await lucern.contradictions.flag({
85
- topicId,
86
- beliefA: belief.data.nodeId,
87
- beliefB: optimisticBelief.nodeId,
88
- description: "DOE projections vs Shell operational exit: lab costs vs deployed costs",
89
- severity: "high",
90
- defeatType: "undercuts",
82
+ // Fork the belief — understanding has evolved
83
+ const revised = await lucern.beliefs.fork(belief.data.nodeId, {
84
+ newFormulation: "Authentication timeouts are caused by upstream provider latency during peak hours, compounded by our lack of request queuing",
85
+ forkReason: "contradiction_response",
91
86
  });
92
- ```
93
-
94
- You started at 78% confidence. New evidence dropped you to 55%. There is an unresolved contradiction between the optimistic projection and the market reality. Every step is traceable. Every change has a rationale. Nothing is silently overwritten.
95
-
96
- ## Core Concepts
97
-
98
- | Concept | What It Is | Git Analogy |
99
- |---------|-----------|-------------|
100
- | **Topic** | A scope for reasoning about something | A repository |
101
- | **Belief** | A statement held to be true, with confidence | A commit (immutable once scored) |
102
- | **Evidence** | A fact that supports or contradicts a belief | A test result |
103
- | **Question** | Something that needs investigation | An open issue |
104
- | **Contradiction** | Two beliefs in tension | A merge conflict that may stay unresolved |
105
- | **Worktree** | A focused investigation into specific beliefs | A feature branch |
106
- | **Confidence** | How sure you are (0 to 1), append-only history | Build status, changes with every test |
107
87
 
108
- ## SDK Surface
88
+ await lucern.beliefs.modulateConfidence(revised.data.nodeId, {
89
+ confidence: 0.82,
90
+ trigger: "evidence_added",
91
+ rationale: "Network traces confirm provider latency. Queuing fix in PR #847 eliminated 90% of timeouts in staging.",
92
+ });
93
+ ```
109
94
 
110
- ```typescript
111
- const lucern = createLucernClient({ apiKey, baseUrl });
95
+ The graph now tells the complete story: your agent initially believed the issue was a race condition (75% confidence), new evidence contradicted that (dropped to 30%), and the understanding evolved to identify the real cause (82% confidence on the revised belief). Every step is traceable.
112
96
 
113
- // Knowledge primitives
114
- lucern.beliefs // Create, fork, archive, score beliefs
115
- lucern.evidence // Add evidence, link to beliefs and questions
116
- lucern.questions // Ask questions, answer them, track status
117
- lucern.contradictions // Flag and manage tensions between beliefs
118
-
119
- // Structure
120
- lucern.topics // Scope your reasoning into domains
121
- lucern.worktrees // Focused investigations (feature branches for knowledge)
122
- lucern.ontologies // Define your domain vocabulary
123
-
124
- // Intelligence
125
- lucern.graph // Traverse, analyze, detect bias, find gaps
126
- lucern.context // Compile context packs for AI agents
127
- lucern.search // Semantic search across the graph
128
-
129
- // Operations
130
- lucern.tasks // Track execution work tied to questions
131
- lucern.audit // Full audit trail, every mutation, every actor
132
- lucern.identity // Manage principals, sessions, API keys
133
- ```
97
+ ## Why This Matters
134
98
 
135
- ## Build Agents That Reason
99
+ Without Lucern, your agent would process the second batch of tickets with no memory of the first. It would re-discover the race condition theory, waste time investigating it again, and maybe reach the right answer — or maybe not.
136
100
 
137
- Lucern is built for AI agents that need to think, not just retrieve.
101
+ With Lucern, the agent reads its prior beliefs before processing new tickets. It knows what it already tried. It knows what questions are still open. It starts from understanding, not from zero.
138
102
 
139
103
  ```typescript
140
- // Compile the current understanding into a context pack
104
+ // Before processing new data, the agent reads its current understanding
141
105
  const context = await lucern.context.compile(topicId, {
142
- query: "What do we know about carbon capture economics?",
106
+ query: "authentication timeout root cause",
143
107
  ranking: "weighted_v1",
144
108
  tokenBudget: 2000,
145
109
  });
146
110
 
147
- // Feed it to your LLM as grounded context
148
- const response = await llm.generate({
149
- system: `You are a research analyst. Here is your current knowledge state:
150
-
151
- Beliefs (ranked by relevance):
152
- ${context.data.activeBeliefs
153
- .map((b) => `[${b.confidence}] ${b.canonicalText}`)
154
- .join("\n ")}
111
+ // The context pack contains:
112
+ // - Active beliefs ranked by relevance and confidence
113
+ // - Open questions that still need answers
114
+ // - Unresolved contradictions the agent should address
115
+ // - Recent evidence for grounding
155
116
 
156
- Open Questions:
157
- ${context.data.openQuestions.map((q) => q.text).join("\n ")}
117
+ // Feed this to your LLM as working memory
118
+ const prompt = `
119
+ Current understanding:
120
+ ${context.data.activeBeliefs.map(b =>
121
+ `[${b.confidence}] ${b.canonicalText}`
122
+ ).join("\n ")}
158
123
 
159
- Unresolved Contradictions:
160
- ${context.data.contradictions.map((c) => c.description).join("\n ")}
124
+ Open questions:
125
+ ${context.data.openQuestions.map(q => q.text).join("\n ")}
161
126
 
162
- Reason from this foundation. When your analysis conflicts with
163
- existing beliefs, say so explicitly.`,
164
- prompt: userQuery,
165
- });
166
-
167
- // Write the agent findings back to the graph
168
- await lucern.evidence.create({
169
- topicId,
170
- text: response.analysis,
171
- sourceUrl: "agent://research-analyst/session-42",
172
- targetId: relevantBeliefId,
173
- weight: 0.7,
174
- });
127
+ Given this foundation, analyze the following new tickets...
128
+ `;
175
129
  ```
176
130
 
177
- Every time an agent reads from the graph and writes back, the graph gets smarter. This is the compound intelligence loop.
131
+ This is the compound intelligence loop. Read from the graph, reason, write back. Every cycle makes the next one smarter.
178
132
 
179
- ## Evolving Understanding
133
+ ## Core Concepts
180
134
 
181
- Beliefs are immutable once scored, like git commits. When understanding evolves, you fork:
135
+ | Concept | What It Does |
136
+ |---------|-------------|
137
+ | **Topic** | Scopes reasoning to a domain (like a database for understanding) |
138
+ | **Belief** | A statement held to be true, with a confidence score that changes over time |
139
+ | **Evidence** | A fact that supports or contradicts a belief, with weight and source |
140
+ | **Question** | An open investigation that drives evidence collection |
141
+ | **Contradiction** | An explicit tension between beliefs that must be addressed |
142
+ | **Worktree** | A focused investigation (branch, test hypotheses, merge findings) |
143
+ | **Confidence** | A 0-to-1 score on every belief, with append-only history showing how it changed |
182
144
 
183
- ```typescript
184
- const forked = await lucern.beliefs.fork(originalBelief.nodeId, {
185
- newFormulation:
186
- "Carbon capture will remain 2-3x more expensive than offsets through 2030, " +
187
- "with deployment limited to regulated industries where offsets are not accepted",
188
- forkReason: "contradiction_response",
189
- });
145
+ ## SDK Surface
190
146
 
191
- await lucern.beliefs.modulateConfidence(forked.data.nodeId, {
192
- confidence: 0.82,
193
- trigger: "evidence_added",
194
- rationale: "Three independent operator reports confirm cost barriers persist",
195
- });
147
+ ```typescript
148
+ const lucern = createLucernClient({ apiKey, baseUrl });
196
149
 
197
- await lucern.beliefs.modulateConfidence(originalBelief.nodeId, {
198
- confidence: 0,
199
- trigger: "evidence_added",
200
- rationale: "Superseded by forked belief incorporating operator data",
201
- });
150
+ lucern.beliefs // Create, fork, archive, score beliefs
151
+ lucern.evidence // Add evidence, link to beliefs with weight
152
+ lucern.questions // Track what needs investigation
153
+ lucern.contradictions // Detect and manage tensions
154
+ lucern.topics // Organize reasoning into domains
155
+ lucern.worktrees // Run focused investigations
156
+ lucern.context // Compile the graph into agent-ready context
157
+ lucern.graph // Traverse, analyze structure, detect bias
158
+ lucern.ontologies // Define domain vocabulary
159
+ lucern.tasks // Track execution work
160
+ lucern.audit // Full mutation history
161
+ lucern.identity // Manage API keys and sessions
202
162
  ```
203
163
 
204
- The lineage is permanent. You can trace how understanding moved from one belief to another, through what evidence, at what confidence.
164
+ ## Edge Types
165
+
166
+ Six canonical reasoning relationships:
167
+
168
+ | Edge | Meaning |
169
+ |------|---------|
170
+ | `supports` | Evidence reinforces a belief |
171
+ | `informs` | Evidence bears on a belief (directional, weighted) |
172
+ | `depends_on` | Belief B requires belief A to hold |
173
+ | `derived_from` | Belief was derived from another (lineage) |
174
+ | `contains` | Structural containment |
175
+ | `tests` | Question tests a belief (falsification link) |
205
176
 
206
177
  ## Custom Tools
207
178
 
208
- Extend the graph with domain-specific operations that any agent can invoke:
179
+ Extend the graph with domain operations any agent can invoke:
209
180
 
210
181
  ```typescript
211
182
  import { z } from "zod";
212
183
 
213
184
  lucern.tools.register({
214
- namespace: "research",
215
- name: "analyze_transcript",
216
- description: "Extract beliefs and evidence from a meeting transcript",
185
+ namespace: "support",
186
+ name: "classify_ticket",
187
+ description: "Classify a support ticket and link it to relevant beliefs",
217
188
  inputSchema: z.object({
218
- transcriptUrl: z.string().url(),
189
+ ticketId: z.string(),
190
+ content: z.string(),
219
191
  topicId: z.string(),
220
192
  }),
221
193
  outputSchema: z.object({
222
- beliefs: z.array(z.object({ text: z.string(), confidence: z.number() })),
223
- evidence: z.array(z.object({ text: z.string(), sourceUrl: z.string() })),
194
+ category: z.string(),
195
+ linkedBeliefs: z.array(z.string()),
196
+ suggestedQuestions: z.array(z.string()),
224
197
  }),
225
- handler: async ({ transcriptUrl, topicId }) => {
226
- const transcript = await fetchTranscript(transcriptUrl);
227
- return extractInsights(transcript, topicId);
198
+ handler: async ({ ticketId, content, topicId }) => {
199
+ // Your classification logic
200
+ return classifyAndLink(ticketId, content, topicId);
228
201
  },
229
202
  });
230
-
231
- await lucern.extensions.research.analyze_transcript({
232
- transcriptUrl: "https://...",
233
- topicId,
234
- });
235
203
  ```
236
204
 
237
205
  ## Authentication
238
206
 
239
207
  ```typescript
240
- // Service principal (server-to-server)
241
- const lucern = createLucernClient({
242
- apiKey: "lk_your_service_principal_key",
243
- baseUrl: "https://api.lucern.ai",
244
- });
245
-
246
- // Tenant API key (application-level)
247
208
  const lucern = createLucernClient({
248
- apiKey: "luc_your_tenant_api_key",
209
+ apiKey: "lk_your_key",
249
210
  baseUrl: "https://api.lucern.ai",
250
211
  });
251
212
  ```
252
213
 
253
- ## Confidence Scale
254
-
255
- | Range | Meaning |
256
- |-------|---------|
257
- | 0.90-0.95 | Structural law, verified by multiple independent sources |
258
- | 0.85-0.90 | Strong conviction, working implementation validates it |
259
- | 0.80-0.85 | Confident, evidence supports it, not yet stress-tested |
260
- | 0.70-0.80 | Directionally right, good signal, details still emerging |
261
- | 0.50-0.70 | Hypothesis, plausible but needs investigation |
262
- | Below 0.50 | Weak signal, more question than answer |
263
- | 0 | Superseded, replaced by evolved understanding |
264
-
265
- ## TypeScript First
266
-
267
- Every response is fully typed. Every parameter has IntelliSense.
268
-
269
- ```typescript
270
- const belief = await lucern.beliefs.create({
271
- topicId: "...",
272
- canonicalText: "...",
273
- });
274
-
275
- belief.data.nodeId; // string
276
- belief.data.confidence; // number | null
277
- belief.data.status; // "unscored" | "scored" | "archived"
278
- ```
279
-
280
214
  ## Links
281
215
 
282
216
  - [Documentation](https://docs.lucern.ai)
package/dist/index.js CHANGED
@@ -5364,164 +5364,92 @@ function createLucernClient(config = {}) {
5364
5364
  }
5365
5365
 
5366
5366
  // src/contracts/api-enums.contract.ts
5367
+ var BELIEF_STATUSES = [
5368
+ "assumption",
5369
+ "hypothesis",
5370
+ "belief",
5371
+ "fact"
5372
+ ];
5367
5373
  var FORK_REASONS = [
5368
5374
  "refinement",
5369
- // Belief text evolved based on new understanding
5370
5375
  "contradiction_response",
5371
- // Created in response to a detected contradiction
5372
5376
  "scope_change",
5373
- // Belief scope narrowed or broadened
5374
5377
  "confidence_collapse",
5375
- // Confidence dropped below viability threshold
5376
5378
  "manual"
5377
- // User-initiated fork without specific trigger
5378
5379
  ];
5379
5380
  var CONFIDENCE_TRIGGERS = [
5380
5381
  "evidence_added",
5381
- // New evidence bore on the belief
5382
5382
  "contradiction_detected",
5383
- // A contradiction was flagged involving this belief
5384
5383
  "merge_outcome",
5385
- // Merge scoring determined this confidence
5384
+ "worktree_outcome",
5386
5385
  "manual",
5387
- // User manually adjusted confidence
5388
5386
  "decay"
5389
- // Time-based confidence erosion
5390
5387
  ];
5391
- var BELIEF_STATUSES = [
5392
- "unscored",
5393
- // Draft — editable in worktree (on feature branch, pre-merge)
5394
- "scored",
5395
- // Merged — formulation frozen (merged to main)
5396
- "archived"
5397
- // Soft-deleted — preserved in history (git rm)
5388
+ var EPISTEMIC_EDGE_TYPES = [
5389
+ "supports",
5390
+ "informs",
5391
+ "depends_on",
5392
+ "derived_from",
5393
+ "contains",
5394
+ "tests"
5395
+ ];
5396
+ var STRUCTURAL_EDGE_TYPES = [
5397
+ "supersedes",
5398
+ "responds_to",
5399
+ "belongs_to",
5400
+ "relates_to_thesis"
5401
+ ];
5402
+ var EDGE_TYPES = [
5403
+ ...EPISTEMIC_EDGE_TYPES,
5404
+ ...STRUCTURAL_EDGE_TYPES
5398
5405
  ];
5399
5406
  var REASONING_METHODS = [
5400
5407
  "deductive",
5401
- // Logically entailed
5402
5408
  "inductive",
5403
- // Generalized from instances
5404
5409
  "abductive",
5405
- // Best explanation inference
5406
5410
  "analogical",
5407
- // Reasoning by analogy
5408
5411
  "empirical"
5409
- // Direct observation/measurement
5410
5412
  ];
5411
5413
  var DEFEAT_TYPES = [
5412
5414
  "rebuts",
5413
- // Direct contradiction — reasons for the negation
5414
5415
  "undercuts",
5415
- // Breaks the inference link between evidence and belief
5416
5416
  "undermines"
5417
- // Attacks a premise the belief depends on
5418
5417
  ];
5419
5418
  var CONTRADICTION_SEVERITIES = [
5420
5419
  "low",
5421
- // Minor tension, may not require action
5422
5420
  "medium",
5423
- // Moderate conflict, should be investigated
5424
5421
  "high",
5425
- // Significant contradiction, likely needs resolution
5426
5422
  "critical"
5427
- // Blocks progress — must be addressed before judgment
5428
5423
  ];
5429
5424
  var CONTRADICTION_STATUSES = [
5430
5425
  "unresolved",
5431
- // Open conflict — may persist indefinitely
5432
5426
  "resolved",
5433
- // Conflict addressed (one belief forked, archived, or confidence adjusted)
5434
5427
  "accepted"
5435
- // Explicitly accepted as irreconcilable — both beliefs maintained
5436
5428
  ];
5437
5429
  var MERGE_OUTCOMES = [
5438
5430
  "validated",
5439
- // Beliefs confirmed — clean merge to main
5440
5431
  "invalidated",
5441
- // Defeat recorded — confidence collapsed (merge with revert)
5442
5432
  "forked",
5443
- // Beliefs split into competing versions (fork from merge point)
5444
5433
  "inconclusive"
5445
- // Insufficient evidence — stashed (git stash)
5446
5434
  ];
5447
5435
  var WORKTREE_PHASES = [
5448
5436
  "hypothesis",
5449
- // Form testable claims (write the code — commits)
5450
5437
  "investigation",
5451
- // Collect evidence (run the tests — more commits)
5452
5438
  "evaluation",
5453
- // Update credences (review the results — amend as needed)
5454
5439
  "resolution"
5455
- // Determine outcome (merge to main, fork, or stash)
5456
- ];
5457
- var BRANCH_STATUSES = [
5458
- "dormant",
5459
- // Branch exists but no active worktree (no one investigating)
5460
- "active",
5461
- // At least one worktree is investigating this branch
5462
- "archived"
5463
- // Branch retired — no longer a relevant thematic container
5464
- ];
5465
- var PULL_REQUEST_STATUSES = [
5466
- "pending_review",
5467
- // PR opened — awaiting reviewer feedback
5468
- "changes_requested",
5469
- // Reviewer requests changes before merge
5470
- "approved",
5471
- // Approved — ready to merge
5472
- "blocked"
5473
- // Blocked — cannot merge until contradiction is resolved
5474
5440
  ];
5475
5441
  var EPISTEMIC_LAYERS = [
5476
5442
  "L1",
5477
- // Source — the given (vendored deps)
5478
5443
  "L2",
5479
- // Evidence — the interpreted (test suite)
5480
5444
  "L3",
5481
- // Belief — the structural (source files)
5482
5445
  "L4"
5483
- // Judgment — the committed (release tags)
5484
5446
  ];
5485
5447
  var JUDGMENT_TYPES = [
5486
- "investment_thesis",
5487
- // Judgment that a thesis is mature
5448
+ "thesis",
5488
5449
  "thesis_maturity",
5489
- // Judgment that a thesis is ready for IC presentation
5490
5450
  "contradiction_ruling",
5491
- // Judgment on how to handle an irreconcilable contradiction
5492
5451
  "scope_determination",
5493
- // Judgment that defines or redefines investigation scope
5494
5452
  "confidence_ruling"
5495
- // Judgment that overrides automated confidence for policy reasons
5496
- ];
5497
- var INTEGRATION_EDGE_TYPES = [
5498
- // Support relations
5499
- "informs",
5500
- // Evidence bears on a belief (weight = direction/strength)
5501
- "grounds",
5502
- // Source provides raw basis for evidence
5503
- "answers",
5504
- // Evidence or belief resolves a question
5505
- // Defeat relations (Pollock)
5506
- "contradicts",
5507
- // Rebuts — direct contradiction
5508
- "weakened_by",
5509
- // Undercuts — breaks inference link
5510
- "undermined_by",
5511
- // Undermines — attacks a premise
5512
- // Structural relations
5513
- "depends_on",
5514
- // Belief B requires Belief A
5515
- "cascades_to",
5516
- // If A collapses, B collapses
5517
- "supersedes",
5518
- // New version replaces old (lineage)
5519
- "in_tension_with",
5520
- // Unresolved conflict
5521
- "implies",
5522
- // Question raises another question
5523
- "tests"
5524
- // Question tests a belief
5525
5453
  ];
5526
5454
 
5527
5455
  // ../../lucern/contracts/src/lens-workflow.contract.ts
@@ -8961,6 +8889,6 @@ function getControlObjectOwnershipCase(kind, caseKey) {
8961
8889
  );
8962
8890
  }
8963
8891
 
8964
- export { ACTIVATE_WORKTREE, ADD_EVIDENCE, ADD_WORKTREE, ANSWER_QUESTION, APPLY_LENS_TO_TOPIC, APPLY_ONTOLOGY, ARCHIVE_BELIEF, ARCHIVE_ONTOLOGY, ARCHIVE_QUESTION, BELIEF_STATUSES, BISECT_CONFIDENCE, BRANCH_STATUSES, CANONICAL_WORKFLOW_DEFINITIONS, CHECK_PERMISSION, COMPILE_CONTEXT, COMPLETE_TASK, CONFIDENCE_TRIGGERS, CONTRADICTION_SEVERITIES, CONTRADICTION_STATUSES, CONTROL_OBJECT_BLAST_RADII, CONTROL_OBJECT_EDIT_SURFACES, CONTROL_OBJECT_INHERITANCE_RULES, CONTROL_OBJECT_KINDS, CONTROL_OBJECT_OWNERSHIP_CONTRACT, CONTROL_OBJECT_OWNERSHIP_MATRIX, CONTROL_OBJECT_OWNERSHIP_ROWS, CONTROL_OBJECT_OWNER_SCOPES, CREATE_ANSWER, CREATE_BELIEF, CREATE_EDGE, CREATE_EPISTEMIC_CONTRACT, CREATE_EVIDENCE, CREATE_LENS, CREATE_ONTOLOGY, CREATE_ONTOLOGY_VERSION, CREATE_QUESTION, CREATE_TASK, CREATE_TOPIC, CustomToolRegistryError, DEFAULT_TIER_APPROVAL_MODE, DEFAULT_WORKFLOW_AUTO_FIX_POLICY, DEFEAT_TYPES, DEPRECATE_ONTOLOGY_VERSION, DETECT_CONFIRMATION_BIAS, EPISTEMIC_LAYERS, EXECUTE_DEEP_RESEARCH, FILTER_BY_PERMISSION, FIND_CONTRADICTIONS, FIND_MISSING_QUESTIONS, FLAG_CONTRADICTION, FORK_BELIEF, FORK_REASONS, GET_ANSWER, GET_AUDIT_TRAIL, GET_BELIEF, GET_CHANGE_HISTORY, GET_CODE_CONTEXT, GET_CONFIDENCE_HISTORY, GET_EVIDENCE, GET_FAILURE_LOG, GET_FALSIFICATION_QUESTIONS, GET_GRAPH_GAPS, GET_GRAPH_NEIGHBORHOOD, GET_GRAPH_STRUCTURE_ANALYSIS, GET_HIGH_PRIORITY_QUESTIONS, GET_OBSERVATION_CONTEXT, GET_ONTOLOGY, GET_QUESTION, GET_TOPIC, GET_TOPIC_COVERAGE, GET_TOPIC_TREE, GIT_SEMANTIC_REQUIRED_TOOLS, IDENTITY_WHOAMI, INGEST_OBSERVATION, INTEGRATION_EDGE_TYPES, JUDGMENT_TYPES, LINK_EVIDENCE, LINK_EVIDENCE_TO_BELIEF, LINK_EVIDENCE_TO_QUESTION, LIST_ALL_WORKTREES, LIST_BELIEFS, LIST_EVIDENCE, LIST_LENSES, LIST_ONTOLOGIES, LIST_QUESTIONS, LIST_TASKS, LIST_TOPICS, LIST_WORKTREES, LUCERN_SDK_VERSION, LucernApiError, MANAGE_WRITE_POLICY, MATCH_ENTITY_TYPE, MCP_TOOL_CONTRACTS, MERGE, MERGE_OUTCOMES, MODULATE_CONFIDENCE, MORNING_BRIEF_WORKFLOW_ID, NIGHTLY_RECONCILIATION_WORKFLOW_ID, OPEN_PULL_REQUEST, PUBLISH_ONTOLOGY_VERSION, PULL_REQUEST_STATUSES, PUSH, QUERY_LINEAGE, REASONING_METHODS, RECORD_ATTEMPT, RECORD_JUDGMENT, REFINE_BELIEF, REFINE_QUESTION, REMOVE_LENS_FROM_TOPIC, RESOLVE_EFFECTIVE_ONTOLOGY, SEARCH_BELIEFS, SEARCH_EVIDENCE, SEARCH_RESOURCES, SEARCH_SOURCES, TRACE_ENTITY_IMPACT, TRAVERSE_GRAPH, UPDATE_ONTOLOGY, UPDATE_QUESTION_STATUS, UPDATE_TASK, UPDATE_TOPIC, UPDATE_WORKTREE_METADATA, UPDATE_WORKTREE_TARGETS, WORKFLOW_ACTION_KINDS, WORKFLOW_APPROVAL_MODES, WORKFLOW_AUTO_FIX_MODES, WORKFLOW_HOOK_EVENTS, WORKFLOW_INTEGRITY_CHECKS, WORKFLOW_MUTATION_TIERS, WORKFLOW_OUTPUT_KINDS, WORKFLOW_PROOF_ARTIFACT_KINDS, WORKFLOW_RUNTIME_SCHEMA_VERSION, WORKFLOW_RUN_STATUSES, WORKFLOW_STAFFING_HINTS, WORKFLOW_TRIGGER_KINDS, WORKTREE_PHASES, clearRegisteredCustomTools, createAdminClient, createAnswersClient, createAudiencesClient, createAuditClient, createBeliefsClient, createContextClient, createDecisionsClient, createGatewayRequestClient, createGraphClient, createHarnessClient, createIdentityClient, createLearningClient, createLucernClient, createMcpParityClient, createOntologyClient, createPacksClient, createPolicyClient, createReportsClient, createSchemaClient, createTopicsClient, createWorkflowClient, getControlObjectOwnershipCase, getRegisteredCustomTool, invokeRegisteredCustomTool, listControlObjectOwnershipCases, listRegisteredCustomTools, randomIdempotencyKey, registerCustomTool, toQueryString, unregisterCustomTool, validateGitSemantics };
8892
+ export { ACTIVATE_WORKTREE, ADD_EVIDENCE, ADD_WORKTREE, ANSWER_QUESTION, APPLY_LENS_TO_TOPIC, APPLY_ONTOLOGY, ARCHIVE_BELIEF, ARCHIVE_ONTOLOGY, ARCHIVE_QUESTION, BELIEF_STATUSES, BISECT_CONFIDENCE, CANONICAL_WORKFLOW_DEFINITIONS, CHECK_PERMISSION, COMPILE_CONTEXT, COMPLETE_TASK, CONFIDENCE_TRIGGERS, CONTRADICTION_SEVERITIES, CONTRADICTION_STATUSES, CONTROL_OBJECT_BLAST_RADII, CONTROL_OBJECT_EDIT_SURFACES, CONTROL_OBJECT_INHERITANCE_RULES, CONTROL_OBJECT_KINDS, CONTROL_OBJECT_OWNERSHIP_CONTRACT, CONTROL_OBJECT_OWNERSHIP_MATRIX, CONTROL_OBJECT_OWNERSHIP_ROWS, CONTROL_OBJECT_OWNER_SCOPES, CREATE_ANSWER, CREATE_BELIEF, CREATE_EDGE, CREATE_EPISTEMIC_CONTRACT, CREATE_EVIDENCE, CREATE_LENS, CREATE_ONTOLOGY, CREATE_ONTOLOGY_VERSION, CREATE_QUESTION, CREATE_TASK, CREATE_TOPIC, CustomToolRegistryError, DEFAULT_TIER_APPROVAL_MODE, DEFAULT_WORKFLOW_AUTO_FIX_POLICY, DEFEAT_TYPES, DEPRECATE_ONTOLOGY_VERSION, DETECT_CONFIRMATION_BIAS, EDGE_TYPES, EPISTEMIC_EDGE_TYPES, EPISTEMIC_LAYERS, EXECUTE_DEEP_RESEARCH, FILTER_BY_PERMISSION, FIND_CONTRADICTIONS, FIND_MISSING_QUESTIONS, FLAG_CONTRADICTION, FORK_BELIEF, FORK_REASONS, GET_ANSWER, GET_AUDIT_TRAIL, GET_BELIEF, GET_CHANGE_HISTORY, GET_CODE_CONTEXT, GET_CONFIDENCE_HISTORY, GET_EVIDENCE, GET_FAILURE_LOG, GET_FALSIFICATION_QUESTIONS, GET_GRAPH_GAPS, GET_GRAPH_NEIGHBORHOOD, GET_GRAPH_STRUCTURE_ANALYSIS, GET_HIGH_PRIORITY_QUESTIONS, GET_OBSERVATION_CONTEXT, GET_ONTOLOGY, GET_QUESTION, GET_TOPIC, GET_TOPIC_COVERAGE, GET_TOPIC_TREE, GIT_SEMANTIC_REQUIRED_TOOLS, IDENTITY_WHOAMI, INGEST_OBSERVATION, JUDGMENT_TYPES, LINK_EVIDENCE, LINK_EVIDENCE_TO_BELIEF, LINK_EVIDENCE_TO_QUESTION, LIST_ALL_WORKTREES, LIST_BELIEFS, LIST_EVIDENCE, LIST_LENSES, LIST_ONTOLOGIES, LIST_QUESTIONS, LIST_TASKS, LIST_TOPICS, LIST_WORKTREES, LUCERN_SDK_VERSION, LucernApiError, MANAGE_WRITE_POLICY, MATCH_ENTITY_TYPE, MCP_TOOL_CONTRACTS, MERGE, MERGE_OUTCOMES, MODULATE_CONFIDENCE, MORNING_BRIEF_WORKFLOW_ID, NIGHTLY_RECONCILIATION_WORKFLOW_ID, OPEN_PULL_REQUEST, PUBLISH_ONTOLOGY_VERSION, PUSH, QUERY_LINEAGE, REASONING_METHODS, RECORD_ATTEMPT, RECORD_JUDGMENT, REFINE_BELIEF, REFINE_QUESTION, REMOVE_LENS_FROM_TOPIC, RESOLVE_EFFECTIVE_ONTOLOGY, SEARCH_BELIEFS, SEARCH_EVIDENCE, SEARCH_RESOURCES, SEARCH_SOURCES, STRUCTURAL_EDGE_TYPES, TRACE_ENTITY_IMPACT, TRAVERSE_GRAPH, UPDATE_ONTOLOGY, UPDATE_QUESTION_STATUS, UPDATE_TASK, UPDATE_TOPIC, UPDATE_WORKTREE_METADATA, UPDATE_WORKTREE_TARGETS, WORKFLOW_ACTION_KINDS, WORKFLOW_APPROVAL_MODES, WORKFLOW_AUTO_FIX_MODES, WORKFLOW_HOOK_EVENTS, WORKFLOW_INTEGRITY_CHECKS, WORKFLOW_MUTATION_TIERS, WORKFLOW_OUTPUT_KINDS, WORKFLOW_PROOF_ARTIFACT_KINDS, WORKFLOW_RUNTIME_SCHEMA_VERSION, WORKFLOW_RUN_STATUSES, WORKFLOW_STAFFING_HINTS, WORKFLOW_TRIGGER_KINDS, WORKTREE_PHASES, clearRegisteredCustomTools, createAdminClient, createAnswersClient, createAudiencesClient, createAuditClient, createBeliefsClient, createContextClient, createDecisionsClient, createGatewayRequestClient, createGraphClient, createHarnessClient, createIdentityClient, createLearningClient, createLucernClient, createMcpParityClient, createOntologyClient, createPacksClient, createPolicyClient, createReportsClient, createSchemaClient, createTopicsClient, createWorkflowClient, getControlObjectOwnershipCase, getRegisteredCustomTool, invokeRegisteredCustomTool, listControlObjectOwnershipCases, listRegisteredCustomTools, randomIdempotencyKey, registerCustomTool, toQueryString, unregisterCustomTool, validateGitSemantics };
8965
8893
  //# sourceMappingURL=index.js.map
8966
8894
  //# sourceMappingURL=index.js.map