@graphrefly/graphrefly 0.31.0 → 0.32.0

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 (177) hide show
  1. package/dist/chunk-2JNT5NDF.js +61 -0
  2. package/dist/{chunk-KN4Q5MQO.js → chunk-2RH4QNDQ.js} +1 -1
  3. package/dist/chunk-4JBKKUCJ.js +7 -0
  4. package/dist/{chunk-WLPVGXQ6.js → chunk-4YGJ7KZ6.js} +1 -1
  5. package/dist/{chunk-3Q2WXM6X.js → chunk-5PBXUVHI.js} +1 -1
  6. package/dist/{chunk-WYJTXYWX.js → chunk-7EMUF2RY.js} +1 -1
  7. package/dist/chunk-7JZ3YORY.js +80 -0
  8. package/dist/{chunk-I4U3TPK2.js → chunk-7QS77X6G.js} +1 -1
  9. package/dist/{chunk-ZM7C2FUM.js → chunk-BU4SUZSA.js} +1 -1
  10. package/dist/{chunk-GF5T7PGC.js → chunk-CNXUW2CU.js} +1 -1
  11. package/dist/{chunk-Z3UWIJ3A.js → chunk-EIFHFDFD.js} +1 -1
  12. package/dist/{chunk-3JRKP4BH.js → chunk-JAHAJU4G.js} +1 -1
  13. package/dist/{chunk-4ZPO2EL5.js → chunk-JYMNVEH6.js} +1 -1
  14. package/dist/{chunk-4KAUNEKV.js → chunk-KD3IYBTD.js} +1 -1
  15. package/dist/{chunk-X2VHDT26.js → chunk-LG73TUF4.js} +2 -2
  16. package/dist/{chunk-JXRZXP3N.js → chunk-LJGPOJHS.js} +1 -1
  17. package/dist/{chunk-YQJPYEAL.js → chunk-M2VFLRPJ.js} +1 -1
  18. package/dist/{chunk-7EQPXQ7H.js → chunk-MFNOZ5E6.js} +1 -1
  19. package/dist/{chunk-YZ6VYLFD.js → chunk-PWKLZ2XU.js} +1 -1
  20. package/dist/{chunk-OKQUPJRY.js → chunk-TOCCHQI6.js} +1 -1
  21. package/dist/{chunk-PZP4MEXK.js → chunk-UXEB35L4.js} +1 -1
  22. package/dist/{chunk-EBQ6FXKW.js → chunk-VXJX3ZZP.js} +1 -1
  23. package/dist/{chunk-7EJTWGKW.js → chunk-WE32AFFA.js} +1 -1
  24. package/dist/{chunk-JMGGCSIC.js → chunk-WF3V5X2L.js} +1 -1
  25. package/dist/{chunk-YZKGGMPT.js → chunk-X4OOM6QU.js} +1 -1
  26. package/dist/{chunk-5LJAQTSS.js → chunk-ZWETYYQG.js} +1 -1
  27. package/dist/compat/index.cjs +1 -1
  28. package/dist/compat/index.d.cts +5 -5
  29. package/dist/compat/index.d.ts +5 -5
  30. package/dist/compat/index.js +1 -1
  31. package/dist/compat/nestjs/index.cjs +1 -1
  32. package/dist/compat/nestjs/index.d.cts +3 -3
  33. package/dist/compat/nestjs/index.d.ts +3 -3
  34. package/dist/compat/nestjs/index.js +1 -1
  35. package/dist/compat/zustand/index.cjs +1 -1
  36. package/dist/compat/zustand/index.d.cts +2 -2
  37. package/dist/compat/zustand/index.d.ts +2 -2
  38. package/dist/compat/zustand/index.js +1 -1
  39. package/dist/extra/index.cjs +1 -1
  40. package/dist/extra/index.d.cts +2 -2
  41. package/dist/extra/index.d.ts +2 -2
  42. package/dist/extra/index.js +1 -1
  43. package/dist/graph/index.cjs +1 -1
  44. package/dist/graph/index.d.cts +3 -3
  45. package/dist/graph/index.d.ts +3 -3
  46. package/dist/graph/index.js +1 -1
  47. package/dist/{graph-CWeI0aHd.d.ts → graph-BOhEGJ6E.d.ts} +10 -0
  48. package/dist/{graph-C4Uxwv0T.d.cts → graph-CdJeX7O7.d.cts} +10 -0
  49. package/dist/{index-B-z8WaSd.d.cts → index-BDLy6CQ9.d.cts} +1 -1
  50. package/dist/{index-iBp74eGU.d.cts → index-BJDXj9Wf.d.cts} +2 -2
  51. package/dist/{index-BBINVimG.d.ts → index-BUZPTPSQ.d.ts} +2 -2
  52. package/dist/{index-DnrZghBB.d.ts → index-BbcSZCAG.d.ts} +1 -1
  53. package/dist/{index-lKuLYmHO.d.cts → index-BiGeETJs.d.cts} +1 -1
  54. package/dist/{index-Dm3_D5Ta.d.cts → index-BmZb8fNF.d.cts} +2 -2
  55. package/dist/{index-Docdiu9a.d.ts → index-Bnmttu35.d.ts} +1 -1
  56. package/dist/{index-CZChc85Q.d.cts → index-BuN2wGJs.d.cts} +297 -22
  57. package/dist/{index-Cy7eFeIX.d.cts → index-BwdPDWI4.d.cts} +1 -1
  58. package/dist/{index-DylQCKEL.d.cts → index-BzxU4yhV.d.cts} +11 -2
  59. package/dist/{index-D9Y_u6BG.d.cts → index-C-Gsh-0a.d.cts} +2 -2
  60. package/dist/{index-DD7RhHNJ.d.cts → index-C22aTC1X.d.cts} +4 -4
  61. package/dist/{index-yIdWFo2b.d.cts → index-C4QTaDli.d.cts} +2 -2
  62. package/dist/{index-CJymKyzT.d.ts → index-C7RqYbOZ.d.ts} +1 -1
  63. package/dist/{index-C5Ghnp5B.d.ts → index-C9qCLIN4.d.ts} +2 -2
  64. package/dist/{index-DVNLe3pS.d.cts → index-CCdg0JLX.d.cts} +1 -1
  65. package/dist/{index-B5iVOD7w.d.ts → index-CEoU-r-g.d.ts} +2 -2
  66. package/dist/{index-CfFYyLR8.d.ts → index-CHfBm51k.d.ts} +11 -2
  67. package/dist/{index-BXzl1NDD.d.ts → index-CNyiYQWF.d.ts} +4 -4
  68. package/dist/{index-C6NBfXj-.d.ts → index-CVevMZ0n.d.ts} +2 -2
  69. package/dist/{index-DGb1awva.d.ts → index-CZUzi6Dy.d.ts} +2 -2
  70. package/dist/{index-FrYrV-Vf.d.ts → index-Ckl03Q0s.d.ts} +1 -1
  71. package/dist/{index-Bvi5uJxX.d.ts → index-CmSjld-4.d.ts} +1 -1
  72. package/dist/{index-9iguV3bF.d.cts → index-CnjUhRbs.d.cts} +2 -2
  73. package/dist/{index-C98oJsEs.d.cts → index-D3HcdZ4d.d.cts} +1 -1
  74. package/dist/{index-IZ3l_vQ9.d.ts → index-DD1czHj3.d.ts} +1 -1
  75. package/dist/{index-gJQqJTKx.d.cts → index-DNhTQReY.d.cts} +1 -1
  76. package/dist/{index-UZO988ox.d.cts → index-DSawGt8n.d.cts} +2 -2
  77. package/dist/{index-CcpEvuPl.d.cts → index-DUkuH3jP.d.cts} +1 -1
  78. package/dist/{index-CRAkoq-y.d.cts → index-DY2QbdoP.d.cts} +1 -1
  79. package/dist/{index-CvS9IuTG.d.ts → index-Dbmj0iYR.d.ts} +1 -1
  80. package/dist/{index-Bd6oFZqO.d.ts → index-DhlAMlm9.d.ts} +297 -22
  81. package/dist/{index-BMe3pCom.d.cts → index-DlGaEBW5.d.cts} +2 -2
  82. package/dist/{index-CotRMjtJ.d.ts → index-Dp_pS7Bw.d.ts} +1 -1
  83. package/dist/{index-DxMS0cHM.d.ts → index-Dxk-pUQI.d.ts} +2 -2
  84. package/dist/{index-DBQUKh59.d.cts → index-EGjF6iSY.d.cts} +3 -3
  85. package/dist/{index-D9HrBx2J.d.ts → index-LGzAYqdR.d.ts} +1 -1
  86. package/dist/{index-DR3gf_DG.d.cts → index-LzCJ0kMT.d.cts} +2 -2
  87. package/dist/{index-RQg6lTrN.d.ts → index-MV2yGIAq.d.ts} +2 -2
  88. package/dist/{index-Bs3-LC83.d.cts → index-_BXz9K7b.d.cts} +1 -1
  89. package/dist/{index-SSGqF8mI.d.cts → index-aBqZUx3B.d.cts} +1 -1
  90. package/dist/{index-CFW32Dy1.d.ts → index-eYHRkoK-.d.ts} +1 -1
  91. package/dist/{index-CwhcFzTA.d.ts → index-gXTVbSax.d.ts} +2 -2
  92. package/dist/{index-D-kHVedZ.d.cts → index-j33Lfb1G.d.cts} +22 -1
  93. package/dist/{index-BEpRsvhg.d.ts → index-lpGUhTBn.d.ts} +3 -3
  94. package/dist/{index-CcS0t-l2.d.ts → index-zMQIQuDu.d.ts} +22 -1
  95. package/dist/index.cjs +53 -50
  96. package/dist/index.d.cts +26 -26
  97. package/dist/index.d.ts +26 -26
  98. package/dist/index.js +1 -1
  99. package/dist/patterns/ai/index.cjs +21 -18
  100. package/dist/patterns/ai/index.d.cts +6 -6
  101. package/dist/patterns/ai/index.d.ts +6 -6
  102. package/dist/patterns/ai/index.js +1 -1
  103. package/dist/patterns/audit/index.cjs +1 -1
  104. package/dist/patterns/audit/index.d.cts +3 -3
  105. package/dist/patterns/audit/index.d.ts +3 -3
  106. package/dist/patterns/audit/index.js +1 -1
  107. package/dist/patterns/cqrs/index.cjs +1 -1
  108. package/dist/patterns/cqrs/index.d.cts +2 -2
  109. package/dist/patterns/cqrs/index.d.ts +2 -2
  110. package/dist/patterns/cqrs/index.js +1 -1
  111. package/dist/patterns/demo-shell/index.cjs +1 -1
  112. package/dist/patterns/demo-shell/index.d.cts +3 -3
  113. package/dist/patterns/demo-shell/index.d.ts +3 -3
  114. package/dist/patterns/demo-shell/index.js +1 -1
  115. package/dist/patterns/domain-templates/index.cjs +5 -5
  116. package/dist/patterns/domain-templates/index.d.cts +2 -2
  117. package/dist/patterns/domain-templates/index.d.ts +2 -2
  118. package/dist/patterns/domain-templates/index.js +1 -1
  119. package/dist/patterns/graphspec/index.cjs +27 -25
  120. package/dist/patterns/graphspec/index.d.cts +2 -2
  121. package/dist/patterns/graphspec/index.d.ts +2 -2
  122. package/dist/patterns/graphspec/index.js +1 -1
  123. package/dist/patterns/guarded-execution/index.cjs +5 -5
  124. package/dist/patterns/guarded-execution/index.d.cts +4 -4
  125. package/dist/patterns/guarded-execution/index.d.ts +4 -4
  126. package/dist/patterns/guarded-execution/index.js +1 -1
  127. package/dist/patterns/harness/index.cjs +12 -11
  128. package/dist/patterns/harness/index.d.cts +5 -5
  129. package/dist/patterns/harness/index.d.ts +5 -5
  130. package/dist/patterns/harness/index.js +1 -1
  131. package/dist/patterns/job-queue/index.cjs +1 -1
  132. package/dist/patterns/job-queue/index.d.cts +2 -2
  133. package/dist/patterns/job-queue/index.d.ts +2 -2
  134. package/dist/patterns/job-queue/index.js +1 -1
  135. package/dist/patterns/lens/index.cjs +1 -1
  136. package/dist/patterns/lens/index.d.cts +3 -3
  137. package/dist/patterns/lens/index.d.ts +3 -3
  138. package/dist/patterns/lens/index.js +1 -1
  139. package/dist/patterns/memory/index.cjs +1 -1
  140. package/dist/patterns/memory/index.d.cts +2 -2
  141. package/dist/patterns/memory/index.d.ts +2 -2
  142. package/dist/patterns/memory/index.js +1 -1
  143. package/dist/patterns/messaging/index.cjs +1 -1
  144. package/dist/patterns/messaging/index.d.cts +2 -2
  145. package/dist/patterns/messaging/index.d.ts +2 -2
  146. package/dist/patterns/messaging/index.js +1 -1
  147. package/dist/patterns/orchestration/index.cjs +7 -7
  148. package/dist/patterns/orchestration/index.d.cts +2 -2
  149. package/dist/patterns/orchestration/index.d.ts +2 -2
  150. package/dist/patterns/orchestration/index.js +1 -1
  151. package/dist/patterns/reactive-layout/index.cjs +1 -1
  152. package/dist/patterns/reactive-layout/index.d.cts +3 -3
  153. package/dist/patterns/reactive-layout/index.d.ts +3 -3
  154. package/dist/patterns/reactive-layout/index.js +1 -1
  155. package/dist/patterns/reduction/index.cjs +1 -1
  156. package/dist/patterns/reduction/index.d.cts +2 -2
  157. package/dist/patterns/reduction/index.d.ts +2 -2
  158. package/dist/patterns/reduction/index.js +1 -1
  159. package/dist/patterns/refine-loop/index.cjs +3 -3
  160. package/dist/patterns/refine-loop/index.d.cts +3 -3
  161. package/dist/patterns/refine-loop/index.d.ts +3 -3
  162. package/dist/patterns/refine-loop/index.js +1 -1
  163. package/dist/patterns/resilient-pipeline/index.d.cts +3 -3
  164. package/dist/patterns/resilient-pipeline/index.d.ts +3 -3
  165. package/dist/patterns/resilient-pipeline/index.js +1 -1
  166. package/dist/patterns/surface/index.cjs +15 -13
  167. package/dist/patterns/surface/index.d.cts +3 -3
  168. package/dist/patterns/surface/index.d.ts +3 -3
  169. package/dist/patterns/surface/index.js +1 -1
  170. package/dist/{reactive-layout-BAr6-_o5.d.ts → reactive-layout-Bq0rA2Wb.d.ts} +1 -1
  171. package/dist/{reactive-layout-5oEn8lHM.d.cts → reactive-layout-Dhhe54Oj.d.cts} +1 -1
  172. package/dist/{topology-tree-CVREibAc.d.cts → topology-tree-CpSjvIXp.d.cts} +1 -1
  173. package/dist/{topology-tree-CkjojcB6.d.ts → topology-tree-DAbCV2Yw.d.ts} +1 -1
  174. package/package.json +1 -1
  175. package/dist/chunk-ASDKRNOJ.js +0 -60
  176. package/dist/chunk-PSQNYY72.js +0 -7
  177. package/dist/chunk-XEFAMCEA.js +0 -78
@@ -1,19 +1,19 @@
1
1
  export { e as CapabilitiesRegistry, C as ChatMessage, L as LLMAdapter, a as LLMInvokeOptions, b as LLMResponse, M as ModelCapabilities, f as ModelFeatures, g as ModelLimits, h as ModelPricing, i as PriceBreakdown, P as PricingFn, j as PricingRegistry, R as Rate, S as StreamDelta, k as TieredRate, T as TokenUsage, c as ToolCall, d as ToolDefinition, l as composePricing, m as computePrice, n as createCapabilitiesRegistry, o as createPricingRegistry, p as pricingFor, r as registryPricing, z as zeroPrice } from '../../types-BgMqbc7N.cjs';
2
2
  export { A as AdapterProvider, b as AdapterTier, d as AllTiersExhaustedError, a as CascadeExhaustionReport, C as CascadingLlmAdapterOptions, e as CreateAdapterOptions, O as OpenAICompatAdapterOptions, f as OpenAICompatPreset, g as OpenAISdkLike, h as cascadingLlmAdapter, c as createAdapter, o as openAICompatAdapter, t as tier } from '../../cascading-BfQmSmjU.cjs';
3
- export { A as AdapterStats, a as AdmissionScore3DOptions, b as AdmissionScores, c as AgentLoopGraph, d as AgentLoopOptions, e as AgentLoopStatus, f as AgentMemoryGraph, g as AgentMemoryOptions, h as AnthropicAdapterOptions, j as AnthropicSdkLike, B as BudgetCaps, k as BudgetExhaustedError, l as BudgetGateBundle, m as BudgetTotals, C as CallStatsEvent, n as ChatStreamGraph, o as ChatStreamOptions, p as ContentDecision, q as ContentGateOptions, r as CostMeterOptions, s as CostMeterReading, D as DEFAULT_DECAY_RATE, t as DryRunAdapterOptions, E as ExtractedToolCall, F as FromLLMOptions, u as FrozenContextOptions, G as GatedStreamHandle, v as GatedStreamOptions, w as GaugesAsContextOptions, x as GoogleAdapterOptions, y as GoogleSdkLike, z as GraphDefValidation, H as GraphFromSpecOptions, I as HandoffOptions, J as HttpErrorLike, K as KeywordFlag, L as KeywordFlagExtractorOptions, M as KnobsAsToolsResult, N as LLMConsolidatorOptions, O as LLMExtractorOptions, P as LLMTimeoutError, Q as McpToolSchema, R as MemoryTier, S as MemoryTiersBundle, T as MemoryTiersOptions, U as OpenAIToolSchema, V as PromptNodeOptions, W as RedactorOptions, X as ResilientAdapterBundle, Y as ResilientAdapterOptions, Z as RetrievalEntry, _ as RetrievalPipelineOptions, $ as RetrievalQuery, a0 as RetrievalTrace, a1 as StampedDelta, a2 as StrategyOperation, a3 as StrategyPlan, a4 as StreamingPromptNodeHandle, a5 as StreamingPromptNodeOptions, a6 as SuggestStrategyOptions, a7 as SystemPromptHandle, a8 as ToolRegistryGraph, a9 as ToolRegistryOptions, aa as ToolResult, ab as ToolSelectorOptions, ac as WithBreakerOptions, ad as WithBudgetGateOptions, ae as WithDryRunBundle, af as WithDryRunOptions, ag as WithRateLimiterOptions, ah as WithRetryOptions, ai as admissionFilter3D, aj as agentLoop, ak as agentMemory, al as anthropicAdapter, am as chatStream, an as contentGate, ao as costMeterExtractor, ap as dryRunAdapter, aq as fromLLM, ar as frozenContext, as as gatedStream, at as gaugesAsContext, au as googleAdapter, av as graphFromSpec, aw as handoff, ax as keywordFlagExtractor, ay as knobsAsTools, az as llmConsolidator, aA as llmExtractor, aB as observableAdapter, aC as parseRateLimitFromError, aD as promptNode, aE as redactor, aF as resilientAdapter, aG as streamExtractor, aH as streamingPromptNode, aI as suggestStrategy, aJ as systemPromptBuilder, aK as toolCallExtractor, aL as toolRegistry, aM as toolSelector, aN as validateGraphDef, aO as withBreaker, aP as withBudgetGate, aQ as withDryRun, aR as withRateLimiter, aS as withRetry, aT as withTimeout } from '../../index-CZChc85Q.cjs';
3
+ export { A as AdapterStats, a as AdmissionScore3DOptions, b as AdmissionScoredOptions, c as AdmissionScores, d as AdmissionThresholds, e as AgentLoopGraph, f as AgentLoopOptions, g as AgentLoopStatus, h as AgentMemoryGraph, j as AgentMemoryOptions, k as AnthropicAdapterOptions, l as AnthropicSdkLike, B as BudgetCaps, m as BudgetExhaustedError, n as BudgetGateBundle, o as BudgetTotals, C as CallStatsEvent, p as ChatStreamGraph, q as ChatStreamOptions, r as ContentDecision, s as ContentGateOptions, t as CostMeterOptions, u as CostMeterReading, D as DEFAULT_DECAY_RATE, v as DryRunAdapterOptions, E as ExtractedToolCall, F as FromLLMOptions, w as FrozenContextOptions, G as GatedStreamHandle, x as GatedStreamOptions, y as GaugesAsContextOptions, z as GoogleAdapterOptions, H as GoogleSdkLike, I as GraphDefValidation, J as GraphFromSpecOptions, K as HandoffOptions, L as HttpErrorLike, M as KeywordFlag, N as KeywordFlagExtractorOptions, O as KnobsAsToolsResult, P as LLMConsolidatorOptions, Q as LLMExtractorOptions, R as LLMTimeoutError, S as McpToolSchema, T as MemoryRetrievalBundle, U as MemoryRetrievalOptions, V as MemoryTier, W as MemoryTiersBundle, X as MemoryTiersOptions, Y as MemoryWithKGOptions, Z as MemoryWithTiersOptions, _ as MemoryWithVectorsOptions, $ as OpenAIToolSchema, a0 as PromptNodeOptions, a1 as RedactorOptions, a2 as ResilientAdapterBundle, a3 as ResilientAdapterOptions, a4 as RetrievalEntry, a5 as RetrievalPipelineOptions, a6 as RetrievalQuery, a7 as RetrievalTrace, a8 as StampedDelta, a9 as StrategyOperation, aa as StrategyPlan, ab as StreamingPromptNodeHandle, ac as StreamingPromptNodeOptions, ad as SuggestStrategyOptions, ae as SystemPromptHandle, af as ToolRegistryGraph, ag as ToolRegistryOptions, ah as ToolResult, ai as ToolSelectorOptions, aj as WithBreakerOptions, ak as WithBudgetGateOptions, al as WithDryRunBundle, am as WithDryRunOptions, an as WithRateLimiterOptions, ao as WithRetryOptions, ap as admissionFilter3D, aq as admissionScored, ar as agentLoop, as as agentMemory, at as anthropicAdapter, au as chatStream, av as contentGate, aw as costMeterExtractor, ax as dryRunAdapter, ay as fromLLM, az as frozenContext, aA as gatedStream, aB as gaugesAsContext, aC as googleAdapter, aD as graphFromSpec, aE as graphFromSpecReactive, aF as handoff, aG as keywordFlagExtractor, aH as knobsAsTools, aI as llmConsolidator, aJ as llmExtractor, aK as memoryRetrieval, aL as memoryWithKG, aM as memoryWithTiers, aN as memoryWithVectors, aO as observableAdapter, aP as parseRateLimitFromError, aQ as promptNode, aR as redactor, aS as resilientAdapter, aT as streamExtractor, aU as streamingPromptNode, aV as suggestStrategy, aW as suggestStrategyReactive, aX as systemPromptBuilder, aY as toolCallExtractor, aZ as toolRegistry, a_ as toolSelector, a$ as validateGraphDef, b0 as withBreaker, b1 as withBudgetGate, b2 as withDryRun, b3 as withRateLimiter, b4 as withRetry, b5 as withTimeout } from '../../index-BuN2wGJs.cjs';
4
4
  export { F as FallbackAdapterOptions, a as FallbackFixture, b as FallbackMissError, c as FallbackMissPolicy, R as ReplayCacheKeyContext, d as ReplayCacheMissError, e as ReplayCacheMode, W as WithReplayCacheOptions, f as canonicalJson, g as fallbackAdapter, w as withReplayCache } from '../../fallback-Cb3GH1O7.cjs';
5
5
  export { f as CircuitOpenError } from '../../resilience-Q6Bt_7y0.cjs';
6
6
  import '../../node-BVV7G1bq.cjs';
7
7
  import '../../extra/sources.cjs';
8
8
  import '../../reactive-log-5jFeNRmd.cjs';
9
- import '../../graph-C4Uxwv0T.cjs';
9
+ import '../../graph-CdJeX7O7.cjs';
10
10
  import '../../meta-COtmHLwT.cjs';
11
11
  import '../../extra/storage-core.cjs';
12
- import '../../index-B-z8WaSd.cjs';
13
- import '../../index-DVNLe3pS.cjs';
12
+ import '../../index-BDLy6CQ9.cjs';
13
+ import '../../index-CCdg0JLX.cjs';
14
14
  import '../../sugar-CqR6DJ7v.cjs';
15
15
  import '../../composite-CH0S8DFn.cjs';
16
16
  import '../../reactive-map-IJIfZxoh.cjs';
17
- import '../../index-lKuLYmHO.cjs';
18
- import '../../index-D-kHVedZ.cjs';
17
+ import '../../index-BiGeETJs.cjs';
18
+ import '../../index-j33Lfb1G.cjs';
19
19
  import '../../content-addressed-storage-DqIWCmZG.cjs';
@@ -1,19 +1,19 @@
1
1
  export { e as CapabilitiesRegistry, C as ChatMessage, L as LLMAdapter, a as LLMInvokeOptions, b as LLMResponse, M as ModelCapabilities, f as ModelFeatures, g as ModelLimits, h as ModelPricing, i as PriceBreakdown, P as PricingFn, j as PricingRegistry, R as Rate, S as StreamDelta, k as TieredRate, T as TokenUsage, c as ToolCall, d as ToolDefinition, l as composePricing, m as computePrice, n as createCapabilitiesRegistry, o as createPricingRegistry, p as pricingFor, r as registryPricing, z as zeroPrice } from '../../types-CdfO2QTt.js';
2
2
  export { A as AdapterProvider, b as AdapterTier, d as AllTiersExhaustedError, a as CascadeExhaustionReport, C as CascadingLlmAdapterOptions, e as CreateAdapterOptions, O as OpenAICompatAdapterOptions, f as OpenAICompatPreset, g as OpenAISdkLike, h as cascadingLlmAdapter, c as createAdapter, o as openAICompatAdapter, t as tier } from '../../cascading-D3sapjue.js';
3
- export { A as AdapterStats, a as AdmissionScore3DOptions, b as AdmissionScores, c as AgentLoopGraph, d as AgentLoopOptions, e as AgentLoopStatus, f as AgentMemoryGraph, g as AgentMemoryOptions, h as AnthropicAdapterOptions, j as AnthropicSdkLike, B as BudgetCaps, k as BudgetExhaustedError, l as BudgetGateBundle, m as BudgetTotals, C as CallStatsEvent, n as ChatStreamGraph, o as ChatStreamOptions, p as ContentDecision, q as ContentGateOptions, r as CostMeterOptions, s as CostMeterReading, D as DEFAULT_DECAY_RATE, t as DryRunAdapterOptions, E as ExtractedToolCall, F as FromLLMOptions, u as FrozenContextOptions, G as GatedStreamHandle, v as GatedStreamOptions, w as GaugesAsContextOptions, x as GoogleAdapterOptions, y as GoogleSdkLike, z as GraphDefValidation, H as GraphFromSpecOptions, I as HandoffOptions, J as HttpErrorLike, K as KeywordFlag, L as KeywordFlagExtractorOptions, M as KnobsAsToolsResult, N as LLMConsolidatorOptions, O as LLMExtractorOptions, P as LLMTimeoutError, Q as McpToolSchema, R as MemoryTier, S as MemoryTiersBundle, T as MemoryTiersOptions, U as OpenAIToolSchema, V as PromptNodeOptions, W as RedactorOptions, X as ResilientAdapterBundle, Y as ResilientAdapterOptions, Z as RetrievalEntry, _ as RetrievalPipelineOptions, $ as RetrievalQuery, a0 as RetrievalTrace, a1 as StampedDelta, a2 as StrategyOperation, a3 as StrategyPlan, a4 as StreamingPromptNodeHandle, a5 as StreamingPromptNodeOptions, a6 as SuggestStrategyOptions, a7 as SystemPromptHandle, a8 as ToolRegistryGraph, a9 as ToolRegistryOptions, aa as ToolResult, ab as ToolSelectorOptions, ac as WithBreakerOptions, ad as WithBudgetGateOptions, ae as WithDryRunBundle, af as WithDryRunOptions, ag as WithRateLimiterOptions, ah as WithRetryOptions, ai as admissionFilter3D, aj as agentLoop, ak as agentMemory, al as anthropicAdapter, am as chatStream, an as contentGate, ao as costMeterExtractor, ap as dryRunAdapter, aq as fromLLM, ar as frozenContext, as as gatedStream, at as gaugesAsContext, au as googleAdapter, av as graphFromSpec, aw as handoff, ax as keywordFlagExtractor, ay as knobsAsTools, az as llmConsolidator, aA as llmExtractor, aB as observableAdapter, aC as parseRateLimitFromError, aD as promptNode, aE as redactor, aF as resilientAdapter, aG as streamExtractor, aH as streamingPromptNode, aI as suggestStrategy, aJ as systemPromptBuilder, aK as toolCallExtractor, aL as toolRegistry, aM as toolSelector, aN as validateGraphDef, aO as withBreaker, aP as withBudgetGate, aQ as withDryRun, aR as withRateLimiter, aS as withRetry, aT as withTimeout } from '../../index-Bd6oFZqO.js';
3
+ export { A as AdapterStats, a as AdmissionScore3DOptions, b as AdmissionScoredOptions, c as AdmissionScores, d as AdmissionThresholds, e as AgentLoopGraph, f as AgentLoopOptions, g as AgentLoopStatus, h as AgentMemoryGraph, j as AgentMemoryOptions, k as AnthropicAdapterOptions, l as AnthropicSdkLike, B as BudgetCaps, m as BudgetExhaustedError, n as BudgetGateBundle, o as BudgetTotals, C as CallStatsEvent, p as ChatStreamGraph, q as ChatStreamOptions, r as ContentDecision, s as ContentGateOptions, t as CostMeterOptions, u as CostMeterReading, D as DEFAULT_DECAY_RATE, v as DryRunAdapterOptions, E as ExtractedToolCall, F as FromLLMOptions, w as FrozenContextOptions, G as GatedStreamHandle, x as GatedStreamOptions, y as GaugesAsContextOptions, z as GoogleAdapterOptions, H as GoogleSdkLike, I as GraphDefValidation, J as GraphFromSpecOptions, K as HandoffOptions, L as HttpErrorLike, M as KeywordFlag, N as KeywordFlagExtractorOptions, O as KnobsAsToolsResult, P as LLMConsolidatorOptions, Q as LLMExtractorOptions, R as LLMTimeoutError, S as McpToolSchema, T as MemoryRetrievalBundle, U as MemoryRetrievalOptions, V as MemoryTier, W as MemoryTiersBundle, X as MemoryTiersOptions, Y as MemoryWithKGOptions, Z as MemoryWithTiersOptions, _ as MemoryWithVectorsOptions, $ as OpenAIToolSchema, a0 as PromptNodeOptions, a1 as RedactorOptions, a2 as ResilientAdapterBundle, a3 as ResilientAdapterOptions, a4 as RetrievalEntry, a5 as RetrievalPipelineOptions, a6 as RetrievalQuery, a7 as RetrievalTrace, a8 as StampedDelta, a9 as StrategyOperation, aa as StrategyPlan, ab as StreamingPromptNodeHandle, ac as StreamingPromptNodeOptions, ad as SuggestStrategyOptions, ae as SystemPromptHandle, af as ToolRegistryGraph, ag as ToolRegistryOptions, ah as ToolResult, ai as ToolSelectorOptions, aj as WithBreakerOptions, ak as WithBudgetGateOptions, al as WithDryRunBundle, am as WithDryRunOptions, an as WithRateLimiterOptions, ao as WithRetryOptions, ap as admissionFilter3D, aq as admissionScored, ar as agentLoop, as as agentMemory, at as anthropicAdapter, au as chatStream, av as contentGate, aw as costMeterExtractor, ax as dryRunAdapter, ay as fromLLM, az as frozenContext, aA as gatedStream, aB as gaugesAsContext, aC as googleAdapter, aD as graphFromSpec, aE as graphFromSpecReactive, aF as handoff, aG as keywordFlagExtractor, aH as knobsAsTools, aI as llmConsolidator, aJ as llmExtractor, aK as memoryRetrieval, aL as memoryWithKG, aM as memoryWithTiers, aN as memoryWithVectors, aO as observableAdapter, aP as parseRateLimitFromError, aQ as promptNode, aR as redactor, aS as resilientAdapter, aT as streamExtractor, aU as streamingPromptNode, aV as suggestStrategy, aW as suggestStrategyReactive, aX as systemPromptBuilder, aY as toolCallExtractor, aZ as toolRegistry, a_ as toolSelector, a$ as validateGraphDef, b0 as withBreaker, b1 as withBudgetGate, b2 as withDryRun, b3 as withRateLimiter, b4 as withRetry, b5 as withTimeout } from '../../index-DhlAMlm9.js';
4
4
  export { F as FallbackAdapterOptions, a as FallbackFixture, b as FallbackMissError, c as FallbackMissPolicy, R as ReplayCacheKeyContext, d as ReplayCacheMissError, e as ReplayCacheMode, W as WithReplayCacheOptions, f as canonicalJson, g as fallbackAdapter, w as withReplayCache } from '../../fallback-DRjJ_ZM8.js';
5
5
  export { f as CircuitOpenError } from '../../resilience-CludlzcP.js';
6
6
  import '../../node-BVV7G1bq.js';
7
7
  import '../../extra/sources.js';
8
8
  import '../../reactive-log-BOJDCI5x.js';
9
- import '../../graph-CWeI0aHd.js';
9
+ import '../../graph-BOhEGJ6E.js';
10
10
  import '../../meta-BMwx3ExI.js';
11
11
  import '../../extra/storage-core.js';
12
- import '../../index-CvS9IuTG.js';
13
- import '../../index-CFW32Dy1.js';
12
+ import '../../index-Dbmj0iYR.js';
13
+ import '../../index-eYHRkoK-.js';
14
14
  import '../../sugar-BHbAACDG.js';
15
15
  import '../../composite-BY9hMxN7.js';
16
16
  import '../../reactive-map-CtRaCddO.js';
17
- import '../../index-DnrZghBB.js';
18
- import '../../index-CcS0t-l2.js';
17
+ import '../../index-BbcSZCAG.js';
18
+ import '../../index-zMQIQuDu.js';
19
19
  import '../../content-addressed-storage-BUiREIuj.js';
@@ -1 +1 @@
1
- import{A as O,B as P,C as Q,D as R,E as S,F as T,G as U,H as V,I as W,J as X,K as Y,L as Z,M as _,N as $,O as aa,P as ba,Q as ca,R as da,S as ea,T as fa,U as ga,V as ha,a as b,b as m,c as n,d as o,e as p,f as q,g as r,h as s,i as t,j as u,k as v,l as w,m as x,n as y,o as C,p as D,q as E,r as F,s as G,t as H,u as I,v as J,w as K,x as L,y as M,z as N}from"../../chunk-ASDKRNOJ.js";import"../../chunk-OKQUPJRY.js";import"../../chunk-5LJAQTSS.js";import"../../chunk-XEFAMCEA.js";import"../../chunk-JMGGCSIC.js";import"../../chunk-EBQ6FXKW.js";import{a as c,b as j,c as k,d as l,e as z,f as A,g as B}from"../../chunk-PNTBXOQ6.js";import{a as d,g as e,h as f,i as g,j as h,k as i}from"../../chunk-FTA5TB2A.js";import"../../chunk-K54OKWNY.js";import"../../chunk-CZVYLXFK.js";import"../../chunk-7EQPXQ7H.js";import"../../chunk-7QMVU3IX.js";import"../../chunk-Y26UN6J5.js";import{c as a}from"../../chunk-RWGJQQLT.js";import"../../chunk-4VXL3UZK.js";import"../../chunk-LWGLBCMU.js";import"../../chunk-XRSHMHEG.js";import"../../chunk-PSQNYY72.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-N2KKISCE.js";import"../../chunk-I6VIH3VA.js";import"../../chunk-WQ7I7JVU.js";import"../../chunk-4VVTGLXJ.js";import"../../chunk-UMH3HSP7.js";import"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{W as AgentLoopGraph,z as AllTiersExhaustedError,u as BudgetExhaustedError,S as ChatStreamGraph,a as CircuitOpenError,ba as DEFAULT_DECAY_RATE,h as FallbackMissError,D as LLMTimeoutError,e as ReplayCacheMissError,U as ToolRegistryGraph,_ as admissionFilter3D,X as agentLoop,ca as agentMemory,c as anthropicAdapter,g as canonicalJson,A as cascadingLlmAdapter,T as chatStream,r as composePricing,o as computePrice,Q as contentGate,M as costMeterExtractor,l as createAdapter,b as createCapabilitiesRegistry,p as createPricingRegistry,d as dryRunAdapter,i as fallbackAdapter,G as fromLLM,H as frozenContext,K as gatedStream,da as gaugesAsContext,j as googleAdapter,ea as graphFromSpec,Y as handoff,N as keywordFlagExtractor,fa as knobsAsTools,aa as llmConsolidator,$ as llmExtractor,m as observableAdapter,k as openAICompatAdapter,x as parseRateLimitFromError,s as pricingFor,I as promptNode,R as redactor,q as registryPricing,F as resilientAdapter,O as streamExtractor,J as streamingPromptNode,ga as suggestStrategy,L as systemPromptBuilder,B as tier,P as toolCallExtractor,V as toolRegistry,Z as toolSelector,ha as validateGraphDef,t as withBreaker,v as withBudgetGate,w as withDryRun,y as withRateLimiter,f as withReplayCache,C as withRetry,E as withTimeout,n as zeroPrice};
1
+ import{$ as na,A as O,B as P,C as Q,D as R,E as S,F as T,G as U,H as V,I as W,J as X,K as Y,L as Z,M as _,N as $,O as aa,P as ba,Q as ca,R as da,S as ea,T as fa,U as ga,V as ha,W as ia,X as ja,Y as ka,Z as la,_ as ma,a as b,aa as oa,b as m,c as n,d as o,e as p,f as q,g as r,h as s,i as t,j as u,k as v,l as w,m as x,n as y,o as C,p as D,q as E,r as F,s as G,t as H,u as I,v as J,w as K,x as L,y as M,z as N}from"../../chunk-2JNT5NDF.js";import"../../chunk-TOCCHQI6.js";import"../../chunk-ZWETYYQG.js";import"../../chunk-7JZ3YORY.js";import"../../chunk-WF3V5X2L.js";import"../../chunk-VXJX3ZZP.js";import{a as c,b as j,c as k,d as l,e as z,f as A,g as B}from"../../chunk-PNTBXOQ6.js";import{a as d,g as e,h as f,i as g,j as h,k as i}from"../../chunk-FTA5TB2A.js";import"../../chunk-K54OKWNY.js";import"../../chunk-CZVYLXFK.js";import"../../chunk-MFNOZ5E6.js";import"../../chunk-7QMVU3IX.js";import"../../chunk-Y26UN6J5.js";import{c as a}from"../../chunk-RWGJQQLT.js";import"../../chunk-4VXL3UZK.js";import"../../chunk-LWGLBCMU.js";import"../../chunk-XRSHMHEG.js";import"../../chunk-4JBKKUCJ.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-N2KKISCE.js";import"../../chunk-I6VIH3VA.js";import"../../chunk-WQ7I7JVU.js";import"../../chunk-4VVTGLXJ.js";import"../../chunk-UMH3HSP7.js";import"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{W as AgentLoopGraph,z as AllTiersExhaustedError,u as BudgetExhaustedError,S as ChatStreamGraph,a as CircuitOpenError,ca as DEFAULT_DECAY_RATE,h as FallbackMissError,D as LLMTimeoutError,e as ReplayCacheMissError,U as ToolRegistryGraph,$ as admissionFilter3D,_ as admissionScored,X as agentLoop,da as agentMemory,c as anthropicAdapter,g as canonicalJson,A as cascadingLlmAdapter,T as chatStream,r as composePricing,o as computePrice,Q as contentGate,M as costMeterExtractor,l as createAdapter,b as createCapabilitiesRegistry,p as createPricingRegistry,d as dryRunAdapter,i as fallbackAdapter,G as fromLLM,H as frozenContext,K as gatedStream,ia as gaugesAsContext,j as googleAdapter,ja as graphFromSpec,ka as graphFromSpecReactive,Y as handoff,N as keywordFlagExtractor,la as knobsAsTools,ba as llmConsolidator,aa as llmExtractor,ha as memoryRetrieval,fa as memoryWithKG,ga as memoryWithTiers,ea as memoryWithVectors,m as observableAdapter,k as openAICompatAdapter,x as parseRateLimitFromError,s as pricingFor,I as promptNode,R as redactor,q as registryPricing,F as resilientAdapter,O as streamExtractor,J as streamingPromptNode,ma as suggestStrategy,na as suggestStrategyReactive,L as systemPromptBuilder,B as tier,P as toolCallExtractor,V as toolRegistry,Z as toolSelector,oa as validateGraphDef,t as withBreaker,v as withBudgetGate,w as withDryRun,y as withRateLimiter,f as withReplayCache,C as withRetry,E as withTimeout,n as zeroPrice};
@@ -4,4 +4,4 @@
4
4
  `)}function hn(t){if(t.version!==fe)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${fe})`);for(let e of["name","nodes","edges","subgraphs"])if(!(e in t))throw new Error(`snapshot missing required key "${e}"`);if(typeof t.name!="string")throw new TypeError("snapshot 'name' must be a string");if(typeof t.nodes!="object"||t.nodes===null||Array.isArray(t.nodes))throw new TypeError("snapshot 'nodes' must be an object");if(!Array.isArray(t.edges))throw new TypeError("snapshot 'edges' must be an array");if(!Array.isArray(t.subgraphs))throw new TypeError("snapshot 'subgraphs' must be an array")}function xr(t,e){let n=new WeakMap,r=(s,o)=>{if(Object.is(s,o))return!0;if(s==null||o==null||typeof s!="object"||typeof o!="object")return!1;let i=n.get(s);if(i==null&&(i=new WeakSet,n.set(s,i)),i.has(o))return!0;i.add(o);let a=s.constructor,l=o.constructor;if(a!==l)return!1;if(s instanceof Date)return s.getTime()===o.getTime();if(s instanceof RegExp)return s.source===o.source&&s.flags===o.flags;if(Array.isArray(s)){let p=o;if(s.length!==p.length)return!1;for(let h=0;h<s.length;h++)if(!r(s[h],p[h]))return!1;return!0}if(s instanceof Map){let p=o;if(s.size!==p.size)return!1;for(let[h,d]of s)if(!p.has(h)||!r(d,p.get(h)))return!1;return!0}if(s instanceof Set){let p=o;if(s.size!==p.size)return!1;for(let h of s){let d=!1;for(let g of p)if(r(h,g)){d=!0;break}if(!d)return!1}return!0}if(ArrayBuffer.isView(s)){let p=s,h=o;if(p.length!==h.length)return!1;for(let d=0;d<p.length;d++)if(p[d]!==h[d])return!1;return!0}let u=Object.keys(s),c=Object.keys(o);if(u.length!==c.length)return!1;let f=new Set(c);for(let p of u)if(!f.has(p)||!r(s[p],o[p]))return!1;return!0};return r(t,e)}function Nt(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(Nt);let e=t,n=Object.keys(e).sort(),r={};for(let s of n)r[s]=Nt(e[s]);return r}function wr(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function Tr(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function Or(t){return t==="TD"?"down":t==="BT"?"up":t==="RL"?"left":"right"}function mn(t){let e=new Set,n=[];function r(s,o){let i=`${s}\0${o}`;e.has(i)||(e.add(i),n.push([s,o]))}for(let[s,o]of Object.entries(t.nodes)){let i=o.deps;if(i)for(let a of i)r(a,s)}for(let s of t.edges)r(s.from,s.to);return n}function bn(t){if(t===void 0)return"LR";if(t==="TD"||t==="LR"||t==="BT"||t==="RL")return t;throw new Error(`invalid diagram direction ${String(t)}; expected one of: TD, LR, BT, RL`)}function Er(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,{expand:s,...o}=t,i={...o,edges:n?t.edges:[],subgraphs:r?t.subgraphs:[]},a=JSON.stringify(Nt(i),null,e.indent??2);return e.logger?.(a),a}function Nr(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,s=[];s.push(`Graph ${t.name}`),s.push("Nodes:");for(let i of Object.keys(t.nodes).sort()){let a=t.nodes[i];s.push(`- ${i} (${a.type}/${a.status}): ${Ze(a.value)}`)}if(n){s.push("Edges:");for(let i of t.edges)s.push(`- ${i.from} -> ${i.to}`)}if(r){s.push("Subgraphs:");for(let i of t.subgraphs)s.push(`- ${i}`)}let o=s.join(`
5
5
  `);return e.logger?.(o),o}function yn(t,e){let n=bn(e.direction),r=Object.keys(t.nodes).sort(),s=new Map;for(let i=0;i<r.length;i+=1)s.set(r[i],`n${i}`);let o=[`flowchart ${n}`];for(let i of r){let a=s.get(i);o.push(` ${a}["${wr(i)}"]`)}for(let[i,a]of mn(t)){let l=s.get(i),u=s.get(a);!l||!u||o.push(` ${l} --> ${u}`)}return o.join(`
6
6
  `)}function kr(t,e){let n=yn(t,e);return vn(n)}function vn(t,e){let n=e?.theme??"default",r=e?.autoSync??!0,o=JSON.stringify({code:t,mermaid:{theme:n},autoSync:r}),i=new TextEncoder().encode(o),a="";for(let u=0;u<i.length;u++)a+=String.fromCharCode(i[u]);return`https://mermaid.live/edit#base64:${globalThis.btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}function Sr(t,e){let n=bn(e.direction),r=Object.keys(t.nodes).sort(),s=new Map;for(let i=0;i<r.length;i+=1)s.set(r[i],`n${i}`);let o=[`direction: ${Or(n)}`];for(let i of r){let a=s.get(i);o.push(`${a}: "${Tr(i)}"`)}for(let[i,a]of mn(t)){let l=s.get(i),u=s.get(a);!l||!u||o.push(`${l} -> ${u}`)}return o.join(`
7
- `)}function Ar(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Xe(t){let e="^";for(let n=0;n<t.length;n+=1){let r=t[n];if(r==="*"){e+=".*";continue}if(r==="?"){e+=".";continue}if(r==="["){let s=t.indexOf("]",n+1);if(s<=n+1){e+="\\[";continue}let o=t.slice(n+1,s);o.startsWith("!")&&(o=`^${o.slice(1)}`),o=o.replace(/\\/g,"\\\\"),e+=`[${o}]`,n=s;continue}e+=Ar(r)}return e+="$",new RegExp(e)}var Rr={data:"\x1B[32m",dirty:"\x1B[33m",resolved:"\x1B[36m",invalidate:"\x1B[93m",pause:"\x1B[90m",resume:"\x1B[96m",complete:"\x1B[34m",error:"\x1B[31m",teardown:"\x1B[91m",derived:"\x1B[35m",path:"\x1B[90m",reset:"\x1B[0m"},Dr={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function Ze(t){if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||t==null)return String(t);try{return JSON.stringify(t)}catch{return"[unserializable]"}}function Cr(t){return t==="none"?Dr:t==="ansi"||t==null?Rr:{data:t.data??"",dirty:t.dirty??"",resolved:t.resolved??"",invalidate:t.invalidate??"",pause:t.pause??"",resume:t.resume??"",complete:t.complete??"",error:t.error??"",teardown:t.teardown??"",derived:t.derived??"",path:t.path??"",reset:t.reset??""}}function gn(t){if(t==null)return{};let e=t.detail;return e==="full"?{...t,structured:t.structured??!0,timeline:t.timeline??!0,causal:t.causal??!0,derived:t.derived??!0}:e==="minimal"?{...t,structured:t.structured??!0}:t.format==="stage-log"?{...t,structured:t.structured??!0,timeline:t.timeline??!0}:t}function Gr(t,e,n){for(let r=0;r<t.length;r++){let s=t.charCodeAt(r);if(s<32||s===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${s.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function Et(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(G))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${G}' (path separator)`);if(t===X)throw new Error(`Graph "${e}": ${n} name "${X}" is reserved for meta companion paths`);Gr(t,e,n)}function Mr(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(G);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function Ir(t,e){let n=!1;for(let s of t)if(!e.isMetaPassthrough(s[0])){n=!0;break}return n?t.filter(s=>e.isMetaPassthrough(s[0])):t}function _n(t){for(let e of t._mounts.values())_n(e);for(let e of t._nodes.values())try{e.down([[F]],{internal:!0})}catch{}}var U=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(G))throw new Error(`Graph name must not contain '${G}' (got "${e}")`);if(e===X)throw new Error(`Graph name "${X}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ye,this._traceRing=new ke(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning)}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=_t(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}add(e,n){let r=e.name,s=n?.name??r;if(s==null||s==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let o=s,i=n?.annotation;if(Et(o,this.name,"add"),this._mounts.has(o))throw new Error(`Graph "${this.name}": name "${o}" is already a mount point`);if(this._nodes.has(o))throw new Error(`Graph "${this.name}": node "${o}" already exists`);let a=this._nodeToName.get(e);if(a!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${a}"`);return this._nodes.set(o,e),this._nodeToName.set(e,o),this._emitTopology({kind:"added",name:o,nodeKind:"node"}),i!=null&&(this._annotations.set(o,i),this.config.inspectorEnabled&&this._traceRing.push({path:o,annotation:i,timestamp_ns:te()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof I&&n._applyVersioning(e)}remove(e){Et(e,this.name,"remove");let n=this._mounts.get(e);if(n){let o={kind:"mount",nodes:[],mounts:[]},i=[];n._collectObserveTargets("",i);for(let[a,l]of i)a.includes(`${G}${X}${G}`)||o.nodes.push(a);return o.nodes.sort(),o.mounts.push(e),o.mounts.push(...n._collectSubgraphs(`${e}${G}`)),this._mounts.delete(e),n._parent=void 0,_n(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:o}),o}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[F]],{internal:!0});let s={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:s}),s}removeAll(e){let n=typeof e=="function"?e:(()=>{let o=Xe(e);return i=>o.test(i)})(),r={kind:"mount",nodes:[],mounts:[]},s=[...this._nodes.keys(),...this._mounts.keys()].filter(o=>n(o));for(let o of s){let i=this.remove(o);r.nodes.push(...i.nodes),r.mounts.push(...i.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let s=e[r++];return{value:[s,n.get(s)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(G))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let s=r?.internal===!0;this.node(e).down([[M,n]],{actor:r?.actor,internal:s,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);Oe(()=>{for(let[s,o]of r)this.set(s,o,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[J]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let s=r?.internal===!0;this.node(e).down([[L,n]],{actor:r?.actor,internal:s,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[H]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[l,u]of this._nodes)r.set(u,l);let a=[];for(let[l,u]of this._nodes)if(u instanceof I)for(let c of u._deps){let f=r.get(c.node);f!=null&&a.push([f,l])}return a.sort((l,u)=>l[0]<u[0]?-1:l[0]>u[0]?1:l[1]<u[1]?-1:l[1]>u[1]?1:0),a}let s=[];this._collectObserveTargets("",s);let o=new Map;for(let[a,l]of s)o.set(l,a);let i=[];for(let[a,l]of s)if(l instanceof I)for(let u of l._deps){let c=o.get(u.node);c!=null&&i.push([c,a])}return i.sort((a,l)=>a[0]<l[0]?-1:a[0]>l[0]?1:a[1]<l[1]?-1:a[1]>l[1]?1:0),i}mount(e,n){if(Et(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(n===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(n._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${n._parent.name}"`);for(let r=this;r!=null;r=r._parent)if(r===n)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,n),n._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),n}resolve(e){let n=Mr(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],s=n.slice(1);if(s.length===0){let a=this._nodes.get(r);if(a)return a;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let o=this._nodes.get(r);if(o&&s.length>0&&s[0]===X)return this._resolveMetaChainFromNode(o,s,n.join(G));let i=this._mounts.get(r);if(!i)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${s.join(G)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return i.resolve(s.join(G))}_resolveMetaChainFromNode(e,n,r){let s=e,o=0,i=[...n];for(;o<i.length;){if(i[o]!==X)throw new Error(`Graph "${this.name}": expected ${X} segment in meta path "${r}"`);if(o+1>=i.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${X} in "${r}"`);let a=i[o+1],l=s.meta[a];if(!l)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);s=l,o+=2}return s}signal(e,n){if(n?.internal!==!0){for(let s of e)if(this.config.messageTier(s[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,s){for(let l of this._mounts.values())l._signalDeliver(e,n,r,s);let i=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=Ir(e,this.config);for(let l of[...this._nodes.keys()].sort()){let u=this._nodes.get(l);if(!r.has(u)){r.add(u);try{u.down(e,i)}catch(c){if(c instanceof Y)throw c;s.push(c)}a.length!==0&&this._signalMetaSubtree(u,a,r,i,s)}}}_signalMetaSubtree(e,n,r,s,o){for(let i of Object.keys(e.meta).sort()){let a=e.meta[i];if(!r.has(a)){r.add(a);try{a.down(n,s)}catch(l){if(l instanceof Y)throw l;o.push(l)}this._signalMetaSubtree(a,n,r,s,o)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=e?.actor,r=e?.filter,s=We(e?.detail,e?.fields),o=e?.format==="spec",i=o?We("minimal"):s,a=[];this._collectObserveTargets("",a);let l=new Map;for(let[x,w]of a)l.set(w,x);let u=[];{let x=a.map(([,N])=>N),w=new Set(l.values()),O=0;for(;x.length>0;){let N=x.shift();if(N instanceof I)for(let R of N._deps){let k=R.node;if(l.has(k))continue;let A=k.name??"",S=A;if(!S||w.has(S))if(A){let P=2;for(;w.has(`${A}#${P}`);)P++;S=`${A}#${P}`}else for(S=`__internal__/${O++}`;w.has(S);)S=`__internal__/${O++}`;l.set(k,S),w.add(S),u.push([S,k]),x.push(k)}}}let c=[...a,...u],f={};for(let[x,w]of c){if(n!=null&&!w.allowsObserve(n))continue;let O=wt(w,i),N=w instanceof I?w._deps.map(S=>l.get(S.node)??S.node.name??""):[],{name:R,...k}=O,A={...k,deps:N};if(!o){let S=this._annotations.get(x);S!=null&&(A.annotation=S)}if(r!=null)if(typeof r=="function"){let S=r;if(!(S.length>=2?S(x,A):S(A)))continue}else{let S=!0;for(let[P,z]of Object.entries(r)){let Z=P==="deps_includes"?"depsIncludes":P==="meta_has"?"metaHas":P;if(Z==="depsIncludes"){if(!A.deps.includes(String(z))){S=!1;break}continue}if(Z==="metaHas"){if(!Object.hasOwn(A.meta??{},String(z))){S=!1;break}continue}if(A[Z]!==z){S=!1;break}}if(!S)continue}f[x]=A}let p=new Set(Object.keys(f)),h=[];for(let[x,w]of c)if(w instanceof I)for(let O of w._deps){let N=l.get(O.node);N!=null&&h.push([N,x])}h.sort((x,w)=>x[0]<w[0]?-1:x[0]>w[0]?1:x[1]<w[1]?-1:x[1]>w[1]?1:0);let d=h.map(([x,w])=>({from:x,to:w}));(n!=null||r!=null)&&(d=d.filter(x=>p.has(x.from)&&p.has(x.to)));let g=this._collectSubgraphs(""),m=n!=null||r!=null?g.filter(x=>{let w=`${x}${G}`;return[...p].some(O=>O===x||O.startsWith(w))}):g,y=this,v=e,b={name:this.name,nodes:f,edges:d,subgraphs:m,expand(x){let w={...v,format:void 0};return Array.isArray(x)?(w.fields=x,w.detail=void 0):(w.detail=x,w.fields=void 0),y.describe(w)}},_=e??{},T=_.format;return T==="json"?Er(b,_):T==="pretty"?Nr(b,_):T==="mermaid"?yn(b,_):T==="mermaid-url"?kr(b,_):T==="d2"?Sr(b,_):T==="ascii"?cn(b,_):b}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${r}`;n.push(s),n.push(...this._mounts.get(r)._collectSubgraphs(`${s}${G}`))}return n}resourceProfile(e){return fn(this,e)}reachable(e,n,r={}){return r.withDetail===!0?kt(this.describe(),e,n,{...r,withDetail:!0}):kt(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(e,n,r)}_explainStatic(e,n,r){let s=this.describe({detail:"full"}),o=new Map(this._annotations),i=new Map;for(let[a,l]of Object.entries(s.nodes))l.lastMutation!=null&&i.set(a,l.lastMutation);return Yt(s,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:o,lastMutations:i})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",s=0,o=ne(s,{name:`${r}_version`}),i=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,u=()=>{a||l||(a=!0,Te(()=>{a=!1,!l&&(s+=1,o.emit(s))}))},c=i.onEvent(m=>{let y=m.type;y!=="data"&&y!=="error"&&y!=="complete"&&y!=="teardown"||u()}),f=[],p=new WeakSet,h=m=>{if(p.has(m)||l)return;p.add(m);let y=m.topology.subscribe(v=>{for(let b of v){if(b[0]!==M)continue;let _=b[1];if(u(),_.kind==="added"&&_.nodeKind==="mount"){let T=m._mounts.get(_.name);T!=null&&h(T)}}});f.push(y);for(let v of m._mounts.keys()){let b=m._mounts.get(v);b!=null&&h(b)}};h(this);let d;try{d=j([o],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(m,y)=>m===y})}catch(m){c();for(let y of f)y();throw i.dispose(),m}let g=re(d);return{node:d,dispose(){l=!0,c();for(let m of f)m();f.length=0,i.dispose(),g()}}}_explainReactive(e,n,r){let s=0,o=ne(s,{name:"explain_version"}),i=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,u=i.onEvent(h=>{let d=h.type;d!=="data"&&d!=="error"&&d!=="complete"&&d!=="teardown"||a||l||(a=!0,Te(()=>{a=!1,!l&&(s+=1,o.emit(s))}))}),c={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},f;try{f=j([o],()=>this._explainStatic(e,n,c),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(h,d)=>h.found===d.found&&h.reason===d.reason&&h.steps.length===d.steps.length&&Pr(h.steps,d.steps)})}catch(h){throw u(),i.dispose(),h}let p=re(f);return{node:f,dispose(){l=!0,u(),i.dispose(),p()}}}_pathsMatching(e){let n=Xe(e),r=[];return this._collectObserveTargets("",r),r.map(([s])=>s).filter(s=>n.test(s))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${G}${r}`;this._mounts.get(r)._collectObserveTargets(s,n)}for(let r of[...this._nodes.keys()].sort()){let s=this._nodes.get(r),o=e===""?r:`${e}${G}${r}`;n.push([o,s]),this._appendMetaObserveTargets(o,s,n)}}_appendMetaObserveTargets(e,n,r){for(let s of Object.keys(n.meta).sort()){let o=n.meta[s],i=`${e}${G}${X}${G}${s}`;r.push([i,o]),this._appendMetaObserveTargets(i,o,r)}}observe(e,n){let r=typeof e=="string",o=gn(r?n:e),i=o.structured===!0||o.timeline===!0||o.causal===!0||o.derived===!0||o.detail==="minimal"||o.detail==="full"||o.format!=null,a=o.actor;if(r){let c=e,f=this.resolve(c);if(a!=null&&!f.allowsObserve(a))throw new Y({actor:a,action:"observe",nodeName:c});return i?this._buildStructuredObserver([[c,f]],o,"one"):{subscribe(p){return f.subscribe(p)},up(p){try{f.up?.(p)}catch(h){if(h instanceof Y)return;throw h}}}}let l=[];this._collectObserveTargets("",l),l.sort((c,f)=>c[0]<f[0]?-1:c[0]>f[0]?1:0);let u=a==null?l:l.filter(([,c])=>c.allowsObserve(a));return i?this._buildStructuredObserver(u,o,"all"):{subscribe:c=>{let f=u.map(([p,h])=>h.subscribe(d=>{c(p,d)}));return()=>{for(let p of f)p()}},up:(c,f)=>{try{this.resolve(c).up?.(f)}catch(p){if(p instanceof Y)return;throw p}}}}_buildStructuredObserver(e,n,r){let s=r==="one"?e[0]?.[0]:void 0,o=i=>{if(r==="one"&&s!=null){let c=this.resolve(s);return this._buildStructuredObserver([[s,c]],i,"one")}let a=[];this._collectObserveTargets("",a),a.sort((c,f)=>c[0]<f[0]?-1:c[0]>f[0]?1:0);let l=i.actor,u=l==null?a:a.filter(([,c])=>c.allowsObserve(l));return this._buildStructuredObserver(u,i,"all")};return this._createObserveResult(e,n,o)}_createObserveResult(e,n,r){let s=n.timeline===!0,o=n.causal===!0,i=n.derived===!0,a=n.detail==="minimal",l=this.config.inspectorEnabled,u=(o||i)&&l,c=n.maxEvents,f=c!=null&&c>0?new ke(c):null,p=[],h=new Set,d={},g=new Set,m=0,y=0,v=0,b=0,_=0,T=0,x=!1,w=!1,O=0,N=new Map,R=new Map,k=new Map,A=E=>{f?f.push(E):p.push(E);for(let C of h)C(E)},S=()=>s?{timestamp_ns:te(),in_batch:Pe(),batch_id:O}:{},P=(E,C)=>{if(!(!u||!(E instanceof I)))return E._setInspectorHook(W=>{if(W.kind==="dep_message")N.set(E,W.depIndex);else if(W.kind==="run"){let _e=W.batchData.map((D,V)=>D!=null&&D.length>0?D.at(-1):W.prevData[V]);R.set(E,_e);let K=W.batchData.map(D=>D!=null?[...D]:void 0);k.set(E,K),i&&A({type:"derived",path:C,dep_values:_e,dep_batches:K,...S()})}})},z=E=>{let C=N.get(E),W=R.get(E);if(!o||W==null)return{};let K=(C!=null&&C>=0&&E instanceof I?E._deps[C]:void 0)?.node,D=K?.v,V=k.get(E);return{trigger_dep_index:C,trigger_dep_name:K?.name,...D!=null?{trigger_version:{id:D.id,version:D.version}}:{},dep_values:[...W],...V!=null?{dep_batches:V}:{}}},Z=[],ue=[];for(let[E,C]of e){let W=P(C,E);W&&Z.push(W),ue.push(C.subscribe(_e=>{O++;for(let K of _e){let D=K[0],V=S();if(D===M){d[E]=K[1];let it=C instanceof I?C.lastMutation?.actor??ge:ge;A({type:"data",path:E,data:K[1],actor:it,...V,...z(C)})}else if(a)D===B?m++:D===Q?y++:D===J?v++:D===ee?b++:D===se?_++:D===F?T++:D===H&&!g.has(E)?x=!0:D===L&&(w=!0,g.add(E));else if(D===B)m++,A({type:"dirty",path:E,...V});else if(D===Q)y++,A({type:"resolved",path:E,...V,...z(C)});else if(D===J)v++,A({type:"invalidate",path:E,...V});else if(D===ee)b++,A({type:"pause",path:E,lockId:K[1],...V});else if(D===se)_++,A({type:"resume",path:E,lockId:K[1],...V});else if(D===H)g.has(E)||(x=!0),A({type:"complete",path:E,...V});else if(D===L){w=!0,g.add(E);let it=C instanceof I?C.lastMutation?.actor??ge:ge;A({type:"error",path:E,data:K[1],actor:it,...V})}else D===F&&(T++,A({type:"teardown",path:E,...V}))}}))}let rt=!1,st=()=>{if(!rt){rt=!0;for(let E of ue)E();for(let E of Z)E();for(let E of Se)E({value:void 0,done:!0});Se.length=0}},ot=[],Se=[];h.add(E=>{let C=Se.shift();C?C({value:E,done:!1}):ot.push(E)});let Rt={get values(){return d},get dirtyCount(){return m},get resolvedCount(){return y},get invalidateCount(){return v},get pauseCount(){return b},get resumeCount(){return _},get teardownCount(){return T},get events(){return f?f.toArray():[...p]},get anyCompletedCleanly(){return x},get anyErrored(){return w},get completedWithoutErrors(){return x&&!w},onEvent(E){return h.add(E),()=>h.delete(E)},dispose:st,expand(E){st();let C={...n};return typeof E=="string"?C.detail=E:Object.assign(C,E),r(gn(C))},[Symbol.asyncIterator](){return{next(){return ot.length>0?Promise.resolve({value:ot.shift(),done:!1}):rt?Promise.resolve({value:void 0,done:!0}):new Promise(E=>Se.push(E))},return(){return st(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(Rt,n),Rt}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let s=n.logger??(d=>console.log(d)),o=n.includeTypes?new Set(n.includeTypes):null,i=n.excludeTypes?new Set(n.excludeTypes):null,a=o==null&&i==null?()=>!0:d=>(o==null||o.has(d))&&(i==null||!i.has(d)),l=Cr(n.theme),u=r==="stage-log"?te():0,c=d=>d==null?"":n.stageLabels?.[d]??d,f=(d,g)=>d.length>g?`${d.slice(0,g-1)}\u2026`:d,p=d=>d.type==="data"||d.type==="error"?f(Ze(d.data),120):"",h=d=>{if(r==="stage-log"){let w=(te()-u)/1e9,O=c(d.path).padEnd(9);if(d.type==="data"){let N=p(d);return`[${w.toFixed(3)}s] ${O} \u2190${N?` ${N}`:""}`}if(d.type==="error"){let N=p(d);return`[${w.toFixed(3)}s] ${O} \u2717${N?` ${N}`:""}`}return d.type==="complete"?`[${w.toFixed(3)}s] ${O} \u25A0 complete`:`[${w.toFixed(3)}s] ${O} ${d.type}`}if(r==="json")try{return JSON.stringify(d)}catch{return JSON.stringify({type:d.type,path:d.path,data:"[unserializable]"})}let g=l[d.type]??"",m=d.path?`${l.path}${d.path}${l.reset} `:"",y=d.type==="data"||d.type==="error",v=d.type==="pause"||d.type==="resume",b=y?` ${Ze(d.data)}`:v?` ${Ze(d.lockId)}`:"",_=d.type==="data"||d.type==="resolved"||d.type==="derived"?d:void 0,T=_?.trigger_dep_name!=null?` <- ${_.trigger_dep_name}`:_?.trigger_dep_index!=null?` <- #${_.trigger_dep_index}`:"",x=d.in_batch?" [batch]":"";return`${m}${g}${d.type.toUpperCase()}${l.reset}${b}${T}${x}`};e.onEvent(d=>{a(d.type)&&s(h(d),d)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){pn(this._disposers,this.name),this.signal([[F]],{internal:!0}),pn(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),s={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:l,guard:u,...c}=r.nodes[a];s[a]=c}let o=[...r.subgraphs].sort(),i={...r,version:1,nodes:s,subgraphs:o};if(e?.format==null)return i;if(e.format==="json-string")return JSON.stringify(i);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let a=this.config.lookupCodec(e.codec);if(a==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return Pt(a,a.encode(i))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ye,{codec:s,codecVersion:o,payload:i}=Lt(e,r);return s.decode(i,o)}restore(e,n){if(hn(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(o=>Xe(o)),s=n?.includeProducers===!0;for(let o of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(a=>a.test(o)))continue;let i=e.nodes[o];if(i!==void 0){if(!("value"in i)||i.value===void 0){"value"in i&&i.value===void 0&&n?.onError?.(o,new Error(`restore: slice.value is undefined for "${o}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(i.type==="derived"||i.type==="effect")&&!(i.type==="producer"&&!s)){if(i.v!=null){let l=this.tryResolve(o)?.v;if(l!=null&&l.id===i.v.id&&l.version===i.v.version)continue}try{this.set(o,i.value)}catch(a){n?.onError?.(o,a)}}}}}static fromSnapshot(e,n){hn(e);let r=typeof n=="function"?n:n?.build,s=typeof n=="function"?void 0:n?.factories,o=new t(e.name);if(r)return r(o),o.restore(e),o;for(let h of[...e.subgraphs].sort((d,g)=>{let m=d.split(G).length,y=g.split(G).length;return m!==y?m-y:d<g?-1:d>g?1:0})){let d=h.split(G),g=o;for(let m of d)g._mounts.has(m)||g.mount(m,new t(m)),g=g._mounts.get(m)}let i=s?Object.entries(s).map(([h,d])=>({re:Xe(h),factory:d})):[],a=h=>{for(let d of i)if(d.re.test(h))return d.factory},l=h=>{let d=h.split(G),g=d.pop();if(g==null||g.length===0)throw new Error(`invalid snapshot path "${h}"`);let m=o;for(let y of d){let v=m._mounts.get(y);if(!v)throw new Error(`unknown mount "${y}" in path "${h}"`);m=v}return[m,g]},u=Object.entries(e.nodes).filter(([h])=>!h.includes(`${G}${X}${G}`)).sort((h,d)=>h[0]<d[0]?-1:h[0]>d[0]?1:0),c=new Map(u),f=new Map,p=!0;for(;c.size>0&&p;){p=!1;for(let[h,d]of[...c.entries()]){let g=d?.deps??[];if(!g.every(T=>f.has(T)))continue;let[m,y]=l(h),v={...d?.meta??{}},b=a(h),_;if(d?.type==="state")_=ne(d.value,{meta:v});else{if(b==null)continue;_=b(y,{path:h,type:d.type,value:d.value,meta:v,deps:g,resolvedDeps:g.map(T=>f.get(T))})}m.add(_,{name:y}),f.set(h,_),c.delete(h),p=!0}}if(c.size>0){let h=[...c.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${h}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return o.restore(e),o}toJSON(){return this.snapshot()}attachStorage(e,n={}){let r=e.map(u=>({tier:u,debounceMs:Math.max(0,u.debounceMs??0),compactEvery:Math.max(1,u.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let s=(u,c)=>{if(u.disposed)return;let f=_r(c.nodes);if(u.lastSnapshot!=null&&f!==""&&f===u.lastFingerprint)return;let p=u.seq+1,h=oe(),m=u.lastSnapshot==null||p%u.compactEvery===0?{mode:"full",snapshot:c,seq:p,timestamp_ns:h,format_version:fe}:{mode:"diff",diff:xn(u.lastSnapshot,c),seq:p,timestamp_ns:h,format_version:fe};if(u.tier.filter&&!u.tier.filter(this.name,m))return;let y;try{y=u.tier.save(this.name,m)}catch(v){n.onError?.(v,u.tier);return}if(y&&typeof y.then=="function"){let _=(u.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{u.disposed||(u.seq=p,u.lastSnapshot=c,u.lastFingerprint=f)},T=>{n.onError?.(T,u.tier)});u.savePending=_.finally(()=>{u.savePending===_&&(u.savePending=void 0)})}else u.seq=p,u.lastSnapshot=c,u.lastFingerprint=f},o=(u,c)=>{try{s(u,c)}catch(f){n.onError?.(f,u.tier)}},i=(u,c)=>{if(!c.some(d=>{let g=this.config.messageTier(d[0]);return g>=3&&g<5}))return;if(n.filter){let d=this.tryResolve(u);if(d==null)return;let g=wt(d,We("standard"));if(!n.filter(u,g))return}let p,h=()=>(p==null&&(p=this.snapshot()),p);for(let d of r)d.disposed||(d.debounceMs===0?o(d,h()):(d.timer==null&&(d.timer=new Ke),d.timer.start(d.debounceMs,()=>{d.disposed||o(d,this.snapshot())})))},a;if(n.paths!=null){let c=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(f=>{let p=this.tryResolve(f);return p==null?()=>{}:p.subscribe(h=>i(f,h))});a=()=>{for(let f of c)f()}}else a=this.observe().subscribe((u,c)=>i(u,c));let l=()=>{a();for(let u of r)u.disposed=!0,u.timer?.cancel();this._storageDisposers.delete(l)};return this._storageDisposers.add(l),{dispose:l}}async _cascadeRestore(e,n){for(let r of e){let s;try{s=await r.load(this.name)}catch(i){n?.(i,r);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let o=s;try{if(o.mode==="full"&&o.snapshot!=null)return this.restore(o.snapshot),!0;if(o.version===fe&&o.nodes!=null)return this.restore(o),!0}catch(i){n?.(i,r)}}return!1}static async fromStorage(e,n,r){for(let s of n){let o;try{o=await s.load(e)}catch(l){r?.onError?.(l,s);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let i=o,a=i.mode==="full"&&i.snapshot!=null?i.snapshot:i.version===fe&&i.nodes!=null?i:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(l){r?.onError?.(l,s)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let s={path:e,annotation:n,timestamp_ns:te(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(s)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(s=>!e(s)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let s of n)this._traceRing.push(s);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),s=new Set(Object.keys(n.nodes)),o=[...s].filter(v=>!r.has(v)).sort(),i=[...r].filter(v=>!s.has(v)).sort(),a=[],l=[];for(let v of r){if(!s.has(v))continue;let b=e.nodes[v],_=n.nodes[v],T=b.v,x=_.v;T!=null&&x!=null&&T.id===x.id&&T.version!==x.version&&l.push({path:v,id:T.id,from:T.version,to:x.version});let w=T!=null&&x!=null&&T.id===x.id&&T.version===x.version;for(let O of["type","status","sentinel"]){let N=b[O],R=_[O];N!==R&&a.push({path:v,field:O,from:N,to:R})}if(!w)for(let O of["value","meta"]){let N=b[O],R=_[O];xr(N,R)||a.push({path:v,field:O,from:N,to:R})}}let u=v=>`${v.from} ${v.to}`,c=new Set(e.edges.map(u)),f=new Set(n.edges.map(u)),p=n.edges.filter(v=>!c.has(u(v))),h=e.edges.filter(v=>!f.has(u(v))),d=new Set(e.subgraphs),g=new Set(n.subgraphs),m=[...g].filter(v=>!d.has(v)).sort(),y=[...d].filter(v=>!g.has(v)).sort();return{nodesAdded:o,nodesRemoved:i,nodesChanged:a,versionChanges:l,edgesAdded:p,edgesRemoved:h,subgraphsAdded:m,subgraphsRemoved:y}}};function xn(t,e){let n=U.diff(t,e),r={};for(let s of n.nodesAdded){let o=e.nodes[s];o!=null&&(r[s]=o)}return{...n,nodesAddedFull:r}}function kt(t,e,n,r={}){let s={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?s:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let o=r.maxDepth;if(o!=null&&(!Number.isInteger(o)||o<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(o===0)return r.withDetail?s:[];let i=new Map,a=new Map,l=new Map,u=new Map,c=new Set;for(let[b,_]of Object.entries(t.nodes)){if(!b)continue;c.add(b);let T=_.deps??[];i.set(b,T);for(let x of T)x&&(c.add(x),a.has(x)||a.set(x,new Set),a.get(x).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let _=typeof b.from=="string"?b.from:"",T=typeof b.to=="string"?b.to:"";!_||!T||(c.add(_),c.add(T),u.has(_)||u.set(_,new Set),u.get(_).add(T),l.has(T)||l.set(T,new Set),l.get(T).add(_))}if(!c.has(e))return r.withDetail?s:[];let f=r.both===!0,p=b=>{if(f){let w=i.get(b)??[],O=l.get(b),N=a.get(b),R=u.get(b),k=[...w];return O&&k.push(...O),N&&k.push(...N),R&&k.push(...R),k}if(n==="upstream"){let w=i.get(b)??[],O=l.get(b);return O?[...w,...O]:w}let _=a.get(b),T=u.get(b),x=_?[..._]:[];return T&&x.push(...T),x},h=new Set([e]),d=new Map,g=[{path:e,depth:0}],m=0,y=!1;for(;m<g.length;){let b=g[m++];if(o!=null&&b.depth>=o){p(b.path).length>0&&(y=!0);continue}for(let _ of p(b.path))!_||h.has(_)||(h.add(_),d.set(_,b.depth+1),g.push({path:_,depth:b.depth+1}))}let v=[...d.keys()].sort((b,_)=>b<_?-1:b>_?1:0);return r.withDetail?{paths:v,depths:d,truncated:y}:v}function Pr(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],s=e[n];if(r.path!==s.path||r.type!==s.type||r.status!==s.status||r.hop!==s.hop||r.dep_index!==s.dep_index||r.annotation!==s.annotation||r.value!==s.value||r.lastMutation!==s.lastMutation)return!1;let o=r.v,i=s.v;if(o!==i&&(o==null||i==null||o.id!==i.id||o.version!==i.version))return!1}return!0}ie();function St(t,e){let n=new Map,r=(s,o)=>{if(n.has(s))return;let i={off:()=>{},prefix:o};n.set(s,i);let a=s.topology.subscribe(l=>{for(let u of l){if(u[0]!==M)continue;let c=u[1];if(e(c,s,o),c.kind==="added"&&c.nodeKind==="mount"){let f=s._mounts.get(c.name);if(f instanceof U){let p=`${o}${c.name}::`;r(f,p)}}else if(c.kind==="removed"&&c.nodeKind==="mount"){let f=`${o}${c.name}::`;for(let[p,h]of Array.from(n.entries()))p!==t&&h.prefix.startsWith(f)&&(h.off(),n.delete(p))}}});i.off=a;for(let[l,u]of s._mounts)if(u instanceof U){let c=`${o}${l}::`;r(u,c)}};return r(t,""),()=>{for(let s of n.values())s.off();n.clear()}}Tt();function Qe(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}Ie();pe();ie();Ne();function wn(t,e){return Qe("messaging",t,e)}var et=class extends U{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=ze([],{name:"events",maxSize:n.retainedLimit}),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=j([this.events],([r])=>{let s=r;return s.length===0?null:s[s.length-1]},{name:"latest",describeKind:"derived",meta:wn("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(re(this.latest)),this.hasLatest=j([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:wn("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(re(this.hasLatest)),this.addDisposer(()=>{this.events.down([[H]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){this._log.append(e)}retained(){return this.events.cache}};function On(t,e){return Qe("audit",t,e)}var Lr=new Set(["data","error","complete","teardown"]),tt=class extends U{entries;count;_log;_target;constructor(e,n){super(n.name??`${e.name}_audit`,n.graph),this._target=e,this._log=ze([],{name:"entries",...n.maxSize!=null?{maxSize:n.maxSize}:{}}),this.entries=this._log.entries,this.add(this.entries,{name:"entries"}),this.count=j([this.entries],([l])=>l.length,{name:"count",describeKind:"derived",meta:On("count")}),this.add(this.count,{name:"count"}),this.addDisposer(re(this.count));let r=n.includeTypes!=null?new Set(n.includeTypes):Lr,s=n.filter,o=0,i=e.observe({timeline:!0,structured:!0}),a=i.onEvent(l=>{if(l.type==="derived")return;let u=l.type;if(!r.has(u))return;let c=l.path??"",f={seq:o++,timestamp_ns:l.timestamp_ns??te(),wall_clock_ns:oe(),path:c,type:u},h=(c?At(e,c):void 0)?.lastMutation;h!=null&&(f.actor=h.actor),u==="data"&&(f.value=l.data),u==="error"&&(f.error=l.data);let d=c?Br(e,c):void 0;d!=null&&(f.annotation=d),!(s!=null&&!s(f))&&this._log.append(f)});this.addDisposer(()=>{a(),i.dispose()}),this.addDisposer(()=>this._log.disposeAllViews())}all(){return this.entries.cache??[]}byNode(e){return this.all().filter(n=>n.path===e)}byActor(e){return this.all().filter(n=>n.actor?.id===e)}byActorType(e){return this.all().filter(n=>n.actor?.type===e)}byTimeRange(e,n){return this.all().filter(r=>!(r.timestamp_ns<e||n!=null&&r.timestamp_ns>=n))}get target(){return this._target}};function $r(t,e={}){return new tt(t,e)}var nt=class extends U{policies;violations;violationCount;_target;_mode;_currentGuard;constructor(e,n,r){super(r.name??`${e.name}_policy`,r.graph),this._target=e,this._mode=r.mode??"audit";let s=zr(n)?n:ne(n,{name:"policies"});this.policies=s,this.add(this.policies,{name:"policies"}),this.violations=new et("violations",{retainedLimit:r.violationsLimit??1e3}),this.mount("violations",this.violations),this.violationCount=j([this.violations.events],([u])=>u.length,{name:"violationCount",describeKind:"derived",meta:On("policy_violation_count")}),this.add(this.violationCount,{name:"violationCount"}),this.addDisposer(re(this.violationCount));let i=s.cache??[];this._currentGuard=ut(i);let a=s.subscribe(u=>{for(let c of u)c[0]===M&&(i=c[1]??[],this._currentGuard=ut(i))});this.addDisposer(a);let l=r.paths!=null?[...r.paths]:Tn(e);if(this._mode==="enforce"){let u=new Map,c=f=>{if(u.has(f))return;let p=At(e,f);if(!(p instanceof I))return;let h=(d,g)=>{let m=this._currentGuard(d,g);return m||this._publishViolation(d,g,f,"blocked"),m};u.set(f,p._pushGuard(h))};for(let f of l)c(f);if(r.paths==null){let f=St(e,(p,h,d)=>{if(p.kind==="added")if(p.nodeKind==="node")c(`${d}${p.name}`);else{let g=h._mounts.get(p.name);if(!(g instanceof U))return;let m=`${d}${p.name}::`,y=Tn(g);for(let v of y)c(v===""?`${d}${p.name}`:`${m}${v}`)}else if(p.kind==="removed")if(p.nodeKind==="node"){let g=`${d}${p.name}`,m=u.get(g);m!=null&&(m(),u.delete(g))}else{let g=`${d}${p.name}`,m=`${g}::`;for(let[y,v]of u)(y===g||y.startsWith(m))&&(v(),u.delete(y))}});this.addDisposer(f)}else{let f=e.topology.subscribe(p=>{for(let h of p){if(h[0]!==M)continue;let d=h[1];if(d.kind!=="removed"||d.nodeKind!=="node")continue;let g=u.get(d.name);g!=null&&(g(),u.delete(d.name))}});this.addDisposer(f)}this.addDisposer(()=>{for(let f of u.values())f();u.clear()})}else{let u=e.observe({timeline:!0,structured:!0}),c=u.onEvent(f=>{if(f.type!=="data"&&f.type!=="error")return;let p=f.path??"";if(!p||r.paths!=null&&!r.paths.includes(p))return;let h=f.actor??At(e,p)?.lastMutation?.actor;if(h==null)return;let d="write";this._currentGuard(h,d)||this._publishViolation(h,d,p,"observed")});this.addDisposer(()=>{c(),u.dispose()})}}_publishViolation(e,n,r,s){this.violations.publish({timestamp_ns:te(),wall_clock_ns:oe(),path:r,actor:e,action:n,mode:this._mode,result:s})}all(){return this.violations.retained()}get mode(){return this._mode}get target(){return this._target}};function Fr(t,e,n={}){return new nt(t,e,n)}function Vr(t,e,n,r){return t.explain(e,n,{reactive:!0,...r})}function Hr(t,e={}){let n={format_version:1,timestamp_ns:te(),wall_clock_ns:oe(),graph:t.snapshot()};if(e.actor!=null&&(n.actor=e.actor),e.audit!=null){let s=[...e.audit.all()];n.audit={count:s.length,entries:s}}if(e.policies!=null){let s=e.policies.policies.cache??[];n.policies={mode:e.policies.mode,rules:s,violations:[...e.policies.all()]}}let r=jr(n);return{...n,fingerprint:r}}function zr(t){return typeof t=="object"&&t!==null&&"subscribe"in t}function At(t,e){try{return t.node(e)}catch{return}}function Br(t,e){try{return t.annotation(e)}catch{return}}function Tn(t){let e=t.describe({detail:"minimal"});return Object.keys(e.nodes)}function jr(t){return Ee(JSON.stringify(Ur(t)))}function Ur(t){let e=new Set,n=r=>{if(r===void 0)return{__undefined:!0};if(r===null)return null;let s=typeof r;if(s==="bigint")return{__bigint:r.toString()};if(s!=="object")return r;let o=r;if(e.has(o))return{__circular:!0};e.add(o);try{if(Array.isArray(o))return o.map(n);if(o instanceof Date)return{__date:o.toISOString()};if(o instanceof RegExp)return{__regexp:{source:o.source,flags:o.flags}};if(o instanceof Map)return{__map:[...o.entries()].map(([l,u])=>[n(l),n(u)])};if(o instanceof Set)return{__set:[...o].map(n)};if(ArrayBuffer.isView(o)){let a=o,l=new Array(a.length);for(let u=0;u<a.length;u++)l[u]=a[u]??0;return{__typed_array:{ctor:o.constructor.name,data:l}}}let i={};for(let a of Object.keys(o).sort())i[a]=n(o[a]);return i}finally{e.delete(o)}};return n(t)}0&&(module.exports={AuditTrailGraph,PolicyEnforcerGraph,auditTrail,complianceSnapshot,policyEnforcer,reactiveExplainPath});
7
+ `)}function Ar(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Xe(t){let e="^";for(let n=0;n<t.length;n+=1){let r=t[n];if(r==="*"){e+=".*";continue}if(r==="?"){e+=".";continue}if(r==="["){let s=t.indexOf("]",n+1);if(s<=n+1){e+="\\[";continue}let o=t.slice(n+1,s);o.startsWith("!")&&(o=`^${o.slice(1)}`),o=o.replace(/\\/g,"\\\\"),e+=`[${o}]`,n=s;continue}e+=Ar(r)}return e+="$",new RegExp(e)}var Rr={data:"\x1B[32m",dirty:"\x1B[33m",resolved:"\x1B[36m",invalidate:"\x1B[93m",pause:"\x1B[90m",resume:"\x1B[96m",complete:"\x1B[34m",error:"\x1B[31m",teardown:"\x1B[91m",derived:"\x1B[35m",path:"\x1B[90m",reset:"\x1B[0m"},Dr={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function Ze(t){if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||t==null)return String(t);try{return JSON.stringify(t)}catch{return"[unserializable]"}}function Cr(t){return t==="none"?Dr:t==="ansi"||t==null?Rr:{data:t.data??"",dirty:t.dirty??"",resolved:t.resolved??"",invalidate:t.invalidate??"",pause:t.pause??"",resume:t.resume??"",complete:t.complete??"",error:t.error??"",teardown:t.teardown??"",derived:t.derived??"",path:t.path??"",reset:t.reset??""}}function gn(t){if(t==null)return{};let e=t.detail;return e==="full"?{...t,structured:t.structured??!0,timeline:t.timeline??!0,causal:t.causal??!0,derived:t.derived??!0}:e==="minimal"?{...t,structured:t.structured??!0}:t.format==="stage-log"?{...t,structured:t.structured??!0,timeline:t.timeline??!0}:t}function Gr(t,e,n){for(let r=0;r<t.length;r++){let s=t.charCodeAt(r);if(s<32||s===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${s.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function Et(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(G))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${G}' (path separator)`);if(t===X)throw new Error(`Graph "${e}": ${n} name "${X}" is reserved for meta companion paths`);Gr(t,e,n)}function Mr(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(G);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function Ir(t,e){let n=!1;for(let s of t)if(!e.isMetaPassthrough(s[0])){n=!0;break}return n?t.filter(s=>e.isMetaPassthrough(s[0])):t}function _n(t){for(let e of t._mounts.values())_n(e);for(let e of t._nodes.values())try{e.down([[F]],{internal:!0})}catch{}}var U=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_destroyed=!1;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(G))throw new Error(`Graph name must not contain '${G}' (got "${e}")`);if(e===X)throw new Error(`Graph name "${X}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ye,this._traceRing=new ke(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning)}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=_t(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}add(e,n){let r=e.name,s=n?.name??r;if(s==null||s==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let o=s,i=n?.annotation;if(Et(o,this.name,"add"),this._mounts.has(o))throw new Error(`Graph "${this.name}": name "${o}" is already a mount point`);if(this._nodes.has(o))throw new Error(`Graph "${this.name}": node "${o}" already exists`);let a=this._nodeToName.get(e);if(a!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${a}"`);return this._nodes.set(o,e),this._nodeToName.set(e,o),this._emitTopology({kind:"added",name:o,nodeKind:"node"}),i!=null&&(this._annotations.set(o,i),this.config.inspectorEnabled&&this._traceRing.push({path:o,annotation:i,timestamp_ns:te()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof I&&n._applyVersioning(e)}remove(e){Et(e,this.name,"remove");let n=this._mounts.get(e);if(n){let o={kind:"mount",nodes:[],mounts:[]},i=[];n._collectObserveTargets("",i);for(let[a,l]of i)a.includes(`${G}${X}${G}`)||o.nodes.push(a);return o.nodes.sort(),o.mounts.push(e),o.mounts.push(...n._collectSubgraphs(`${e}${G}`)),this._mounts.delete(e),n._parent=void 0,_n(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:o}),o}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[F]],{internal:!0});let s={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:s}),s}removeAll(e){let n=typeof e=="function"?e:(()=>{let o=Xe(e);return i=>o.test(i)})(),r={kind:"mount",nodes:[],mounts:[]},s=[...this._nodes.keys(),...this._mounts.keys()].filter(o=>n(o));for(let o of s){let i=this.remove(o);r.nodes.push(...i.nodes),r.mounts.push(...i.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let s=e[r++];return{value:[s,n.get(s)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(G))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let s=r?.internal===!0;this.node(e).down([[M,n]],{actor:r?.actor,internal:s,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);Oe(()=>{for(let[s,o]of r)this.set(s,o,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[J]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let s=r?.internal===!0;this.node(e).down([[L,n]],{actor:r?.actor,internal:s,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[H]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[l,u]of this._nodes)r.set(u,l);let a=[];for(let[l,u]of this._nodes)if(u instanceof I)for(let c of u._deps){let f=r.get(c.node);f!=null&&a.push([f,l])}return a.sort((l,u)=>l[0]<u[0]?-1:l[0]>u[0]?1:l[1]<u[1]?-1:l[1]>u[1]?1:0),a}let s=[];this._collectObserveTargets("",s);let o=new Map;for(let[a,l]of s)o.set(l,a);let i=[];for(let[a,l]of s)if(l instanceof I)for(let u of l._deps){let c=o.get(u.node);c!=null&&i.push([c,a])}return i.sort((a,l)=>a[0]<l[0]?-1:a[0]>l[0]?1:a[1]<l[1]?-1:a[1]>l[1]?1:0),i}mount(e,n){if(Et(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(n===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(n._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${n._parent.name}"`);for(let r=this;r!=null;r=r._parent)if(r===n)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,n),n._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),n}resolve(e){let n=Mr(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],s=n.slice(1);if(s.length===0){let a=this._nodes.get(r);if(a)return a;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let o=this._nodes.get(r);if(o&&s.length>0&&s[0]===X)return this._resolveMetaChainFromNode(o,s,n.join(G));let i=this._mounts.get(r);if(!i)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${s.join(G)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return i.resolve(s.join(G))}_resolveMetaChainFromNode(e,n,r){let s=e,o=0,i=[...n];for(;o<i.length;){if(i[o]!==X)throw new Error(`Graph "${this.name}": expected ${X} segment in meta path "${r}"`);if(o+1>=i.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${X} in "${r}"`);let a=i[o+1],l=s.meta[a];if(!l)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);s=l,o+=2}return s}signal(e,n){if(n?.internal!==!0){for(let s of e)if(this.config.messageTier(s[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,s){for(let l of this._mounts.values())l._signalDeliver(e,n,r,s);let i=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=Ir(e,this.config);for(let l of[...this._nodes.keys()].sort()){let u=this._nodes.get(l);if(!r.has(u)){r.add(u);try{u.down(e,i)}catch(c){if(c instanceof Y)throw c;s.push(c)}a.length!==0&&this._signalMetaSubtree(u,a,r,i,s)}}}_signalMetaSubtree(e,n,r,s,o){for(let i of Object.keys(e.meta).sort()){let a=e.meta[i];if(!r.has(a)){r.add(a);try{a.down(n,s)}catch(l){if(l instanceof Y)throw l;o.push(l)}this._signalMetaSubtree(a,n,r,s,o)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=e?.actor,r=e?.filter,s=We(e?.detail,e?.fields),o=e?.format==="spec",i=o?We("minimal"):s,a=[];this._collectObserveTargets("",a);let l=new Map;for(let[x,w]of a)l.set(w,x);let u=[];{let x=a.map(([,N])=>N),w=new Set(l.values()),O=0;for(;x.length>0;){let N=x.shift();if(N instanceof I)for(let R of N._deps){let k=R.node;if(l.has(k))continue;let A=k.name??"",S=A;if(!S||w.has(S))if(A){let P=2;for(;w.has(`${A}#${P}`);)P++;S=`${A}#${P}`}else for(S=`__internal__/${O++}`;w.has(S);)S=`__internal__/${O++}`;l.set(k,S),w.add(S),u.push([S,k]),x.push(k)}}}let c=[...a,...u],f={};for(let[x,w]of c){if(n!=null&&!w.allowsObserve(n))continue;let O=wt(w,i),N=w instanceof I?w._deps.map(S=>l.get(S.node)??S.node.name??""):[],{name:R,...k}=O,A={...k,deps:N};if(!o){let S=this._annotations.get(x);S!=null&&(A.annotation=S)}if(r!=null)if(typeof r=="function"){let S=r;if(!(S.length>=2?S(x,A):S(A)))continue}else{let S=!0;for(let[P,z]of Object.entries(r)){let Z=P==="deps_includes"?"depsIncludes":P==="meta_has"?"metaHas":P;if(Z==="depsIncludes"){if(!A.deps.includes(String(z))){S=!1;break}continue}if(Z==="metaHas"){if(!Object.hasOwn(A.meta??{},String(z))){S=!1;break}continue}if(A[Z]!==z){S=!1;break}}if(!S)continue}f[x]=A}let p=new Set(Object.keys(f)),h=[];for(let[x,w]of c)if(w instanceof I)for(let O of w._deps){let N=l.get(O.node);N!=null&&h.push([N,x])}h.sort((x,w)=>x[0]<w[0]?-1:x[0]>w[0]?1:x[1]<w[1]?-1:x[1]>w[1]?1:0);let d=h.map(([x,w])=>({from:x,to:w}));(n!=null||r!=null)&&(d=d.filter(x=>p.has(x.from)&&p.has(x.to)));let g=this._collectSubgraphs(""),m=n!=null||r!=null?g.filter(x=>{let w=`${x}${G}`;return[...p].some(O=>O===x||O.startsWith(w))}):g,y=this,v=e,b={name:this.name,nodes:f,edges:d,subgraphs:m,expand(x){let w={...v,format:void 0};return Array.isArray(x)?(w.fields=x,w.detail=void 0):(w.detail=x,w.fields=void 0),y.describe(w)}},_=e??{},T=_.format;return T==="json"?Er(b,_):T==="pretty"?Nr(b,_):T==="mermaid"?yn(b,_):T==="mermaid-url"?kr(b,_):T==="d2"?Sr(b,_):T==="ascii"?cn(b,_):b}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${r}`;n.push(s),n.push(...this._mounts.get(r)._collectSubgraphs(`${s}${G}`))}return n}resourceProfile(e){return fn(this,e)}reachable(e,n,r={}){return r.withDetail===!0?kt(this.describe(),e,n,{...r,withDetail:!0}):kt(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(e,n,r)}_explainStatic(e,n,r){let s=this.describe({detail:"full"}),o=new Map(this._annotations),i=new Map;for(let[a,l]of Object.entries(s.nodes))l.lastMutation!=null&&i.set(a,l.lastMutation);return Yt(s,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:o,lastMutations:i})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",s=0,o=ne(s,{name:`${r}_version`}),i=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,u=()=>{a||l||(a=!0,Te(()=>{a=!1,!l&&(s+=1,o.emit(s))}))},c=i.onEvent(m=>{let y=m.type;y!=="data"&&y!=="error"&&y!=="complete"&&y!=="teardown"||u()}),f=[],p=new WeakSet,h=m=>{if(p.has(m)||l)return;p.add(m);let y=m.topology.subscribe(v=>{for(let b of v){if(b[0]!==M)continue;let _=b[1];if(u(),_.kind==="added"&&_.nodeKind==="mount"){let T=m._mounts.get(_.name);T!=null&&h(T)}}});f.push(y);for(let v of m._mounts.keys()){let b=m._mounts.get(v);b!=null&&h(b)}};h(this);let d;try{d=j([o],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(m,y)=>m===y})}catch(m){c();for(let y of f)y();throw i.dispose(),m}let g=re(d);return{node:d,dispose(){l=!0,c();for(let m of f)m();f.length=0,i.dispose(),g()}}}_explainReactive(e,n,r){let s=0,o=ne(s,{name:"explain_version"}),i=this.observe({timeline:!0,structured:!0}),a=!1,l=!1,u=i.onEvent(h=>{let d=h.type;d!=="data"&&d!=="error"&&d!=="complete"&&d!=="teardown"||a||l||(a=!0,Te(()=>{a=!1,!l&&(s+=1,o.emit(s))}))}),c={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},f;try{f=j([o],()=>this._explainStatic(e,n,c),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(h,d)=>h.found===d.found&&h.reason===d.reason&&h.steps.length===d.steps.length&&Pr(h.steps,d.steps)})}catch(h){throw u(),i.dispose(),h}let p=re(f);return{node:f,dispose(){l=!0,u(),i.dispose(),p()}}}_pathsMatching(e){let n=Xe(e),r=[];return this._collectObserveTargets("",r),r.map(([s])=>s).filter(s=>n.test(s))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${G}${r}`;this._mounts.get(r)._collectObserveTargets(s,n)}for(let r of[...this._nodes.keys()].sort()){let s=this._nodes.get(r),o=e===""?r:`${e}${G}${r}`;n.push([o,s]),this._appendMetaObserveTargets(o,s,n)}}_appendMetaObserveTargets(e,n,r){for(let s of Object.keys(n.meta).sort()){let o=n.meta[s],i=`${e}${G}${X}${G}${s}`;r.push([i,o]),this._appendMetaObserveTargets(i,o,r)}}observe(e,n){let r=typeof e=="string",o=gn(r?n:e),i=o.structured===!0||o.timeline===!0||o.causal===!0||o.derived===!0||o.detail==="minimal"||o.detail==="full"||o.format!=null,a=o.actor;if(r){let c=e,f=this.resolve(c);if(a!=null&&!f.allowsObserve(a))throw new Y({actor:a,action:"observe",nodeName:c});return i?this._buildStructuredObserver([[c,f]],o,"one"):{subscribe(p){return f.subscribe(p)},up(p){try{f.up?.(p)}catch(h){if(h instanceof Y)return;throw h}}}}let l=[];this._collectObserveTargets("",l),l.sort((c,f)=>c[0]<f[0]?-1:c[0]>f[0]?1:0);let u=a==null?l:l.filter(([,c])=>c.allowsObserve(a));return i?this._buildStructuredObserver(u,o,"all"):{subscribe:c=>{let f=u.map(([p,h])=>h.subscribe(d=>{c(p,d)}));return()=>{for(let p of f)p()}},up:(c,f)=>{try{this.resolve(c).up?.(f)}catch(p){if(p instanceof Y)return;throw p}}}}_buildStructuredObserver(e,n,r){let s=r==="one"?e[0]?.[0]:void 0,o=i=>{if(r==="one"&&s!=null){let c=this.resolve(s);return this._buildStructuredObserver([[s,c]],i,"one")}let a=[];this._collectObserveTargets("",a),a.sort((c,f)=>c[0]<f[0]?-1:c[0]>f[0]?1:0);let l=i.actor,u=l==null?a:a.filter(([,c])=>c.allowsObserve(l));return this._buildStructuredObserver(u,i,"all")};return this._createObserveResult(e,n,o)}_createObserveResult(e,n,r){let s=n.timeline===!0,o=n.causal===!0,i=n.derived===!0,a=n.detail==="minimal",l=this.config.inspectorEnabled,u=(o||i)&&l,c=n.maxEvents,f=c!=null&&c>0?new ke(c):null,p=[],h=new Set,d={},g=new Set,m=0,y=0,v=0,b=0,_=0,T=0,x=!1,w=!1,O=0,N=new Map,R=new Map,k=new Map,A=E=>{f?f.push(E):p.push(E);for(let C of h)C(E)},S=()=>s?{timestamp_ns:te(),in_batch:Pe(),batch_id:O}:{},P=(E,C)=>{if(!(!u||!(E instanceof I)))return E._setInspectorHook(W=>{if(W.kind==="dep_message")N.set(E,W.depIndex);else if(W.kind==="run"){let _e=W.batchData.map((D,V)=>D!=null&&D.length>0?D.at(-1):W.prevData[V]);R.set(E,_e);let K=W.batchData.map(D=>D!=null?[...D]:void 0);k.set(E,K),i&&A({type:"derived",path:C,dep_values:_e,dep_batches:K,...S()})}})},z=E=>{let C=N.get(E),W=R.get(E);if(!o||W==null)return{};let K=(C!=null&&C>=0&&E instanceof I?E._deps[C]:void 0)?.node,D=K?.v,V=k.get(E);return{trigger_dep_index:C,trigger_dep_name:K?.name,...D!=null?{trigger_version:{id:D.id,version:D.version}}:{},dep_values:[...W],...V!=null?{dep_batches:V}:{}}},Z=[],ue=[];for(let[E,C]of e){let W=P(C,E);W&&Z.push(W),ue.push(C.subscribe(_e=>{O++;for(let K of _e){let D=K[0],V=S();if(D===M){d[E]=K[1];let it=C instanceof I?C.lastMutation?.actor??ge:ge;A({type:"data",path:E,data:K[1],actor:it,...V,...z(C)})}else if(a)D===B?m++:D===Q?y++:D===J?v++:D===ee?b++:D===se?_++:D===F?T++:D===H&&!g.has(E)?x=!0:D===L&&(w=!0,g.add(E));else if(D===B)m++,A({type:"dirty",path:E,...V});else if(D===Q)y++,A({type:"resolved",path:E,...V,...z(C)});else if(D===J)v++,A({type:"invalidate",path:E,...V});else if(D===ee)b++,A({type:"pause",path:E,lockId:K[1],...V});else if(D===se)_++,A({type:"resume",path:E,lockId:K[1],...V});else if(D===H)g.has(E)||(x=!0),A({type:"complete",path:E,...V});else if(D===L){w=!0,g.add(E);let it=C instanceof I?C.lastMutation?.actor??ge:ge;A({type:"error",path:E,data:K[1],actor:it,...V})}else D===F&&(T++,A({type:"teardown",path:E,...V}))}}))}let rt=!1,st=()=>{if(!rt){rt=!0;for(let E of ue)E();for(let E of Z)E();for(let E of Se)E({value:void 0,done:!0});Se.length=0}},ot=[],Se=[];h.add(E=>{let C=Se.shift();C?C({value:E,done:!1}):ot.push(E)});let Rt={get values(){return d},get dirtyCount(){return m},get resolvedCount(){return y},get invalidateCount(){return v},get pauseCount(){return b},get resumeCount(){return _},get teardownCount(){return T},get events(){return f?f.toArray():[...p]},get anyCompletedCleanly(){return x},get anyErrored(){return w},get completedWithoutErrors(){return x&&!w},onEvent(E){return h.add(E),()=>h.delete(E)},dispose:st,expand(E){st();let C={...n};return typeof E=="string"?C.detail=E:Object.assign(C,E),r(gn(C))},[Symbol.asyncIterator](){return{next(){return ot.length>0?Promise.resolve({value:ot.shift(),done:!1}):rt?Promise.resolve({value:void 0,done:!0}):new Promise(E=>Se.push(E))},return(){return st(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(Rt,n),Rt}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let s=n.logger??(d=>console.log(d)),o=n.includeTypes?new Set(n.includeTypes):null,i=n.excludeTypes?new Set(n.excludeTypes):null,a=o==null&&i==null?()=>!0:d=>(o==null||o.has(d))&&(i==null||!i.has(d)),l=Cr(n.theme),u=r==="stage-log"?te():0,c=d=>d==null?"":n.stageLabels?.[d]??d,f=(d,g)=>d.length>g?`${d.slice(0,g-1)}\u2026`:d,p=d=>d.type==="data"||d.type==="error"?f(Ze(d.data),120):"",h=d=>{if(r==="stage-log"){let w=(te()-u)/1e9,O=c(d.path).padEnd(9);if(d.type==="data"){let N=p(d);return`[${w.toFixed(3)}s] ${O} \u2190${N?` ${N}`:""}`}if(d.type==="error"){let N=p(d);return`[${w.toFixed(3)}s] ${O} \u2717${N?` ${N}`:""}`}return d.type==="complete"?`[${w.toFixed(3)}s] ${O} \u25A0 complete`:`[${w.toFixed(3)}s] ${O} ${d.type}`}if(r==="json")try{return JSON.stringify(d)}catch{return JSON.stringify({type:d.type,path:d.path,data:"[unserializable]"})}let g=l[d.type]??"",m=d.path?`${l.path}${d.path}${l.reset} `:"",y=d.type==="data"||d.type==="error",v=d.type==="pause"||d.type==="resume",b=y?` ${Ze(d.data)}`:v?` ${Ze(d.lockId)}`:"",_=d.type==="data"||d.type==="resolved"||d.type==="derived"?d:void 0,T=_?.trigger_dep_name!=null?` <- ${_.trigger_dep_name}`:_?.trigger_dep_index!=null?` <- #${_.trigger_dep_index}`:"",x=d.in_batch?" [batch]":"";return`${m}${g}${d.type.toUpperCase()}${l.reset}${b}${T}${x}`};e.onEvent(d=>{a(d.type)&&s(h(d),d)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){pn(this._disposers,this.name),this.signal([[F]],{internal:!0}),pn(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}get destroyed(){return this._destroyed}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),s={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:l,guard:u,...c}=r.nodes[a];s[a]=c}let o=[...r.subgraphs].sort(),i={...r,version:1,nodes:s,subgraphs:o};if(e?.format==null)return i;if(e.format==="json-string")return JSON.stringify(i);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let a=this.config.lookupCodec(e.codec);if(a==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return Pt(a,a.encode(i))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ye,{codec:s,codecVersion:o,payload:i}=Lt(e,r);return s.decode(i,o)}restore(e,n){if(hn(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(o=>Xe(o)),s=n?.includeProducers===!0;for(let o of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(a=>a.test(o)))continue;let i=e.nodes[o];if(i!==void 0){if(!("value"in i)||i.value===void 0){"value"in i&&i.value===void 0&&n?.onError?.(o,new Error(`restore: slice.value is undefined for "${o}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(i.type==="derived"||i.type==="effect")&&!(i.type==="producer"&&!s)){if(i.v!=null){let l=this.tryResolve(o)?.v;if(l!=null&&l.id===i.v.id&&l.version===i.v.version)continue}try{this.set(o,i.value)}catch(a){n?.onError?.(o,a)}}}}}static fromSnapshot(e,n){hn(e);let r=typeof n=="function"?n:n?.build,s=typeof n=="function"?void 0:n?.factories,o=new t(e.name);if(r)return r(o),o.restore(e),o;for(let h of[...e.subgraphs].sort((d,g)=>{let m=d.split(G).length,y=g.split(G).length;return m!==y?m-y:d<g?-1:d>g?1:0})){let d=h.split(G),g=o;for(let m of d)g._mounts.has(m)||g.mount(m,new t(m)),g=g._mounts.get(m)}let i=s?Object.entries(s).map(([h,d])=>({re:Xe(h),factory:d})):[],a=h=>{for(let d of i)if(d.re.test(h))return d.factory},l=h=>{let d=h.split(G),g=d.pop();if(g==null||g.length===0)throw new Error(`invalid snapshot path "${h}"`);let m=o;for(let y of d){let v=m._mounts.get(y);if(!v)throw new Error(`unknown mount "${y}" in path "${h}"`);m=v}return[m,g]},u=Object.entries(e.nodes).filter(([h])=>!h.includes(`${G}${X}${G}`)).sort((h,d)=>h[0]<d[0]?-1:h[0]>d[0]?1:0),c=new Map(u),f=new Map,p=!0;for(;c.size>0&&p;){p=!1;for(let[h,d]of[...c.entries()]){let g=d?.deps??[];if(!g.every(T=>f.has(T)))continue;let[m,y]=l(h),v={...d?.meta??{}},b=a(h),_;if(d?.type==="state")_=ne(d.value,{meta:v});else{if(b==null)continue;_=b(y,{path:h,type:d.type,value:d.value,meta:v,deps:g,resolvedDeps:g.map(T=>f.get(T))})}m.add(_,{name:y}),f.set(h,_),c.delete(h),p=!0}}if(c.size>0){let h=[...c.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${h}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return o.restore(e),o}toJSON(){return this.snapshot()}attachStorage(e,n={}){let r=e.map(u=>({tier:u,debounceMs:Math.max(0,u.debounceMs??0),compactEvery:Math.max(1,u.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let s=(u,c)=>{if(u.disposed)return;let f=_r(c.nodes);if(u.lastSnapshot!=null&&f!==""&&f===u.lastFingerprint)return;let p=u.seq+1,h=oe(),m=u.lastSnapshot==null||p%u.compactEvery===0?{mode:"full",snapshot:c,seq:p,timestamp_ns:h,format_version:fe}:{mode:"diff",diff:xn(u.lastSnapshot,c),seq:p,timestamp_ns:h,format_version:fe};if(u.tier.filter&&!u.tier.filter(this.name,m))return;let y;try{y=u.tier.save(this.name,m)}catch(v){n.onError?.(v,u.tier);return}if(y&&typeof y.then=="function"){let _=(u.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{u.disposed||(u.seq=p,u.lastSnapshot=c,u.lastFingerprint=f)},T=>{n.onError?.(T,u.tier)});u.savePending=_.finally(()=>{u.savePending===_&&(u.savePending=void 0)})}else u.seq=p,u.lastSnapshot=c,u.lastFingerprint=f},o=(u,c)=>{try{s(u,c)}catch(f){n.onError?.(f,u.tier)}},i=(u,c)=>{if(!c.some(d=>{let g=this.config.messageTier(d[0]);return g>=3&&g<5}))return;if(n.filter){let d=this.tryResolve(u);if(d==null)return;let g=wt(d,We("standard"));if(!n.filter(u,g))return}let p,h=()=>(p==null&&(p=this.snapshot()),p);for(let d of r)d.disposed||(d.debounceMs===0?o(d,h()):(d.timer==null&&(d.timer=new Ke),d.timer.start(d.debounceMs,()=>{d.disposed||o(d,this.snapshot())})))},a;if(n.paths!=null){let c=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(f=>{let p=this.tryResolve(f);return p==null?()=>{}:p.subscribe(h=>i(f,h))});a=()=>{for(let f of c)f()}}else a=this.observe().subscribe((u,c)=>i(u,c));let l=()=>{a();for(let u of r)u.disposed=!0,u.timer?.cancel();this._storageDisposers.delete(l)};return this._storageDisposers.add(l),{dispose:l}}async _cascadeRestore(e,n){for(let r of e){let s;try{s=await r.load(this.name)}catch(i){n?.(i,r);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let o=s;try{if(o.mode==="full"&&o.snapshot!=null)return this.restore(o.snapshot),!0;if(o.version===fe&&o.nodes!=null)return this.restore(o),!0}catch(i){n?.(i,r)}}return!1}static async fromStorage(e,n,r){for(let s of n){let o;try{o=await s.load(e)}catch(l){r?.onError?.(l,s);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let i=o,a=i.mode==="full"&&i.snapshot!=null?i.snapshot:i.version===fe&&i.nodes!=null?i:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(l){r?.onError?.(l,s)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let s={path:e,annotation:n,timestamp_ns:te(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(s)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(s=>!e(s)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let s of n)this._traceRing.push(s);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),s=new Set(Object.keys(n.nodes)),o=[...s].filter(v=>!r.has(v)).sort(),i=[...r].filter(v=>!s.has(v)).sort(),a=[],l=[];for(let v of r){if(!s.has(v))continue;let b=e.nodes[v],_=n.nodes[v],T=b.v,x=_.v;T!=null&&x!=null&&T.id===x.id&&T.version!==x.version&&l.push({path:v,id:T.id,from:T.version,to:x.version});let w=T!=null&&x!=null&&T.id===x.id&&T.version===x.version;for(let O of["type","status","sentinel"]){let N=b[O],R=_[O];N!==R&&a.push({path:v,field:O,from:N,to:R})}if(!w)for(let O of["value","meta"]){let N=b[O],R=_[O];xr(N,R)||a.push({path:v,field:O,from:N,to:R})}}let u=v=>`${v.from} ${v.to}`,c=new Set(e.edges.map(u)),f=new Set(n.edges.map(u)),p=n.edges.filter(v=>!c.has(u(v))),h=e.edges.filter(v=>!f.has(u(v))),d=new Set(e.subgraphs),g=new Set(n.subgraphs),m=[...g].filter(v=>!d.has(v)).sort(),y=[...d].filter(v=>!g.has(v)).sort();return{nodesAdded:o,nodesRemoved:i,nodesChanged:a,versionChanges:l,edgesAdded:p,edgesRemoved:h,subgraphsAdded:m,subgraphsRemoved:y}}};function xn(t,e){let n=U.diff(t,e),r={};for(let s of n.nodesAdded){let o=e.nodes[s];o!=null&&(r[s]=o)}return{...n,nodesAddedFull:r}}function kt(t,e,n,r={}){let s={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?s:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let o=r.maxDepth;if(o!=null&&(!Number.isInteger(o)||o<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(o===0)return r.withDetail?s:[];let i=new Map,a=new Map,l=new Map,u=new Map,c=new Set;for(let[b,_]of Object.entries(t.nodes)){if(!b)continue;c.add(b);let T=_.deps??[];i.set(b,T);for(let x of T)x&&(c.add(x),a.has(x)||a.set(x,new Set),a.get(x).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let _=typeof b.from=="string"?b.from:"",T=typeof b.to=="string"?b.to:"";!_||!T||(c.add(_),c.add(T),u.has(_)||u.set(_,new Set),u.get(_).add(T),l.has(T)||l.set(T,new Set),l.get(T).add(_))}if(!c.has(e))return r.withDetail?s:[];let f=r.both===!0,p=b=>{if(f){let w=i.get(b)??[],O=l.get(b),N=a.get(b),R=u.get(b),k=[...w];return O&&k.push(...O),N&&k.push(...N),R&&k.push(...R),k}if(n==="upstream"){let w=i.get(b)??[],O=l.get(b);return O?[...w,...O]:w}let _=a.get(b),T=u.get(b),x=_?[..._]:[];return T&&x.push(...T),x},h=new Set([e]),d=new Map,g=[{path:e,depth:0}],m=0,y=!1;for(;m<g.length;){let b=g[m++];if(o!=null&&b.depth>=o){p(b.path).length>0&&(y=!0);continue}for(let _ of p(b.path))!_||h.has(_)||(h.add(_),d.set(_,b.depth+1),g.push({path:_,depth:b.depth+1}))}let v=[...d.keys()].sort((b,_)=>b<_?-1:b>_?1:0);return r.withDetail?{paths:v,depths:d,truncated:y}:v}function Pr(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],s=e[n];if(r.path!==s.path||r.type!==s.type||r.status!==s.status||r.hop!==s.hop||r.dep_index!==s.dep_index||r.annotation!==s.annotation||r.value!==s.value||r.lastMutation!==s.lastMutation)return!1;let o=r.v,i=s.v;if(o!==i&&(o==null||i==null||o.id!==i.id||o.version!==i.version))return!1}return!0}ie();function St(t,e){let n=new Map,r=(s,o)=>{if(n.has(s))return;let i={off:()=>{},prefix:o};n.set(s,i);let a=s.topology.subscribe(l=>{for(let u of l){if(u[0]!==M)continue;let c=u[1];if(e(c,s,o),c.kind==="added"&&c.nodeKind==="mount"){let f=s._mounts.get(c.name);if(f instanceof U){let p=`${o}${c.name}::`;r(f,p)}}else if(c.kind==="removed"&&c.nodeKind==="mount"){let f=`${o}${c.name}::`;for(let[p,h]of Array.from(n.entries()))p!==t&&h.prefix.startsWith(f)&&(h.off(),n.delete(p))}}});i.off=a;for(let[l,u]of s._mounts)if(u instanceof U){let c=`${o}${l}::`;r(u,c)}};return r(t,""),()=>{for(let s of n.values())s.off();n.clear()}}Tt();function Qe(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}Ie();pe();ie();Ne();function wn(t,e){return Qe("messaging",t,e)}var et=class extends U{_log;events;latest;hasLatest;constructor(e,n={}){super(e,n.graph),this._log=ze([],{name:"events",maxSize:n.retainedLimit}),this.events=this._log.entries,this.add(this.events,{name:"events"}),this.latest=j([this.events],([r])=>{let s=r;return s.length===0?null:s[s.length-1]},{name:"latest",describeKind:"derived",meta:wn("topic_latest")}),this.add(this.latest,{name:"latest"}),this.addDisposer(re(this.latest)),this.hasLatest=j([this.events],([r])=>r.length>0,{name:"hasLatest",describeKind:"derived",meta:wn("topic_has_latest")}),this.add(this.hasLatest,{name:"hasLatest"}),this.addDisposer(re(this.hasLatest)),this.addDisposer(()=>{this.events.down([[H]])}),this.addDisposer(()=>this._log.disposeAllViews())}publish(e){this._log.append(e)}retained(){return this.events.cache}};function On(t,e){return Qe("audit",t,e)}var Lr=new Set(["data","error","complete","teardown"]),tt=class extends U{entries;count;_log;_target;constructor(e,n){super(n.name??`${e.name}_audit`,n.graph),this._target=e,this._log=ze([],{name:"entries",...n.maxSize!=null?{maxSize:n.maxSize}:{}}),this.entries=this._log.entries,this.add(this.entries,{name:"entries"}),this.count=j([this.entries],([l])=>l.length,{name:"count",describeKind:"derived",meta:On("count")}),this.add(this.count,{name:"count"}),this.addDisposer(re(this.count));let r=n.includeTypes!=null?new Set(n.includeTypes):Lr,s=n.filter,o=0,i=e.observe({timeline:!0,structured:!0}),a=i.onEvent(l=>{if(l.type==="derived")return;let u=l.type;if(!r.has(u))return;let c=l.path??"",f={seq:o++,timestamp_ns:l.timestamp_ns??te(),wall_clock_ns:oe(),path:c,type:u},h=(c?At(e,c):void 0)?.lastMutation;h!=null&&(f.actor=h.actor),u==="data"&&(f.value=l.data),u==="error"&&(f.error=l.data);let d=c?Br(e,c):void 0;d!=null&&(f.annotation=d),!(s!=null&&!s(f))&&this._log.append(f)});this.addDisposer(()=>{a(),i.dispose()}),this.addDisposer(()=>this._log.disposeAllViews())}all(){return this.entries.cache??[]}byNode(e){return this.all().filter(n=>n.path===e)}byActor(e){return this.all().filter(n=>n.actor?.id===e)}byActorType(e){return this.all().filter(n=>n.actor?.type===e)}byTimeRange(e,n){return this.all().filter(r=>!(r.timestamp_ns<e||n!=null&&r.timestamp_ns>=n))}get target(){return this._target}};function $r(t,e={}){return new tt(t,e)}var nt=class extends U{policies;violations;violationCount;_target;_mode;_currentGuard;constructor(e,n,r){super(r.name??`${e.name}_policy`,r.graph),this._target=e,this._mode=r.mode??"audit";let s=zr(n)?n:ne(n,{name:"policies"});this.policies=s,this.add(this.policies,{name:"policies"}),this.violations=new et("violations",{retainedLimit:r.violationsLimit??1e3}),this.mount("violations",this.violations),this.violationCount=j([this.violations.events],([u])=>u.length,{name:"violationCount",describeKind:"derived",meta:On("policy_violation_count")}),this.add(this.violationCount,{name:"violationCount"}),this.addDisposer(re(this.violationCount));let i=s.cache??[];this._currentGuard=ut(i);let a=s.subscribe(u=>{for(let c of u)c[0]===M&&(i=c[1]??[],this._currentGuard=ut(i))});this.addDisposer(a);let l=r.paths!=null?[...r.paths]:Tn(e);if(this._mode==="enforce"){let u=new Map,c=f=>{if(u.has(f))return;let p=At(e,f);if(!(p instanceof I))return;let h=(d,g)=>{let m=this._currentGuard(d,g);return m||this._publishViolation(d,g,f,"blocked"),m};u.set(f,p._pushGuard(h))};for(let f of l)c(f);if(r.paths==null){let f=St(e,(p,h,d)=>{if(p.kind==="added")if(p.nodeKind==="node")c(`${d}${p.name}`);else{let g=h._mounts.get(p.name);if(!(g instanceof U))return;let m=`${d}${p.name}::`,y=Tn(g);for(let v of y)c(v===""?`${d}${p.name}`:`${m}${v}`)}else if(p.kind==="removed")if(p.nodeKind==="node"){let g=`${d}${p.name}`,m=u.get(g);m!=null&&(m(),u.delete(g))}else{let g=`${d}${p.name}`,m=`${g}::`;for(let[y,v]of u)(y===g||y.startsWith(m))&&(v(),u.delete(y))}});this.addDisposer(f)}else{let f=e.topology.subscribe(p=>{for(let h of p){if(h[0]!==M)continue;let d=h[1];if(d.kind!=="removed"||d.nodeKind!=="node")continue;let g=u.get(d.name);g!=null&&(g(),u.delete(d.name))}});this.addDisposer(f)}this.addDisposer(()=>{for(let f of u.values())f();u.clear()})}else{let u=e.observe({timeline:!0,structured:!0}),c=u.onEvent(f=>{if(f.type!=="data"&&f.type!=="error")return;let p=f.path??"";if(!p||r.paths!=null&&!r.paths.includes(p))return;let h=f.actor??At(e,p)?.lastMutation?.actor;if(h==null)return;let d="write";this._currentGuard(h,d)||this._publishViolation(h,d,p,"observed")});this.addDisposer(()=>{c(),u.dispose()})}}_publishViolation(e,n,r,s){this.violations.publish({timestamp_ns:te(),wall_clock_ns:oe(),path:r,actor:e,action:n,mode:this._mode,result:s})}all(){return this.violations.retained()}get mode(){return this._mode}get target(){return this._target}};function Fr(t,e,n={}){return new nt(t,e,n)}function Vr(t,e,n,r){return t.explain(e,n,{reactive:!0,...r})}function Hr(t,e={}){let n={format_version:1,timestamp_ns:te(),wall_clock_ns:oe(),graph:t.snapshot()};if(e.actor!=null&&(n.actor=e.actor),e.audit!=null){let s=[...e.audit.all()];n.audit={count:s.length,entries:s}}if(e.policies!=null){let s=e.policies.policies.cache??[];n.policies={mode:e.policies.mode,rules:s,violations:[...e.policies.all()]}}let r=jr(n);return{...n,fingerprint:r}}function zr(t){return typeof t=="object"&&t!==null&&"subscribe"in t}function At(t,e){try{return t.node(e)}catch{return}}function Br(t,e){try{return t.annotation(e)}catch{return}}function Tn(t){let e=t.describe({detail:"minimal"});return Object.keys(e.nodes)}function jr(t){return Ee(JSON.stringify(Ur(t)))}function Ur(t){let e=new Set,n=r=>{if(r===void 0)return{__undefined:!0};if(r===null)return null;let s=typeof r;if(s==="bigint")return{__bigint:r.toString()};if(s!=="object")return r;let o=r;if(e.has(o))return{__circular:!0};e.add(o);try{if(Array.isArray(o))return o.map(n);if(o instanceof Date)return{__date:o.toISOString()};if(o instanceof RegExp)return{__regexp:{source:o.source,flags:o.flags}};if(o instanceof Map)return{__map:[...o.entries()].map(([l,u])=>[n(l),n(u)])};if(o instanceof Set)return{__set:[...o].map(n)};if(ArrayBuffer.isView(o)){let a=o,l=new Array(a.length);for(let u=0;u<a.length;u++)l[u]=a[u]??0;return{__typed_array:{ctor:o.constructor.name,data:l}}}let i={};for(let a of Object.keys(o).sort())i[a]=n(o[a]);return i}finally{e.delete(o)}};return n(t)}0&&(module.exports={AuditTrailGraph,PolicyEnforcerGraph,auditTrail,complianceSnapshot,policyEnforcer,reactiveExplainPath});
@@ -1,6 +1,6 @@
1
1
  import '../../node-BVV7G1bq.cjs';
2
- import '../../graph-C4Uxwv0T.cjs';
3
- import '../../index-B-z8WaSd.cjs';
4
- export { A as AuditEntry, b as AuditTrailGraph, c as AuditTrailOptions, C as ComplianceSnapshotOptions, d as ComplianceSnapshotResult, P as PolicyEnforcerGraph, e as PolicyEnforcerOptions, a as PolicyViolation, f as auditTrail, g as complianceSnapshot, p as policyEnforcer, r as reactiveExplainPath } from '../../index-iBp74eGU.cjs';
2
+ import '../../graph-CdJeX7O7.cjs';
3
+ import '../../index-BDLy6CQ9.cjs';
4
+ export { A as AuditEntry, b as AuditTrailGraph, c as AuditTrailOptions, C as ComplianceSnapshotOptions, d as ComplianceSnapshotResult, P as PolicyEnforcerGraph, e as PolicyEnforcerOptions, a as PolicyViolation, f as auditTrail, g as complianceSnapshot, p as policyEnforcer, r as reactiveExplainPath } from '../../index-BJDXj9Wf.cjs';
5
5
  import '../../meta-COtmHLwT.cjs';
6
6
  import '../../extra/storage-core.cjs';
@@ -1,6 +1,6 @@
1
1
  import '../../node-BVV7G1bq.js';
2
- import '../../graph-CWeI0aHd.js';
3
- import '../../index-CvS9IuTG.js';
4
- export { A as AuditEntry, b as AuditTrailGraph, c as AuditTrailOptions, C as ComplianceSnapshotOptions, d as ComplianceSnapshotResult, P as PolicyEnforcerGraph, e as PolicyEnforcerOptions, a as PolicyViolation, f as auditTrail, g as complianceSnapshot, p as policyEnforcer, r as reactiveExplainPath } from '../../index-BBINVimG.js';
2
+ import '../../graph-BOhEGJ6E.js';
3
+ import '../../index-Dbmj0iYR.js';
4
+ export { A as AuditEntry, b as AuditTrailGraph, c as AuditTrailOptions, C as ComplianceSnapshotOptions, d as ComplianceSnapshotResult, P as PolicyEnforcerGraph, e as PolicyEnforcerOptions, a as PolicyViolation, f as auditTrail, g as complianceSnapshot, p as policyEnforcer, r as reactiveExplainPath } from '../../index-BUZPTPSQ.js';
5
5
  import '../../meta-BMwx3ExI.js';
6
6
  import '../../extra/storage-core.js';
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"../../chunk-YZ6VYLFD.js";import"../../chunk-EBQ6FXKW.js";import"../../chunk-K54OKWNY.js";import"../../chunk-CZVYLXFK.js";import"../../chunk-7EQPXQ7H.js";import"../../chunk-XRSHMHEG.js";import"../../chunk-PSQNYY72.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-N2KKISCE.js";import"../../chunk-UMH3HSP7.js";import"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{a as AuditTrailGraph,c as PolicyEnforcerGraph,b as auditTrail,f as complianceSnapshot,d as policyEnforcer,e as reactiveExplainPath};
1
+ import{a,b,c,d,e,f}from"../../chunk-PWKLZ2XU.js";import"../../chunk-VXJX3ZZP.js";import"../../chunk-K54OKWNY.js";import"../../chunk-CZVYLXFK.js";import"../../chunk-MFNOZ5E6.js";import"../../chunk-XRSHMHEG.js";import"../../chunk-4JBKKUCJ.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-N2KKISCE.js";import"../../chunk-UMH3HSP7.js";import"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{a as AuditTrailGraph,c as PolicyEnforcerGraph,b as auditTrail,f as complianceSnapshot,d as policyEnforcer,e as reactiveExplainPath};
@@ -4,4 +4,4 @@
4
4
  `)}function un(t){if(t.version!==de)throw new Error(`unsupported snapshot version ${String(t.version)} (expected ${de})`);for(let e of["name","nodes","edges","subgraphs"])if(!(e in t))throw new Error(`snapshot missing required key "${e}"`);if(typeof t.name!="string")throw new TypeError("snapshot 'name' must be a string");if(typeof t.nodes!="object"||t.nodes===null||Array.isArray(t.nodes))throw new TypeError("snapshot 'nodes' must be an object");if(!Array.isArray(t.edges))throw new TypeError("snapshot 'edges' must be an array");if(!Array.isArray(t.subgraphs))throw new TypeError("snapshot 'subgraphs' must be an array")}function gr(t,e){let n=new WeakMap,r=(s,o)=>{if(Object.is(s,o))return!0;if(s==null||o==null||typeof s!="object"||typeof o!="object")return!1;let i=n.get(s);if(i==null&&(i=new WeakSet,n.set(s,i)),i.has(o))return!0;i.add(o);let a=s.constructor,d=o.constructor;if(a!==d)return!1;if(s instanceof Date)return s.getTime()===o.getTime();if(s instanceof RegExp)return s.source===o.source&&s.flags===o.flags;if(Array.isArray(s)){let h=o;if(s.length!==h.length)return!1;for(let f=0;f<s.length;f++)if(!r(s[f],h[f]))return!1;return!0}if(s instanceof Map){let h=o;if(s.size!==h.size)return!1;for(let[f,l]of s)if(!h.has(f)||!r(l,h.get(f)))return!1;return!0}if(s instanceof Set){let h=o;if(s.size!==h.size)return!1;for(let f of s){let l=!1;for(let g of h)if(r(f,g)){l=!0;break}if(!l)return!1}return!0}if(ArrayBuffer.isView(s)){let h=s,f=o;if(h.length!==f.length)return!1;for(let l=0;l<h.length;l++)if(h[l]!==f[l])return!1;return!0}let u=Object.keys(s),c=Object.keys(o);if(u.length!==c.length)return!1;let p=new Set(c);for(let h of u)if(!p.has(h)||!r(s[h],o[h]))return!1;return!0};return r(t,e)}function vt(t){if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(vt);let e=t,n=Object.keys(e).sort(),r={};for(let s of n)r[s]=vt(e[s]);return r}function mr(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function br(t){return t.replaceAll("\\","\\\\").replaceAll('"','\\"')}function yr(t){return t==="TD"?"down":t==="BT"?"up":t==="RL"?"left":"right"}function ln(t){let e=new Set,n=[];function r(s,o){let i=`${s}\0${o}`;e.has(i)||(e.add(i),n.push([s,o]))}for(let[s,o]of Object.entries(t.nodes)){let i=o.deps;if(i)for(let a of i)r(a,s)}for(let s of t.edges)r(s.from,s.to);return n}function cn(t){if(t===void 0)return"LR";if(t==="TD"||t==="LR"||t==="BT"||t==="RL")return t;throw new Error(`invalid diagram direction ${String(t)}; expected one of: TD, LR, BT, RL`)}function vr(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,{expand:s,...o}=t,i={...o,edges:n?t.edges:[],subgraphs:r?t.subgraphs:[]},a=JSON.stringify(vt(i),null,e.indent??2);return e.logger?.(a),a}function _r(t,e){let n=e.includeEdges??!0,r=e.includeSubgraphs??!0,s=[];s.push(`Graph ${t.name}`),s.push("Nodes:");for(let i of Object.keys(t.nodes).sort()){let a=t.nodes[i];s.push(`- ${i} (${a.type}/${a.status}): ${qe(a.value)}`)}if(n){s.push("Edges:");for(let i of t.edges)s.push(`- ${i.from} -> ${i.to}`)}if(r){s.push("Subgraphs:");for(let i of t.subgraphs)s.push(`- ${i}`)}let o=s.join(`
5
5
  `);return e.logger?.(o),o}function fn(t,e){let n=cn(e.direction),r=Object.keys(t.nodes).sort(),s=new Map;for(let i=0;i<r.length;i+=1)s.set(r[i],`n${i}`);let o=[`flowchart ${n}`];for(let i of r){let a=s.get(i);o.push(` ${a}["${mr(i)}"]`)}for(let[i,a]of ln(t)){let d=s.get(i),u=s.get(a);!d||!u||o.push(` ${d} --> ${u}`)}return o.join(`
6
6
  `)}function xr(t,e){let n=fn(t,e);return pn(n)}function pn(t,e){let n=e?.theme??"default",r=e?.autoSync??!0,o=JSON.stringify({code:t,mermaid:{theme:n},autoSync:r}),i=new TextEncoder().encode(o),a="";for(let u=0;u<i.length;u++)a+=String.fromCharCode(i[u]);return`https://mermaid.live/edit#base64:${globalThis.btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}function wr(t,e){let n=cn(e.direction),r=Object.keys(t.nodes).sort(),s=new Map;for(let i=0;i<r.length;i+=1)s.set(r[i],`n${i}`);let o=[`direction: ${yr(n)}`];for(let i of r){let a=s.get(i);o.push(`${a}: "${br(i)}"`)}for(let[i,a]of ln(t)){let d=s.get(i),u=s.get(a);!d||!u||o.push(`${d} -> ${u}`)}return o.join(`
7
- `)}function Tr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function We(t){let e="^";for(let n=0;n<t.length;n+=1){let r=t[n];if(r==="*"){e+=".*";continue}if(r==="?"){e+=".";continue}if(r==="["){let s=t.indexOf("]",n+1);if(s<=n+1){e+="\\[";continue}let o=t.slice(n+1,s);o.startsWith("!")&&(o=`^${o.slice(1)}`),o=o.replace(/\\/g,"\\\\"),e+=`[${o}]`,n=s;continue}e+=Tr(r)}return e+="$",new RegExp(e)}var Er={data:"\x1B[32m",dirty:"\x1B[33m",resolved:"\x1B[36m",invalidate:"\x1B[93m",pause:"\x1B[90m",resume:"\x1B[96m",complete:"\x1B[34m",error:"\x1B[31m",teardown:"\x1B[91m",derived:"\x1B[35m",path:"\x1B[90m",reset:"\x1B[0m"},Or={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function qe(t){if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||t==null)return String(t);try{return JSON.stringify(t)}catch{return"[unserializable]"}}function Nr(t){return t==="none"?Or:t==="ansi"||t==null?Er:{data:t.data??"",dirty:t.dirty??"",resolved:t.resolved??"",invalidate:t.invalidate??"",pause:t.pause??"",resume:t.resume??"",complete:t.complete??"",error:t.error??"",teardown:t.teardown??"",derived:t.derived??"",path:t.path??"",reset:t.reset??""}}function dn(t){if(t==null)return{};let e=t.detail;return e==="full"?{...t,structured:t.structured??!0,timeline:t.timeline??!0,causal:t.causal??!0,derived:t.derived??!0}:e==="minimal"?{...t,structured:t.structured??!0}:t.format==="stage-log"?{...t,structured:t.structured??!0,timeline:t.timeline??!0}:t}function Sr(t,e,n){for(let r=0;r<t.length;r++){let s=t.charCodeAt(r);if(s<32||s===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${s.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function yt(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(M))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${M}' (path separator)`);if(t===q)throw new Error(`Graph "${e}": ${n} name "${q}" is reserved for meta companion paths`);Sr(t,e,n)}function kr(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(M);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function Rr(t,e){let n=!1;for(let s of t)if(!e.isMetaPassthrough(s[0])){n=!0;break}return n?t.filter(s=>e.isMetaPassthrough(s[0])):t}function hn(t){for(let e of t._mounts.values())hn(e);for(let e of t._nodes.values())try{e.down([[H]],{internal:!0})}catch{}}var ve=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(M))throw new Error(`Graph name must not contain '${M}' (got "${e}")`);if(e===q)throw new Error(`Graph name "${q}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ae,this._traceRing=new Se(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning)}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=ht(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}add(e,n){let r=e.name,s=n?.name??r;if(s==null||s==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let o=s,i=n?.annotation;if(yt(o,this.name,"add"),this._mounts.has(o))throw new Error(`Graph "${this.name}": name "${o}" is already a mount point`);if(this._nodes.has(o))throw new Error(`Graph "${this.name}": node "${o}" already exists`);let a=this._nodeToName.get(e);if(a!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${a}"`);return this._nodes.set(o,e),this._nodeToName.set(e,o),this._emitTopology({kind:"added",name:o,nodeKind:"node"}),i!=null&&(this._annotations.set(o,i),this.config.inspectorEnabled&&this._traceRing.push({path:o,annotation:i,timestamp_ns:pe()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof G&&n._applyVersioning(e)}remove(e){yt(e,this.name,"remove");let n=this._mounts.get(e);if(n){let o={kind:"mount",nodes:[],mounts:[]},i=[];n._collectObserveTargets("",i);for(let[a,d]of i)a.includes(`${M}${q}${M}`)||o.nodes.push(a);return o.nodes.sort(),o.mounts.push(e),o.mounts.push(...n._collectSubgraphs(`${e}${M}`)),this._mounts.delete(e),n._parent=void 0,hn(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:o}),o}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[H]],{internal:!0});let s={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:s}),s}removeAll(e){let n=typeof e=="function"?e:(()=>{let o=We(e);return i=>o.test(i)})(),r={kind:"mount",nodes:[],mounts:[]},s=[...this._nodes.keys(),...this._mounts.keys()].filter(o=>n(o));for(let o of s){let i=this.remove(o);r.nodes.push(...i.nodes),r.mounts.push(...i.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let s=e[r++];return{value:[s,n.get(s)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(M))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let s=r?.internal===!0;this.node(e).down([[$,n]],{actor:r?.actor,internal:s,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);fe(()=>{for(let[s,o]of r)this.set(s,o,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[Y]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let s=r?.internal===!0;this.node(e).down([[P,n]],{actor:r?.actor,internal:s,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[J]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[d,u]of this._nodes)r.set(u,d);let a=[];for(let[d,u]of this._nodes)if(u instanceof G)for(let c of u._deps){let p=r.get(c.node);p!=null&&a.push([p,d])}return a.sort((d,u)=>d[0]<u[0]?-1:d[0]>u[0]?1:d[1]<u[1]?-1:d[1]>u[1]?1:0),a}let s=[];this._collectObserveTargets("",s);let o=new Map;for(let[a,d]of s)o.set(d,a);let i=[];for(let[a,d]of s)if(d instanceof G)for(let u of d._deps){let c=o.get(u.node);c!=null&&i.push([c,a])}return i.sort((a,d)=>a[0]<d[0]?-1:a[0]>d[0]?1:a[1]<d[1]?-1:a[1]>d[1]?1:0),i}mount(e,n){if(yt(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(n===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(n._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${n._parent.name}"`);for(let r=this;r!=null;r=r._parent)if(r===n)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,n),n._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),n}resolve(e){let n=kr(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],s=n.slice(1);if(s.length===0){let a=this._nodes.get(r);if(a)return a;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let o=this._nodes.get(r);if(o&&s.length>0&&s[0]===q)return this._resolveMetaChainFromNode(o,s,n.join(M));let i=this._mounts.get(r);if(!i)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${s.join(M)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return i.resolve(s.join(M))}_resolveMetaChainFromNode(e,n,r){let s=e,o=0,i=[...n];for(;o<i.length;){if(i[o]!==q)throw new Error(`Graph "${this.name}": expected ${q} segment in meta path "${r}"`);if(o+1>=i.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${q} in "${r}"`);let a=i[o+1],d=s.meta[a];if(!d)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);s=d,o+=2}return s}signal(e,n){if(n?.internal!==!0){for(let s of e)if(this.config.messageTier(s[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,s){for(let d of this._mounts.values())d._signalDeliver(e,n,r,s);let i=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=Rr(e,this.config);for(let d of[...this._nodes.keys()].sort()){let u=this._nodes.get(d);if(!r.has(u)){r.add(u);try{u.down(e,i)}catch(c){if(c instanceof U)throw c;s.push(c)}a.length!==0&&this._signalMetaSubtree(u,a,r,i,s)}}}_signalMetaSubtree(e,n,r,s,o){for(let i of Object.keys(e.meta).sort()){let a=e.meta[i];if(!r.has(a)){r.add(a);try{a.down(n,s)}catch(d){if(d instanceof U)throw d;o.push(d)}this._signalMetaSubtree(a,n,r,s,o)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=e?.actor,r=e?.filter,s=Pe(e?.detail,e?.fields),o=e?.format==="spec",i=o?Pe("minimal"):s,a=[];this._collectObserveTargets("",a);let d=new Map;for(let[x,w]of a)d.set(w,x);let u=[];{let x=a.map(([,N])=>N),w=new Set(d.values()),E=0;for(;x.length>0;){let N=x.shift();if(N instanceof G)for(let D of N._deps){let S=D.node;if(d.has(S))continue;let R=S.name??"",k=R;if(!k||w.has(k))if(R){let L=2;for(;w.has(`${R}#${L}`);)L++;k=`${R}#${L}`}else for(k=`__internal__/${E++}`;w.has(k);)k=`__internal__/${E++}`;d.set(S,k),w.add(k),u.push([k,S]),x.push(S)}}}let c=[...a,...u],p={};for(let[x,w]of c){if(n!=null&&!w.allowsObserve(n))continue;let E=pt(w,i),N=w instanceof G?w._deps.map(k=>d.get(k.node)??k.node.name??""):[],{name:D,...S}=E,R={...S,deps:N};if(!o){let k=this._annotations.get(x);k!=null&&(R.annotation=k)}if(r!=null)if(typeof r=="function"){let k=r;if(!(k.length>=2?k(x,R):k(R)))continue}else{let k=!0;for(let[L,V]of Object.entries(r)){let K=L==="deps_includes"?"depsIncludes":L==="meta_has"?"metaHas":L;if(K==="depsIncludes"){if(!R.deps.includes(String(V))){k=!1;break}continue}if(K==="metaHas"){if(!Object.hasOwn(R.meta??{},String(V))){k=!1;break}continue}if(R[K]!==V){k=!1;break}}if(!k)continue}p[x]=R}let h=new Set(Object.keys(p)),f=[];for(let[x,w]of c)if(w instanceof G)for(let E of w._deps){let N=d.get(E.node);N!=null&&f.push([N,x])}f.sort((x,w)=>x[0]<w[0]?-1:x[0]>w[0]?1:x[1]<w[1]?-1:x[1]>w[1]?1:0);let l=f.map(([x,w])=>({from:x,to:w}));(n!=null||r!=null)&&(l=l.filter(x=>h.has(x.from)&&h.has(x.to)));let g=this._collectSubgraphs(""),m=n!=null||r!=null?g.filter(x=>{let w=`${x}${M}`;return[...h].some(E=>E===x||E.startsWith(w))}):g,y=this,_=e,b={name:this.name,nodes:p,edges:l,subgraphs:m,expand(x){let w={..._,format:void 0};return Array.isArray(x)?(w.fields=x,w.detail=void 0):(w.detail=x,w.fields=void 0),y.describe(w)}},v=e??{},T=v.format;return T==="json"?vr(b,v):T==="pretty"?_r(b,v):T==="mermaid"?fn(b,v):T==="mermaid-url"?xr(b,v):T==="d2"?wr(b,v):T==="ascii"?sn(b,v):b}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${r}`;n.push(s),n.push(...this._mounts.get(r)._collectSubgraphs(`${s}${M}`))}return n}resourceProfile(e){return on(this,e)}reachable(e,n,r={}){return r.withDetail===!0?_t(this.describe(),e,n,{...r,withDetail:!0}):_t(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(e,n,r)}_explainStatic(e,n,r){let s=this.describe({detail:"full"}),o=new Map(this._annotations),i=new Map;for(let[a,d]of Object.entries(s.nodes))d.lastMutation!=null&&i.set(a,d.lastMutation);return Bt(s,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:o,lastMutations:i})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",s=0,o=ee(s,{name:`${r}_version`}),i=this.observe({timeline:!0,structured:!0}),a=!1,d=!1,u=()=>{a||d||(a=!0,Te(()=>{a=!1,!d&&(s+=1,o.emit(s))}))},c=i.onEvent(m=>{let y=m.type;y!=="data"&&y!=="error"&&y!=="complete"&&y!=="teardown"||u()}),p=[],h=new WeakSet,f=m=>{if(h.has(m)||d)return;h.add(m);let y=m.topology.subscribe(_=>{for(let b of _){if(b[0]!==$)continue;let v=b[1];if(u(),v.kind==="added"&&v.nodeKind==="mount"){let T=m._mounts.get(v.name);T!=null&&f(T)}}});p.push(y);for(let _ of m._mounts.keys()){let b=m._mounts.get(_);b!=null&&f(b)}};f(this);let l;try{l=Q([o],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(m,y)=>m===y})}catch(m){c();for(let y of p)y();throw i.dispose(),m}let g=ne(l);return{node:l,dispose(){d=!0,c();for(let m of p)m();p.length=0,i.dispose(),g()}}}_explainReactive(e,n,r){let s=0,o=ee(s,{name:"explain_version"}),i=this.observe({timeline:!0,structured:!0}),a=!1,d=!1,u=i.onEvent(f=>{let l=f.type;l!=="data"&&l!=="error"&&l!=="complete"&&l!=="teardown"||a||d||(a=!0,Te(()=>{a=!1,!d&&(s+=1,o.emit(s))}))}),c={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},p;try{p=Q([o],()=>this._explainStatic(e,n,c),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(f,l)=>f.found===l.found&&f.reason===l.reason&&f.steps.length===l.steps.length&&Dr(f.steps,l.steps)})}catch(f){throw u(),i.dispose(),f}let h=ne(p);return{node:p,dispose(){d=!0,u(),i.dispose(),h()}}}_pathsMatching(e){let n=We(e),r=[];return this._collectObserveTargets("",r),r.map(([s])=>s).filter(s=>n.test(s))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${M}${r}`;this._mounts.get(r)._collectObserveTargets(s,n)}for(let r of[...this._nodes.keys()].sort()){let s=this._nodes.get(r),o=e===""?r:`${e}${M}${r}`;n.push([o,s]),this._appendMetaObserveTargets(o,s,n)}}_appendMetaObserveTargets(e,n,r){for(let s of Object.keys(n.meta).sort()){let o=n.meta[s],i=`${e}${M}${q}${M}${s}`;r.push([i,o]),this._appendMetaObserveTargets(i,o,r)}}observe(e,n){let r=typeof e=="string",o=dn(r?n:e),i=o.structured===!0||o.timeline===!0||o.causal===!0||o.derived===!0||o.detail==="minimal"||o.detail==="full"||o.format!=null,a=o.actor;if(r){let c=e,p=this.resolve(c);if(a!=null&&!p.allowsObserve(a))throw new U({actor:a,action:"observe",nodeName:c});return i?this._buildStructuredObserver([[c,p]],o,"one"):{subscribe(h){return p.subscribe(h)},up(h){try{p.up?.(h)}catch(f){if(f instanceof U)return;throw f}}}}let d=[];this._collectObserveTargets("",d),d.sort((c,p)=>c[0]<p[0]?-1:c[0]>p[0]?1:0);let u=a==null?d:d.filter(([,c])=>c.allowsObserve(a));return i?this._buildStructuredObserver(u,o,"all"):{subscribe:c=>{let p=u.map(([h,f])=>f.subscribe(l=>{c(h,l)}));return()=>{for(let h of p)h()}},up:(c,p)=>{try{this.resolve(c).up?.(p)}catch(h){if(h instanceof U)return;throw h}}}}_buildStructuredObserver(e,n,r){let s=r==="one"?e[0]?.[0]:void 0,o=i=>{if(r==="one"&&s!=null){let c=this.resolve(s);return this._buildStructuredObserver([[s,c]],i,"one")}let a=[];this._collectObserveTargets("",a),a.sort((c,p)=>c[0]<p[0]?-1:c[0]>p[0]?1:0);let d=i.actor,u=d==null?a:a.filter(([,c])=>c.allowsObserve(d));return this._buildStructuredObserver(u,i,"all")};return this._createObserveResult(e,n,o)}_createObserveResult(e,n,r){let s=n.timeline===!0,o=n.causal===!0,i=n.derived===!0,a=n.detail==="minimal",d=this.config.inspectorEnabled,u=(o||i)&&d,c=n.maxEvents,p=c!=null&&c>0?new Se(c):null,h=[],f=new Set,l={},g=new Set,m=0,y=0,_=0,b=0,v=0,T=0,x=!1,w=!1,E=0,N=new Map,D=new Map,S=new Map,R=O=>{p?p.push(O):h.push(O);for(let C of f)C(O)},k=()=>s?{timestamp_ns:pe(),in_batch:Re(),batch_id:E}:{},L=(O,C)=>{if(!(!u||!(O instanceof G)))return O._setInspectorHook(z=>{if(z.kind==="dep_message")N.set(O,z.depIndex);else if(z.kind==="run"){let _e=z.batchData.map((A,F)=>A!=null&&A.length>0?A.at(-1):z.prevData[F]);D.set(O,_e);let B=z.batchData.map(A=>A!=null?[...A]:void 0);S.set(O,B),i&&R({type:"derived",path:C,dep_values:_e,dep_batches:B,...k()})}})},V=O=>{let C=N.get(O),z=D.get(O);if(!o||z==null)return{};let B=(C!=null&&C>=0&&O instanceof G?O._deps[C]:void 0)?.node,A=B?.v,F=S.get(O);return{trigger_dep_index:C,trigger_dep_name:B?.name,...A!=null?{trigger_version:{id:A.id,version:A.version}}:{},dep_values:[...z],...F!=null?{dep_batches:F}:{}}},K=[],se=[];for(let[O,C]of e){let z=L(C,O);z&&K.push(z),se.push(C.subscribe(_e=>{E++;for(let B of _e){let A=B[0],F=k();if(A===$){l[O]=B[1];let Qe=C instanceof G?C.lastMutation?.actor??me:me;R({type:"data",path:O,data:B[1],actor:Qe,...F,...V(C)})}else if(a)A===W?m++:A===X?y++:A===Y?_++:A===Z?b++:A===te?v++:A===H?T++:A===J&&!g.has(O)?x=!0:A===P&&(w=!0,g.add(O));else if(A===W)m++,R({type:"dirty",path:O,...F});else if(A===X)y++,R({type:"resolved",path:O,...F,...V(C)});else if(A===Y)_++,R({type:"invalidate",path:O,...F});else if(A===Z)b++,R({type:"pause",path:O,lockId:B[1],...F});else if(A===te)v++,R({type:"resume",path:O,lockId:B[1],...F});else if(A===J)g.has(O)||(x=!0),R({type:"complete",path:O,...F});else if(A===P){w=!0,g.add(O);let Qe=C instanceof G?C.lastMutation?.actor??me:me;R({type:"error",path:O,data:B[1],actor:Qe,...F})}else A===H&&(T++,R({type:"teardown",path:O,...F}))}}))}let Je=!1,Xe=()=>{if(!Je){Je=!0;for(let O of se)O();for(let O of K)O();for(let O of ke)O({value:void 0,done:!0});ke.length=0}},Ze=[],ke=[];f.add(O=>{let C=ke.shift();C?C({value:O,done:!1}):Ze.push(O)});let wt={get values(){return l},get dirtyCount(){return m},get resolvedCount(){return y},get invalidateCount(){return _},get pauseCount(){return b},get resumeCount(){return v},get teardownCount(){return T},get events(){return p?p.toArray():[...h]},get anyCompletedCleanly(){return x},get anyErrored(){return w},get completedWithoutErrors(){return x&&!w},onEvent(O){return f.add(O),()=>f.delete(O)},dispose:Xe,expand(O){Xe();let C={...n};return typeof O=="string"?C.detail=O:Object.assign(C,O),r(dn(C))},[Symbol.asyncIterator](){return{next(){return Ze.length>0?Promise.resolve({value:Ze.shift(),done:!1}):Je?Promise.resolve({value:void 0,done:!0}):new Promise(O=>ke.push(O))},return(){return Xe(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(wt,n),wt}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let s=n.logger??(l=>console.log(l)),o=n.includeTypes?new Set(n.includeTypes):null,i=n.excludeTypes?new Set(n.excludeTypes):null,a=o==null&&i==null?()=>!0:l=>(o==null||o.has(l))&&(i==null||!i.has(l)),d=Nr(n.theme),u=r==="stage-log"?pe():0,c=l=>l==null?"":n.stageLabels?.[l]??l,p=(l,g)=>l.length>g?`${l.slice(0,g-1)}\u2026`:l,h=l=>l.type==="data"||l.type==="error"?p(qe(l.data),120):"",f=l=>{if(r==="stage-log"){let w=(pe()-u)/1e9,E=c(l.path).padEnd(9);if(l.type==="data"){let N=h(l);return`[${w.toFixed(3)}s] ${E} \u2190${N?` ${N}`:""}`}if(l.type==="error"){let N=h(l);return`[${w.toFixed(3)}s] ${E} \u2717${N?` ${N}`:""}`}return l.type==="complete"?`[${w.toFixed(3)}s] ${E} \u25A0 complete`:`[${w.toFixed(3)}s] ${E} ${l.type}`}if(r==="json")try{return JSON.stringify(l)}catch{return JSON.stringify({type:l.type,path:l.path,data:"[unserializable]"})}let g=d[l.type]??"",m=l.path?`${d.path}${l.path}${d.reset} `:"",y=l.type==="data"||l.type==="error",_=l.type==="pause"||l.type==="resume",b=y?` ${qe(l.data)}`:_?` ${qe(l.lockId)}`:"",v=l.type==="data"||l.type==="resolved"||l.type==="derived"?l:void 0,T=v?.trigger_dep_name!=null?` <- ${v.trigger_dep_name}`:v?.trigger_dep_index!=null?` <- #${v.trigger_dep_index}`:"",x=l.in_batch?" [batch]":"";return`${m}${g}${l.type.toUpperCase()}${d.reset}${b}${T}${x}`};e.onEvent(l=>{a(l.type)&&s(f(l),l)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){an(this._disposers,this.name),this.signal([[H]],{internal:!0}),an(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),s={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:d,guard:u,...c}=r.nodes[a];s[a]=c}let o=[...r.subgraphs].sort(),i={...r,version:1,nodes:s,subgraphs:o};if(e?.format==null)return i;if(e.format==="json-string")return JSON.stringify(i);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let a=this.config.lookupCodec(e.codec);if(a==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return At(a,a.encode(i))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ae,{codec:s,codecVersion:o,payload:i}=Ct(e,r);return s.decode(i,o)}restore(e,n){if(un(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(o=>We(o)),s=n?.includeProducers===!0;for(let o of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(a=>a.test(o)))continue;let i=e.nodes[o];if(i!==void 0){if(!("value"in i)||i.value===void 0){"value"in i&&i.value===void 0&&n?.onError?.(o,new Error(`restore: slice.value is undefined for "${o}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(i.type==="derived"||i.type==="effect")&&!(i.type==="producer"&&!s)){if(i.v!=null){let d=this.tryResolve(o)?.v;if(d!=null&&d.id===i.v.id&&d.version===i.v.version)continue}try{this.set(o,i.value)}catch(a){n?.onError?.(o,a)}}}}}static fromSnapshot(e,n){un(e);let r=typeof n=="function"?n:n?.build,s=typeof n=="function"?void 0:n?.factories,o=new t(e.name);if(r)return r(o),o.restore(e),o;for(let f of[...e.subgraphs].sort((l,g)=>{let m=l.split(M).length,y=g.split(M).length;return m!==y?m-y:l<g?-1:l>g?1:0})){let l=f.split(M),g=o;for(let m of l)g._mounts.has(m)||g.mount(m,new t(m)),g=g._mounts.get(m)}let i=s?Object.entries(s).map(([f,l])=>({re:We(f),factory:l})):[],a=f=>{for(let l of i)if(l.re.test(f))return l.factory},d=f=>{let l=f.split(M),g=l.pop();if(g==null||g.length===0)throw new Error(`invalid snapshot path "${f}"`);let m=o;for(let y of l){let _=m._mounts.get(y);if(!_)throw new Error(`unknown mount "${y}" in path "${f}"`);m=_}return[m,g]},u=Object.entries(e.nodes).filter(([f])=>!f.includes(`${M}${q}${M}`)).sort((f,l)=>f[0]<l[0]?-1:f[0]>l[0]?1:0),c=new Map(u),p=new Map,h=!0;for(;c.size>0&&h;){h=!1;for(let[f,l]of[...c.entries()]){let g=l?.deps??[];if(!g.every(T=>p.has(T)))continue;let[m,y]=d(f),_={...l?.meta??{}},b=a(f),v;if(l?.type==="state")v=ee(l.value,{meta:_});else{if(b==null)continue;v=b(y,{path:f,type:l.type,value:l.value,meta:_,deps:g,resolvedDeps:g.map(T=>p.get(T))})}m.add(v,{name:y}),p.set(f,v),c.delete(f),h=!0}}if(c.size>0){let f=[...c.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${f}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return o.restore(e),o}toJSON(){return this.snapshot()}attachStorage(e,n={}){let r=e.map(u=>({tier:u,debounceMs:Math.max(0,u.debounceMs??0),compactEvery:Math.max(1,u.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let s=(u,c)=>{if(u.disposed)return;let p=hr(c.nodes);if(u.lastSnapshot!=null&&p!==""&&p===u.lastFingerprint)return;let h=u.seq+1,f=he(),m=u.lastSnapshot==null||h%u.compactEvery===0?{mode:"full",snapshot:c,seq:h,timestamp_ns:f,format_version:de}:{mode:"diff",diff:gn(u.lastSnapshot,c),seq:h,timestamp_ns:f,format_version:de};if(u.tier.filter&&!u.tier.filter(this.name,m))return;let y;try{y=u.tier.save(this.name,m)}catch(_){n.onError?.(_,u.tier);return}if(y&&typeof y.then=="function"){let v=(u.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{u.disposed||(u.seq=h,u.lastSnapshot=c,u.lastFingerprint=p)},T=>{n.onError?.(T,u.tier)});u.savePending=v.finally(()=>{u.savePending===v&&(u.savePending=void 0)})}else u.seq=h,u.lastSnapshot=c,u.lastFingerprint=p},o=(u,c)=>{try{s(u,c)}catch(p){n.onError?.(p,u.tier)}},i=(u,c)=>{if(!c.some(l=>{let g=this.config.messageTier(l[0]);return g>=3&&g<5}))return;if(n.filter){let l=this.tryResolve(u);if(l==null)return;let g=pt(l,Pe("standard"));if(!n.filter(u,g))return}let h,f=()=>(h==null&&(h=this.snapshot()),h);for(let l of r)l.disposed||(l.debounceMs===0?o(l,f()):(l.timer==null&&(l.timer=new ze),l.timer.start(l.debounceMs,()=>{l.disposed||o(l,this.snapshot())})))},a;if(n.paths!=null){let c=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(p=>{let h=this.tryResolve(p);return h==null?()=>{}:h.subscribe(f=>i(p,f))});a=()=>{for(let p of c)p()}}else a=this.observe().subscribe((u,c)=>i(u,c));let d=()=>{a();for(let u of r)u.disposed=!0,u.timer?.cancel();this._storageDisposers.delete(d)};return this._storageDisposers.add(d),{dispose:d}}async _cascadeRestore(e,n){for(let r of e){let s;try{s=await r.load(this.name)}catch(i){n?.(i,r);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let o=s;try{if(o.mode==="full"&&o.snapshot!=null)return this.restore(o.snapshot),!0;if(o.version===de&&o.nodes!=null)return this.restore(o),!0}catch(i){n?.(i,r)}}return!1}static async fromStorage(e,n,r){for(let s of n){let o;try{o=await s.load(e)}catch(d){r?.onError?.(d,s);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let i=o,a=i.mode==="full"&&i.snapshot!=null?i.snapshot:i.version===de&&i.nodes!=null?i:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(d){r?.onError?.(d,s)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let s={path:e,annotation:n,timestamp_ns:pe(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(s)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(s=>!e(s)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let s of n)this._traceRing.push(s);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),s=new Set(Object.keys(n.nodes)),o=[...s].filter(_=>!r.has(_)).sort(),i=[...r].filter(_=>!s.has(_)).sort(),a=[],d=[];for(let _ of r){if(!s.has(_))continue;let b=e.nodes[_],v=n.nodes[_],T=b.v,x=v.v;T!=null&&x!=null&&T.id===x.id&&T.version!==x.version&&d.push({path:_,id:T.id,from:T.version,to:x.version});let w=T!=null&&x!=null&&T.id===x.id&&T.version===x.version;for(let E of["type","status","sentinel"]){let N=b[E],D=v[E];N!==D&&a.push({path:_,field:E,from:N,to:D})}if(!w)for(let E of["value","meta"]){let N=b[E],D=v[E];gr(N,D)||a.push({path:_,field:E,from:N,to:D})}}let u=_=>`${_.from} ${_.to}`,c=new Set(e.edges.map(u)),p=new Set(n.edges.map(u)),h=n.edges.filter(_=>!c.has(u(_))),f=e.edges.filter(_=>!p.has(u(_))),l=new Set(e.subgraphs),g=new Set(n.subgraphs),m=[...g].filter(_=>!l.has(_)).sort(),y=[...l].filter(_=>!g.has(_)).sort();return{nodesAdded:o,nodesRemoved:i,nodesChanged:a,versionChanges:d,edgesAdded:h,edgesRemoved:f,subgraphsAdded:m,subgraphsRemoved:y}}};function gn(t,e){let n=ve.diff(t,e),r={};for(let s of n.nodesAdded){let o=e.nodes[s];o!=null&&(r[s]=o)}return{...n,nodesAddedFull:r}}function _t(t,e,n,r={}){let s={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?s:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let o=r.maxDepth;if(o!=null&&(!Number.isInteger(o)||o<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(o===0)return r.withDetail?s:[];let i=new Map,a=new Map,d=new Map,u=new Map,c=new Set;for(let[b,v]of Object.entries(t.nodes)){if(!b)continue;c.add(b);let T=v.deps??[];i.set(b,T);for(let x of T)x&&(c.add(x),a.has(x)||a.set(x,new Set),a.get(x).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let v=typeof b.from=="string"?b.from:"",T=typeof b.to=="string"?b.to:"";!v||!T||(c.add(v),c.add(T),u.has(v)||u.set(v,new Set),u.get(v).add(T),d.has(T)||d.set(T,new Set),d.get(T).add(v))}if(!c.has(e))return r.withDetail?s:[];let p=r.both===!0,h=b=>{if(p){let w=i.get(b)??[],E=d.get(b),N=a.get(b),D=u.get(b),S=[...w];return E&&S.push(...E),N&&S.push(...N),D&&S.push(...D),S}if(n==="upstream"){let w=i.get(b)??[],E=d.get(b);return E?[...w,...E]:w}let v=a.get(b),T=u.get(b),x=v?[...v]:[];return T&&x.push(...T),x},f=new Set([e]),l=new Map,g=[{path:e,depth:0}],m=0,y=!1;for(;m<g.length;){let b=g[m++];if(o!=null&&b.depth>=o){h(b.path).length>0&&(y=!0);continue}for(let v of h(b.path))!v||f.has(v)||(f.add(v),l.set(v,b.depth+1),g.push({path:v,depth:b.depth+1}))}let _=[...l.keys()].sort((b,v)=>b<v?-1:b>v?1:0);return r.withDetail?{paths:_,depths:l,truncated:y}:_}function Dr(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],s=e[n];if(r.path!==s.path||r.type!==s.type||r.status!==s.status||r.hop!==s.hop||r.dep_index!==s.dep_index||r.annotation!==s.annotation||r.value!==s.value||r.lastMutation!==s.lastMutation)return!1;let o=r.v,i=s.v;if(o!==i&&(o==null||i==null||o.id!==i.id||o.version!==i.version))return!1}return!0}mt();function mn(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}var Ar=Ce((t,e)=>{t("write"),t("signal"),e("observe")}),Cr=Ce((t,e)=>{t("observe"),t("signal"),e("write")}),Mr=Ce((t,e)=>{t("observe"),t("signal"),e("write")});function Ke(t,e){return mn("cqrs",t,e)}var xt=class{_store=new Map;persist(e){let n=this._store.get(e.type);n||(n=[],this._store.set(e.type,n)),n.push(e)}loadEvents(e,n){let r=this._store.get(e)??[],s=n?.timestampNs,o=n?.seq,i=s==null?[...r]:r.filter(d=>d.timestampNs>s||d.timestampNs===s&&d.seq>(o??-1)),a=i.length>0?i[i.length-1]:void 0;return{events:i,cursor:a?{timestampNs:a.timestampNs,seq:a.seq}:n}}clear(){this._store.clear()}},Ye=class extends ve{_eventLogs=new Map;_commandHandlers=new Map;_projections=new Set;_sagas=new Set;_keepaliveDisposers=[];_eventStore;_seq=0;constructor(e,n={}){super(e,n.graph)}destroy(){for(let e of this._keepaliveDisposers)e();this._keepaliveDisposers.length=0,super.destroy()}event(e){let n=this._eventLogs.get(e);if(n)return n.node;let r=Vt([],{name:e,versioning:0}),s=r.entries,o=Q([s],([i])=>i,{name:e,describeKind:"state",meta:Ke("event",{event_name:e}),guard:Mr,initial:s.cache});return this.add(o,{name:e}),this._keepaliveDisposers.push(ne(o)),this._eventLogs.set(e,{log:r,node:o}),o}_appendEvent(e,n){let r=this._eventLogs.get(e);if(r||(this.event(e),r=this._eventLogs.get(e)),r.node.status==="completed"||r.node.status==="errored")throw new Error(`Cannot dispatch to terminated event stream "${e}" (status: ${r.node.status}).`);let s=r.log.entries.v,o={type:e,payload:n,timestampNs:he(),seq:++this._seq,...s!=null?{v0:{id:s.id,version:s.version}}:{}};r.log.append(o),this._eventStore&&this._eventStore.persist(o)}command(e,n){let r=ee(void 0,{name:e,describeKind:"state",meta:{...Ke("command",{command_name:e}),error:null},guard:Ar});return this.add(r,{name:e}),this._commandHandlers.set(e,n),r}dispatch(e,n){let r=this._commandHandlers.get(e);if(!r)throw new Error(`Unknown command: "${e}". Register with .command() first.`);let s=this.resolve(e);fe(()=>{s.emit(n,{internal:!0});try{r(n,{emit:(o,i)=>this._appendEvent(o,i)}),s.meta.error.emit(null,{internal:!0})}catch(o){throw s.meta.error.emit(o,{internal:!0}),o}})}projection(e,n,r,s){let o=n.map(a=>(this._eventLogs.has(a)||this.event(a),this._eventLogs.get(a).node)),i=Q(o,a=>{let d=[];for(let u of a){let c=u;d.push(...c)}return d.sort((u,c)=>u.timestampNs-c.timestampNs||u.seq-c.seq),r(s,d)},{name:e,describeKind:"derived",meta:Ke("projection",{projection_name:e,source_events:n}),guard:Cr,initial:s});return this.add(i,{name:e}),this._keepaliveDisposers.push(ne(i)),this._projections.add(e),i}saga(e,n,r){let s=n.map(d=>(this._eventLogs.has(d)||this.event(d),this._eventLogs.get(d).node)),o=new Map,i={},a=ue(s,(d,u)=>{let c=i.n.meta.error;for(let p=0;p<d.length;p++){let h=d[p];if(h==null||h.length===0)continue;let f=h.at(-1);if(!f)continue;let l=n[p],g=o.get(l)??0;if(f.length>g){let m=f.slice(g);for(let y of m)try{r(y),c.emit(null,{internal:!0})}catch(_){c.emit(_,{internal:!0})}o.set(l,f.length)}}},{name:e,describeKind:"effect",meta:{...Ke("saga",{saga_name:e,source_events:n}),error:null}});return i.n=a,this.add(a,{name:e}),this._keepaliveDisposers.push(ne(a)),this._sagas.add(e),a}useEventStore(e){this._eventStore=e}async rebuildProjection(e,n,r){if(!this._eventStore)throw new Error("No event store wired. Call useEventStore() first.");let s=[];for(let o of e){let i=await this._eventStore.loadEvents(o);s.push(...i.events)}return s.sort((o,i)=>o.timestampNs-i.timestampNs||o.seq-i.seq),n(r,s)}};function Gr(t,e){return new Ye(t,e)}0&&(module.exports={CqrsGraph,MemoryEventStore,cqrs});
7
+ `)}function Tr(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function We(t){let e="^";for(let n=0;n<t.length;n+=1){let r=t[n];if(r==="*"){e+=".*";continue}if(r==="?"){e+=".";continue}if(r==="["){let s=t.indexOf("]",n+1);if(s<=n+1){e+="\\[";continue}let o=t.slice(n+1,s);o.startsWith("!")&&(o=`^${o.slice(1)}`),o=o.replace(/\\/g,"\\\\"),e+=`[${o}]`,n=s;continue}e+=Tr(r)}return e+="$",new RegExp(e)}var Er={data:"\x1B[32m",dirty:"\x1B[33m",resolved:"\x1B[36m",invalidate:"\x1B[93m",pause:"\x1B[90m",resume:"\x1B[96m",complete:"\x1B[34m",error:"\x1B[31m",teardown:"\x1B[91m",derived:"\x1B[35m",path:"\x1B[90m",reset:"\x1B[0m"},Or={data:"",dirty:"",resolved:"",invalidate:"",pause:"",resume:"",complete:"",error:"",teardown:"",derived:"",path:"",reset:""};function qe(t){if(typeof t=="string")return JSON.stringify(t);if(typeof t=="number"||typeof t=="boolean"||t==null)return String(t);try{return JSON.stringify(t)}catch{return"[unserializable]"}}function Nr(t){return t==="none"?Or:t==="ansi"||t==null?Er:{data:t.data??"",dirty:t.dirty??"",resolved:t.resolved??"",invalidate:t.invalidate??"",pause:t.pause??"",resume:t.resume??"",complete:t.complete??"",error:t.error??"",teardown:t.teardown??"",derived:t.derived??"",path:t.path??"",reset:t.reset??""}}function dn(t){if(t==null)return{};let e=t.detail;return e==="full"?{...t,structured:t.structured??!0,timeline:t.timeline??!0,causal:t.causal??!0,derived:t.derived??!0}:e==="minimal"?{...t,structured:t.structured??!0}:t.format==="stage-log"?{...t,structured:t.structured??!0,timeline:t.timeline??!0}:t}function Sr(t,e,n){for(let r=0;r<t.length;r++){let s=t.charCodeAt(r);if(s<32||s===127)throw new Error(`Graph "${e}": ${n} "${t}" must not contain control character (U+${s.toString(16).padStart(4,"0").toUpperCase()} at index ${r})`)}}function yt(t,e,n){if(t==="")throw new Error(`Graph "${e}": ${n} name must be non-empty`);if(t.includes(M))throw new Error(`Graph "${e}": ${n} "${t}" must not contain '${M}' (path separator)`);if(t===q)throw new Error(`Graph "${e}": ${n} name "${q}" is reserved for meta companion paths`);Sr(t,e,n)}function kr(t,e){if(t==="")throw new Error(`Graph "${e}": resolve path must be non-empty`);let n=t.split(M);for(let r of n)if(r==="")throw new Error(`Graph "${e}": resolve path has empty segment`);return n}function Rr(t,e){let n=!1;for(let s of t)if(!e.isMetaPassthrough(s[0])){n=!0;break}return n?t.filter(s=>e.isMetaPassthrough(s[0])):t}function hn(t){for(let e of t._mounts.values())hn(e);for(let e of t._nodes.values())try{e.down([[H]],{internal:!0})}catch{}}var ve=class t{name;opts;config;_nodes=new Map;_nodeToName=new WeakMap;_mounts=new Map;_parent=void 0;_storageDisposers=new Set;_disposers=new Set;_destroyed=!1;_topology;_topologyEmitters=new Set;constructor(e,n){if(e==="")throw new Error("Graph name must be non-empty");if(e.includes(M))throw new Error(`Graph name must not contain '${M}' (got "${e}")`);if(e===q)throw new Error(`Graph name "${q}" is reserved for meta companion paths`);this.name=e,this.opts=Object.freeze({...n??{}}),this.config=n?.config??ae,this._traceRing=new Se(n?.traceCapacity??1e3),n?.versioning!=null&&this.setVersioning(n.versioning)}ancestors(e=!0){let n=[],r=e?this:this._parent;for(;r!=null;)n.push(r),r=r._parent;return n}get topology(){return this._topology==null&&(this._topology=ht(e=>{let n=r=>{e.emit(r)};return this._topologyEmitters.add(n),()=>{this._topologyEmitters.delete(n)}},{name:`${this.name}_topology`})),this._topology}_emitTopology(e){if(!(this._topology==null||this._topologyEmitters.size===0))for(let n of this._topologyEmitters)n(e)}add(e,n){let r=e.name,s=n?.name??r;if(s==null||s==="")throw new Error(`Graph "${this.name}": graph.add requires a non-empty name \u2014 pass via opts.name or set it on the node (e.g. state(0, { name: "x" }))`);let o=s,i=n?.annotation;if(yt(o,this.name,"add"),this._mounts.has(o))throw new Error(`Graph "${this.name}": name "${o}" is already a mount point`);if(this._nodes.has(o))throw new Error(`Graph "${this.name}": node "${o}" already exists`);let a=this._nodeToName.get(e);if(a!==void 0)throw new Error(`Graph "${this.name}": node instance already registered as "${a}"`);return this._nodes.set(o,e),this._nodeToName.set(e,o),this._emitTopology({kind:"added",name:o,nodeKind:"node"}),i!=null&&(this._annotations.set(o,i),this.config.inspectorEnabled&&this._traceRing.push({path:o,annotation:i,timestamp_ns:pe()})),e}setVersioning(e){if(e!=null)for(let n of this._nodes.values())n instanceof G&&n._applyVersioning(e)}remove(e){yt(e,this.name,"remove");let n=this._mounts.get(e);if(n){let o={kind:"mount",nodes:[],mounts:[]},i=[];n._collectObserveTargets("",i);for(let[a,d]of i)a.includes(`${M}${q}${M}`)||o.nodes.push(a);return o.nodes.sort(),o.mounts.push(e),o.mounts.push(...n._collectSubgraphs(`${e}${M}`)),this._mounts.delete(e),n._parent=void 0,hn(n),this._emitTopology({kind:"removed",name:e,nodeKind:"mount",audit:o}),o}let r=this._nodes.get(e);if(!r)throw new Error(`Graph "${this.name}": unknown node or mount "${e}"`);this._nodes.delete(e),this._nodeToName.delete(r),r.down([[H]],{internal:!0});let s={kind:"node",nodes:[e],mounts:[]};return this._emitTopology({kind:"removed",name:e,nodeKind:"node",audit:s}),s}removeAll(e){let n=typeof e=="function"?e:(()=>{let o=We(e);return i=>o.test(i)})(),r={kind:"mount",nodes:[],mounts:[]},s=[...this._nodes.keys(),...this._mounts.keys()].filter(o=>n(o));for(let o of s){let i=this.remove(o);r.nodes.push(...i.nodes),r.mounts.push(...i.mounts)}return r.nodes.sort(),r.mounts.sort(),r}[Symbol.iterator](){let e=[...this._nodes.keys()].sort(),n=this._nodes,r=0;return{[Symbol.iterator](){return this},next(){if(r>=e.length)return{value:void 0,done:!0};let s=e[r++];return{value:[s,n.get(s)],done:!1}}}}node(e){if(e==="")throw new Error(`Graph "${this.name}": node name must be non-empty`);if(e.includes(M))return this.resolve(e);let n=this._nodes.get(e);if(!n)throw new Error(`Graph "${this.name}": unknown node "${e}"`);return n}get(e){return this.node(e).cache}set(e,n,r){let s=r?.internal===!0;this.node(e).down([[$,n]],{actor:r?.actor,internal:s,delivery:"write"})}setAll(e,n){let r=Symbol.iterator in e?e:Object.entries(e);fe(()=>{for(let[s,o]of r)this.set(s,o,n)})}invalidate(e,n){let r=n?.internal===!0;this.node(e).down([[Y]],{actor:n?.actor,internal:r,delivery:"write"})}error(e,n,r){let s=r?.internal===!0;this.node(e).down([[P,n]],{actor:r?.actor,internal:s,delivery:"write"})}complete(e,n){let r=n?.internal===!0;this.node(e).down([[J]],{actor:n?.actor,internal:r,delivery:"write"})}edges(e){let n=e?.recursive===!0,r=new Map;if(!n){for(let[d,u]of this._nodes)r.set(u,d);let a=[];for(let[d,u]of this._nodes)if(u instanceof G)for(let c of u._deps){let p=r.get(c.node);p!=null&&a.push([p,d])}return a.sort((d,u)=>d[0]<u[0]?-1:d[0]>u[0]?1:d[1]<u[1]?-1:d[1]>u[1]?1:0),a}let s=[];this._collectObserveTargets("",s);let o=new Map;for(let[a,d]of s)o.set(d,a);let i=[];for(let[a,d]of s)if(d instanceof G)for(let u of d._deps){let c=o.get(u.node);c!=null&&i.push([c,a])}return i.sort((a,d)=>a[0]<d[0]?-1:a[0]>d[0]?1:a[1]<d[1]?-1:a[1]>d[1]?1:0),i}mount(e,n){if(yt(e,this.name,"mount"),this._nodes.has(e))throw new Error(`Graph "${this.name}": cannot mount at "${e}" \u2014 node with that name exists`);if(this._mounts.has(e))throw new Error(`Graph "${this.name}": mount "${e}" already exists`);if(n===this)throw new Error(`Graph "${this.name}": cannot mount a graph into itself`);if(n._parent!=null)throw new Error(`Graph "${this.name}": this child graph is already mounted on "${n._parent.name}"`);for(let r=this;r!=null;r=r._parent)if(r===n)throw new Error(`Graph "${this.name}": mount("${e}", \u2026) would create a mount cycle`);return this._mounts.set(e,n),n._parent=this,this._emitTopology({kind:"added",name:e,nodeKind:"mount"}),n}resolve(e){let n=kr(e,this.name);return this._resolveFromSegments(n)}tryResolve(e){try{return this.resolve(e)}catch{return}}_resolveFromSegments(e){let n=e;if(n[0]===this.name&&(n=n.slice(1),n.length===0))throw new Error(`Graph "${this.name}": resolve path ends at graph name only`);let r=n[0],s=n.slice(1);if(s.length===0){let a=this._nodes.get(r);if(a)return a;throw this._mounts.has(r)?new Error(`Graph "${this.name}": path ends at subgraph "${r}" \u2014 not a node (GRAPHREFLY-SPEC \xA73.5)`):new Error(`Graph "${this.name}": unknown name "${r}"`)}let o=this._nodes.get(r);if(o&&s.length>0&&s[0]===q)return this._resolveMetaChainFromNode(o,s,n.join(M));let i=this._mounts.get(r);if(!i)throw this._nodes.has(r)?new Error(`Graph "${this.name}": "${r}" is a node; trailing path "${s.join(M)}" is invalid`):new Error(`Graph "${this.name}": unknown mount or node "${r}"`);return i.resolve(s.join(M))}_resolveMetaChainFromNode(e,n,r){let s=e,o=0,i=[...n];for(;o<i.length;){if(i[o]!==q)throw new Error(`Graph "${this.name}": expected ${q} segment in meta path "${r}"`);if(o+1>=i.length)throw new Error(`Graph "${this.name}": meta path requires a key after ${q} in "${r}"`);let a=i[o+1],d=s.meta[a];if(!d)throw new Error(`Graph "${this.name}": unknown meta "${a}" in path "${r}"`);s=d,o+=2}return s}signal(e,n){if(n?.internal!==!0){for(let s of e)if(this.config.messageTier(s[0])===3)throw new Error(`Graph "${this.name}": Graph.signal() rejects tier-3 messages (DATA / RESOLVED). Broadcast is for control-plane tiers (START / DIRTY / INVALIDATE / PAUSE / RESUME / COMPLETE / ERROR / TEARDOWN). For per-node value writes, use Graph.set or graph.node(name).down(...).`)}let r=[];if(this._signalDeliver(e,n??{},new Set,r),r.length>0)throw r[0]}_signalDeliver(e,n,r,s){for(let d of this._mounts.values())d._signalDeliver(e,n,r,s);let i=n.internal===!0?{internal:!0}:{actor:n.actor,delivery:"signal"},a=Rr(e,this.config);for(let d of[...this._nodes.keys()].sort()){let u=this._nodes.get(d);if(!r.has(u)){r.add(u);try{u.down(e,i)}catch(c){if(c instanceof U)throw c;s.push(c)}a.length!==0&&this._signalMetaSubtree(u,a,r,i,s)}}}_signalMetaSubtree(e,n,r,s,o){for(let i of Object.keys(e.meta).sort()){let a=e.meta[i];if(!r.has(a)){r.add(a);try{a.down(n,s)}catch(d){if(d instanceof U)throw d;o.push(d)}this._signalMetaSubtree(a,n,r,s,o)}}}describe(e){if(e?.reactive===!0)return this._describeReactive(e);let n=e?.actor,r=e?.filter,s=Pe(e?.detail,e?.fields),o=e?.format==="spec",i=o?Pe("minimal"):s,a=[];this._collectObserveTargets("",a);let d=new Map;for(let[x,w]of a)d.set(w,x);let u=[];{let x=a.map(([,N])=>N),w=new Set(d.values()),E=0;for(;x.length>0;){let N=x.shift();if(N instanceof G)for(let D of N._deps){let S=D.node;if(d.has(S))continue;let R=S.name??"",k=R;if(!k||w.has(k))if(R){let L=2;for(;w.has(`${R}#${L}`);)L++;k=`${R}#${L}`}else for(k=`__internal__/${E++}`;w.has(k);)k=`__internal__/${E++}`;d.set(S,k),w.add(k),u.push([k,S]),x.push(S)}}}let c=[...a,...u],p={};for(let[x,w]of c){if(n!=null&&!w.allowsObserve(n))continue;let E=pt(w,i),N=w instanceof G?w._deps.map(k=>d.get(k.node)??k.node.name??""):[],{name:D,...S}=E,R={...S,deps:N};if(!o){let k=this._annotations.get(x);k!=null&&(R.annotation=k)}if(r!=null)if(typeof r=="function"){let k=r;if(!(k.length>=2?k(x,R):k(R)))continue}else{let k=!0;for(let[L,V]of Object.entries(r)){let K=L==="deps_includes"?"depsIncludes":L==="meta_has"?"metaHas":L;if(K==="depsIncludes"){if(!R.deps.includes(String(V))){k=!1;break}continue}if(K==="metaHas"){if(!Object.hasOwn(R.meta??{},String(V))){k=!1;break}continue}if(R[K]!==V){k=!1;break}}if(!k)continue}p[x]=R}let h=new Set(Object.keys(p)),f=[];for(let[x,w]of c)if(w instanceof G)for(let E of w._deps){let N=d.get(E.node);N!=null&&f.push([N,x])}f.sort((x,w)=>x[0]<w[0]?-1:x[0]>w[0]?1:x[1]<w[1]?-1:x[1]>w[1]?1:0);let l=f.map(([x,w])=>({from:x,to:w}));(n!=null||r!=null)&&(l=l.filter(x=>h.has(x.from)&&h.has(x.to)));let g=this._collectSubgraphs(""),m=n!=null||r!=null?g.filter(x=>{let w=`${x}${M}`;return[...h].some(E=>E===x||E.startsWith(w))}):g,y=this,_=e,b={name:this.name,nodes:p,edges:l,subgraphs:m,expand(x){let w={..._,format:void 0};return Array.isArray(x)?(w.fields=x,w.detail=void 0):(w.detail=x,w.fields=void 0),y.describe(w)}},v=e??{},T=v.format;return T==="json"?vr(b,v):T==="pretty"?_r(b,v):T==="mermaid"?fn(b,v):T==="mermaid-url"?xr(b,v):T==="d2"?wr(b,v):T==="ascii"?sn(b,v):b}_collectSubgraphs(e){let n=[];for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${r}`;n.push(s),n.push(...this._mounts.get(r)._collectSubgraphs(`${s}${M}`))}return n}resourceProfile(e){return on(this,e)}reachable(e,n,r={}){return r.withDetail===!0?_t(this.describe(),e,n,{...r,withDetail:!0}):_t(this.describe(),e,n,r)}explain(e,n,r){return r?.reactive===!0?this._explainReactive(e,n,r):this._explainStatic(e,n,r)}_explainStatic(e,n,r){let s=this.describe({detail:"full"}),o=new Map(this._annotations),i=new Map;for(let[a,d]of Object.entries(s.nodes))d.lastMutation!=null&&i.set(a,d.lastMutation);return Bt(s,e,n,{...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{},annotations:o,lastMutations:i})}_describeReactive(e){let n={...e,reactive:!1},r=e.reactiveName??"describe",s=0,o=ee(s,{name:`${r}_version`}),i=this.observe({timeline:!0,structured:!0}),a=!1,d=!1,u=()=>{a||d||(a=!0,Te(()=>{a=!1,!d&&(s+=1,o.emit(s))}))},c=i.onEvent(m=>{let y=m.type;y!=="data"&&y!=="error"&&y!=="complete"&&y!=="teardown"||u()}),p=[],h=new WeakSet,f=m=>{if(h.has(m)||d)return;h.add(m);let y=m.topology.subscribe(_=>{for(let b of _){if(b[0]!==$)continue;let v=b[1];if(u(),v.kind==="added"&&v.nodeKind==="mount"){let T=m._mounts.get(v.name);T!=null&&f(T)}}});p.push(y);for(let _ of m._mounts.keys()){let b=m._mounts.get(_);b!=null&&f(b)}};f(this);let l;try{l=Q([o],()=>this.describe(n),{name:r,describeKind:"derived",meta:{domain:"audit",kind:"describe"},equals:(m,y)=>m===y})}catch(m){c();for(let y of p)y();throw i.dispose(),m}let g=ne(l);return{node:l,dispose(){d=!0,c();for(let m of p)m();p.length=0,i.dispose(),g()}}}_explainReactive(e,n,r){let s=0,o=ee(s,{name:"explain_version"}),i=this.observe({timeline:!0,structured:!0}),a=!1,d=!1,u=i.onEvent(f=>{let l=f.type;l!=="data"&&l!=="error"&&l!=="complete"&&l!=="teardown"||a||d||(a=!0,Te(()=>{a=!1,!d&&(s+=1,o.emit(s))}))}),c={...r?.maxDepth!=null?{maxDepth:r.maxDepth}:{},...r?.findCycle===!0?{findCycle:!0}:{}},p;try{p=Q([o],()=>this._explainStatic(e,n,c),{name:r?.name??"explain",describeKind:"derived",meta:{domain:"audit",kind:"explain_path",from:e,to:n},equals:(f,l)=>f.found===l.found&&f.reason===l.reason&&f.steps.length===l.steps.length&&Dr(f.steps,l.steps)})}catch(f){throw u(),i.dispose(),f}let h=ne(p);return{node:p,dispose(){d=!0,u(),i.dispose(),h()}}}_pathsMatching(e){let n=We(e),r=[];return this._collectObserveTargets("",r),r.map(([s])=>s).filter(s=>n.test(s))}_collectObserveTargets(e,n){for(let r of[...this._mounts.keys()].sort()){let s=e===""?r:`${e}${M}${r}`;this._mounts.get(r)._collectObserveTargets(s,n)}for(let r of[...this._nodes.keys()].sort()){let s=this._nodes.get(r),o=e===""?r:`${e}${M}${r}`;n.push([o,s]),this._appendMetaObserveTargets(o,s,n)}}_appendMetaObserveTargets(e,n,r){for(let s of Object.keys(n.meta).sort()){let o=n.meta[s],i=`${e}${M}${q}${M}${s}`;r.push([i,o]),this._appendMetaObserveTargets(i,o,r)}}observe(e,n){let r=typeof e=="string",o=dn(r?n:e),i=o.structured===!0||o.timeline===!0||o.causal===!0||o.derived===!0||o.detail==="minimal"||o.detail==="full"||o.format!=null,a=o.actor;if(r){let c=e,p=this.resolve(c);if(a!=null&&!p.allowsObserve(a))throw new U({actor:a,action:"observe",nodeName:c});return i?this._buildStructuredObserver([[c,p]],o,"one"):{subscribe(h){return p.subscribe(h)},up(h){try{p.up?.(h)}catch(f){if(f instanceof U)return;throw f}}}}let d=[];this._collectObserveTargets("",d),d.sort((c,p)=>c[0]<p[0]?-1:c[0]>p[0]?1:0);let u=a==null?d:d.filter(([,c])=>c.allowsObserve(a));return i?this._buildStructuredObserver(u,o,"all"):{subscribe:c=>{let p=u.map(([h,f])=>f.subscribe(l=>{c(h,l)}));return()=>{for(let h of p)h()}},up:(c,p)=>{try{this.resolve(c).up?.(p)}catch(h){if(h instanceof U)return;throw h}}}}_buildStructuredObserver(e,n,r){let s=r==="one"?e[0]?.[0]:void 0,o=i=>{if(r==="one"&&s!=null){let c=this.resolve(s);return this._buildStructuredObserver([[s,c]],i,"one")}let a=[];this._collectObserveTargets("",a),a.sort((c,p)=>c[0]<p[0]?-1:c[0]>p[0]?1:0);let d=i.actor,u=d==null?a:a.filter(([,c])=>c.allowsObserve(d));return this._buildStructuredObserver(u,i,"all")};return this._createObserveResult(e,n,o)}_createObserveResult(e,n,r){let s=n.timeline===!0,o=n.causal===!0,i=n.derived===!0,a=n.detail==="minimal",d=this.config.inspectorEnabled,u=(o||i)&&d,c=n.maxEvents,p=c!=null&&c>0?new Se(c):null,h=[],f=new Set,l={},g=new Set,m=0,y=0,_=0,b=0,v=0,T=0,x=!1,w=!1,E=0,N=new Map,D=new Map,S=new Map,R=O=>{p?p.push(O):h.push(O);for(let C of f)C(O)},k=()=>s?{timestamp_ns:pe(),in_batch:Re(),batch_id:E}:{},L=(O,C)=>{if(!(!u||!(O instanceof G)))return O._setInspectorHook(z=>{if(z.kind==="dep_message")N.set(O,z.depIndex);else if(z.kind==="run"){let _e=z.batchData.map((A,F)=>A!=null&&A.length>0?A.at(-1):z.prevData[F]);D.set(O,_e);let B=z.batchData.map(A=>A!=null?[...A]:void 0);S.set(O,B),i&&R({type:"derived",path:C,dep_values:_e,dep_batches:B,...k()})}})},V=O=>{let C=N.get(O),z=D.get(O);if(!o||z==null)return{};let B=(C!=null&&C>=0&&O instanceof G?O._deps[C]:void 0)?.node,A=B?.v,F=S.get(O);return{trigger_dep_index:C,trigger_dep_name:B?.name,...A!=null?{trigger_version:{id:A.id,version:A.version}}:{},dep_values:[...z],...F!=null?{dep_batches:F}:{}}},K=[],se=[];for(let[O,C]of e){let z=L(C,O);z&&K.push(z),se.push(C.subscribe(_e=>{E++;for(let B of _e){let A=B[0],F=k();if(A===$){l[O]=B[1];let Qe=C instanceof G?C.lastMutation?.actor??me:me;R({type:"data",path:O,data:B[1],actor:Qe,...F,...V(C)})}else if(a)A===W?m++:A===X?y++:A===Y?_++:A===Z?b++:A===te?v++:A===H?T++:A===J&&!g.has(O)?x=!0:A===P&&(w=!0,g.add(O));else if(A===W)m++,R({type:"dirty",path:O,...F});else if(A===X)y++,R({type:"resolved",path:O,...F,...V(C)});else if(A===Y)_++,R({type:"invalidate",path:O,...F});else if(A===Z)b++,R({type:"pause",path:O,lockId:B[1],...F});else if(A===te)v++,R({type:"resume",path:O,lockId:B[1],...F});else if(A===J)g.has(O)||(x=!0),R({type:"complete",path:O,...F});else if(A===P){w=!0,g.add(O);let Qe=C instanceof G?C.lastMutation?.actor??me:me;R({type:"error",path:O,data:B[1],actor:Qe,...F})}else A===H&&(T++,R({type:"teardown",path:O,...F}))}}))}let Je=!1,Xe=()=>{if(!Je){Je=!0;for(let O of se)O();for(let O of K)O();for(let O of ke)O({value:void 0,done:!0});ke.length=0}},Ze=[],ke=[];f.add(O=>{let C=ke.shift();C?C({value:O,done:!1}):Ze.push(O)});let wt={get values(){return l},get dirtyCount(){return m},get resolvedCount(){return y},get invalidateCount(){return _},get pauseCount(){return b},get resumeCount(){return v},get teardownCount(){return T},get events(){return p?p.toArray():[...h]},get anyCompletedCleanly(){return x},get anyErrored(){return w},get completedWithoutErrors(){return x&&!w},onEvent(O){return f.add(O),()=>f.delete(O)},dispose:Xe,expand(O){Xe();let C={...n};return typeof O=="string"?C.detail=O:Object.assign(C,O),r(dn(C))},[Symbol.asyncIterator](){return{next(){return Ze.length>0?Promise.resolve({value:Ze.shift(),done:!1}):Je?Promise.resolve({value:void 0,done:!0}):new Promise(O=>ke.push(O))},return(){return Xe(),Promise.resolve({value:void 0,done:!0})}}}};return n.format!=null&&this._attachFormatLogger(wt,n),wt}_attachFormatLogger(e,n){let r=n.format;if(r==null)return;let s=n.logger??(l=>console.log(l)),o=n.includeTypes?new Set(n.includeTypes):null,i=n.excludeTypes?new Set(n.excludeTypes):null,a=o==null&&i==null?()=>!0:l=>(o==null||o.has(l))&&(i==null||!i.has(l)),d=Nr(n.theme),u=r==="stage-log"?pe():0,c=l=>l==null?"":n.stageLabels?.[l]??l,p=(l,g)=>l.length>g?`${l.slice(0,g-1)}\u2026`:l,h=l=>l.type==="data"||l.type==="error"?p(qe(l.data),120):"",f=l=>{if(r==="stage-log"){let w=(pe()-u)/1e9,E=c(l.path).padEnd(9);if(l.type==="data"){let N=h(l);return`[${w.toFixed(3)}s] ${E} \u2190${N?` ${N}`:""}`}if(l.type==="error"){let N=h(l);return`[${w.toFixed(3)}s] ${E} \u2717${N?` ${N}`:""}`}return l.type==="complete"?`[${w.toFixed(3)}s] ${E} \u25A0 complete`:`[${w.toFixed(3)}s] ${E} ${l.type}`}if(r==="json")try{return JSON.stringify(l)}catch{return JSON.stringify({type:l.type,path:l.path,data:"[unserializable]"})}let g=d[l.type]??"",m=l.path?`${d.path}${l.path}${d.reset} `:"",y=l.type==="data"||l.type==="error",_=l.type==="pause"||l.type==="resume",b=y?` ${qe(l.data)}`:_?` ${qe(l.lockId)}`:"",v=l.type==="data"||l.type==="resolved"||l.type==="derived"?l:void 0,T=v?.trigger_dep_name!=null?` <- ${v.trigger_dep_name}`:v?.trigger_dep_index!=null?` <- #${v.trigger_dep_index}`:"",x=l.in_batch?" [batch]":"";return`${m}${g}${l.type.toUpperCase()}${d.reset}${b}${T}${x}`};e.onEvent(l=>{a(l.type)&&s(f(l),l)})}addDisposer(e){return this._disposers.add(e),()=>{this._disposers.delete(e)}}destroy(){an(this._disposers,this.name),this.signal([[H]],{internal:!0}),an(this._storageDisposers,this.name);for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}get destroyed(){return this._destroyed}_destroyClearOnly(){for(let e of[...this._mounts.values()])e._parent=void 0,e._destroyClearOnly();this._mounts.clear(),this._nodes.clear(),this._parent=void 0,this._destroyed=!0}snapshot(e){let{expand:n,...r}=this.describe({detail:"full"}),s={};for(let a of Object.keys(r.nodes).sort()){let{lastMutation:d,guard:u,...c}=r.nodes[a];s[a]=c}let o=[...r.subgraphs].sort(),i={...r,version:1,nodes:s,subgraphs:o};if(e?.format==null)return i;if(e.format==="json-string")return JSON.stringify(i);if(e.format==="bytes"){if(e.codec==null)throw new Error("snapshot({format: 'bytes'}) requires a `codec` name");let a=this.config.lookupCodec(e.codec);if(a==null)throw new Error(`snapshot: codec "${e.codec}" is not registered on this graph's config. Call config.registerCodec(...) before creating nodes.`);return At(a,a.encode(i))}throw new Error(`snapshot: unknown format "${String(e.format)}"`)}static decode(e,n){let r=n?.config??ae,{codec:s,codecVersion:o,payload:i}=Ct(e,r);return s.decode(i,o)}restore(e,n){if(un(e),e.name!==this.name)throw new Error(`Graph "${this.name}": restore snapshot name "${e.name}" does not match this graph`);let r=n?.only==null?null:(Array.isArray(n.only)?n.only:[n.only]).map(o=>We(o)),s=n?.includeProducers===!0;for(let o of Object.keys(e.nodes).sort()){if(r!==null&&!r.some(a=>a.test(o)))continue;let i=e.nodes[o];if(i!==void 0){if(!("value"in i)||i.value===void 0){"value"in i&&i.value===void 0&&n?.onError?.(o,new Error(`restore: slice.value is undefined for "${o}" (undefined is the global SENTINEL; not valid DATA)`));continue}if(!(i.type==="derived"||i.type==="effect")&&!(i.type==="producer"&&!s)){if(i.v!=null){let d=this.tryResolve(o)?.v;if(d!=null&&d.id===i.v.id&&d.version===i.v.version)continue}try{this.set(o,i.value)}catch(a){n?.onError?.(o,a)}}}}}static fromSnapshot(e,n){un(e);let r=typeof n=="function"?n:n?.build,s=typeof n=="function"?void 0:n?.factories,o=new t(e.name);if(r)return r(o),o.restore(e),o;for(let f of[...e.subgraphs].sort((l,g)=>{let m=l.split(M).length,y=g.split(M).length;return m!==y?m-y:l<g?-1:l>g?1:0})){let l=f.split(M),g=o;for(let m of l)g._mounts.has(m)||g.mount(m,new t(m)),g=g._mounts.get(m)}let i=s?Object.entries(s).map(([f,l])=>({re:We(f),factory:l})):[],a=f=>{for(let l of i)if(l.re.test(f))return l.factory},d=f=>{let l=f.split(M),g=l.pop();if(g==null||g.length===0)throw new Error(`invalid snapshot path "${f}"`);let m=o;for(let y of l){let _=m._mounts.get(y);if(!_)throw new Error(`unknown mount "${y}" in path "${f}"`);m=_}return[m,g]},u=Object.entries(e.nodes).filter(([f])=>!f.includes(`${M}${q}${M}`)).sort((f,l)=>f[0]<l[0]?-1:f[0]>l[0]?1:0),c=new Map(u),p=new Map,h=!0;for(;c.size>0&&h;){h=!1;for(let[f,l]of[...c.entries()]){let g=l?.deps??[];if(!g.every(T=>p.has(T)))continue;let[m,y]=d(f),_={...l?.meta??{}},b=a(f),v;if(l?.type==="state")v=ee(l.value,{meta:_});else{if(b==null)continue;v=b(y,{path:f,type:l.type,value:l.value,meta:_,deps:g,resolvedDeps:g.map(T=>p.get(T))})}m.add(v,{name:y}),p.set(f,v),c.delete(f),h=!0}}if(c.size>0){let f=[...c.keys()].sort().join(", ");throw new Error(`Graph.fromSnapshot could not reconstruct nodes without build callback: ${f}. Pass matching factories via fromSnapshot(data, { factories: { pattern: factoryFn } }).`)}return o.restore(e),o}toJSON(){return this.snapshot()}attachStorage(e,n={}){let r=e.map(u=>({tier:u,debounceMs:Math.max(0,u.debounceMs??0),compactEvery:Math.max(1,u.compactEvery??10),timer:void 0,seq:0,lastSnapshot:void 0,lastFingerprint:"",disposed:!1,savePending:void 0}));n.autoRestore===!0&&this._cascadeRestore(e,n.onError);let s=(u,c)=>{if(u.disposed)return;let p=hr(c.nodes);if(u.lastSnapshot!=null&&p!==""&&p===u.lastFingerprint)return;let h=u.seq+1,f=he(),m=u.lastSnapshot==null||h%u.compactEvery===0?{mode:"full",snapshot:c,seq:h,timestamp_ns:f,format_version:de}:{mode:"diff",diff:gn(u.lastSnapshot,c),seq:h,timestamp_ns:f,format_version:de};if(u.tier.filter&&!u.tier.filter(this.name,m))return;let y;try{y=u.tier.save(this.name,m)}catch(_){n.onError?.(_,u.tier);return}if(y&&typeof y.then=="function"){let v=(u.savePending??Promise.resolve()).then(()=>y,()=>y).then(()=>{u.disposed||(u.seq=h,u.lastSnapshot=c,u.lastFingerprint=p)},T=>{n.onError?.(T,u.tier)});u.savePending=v.finally(()=>{u.savePending===v&&(u.savePending=void 0)})}else u.seq=h,u.lastSnapshot=c,u.lastFingerprint=p},o=(u,c)=>{try{s(u,c)}catch(p){n.onError?.(p,u.tier)}},i=(u,c)=>{if(!c.some(l=>{let g=this.config.messageTier(l[0]);return g>=3&&g<5}))return;if(n.filter){let l=this.tryResolve(u);if(l==null)return;let g=pt(l,Pe("standard"));if(!n.filter(u,g))return}let h,f=()=>(h==null&&(h=this.snapshot()),h);for(let l of r)l.disposed||(l.debounceMs===0?o(l,f()):(l.timer==null&&(l.timer=new ze),l.timer.start(l.debounceMs,()=>{l.disposed||o(l,this.snapshot())})))},a;if(n.paths!=null){let c=(typeof n.paths=="string"?this._pathsMatching(n.paths):n.paths).map(p=>{let h=this.tryResolve(p);return h==null?()=>{}:h.subscribe(f=>i(p,f))});a=()=>{for(let p of c)p()}}else a=this.observe().subscribe((u,c)=>i(u,c));let d=()=>{a();for(let u of r)u.disposed=!0,u.timer?.cancel();this._storageDisposers.delete(d)};return this._storageDisposers.add(d),{dispose:d}}async _cascadeRestore(e,n){for(let r of e){let s;try{s=await r.load(this.name)}catch(i){n?.(i,r);continue}if(s==null||typeof s!="object"||Array.isArray(s))continue;let o=s;try{if(o.mode==="full"&&o.snapshot!=null)return this.restore(o.snapshot),!0;if(o.version===de&&o.nodes!=null)return this.restore(o),!0}catch(i){n?.(i,r)}}return!1}static async fromStorage(e,n,r){for(let s of n){let o;try{o=await s.load(e)}catch(d){r?.onError?.(d,s);continue}if(o==null||typeof o!="object"||Array.isArray(o))continue;let i=o,a=i.mode==="full"&&i.snapshot!=null?i.snapshot:i.version===de&&i.nodes!=null?i:void 0;if(a!=null)try{return t.fromSnapshot(a,r)}catch(d){r?.onError?.(d,s)}}throw new Error(`Graph.fromStorage: no tier held a restorable record for "${e}" across ${n.length} tier(s)`)}_annotations=new Map;_traceRing;trace(e,n,r){if(e!=null&&n!=null){if(this.tryResolve(e)==null)return;if(this._annotations.set(e,n),this.config.inspectorEnabled){let s={path:e,annotation:n,timestamp_ns:pe(),...r?.actor!=null?{actor:r.actor}:{}};this._traceRing.push(s)}return}return e!=null?this.config.inspectorEnabled?this._annotations.get(e):void 0:this.config.inspectorEnabled?this._traceRing.toArray():[]}annotation(e){return this._annotations.get(e)}clearTrace(){this._annotations.clear(),this._traceRing.clear()}pruneTrace(e){let n=this._traceRing.toArray().filter(s=>!e(s)),r=this._traceRing.size-n.length;this._traceRing.clear();for(let s of n)this._traceRing.push(s);return r}static diff(e,n){let r=new Set(Object.keys(e.nodes)),s=new Set(Object.keys(n.nodes)),o=[...s].filter(_=>!r.has(_)).sort(),i=[...r].filter(_=>!s.has(_)).sort(),a=[],d=[];for(let _ of r){if(!s.has(_))continue;let b=e.nodes[_],v=n.nodes[_],T=b.v,x=v.v;T!=null&&x!=null&&T.id===x.id&&T.version!==x.version&&d.push({path:_,id:T.id,from:T.version,to:x.version});let w=T!=null&&x!=null&&T.id===x.id&&T.version===x.version;for(let E of["type","status","sentinel"]){let N=b[E],D=v[E];N!==D&&a.push({path:_,field:E,from:N,to:D})}if(!w)for(let E of["value","meta"]){let N=b[E],D=v[E];gr(N,D)||a.push({path:_,field:E,from:N,to:D})}}let u=_=>`${_.from} ${_.to}`,c=new Set(e.edges.map(u)),p=new Set(n.edges.map(u)),h=n.edges.filter(_=>!c.has(u(_))),f=e.edges.filter(_=>!p.has(u(_))),l=new Set(e.subgraphs),g=new Set(n.subgraphs),m=[...g].filter(_=>!l.has(_)).sort(),y=[...l].filter(_=>!g.has(_)).sort();return{nodesAdded:o,nodesRemoved:i,nodesChanged:a,versionChanges:d,edgesAdded:h,edgesRemoved:f,subgraphsAdded:m,subgraphsRemoved:y}}};function gn(t,e){let n=ve.diff(t,e),r={};for(let s of n.nodesAdded){let o=e.nodes[s];o!=null&&(r[s]=o)}return{...n,nodesAddedFull:r}}function _t(t,e,n,r={}){let s={paths:[],depths:new Map,truncated:!1};if(!e)return r.withDetail?s:[];if(!r.both&&n!=="upstream"&&n!=="downstream")throw new Error('reachable: direction must be "upstream" or "downstream"');let o=r.maxDepth;if(o!=null&&(!Number.isInteger(o)||o<0))throw new Error("reachable: maxDepth must be an integer >= 0");if(o===0)return r.withDetail?s:[];let i=new Map,a=new Map,d=new Map,u=new Map,c=new Set;for(let[b,v]of Object.entries(t.nodes)){if(!b)continue;c.add(b);let T=v.deps??[];i.set(b,T);for(let x of T)x&&(c.add(x),a.has(x)||a.set(x,new Set),a.get(x).add(b))}for(let b of t.edges){if(b==null||typeof b!="object")continue;let v=typeof b.from=="string"?b.from:"",T=typeof b.to=="string"?b.to:"";!v||!T||(c.add(v),c.add(T),u.has(v)||u.set(v,new Set),u.get(v).add(T),d.has(T)||d.set(T,new Set),d.get(T).add(v))}if(!c.has(e))return r.withDetail?s:[];let p=r.both===!0,h=b=>{if(p){let w=i.get(b)??[],E=d.get(b),N=a.get(b),D=u.get(b),S=[...w];return E&&S.push(...E),N&&S.push(...N),D&&S.push(...D),S}if(n==="upstream"){let w=i.get(b)??[],E=d.get(b);return E?[...w,...E]:w}let v=a.get(b),T=u.get(b),x=v?[...v]:[];return T&&x.push(...T),x},f=new Set([e]),l=new Map,g=[{path:e,depth:0}],m=0,y=!1;for(;m<g.length;){let b=g[m++];if(o!=null&&b.depth>=o){h(b.path).length>0&&(y=!0);continue}for(let v of h(b.path))!v||f.has(v)||(f.add(v),l.set(v,b.depth+1),g.push({path:v,depth:b.depth+1}))}let _=[...l.keys()].sort((b,v)=>b<v?-1:b>v?1:0);return r.withDetail?{paths:_,depths:l,truncated:y}:_}function Dr(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++){let r=t[n],s=e[n];if(r.path!==s.path||r.type!==s.type||r.status!==s.status||r.hop!==s.hop||r.dep_index!==s.dep_index||r.annotation!==s.annotation||r.value!==s.value||r.lastMutation!==s.lastMutation)return!1;let o=r.v,i=s.v;if(o!==i&&(o==null||i==null||o.id!==i.id||o.version!==i.version))return!1}return!0}mt();function mn(t,e,n){return{[t]:!0,[`${t}_type`]:e,...n??{}}}var Ar=Ce((t,e)=>{t("write"),t("signal"),e("observe")}),Cr=Ce((t,e)=>{t("observe"),t("signal"),e("write")}),Mr=Ce((t,e)=>{t("observe"),t("signal"),e("write")});function Ke(t,e){return mn("cqrs",t,e)}var xt=class{_store=new Map;persist(e){let n=this._store.get(e.type);n||(n=[],this._store.set(e.type,n)),n.push(e)}loadEvents(e,n){let r=this._store.get(e)??[],s=n?.timestampNs,o=n?.seq,i=s==null?[...r]:r.filter(d=>d.timestampNs>s||d.timestampNs===s&&d.seq>(o??-1)),a=i.length>0?i[i.length-1]:void 0;return{events:i,cursor:a?{timestampNs:a.timestampNs,seq:a.seq}:n}}clear(){this._store.clear()}},Ye=class extends ve{_eventLogs=new Map;_commandHandlers=new Map;_projections=new Set;_sagas=new Set;_keepaliveDisposers=[];_eventStore;_seq=0;constructor(e,n={}){super(e,n.graph)}destroy(){for(let e of this._keepaliveDisposers)e();this._keepaliveDisposers.length=0,super.destroy()}event(e){let n=this._eventLogs.get(e);if(n)return n.node;let r=Vt([],{name:e,versioning:0}),s=r.entries,o=Q([s],([i])=>i,{name:e,describeKind:"state",meta:Ke("event",{event_name:e}),guard:Mr,initial:s.cache});return this.add(o,{name:e}),this._keepaliveDisposers.push(ne(o)),this._eventLogs.set(e,{log:r,node:o}),o}_appendEvent(e,n){let r=this._eventLogs.get(e);if(r||(this.event(e),r=this._eventLogs.get(e)),r.node.status==="completed"||r.node.status==="errored")throw new Error(`Cannot dispatch to terminated event stream "${e}" (status: ${r.node.status}).`);let s=r.log.entries.v,o={type:e,payload:n,timestampNs:he(),seq:++this._seq,...s!=null?{v0:{id:s.id,version:s.version}}:{}};r.log.append(o),this._eventStore&&this._eventStore.persist(o)}command(e,n){let r=ee(void 0,{name:e,describeKind:"state",meta:{...Ke("command",{command_name:e}),error:null},guard:Ar});return this.add(r,{name:e}),this._commandHandlers.set(e,n),r}dispatch(e,n){let r=this._commandHandlers.get(e);if(!r)throw new Error(`Unknown command: "${e}". Register with .command() first.`);let s=this.resolve(e);fe(()=>{s.emit(n,{internal:!0});try{r(n,{emit:(o,i)=>this._appendEvent(o,i)}),s.meta.error.emit(null,{internal:!0})}catch(o){throw s.meta.error.emit(o,{internal:!0}),o}})}projection(e,n,r,s){let o=n.map(a=>(this._eventLogs.has(a)||this.event(a),this._eventLogs.get(a).node)),i=Q(o,a=>{let d=[];for(let u of a){let c=u;d.push(...c)}return d.sort((u,c)=>u.timestampNs-c.timestampNs||u.seq-c.seq),r(s,d)},{name:e,describeKind:"derived",meta:Ke("projection",{projection_name:e,source_events:n}),guard:Cr,initial:s});return this.add(i,{name:e}),this._keepaliveDisposers.push(ne(i)),this._projections.add(e),i}saga(e,n,r){let s=n.map(d=>(this._eventLogs.has(d)||this.event(d),this._eventLogs.get(d).node)),o=new Map,i={},a=ue(s,(d,u)=>{let c=i.n.meta.error;for(let p=0;p<d.length;p++){let h=d[p];if(h==null||h.length===0)continue;let f=h.at(-1);if(!f)continue;let l=n[p],g=o.get(l)??0;if(f.length>g){let m=f.slice(g);for(let y of m)try{r(y),c.emit(null,{internal:!0})}catch(_){c.emit(_,{internal:!0})}o.set(l,f.length)}}},{name:e,describeKind:"effect",meta:{...Ke("saga",{saga_name:e,source_events:n}),error:null}});return i.n=a,this.add(a,{name:e}),this._keepaliveDisposers.push(ne(a)),this._sagas.add(e),a}useEventStore(e){this._eventStore=e}async rebuildProjection(e,n,r){if(!this._eventStore)throw new Error("No event store wired. Call useEventStore() first.");let s=[];for(let o of e){let i=await this._eventStore.loadEvents(o);s.push(...i.events)}return s.sort((o,i)=>o.timestampNs-i.timestampNs||o.seq-i.seq),n(r,s)}};function Gr(t,e){return new Ye(t,e)}0&&(module.exports={CqrsGraph,MemoryEventStore,cqrs});
@@ -1,5 +1,5 @@
1
1
  import '../../node-BVV7G1bq.cjs';
2
- import '../../graph-C4Uxwv0T.cjs';
3
- export { b as CommandActions, c as CommandHandler, d as CqrsEvent, a as CqrsGraph, C as CqrsOptions, E as EventStoreAdapter, e as EventStoreCursor, L as LoadEventsResult, M as MemoryEventStore, P as ProjectionReducer, S as SagaHandler, f as cqrs } from '../../index-SSGqF8mI.cjs';
2
+ import '../../graph-CdJeX7O7.cjs';
3
+ export { b as CommandActions, c as CommandHandler, d as CqrsEvent, a as CqrsGraph, C as CqrsOptions, E as EventStoreAdapter, e as EventStoreCursor, L as LoadEventsResult, M as MemoryEventStore, P as ProjectionReducer, S as SagaHandler, f as cqrs } from '../../index-aBqZUx3B.cjs';
4
4
  import '../../meta-COtmHLwT.cjs';
5
5
  import '../../extra/storage-core.cjs';
@@ -1,5 +1,5 @@
1
1
  import '../../node-BVV7G1bq.js';
2
- import '../../graph-CWeI0aHd.js';
3
- export { b as CommandActions, c as CommandHandler, d as CqrsEvent, a as CqrsGraph, C as CqrsOptions, E as EventStoreAdapter, e as EventStoreCursor, L as LoadEventsResult, M as MemoryEventStore, P as ProjectionReducer, S as SagaHandler, f as cqrs } from '../../index-IZ3l_vQ9.js';
2
+ import '../../graph-BOhEGJ6E.js';
3
+ export { b as CommandActions, c as CommandHandler, d as CqrsEvent, a as CqrsGraph, C as CqrsOptions, E as EventStoreAdapter, e as EventStoreCursor, L as LoadEventsResult, M as MemoryEventStore, P as ProjectionReducer, S as SagaHandler, f as cqrs } from '../../index-DD1czHj3.js';
4
4
  import '../../meta-BMwx3ExI.js';
5
5
  import '../../extra/storage-core.js';
@@ -1 +1 @@
1
- import{a,b,c}from"../../chunk-Z3UWIJ3A.js";import"../../chunk-K54OKWNY.js";import"../../chunk-CZVYLXFK.js";import"../../chunk-7EQPXQ7H.js";import"../../chunk-XRSHMHEG.js";import"../../chunk-PSQNYY72.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-N2KKISCE.js";import"../../chunk-UMH3HSP7.js";import"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{b as CqrsGraph,a as MemoryEventStore,c as cqrs};
1
+ import{a,b,c}from"../../chunk-EIFHFDFD.js";import"../../chunk-K54OKWNY.js";import"../../chunk-CZVYLXFK.js";import"../../chunk-MFNOZ5E6.js";import"../../chunk-XRSHMHEG.js";import"../../chunk-4JBKKUCJ.js";import"../../chunk-SGS4OJGS.js";import"../../chunk-ESMPEKEV.js";import"../../chunk-N2KKISCE.js";import"../../chunk-UMH3HSP7.js";import"../../chunk-7AJKUA36.js";import"../../chunk-CK2E7BTU.js";import"../../chunk-QYADASLV.js";export{b as CqrsGraph,a as MemoryEventStore,c as cqrs};