@lucern/graph-primitives 1.0.28 → 1.0.29

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 (52) hide show
  1. package/dist/contradictions.js +3 -3
  2. package/dist/contradictions.js.map +1 -1
  3. package/dist/entityLifecycle.js +7 -39
  4. package/dist/entityLifecycle.js.map +1 -1
  5. package/dist/epistemicBeliefs.admin.js +6 -42
  6. package/dist/epistemicBeliefs.admin.js.map +1 -1
  7. package/dist/epistemicBeliefs.backfills.js +2 -21
  8. package/dist/epistemicBeliefs.backfills.js.map +1 -1
  9. package/dist/epistemicBeliefs.confidence.d.ts +1 -0
  10. package/dist/epistemicBeliefs.confidence.js +4 -40
  11. package/dist/epistemicBeliefs.confidence.js.map +1 -1
  12. package/dist/epistemicBeliefs.core.js +6 -44
  13. package/dist/epistemicBeliefs.core.js.map +1 -1
  14. package/dist/epistemicBeliefs.d.ts +1 -0
  15. package/dist/epistemicBeliefs.forkEvidence.js +2 -22
  16. package/dist/epistemicBeliefs.forkEvidence.js.map +1 -1
  17. package/dist/epistemicBeliefs.helpers.d.ts +3 -27
  18. package/dist/epistemicBeliefs.helpers.js +4 -40
  19. package/dist/epistemicBeliefs.helpers.js.map +1 -1
  20. package/dist/epistemicBeliefs.internal.js +2 -22
  21. package/dist/epistemicBeliefs.internal.js.map +1 -1
  22. package/dist/epistemicBeliefs.js +17 -55
  23. package/dist/epistemicBeliefs.js.map +1 -1
  24. package/dist/epistemicBeliefs.lifecycle.js +7 -45
  25. package/dist/epistemicBeliefs.lifecycle.js.map +1 -1
  26. package/dist/epistemicBeliefs.links.js +7 -43
  27. package/dist/epistemicBeliefs.links.js.map +1 -1
  28. package/dist/epistemicContracts.evaluators.js +4 -40
  29. package/dist/epistemicContracts.evaluators.js.map +1 -1
  30. package/dist/epistemicContracts.handlers.js +4 -40
  31. package/dist/epistemicContracts.handlers.js.map +1 -1
  32. package/dist/epistemicContracts.js +4 -40
  33. package/dist/epistemicContracts.js.map +1 -1
  34. package/dist/epistemicEdges.js +4 -4
  35. package/dist/epistemicEdges.js.map +1 -1
  36. package/dist/epistemicEdges.mutations.js +4 -4
  37. package/dist/epistemicEdges.mutations.js.map +1 -1
  38. package/dist/epistemicEvidence.js +5 -5
  39. package/dist/epistemicEvidence.js.map +1 -1
  40. package/dist/epistemicEvidenceMutations.js +5 -5
  41. package/dist/epistemicEvidenceMutations.js.map +1 -1
  42. package/dist/epistemicNodes.js +4 -4
  43. package/dist/epistemicNodes.js.map +1 -1
  44. package/dist/epistemicNodes.mutations.js +4 -4
  45. package/dist/epistemicNodes.mutations.js.map +1 -1
  46. package/dist/epistemicSources.js +2 -2
  47. package/dist/epistemicSources.js.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.js +50 -121
  50. package/dist/index.js.map +1 -1
  51. package/dist/proof-attestation.json +1 -1
  52. package/package.json +4 -4
@@ -1,10 +1,11 @@
1
- import { v, ConvexError } from 'convex/values';
1
+ import { v } from 'convex/values';
2
+ import { throwStructuredMutationError } from '@lucern/access-control/structuredMutationError';
2
3
  import { normalizeTupleContradictionPolicy, mkOpinion, conditionalDeduction, project, dampedDependencyCascade, hasProjectedOpinionChanged, confidenceFromSL, detectTupleContradiction, evaluateTupleContradictionTransition, trustDiscount, applyNegativeSupport, cumulativeFusion, applyNegativeEvidence, readOpinionFromRecord, deriveContractModulationPlan, deriveContractStatus, parseEvidentialEvaluatorConfig, compareMetricValue, buildEvidentialRationale, parseMetricCheckerConfig, getEvaluatorInputRecord, pickFiniteNumber, resolveComparisonResult, buildComparisonRationale, parseReferenceCheckCounterConfig, parseTemporalDeadlineConfig, parseMarketIndexComparatorConfig } from '@lucern/confidence';
3
- import { checkProjectAccess } from '@lucern/access-control/access';
4
4
  import '@lucern/access-control/audience';
5
5
  import '@lucern/access-control/auth';
6
6
  import { componentsGeneric, internalMutationGeneric, anyApi } from 'convex/server';
7
7
  import '@lucern/contracts/schema-helpers/spine/tables/epistemicNodes';
8
+ import { requireScopeWriteAccess } from '@lucern/access-control/access';
8
9
  import { permissiveReturn } from '@lucern/contracts/schema-helpers/validators';
9
10
 
10
11
  // src/epistemicBeliefs.helpers.ts
@@ -506,26 +507,6 @@ var DEFAULT_CONFIDENCE_POLICY = {
506
507
  scoringMode: "after_worktree",
507
508
  tupleContradiction: normalizeTupleContradictionPolicy()
508
509
  };
509
- function throwStructuredMutationError(args) {
510
- const data = {
511
- structuredMutationError: true,
512
- message: args.message,
513
- status: args.status,
514
- code: args.code,
515
- invariantCode: args.invariantCode,
516
- suggestion: args.suggestion,
517
- details: args.details
518
- };
519
- const error = new ConvexError(
520
- data
521
- );
522
- error.status = args.status;
523
- error.code = args.code;
524
- error.invariantCode = args.invariantCode;
525
- error.suggestion = args.suggestion;
526
- error.details = args.details;
527
- throw error;
528
- }
529
510
  function buildBeliefConfidenceRow(args) {
530
511
  return {
531
512
  beliefId: args.beliefId,
@@ -628,23 +609,6 @@ async function getActiveConfidencePolicy(ctx) {
628
609
  return DEFAULT_CONFIDENCE_POLICY;
629
610
  }
630
611
  }
631
- async function requireProjectWriteAccess(ctx, projectId, userId) {
632
- const hasAccess = await checkProjectAccess(
633
- ctx,
634
- projectId,
635
- userId
636
- );
637
- if (!hasAccess) {
638
- throwStructuredMutationError({
639
- message: `Project write access denied for topic ${projectId}.`,
640
- status: 403,
641
- code: "PROJECT_ACCESS_DENIED",
642
- invariantCode: "policy.scope_required",
643
- suggestion: "The acting principal lacks project-write access to this topic. Request a topic grant (or, if the principal created this topic, run the creator-grant backfill) and retry.",
644
- details: { topicId: projectId, principalId: userId }
645
- });
646
- }
647
- }
648
612
 
649
613
  // src/edges/contains.ts
650
614
  var containsPropagationSpec = {
@@ -1090,7 +1054,7 @@ async function applyBeliefConfidenceChange(ctx, args) {
1090
1054
  details: { nodeId: args.nodeId }
1091
1055
  });
1092
1056
  }
1093
- await requireProjectWriteAccess(
1057
+ await requireScopeWriteAccess(
1094
1058
  ctx,
1095
1059
  node.projectId,
1096
1060
  args.authenticatedUserId