@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.
Files changed (123) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/function-registry/beliefs.d.ts +1 -1
  3. package/dist/function-registry/beliefs.js +126 -10
  4. package/dist/function-registry/beliefs.js.map +1 -1
  5. package/dist/function-registry/coding.d.ts +1 -1
  6. package/dist/function-registry/coding.js +124 -8
  7. package/dist/function-registry/coding.js.map +1 -1
  8. package/dist/function-registry/context.d.ts +44 -4
  9. package/dist/function-registry/context.js +146 -8
  10. package/dist/function-registry/context.js.map +1 -1
  11. package/dist/function-registry/contracts.d.ts +1 -1
  12. package/dist/function-registry/contracts.js +124 -8
  13. package/dist/function-registry/contracts.js.map +1 -1
  14. package/dist/function-registry/coordination.d.ts +1 -1
  15. package/dist/function-registry/coordination.js +124 -8
  16. package/dist/function-registry/coordination.js.map +1 -1
  17. package/dist/function-registry/edges.d.ts +1 -1
  18. package/dist/function-registry/edges.js +124 -8
  19. package/dist/function-registry/edges.js.map +1 -1
  20. package/dist/function-registry/evidence.d.ts +1 -1
  21. package/dist/function-registry/evidence.js +309 -40
  22. package/dist/function-registry/evidence.js.map +1 -1
  23. package/dist/function-registry/graph.d.ts +1 -1
  24. package/dist/function-registry/graph.js +126 -12
  25. package/dist/function-registry/graph.js.map +1 -1
  26. package/dist/function-registry/helpers.js +124 -8
  27. package/dist/function-registry/helpers.js.map +1 -1
  28. package/dist/function-registry/identity.d.ts +1 -1
  29. package/dist/function-registry/identity.js +124 -8
  30. package/dist/function-registry/identity.js.map +1 -1
  31. package/dist/function-registry/index.js +124 -8
  32. package/dist/function-registry/index.js.map +1 -1
  33. package/dist/function-registry/judgments.d.ts +1 -1
  34. package/dist/function-registry/judgments.js +124 -8
  35. package/dist/function-registry/judgments.js.map +1 -1
  36. package/dist/function-registry/legacy.d.ts +1 -1
  37. package/dist/function-registry/legacy.js +124 -8
  38. package/dist/function-registry/legacy.js.map +1 -1
  39. package/dist/function-registry/lenses.d.ts +1 -1
  40. package/dist/function-registry/lenses.js +124 -8
  41. package/dist/function-registry/lenses.js.map +1 -1
  42. package/dist/function-registry/manifest.d.ts +10 -4
  43. package/dist/function-registry/manifest.js +14 -1
  44. package/dist/function-registry/manifest.js.map +1 -1
  45. package/dist/function-registry/nodes.d.ts +1 -1
  46. package/dist/function-registry/nodes.js +124 -8
  47. package/dist/function-registry/nodes.js.map +1 -1
  48. package/dist/function-registry/ontologies.d.ts +1 -1
  49. package/dist/function-registry/ontologies.js +124 -8
  50. package/dist/function-registry/ontologies.js.map +1 -1
  51. package/dist/function-registry/pipeline.d.ts +1 -1
  52. package/dist/function-registry/pipeline.js +124 -8
  53. package/dist/function-registry/pipeline.js.map +1 -1
  54. package/dist/function-registry/questions.d.ts +1 -1
  55. package/dist/function-registry/questions.js +124 -8
  56. package/dist/function-registry/questions.js.map +1 -1
  57. package/dist/function-registry/tasks.d.ts +1 -1
  58. package/dist/function-registry/tasks.js +124 -8
  59. package/dist/function-registry/tasks.js.map +1 -1
  60. package/dist/function-registry/topics.d.ts +1 -1
  61. package/dist/function-registry/topics.js +126 -12
  62. package/dist/function-registry/topics.js.map +1 -1
  63. package/dist/function-registry/types.d.ts +1 -1
  64. package/dist/function-registry/worktrees.d.ts +1 -1
  65. package/dist/function-registry/worktrees.js +124 -8
  66. package/dist/function-registry/worktrees.js.map +1 -1
  67. package/dist/generated/infisicalRuntimeEnv.js +536 -1
  68. package/dist/generated/infisicalRuntimeEnv.js.map +1 -1
  69. package/dist/index.d.ts +2 -1
  70. package/dist/index.js +941 -14
  71. package/dist/index.js.map +1 -1
  72. package/dist/infisical-runtime.base.d.ts +42 -1
  73. package/dist/infisical-runtime.base.js +50 -1
  74. package/dist/infisical-runtime.base.js.map +1 -1
  75. package/dist/infisical-runtime.contract.d.ts +102 -0
  76. package/dist/infisical-runtime.contract.js +170 -1
  77. package/dist/infisical-runtime.contract.js.map +1 -1
  78. package/dist/infisical-runtime.platform-secrets.d.ts +102 -0
  79. package/dist/infisical-runtime.platform-secrets.js +120 -0
  80. package/dist/infisical-runtime.platform-secrets.js.map +1 -1
  81. package/dist/infisical-runtime.tenant-secrets.js.map +1 -1
  82. package/dist/manifests/infisical-runtime-manifest.d.ts +144 -1
  83. package/dist/manifests/infisical-runtime-manifest.js +170 -1
  84. package/dist/manifests/infisical-runtime-manifest.js.map +1 -1
  85. package/dist/manifests/invariants/index.js +24 -5
  86. package/dist/manifests/invariants/index.js.map +1 -1
  87. package/dist/manifests/invariants/inv-1-beliefs-append-only.js +24 -5
  88. package/dist/manifests/invariants/inv-1-beliefs-append-only.js.map +1 -1
  89. package/dist/projections/check-convex-args-shape.js +138 -5
  90. package/dist/projections/check-convex-args-shape.js.map +1 -1
  91. package/dist/projections/create-evidence.projection.d.ts +168 -0
  92. package/dist/projections/create-evidence.projection.js +138 -5
  93. package/dist/projections/create-evidence.projection.js.map +1 -1
  94. package/dist/projections/index.d.ts +28 -0
  95. package/dist/projections/index.js +138 -5
  96. package/dist/projections/index.js.map +1 -1
  97. package/dist/proof-attestation.json +1 -1
  98. package/dist/schemas/manifest.d.ts +20 -20
  99. package/dist/schemas/tables/kernel/platform.d.ts +4 -4
  100. package/dist/sdk-methods.contract.d.ts +3 -2
  101. package/dist/sdk-tools.contract.js +110 -7
  102. package/dist/sdk-tools.contract.js.map +1 -1
  103. package/dist/sdk-tools.contract.registry.js +110 -7
  104. package/dist/sdk-tools.contract.registry.js.map +1 -1
  105. package/dist/sdk-tools.contract.values.js +110 -7
  106. package/dist/sdk-tools.contract.values.js.map +1 -1
  107. package/dist/tool-contracts.context-orientation.d.ts +5 -0
  108. package/dist/tool-contracts.context-orientation.js +57 -0
  109. package/dist/tool-contracts.context-orientation.js.map +1 -0
  110. package/dist/tool-contracts.d.ts +1 -0
  111. package/dist/tool-contracts.intelligence-evidence.js +26 -4
  112. package/dist/tool-contracts.intelligence-evidence.js.map +1 -1
  113. package/dist/tool-contracts.js +111 -8
  114. package/dist/tool-contracts.js.map +1 -1
  115. package/dist/tool-contracts.lifecycle.js +2 -2
  116. package/dist/tool-contracts.lifecycle.js.map +1 -1
  117. package/dist/tool-contracts.questions-listing.js +27 -1
  118. package/dist/tool-contracts.questions-listing.js.map +1 -1
  119. package/dist/{tool-contracts.values-DjctSW7S.d.ts → tool-contracts.values-BhxfrXS5.d.ts} +3 -1
  120. package/dist/tool-contracts.values.d.ts +1 -0
  121. package/dist/tool-contracts.values.js +111 -8
  122. package/dist/tool-contracts.values.js.map +1 -1
  123. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -795,6 +795,7 @@ __export(tool_contracts_values_exports, {
795
795
  LIST_TASKS: () => LIST_TASKS,
796
796
  LIST_TOPICS: () => LIST_TOPICS,
797
797
  LIST_WORKTREES: () => LIST_WORKTREES,
798
+ LUCERN_ORIENT: () => LUCERN_ORIENT,
798
799
  MANAGE_WRITE_POLICY: () => MANAGE_WRITE_POLICY,
799
800
  MATCH_ENTITY_TYPE: () => MATCH_ENTITY_TYPE,
800
801
  MATERIALIZE_TOPIC_GRAPH: () => MATERIALIZE_TOPIC_GRAPH,
@@ -1526,7 +1527,7 @@ var SEARCH_EVIDENCE = {
1526
1527
  };
1527
1528
  var CREATE_EVIDENCE = {
1528
1529
  name: "create_evidence",
1529
- 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.",
1530
+ 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.",
1530
1531
  parameters: {
1531
1532
  topicId: { type: "string", description: "Topic scope" },
1532
1533
  text: { type: "string", description: "Canonical evidence text" },
@@ -1537,7 +1538,20 @@ var CREATE_EVIDENCE = {
1537
1538
  },
1538
1539
  weight: {
1539
1540
  type: "number",
1540
- description: "Support weight: -1.0 (contradicts) to +1.0 (supports)"
1541
+ description: "Optional support weight: -1.0 (contradicts) to +1.0 (supports). If omitted, evidenceRelation + confidence determine the weight."
1542
+ },
1543
+ evidenceRelation: {
1544
+ type: "string",
1545
+ enum: ["supports", "contradicts"],
1546
+ description: "Canonical relation to targetId/linkedBeliefNodeId. Prefer this over relying on signed weight inference."
1547
+ },
1548
+ confidence: {
1549
+ type: "number",
1550
+ description: "Confidence in the evidence relation, 0.0 to 1.0"
1551
+ },
1552
+ beliefRelations: {
1553
+ type: "array",
1554
+ 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."
1541
1555
  },
1542
1556
  metadata: {
1543
1557
  type: "object",
@@ -1647,7 +1661,7 @@ var LINK_EVIDENCE = {
1647
1661
  };
1648
1662
  var LINK_EVIDENCE_TO_BELIEF = {
1649
1663
  name: "link_evidence_to_belief",
1650
- 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).",
1664
+ 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.",
1651
1665
  parameters: {
1652
1666
  evidenceId: { type: "string", description: "The evidence node ID" },
1653
1667
  beliefId: { type: "string", description: "The belief node ID" },
@@ -1655,9 +1669,18 @@ var LINK_EVIDENCE_TO_BELIEF = {
1655
1669
  type: "number",
1656
1670
  description: "Support weight: -1.0 (contradicts) to +1.0 (supports)"
1657
1671
  },
1672
+ evidenceRelation: {
1673
+ type: "string",
1674
+ enum: ["supports", "contradicts"],
1675
+ description: "Canonical semantic relation. If omitted, the sign of weight is used."
1676
+ },
1677
+ confidence: {
1678
+ type: "number",
1679
+ description: "Confidence in this evidence-to-belief relation, 0.0 to 1.0"
1680
+ },
1658
1681
  rationale: { type: "string", description: "Why this evidence is relevant" }
1659
1682
  },
1660
- required: ["evidenceId", "beliefId", "weight"],
1683
+ required: ["evidenceId", "beliefId"],
1661
1684
  response: {
1662
1685
  description: "The created edge linking evidence to belief",
1663
1686
  fields: {
@@ -1675,7 +1698,7 @@ var LINK_EVIDENCE_TO_BELIEF = {
1675
1698
  // src/tool-contracts.lifecycle.ts
1676
1699
  var CREATE_BELIEF = {
1677
1700
  name: "create_belief",
1678
- 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.",
1701
+ 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.",
1679
1702
  parameters: {
1680
1703
  canonicalText: {
1681
1704
  type: "string",
@@ -1761,7 +1784,7 @@ var REFINE_BELIEF = {
1761
1784
  };
1762
1785
  var MODULATE_CONFIDENCE = {
1763
1786
  name: "modulate_confidence",
1764
- 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.",
1787
+ 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.",
1765
1788
  parameters: {
1766
1789
  nodeId: { type: "string", description: "The belief to score" },
1767
1790
  belief: {
@@ -2410,6 +2433,60 @@ var REMOVE_LENS_FROM_TOPIC = {
2410
2433
  tier: "workhorse"
2411
2434
  };
2412
2435
 
2436
+ // src/tool-contracts.context-orientation.ts
2437
+ var LUCERN_ORIENT = {
2438
+ name: "lucern_orient",
2439
+ description: "Load the Lucern reasoning grammar before operating. Like `git help` plus a repository CONTRIBUTING guide for reasoning state - teaches the git-shaped model of topics, campaigns, lanes, worktrees, beliefs, questions, evidence, receipts, gates, and merges.",
2440
+ parameters: {
2441
+ audience: {
2442
+ type: "string",
2443
+ description: "Audience for the primer: agent, human, operator, or developer.",
2444
+ enum: ["agent", "human", "operator", "developer"]
2445
+ },
2446
+ depth: {
2447
+ type: "string",
2448
+ description: "Orientation depth: quick, standard, or deep.",
2449
+ enum: ["quick", "standard", "deep"]
2450
+ },
2451
+ situation: {
2452
+ type: "string",
2453
+ description: "Optional task or query context used to tailor suggested next calls."
2454
+ },
2455
+ includeExamples: {
2456
+ type: "boolean",
2457
+ description: "Whether to include concrete tool-call examples."
2458
+ },
2459
+ includeToolMap: {
2460
+ type: "boolean",
2461
+ description: "Whether to include situation-to-tool routing guidance."
2462
+ },
2463
+ includeFuture: {
2464
+ type: "boolean",
2465
+ description: "Whether to include future exemplar, gauntlet, and training-data capabilities."
2466
+ }
2467
+ },
2468
+ required: [],
2469
+ response: {
2470
+ description: "Canonical operator primer for Lucern's git-shaped reasoning substrate.",
2471
+ fields: {
2472
+ schemaVersion: "string - lucern_orientation.v1",
2473
+ canonicalMentalModel: "object - concise model of Lucern as git-shaped reasoning state",
2474
+ workflow: "array - recommended branch -> investigate -> prove gate -> merge workflow",
2475
+ grammarMap: "array - primitive-to-git-analogy map for topics, campaigns, worktrees, beliefs, questions, evidence, edges, contradictions, and gates",
2476
+ firstMoves: "array - recommended first tools for a cold-start agent",
2477
+ receiptRules: "array - how to interpret candidateCounts, broadening, coverageWarning, narrativeCoverage, synthesisLints, and noDefaultGlobalScan",
2478
+ safetyRules: "array - mutation and completion rules that preserve reasoning lineage",
2479
+ toolMap: "array | undefined - situation-to-tool routing map when requested",
2480
+ examples: "array | undefined - concrete tool-call examples when requested",
2481
+ futureCapabilities: "array | undefined - exemplar, gauntlet, trace-corpus, and native-model-training capabilities when requested",
2482
+ suggestedNextCalls: "array - safe next tool calls for the current situation"
2483
+ }
2484
+ },
2485
+ ownerModule: "reasoning-kernel",
2486
+ ontologyPrimitive: "graph",
2487
+ tier: "showcase"
2488
+ };
2489
+
2413
2490
  // src/tool-contracts.ontology.ts
2414
2491
  var MANAGE_WRITE_POLICY = {
2415
2492
  name: "manage_write_policy",
@@ -4919,10 +4996,34 @@ var COMPILE_CONTEXT = {
4919
4996
  type: "string",
4920
4997
  description: "Optional source kind used as a resolver signal, such as cli, worktree, commit, or docs."
4921
4998
  },
4999
+ campaign: {
5000
+ type: "number",
5001
+ description: "Optional campaign dimension seed. When supplied without topicId, the compiler fans out across all carrier topics for that campaign instead of resolving a single topic."
5002
+ },
5003
+ lane: {
5004
+ type: "string",
5005
+ description: "Optional lane dimension seed. When supplied without topicId, the compiler reads all matching worktrees and their carrier topics."
5006
+ },
5007
+ status: {
5008
+ type: "string",
5009
+ description: "Optional state/status dimension seed for worktrees and graph rows."
5010
+ },
5011
+ principalId: {
5012
+ type: "string",
5013
+ description: "Optional principal seed for work authored, touched, or owned by a human, agent, group, or service principal."
5014
+ },
5015
+ workspaceId: {
5016
+ type: "string",
5017
+ description: "Optional workspace seed used by hosted MCP and SDK clients when compiling tenant-scoped context."
5018
+ },
4922
5019
  budget: {
4923
5020
  type: "number",
4924
5021
  description: "Token budget for prompt injection planning"
4925
5022
  },
5023
+ tokenBudget: {
5024
+ type: "number",
5025
+ description: "Compatibility alias for budget. External MCP clients may send tokenBudget when requesting prompt injection planning."
5026
+ },
4926
5027
  ranking: {
4927
5028
  type: "string",
4928
5029
  description: "Ranking profile for context ordering",
@@ -4958,7 +5059,9 @@ var COMPILE_CONTEXT = {
4958
5059
  recentEvidence: "array \u2014 recent evidence ranked for this query",
4959
5060
  contradictions: "array \u2014 unresolved contradiction records",
4960
5061
  relatedEntities: "array | undefined \u2014 ranked ontological entities in scope",
4961
- contextNarrative: "array \u2014 guidance for prompt assembly",
5062
+ contextNarrative: "array \u2014 ordered synthesis blocks with kind/text, starting with executive_summary and canonical narrative blocks before raw objects",
5063
+ retrievalReceipt: "object \u2014 candidateCounts, coverageWarning, narrativeCoverage, synthesisLints, and suggestedNextActions",
5064
+ narrativeCoverage: "object \u2014 recordsSynthesized, recordsNamed, recordsOmitted, and blocksEmitted for the narrative",
4962
5065
  injectionPolicy: "object \u2014 token-budgeted section selections",
4963
5066
  diagnostics: "object \u2014 scoring and utilization telemetry"
4964
5067
  }
@@ -5613,6 +5716,7 @@ var MCP_TOOL_CONTRACTS = {
5613
5716
  update_worktree_metadata: UPDATE_WORKTREE_METADATA,
5614
5717
  identity_whoami: IDENTITY_WHOAMI,
5615
5718
  resolve_interactive_principal: RESOLVE_INTERACTIVE_PRINCIPAL,
5719
+ lucern_orient: LUCERN_ORIENT,
5616
5720
  compile_context: COMPILE_CONTEXT,
5617
5721
  record_scope_learning: RECORD_SCOPE_LEARNING,
5618
5722
  pipeline_snapshot: PIPELINE_SNAPSHOT,
@@ -14271,6 +14375,55 @@ var INFISICAL_RUNTIME_PATHS = [
14271
14375
  }
14272
14376
  ]
14273
14377
  },
14378
+ {
14379
+ id: "platform-permit",
14380
+ secretPath: "/platform/permit",
14381
+ description: "Permit runtime configuration for policy enforcement and embedded Permit Elements.",
14382
+ variables: [
14383
+ {
14384
+ name: "LUCERN_PERMIT_ELEMENTS_ENV_ID",
14385
+ required: false,
14386
+ secret: false,
14387
+ public: false,
14388
+ description: "Permit environment id used by Lucern web to authenticate embedded Permit Elements."
14389
+ },
14390
+ {
14391
+ name: "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
14392
+ required: false,
14393
+ secret: false,
14394
+ public: false,
14395
+ description: "Optional Clerk JWT template name for Permit Elements frontendOnly login."
14396
+ },
14397
+ {
14398
+ name: "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
14399
+ required: false,
14400
+ secret: false,
14401
+ public: false,
14402
+ description: "Permit Elements dashboard iframe URL for user and group management."
14403
+ },
14404
+ {
14405
+ name: "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
14406
+ required: false,
14407
+ secret: false,
14408
+ public: false,
14409
+ description: "Permit Elements dashboard iframe URL for audit logs."
14410
+ },
14411
+ {
14412
+ name: "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
14413
+ required: false,
14414
+ secret: false,
14415
+ public: false,
14416
+ description: "Permit Elements dashboard iframe URL for access requests."
14417
+ },
14418
+ {
14419
+ name: "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
14420
+ required: false,
14421
+ secret: false,
14422
+ public: false,
14423
+ description: "Permit Elements dashboard iframe URL for approval management."
14424
+ }
14425
+ ]
14426
+ },
14274
14427
  {
14275
14428
  id: "platform-operator-credentials",
14276
14429
  secretPath: "/platform/runtime",
@@ -14305,7 +14458,7 @@ var INFISICAL_RUNTIME_SURFACES = [
14305
14458
  {
14306
14459
  id: "lucern-web",
14307
14460
  delivery: "vercel_sync",
14308
- sourcePathIds: ["platform-auth", "platform-runtime"],
14461
+ sourcePathIds: ["platform-auth", "platform-runtime", "platform-permit"],
14309
14462
  consumer: "apps/web on Vercel project lucern",
14310
14463
  description: "Lucern web consumes Clerk and runtime config via Infisical-to-Vercel syncs."
14311
14464
  },
@@ -15035,6 +15188,126 @@ var PLATFORM_SECRET_DEFINITIONS = [
15035
15188
  ],
15036
15189
  description: "Optional Permit API URL override."
15037
15190
  },
15191
+ {
15192
+ id: "platform.permit.elements-env-id",
15193
+ canonicalName: "LUCERN_PERMIT_ELEMENTS_ENV_ID",
15194
+ owner: "lucern_platform",
15195
+ scope: "environment",
15196
+ sourcePath: "/platform/permit",
15197
+ environmentPolicy: "environment_specific",
15198
+ required: false,
15199
+ secret: false,
15200
+ public: false,
15201
+ consumers: ["lucern-web"],
15202
+ destinations: [
15203
+ {
15204
+ kind: "vercel",
15205
+ target: "lucern",
15206
+ environmentPolicy: "environment_specific"
15207
+ }
15208
+ ],
15209
+ description: "Permit environment id used by Lucern web to authenticate embedded Permit Elements."
15210
+ },
15211
+ {
15212
+ id: "platform.permit.elements-jwt-template",
15213
+ canonicalName: "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
15214
+ owner: "lucern_platform",
15215
+ scope: "environment",
15216
+ sourcePath: "/platform/permit",
15217
+ environmentPolicy: "environment_specific",
15218
+ required: false,
15219
+ secret: false,
15220
+ public: false,
15221
+ consumers: ["lucern-web"],
15222
+ destinations: [
15223
+ {
15224
+ kind: "vercel",
15225
+ target: "lucern",
15226
+ environmentPolicy: "environment_specific"
15227
+ }
15228
+ ],
15229
+ description: "Optional Clerk JWT template name used for Permit Elements frontendOnly login. Defaults to permit-elements."
15230
+ },
15231
+ {
15232
+ id: "platform.permit.elements-user-management-url",
15233
+ canonicalName: "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
15234
+ owner: "lucern_platform",
15235
+ scope: "environment",
15236
+ sourcePath: "/platform/permit",
15237
+ environmentPolicy: "environment_specific",
15238
+ required: false,
15239
+ secret: false,
15240
+ public: false,
15241
+ consumers: ["lucern-web"],
15242
+ destinations: [
15243
+ {
15244
+ kind: "vercel",
15245
+ target: "lucern",
15246
+ environmentPolicy: "environment_specific"
15247
+ }
15248
+ ],
15249
+ description: "Permit Elements dashboard iframe URL for the User Management element."
15250
+ },
15251
+ {
15252
+ id: "platform.permit.elements-audit-logs-url",
15253
+ canonicalName: "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
15254
+ owner: "lucern_platform",
15255
+ scope: "environment",
15256
+ sourcePath: "/platform/permit",
15257
+ environmentPolicy: "environment_specific",
15258
+ required: false,
15259
+ secret: false,
15260
+ public: false,
15261
+ consumers: ["lucern-web"],
15262
+ destinations: [
15263
+ {
15264
+ kind: "vercel",
15265
+ target: "lucern",
15266
+ environmentPolicy: "environment_specific"
15267
+ }
15268
+ ],
15269
+ description: "Permit Elements dashboard iframe URL for the Audit Logs element."
15270
+ },
15271
+ {
15272
+ id: "platform.permit.elements-access-request-url",
15273
+ canonicalName: "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
15274
+ owner: "lucern_platform",
15275
+ scope: "environment",
15276
+ sourcePath: "/platform/permit",
15277
+ environmentPolicy: "environment_specific",
15278
+ required: false,
15279
+ secret: false,
15280
+ public: false,
15281
+ consumers: ["lucern-web"],
15282
+ destinations: [
15283
+ {
15284
+ kind: "vercel",
15285
+ target: "lucern",
15286
+ environmentPolicy: "environment_specific"
15287
+ }
15288
+ ],
15289
+ description: "Permit Elements dashboard iframe URL for the Access Request element."
15290
+ },
15291
+ {
15292
+ id: "platform.permit.elements-approvals-url",
15293
+ canonicalName: "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
15294
+ owner: "lucern_platform",
15295
+ scope: "environment",
15296
+ sourcePath: "/platform/permit",
15297
+ environmentPolicy: "environment_specific",
15298
+ required: false,
15299
+ secret: false,
15300
+ public: false,
15301
+ consumers: ["lucern-web"],
15302
+ destinations: [
15303
+ {
15304
+ kind: "vercel",
15305
+ target: "lucern",
15306
+ environmentPolicy: "environment_specific"
15307
+ }
15308
+ ],
15309
+ description: "Permit Elements dashboard iframe URL for the Approval Management element."
15310
+ },
15038
15311
  {
15039
15312
  id: "platform.ci.infisical-bootstrap-client-id",
15040
15313
  canonicalName: "INFISICAL_BOOTSTRAP_CLIENT_ID",
@@ -17782,6 +18055,12 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
17782
18055
  "LUCERN_PACK_KEY",
17783
18056
  "LUCERN_PERMIT_API_KEY",
17784
18057
  "LUCERN_PERMIT_API_URL",
18058
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
18059
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
18060
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
18061
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID",
18062
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
18063
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
17785
18064
  "LUCERN_PERMIT_PDP_URL",
17786
18065
  "LUCERN_PERMIT_WEBHOOK_SECRET",
17787
18066
  "LUCERN_PROD_DEPLOY_KEY",
@@ -18063,6 +18342,12 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
18063
18342
  "LUCERN_PACK_KEY",
18064
18343
  "LUCERN_PERMIT_API_KEY",
18065
18344
  "LUCERN_PERMIT_API_URL",
18345
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
18346
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
18347
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
18348
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID",
18349
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
18350
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
18066
18351
  "LUCERN_PERMIT_PDP_URL",
18067
18352
  "LUCERN_PERMIT_WEBHOOK_SECRET",
18068
18353
  "LUCERN_PROD_DEPLOY_KEY",
@@ -21242,6 +21527,180 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
21242
21527
  ],
21243
21528
  "description": "Optional Permit API URL override."
21244
21529
  },
21530
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL": {
21531
+ "secretId": "platform.permit.elements-access-request-url",
21532
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
21533
+ "envNames": [
21534
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
21535
+ ],
21536
+ "aliases": [],
21537
+ "writeNames": [
21538
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
21539
+ ],
21540
+ "required": false,
21541
+ "secret": false,
21542
+ "public": false,
21543
+ "sourcePath": "/platform/permit",
21544
+ "environmentPolicy": "environment_specific",
21545
+ "consumers": [
21546
+ "lucern-web"
21547
+ ],
21548
+ "destinations": [
21549
+ {
21550
+ "kind": "vercel",
21551
+ "target": "lucern",
21552
+ "writeNames": [
21553
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
21554
+ ]
21555
+ }
21556
+ ],
21557
+ "description": "Permit Elements dashboard iframe URL for the Access Request element. Permit Elements dashboard iframe URL for access requests."
21558
+ },
21559
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL": {
21560
+ "secretId": "platform.permit.elements-approvals-url",
21561
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
21562
+ "envNames": [
21563
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
21564
+ ],
21565
+ "aliases": [],
21566
+ "writeNames": [
21567
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
21568
+ ],
21569
+ "required": false,
21570
+ "secret": false,
21571
+ "public": false,
21572
+ "sourcePath": "/platform/permit",
21573
+ "environmentPolicy": "environment_specific",
21574
+ "consumers": [
21575
+ "lucern-web"
21576
+ ],
21577
+ "destinations": [
21578
+ {
21579
+ "kind": "vercel",
21580
+ "target": "lucern",
21581
+ "writeNames": [
21582
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
21583
+ ]
21584
+ }
21585
+ ],
21586
+ "description": "Permit Elements dashboard iframe URL for the Approval Management element. Permit Elements dashboard iframe URL for approval management."
21587
+ },
21588
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL": {
21589
+ "secretId": "platform.permit.elements-audit-logs-url",
21590
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
21591
+ "envNames": [
21592
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
21593
+ ],
21594
+ "aliases": [],
21595
+ "writeNames": [
21596
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
21597
+ ],
21598
+ "required": false,
21599
+ "secret": false,
21600
+ "public": false,
21601
+ "sourcePath": "/platform/permit",
21602
+ "environmentPolicy": "environment_specific",
21603
+ "consumers": [
21604
+ "lucern-web"
21605
+ ],
21606
+ "destinations": [
21607
+ {
21608
+ "kind": "vercel",
21609
+ "target": "lucern",
21610
+ "writeNames": [
21611
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
21612
+ ]
21613
+ }
21614
+ ],
21615
+ "description": "Permit Elements dashboard iframe URL for the Audit Logs element. Permit Elements dashboard iframe URL for audit logs."
21616
+ },
21617
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID": {
21618
+ "secretId": "platform.permit.elements-env-id",
21619
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_ENV_ID",
21620
+ "envNames": [
21621
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
21622
+ ],
21623
+ "aliases": [],
21624
+ "writeNames": [
21625
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
21626
+ ],
21627
+ "required": false,
21628
+ "secret": false,
21629
+ "public": false,
21630
+ "sourcePath": "/platform/permit",
21631
+ "environmentPolicy": "environment_specific",
21632
+ "consumers": [
21633
+ "lucern-web"
21634
+ ],
21635
+ "destinations": [
21636
+ {
21637
+ "kind": "vercel",
21638
+ "target": "lucern",
21639
+ "writeNames": [
21640
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
21641
+ ]
21642
+ }
21643
+ ],
21644
+ "description": "Permit environment id used by Lucern web to authenticate embedded Permit Elements."
21645
+ },
21646
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE": {
21647
+ "secretId": "platform.permit.elements-jwt-template",
21648
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
21649
+ "envNames": [
21650
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
21651
+ ],
21652
+ "aliases": [],
21653
+ "writeNames": [
21654
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
21655
+ ],
21656
+ "required": false,
21657
+ "secret": false,
21658
+ "public": false,
21659
+ "sourcePath": "/platform/permit",
21660
+ "environmentPolicy": "environment_specific",
21661
+ "consumers": [
21662
+ "lucern-web"
21663
+ ],
21664
+ "destinations": [
21665
+ {
21666
+ "kind": "vercel",
21667
+ "target": "lucern",
21668
+ "writeNames": [
21669
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
21670
+ ]
21671
+ }
21672
+ ],
21673
+ "description": "Optional Clerk JWT template name used for Permit Elements frontendOnly login. Defaults to permit-elements. Optional Clerk JWT template name for Permit Elements frontendOnly login."
21674
+ },
21675
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL": {
21676
+ "secretId": "platform.permit.elements-user-management-url",
21677
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
21678
+ "envNames": [
21679
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
21680
+ ],
21681
+ "aliases": [],
21682
+ "writeNames": [
21683
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
21684
+ ],
21685
+ "required": false,
21686
+ "secret": false,
21687
+ "public": false,
21688
+ "sourcePath": "/platform/permit",
21689
+ "environmentPolicy": "environment_specific",
21690
+ "consumers": [
21691
+ "lucern-web"
21692
+ ],
21693
+ "destinations": [
21694
+ {
21695
+ "kind": "vercel",
21696
+ "target": "lucern",
21697
+ "writeNames": [
21698
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
21699
+ ]
21700
+ }
21701
+ ],
21702
+ "description": "Permit Elements dashboard iframe URL for the User Management element. Permit Elements dashboard iframe URL for user and group management."
21703
+ },
21245
21704
  "LUCERN_PERMIT_PDP_URL": {
21246
21705
  "secretId": "platform.permit.pdp-url",
21247
21706
  "canonicalName": "LUCERN_PERMIT_PDP_URL",
@@ -24238,6 +24697,12 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
24238
24697
  "PERMIT_API_KEY": "LUCERN_PERMIT_API_KEY",
24239
24698
  "LUCERN_PERMIT_API_URL": "LUCERN_PERMIT_API_URL",
24240
24699
  "PERMIT_API_URL": "LUCERN_PERMIT_API_URL",
24700
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL": "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
24701
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL": "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
24702
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL": "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
24703
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID": "LUCERN_PERMIT_ELEMENTS_ENV_ID",
24704
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE": "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
24705
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL": "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
24241
24706
  "LUCERN_PERMIT_PDP_URL": "LUCERN_PERMIT_PDP_URL",
24242
24707
  "PERMIT_PDP_URL": "LUCERN_PERMIT_PDP_URL",
24243
24708
  "LUCERN_PERMIT_WEBHOOK_SECRET": "LUCERN_PERMIT_WEBHOOK_SECRET",
@@ -24356,7 +24821,8 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
24356
24821
  "description": "Lucern web consumes Clerk and runtime config via Infisical-to-Vercel syncs.",
24357
24822
  "sourcePathIds": [
24358
24823
  "platform-auth",
24359
- "platform-runtime"
24824
+ "platform-runtime",
24825
+ "platform-permit"
24360
24826
  ],
24361
24827
  "variables": [
24362
24828
  {
@@ -24564,6 +25030,174 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
24564
25030
  "destinations": [],
24565
25031
  "description": "Browser login origin used when it differs from the API."
24566
25032
  },
25033
+ {
25034
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
25035
+ "envNames": [
25036
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
25037
+ ],
25038
+ "aliases": [],
25039
+ "writeNames": [
25040
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
25041
+ ],
25042
+ "required": false,
25043
+ "secret": false,
25044
+ "public": false,
25045
+ "sourcePath": "/platform/permit",
25046
+ "environmentPolicy": "environment_specific",
25047
+ "consumers": [
25048
+ "lucern-web"
25049
+ ],
25050
+ "destinations": [
25051
+ {
25052
+ "kind": "vercel",
25053
+ "target": "lucern",
25054
+ "writeNames": [
25055
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
25056
+ ]
25057
+ }
25058
+ ],
25059
+ "description": "Permit Elements dashboard iframe URL for access requests. Permit Elements dashboard iframe URL for the Access Request element."
25060
+ },
25061
+ {
25062
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
25063
+ "envNames": [
25064
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
25065
+ ],
25066
+ "aliases": [],
25067
+ "writeNames": [
25068
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
25069
+ ],
25070
+ "required": false,
25071
+ "secret": false,
25072
+ "public": false,
25073
+ "sourcePath": "/platform/permit",
25074
+ "environmentPolicy": "environment_specific",
25075
+ "consumers": [
25076
+ "lucern-web"
25077
+ ],
25078
+ "destinations": [
25079
+ {
25080
+ "kind": "vercel",
25081
+ "target": "lucern",
25082
+ "writeNames": [
25083
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
25084
+ ]
25085
+ }
25086
+ ],
25087
+ "description": "Permit Elements dashboard iframe URL for approval management. Permit Elements dashboard iframe URL for the Approval Management element."
25088
+ },
25089
+ {
25090
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
25091
+ "envNames": [
25092
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
25093
+ ],
25094
+ "aliases": [],
25095
+ "writeNames": [
25096
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
25097
+ ],
25098
+ "required": false,
25099
+ "secret": false,
25100
+ "public": false,
25101
+ "sourcePath": "/platform/permit",
25102
+ "environmentPolicy": "environment_specific",
25103
+ "consumers": [
25104
+ "lucern-web"
25105
+ ],
25106
+ "destinations": [
25107
+ {
25108
+ "kind": "vercel",
25109
+ "target": "lucern",
25110
+ "writeNames": [
25111
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
25112
+ ]
25113
+ }
25114
+ ],
25115
+ "description": "Permit Elements dashboard iframe URL for audit logs. Permit Elements dashboard iframe URL for the Audit Logs element."
25116
+ },
25117
+ {
25118
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_ENV_ID",
25119
+ "envNames": [
25120
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
25121
+ ],
25122
+ "aliases": [],
25123
+ "writeNames": [
25124
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
25125
+ ],
25126
+ "required": false,
25127
+ "secret": false,
25128
+ "public": false,
25129
+ "sourcePath": "/platform/permit",
25130
+ "environmentPolicy": "environment_specific",
25131
+ "consumers": [
25132
+ "lucern-web"
25133
+ ],
25134
+ "destinations": [
25135
+ {
25136
+ "kind": "vercel",
25137
+ "target": "lucern",
25138
+ "writeNames": [
25139
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
25140
+ ]
25141
+ }
25142
+ ],
25143
+ "description": "Permit environment id used by Lucern web to authenticate embedded Permit Elements."
25144
+ },
25145
+ {
25146
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
25147
+ "envNames": [
25148
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
25149
+ ],
25150
+ "aliases": [],
25151
+ "writeNames": [
25152
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
25153
+ ],
25154
+ "required": false,
25155
+ "secret": false,
25156
+ "public": false,
25157
+ "sourcePath": "/platform/permit",
25158
+ "environmentPolicy": "environment_specific",
25159
+ "consumers": [
25160
+ "lucern-web"
25161
+ ],
25162
+ "destinations": [
25163
+ {
25164
+ "kind": "vercel",
25165
+ "target": "lucern",
25166
+ "writeNames": [
25167
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
25168
+ ]
25169
+ }
25170
+ ],
25171
+ "description": "Optional Clerk JWT template name for Permit Elements frontendOnly login. Optional Clerk JWT template name used for Permit Elements frontendOnly login. Defaults to permit-elements."
25172
+ },
25173
+ {
25174
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
25175
+ "envNames": [
25176
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
25177
+ ],
25178
+ "aliases": [],
25179
+ "writeNames": [
25180
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
25181
+ ],
25182
+ "required": false,
25183
+ "secret": false,
25184
+ "public": false,
25185
+ "sourcePath": "/platform/permit",
25186
+ "environmentPolicy": "environment_specific",
25187
+ "consumers": [
25188
+ "lucern-web"
25189
+ ],
25190
+ "destinations": [
25191
+ {
25192
+ "kind": "vercel",
25193
+ "target": "lucern",
25194
+ "writeNames": [
25195
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
25196
+ ]
25197
+ }
25198
+ ],
25199
+ "description": "Permit Elements dashboard iframe URL for user and group management. Permit Elements dashboard iframe URL for the User Management element."
25200
+ },
24567
25201
  {
24568
25202
  "canonicalName": "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY",
24569
25203
  "envNames": [
@@ -42808,6 +43442,180 @@ var GENERATED_INFISICAL_RUNTIME_ENV = {
42808
43442
  ],
42809
43443
  "description": "Lucern runtime environment label."
42810
43444
  },
43445
+ {
43446
+ "secretId": "platform.permit.elements-access-request-url",
43447
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL",
43448
+ "envNames": [
43449
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
43450
+ ],
43451
+ "aliases": [],
43452
+ "writeNames": [
43453
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
43454
+ ],
43455
+ "required": false,
43456
+ "secret": false,
43457
+ "public": false,
43458
+ "sourcePath": "/platform/permit",
43459
+ "environmentPolicy": "environment_specific",
43460
+ "consumers": [
43461
+ "lucern-web"
43462
+ ],
43463
+ "destinations": [
43464
+ {
43465
+ "kind": "vercel",
43466
+ "target": "lucern",
43467
+ "writeNames": [
43468
+ "LUCERN_PERMIT_ELEMENTS_ACCESS_REQUEST_URL"
43469
+ ]
43470
+ }
43471
+ ],
43472
+ "description": "Permit Elements dashboard iframe URL for the Access Request element."
43473
+ },
43474
+ {
43475
+ "secretId": "platform.permit.elements-approvals-url",
43476
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL",
43477
+ "envNames": [
43478
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
43479
+ ],
43480
+ "aliases": [],
43481
+ "writeNames": [
43482
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
43483
+ ],
43484
+ "required": false,
43485
+ "secret": false,
43486
+ "public": false,
43487
+ "sourcePath": "/platform/permit",
43488
+ "environmentPolicy": "environment_specific",
43489
+ "consumers": [
43490
+ "lucern-web"
43491
+ ],
43492
+ "destinations": [
43493
+ {
43494
+ "kind": "vercel",
43495
+ "target": "lucern",
43496
+ "writeNames": [
43497
+ "LUCERN_PERMIT_ELEMENTS_APPROVALS_URL"
43498
+ ]
43499
+ }
43500
+ ],
43501
+ "description": "Permit Elements dashboard iframe URL for the Approval Management element."
43502
+ },
43503
+ {
43504
+ "secretId": "platform.permit.elements-audit-logs-url",
43505
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL",
43506
+ "envNames": [
43507
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
43508
+ ],
43509
+ "aliases": [],
43510
+ "writeNames": [
43511
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
43512
+ ],
43513
+ "required": false,
43514
+ "secret": false,
43515
+ "public": false,
43516
+ "sourcePath": "/platform/permit",
43517
+ "environmentPolicy": "environment_specific",
43518
+ "consumers": [
43519
+ "lucern-web"
43520
+ ],
43521
+ "destinations": [
43522
+ {
43523
+ "kind": "vercel",
43524
+ "target": "lucern",
43525
+ "writeNames": [
43526
+ "LUCERN_PERMIT_ELEMENTS_AUDIT_LOGS_URL"
43527
+ ]
43528
+ }
43529
+ ],
43530
+ "description": "Permit Elements dashboard iframe URL for the Audit Logs element."
43531
+ },
43532
+ {
43533
+ "secretId": "platform.permit.elements-env-id",
43534
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_ENV_ID",
43535
+ "envNames": [
43536
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
43537
+ ],
43538
+ "aliases": [],
43539
+ "writeNames": [
43540
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
43541
+ ],
43542
+ "required": false,
43543
+ "secret": false,
43544
+ "public": false,
43545
+ "sourcePath": "/platform/permit",
43546
+ "environmentPolicy": "environment_specific",
43547
+ "consumers": [
43548
+ "lucern-web"
43549
+ ],
43550
+ "destinations": [
43551
+ {
43552
+ "kind": "vercel",
43553
+ "target": "lucern",
43554
+ "writeNames": [
43555
+ "LUCERN_PERMIT_ELEMENTS_ENV_ID"
43556
+ ]
43557
+ }
43558
+ ],
43559
+ "description": "Permit environment id used by Lucern web to authenticate embedded Permit Elements."
43560
+ },
43561
+ {
43562
+ "secretId": "platform.permit.elements-jwt-template",
43563
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE",
43564
+ "envNames": [
43565
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
43566
+ ],
43567
+ "aliases": [],
43568
+ "writeNames": [
43569
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
43570
+ ],
43571
+ "required": false,
43572
+ "secret": false,
43573
+ "public": false,
43574
+ "sourcePath": "/platform/permit",
43575
+ "environmentPolicy": "environment_specific",
43576
+ "consumers": [
43577
+ "lucern-web"
43578
+ ],
43579
+ "destinations": [
43580
+ {
43581
+ "kind": "vercel",
43582
+ "target": "lucern",
43583
+ "writeNames": [
43584
+ "LUCERN_PERMIT_ELEMENTS_JWT_TEMPLATE"
43585
+ ]
43586
+ }
43587
+ ],
43588
+ "description": "Optional Clerk JWT template name used for Permit Elements frontendOnly login. Defaults to permit-elements."
43589
+ },
43590
+ {
43591
+ "secretId": "platform.permit.elements-user-management-url",
43592
+ "canonicalName": "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL",
43593
+ "envNames": [
43594
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
43595
+ ],
43596
+ "aliases": [],
43597
+ "writeNames": [
43598
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
43599
+ ],
43600
+ "required": false,
43601
+ "secret": false,
43602
+ "public": false,
43603
+ "sourcePath": "/platform/permit",
43604
+ "environmentPolicy": "environment_specific",
43605
+ "consumers": [
43606
+ "lucern-web"
43607
+ ],
43608
+ "destinations": [
43609
+ {
43610
+ "kind": "vercel",
43611
+ "target": "lucern",
43612
+ "writeNames": [
43613
+ "LUCERN_PERMIT_ELEMENTS_USER_MANAGEMENT_URL"
43614
+ ]
43615
+ }
43616
+ ],
43617
+ "description": "Permit Elements dashboard iframe URL for the User Management element."
43618
+ },
42811
43619
  {
42812
43620
  "secretId": "platform.clerk.publishable",
42813
43621
  "canonicalName": "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY",
@@ -47703,6 +48511,23 @@ function defineProjection(def) {
47703
48511
 
47704
48512
  // src/projections/create-evidence.projection.ts
47705
48513
  var jsonRecordSchema = z.record(z.unknown());
48514
+ var evidenceRelationSchema = z.enum(["supports", "contradicts"]);
48515
+ var evidenceRelationAliasSchema = z.enum([
48516
+ "supports",
48517
+ "contradicts",
48518
+ "supporting",
48519
+ "contradicting"
48520
+ ]);
48521
+ var beliefRelationSchema = z.object({
48522
+ beliefId: z.string().optional(),
48523
+ beliefNodeId: z.string().optional(),
48524
+ targetId: z.string().optional(),
48525
+ relation: evidenceRelationAliasSchema.optional(),
48526
+ evidenceRelation: evidenceRelationSchema.optional(),
48527
+ confidence: z.number().optional(),
48528
+ weight: z.number().optional(),
48529
+ rationale: z.string().optional()
48530
+ });
47706
48531
  var createEvidenceInputSchemaBase = z.object({
47707
48532
  projectId: z.string().optional(),
47708
48533
  topicId: z.string().optional(),
@@ -47724,7 +48549,8 @@ var createEvidenceInputSchemaBase = z.object({
47724
48549
  targetId: z.string().optional(),
47725
48550
  targetNodeId: z.string().optional(),
47726
48551
  linkedBeliefNodeId: z.string().optional(),
47727
- evidenceRelation: z.enum(["supports", "contradicts"]).optional(),
48552
+ evidenceRelation: evidenceRelationSchema.optional(),
48553
+ beliefRelations: z.array(beliefRelationSchema).optional(),
47728
48554
  confidence: z.number().optional(),
47729
48555
  weight: z.number().optional(),
47730
48556
  reasoning: z.string().optional(),
@@ -47750,15 +48576,103 @@ function isRecord(value) {
47750
48576
  function recordValue(value) {
47751
48577
  return isRecord(value) ? value : {};
47752
48578
  }
48579
+ function normalizeTopicIdForKernel(topicId) {
48580
+ const normalized = topicId?.trim();
48581
+ if (!normalized) {
48582
+ return void 0;
48583
+ }
48584
+ try {
48585
+ const decoded = decodePrefixedId(normalized);
48586
+ return decoded.prefix === "top" ? decoded.value : normalized;
48587
+ } catch {
48588
+ return normalized;
48589
+ }
48590
+ }
48591
+ function normalizeWorktreeId(value) {
48592
+ const normalized = value?.trim();
48593
+ if (!normalized) {
48594
+ return void 0;
48595
+ }
48596
+ if (normalized.startsWith("wt_")) {
48597
+ return normalized.slice("wt_".length);
48598
+ }
48599
+ return normalized;
48600
+ }
48601
+ function targetKind(targetId) {
48602
+ const normalized = targetId?.trim();
48603
+ if (!normalized) {
48604
+ return "unknown";
48605
+ }
48606
+ if (normalized.startsWith("wt_") || /^tn[a-z0-9]+$/i.test(normalized)) {
48607
+ return "worktree";
48608
+ }
48609
+ if (normalized.startsWith("que_")) {
48610
+ return "question";
48611
+ }
48612
+ if (normalized.startsWith("bel_")) {
48613
+ return "belief";
48614
+ }
48615
+ return "unknown";
48616
+ }
48617
+ function normalizeRelation(value, weight) {
48618
+ if (value === "supports" || value === "supporting") {
48619
+ return "supports";
48620
+ }
48621
+ if (value === "contradicts" || value === "contradicting") {
48622
+ return "contradicts";
48623
+ }
48624
+ if (weight === void 0) {
48625
+ return void 0;
48626
+ }
48627
+ return weight < 0 ? "contradicts" : "supports";
48628
+ }
48629
+ function normalizeConfidence(confidence, weight) {
48630
+ if (confidence !== void 0) {
48631
+ return Math.min(1, Math.max(0, confidence));
48632
+ }
48633
+ if (weight === void 0) {
48634
+ return void 0;
48635
+ }
48636
+ return Math.min(1, Math.max(0, Math.abs(weight)));
48637
+ }
48638
+ function normalizeBeliefRelation(relation) {
48639
+ const beliefNodeId = relation.beliefNodeId ?? relation.beliefId ?? relation.targetId;
48640
+ if (!beliefNodeId) {
48641
+ return void 0;
48642
+ }
48643
+ const weight = typeof relation.weight === "number" ? relation.weight : void 0;
48644
+ const evidenceRelation = normalizeRelation(
48645
+ relation.evidenceRelation ?? relation.relation,
48646
+ weight
48647
+ );
48648
+ if (!evidenceRelation) {
48649
+ return void 0;
48650
+ }
48651
+ return compactRecord({
48652
+ beliefNodeId,
48653
+ relation: evidenceRelation,
48654
+ confidence: normalizeConfidence(relation.confidence, weight),
48655
+ rationale: relation.rationale
48656
+ });
48657
+ }
47753
48658
  var createEvidenceProjection = defineProjection({
47754
48659
  contractName: "create_evidence",
47755
48660
  inputSchema: createEvidenceInputSchema,
47756
48661
  project: (input) => {
47757
48662
  const text = input.text ?? input.canonicalText;
47758
48663
  const weight = typeof input.weight === "number" ? input.weight : void 0;
48664
+ const target = input.targetId ?? input.targetNodeId;
48665
+ const kind = targetKind(target);
48666
+ const linkedWorktreeId = kind === "worktree" ? normalizeWorktreeId(target) : void 0;
48667
+ const linkedBeliefNodeId = input.linkedBeliefNodeId ?? (kind === "belief" || kind === "unknown" ? input.targetNodeId ?? input.targetId : void 0);
48668
+ const evidenceRelation = linkedBeliefNodeId ? normalizeRelation(input.evidenceRelation, weight) : void 0;
48669
+ const confidence = evidenceRelation ? normalizeConfidence(input.confidence, weight) : void 0;
48670
+ const beliefRelations = input.beliefRelations?.map(normalizeBeliefRelation).filter(
48671
+ (relation) => relation !== void 0
48672
+ );
47759
48673
  return compactRecord({
47760
48674
  projectId: input.projectId,
47761
- topicId: input.topicId,
48675
+ topicId: normalizeTopicIdForKernel(input.topicId),
47762
48676
  text,
47763
48677
  title: input.title ?? text,
47764
48678
  content: input.content ?? text,
@@ -47777,13 +48691,16 @@ var createEvidenceProjection = defineProjection({
47777
48691
  source: input.source,
47778
48692
  targetId: input.targetId,
47779
48693
  targetNodeId: input.targetNodeId,
48694
+ targetKind: kind === "unknown" ? void 0 : kind,
48695
+ linkedWorktreeId,
47780
48696
  weight,
47781
48697
  reasoning: input.reasoning,
47782
48698
  rationale: input.rationale
47783
48699
  }),
47784
- linkedBeliefNodeId: input.linkedBeliefNodeId ?? input.targetNodeId ?? input.targetId,
47785
- evidenceRelation: input.evidenceRelation ?? (weight === void 0 ? void 0 : weight < 0 ? "contradicts" : "supports"),
47786
- confidence: input.confidence ?? (weight === void 0 ? void 0 : Math.min(1, Math.max(0, Math.abs(weight)))),
48700
+ linkedBeliefNodeId,
48701
+ evidenceRelation,
48702
+ confidence,
48703
+ beliefRelations: beliefRelations && beliefRelations.length > 0 ? beliefRelations : void 0,
47787
48704
  rationale: input.rationale,
47788
48705
  trustedBypassAccessCheck: input.trustedBypassAccessCheck ?? true
47789
48706
  });
@@ -47812,6 +48729,16 @@ var createEvidenceProjection = defineProjection({
47812
48729
  v.literal("contradicts")
47813
48730
  )
47814
48731
  ),
48732
+ beliefRelations: v.optional(
48733
+ v.array(
48734
+ v.object({
48735
+ beliefNodeId: v.string(),
48736
+ relation: v.union(v.literal("supports"), v.literal("contradicts")),
48737
+ confidence: v.optional(v.number()),
48738
+ rationale: v.optional(v.string())
48739
+ })
48740
+ )
48741
+ ),
47815
48742
  confidence: v.optional(v.number()),
47816
48743
  rationale: v.string(),
47817
48744
  trustedBypassAccessCheck: v.optional(v.boolean())