@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, deriveContractModulationPlan, deriveContractStatus, trustDiscount, applyNegativeSupport, cumulativeFusion, applyNegativeEvidence, readOpinionFromRecord, parseEvidentialEvaluatorConfig, compareMetricValue, buildEvidentialRationale, parseMetricCheckerConfig, getEvaluatorInputRecord, pickFiniteNumber, resolveComparisonResult, buildComparisonRationale, parseReferenceCheckCounterConfig, parseTemporalDeadlineConfig, parseMarketIndexComparatorConfig, createInheritedContractRecord } from '@lucern/confidence';
3
- import { checkProjectAccess } from '@lucern/access-control/access';
4
4
  import '@lucern/access-control/audience';
5
5
  import { getCurrentUserId } from '@lucern/access-control/auth';
6
6
  import { componentsGeneric, internalMutationGeneric, anyApi, queryGeneric, mutationGeneric } from 'convex/server';
7
7
  import '@lucern/contracts/schema-helpers/spine/tables/epistemicNodes';
8
+ import { requireScopeWriteAccess, checkProjectAccess } from '@lucern/access-control/access';
8
9
  import { permissiveReturn } from '@lucern/contracts/schema-helpers/validators';
9
10
  import { generateGlobalId } from '@lucern/contracts/ids';
10
11
 
@@ -509,26 +510,6 @@ var DEFAULT_CONFIDENCE_POLICY = {
509
510
  scoringMode: "after_worktree",
510
511
  tupleContradiction: normalizeTupleContradictionPolicy()
511
512
  };
512
- function throwStructuredMutationError(args) {
513
- const data = {
514
- structuredMutationError: true,
515
- message: args.message,
516
- status: args.status,
517
- code: args.code,
518
- invariantCode: args.invariantCode,
519
- suggestion: args.suggestion,
520
- details: args.details
521
- };
522
- const error = new ConvexError(
523
- data
524
- );
525
- error.status = args.status;
526
- error.code = args.code;
527
- error.invariantCode = args.invariantCode;
528
- error.suggestion = args.suggestion;
529
- error.details = args.details;
530
- throw error;
531
- }
532
513
  function buildBeliefConfidenceRow(args) {
533
514
  return {
534
515
  beliefId: args.beliefId,
@@ -631,23 +612,6 @@ async function getActiveConfidencePolicy(ctx) {
631
612
  return DEFAULT_CONFIDENCE_POLICY;
632
613
  }
633
614
  }
634
- async function requireProjectWriteAccess(ctx, projectId, userId) {
635
- const hasAccess = await checkProjectAccess(
636
- ctx,
637
- projectId,
638
- userId
639
- );
640
- if (!hasAccess) {
641
- throwStructuredMutationError({
642
- message: `Project write access denied for topic ${projectId}.`,
643
- status: 403,
644
- code: "PROJECT_ACCESS_DENIED",
645
- invariantCode: "policy.scope_required",
646
- 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.",
647
- details: { topicId: projectId, principalId: userId }
648
- });
649
- }
650
- }
651
615
 
652
616
  // src/edges/contains.ts
653
617
  var containsPropagationSpec = {
@@ -1093,7 +1057,7 @@ async function applyBeliefConfidenceChange(ctx, args) {
1093
1057
  details: { nodeId: args.nodeId }
1094
1058
  });
1095
1059
  }
1096
- await requireProjectWriteAccess(
1060
+ await requireScopeWriteAccess(
1097
1061
  ctx,
1098
1062
  node.projectId,
1099
1063
  args.authenticatedUserId