@lucern/contracts 1.0.12 → 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.
Files changed (81) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/function-registry/beliefs.js +48 -11
  3. package/dist/function-registry/beliefs.js.map +1 -1
  4. package/dist/function-registry/coding.js +46 -9
  5. package/dist/function-registry/coding.js.map +1 -1
  6. package/dist/function-registry/context.js +46 -9
  7. package/dist/function-registry/context.js.map +1 -1
  8. package/dist/function-registry/contracts.js +46 -9
  9. package/dist/function-registry/contracts.js.map +1 -1
  10. package/dist/function-registry/coordination.js +46 -9
  11. package/dist/function-registry/coordination.js.map +1 -1
  12. package/dist/function-registry/edges.js +46 -9
  13. package/dist/function-registry/edges.js.map +1 -1
  14. package/dist/function-registry/evidence.js +166 -17
  15. package/dist/function-registry/evidence.js.map +1 -1
  16. package/dist/function-registry/graph.js +46 -9
  17. package/dist/function-registry/graph.js.map +1 -1
  18. package/dist/function-registry/helpers.js +46 -9
  19. package/dist/function-registry/helpers.js.map +1 -1
  20. package/dist/function-registry/identity.js +46 -9
  21. package/dist/function-registry/identity.js.map +1 -1
  22. package/dist/function-registry/index.js +46 -9
  23. package/dist/function-registry/index.js.map +1 -1
  24. package/dist/function-registry/judgments.js +46 -9
  25. package/dist/function-registry/judgments.js.map +1 -1
  26. package/dist/function-registry/legacy.js +46 -9
  27. package/dist/function-registry/legacy.js.map +1 -1
  28. package/dist/function-registry/lenses.js +46 -9
  29. package/dist/function-registry/lenses.js.map +1 -1
  30. package/dist/function-registry/manifest.d.ts +10 -4
  31. package/dist/function-registry/manifest.js +13 -1
  32. package/dist/function-registry/manifest.js.map +1 -1
  33. package/dist/function-registry/nodes.js +46 -9
  34. package/dist/function-registry/nodes.js.map +1 -1
  35. package/dist/function-registry/ontologies.js +46 -9
  36. package/dist/function-registry/ontologies.js.map +1 -1
  37. package/dist/function-registry/pipeline.js +46 -9
  38. package/dist/function-registry/pipeline.js.map +1 -1
  39. package/dist/function-registry/questions.js +46 -9
  40. package/dist/function-registry/questions.js.map +1 -1
  41. package/dist/function-registry/tasks.js +46 -9
  42. package/dist/function-registry/tasks.js.map +1 -1
  43. package/dist/function-registry/topics.js +46 -9
  44. package/dist/function-registry/topics.js.map +1 -1
  45. package/dist/function-registry/worktrees.js +46 -9
  46. package/dist/function-registry/worktrees.js.map +1 -1
  47. package/dist/index.js +111 -11
  48. package/dist/index.js.map +1 -1
  49. package/dist/manifests/invariants/index.js +24 -5
  50. package/dist/manifests/invariants/index.js.map +1 -1
  51. package/dist/manifests/invariants/inv-1-beliefs-append-only.js +24 -5
  52. package/dist/manifests/invariants/inv-1-beliefs-append-only.js.map +1 -1
  53. package/dist/projections/check-convex-args-shape.js +78 -3
  54. package/dist/projections/check-convex-args-shape.js.map +1 -1
  55. package/dist/projections/create-evidence.projection.d.ts +168 -0
  56. package/dist/projections/create-evidence.projection.js +78 -3
  57. package/dist/projections/create-evidence.projection.js.map +1 -1
  58. package/dist/projections/index.d.ts +28 -0
  59. package/dist/projections/index.js +78 -3
  60. package/dist/projections/index.js.map +1 -1
  61. package/dist/proof-attestation.json +1 -1
  62. package/dist/sdk-methods.contract.d.ts +3 -2
  63. package/dist/sdk-tools.contract.js +33 -8
  64. package/dist/sdk-tools.contract.js.map +1 -1
  65. package/dist/sdk-tools.contract.registry.js +33 -8
  66. package/dist/sdk-tools.contract.registry.js.map +1 -1
  67. package/dist/sdk-tools.contract.values.js +33 -8
  68. package/dist/sdk-tools.contract.values.js.map +1 -1
  69. package/dist/tool-contracts.context-orientation.js +2 -1
  70. package/dist/tool-contracts.context-orientation.js.map +1 -1
  71. package/dist/tool-contracts.intelligence-evidence.js +26 -4
  72. package/dist/tool-contracts.intelligence-evidence.js.map +1 -1
  73. package/dist/tool-contracts.js +33 -8
  74. package/dist/tool-contracts.js.map +1 -1
  75. package/dist/tool-contracts.lifecycle.js +2 -2
  76. package/dist/tool-contracts.lifecycle.js.map +1 -1
  77. package/dist/tool-contracts.questions-listing.js +3 -1
  78. package/dist/tool-contracts.questions-listing.js.map +1 -1
  79. package/dist/tool-contracts.values.js +33 -8
  80. package/dist/tool-contracts.values.js.map +1 -1
  81. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -42,3 +42,7 @@ All notable changes to `@lucern/contracts` are tracked in this repository.
42
42
 
43
43
  ## [1.0.12] - 2026-05-31
44
44
  - Release notes pending.
45
+
46
+ ## [1.0.13] - 2026-06-01
47
+ - Publishes the evidence-relation contract, MCP output-schema metadata, and
48
+ retrieval/synthesis receipt fields used by the Campaign 1 closeout surfaces.
@@ -6,7 +6,7 @@ import { v } from 'convex/values';
6
6
  // src/tool-contracts.lifecycle.ts
7
7
  var CREATE_BELIEF = {
8
8
  name: "create_belief",
9
- description: "Commit a new belief (knowledge unit) to the reasoning graph. Like `git commit` \u2014 creates an atomic, traceable knowledge object with a prior. Creation stores the vacuous opinion `(0, 0, 1, a)`; use modulate_confidence to record the first evidential update.",
9
+ description: "Commit a new belief (knowledge unit) to the reasoning graph. Like `git commit` \u2014 creates an atomic, traceable knowledge object with a prior. Creation stores the vacuous opinion `(0, 0, 1, a)`; attach supporting or contradicting evidence with create_evidence or link_evidence_to_belief to record evidential updates.",
10
10
  parameters: {
11
11
  canonicalText: {
12
12
  type: "string",
@@ -92,7 +92,7 @@ var REFINE_BELIEF = {
92
92
  };
93
93
  var MODULATE_CONFIDENCE = {
94
94
  name: "modulate_confidence",
95
- description: "Record a confidence change for a belief. Like `git commit` to the credence log \u2014 an atomic, append-only write. Each modulation is a new entry in the history, not an overwrite. Scoring happens via merge; this tool records the individual data points. Pass the full subjective-logic tuple (`belief`, `disbelief`, `uncertainty`, `baseRate`) directly. If a caller only has a scalar probability, use `@lucern/sdk` helpers `opinionFromBaseRate`, `opinionFromDogmatic`, or `opinionFromProjected` to name the intended interpretation before calling this tool. Every modulation must cite a truth-bearing artifact: triggeringEvidenceId, triggeringQuestionId, triggeringAnswerId, triggeringContradictionId, or triggeringWorktreeId. Triggers: evidence_added, evidence_removed, contradiction_detected, contradiction_resolved, agent_assessment, worktree_outcome, worktree_completed, fusion, discount, deduction.",
95
+ description: "Internal-only subjective-logic ledger append. Like `git commit` to the credence log for the scoring engine \u2014 never an operator-facing way to assert confidence. Agents, SDK callers, CLI users, and MCP clients must instead create or link evidence with `evidenceRelation: supports|contradicts`; the kernel derives the next opinion from that evidence. This compatibility primitive is reserved for governed system scoring paths that already hold a full subjective-logic tuple and truth-bearing provenance.",
96
96
  parameters: {
97
97
  nodeId: { type: "string", description: "The belief to score" },
98
98
  belief: {
@@ -1700,10 +1700,11 @@ var LUCERN_ORIENT = {
1700
1700
  workflow: "array - recommended branch -> investigate -> prove gate -> merge workflow",
1701
1701
  grammarMap: "array - primitive-to-git-analogy map for topics, campaigns, worktrees, beliefs, questions, evidence, edges, contradictions, and gates",
1702
1702
  firstMoves: "array - recommended first tools for a cold-start agent",
1703
- receiptRules: "array - how to interpret candidateCounts, broadening, coverageWarning, and noDefaultGlobalScan",
1703
+ receiptRules: "array - how to interpret candidateCounts, broadening, coverageWarning, narrativeCoverage, synthesisLints, and noDefaultGlobalScan",
1704
1704
  safetyRules: "array - mutation and completion rules that preserve reasoning lineage",
1705
1705
  toolMap: "array | undefined - situation-to-tool routing map when requested",
1706
1706
  examples: "array | undefined - concrete tool-call examples when requested",
1707
+ futureCapabilities: "array | undefined - exemplar, gauntlet, trace-corpus, and native-model-training capabilities when requested",
1707
1708
  suggestedNextCalls: "array - safe next tool calls for the current situation"
1708
1709
  }
1709
1710
  },
@@ -1866,7 +1867,7 @@ var SEARCH_EVIDENCE = {
1866
1867
  };
1867
1868
  var CREATE_EVIDENCE = {
1868
1869
  name: "create_evidence",
1869
- description: "Commit evidence to the reasoning graph. Like `git commit` \u2014 creates a traceable evidence record with canonical public IDs. Optionally links the evidence to a belief or question in the same operation.",
1870
+ description: "Commit evidence to the reasoning graph. Like `git commit` \u2014 creates a traceable evidence record with canonical public IDs. Optionally links the evidence to a belief or question in the same operation. When evidence bears on beliefs, state whether it supports or contradicts; SL confidence is derived from these evidence relations.",
1870
1871
  parameters: {
1871
1872
  topicId: { type: "string", description: "Topic scope" },
1872
1873
  text: { type: "string", description: "Canonical evidence text" },
@@ -1877,7 +1878,20 @@ var CREATE_EVIDENCE = {
1877
1878
  },
1878
1879
  weight: {
1879
1880
  type: "number",
1880
- description: "Support weight: -1.0 (contradicts) to +1.0 (supports)"
1881
+ description: "Optional support weight: -1.0 (contradicts) to +1.0 (supports). If omitted, evidenceRelation + confidence determine the weight."
1882
+ },
1883
+ evidenceRelation: {
1884
+ type: "string",
1885
+ enum: ["supports", "contradicts"],
1886
+ description: "Canonical relation to targetId/linkedBeliefNodeId. Prefer this over relying on signed weight inference."
1887
+ },
1888
+ confidence: {
1889
+ type: "number",
1890
+ description: "Confidence in the evidence relation, 0.0 to 1.0"
1891
+ },
1892
+ beliefRelations: {
1893
+ type: "array",
1894
+ description: "Optional additional belief relations: [{ beliefId|beliefNodeId|targetId, evidenceRelation|relation, confidence?, weight?, rationale? }]. Use one evidence node with multiple relations when the same fact supports or contradicts several beliefs."
1881
1895
  },
1882
1896
  metadata: {
1883
1897
  type: "object",
@@ -1987,7 +2001,7 @@ var LINK_EVIDENCE = {
1987
2001
  };
1988
2002
  var LINK_EVIDENCE_TO_BELIEF = {
1989
2003
  name: "link_evidence_to_belief",
1990
- description: "Link evidence to a belief with a support weight. Like `git add` \u2014 stages evidence in support of (or against) a belief. The weight ranges from -1.0 (strongly contradicts) to +1.0 (strongly supports).",
2004
+ description: "Link evidence to a belief with a support weight. Like `git add` \u2014 stages evidence in support of (or against) a belief. The weight ranges from -1.0 (strongly contradicts) to +1.0 (strongly supports). This relation appends to the SL confidence ledger; do not hand-write confidence separately.",
1991
2005
  parameters: {
1992
2006
  evidenceId: { type: "string", description: "The evidence node ID" },
1993
2007
  beliefId: { type: "string", description: "The belief node ID" },
@@ -1995,9 +2009,18 @@ var LINK_EVIDENCE_TO_BELIEF = {
1995
2009
  type: "number",
1996
2010
  description: "Support weight: -1.0 (contradicts) to +1.0 (supports)"
1997
2011
  },
2012
+ evidenceRelation: {
2013
+ type: "string",
2014
+ enum: ["supports", "contradicts"],
2015
+ description: "Canonical semantic relation. If omitted, the sign of weight is used."
2016
+ },
2017
+ confidence: {
2018
+ type: "number",
2019
+ description: "Confidence in this evidence-to-belief relation, 0.0 to 1.0"
2020
+ },
1998
2021
  rationale: { type: "string", description: "Why this evidence is relevant" }
1999
2022
  },
2000
- required: ["evidenceId", "beliefId", "weight"],
2023
+ required: ["evidenceId", "beliefId"],
2001
2024
  response: {
2002
2025
  description: "The created edge linking evidence to belief",
2003
2026
  fields: {
@@ -2825,7 +2848,9 @@ var COMPILE_CONTEXT = {
2825
2848
  recentEvidence: "array \u2014 recent evidence ranked for this query",
2826
2849
  contradictions: "array \u2014 unresolved contradiction records",
2827
2850
  relatedEntities: "array | undefined \u2014 ranked ontological entities in scope",
2828
- contextNarrative: "array \u2014 guidance for prompt assembly",
2851
+ contextNarrative: "array \u2014 ordered synthesis blocks with kind/text, starting with executive_summary and canonical narrative blocks before raw objects",
2852
+ retrievalReceipt: "object \u2014 candidateCounts, coverageWarning, narrativeCoverage, synthesisLints, and suggestedNextActions",
2853
+ narrativeCoverage: "object \u2014 recordsSynthesized, recordsNamed, recordsOmitted, and blocksEmitted for the narrative",
2829
2854
  injectionPolicy: "object \u2014 token-budgeted section selections",
2830
2855
  diagnostics: "object \u2014 scoring and utilization telemetry"
2831
2856
  }
@@ -4773,6 +4798,12 @@ var internalSystem = {
4773
4798
  mcp: "internal",
4774
4799
  cli: "internal"
4775
4800
  };
4801
+ var internalSdkRestOnly = {
4802
+ sdk: "internal",
4803
+ rest: "internal",
4804
+ mcp: "none",
4805
+ cli: "none"
4806
+ };
4776
4807
  var publicWithInternalMcp = {
4777
4808
  sdk: "public",
4778
4809
  rest: "public",
@@ -4822,7 +4853,6 @@ var MCP_CORE_OPERATION_NAMES = [
4822
4853
  "get_belief",
4823
4854
  "list_beliefs",
4824
4855
  "refine_belief",
4825
- "modulate_confidence",
4826
4856
  "fork_belief",
4827
4857
  "archive_belief",
4828
4858
  "search_beliefs",
@@ -5090,6 +5120,13 @@ var LUCERN_OPERATION_MANIFEST = {
5090
5120
  internalSystem,
5091
5121
  "Lucern system/background operation. Available to platform code paths, hidden from public MCP discovery."
5092
5122
  ),
5123
+ modulate_confidence: {
5124
+ name: "modulate_confidence",
5125
+ surfaceClass: "platform_internal",
5126
+ surfaceIntent: "system",
5127
+ surfaces: internalSdkRestOnly,
5128
+ rationale: "Internal SL ledger append primitive. Public callers attach evidence or contradiction relations; confidence is derived algorithmically."
5129
+ },
5093
5130
  ...entries(
5094
5131
  LEGACY_COMPAT_OPERATION_NAMES,
5095
5132
  "legacy_compat",
@@ -5745,11 +5782,11 @@ var beliefsContracts = [
5745
5782
  name: "modulate_confidence",
5746
5783
  kind: "mutation",
5747
5784
  domain: "beliefs",
5748
- surfaceClass: "platform_public",
5785
+ surfaceClass: "platform_internal",
5749
5786
  path: "/beliefs/confidence",
5750
5787
  sdkNamespace: "beliefs",
5751
5788
  sdkMethod: "modulateConfidence",
5752
- summary: "Append a belief confidence modulation.",
5789
+ summary: "Internal SL ledger append. Public callers should attach evidence or contradiction relations instead.",
5753
5790
  convex: {
5754
5791
  module: "beliefs",
5755
5792
  functionName: "modulateConfidence",