@indexnetwork/protocol 1.25.2-rc.210.1 → 1.25.3-rc.212.1

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 (270) hide show
  1. package/dist/agent/agent.tools.d.ts.map +1 -1
  2. package/dist/agent/agent.tools.js.map +1 -1
  3. package/dist/agent/tests/fakes.d.ts.map +1 -1
  4. package/dist/agent/tests/fakes.js.map +1 -1
  5. package/dist/chat/chat-streaming.types.d.ts.map +1 -1
  6. package/dist/chat/chat-streaming.types.js.map +1 -1
  7. package/dist/chat/chat.agent.d.ts.map +1 -1
  8. package/dist/chat/chat.agent.js.map +1 -1
  9. package/dist/chat/chat.graph.d.ts.map +1 -1
  10. package/dist/chat/chat.graph.js.map +1 -1
  11. package/dist/chat/chat.prompt.d.ts.map +1 -1
  12. package/dist/chat/chat.prompt.js.map +1 -1
  13. package/dist/chat/chat.prompt.modules.d.ts.map +1 -1
  14. package/dist/chat/chat.prompt.modules.js.map +1 -1
  15. package/dist/chat/chat.question-dedup.d.ts.map +1 -1
  16. package/dist/chat/chat.question-dedup.js.map +1 -1
  17. package/dist/chat/chat.state.d.ts.map +1 -1
  18. package/dist/chat/chat.state.js.map +1 -1
  19. package/dist/chat/chat.streamer.d.ts.map +1 -1
  20. package/dist/chat/chat.streamer.js.map +1 -1
  21. package/dist/chat/chat.suggester.d.ts.map +1 -1
  22. package/dist/chat/chat.suggester.js.map +1 -1
  23. package/dist/chat/chat.summarizer.d.ts.map +1 -1
  24. package/dist/chat/chat.summarizer.js.map +1 -1
  25. package/dist/chat/chat.title.generator.d.ts.map +1 -1
  26. package/dist/chat/chat.title.generator.js.map +1 -1
  27. package/dist/chat/chat.tools.d.ts.map +1 -1
  28. package/dist/chat/chat.tools.js.map +1 -1
  29. package/dist/chat/chat.utils.d.ts.map +1 -1
  30. package/dist/chat/chat.utils.js.map +1 -1
  31. package/dist/chat/tests/chat.graph.mocks.d.ts.map +1 -1
  32. package/dist/chat/tests/chat.graph.mocks.js.map +1 -1
  33. package/dist/contact/contact.inviter.d.ts.map +1 -1
  34. package/dist/contact/contact.inviter.js.map +1 -1
  35. package/dist/contact/contact.tools.d.ts.map +1 -1
  36. package/dist/contact/contact.tools.js.map +1 -1
  37. package/dist/context/context.generator.d.ts.map +1 -1
  38. package/dist/context/context.generator.js.map +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/integration/integration.tools.d.ts.map +1 -1
  42. package/dist/integration/integration.tools.js.map +1 -1
  43. package/dist/intent/intent.clarifier.d.ts.map +1 -1
  44. package/dist/intent/intent.clarifier.js.map +1 -1
  45. package/dist/intent/intent.graph.d.ts.map +1 -1
  46. package/dist/intent/intent.graph.js.map +1 -1
  47. package/dist/intent/intent.indexer.d.ts.map +1 -1
  48. package/dist/intent/intent.indexer.js.map +1 -1
  49. package/dist/intent/intent.inferrer.d.ts.map +1 -1
  50. package/dist/intent/intent.inferrer.js.map +1 -1
  51. package/dist/intent/intent.reconciler.d.ts.map +1 -1
  52. package/dist/intent/intent.reconciler.js.map +1 -1
  53. package/dist/intent/intent.state.d.ts.map +1 -1
  54. package/dist/intent/intent.state.js.map +1 -1
  55. package/dist/intent/intent.tools.d.ts.map +1 -1
  56. package/dist/intent/intent.tools.js.map +1 -1
  57. package/dist/intent/intent.verifier.d.ts.map +1 -1
  58. package/dist/intent/intent.verifier.js.map +1 -1
  59. package/dist/maintenance/maintenance.graph.d.ts.map +1 -1
  60. package/dist/maintenance/maintenance.graph.js.map +1 -1
  61. package/dist/maintenance/maintenance.state.d.ts.map +1 -1
  62. package/dist/maintenance/maintenance.state.js.map +1 -1
  63. package/dist/mcp/elicitation.builder.d.ts.map +1 -1
  64. package/dist/mcp/elicitation.builder.js.map +1 -1
  65. package/dist/mcp/elicitation.dispatcher.d.ts.map +1 -1
  66. package/dist/mcp/elicitation.dispatcher.js.map +1 -1
  67. package/dist/mcp/mcp.server.d.ts.map +1 -1
  68. package/dist/mcp/mcp.server.js.map +1 -1
  69. package/dist/negotiation/insight.generator.d.ts.map +1 -1
  70. package/dist/negotiation/insight.generator.js.map +1 -1
  71. package/dist/negotiation/negotiation.agent.d.ts.map +1 -1
  72. package/dist/negotiation/negotiation.agent.js.map +1 -1
  73. package/dist/negotiation/negotiation.graph.d.ts.map +1 -1
  74. package/dist/negotiation/negotiation.graph.js.map +1 -1
  75. package/dist/negotiation/negotiation.state.d.ts.map +1 -1
  76. package/dist/negotiation/negotiation.state.js.map +1 -1
  77. package/dist/negotiation/negotiation.summarizer.d.ts.map +1 -1
  78. package/dist/negotiation/negotiation.summarizer.js.map +1 -1
  79. package/dist/negotiation/negotiation.tools.d.ts.map +1 -1
  80. package/dist/negotiation/negotiation.tools.js.map +1 -1
  81. package/dist/network/indexer/indexer.graph.d.ts.map +1 -1
  82. package/dist/network/indexer/indexer.graph.js.map +1 -1
  83. package/dist/network/indexer/indexer.state.d.ts.map +1 -1
  84. package/dist/network/indexer/indexer.state.js.map +1 -1
  85. package/dist/network/membership/membership.graph.d.ts.map +1 -1
  86. package/dist/network/membership/membership.graph.js.map +1 -1
  87. package/dist/network/membership/membership.state.d.ts.map +1 -1
  88. package/dist/network/membership/membership.state.js.map +1 -1
  89. package/dist/network/network.graph.d.ts.map +1 -1
  90. package/dist/network/network.graph.js.map +1 -1
  91. package/dist/network/network.state.d.ts.map +1 -1
  92. package/dist/network/network.state.js.map +1 -1
  93. package/dist/network/network.tools.d.ts.map +1 -1
  94. package/dist/network/network.tools.js.map +1 -1
  95. package/dist/opportunity/delivery-card.cache.d.ts.map +1 -1
  96. package/dist/opportunity/delivery-card.cache.js.map +1 -1
  97. package/dist/opportunity/discovery-question.helper.d.ts.map +1 -1
  98. package/dist/opportunity/discovery-question.helper.js.map +1 -1
  99. package/dist/opportunity/feed/feed.categorizer.d.ts.map +1 -1
  100. package/dist/opportunity/feed/feed.categorizer.js.map +1 -1
  101. package/dist/opportunity/feed/feed.graph.d.ts.map +1 -1
  102. package/dist/opportunity/feed/feed.graph.js.map +1 -1
  103. package/dist/opportunity/feed/feed.health.d.ts.map +1 -1
  104. package/dist/opportunity/feed/feed.health.js.map +1 -1
  105. package/dist/opportunity/feed/feed.state.d.ts.map +1 -1
  106. package/dist/opportunity/feed/feed.state.js.map +1 -1
  107. package/dist/opportunity/negotiation-context.loader.d.ts.map +1 -1
  108. package/dist/opportunity/negotiation-context.loader.js.map +1 -1
  109. package/dist/opportunity/negotiation-summary.builder.d.ts.map +1 -1
  110. package/dist/opportunity/negotiation-summary.builder.js.map +1 -1
  111. package/dist/opportunity/opportunity.discover.d.ts.map +1 -1
  112. package/dist/opportunity/opportunity.discover.js.map +1 -1
  113. package/dist/opportunity/opportunity.enricher.d.ts.map +1 -1
  114. package/dist/opportunity/opportunity.enricher.js.map +1 -1
  115. package/dist/opportunity/opportunity.evaluator.d.ts.map +1 -1
  116. package/dist/opportunity/opportunity.evaluator.js.map +1 -1
  117. package/dist/opportunity/opportunity.graph.d.ts.map +1 -1
  118. package/dist/opportunity/opportunity.graph.js.map +1 -1
  119. package/dist/opportunity/opportunity.introducer.d.ts.map +1 -1
  120. package/dist/opportunity/opportunity.introducer.js.map +1 -1
  121. package/dist/opportunity/opportunity.labels.d.ts.map +1 -1
  122. package/dist/opportunity/opportunity.labels.js.map +1 -1
  123. package/dist/opportunity/opportunity.pending-questions.d.ts.map +1 -1
  124. package/dist/opportunity/opportunity.pending-questions.js.map +1 -1
  125. package/dist/opportunity/opportunity.persist.d.ts.map +1 -1
  126. package/dist/opportunity/opportunity.persist.js.map +1 -1
  127. package/dist/opportunity/opportunity.presentation.d.ts.map +1 -1
  128. package/dist/opportunity/opportunity.presentation.js.map +1 -1
  129. package/dist/opportunity/opportunity.presenter.d.ts.map +1 -1
  130. package/dist/opportunity/opportunity.presenter.js.map +1 -1
  131. package/dist/opportunity/opportunity.state.d.ts.map +1 -1
  132. package/dist/opportunity/opportunity.state.js.map +1 -1
  133. package/dist/opportunity/opportunity.tools.d.ts.map +1 -1
  134. package/dist/opportunity/opportunity.tools.js.map +1 -1
  135. package/dist/opportunity/opportunity.utils.d.ts.map +1 -1
  136. package/dist/opportunity/opportunity.utils.js.map +1 -1
  137. package/dist/opportunity/question.generator.d.ts.map +1 -1
  138. package/dist/opportunity/question.generator.js.map +1 -1
  139. package/dist/opportunity/question.prompt.d.ts.map +1 -1
  140. package/dist/opportunity/question.prompt.js.map +1 -1
  141. package/dist/premise/premise.analyzer.d.ts.map +1 -1
  142. package/dist/premise/premise.analyzer.js.map +1 -1
  143. package/dist/premise/premise.decomposer.d.ts.map +1 -1
  144. package/dist/premise/premise.decomposer.js.map +1 -1
  145. package/dist/premise/premise.graph.d.ts.map +1 -1
  146. package/dist/premise/premise.graph.js.map +1 -1
  147. package/dist/premise/premise.indexer.d.ts.map +1 -1
  148. package/dist/premise/premise.indexer.js.map +1 -1
  149. package/dist/premise/premise.state.d.ts.map +1 -1
  150. package/dist/premise/premise.state.js.map +1 -1
  151. package/dist/premise/premise.tools.d.ts.map +1 -1
  152. package/dist/premise/premise.tools.js.map +1 -1
  153. package/dist/profile/profile.enricher.d.ts.map +1 -1
  154. package/dist/profile/profile.enricher.js.map +1 -1
  155. package/dist/profile/profile.generator.d.ts.map +1 -1
  156. package/dist/profile/profile.generator.js.map +1 -1
  157. package/dist/profile/profile.graph.d.ts.map +1 -1
  158. package/dist/profile/profile.graph.js.map +1 -1
  159. package/dist/profile/profile.state.d.ts.map +1 -1
  160. package/dist/profile/profile.state.js.map +1 -1
  161. package/dist/profile/profile.tools.d.ts.map +1 -1
  162. package/dist/profile/profile.tools.js.map +1 -1
  163. package/dist/questioner/questioner.agent.d.ts.map +1 -1
  164. package/dist/questioner/questioner.agent.js.map +1 -1
  165. package/dist/questioner/questioner.presets.d.ts.map +1 -1
  166. package/dist/questioner/questioner.presets.js.map +1 -1
  167. package/dist/questioner/questioner.types.d.ts.map +1 -1
  168. package/dist/questioner/questioner.types.js.map +1 -1
  169. package/dist/shared/agent/model-signal.d.ts.map +1 -1
  170. package/dist/shared/agent/model-signal.js.map +1 -1
  171. package/dist/shared/agent/model.config.d.ts.map +1 -1
  172. package/dist/shared/agent/model.config.js.map +1 -1
  173. package/dist/shared/agent/response.streamer.d.ts.map +1 -1
  174. package/dist/shared/agent/response.streamer.js.map +1 -1
  175. package/dist/shared/agent/tests/llm-assert.d.ts.map +1 -1
  176. package/dist/shared/agent/tests/llm-assert.js.map +1 -1
  177. package/dist/shared/agent/tool.factory.d.ts.map +1 -1
  178. package/dist/shared/agent/tool.factory.js.map +1 -1
  179. package/dist/shared/agent/tool.helpers.d.ts.map +1 -1
  180. package/dist/shared/agent/tool.helpers.js.map +1 -1
  181. package/dist/shared/agent/tool.registry.d.ts.map +1 -1
  182. package/dist/shared/agent/tool.registry.js.map +1 -1
  183. package/dist/shared/agent/tool.runtime.d.ts.map +1 -1
  184. package/dist/shared/agent/tool.runtime.js.map +1 -1
  185. package/dist/shared/agent/utility.tools.d.ts.map +1 -1
  186. package/dist/shared/agent/utility.tools.js.map +1 -1
  187. package/dist/shared/hyde/hyde.generator.d.ts.map +1 -1
  188. package/dist/shared/hyde/hyde.generator.js.map +1 -1
  189. package/dist/shared/hyde/hyde.graph.d.ts.map +1 -1
  190. package/dist/shared/hyde/hyde.graph.js.map +1 -1
  191. package/dist/shared/hyde/hyde.state.d.ts.map +1 -1
  192. package/dist/shared/hyde/hyde.state.js.map +1 -1
  193. package/dist/shared/hyde/hyde.strategies.d.ts.map +1 -1
  194. package/dist/shared/hyde/hyde.strategies.js.map +1 -1
  195. package/dist/shared/hyde/lens.inferrer.d.ts.map +1 -1
  196. package/dist/shared/hyde/lens.inferrer.js.map +1 -1
  197. package/dist/shared/interfaces/agent-dispatcher.interface.d.ts.map +1 -1
  198. package/dist/shared/interfaces/agent-dispatcher.interface.js.map +1 -1
  199. package/dist/shared/interfaces/agent.interface.d.ts.map +1 -1
  200. package/dist/shared/interfaces/agent.interface.js.map +1 -1
  201. package/dist/shared/interfaces/auth.interface.d.ts.map +1 -1
  202. package/dist/shared/interfaces/auth.interface.js.map +1 -1
  203. package/dist/shared/interfaces/cache.interface.d.ts.map +1 -1
  204. package/dist/shared/interfaces/cache.interface.js.map +1 -1
  205. package/dist/shared/interfaces/chat-message-writer.interface.d.ts.map +1 -1
  206. package/dist/shared/interfaces/chat-message-writer.interface.js.map +1 -1
  207. package/dist/shared/interfaces/chat-session.interface.d.ts.map +1 -1
  208. package/dist/shared/interfaces/chat-session.interface.js.map +1 -1
  209. package/dist/shared/interfaces/chat-summary.interface.d.ts.map +1 -1
  210. package/dist/shared/interfaces/chat-summary.interface.js.map +1 -1
  211. package/dist/shared/interfaces/connect-link.interface.d.ts.map +1 -1
  212. package/dist/shared/interfaces/connect-link.interface.js.map +1 -1
  213. package/dist/shared/interfaces/contact.interface.d.ts.map +1 -1
  214. package/dist/shared/interfaces/contact.interface.js.map +1 -1
  215. package/dist/shared/interfaces/database.interface.d.ts +10 -1
  216. package/dist/shared/interfaces/database.interface.d.ts.map +1 -1
  217. package/dist/shared/interfaces/database.interface.js.map +1 -1
  218. package/dist/shared/interfaces/delivery-ledger.interface.d.ts.map +1 -1
  219. package/dist/shared/interfaces/delivery-ledger.interface.js.map +1 -1
  220. package/dist/shared/interfaces/discovery-run.interface.d.ts.map +1 -1
  221. package/dist/shared/interfaces/discovery-run.interface.js.map +1 -1
  222. package/dist/shared/interfaces/embedder.interface.d.ts.map +1 -1
  223. package/dist/shared/interfaces/embedder.interface.js.map +1 -1
  224. package/dist/shared/interfaces/enrichment.interface.d.ts.map +1 -1
  225. package/dist/shared/interfaces/enrichment.interface.js.map +1 -1
  226. package/dist/shared/interfaces/integration.interface.d.ts.map +1 -1
  227. package/dist/shared/interfaces/integration.interface.js.map +1 -1
  228. package/dist/shared/interfaces/negotiation-events.interface.d.ts.map +1 -1
  229. package/dist/shared/interfaces/negotiation-events.interface.js.map +1 -1
  230. package/dist/shared/interfaces/negotiation-summary.interface.d.ts.map +1 -1
  231. package/dist/shared/interfaces/negotiation-summary.interface.js.map +1 -1
  232. package/dist/shared/interfaces/question-generator.interface.d.ts.map +1 -1
  233. package/dist/shared/interfaces/question-generator.interface.js.map +1 -1
  234. package/dist/shared/interfaces/questioner.interface.d.ts.map +1 -1
  235. package/dist/shared/interfaces/questioner.interface.js.map +1 -1
  236. package/dist/shared/interfaces/queue.interface.d.ts.map +1 -1
  237. package/dist/shared/interfaces/queue.interface.js.map +1 -1
  238. package/dist/shared/interfaces/scraper.interface.d.ts.map +1 -1
  239. package/dist/shared/interfaces/scraper.interface.js.map +1 -1
  240. package/dist/shared/interfaces/storage.interface.d.ts.map +1 -1
  241. package/dist/shared/interfaces/storage.interface.js.map +1 -1
  242. package/dist/shared/network/metadata.renderer.d.ts.map +1 -1
  243. package/dist/shared/network/metadata.renderer.js.map +1 -1
  244. package/dist/shared/observability/debug-meta.sanitizer.d.ts.map +1 -1
  245. package/dist/shared/observability/debug-meta.sanitizer.js.map +1 -1
  246. package/dist/shared/observability/log.d.ts.map +1 -1
  247. package/dist/shared/observability/log.js.map +1 -1
  248. package/dist/shared/observability/performance.d.ts.map +1 -1
  249. package/dist/shared/observability/performance.js.map +1 -1
  250. package/dist/shared/observability/protocol.logger.d.ts.map +1 -1
  251. package/dist/shared/observability/protocol.logger.js.map +1 -1
  252. package/dist/shared/observability/request-context.d.ts.map +1 -1
  253. package/dist/shared/observability/request-context.js.map +1 -1
  254. package/dist/shared/observability/trace.d.ts.map +1 -1
  255. package/dist/shared/observability/trace.js.map +1 -1
  256. package/dist/shared/schemas/chat-context.schema.d.ts.map +1 -1
  257. package/dist/shared/schemas/chat-context.schema.js.map +1 -1
  258. package/dist/shared/schemas/negotiation-digest.schema.d.ts.map +1 -1
  259. package/dist/shared/schemas/negotiation-digest.schema.js.map +1 -1
  260. package/dist/shared/schemas/pending-question.schema.d.ts.map +1 -1
  261. package/dist/shared/schemas/pending-question.schema.js.map +1 -1
  262. package/dist/shared/schemas/question.schema.d.ts.map +1 -1
  263. package/dist/shared/schemas/question.schema.js.map +1 -1
  264. package/dist/shared/ui/lucide.icon-catalog.d.ts.map +1 -1
  265. package/dist/shared/ui/lucide.icon-catalog.js.map +1 -1
  266. package/dist/shared/utils/social-label.d.ts.map +1 -1
  267. package/dist/shared/utils/social-label.js.map +1 -1
  268. package/dist/shared/utils/telegram-handle.d.ts.map +1 -1
  269. package/dist/shared/utils/telegram-handle.js.map +1 -1
  270. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"opportunity.graph.js","sourceRoot":"","sources":["../../src/opportunity/opportunity.graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opportunity.graph.js","sourceRoot":"/","sources":["opportunity/opportunity.graph.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Opportunity Graph: Linear Multi-Step Workflow for Opportunity Discovery\n *\n * Architecture: Follows intent graph pattern with Annotation-based state.\n * Flow: Prep → Scope → Discovery → Evaluation → Ranking → Persist → END\n *\n * Key Constraints:\n * - Opportunities only between intents sharing the same index\n * - Both intents must have hyde documents for semantic matching\n * - Non-indexed intents cannot participate in discovery\n *\n * Constructor injects Database, Embedder, and compiled HyDE graph.\n */\n\nimport { StateGraph, START, END, Annotation } from '@langchain/langgraph';\nimport type { Id } from '../shared/interfaces/database.interface.js';\nimport type { DebugMetaAgent } from '../chat/chat-streaming.types.js';\nimport {\n OpportunityGraphState,\n type IndexedIntent,\n type SourceProfileData,\n type TargetNetwork,\n type CandidateMatch,\n type EvaluatedCandidate,\n type EvaluatedOpportunity,\n type EvaluatedOpportunityActor,\n} from './opportunity.state.js';\nimport { resolveInitialStatus } from './opportunity.state.js';\nimport {\n OpportunityEvaluator,\n type CandidateProfile,\n type EvaluatedOpportunityWithActors,\n type EvaluatorEntity,\n type EvaluatorInput,\n} from './opportunity.evaluator.js';\nimport type { OpportunityGraphDatabase } from '../shared/interfaces/database.interface.js';\nimport { IntentIndexer } from '../intent/intent.indexer.js';\nimport { getModelName } from '../shared/agent/model.config.js';\nimport { validateOpportunityActors } from './opportunity.utils.js';\n\n/** Optional evaluator for testing (avoids LLM calls). */\nexport type OpportunityEvaluatorLike = {\n invoke?: (\n sourceProfileContext: string,\n candidates: CandidateProfile[],\n options: { minScore?: number }\n ) => Promise<Array<{\n sourceId: string;\n candidateId: string;\n score: number;\n reasoning: string;\n valencyRole: 'Agent' | 'Patient' | 'Peer';\n }>>;\n invokeEntityBundle?: (input: EvaluatorInput, options: { minScore?: number }) => Promise<Array<{\n reasoning: string;\n score: number;\n actors: Array<{ userId: string; role: 'agent' | 'patient' | 'peer'; intentId?: string | null }>;\n }>>;\n};\nimport type { Embedder, LensEmbedding } from '../shared/interfaces/embedder.interface.js';\nimport type {\n CreateOpportunityData,\n Opportunity,\n OpportunityActor,\n ActiveIntent,\n} from '../shared/interfaces/database.interface.js';\nimport { persistOpportunities } from './opportunity.persist.js';\nimport { INTRODUCER_DISCOVERY_SOURCE } from './opportunity.introducer.js';\nimport { negotiateCandidates, type NegotiationCandidate, type OnNegotiationResolved } from \"../negotiation/negotiation.graph.js\";\nimport { AMBIENT_PARK_WINDOW_MS } from \"../negotiation/negotiation.tools.js\";\nimport {\n buildDiscoverySummary,\n toDiscoveryNegotiation,\n type NegotiationResolution,\n} from \"./negotiation-summary.builder.js\";\nimport type { NegotiationGraphLike } from \"../negotiation/negotiation.state.js\";\nimport type { AgentDispatcher } from \"../shared/interfaces/agent-dispatcher.interface.js\";\nimport { protocolLogger, withCallLogging } from '../shared/observability/protocol.logger.js';\nimport { timed } from '../shared/observability/performance.js';\nimport { renderNetworkContext } from '../shared/network/metadata.renderer.js';\nimport { requestContext } from \"../shared/observability/request-context.js\";\n\nconst logger = protocolLogger('OpportunityGraph');\n\n/** Time window for persist-node dedup. Parallel jobs arrive within seconds; 10 min catches those while allowing new opportunities for long-connected pairs. */\nconst DEDUP_WINDOW_MS = 10 * 60 * 1000;\n\n/** Input shape for the HyDE graph invoke call (query-based embedding). */\nexport interface HydeGeneratorInvokeInput {\n sourceType: 'query';\n sourceText: string;\n forceRegenerate?: boolean;\n profileContext?: string;\n}\n\n/** Optional notifier for opportunity send; when omitted, the real queue is used via dynamic import. */\nexport type QueueOpportunityNotificationFn = (\n opportunityId: string,\n recipientId: string,\n priority: 'immediate' | 'high' | 'low'\n) => Promise<unknown>;\n\n/**\n * Builds a compact text summary of the discoverer's profile and active intents\n * for use as profileContext in HyDE generation.\n * @param profile - The discoverer's profile data (identity, attributes)\n * @param intents - The discoverer's indexed intents (capped at 5)\n * @returns A context string, or undefined if no meaningful data is available\n */\nexport function buildDiscovererContext(\n profile: SourceProfileData | null | undefined,\n intents: IndexedIntent[] | undefined\n): string | undefined {\n const lines: string[] = [];\n\n if (profile) {\n const identity = profile.identity;\n const attrs = profile.attributes;\n if (identity?.name || identity?.bio) {\n lines.push(`Profile: ${[identity.name, identity.bio].filter(Boolean).join(', ')}`);\n }\n if (identity?.location) {\n lines.push(`Location: ${identity.location}`);\n }\n if (attrs?.skills?.length) {\n lines.push(`Skills: ${attrs.skills.join(', ')}`);\n }\n if (attrs?.interests?.length) {\n lines.push(`Interests: ${attrs.interests.join(', ')}`);\n }\n }\n\n if (intents?.length) {\n // indexedIntents preserves DB order from getActiveIntents (newest first),\n // so slice(0, 5) is deterministic without an explicit sort.\n const capped = intents.slice(0, 5);\n lines.push('');\n lines.push('Active intents:');\n for (const intent of capped) {\n lines.push(`- ${intent.payload}`);\n }\n }\n\n return lines.length > 0 ? lines.join('\\n') : undefined;\n}\n\n/**\n * Build a networkContexts map for the evaluator from a set of entities.\n * Fetches network data, checks permissions.contextInjection.discovery,\n * and renders context for eligible networks.\n */\nasync function buildNetworkContexts(\n entities: EvaluatorEntity[],\n database: Pick<OpportunityGraphDatabase, 'getNetwork'>,\n): Promise<Record<string, string>> {\n const networkIds = [...new Set(entities.map((e) => e.networkId))];\n const networks = await Promise.all(networkIds.map((nid) => database.getNetwork(nid).then((n) => ({ nid, n }))));\n const contexts: Record<string, string> = {};\n for (const { nid, n: network } of networks) {\n if (!network) continue;\n const perms = (network.permissions ?? {}) as Record<string, unknown>;\n const injection = perms.contextInjection as { discovery?: boolean } | undefined;\n if (injection?.discovery === false) continue;\n contexts[nid] = renderNetworkContext({\n type: network.type ?? 'community',\n title: network.title,\n prompt: network.prompt,\n metadata: network.metadata ?? {},\n });\n }\n return contexts;\n}\n\n/**\n * Factory class to build and compile the Opportunity Graph.\n * Uses dependency injection for testability.\n */\nexport class OpportunityGraphFactory {\n constructor(\n private database: OpportunityGraphDatabase,\n private embedder: Embedder,\n private hydeGenerator: {\n invoke: (input: HydeGeneratorInvokeInput) => Promise<{\n hydeEmbeddings: Record<string, number[]>;\n lenses?: Array<{ label: string; corpus: 'profiles' | 'intents' | 'premises' }>;\n hydeDocuments?: Record<string, { hydeText?: string; lens?: string }>;\n }>;\n },\n private optionalEvaluator?: OpportunityEvaluatorLike,\n private queueNotification?: QueueOpportunityNotificationFn,\n private negotiationGraph?: NegotiationGraphLike,\n /**\n * Used on the chat path to decide whether to wait for the user's personal\n * agent (long timeout) or fall back to the system agent immediately\n * (short timeout). Without it, the chat path always uses a short timeout.\n */\n private agentDispatcher?: Pick<AgentDispatcher, 'hasPersonalAgent'>,\n /**\n * Callback to enqueue a negotiate_existing job for an opportunity.\n * When provided, negotiate_existing mode uses this to queue follow-up\n * negotiations after introducer approval.\n */\n private queueNegotiateExisting?: (opportunityId: string, userId: string) => Promise<void>,\n ) {}\n\n public createGraph() {\n const evaluatorAgent = this.optionalEvaluator ?? new OpportunityEvaluator();\n\n // ═══════════════════════════════════════════════════════════════\n // NODE DEFINITIONS\n // ═══════════════════════════════════════════════════════════════\n\n /**\n * Wraps a graph node function to emit agent_start/agent_end trace events\n * at its boundaries so the frontend TRACE panel shows real-time progress.\n * @param traceName - Kebab-case agent name (e.g. \"opportunity-prep\")\n * @param nodeFn - The original node function\n * @param summaryFn - Optional function to derive a summary string from the node result\n */\n function withNodeTrace<S, R>(\n traceName: string,\n nodeFn: (state: S) => Promise<R>,\n summaryFn?: (result: R) => string | undefined,\n ): (state: S) => Promise<R> {\n return async (state: S) => {\n const traceEmitter = requestContext.getStore()?.traceEmitter;\n const nodeStart = Date.now();\n traceEmitter?.({ type: \"agent_start\", name: traceName });\n try {\n const result = await nodeFn(state);\n const durationMs = Date.now() - nodeStart;\n const summary = summaryFn?.(result) ?? undefined;\n traceEmitter?.({ type: \"agent_end\", name: traceName, durationMs, summary });\n return result;\n } catch (err) {\n const durationMs = Date.now() - nodeStart;\n const errMsg = err instanceof Error ? err.message : String(err);\n traceEmitter?.({ type: \"agent_end\", name: traceName, durationMs, summary: `error: ${errMsg}` });\n throw err;\n }\n };\n }\n\n /**\n * Node 0: Prep\n * Fetches user's index memberships and validates requirements.\n * Returns empty if user has no index memberships (requirement).\n */\n const prepNode = withNodeTrace(\n \"opportunity-prep\",\n async (state: typeof OpportunityGraphState.State) =>\n timed(\"OpportunityGraph.prep\", async () =>\n withCallLogging(\n logger,\n '[Graph:Prep] prepNode',\n {\n userId: state.userId,\n hasSearchQuery: !!state.searchQuery,\n requestedIndexId: state.networkId ?? undefined,\n },\n async () => {\n // Use getNetworkMemberships (all memberships) for search scope — NOT getUserIndexIds\n // (which filters by autoAssign=true and is intended only for intent assignment).\n const memberships = await this.database.getNetworkMemberships(state.userId);\n const userNetworkIds = memberships.map(m => m.networkId) as Id<'networks'>[];\n if (userNetworkIds.length === 0) {\n logger.verbose('[Graph:Prep] User has no network memberships - cannot find opportunities');\n return {\n userNetworks: [] as Id<'networks'>[],\n sourceProfile: null,\n error: 'You need to join at least one network to find opportunities.',\n };\n }\n const discoveryUserId = state.onBehalfOfUserId ?? state.userId;\n const [intents, profile, userPremises] = await Promise.all([\n this.database.getActiveIntents(discoveryUserId),\n this.database.getProfile(discoveryUserId),\n this.database.getPremisesForUser(discoveryUserId, 'ACTIVE'),\n ]);\n const indexedIntents: IndexedIntent[] = intents.map((intent: ActiveIntent) => ({\n intentId: intent.id,\n payload: intent.payload,\n summary: intent.summary ?? undefined,\n indexes: [],\n }));\n const sourceProfile = profile\n ? {\n identity: profile.identity ?? undefined,\n narrative: profile.narrative ?? undefined,\n attributes: profile.attributes ?? undefined,\n }\n : null;\n const sourcePremises = (userPremises ?? [])\n .filter(p => p.embedding && p.embedding.length > 0)\n .map(p => ({\n premiseId: p.id as Id<'premises'>,\n embedding: p.embedding!,\n }));\n const contextToIntentEnabled = process.env.DISCOVERY_CONTEXT_TO_INTENT !== '0';\n const rawContexts = contextToIntentEnabled\n ? await this.database.getUserContexts(discoveryUserId)\n : [];\n const sourceContexts = rawContexts\n .filter((c: { id: string; networkId: string; embedding: number[] | null }) => c.embedding && c.embedding.length > 0 && userNetworkIds.includes(c.networkId as Id<'networks'>))\n .map((c: { id: string; networkId: string; embedding: number[] | null }) => ({\n contextId: c.id,\n networkId: c.networkId as Id<'networks'>,\n embedding: c.embedding!,\n }));\n return {\n userNetworks: userNetworkIds,\n indexedIntents,\n sourceProfile,\n sourcePremises,\n sourceContexts,\n trace: [{\n node: \"prep\",\n detail: `${userNetworkIds.length} network(s), ${intents.length} intent(s), ${sourcePremises.length} premise(s), ${sourceContexts.length} context(s), ${profile ? 'profile loaded' : 'no profile'}`,\n }],\n };\n },\n { context: { userId: state.userId }, logOutput: true }\n ).catch((error) => {\n const errMsg = error instanceof Error ? error.message : String(error);\n logger.error('[Graph:Prep] Failed', { error });\n return {\n error: 'Failed to prepare opportunity search. Please try again.',\n trace: [{\n node: \"prep_fatal\",\n detail: `Prep failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n })\n ),\n (result) => {\n const r = result as Record<string, unknown>;\n if (r?.error) return `error: ${r.error}`;\n const indexes = r?.userNetworks as unknown[];\n const intents = r?.indexedIntents as unknown[];\n return indexes && intents ? `${indexes.length} index(es), ${intents.length} intent(s)` : undefined;\n },\n );\n\n /**\n * Node 1: Scope\n * Determines which indexes to search within.\n * If networkId provided: searches only that index.\n * Otherwise: searches all user's indexes.\n */\n const scopeNode = withNodeTrace(\n \"opportunity-scope\",\n async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.scope\", async () => {\n logger.verbose('[Graph:Scope] Determining search scope', {\n requestedIndexId: state.networkId,\n userNetworksCount: state.userNetworks.length,\n });\n\n try {\n let targetIndexIds: Id<'networks'>[];\n\n if (state.networkId) {\n // Validate user is member or owner of requested network\n const isInScope = state.userNetworks.includes(state.networkId);\n const isOwner = !isInScope && await this.database.isIndexOwner(state.networkId, state.userId);\n if (!isInScope && !isOwner) {\n logger.warn('[Graph:Scope] User not member of requested network', {\n networkId: state.networkId,\n });\n return {\n targetNetworks: [],\n error: 'You are not a member of that network.',\n };\n }\n targetIndexIds = [state.networkId];\n } else if (state.indexScope && state.indexScope.length > 0) {\n // Bounded scope (e.g. a network-scoped agent's reachable indexes):\n // intersect with the user's actual memberships so discovery never\n // reaches networks outside the agent's bound scope.\n const allowed = new Set(state.indexScope);\n targetIndexIds = state.userNetworks.filter((n) => allowed.has(n));\n logger.verbose('[Graph:Scope] Applied indexScope intersection', {\n indexScopeCount: state.indexScope.length,\n userNetworksCount: state.userNetworks.length,\n targetCount: targetIndexIds.length,\n });\n } else {\n // Search all user's indexes\n targetIndexIds = state.userNetworks;\n }\n\n // Fetch index details\n const targetNetworks: TargetNetwork[] = await Promise.all(\n targetIndexIds.map(async (networkId) => {\n const index = await this.database.getNetwork(networkId);\n const memberCount = await this.database.getNetworkMemberCount(networkId);\n return {\n networkId,\n title: index?.title ?? 'Unknown',\n memberCount,\n };\n })\n );\n\n logger.verbose('[Graph:Scope] Scope determined', {\n targetIndexesCount: targetNetworks.length,\n indexes: targetNetworks.map(i => i.title),\n });\n\n // ── Populate index relevancy scores for dedup tie-breaking ──\n let indexRelevancyScores: Record<string, number> = {};\n\n if (state.triggerIntentId) {\n // Background path: look up persisted scores from intent_indexes\n try {\n const scores = await this.database.getIntentIndexScores(state.triggerIntentId);\n for (const { networkId, relevancyScore } of scores) {\n if (relevancyScore != null) {\n indexRelevancyScores[networkId] = relevancyScore;\n }\n }\n } catch (err) {\n logger.warn('[Graph:Scope] Failed to load intent index scores', { triggerIntentId: state.triggerIntentId, error: err });\n }\n } else if (state.searchQuery?.trim()) {\n // Chat path: score query against target indexes in parallel\n try {\n const indexer = new IntentIndexer();\n const scopeAgentTimings: DebugMetaAgent[] = [];\n const scorableIndexes = targetNetworks.filter(ti => ti.title !== 'Unknown');\n const scoringPromises = scorableIndexes.map(async (ti) => {\n const ctx = await this.database.getNetworkMemberContext(ti.networkId, state.userId);\n if (!ctx?.indexPrompt?.trim() && !ctx?.memberPrompt?.trim()) {\n return { networkId: ti.networkId, score: 1.0 };\n }\n const _indexerStart = Date.now();\n const traceEmitter = requestContext.getStore()?.traceEmitter;\n traceEmitter?.({ type: \"agent_start\", name: \"intent-indexer\" });\n let result: Awaited<ReturnType<typeof indexer.invoke>> | null = null;\n try {\n result = await indexer.invoke(\n state.searchQuery!,\n ctx?.indexPrompt ?? null,\n ctx?.memberPrompt ?? null,\n );\n } catch {\n return { networkId: ti.networkId, score: 1.0 };\n } finally {\n const _indexerDuration = Date.now() - _indexerStart;\n traceEmitter?.({ type: \"agent_end\", name: \"intent-indexer\", durationMs: _indexerDuration, summary: `Scored index ${ti.networkId}` });\n scopeAgentTimings.push({ name: 'intent.indexer', durationMs: _indexerDuration });\n }\n if (!result) return { networkId: ti.networkId, score: 1.0 };\n const score = ctx?.indexPrompt && ctx?.memberPrompt\n ? result.indexScore * 0.6 + result.memberScore * 0.4\n : ctx?.indexPrompt ? result.indexScore : result.memberScore;\n return { networkId: ti.networkId, score };\n });\n const results = await Promise.all(scoringPromises);\n for (const { networkId, score } of results) {\n indexRelevancyScores[networkId] = score;\n }\n // Accumulate indexer timings into graph state\n if (scopeAgentTimings.length > 0) {\n return {\n targetNetworks,\n indexRelevancyScores,\n agentTimings: scopeAgentTimings,\n trace: [{\n node: \"scope\",\n detail: `Searching ${targetNetworks.length} index(es): ${targetNetworks.map(i => `${i.title} (${i.memberCount})`).join(', ')}`,\n data: { totalMembers: targetNetworks.reduce((sum, i) => sum + i.memberCount, 0) },\n }],\n };\n }\n } catch (err) {\n logger.warn('[Graph:Scope] Failed to score query against indexes', { error: err });\n }\n }\n\n const totalMembers = targetNetworks.reduce((sum, i) => sum + i.memberCount, 0);\n return {\n targetNetworks,\n indexRelevancyScores,\n trace: [{\n node: \"scope\",\n detail: `Searching ${targetNetworks.length} index(es): ${targetNetworks.map(i => `${i.title} (${i.memberCount})`).join(', ')}`,\n data: { totalMembers },\n }],\n };\n } catch (error) {\n const errMsg = error instanceof Error ? error.message : String(error);\n logger.error('[Graph:Scope] Failed', { error });\n return {\n targetNetworks: [],\n error: 'Failed to determine search scope.',\n trace: [{\n node: \"scope_fatal\",\n detail: `Scope failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n });\n },\n (result) => {\n const r = result as Record<string, unknown>;\n if (r?.error) return `error: ${r.error}`;\n const indexes = r?.targetNetworks as unknown[];\n return indexes ? `${indexes.length} index(es) in scope` : undefined;\n },\n );\n\n /**\n * Node 2: Resolve\n * Resolves trigger intent from triggerIntentId or searchQuery vs indexedIntents;\n * sets discoverySource, resolvedTriggerIntentId, resolvedIntentInIndex for routing (path A/B/C).\n */\n const resolveNode = withNodeTrace(\n \"opportunity-resolve\",\n async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.resolve\", async () => {\n logger.verbose('[Graph:Resolve] Resolving intent and index membership', {\n triggerIntentId: state.triggerIntentId,\n hasSearchQuery: !!state.searchQuery,\n indexedIntentsCount: state.indexedIntents.length,\n });\n\n const targetIndexIds = state.targetNetworks.map((t) => t.networkId);\n\n try {\n let resolvedIntentId: Id<'intents'> | undefined;\n if (state.triggerIntentId) {\n const inNetwork = await this.database.getNetworkIdsForIntent(state.triggerIntentId);\n const inTarget = inNetwork.some((id) => targetIndexIds.includes(id as Id<'networks'>));\n resolvedIntentId = state.triggerIntentId;\n const resolvedIntentInIndex = inTarget;\n const discoverySource = resolvedIntentInIndex ? ('intent' as const) : ('profile' as const);\n return {\n resolvedTriggerIntentId: resolvedIntentId,\n resolvedIntentInIndex,\n discoverySource,\n };\n }\n\n if (state.searchQuery?.trim() && state.indexedIntents.length > 0) {\n const q = state.searchQuery.trim().toLowerCase();\n const matched = state.indexedIntents.find((i) => i.payload?.toLowerCase().includes(q));\n if (matched) {\n resolvedIntentId = matched.intentId;\n const inNetwork = await this.database.getNetworkIdsForIntent(matched.intentId);\n const resolvedIntentInIndex = inNetwork.some((id) => targetIndexIds.includes(id as Id<'networks'>));\n const discoverySource = resolvedIntentInIndex ? ('intent' as const) : ('profile' as const);\n return {\n resolvedTriggerIntentId: resolvedIntentId,\n resolvedIntentInIndex,\n discoverySource,\n };\n }\n logger.warn('[Graph:Resolve] No intent matched search query; leaving resolvedIntentId unset', {\n searchQuery: state.searchQuery,\n indexedIntentsCount: state.indexedIntents.length,\n });\n }\n\n return {\n resolvedTriggerIntentId: undefined,\n resolvedIntentInIndex: false,\n discoverySource: 'profile' as const,\n };\n } catch (err) {\n const errMsg = err instanceof Error ? err.message : String(err);\n logger.error('[Graph:Resolve] Failed', {\n triggerIntentId: state.triggerIntentId,\n searchQuery: state.searchQuery,\n error: err,\n });\n return {\n resolvedTriggerIntentId: undefined,\n resolvedIntentInIndex: false,\n discoverySource: 'profile' as const,\n error: errMsg || 'Resolve failed',\n trace: [{\n node: \"resolve_fatal\",\n detail: `Resolve failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n });\n },\n (result) => {\n const r = result as Record<string, unknown>;\n if (r?.error) return `error: ${r.error}`;\n return r?.discoverySource ? `source: ${r.discoverySource}` : undefined;\n },\n );\n\n /**\n * Node 3: Discovery\n * Generates HyDE embeddings and performs semantic search.\n */\n const discoveryNode = withNodeTrace(\n \"opportunity-discovery\",\n async (state: typeof OpportunityGraphState.State) => {\n const self = this;\n return timed(\"OpportunityGraph.discovery\", async () => {\n const startTime = Date.now();\n const discoveryUserId = state.onBehalfOfUserId ?? state.userId;\n\n /** Filter candidates to targetUserId when set (direct-connection mode). */\n const filterByTarget = (candidates: CandidateMatch[]): CandidateMatch[] => {\n if (!state.targetUserId) return candidates;\n const filtered = candidates.filter(c => c.candidateUserId === state.targetUserId);\n logger.verbose('[Graph:Discovery] targetUserId filter applied', {\n targetUserId: state.targetUserId,\n before: candidates.length,\n after: filtered.length,\n });\n return filtered;\n };\n\n // Shared variable to capture lens input data from runQueryHydeDiscovery or intent path\n let discoveryLensInput: { profileContext: string | undefined; model: string } | undefined;\n // Shared variable to capture HyDE output (lenses + documents) for trace entries\n let discoveryHydeOutput: { lenses: Array<{ label: string; corpus: string }>; hydeDocuments: Record<string, { hydeText?: string }> } | undefined;\n\n logger.verbose('[Graph:Discovery] Starting semantic search', {\n targetIndexesCount: state.targetNetworks.length,\n discoverySource: state.discoverySource,\n searchQueryPreview: state.searchQuery?.trim().slice(0, 60) ?? '(none)',\n });\n\n try {\n if (state.targetNetworks.length === 0) {\n logger.warn('[Graph:Discovery] No target indexes for search');\n return { candidates: [] };\n }\n\n // ── Direct-connection fast path ──\n // When targetUserId is set (user @-mentioned someone), bypass vector search\n // and construct candidates directly from shared indexes.\n if (state.targetUserId) {\n if (state.targetUserId === discoveryUserId) {\n logger.warn('[Graph:Discovery] Direct-connection target matches discoverer; skipping self-match', {\n targetUserId: state.targetUserId,\n });\n return {\n candidates: [],\n trace: [{\n node: \"discovery\",\n detail: \"Direct connection skipped: target user is discoverer\",\n data: { targetUserId: state.targetUserId },\n }],\n };\n }\n logger.verbose('[Graph:Discovery] Direct-connection mode — bypassing vector search', {\n targetUserId: state.targetUserId,\n });\n const targetMemberships = await this.database.getNetworkMemberships(state.targetUserId);\n const targetUserIndexIds = targetMemberships.map(m => m.networkId);\n const sharedIndexIds = state.targetNetworks\n .filter(ti => targetUserIndexIds.includes(ti.networkId))\n .map(ti => ti.networkId);\n\n if (sharedIndexIds.length === 0) {\n logger.warn('[Graph:Discovery] Target user shares no indexes with discoverer', {\n targetUserId: state.targetUserId,\n discovererIndexes: state.targetNetworks.map(ti => ti.networkId),\n });\n return {\n candidates: [],\n trace: [{\n node: \"discovery\",\n detail: `Direct connection: target user shares no indexes`,\n data: { targetUserId: state.targetUserId },\n }],\n };\n }\n\n // Fetch target user's active intents to build intent-level candidates\n const targetIntents = await this.database.getActiveIntents(state.targetUserId);\n const directCandidates: CandidateMatch[] = [];\n\n if (targetIntents.length > 0) {\n // Build one candidate per intent per shared index it belongs to\n for (const intent of targetIntents) {\n const intentNetworkIds = await this.database.getNetworkIdsForIntent(intent.id);\n const overlapping = sharedIndexIds.filter(id => intentNetworkIds.includes(id));\n for (const networkId of overlapping) {\n directCandidates.push({\n candidateUserId: state.targetUserId,\n candidateIntentId: intent.id as Id<'intents'>,\n networkId,\n similarity: 1.0,\n lens: 'explicit_mention',\n candidatePayload: intent.payload,\n candidateSummary: intent.summary ?? undefined,\n discoverySource: 'query',\n });\n }\n }\n }\n\n // Always add a profile-level candidate (so evaluation runs even without intents)\n if (directCandidates.length === 0) {\n directCandidates.push({\n candidateUserId: state.targetUserId,\n candidateIntentId: undefined,\n networkId: sharedIndexIds[0] as Id<'networks'>,\n similarity: 1.0,\n lens: 'explicit_mention',\n candidatePayload: '',\n candidateSummary: undefined,\n discoverySource: 'query',\n });\n }\n\n logger.verbose('[Graph:Discovery] Direct candidates constructed', {\n count: directCandidates.length,\n sharedIndexes: sharedIndexIds.length,\n targetIntents: targetIntents.length,\n });\n\n return {\n candidates: directCandidates,\n trace: [{\n node: \"discovery\",\n detail: `Direct connection → ${directCandidates.length} candidate(s) from ${sharedIndexIds.length} shared index(es)`,\n data: {\n targetUserId: state.targetUserId,\n candidateCount: directCandidates.length,\n sharedIndexes: sharedIndexIds.length,\n durationMs: Date.now() - startTime,\n },\n }],\n };\n }\n\n // Search limits - fixed values for candidate retrieval\n // (The options.limit controls final output, not search pool)\n const limitPerStrategy = 30;\n const perIndexLimit = 80;\n // Similarity threshold for recall (0.30 = 30% similarity)\n const minScore = 0.3;\n\n if (state.discoverySource === 'profile') {\n // Profile-context discovery: HyDE (when search query exists) + premise-to-premise.\n if (state.searchQuery?.trim()) {\n logger.verbose('[Graph:Discovery] Profile source with searchQuery → running query HyDE + premise paths', {\n searchQuery: state.searchQuery.trim().substring(0, 80),\n });\n const queryCandidates = await runQueryHydeDiscovery();\n logger.verbose('[Graph:Discovery] Query HyDE path complete', { candidatesFound: queryCandidates.length });\n\n // Build trace entries for this path\n const traceEntries: Array<{ node: string; detail?: string; data?: Record<string, unknown> }> = [];\n\n // Lens input trace (captured from runQueryHydeDiscovery)\n if (discoveryLensInput) {\n traceEntries.push({\n node: \"lens_input\",\n detail: \"Profile context for lens inference\",\n data: discoveryLensInput,\n });\n }\n\n // Lens output and HyDE document traces (captured from runQueryHydeDiscovery)\n if (discoveryHydeOutput) {\n if (discoveryHydeOutput.lenses.length > 0) {\n traceEntries.push({\n node: \"lens_output\",\n detail: `Inferred ${discoveryHydeOutput.lenses.length} lens(es): ${discoveryHydeOutput.lenses.map(l => l.label).join(', ')}`,\n data: { lenses: discoveryHydeOutput.lenses, model: getModelName(\"lensInferrer\") },\n });\n }\n for (const [lens, doc] of Object.entries(discoveryHydeOutput.hydeDocuments)) {\n if (doc?.hydeText) {\n traceEntries.push({\n node: \"hyde_query\",\n detail: `[${lens}] \"${doc.hydeText.slice(0, 120)}${doc.hydeText.length > 120 ? '...' : ''}\"`,\n data: { lens, hydeTextPreview: doc.hydeText.slice(0, 300) + (doc.hydeText.length > 300 ? '...' : '') },\n });\n }\n }\n }\n\n // Compute per-lens stats from deduped candidates\n const lensStats: Record<string, { count: number; avgSimilarity: number }> = {};\n for (const c of queryCandidates) {\n const s = c.lens || 'unknown';\n if (!lensStats[s]) lensStats[s] = { count: 0, avgSimilarity: 0 };\n lensStats[s].count++;\n lensStats[s].avgSimilarity += c.similarity;\n }\n for (const s of Object.values(lensStats)) {\n s.avgSimilarity = s.count > 0 ? Math.round((s.avgSimilarity / s.count) * 1000) / 1000 : 0;\n }\n\n traceEntries.push({\n node: \"discovery\",\n detail: `HyDE search → ${queryCandidates.length} candidate(s) from query path`,\n data: {\n candidateCount: queryCandidates.length,\n byLens: lensStats,\n searchQuery: state.searchQuery?.trim().slice(0, 80),\n durationMs: Date.now() - startTime,\n model: getModelName(\"hydeGenerator\"),\n },\n });\n\n const [premiseCands, contextCands] = await Promise.all([\n runPremiseDiscovery(),\n runContextToIntentDiscovery(),\n ]);\n const withPremisesAndContext = mergeStrategyCandidates(queryCandidates, premiseCands, contextCands);\n if (premiseCands.length > 0) {\n traceEntries.push({ node: \"strategy\", detail: `premise-to-premise → ${premiseCands.length} candidate(s)` });\n }\n if (contextCands.length > 0) {\n traceEntries.push({ node: \"strategy\", detail: `context-to-intent → ${contextCands.length} candidate(s)` });\n }\n return { candidates: filterByTarget(withPremisesAndContext), trace: traceEntries };\n }\n\n // No search query — premise-to-premise + context-to-intent discovery\n const [premiseCands, contextCands] = await Promise.all([\n runPremiseDiscovery(),\n runContextToIntentDiscovery(),\n ]);\n if (premiseCands.length > 0 || contextCands.length > 0) {\n const merged = mergeStrategyCandidates(premiseCands, contextCands);\n const traceEntries: Array<{ node: string; detail?: string; data?: Record<string, unknown> }> = [];\n if (premiseCands.length > 0) {\n traceEntries.push({ node: \"strategy\", detail: `premise-to-premise → ${premiseCands.length} candidate(s)` });\n }\n if (contextCands.length > 0) {\n traceEntries.push({ node: \"strategy\", detail: `context-to-intent → ${contextCands.length} candidate(s)` });\n }\n traceEntries.push({\n node: \"discovery\",\n detail: `${[premiseCands.length > 0 && 'premise-to-premise', contextCands.length > 0 && 'context-to-intent'].filter(Boolean).length} strategies → ${premiseCands.length + contextCands.length} raw, ${merged.length} after dedup`,\n });\n return { candidates: filterByTarget(merged), trace: traceEntries };\n }\n return { candidates: [] };\n }\n\n async function runQueryHydeDiscovery(): Promise<CandidateMatch[]> {\n const searchText = state.searchQuery?.trim() ?? '';\n if (!searchText) return [];\n logger.verbose('[Graph:Discovery] runQueryHydeDiscovery start', { searchText: searchText.slice(0, 80) });\n const discovererContext = buildDiscovererContext(state.sourceProfile, state.indexedIntents);\n discoveryLensInput = {\n profileContext: discovererContext,\n model: getModelName(\"lensInferrer\"),\n };\n const hydeResult = await self.hydeGenerator.invoke({\n sourceType: 'query',\n sourceText: searchText,\n forceRegenerate: false,\n profileContext: discovererContext,\n });\n const hydeEmbeddings = hydeResult.hydeEmbeddings as Record<string, number[]>;\n const lenses = hydeResult.lenses ?? [];\n discoveryHydeOutput = {\n lenses: lenses as Array<{ label: string; corpus: string }>,\n hydeDocuments: (hydeResult.hydeDocuments ?? {}) as Record<string, { hydeText?: string }>,\n };\n const embeddingKeys = hydeEmbeddings ? Object.keys(hydeEmbeddings) : [];\n logger.verbose('[Graph:Discovery] HyDE generator result', {\n lensCount: embeddingKeys.length,\n lenses: embeddingKeys,\n });\n if (!hydeEmbeddings || Object.keys(hydeEmbeddings).length === 0) return [];\n const lensMap = new Map(lenses.map(l => [l.label, l]));\n const lensEmbeddings: LensEmbedding[] = [];\n for (const [label, emb] of Object.entries(hydeEmbeddings)) {\n if (emb?.length) {\n const lens = lensMap.get(label);\n lensEmbeddings.push({ lens: label, corpus: lens?.corpus ?? 'profiles', embedding: emb });\n }\n }\n const all: CandidateMatch[] = [];\n await Promise.all(\n state.targetNetworks.map(async (targetIndex) => {\n const results = await self.embedder.searchWithHydeEmbeddings(lensEmbeddings, {\n indexScope: [targetIndex.networkId],\n excludeUserId: discoveryUserId,\n limitPerStrategy,\n limit: perIndexLimit,\n minScore,\n });\n for (const r of results.filter((x) => x.type === 'intent')) {\n all.push({\n candidateUserId: r.userId as Id<'users'>,\n candidateIntentId: r.id as Id<'intents'>,\n networkId: targetIndex.networkId,\n similarity: r.score,\n lens: r.matchedVia,\n candidatePayload: '',\n candidateSummary: undefined,\n discoverySource: 'query' as const,\n });\n }\n for (const r of results.filter((x) => x.type === 'premise')) {\n all.push({\n candidateUserId: r.userId as Id<'users'>,\n candidatePremiseId: r.id as Id<'premises'>,\n networkId: targetIndex.networkId,\n similarity: r.score,\n lens: r.matchedVia,\n candidatePayload: '',\n candidateSummary: undefined,\n discoverySource: 'query' as const,\n });\n }\n })\n );\n const intentCount = all.filter((c) => c.candidateIntentId).length;\n const premiseCount = all.filter((c) => c.candidatePremiseId).length;\n logger.verbose('[Graph:Discovery] searchWithHydeEmbeddings raw results', {\n total: all.length,\n fromIntent: intentCount,\n fromPremise: premiseCount,\n });\n const byKey = new Map<string, CandidateMatch>();\n for (const c of all) {\n // Dedup by candidateUserId + entity (intent or premise), NOT by indexId.\n // Including indexId caused the same user to appear once per index they belong to.\n const entityKey = c.candidateIntentId ? `intent:${c.candidateIntentId}` : `premise:${c.candidatePremiseId}`;\n const key = `${c.candidateUserId}:${entityKey}`;\n if (!byKey.has(key) || c.similarity > (byKey.get(key)?.similarity ?? 0)) {\n byKey.set(key, c);\n }\n }\n return Array.from(byKey.values());\n }\n\n /**\n * Premise-to-premise discovery (path D).\n * Searches for other users' premises similar to the discoverer's premises,\n * scoped to target networks. Additive — merges into existing candidates.\n */\n async function runPremiseDiscovery(): Promise<CandidateMatch[]> {\n if (!state.sourcePremises?.length) return [];\n const targetNetworkIds = state.targetNetworks.map(t => t.networkId);\n if (targetNetworkIds.length === 0) return [];\n\n logger.verbose('[Graph:Discovery] runPremiseDiscovery start', {\n premiseCount: state.sourcePremises.length,\n targetNetworks: targetNetworkIds.length,\n });\n\n const searchResults = await Promise.all(\n state.sourcePremises.map(sp =>\n self.database.searchPremisesBySimilarity({\n embedding: sp.embedding,\n networkIds: targetNetworkIds,\n excludeUserId: discoveryUserId,\n limit: 20,\n })\n )\n );\n\n const premiseCandidates: CandidateMatch[] = [];\n for (const results of searchResults) {\n for (const r of results) {\n premiseCandidates.push({\n candidateUserId: r.userId as Id<'users'>,\n candidatePremiseId: r.premiseId as Id<'premises'>,\n networkId: r.networkId as Id<'networks'>,\n similarity: typeof r.similarity === 'number' ? r.similarity : parseFloat(String(r.similarity)),\n lens: 'premise_match',\n candidatePayload: r.assertionText ?? '',\n discoverySource: 'premise-similarity',\n });\n }\n }\n\n // Dedup by userId + premiseId + networkId (a premise can appear in multiple networks)\n const byKey = new Map<string, CandidateMatch>();\n for (const c of premiseCandidates) {\n const key = `${c.candidateUserId}:${c.candidatePremiseId ?? 'none'}:${c.networkId}`;\n if (!byKey.has(key) || c.similarity > (byKey.get(key)?.similarity ?? 0)) {\n byKey.set(key, c);\n }\n }\n const deduped = Array.from(byKey.values());\n logger.verbose('[Graph:Discovery] runPremiseDiscovery complete', {\n rawCount: premiseCandidates.length,\n dedupedCount: deduped.length,\n });\n return deduped;\n }\n\n /**\n * Context-to-intent discovery: searches intents using context HyDE embeddings.\n * When HyDE documents exist for a context, uses optimised hypothetical-document\n * embeddings via searchWithHydeEmbeddings. Falls back to raw context embedding\n * via searchIntentsByContextEmbedding when no HyDE docs are available.\n */\n async function runContextToIntentDiscovery(): Promise<CandidateMatch[]> {\n if (!state.sourceContexts?.length) return [];\n const contextToIntentEnabled = process.env.DISCOVERY_CONTEXT_TO_INTENT !== '0';\n if (!contextToIntentEnabled) return [];\n\n const targetNetworkIds = state.targetNetworks.map(t => t.networkId);\n if (targetNetworkIds.length === 0) return [];\n\n logger.verbose('[Graph:Discovery] runContextToIntentDiscovery start', {\n contextCount: state.sourceContexts.length,\n targetNetworks: targetNetworkIds.length,\n });\n\n const contextCandidates: CandidateMatch[] = [];\n\n for (const ctx of state.sourceContexts.filter(c => targetNetworkIds.includes(c.networkId))) {\n // Attempt HyDE-enhanced search first\n const hydeDocs = await self.database.getHydeDocumentsForSource('context', ctx.contextId);\n const lensEmbeddings: LensEmbedding[] = hydeDocs\n .filter(d => d.hydeEmbedding?.length > 0)\n .map(d => ({\n lens: d.strategy,\n corpus: (d.targetCorpus === 'intents' ? 'intents' : d.targetCorpus === 'premises' ? 'premises' : 'intents') as 'intents' | 'premises' | 'profiles',\n embedding: d.hydeEmbedding,\n }));\n\n if (lensEmbeddings.length > 0) {\n // HyDE-enhanced search: same path as query HyDE, scoped to this context's network\n const results = await self.embedder.searchWithHydeEmbeddings(lensEmbeddings, {\n indexScope: [ctx.networkId],\n excludeUserId: discoveryUserId,\n limitPerStrategy: limitPerStrategy,\n limit: 20,\n minScore,\n });\n for (const r of results.filter(r => r.type === 'intent')) {\n contextCandidates.push({\n candidateUserId: r.userId as Id<'users'>,\n candidateIntentId: r.id as Id<'intents'>,\n networkId: ctx.networkId,\n similarity: r.score,\n lens: r.matchedVia,\n candidatePayload: '',\n candidateSummary: undefined,\n discoverySource: 'context-to-intent',\n });\n }\n } else {\n // Fallback: raw context embedding search (no HyDE docs yet)\n const results = await self.database.searchIntentsByContextEmbedding({\n embedding: ctx.embedding,\n networkIds: [ctx.networkId],\n excludeUserId: discoveryUserId,\n limit: 20,\n minScore: minScore,\n });\n for (const r of results) {\n contextCandidates.push({\n candidateUserId: r.userId as Id<'users'>,\n candidateIntentId: r.intentId as Id<'intents'>,\n networkId: r.networkId as Id<'networks'>,\n similarity: typeof r.similarity === 'number' ? r.similarity : parseFloat(String(r.similarity)),\n lens: 'context_match',\n candidatePayload: r.payload ?? '',\n candidateSummary: r.summary ?? undefined,\n discoverySource: 'context-to-intent',\n });\n }\n }\n }\n\n const byKey = new Map<string, CandidateMatch>();\n for (const c of contextCandidates) {\n const key = `${c.candidateUserId}:${c.candidateIntentId ?? 'none'}:${c.networkId}`;\n if (!byKey.has(key) || c.similarity > (byKey.get(key)?.similarity ?? 0)) {\n byKey.set(key, c);\n }\n }\n const deduped = Array.from(byKey.values());\n logger.verbose('[Graph:Discovery] runContextToIntentDiscovery complete', {\n rawCount: contextCandidates.length,\n dedupedCount: deduped.length,\n });\n return deduped;\n }\n\n /**\n * Merge candidates from multiple strategies. Deduplicates by userId + networkId + entityId,\n * keeps the highest similarity, tracks which strategies found each candidate,\n * and applies a multi-strategy boost (+0.05 per additional strategy, boost capped at 0.15,\n * final similarity capped at 1.0).\n */\n function mergeStrategyCandidates(...groups: CandidateMatch[][]): CandidateMatch[] {\n const merged = new Map<string, CandidateMatch & { _strategies: Set<string> }>();\n for (const group of groups) {\n for (const c of group) {\n const entityId = c.candidateIntentId ?? c.candidatePremiseId ?? 'none';\n const key = `${c.candidateUserId}:${c.networkId}:${entityId}`;\n const existing = merged.get(key);\n if (!existing) {\n merged.set(key, { ...c, _strategies: new Set([c.discoverySource ?? 'unknown']) });\n } else {\n existing._strategies.add(c.discoverySource ?? 'unknown');\n if (c.similarity > existing.similarity) {\n Object.assign(existing, c);\n }\n }\n }\n }\n return Array.from(merged.values()).map(({ _strategies, ...c }) => {\n const boost = Math.min((_strategies.size - 1) * 0.05, 0.15);\n return {\n ...c,\n similarity: Math.min(c.similarity + boost, 1.0),\n matchedStrategies: Array.from(_strategies),\n };\n });\n }\n\n const resolvedIntent = state.resolvedTriggerIntentId\n ? state.indexedIntents.find((i) => i.intentId === state.resolvedTriggerIntentId)\n : state.indexedIntents[0];\n const searchText = state.searchQuery ?? resolvedIntent?.payload ?? '';\n if (!searchText) {\n logger.warn('[Graph:Discovery] No search text available for intent path');\n const [premiseCands, contextCands] = await Promise.all([\n runPremiseDiscovery(),\n runContextToIntentDiscovery(),\n ]);\n const merged = mergeStrategyCandidates(premiseCands, contextCands);\n if (merged.length > 0) {\n return {\n candidates: filterByTarget(merged),\n trace: [{ node: \"discovery\", detail: `No search text; premise → ${premiseCands.length}, context → ${contextCands.length}, merged → ${merged.length} candidate(s)` }],\n };\n }\n return { candidates: [] };\n }\n\n const discovererContext = buildDiscovererContext(state.sourceProfile, state.indexedIntents);\n discoveryLensInput = {\n profileContext: discovererContext,\n model: getModelName(\"lensInferrer\"),\n };\n const hydeResult = await this.hydeGenerator.invoke({\n sourceType: 'query',\n sourceText: searchText,\n forceRegenerate: false,\n profileContext: discovererContext,\n });\n const hydeEmbeddings = hydeResult.hydeEmbeddings as Record<string, number[]>;\n const lenses = hydeResult.lenses ?? [];\n if (!hydeEmbeddings || Object.keys(hydeEmbeddings).length === 0) {\n const [premiseCands, contextCands] = await Promise.all([\n runPremiseDiscovery(),\n runContextToIntentDiscovery(),\n ]);\n const merged = mergeStrategyCandidates(premiseCands, contextCands);\n if (merged.length > 0) {\n return {\n hydeEmbeddings: {} as Record<string, number[]>,\n candidates: filterByTarget(merged),\n trace: [{ node: \"discovery\", detail: `No HyDE embeddings; premise → ${premiseCands.length}, context → ${contextCands.length}, merged → ${merged.length} candidate(s)` }],\n };\n }\n return { hydeEmbeddings: {} as Record<string, number[]>, candidates: [] };\n }\n const lensMap = new Map(lenses.map(l => [l.label, l]));\n const lensEmbeddings: LensEmbedding[] = [];\n for (const [label, emb] of Object.entries(hydeEmbeddings)) {\n if (emb?.length) {\n const lens = lensMap.get(label);\n lensEmbeddings.push({ lens: label, corpus: lens?.corpus ?? 'profiles', embedding: emb });\n }\n }\n const allCandidates: CandidateMatch[] = [];\n await Promise.all(\n state.targetNetworks.map(async (targetIndex) => {\n const results = await this.embedder.searchWithHydeEmbeddings(lensEmbeddings, {\n indexScope: [targetIndex.networkId],\n excludeUserId: discoveryUserId,\n limitPerStrategy,\n limit: perIndexLimit,\n minScore,\n });\n for (const result of results.filter((r) => r.type === 'intent')) {\n allCandidates.push({\n candidateUserId: result.userId as Id<'users'>,\n candidateIntentId: result.id as Id<'intents'>,\n networkId: targetIndex.networkId,\n similarity: result.score,\n lens: result.matchedVia,\n candidatePayload: '',\n candidateSummary: undefined,\n discoverySource: 'query' as const,\n });\n }\n for (const result of results.filter((r) => r.type === 'premise')) {\n allCandidates.push({\n candidateUserId: result.userId as Id<'users'>,\n candidatePremiseId: result.id as Id<'premises'>,\n networkId: targetIndex.networkId,\n similarity: result.score,\n lens: result.matchedVia,\n candidatePayload: '',\n candidateSummary: undefined,\n discoverySource: 'query' as const,\n });\n }\n })\n );\n const byUserAndIndex = new Map<string, CandidateMatch>();\n for (const c of allCandidates) {\n const entityKey = c.candidateIntentId ? `intent:${c.candidateIntentId}` : `premise:${c.candidatePremiseId}`;\n const key = `${c.candidateUserId}:${c.networkId}:${entityKey}`;\n if (!byUserAndIndex.has(key) || c.similarity > (byUserAndIndex.get(key)?.similarity ?? 0)) {\n byUserAndIndex.set(key, c);\n }\n }\n const candidates = Array.from(byUserAndIndex.values());\n logger.verbose('[Graph:Discovery] Intent-path discovery complete', { candidatesFound: candidates.length });\n const usedLenses = Object.keys(hydeEmbeddings);\n\n // Build trace with individual candidate similarity scores\n const traceEntries: Array<{ node: string; detail?: string; data?: Record<string, unknown> }> = [];\n\n // Lens input trace\n if (discoveryLensInput) {\n traceEntries.push({\n node: \"lens_input\",\n detail: \"Profile context for lens inference\",\n data: discoveryLensInput,\n });\n }\n\n // Lens output trace\n if (lenses.length > 0) {\n traceEntries.push({\n node: \"lens_output\",\n detail: `Inferred ${lenses.length} lens(es): ${lenses.map(l => l.label).join(', ')}`,\n data: { lenses, model: getModelName(\"lensInferrer\") },\n });\n }\n\n // Compute per-lens stats from deduped candidates\n const lensStats: Record<string, { count: number; avgSimilarity: number }> = {};\n for (const c of candidates) {\n const s = c.lens || 'unknown';\n if (!lensStats[s]) lensStats[s] = { count: 0, avgSimilarity: 0 };\n lensStats[s].count++;\n lensStats[s].avgSimilarity += c.similarity;\n }\n for (const s of Object.values(lensStats)) {\n s.avgSimilarity = s.count > 0 ? Math.round((s.avgSimilarity / s.count) * 1000) / 1000 : 0;\n }\n\n traceEntries.push({\n node: \"discovery\",\n detail: `Query: \"${searchText.slice(0, 50)}${searchText.length > 50 ? '...' : ''}\" → ${candidates.length} candidate(s)`,\n data: {\n query: searchText.slice(0, 100),\n lenses: usedLenses,\n candidateCount: candidates.length,\n byLens: lensStats,\n durationMs: Date.now() - startTime,\n model: getModelName(\"hydeGenerator\"),\n },\n });\n\n // Show the HyDE-generated hypothetical documents used for search\n const hydeDocuments = hydeResult.hydeDocuments;\n if (hydeDocuments) {\n for (const [lens, doc] of Object.entries(hydeDocuments)) {\n if (doc?.hydeText) {\n traceEntries.push({\n node: \"hyde_query\",\n detail: `[${lens}] \"${doc.hydeText.slice(0, 120)}${doc.hydeText.length > 120 ? '...' : ''}\"`,\n data: {\n lens,\n hydeTextPreview: doc.hydeText.slice(0, 160) + (doc.hydeText.length > 160 ? '...' : ''),\n },\n });\n }\n }\n }\n\n // Add top candidates with similarity scores\n const sortedCandidates = [...candidates].sort((a, b) => b.similarity - a.similarity).slice(0, 10);\n for (const c of sortedCandidates) {\n traceEntries.push({\n node: \"match\",\n detail: `Similarity ${Math.round(c.similarity * 100)}% via ${c.lens}`,\n data: {\n userId: c.candidateUserId,\n similarity: Math.round(c.similarity * 100),\n lens: c.lens,\n hasIntent: !!c.candidateIntentId,\n },\n });\n }\n\n const [premiseCands, contextCands] = await Promise.all([\n runPremiseDiscovery(),\n runContextToIntentDiscovery(),\n ]);\n const allStrategies = mergeStrategyCandidates(candidates, premiseCands, contextCands);\n if (premiseCands.length > 0 || contextCands.length > 0) {\n traceEntries.push({\n node: \"discovery\",\n detail: `+ Premise → ${premiseCands.length}, Context → ${contextCands.length}, merged to ${allStrategies.length} candidate(s)`,\n });\n }\n return {\n hydeEmbeddings: hydeEmbeddings as Record<string, number[]>,\n candidates: filterByTarget(allStrategies),\n trace: traceEntries,\n };\n } catch (error) {\n const errMsg = error instanceof Error ? error.message : String(error);\n logger.error('[Graph:Discovery] Failed', { error });\n return {\n candidates: [],\n error: 'Failed to search for candidates.',\n trace: [{\n node: \"discovery_fatal\",\n detail: `Discovery failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n });\n },\n (result) => {\n const r = result as Record<string, unknown>;\n if (r?.error) return `error: ${r.error}`;\n const candidates = r?.candidates as unknown[];\n return candidates ? `Found ${candidates.length} candidate(s)` : undefined;\n },\n );\n\n /**\n * Node 3: Evaluation (Entity bundle)\n * Builds entity bundle from source + candidates, invokes entity-bundle evaluator, maps to EvaluatedOpportunity with networkId from entities.\n */\n const evaluationNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.evaluation\", async () => {\n const startTime = Date.now();\n logger.verbose('[Graph:Evaluation] Starting evaluation', {\n candidatesCount: state.candidates.length,\n });\n\n if (state.candidates.length === 0) {\n logger.verbose('[Graph:Evaluation] No candidates to evaluate');\n return { evaluatedOpportunities: [], agentTimings: [] };\n }\n\n // Batch candidates to avoid timeout - evaluate top 25 per batch, store remaining\n const EVAL_BATCH_SIZE = 25;\n const sortedCandidates = [...state.candidates]\n .sort((a, b) => b.similarity - a.similarity);\n\n // Dedup by userId — when same similarity, prefer index with highest relevancyScore\n const bestByUser = new Map<string, CandidateMatch>();\n for (const c of sortedCandidates) {\n const existing = bestByUser.get(c.candidateUserId);\n if (!existing) {\n bestByUser.set(c.candidateUserId, c);\n } else if (c.similarity > existing.similarity) {\n bestByUser.set(c.candidateUserId, c);\n } else if (c.similarity === existing.similarity) {\n // Tie-break: prefer index with higher relevancy score\n const cScore = state.indexRelevancyScores[c.networkId] ?? 0;\n const existingScore = state.indexRelevancyScores[existing.networkId] ?? 0;\n if (cScore > existingScore) {\n bestByUser.set(c.candidateUserId, c);\n }\n }\n }\n const dedupedCandidates = Array.from(bestByUser.values());\n // Re-sort by similarity descending (Map iteration order doesn't guarantee sort)\n dedupedCandidates.sort((a, b) => b.similarity - a.similarity);\n\n if (dedupedCandidates.length < sortedCandidates.length) {\n logger.info(\"[Graph:Evaluation] Deduped candidates by userId\", {\n before: sortedCandidates.length,\n after: dedupedCandidates.length,\n removed: sortedCandidates.length - dedupedCandidates.length,\n });\n }\n\n const batchToEvaluate = dedupedCandidates.slice(0, EVAL_BATCH_SIZE);\n const remaining = dedupedCandidates.slice(EVAL_BATCH_SIZE);\n\n // Early termination: if search was query-driven and no query-sourced candidates remain,\n // clear remaining to prevent pointless pagination through non-query leftovers\n const isQueryDriven = !!state.searchQuery?.trim();\n const queryRemaining = remaining.filter(\n (c) => c.discoverySource === 'query' || c.discoverySource == null,\n );\n const effectiveRemaining =\n isQueryDriven && queryRemaining.length === 0 ? [] : remaining;\n\n if (isQueryDriven && remaining.length > 0 && queryRemaining.length === 0) {\n logger.info(\n \"[Graph:Evaluation] Early termination: no query-sourced candidates remain\",\n {\n droppedCandidates: remaining.length,\n },\n );\n }\n\n if (effectiveRemaining.length > 0) {\n logger.verbose('[Graph:Evaluation] Batched candidates for evaluation', {\n evaluating: batchToEvaluate.length,\n remaining: effectiveRemaining.length,\n total: sortedCandidates.length,\n });\n }\n\n const agentTimingsAccum: DebugMetaAgent[] = [];\n\n try {\n const discoveryUserId = state.onBehalfOfUserId ?? state.userId;\n const sourceProfile = await this.database.getProfile(discoveryUserId);\n const sourceEntity: EvaluatorEntity = {\n userId: discoveryUserId,\n profile: {\n name: sourceProfile?.identity?.name,\n bio: sourceProfile?.identity?.bio,\n location: sourceProfile?.identity?.location,\n interests: sourceProfile?.attributes?.interests,\n skills: sourceProfile?.attributes?.skills,\n context: sourceProfile?.narrative?.context,\n },\n intents: state.indexedIntents.slice(0, 5).map((i) => ({\n intentId: i.intentId,\n payload: i.payload,\n summary: i.summary,\n })),\n networkId: '' as Id<'networks'>, // Placeholder — overwritten per-pairing below\n ragScore: undefined,\n matchedVia: undefined,\n };\n\n const candidateEntities: EvaluatorEntity[] = await Promise.all(\n batchToEvaluate.map(async (c) => {\n const profile = await this.database.getProfile(c.candidateUserId);\n let intentPayload = c.candidatePayload;\n let intentSummary = c.candidateSummary;\n if (c.candidateIntentId != null && (!intentPayload || intentPayload === '')) {\n const intent = await this.database.getIntent(c.candidateIntentId);\n if (intent) {\n intentPayload = intent.payload;\n intentSummary = intent.summary ?? undefined;\n }\n }\n return {\n userId: c.candidateUserId,\n profile: {\n name: profile?.identity?.name,\n bio: profile?.identity?.bio,\n location: profile?.identity?.location,\n interests: profile?.attributes?.interests,\n skills: profile?.attributes?.skills,\n context: profile?.narrative?.context,\n },\n intents:\n c.candidateIntentId != null\n ? [{ intentId: c.candidateIntentId, payload: intentPayload ?? '', summary: intentSummary }]\n : undefined,\n networkId: c.networkId,\n ragScore: c.similarity * 100,\n matchedVia: c.lens,\n };\n })\n );\n\n const userIdToIndexId = new Map<string, Id<'networks'>>();\n for (const e of candidateEntities) {\n if (!userIdToIndexId.has(e.userId)) userIdToIndexId.set(e.userId, e.networkId as Id<'networks'>);\n }\n\n // Lower default threshold to 50 for better recall\n const minScore = state.options.minScore ?? 50;\n\n const evaluator = typeof (evaluatorAgent as OpportunityEvaluator).invokeEntityBundle === 'function'\n ? (evaluatorAgent as OpportunityEvaluator)\n : new OpportunityEvaluator();\n\n const runParallel = process.env.RUN_OPPORTUNITY_EVAL_IN_PARALLEL === 'true';\n const networkContexts = await buildNetworkContexts([sourceEntity, ...candidateEntities], this.database);\n\n // Declare trace entries early so both parallel and serial paths can push error entries\n const traceEntries: Array<{ node: string; detail?: string; data?: Record<string, unknown> }> = [];\n const parallelErrors: Array<{ candidateUserId: string; candidateName: string; error: string; durationMs: number }> = [];\n\n let pairwiseOpportunities: Array<{ reasoning: string; score: number; actors: Array<{ userId: string; role: 'agent' | 'patient' | 'peer'; intentId?: string | null }> }>;\n\n if (runParallel) {\n // Experimental: one LLM call per candidate, all fired in parallel\n logger.verbose('[Graph:Evaluation] Running parallel evaluation', { candidates: candidateEntities.length });\n const parallelResults = await Promise.all(\n candidateEntities.map((candidateEntity) => {\n const input: EvaluatorInput = {\n discovererId: discoveryUserId,\n entities: [sourceEntity, candidateEntity],\n existingOpportunities: state.options.existingOpportunities,\n ...(state.searchQuery?.trim() ? { discoveryQuery: state.searchQuery.trim() } : {}),\n networkContexts,\n };\n const _evalStart = Date.now();\n const _traceEmitter = requestContext.getStore()?.traceEmitter;\n _traceEmitter?.({ type: \"agent_start\", name: \"opportunity-evaluator\" });\n const _candidateName = candidateEntity.profile?.name ?? \"Unknown\";\n return evaluator.invokeEntityBundle(input, { minScore, returnAll: true })\n .then((res) => {\n const _evalDuration = Date.now() - _evalStart;\n agentTimingsAccum.push({ name: 'opportunity.evaluator', durationMs: _evalDuration });\n const _topScore = res.length > 0 ? Math.max(...res.map(r => r.score)) : -1;\n const _summary = _topScore < 0 ? `${_candidateName}: no match` : `${_candidateName}: ${_topScore}`;\n _traceEmitter?.({ type: \"agent_end\", name: \"opportunity-evaluator\", durationMs: _evalDuration, summary: _summary });\n return res;\n })\n .catch((err) => {\n const _evalDuration = Date.now() - _evalStart;\n const _errMsg = err instanceof Error ? err.message : String(err);\n agentTimingsAccum.push({ name: 'opportunity.evaluator', durationMs: _evalDuration });\n _traceEmitter?.({ type: \"agent_end\", name: \"opportunity-evaluator\", durationMs: _evalDuration, summary: `${_candidateName}: error — ${_errMsg}` });\n logger.warn('[Graph:Evaluation] Parallel eval failed for candidate', {\n candidateUserId: candidateEntity.userId,\n error: err,\n });\n parallelErrors.push({\n candidateUserId: candidateEntity.userId,\n candidateName: _candidateName,\n error: _errMsg,\n durationMs: _evalDuration,\n });\n return [] as Array<{ reasoning: string; score: number; actors: Array<{ userId: string; role: 'agent' | 'patient' | 'peer'; intentId?: string | null }> }>;\n });\n })\n );\n // Each call is already pairwise (source + 1 candidate) — flatten directly\n pairwiseOpportunities = parallelResults.flat();\n\n // Record trace entries for candidates that failed during parallel evaluation\n if (parallelErrors.length > 0) {\n traceEntries.push({\n node: \"evaluation_errors\",\n detail: `${parallelErrors.length}/${candidateEntities.length} candidate evaluation(s) failed`,\n data: {\n failedCount: parallelErrors.length,\n totalCandidates: candidateEntities.length,\n errors: parallelErrors.map(e => ({\n candidateUserId: e.candidateUserId,\n candidateName: e.candidateName,\n error: e.error,\n durationMs: e.durationMs,\n })),\n },\n });\n }\n } else {\n // Default: single bundled LLM call with all candidates\n const entities: EvaluatorEntity[] = [sourceEntity, ...candidateEntities];\n const input: EvaluatorInput = {\n discovererId: discoveryUserId,\n entities,\n existingOpportunities: state.options.existingOpportunities,\n ...(state.searchQuery?.trim() ? { discoveryQuery: state.searchQuery.trim() } : {}),\n networkContexts,\n };\n // Get ALL scored results for tracing (returnAll: true), filter for persistence later\n const _evalStart = Date.now();\n const _traceEmitterSerial = requestContext.getStore()?.traceEmitter;\n _traceEmitterSerial?.({ type: \"agent_start\", name: \"opportunity-evaluator\" });\n let opportunitiesWithActors: EvaluatedOpportunityWithActors[];\n try {\n opportunitiesWithActors = await evaluator.invokeEntityBundle(input, { minScore, returnAll: true });\n const _evalDuration = Date.now() - _evalStart;\n agentTimingsAccum.push({ name: 'opportunity.evaluator', durationMs: _evalDuration });\n _traceEmitterSerial?.({ type: \"agent_end\", name: \"opportunity-evaluator\", durationMs: _evalDuration, summary: `Evaluated ${candidateEntities.length} candidate(s)` });\n } catch (serialErr) {\n const _evalDuration = Date.now() - _evalStart;\n const _errMsg = serialErr instanceof Error ? serialErr.message : String(serialErr);\n agentTimingsAccum.push({ name: 'opportunity.evaluator', durationMs: _evalDuration });\n _traceEmitterSerial?.({ type: \"agent_end\", name: \"opportunity-evaluator\", durationMs: _evalDuration, summary: `error — ${_errMsg}` });\n throw serialErr; // Re-throw for the outer catch to handle\n }\n\n // Split multi-actor evaluator results into pairwise (viewer + candidate).\n // Each persisted discovery opportunity should have exactly 2 actors.\n // When splitting, build per-candidate reasoning from entity data because\n // the shared reasoning typically describes only one candidate.\n pairwiseOpportunities = [];\n for (const op of opportunitiesWithActors) {\n const pairwiseSourceId = state.onBehalfOfUserId ?? state.userId;\n const nonViewerActors = op.actors.filter(a => a.userId !== pairwiseSourceId);\n if (nonViewerActors.length <= 1) {\n pairwiseOpportunities.push(op);\n } else {\n logger.warn('[Graph:Evaluation] Splitting multi-actor opportunity; LLM returned bundled actors instead of one-per-candidate', {\n actorCount: nonViewerActors.length,\n userIds: nonViewerActors.map(a => a.userId),\n });\n const viewerActor = op.actors.find(a => a.userId === pairwiseSourceId);\n for (const candidate of nonViewerActors) {\n const entity = candidateEntities.find(e => e.userId === candidate.userId);\n const candidateName = entity?.profile?.name ?? '';\n const reasoningLower = op.reasoning.toLowerCase();\n const mentionsCandidate =\n candidateName !== '' &&\n reasoningLower.includes(candidateName.toLowerCase());\n const mentionsOtherCandidate = nonViewerActors\n .filter((actor) => actor.userId !== candidate.userId)\n .map((actor) =>\n candidateEntities.find((e) => e.userId === actor.userId)?.profile?.name?.toLowerCase()\n )\n .some((name) => name != null && reasoningLower.includes(name));\n let reasoning: string;\n if (mentionsCandidate && !mentionsOtherCandidate) {\n reasoning = op.reasoning;\n } else if (entity?.profile) {\n const p = entity.profile;\n const parts = [p.name, p.bio].filter(Boolean);\n if (p.skills?.length) parts.push(`Skills: ${p.skills.join(', ')}`);\n if (p.interests?.length) parts.push(`Interests: ${p.interests.join(', ')}`);\n reasoning = parts.join('. ') || op.reasoning;\n } else {\n reasoning = op.reasoning;\n }\n pairwiseOpportunities.push({\n reasoning,\n score: op.score,\n actors: [\n viewerActor ?? { userId: pairwiseSourceId, role: 'patient' as const, intentId: null },\n candidate,\n ],\n });\n }\n }\n }\n }\n\n const evaluatedOpportunities: EvaluatedOpportunity[] = pairwiseOpportunities.map((op) => ({\n reasoning: op.reasoning,\n score: op.score,\n actors: op.actors.map((a) => {\n const isSource = a.userId === discoveryUserId;\n if (isSource) {\n // Source actor inherits the counterpart's networkId (shared match context)\n const counterpart = op.actors.find((other) => other.userId !== a.userId);\n const counterpartIndexId = counterpart\n ? userIdToIndexId.get(counterpart.userId) ?? (candidateEntities.find((e) => e.userId === counterpart.userId)?.networkId as Id<'networks'>)\n : undefined;\n return {\n userId: a.userId as Id<'users'>,\n role: a.role,\n intentId: a.intentId as Id<'intents'> | undefined,\n networkId: counterpartIndexId ?? userIdToIndexId.get(a.userId) ?? ('' as Id<'networks'>),\n };\n }\n return {\n userId: a.userId as Id<'users'>,\n role: a.role,\n intentId: a.intentId as Id<'intents'> | undefined,\n networkId: userIdToIndexId.get(a.userId) ?? (candidateEntities.find((e) => e.userId === a.userId)?.networkId as Id<'networks'>),\n };\n }),\n }));\n\n const passed = evaluatedOpportunities.filter((o) => o.score >= minScore);\n logger.verbose('[Graph:Evaluation] Evaluation complete', {\n evaluatedCount: evaluatedOpportunities.length,\n passed: passed.length,\n });\n\n // Build detailed trace entries for each evaluated candidate\n\n // Threshold filter trace: how many candidates in this batch were above/below similarity threshold\n const aboveThreshold = batchToEvaluate.filter(c => c.similarity >= 0.40).length;\n const belowThreshold = batchToEvaluate.length - aboveThreshold;\n traceEntries.push({\n node: \"threshold_filter\",\n detail: `${aboveThreshold} above 0.40, ${belowThreshold} below (batch of ${batchToEvaluate.length})`,\n data: {\n aboveThreshold,\n belowThreshold,\n minScore: 0.40,\n batchSize: batchToEvaluate.length,\n },\n });\n\n // Create a map of evaluated candidates by userId for quick lookup.\n // Use discoveryUserId (which accounts for onBehalfOfUserId in introducer flow)\n // rather than state.userId (which is the introducer, not present in pairwise actors).\n const evaluatedByUserId = new Map<string, { score: number; reasoning: string }>();\n for (const opp of evaluatedOpportunities) {\n const candidateActor = opp.actors.find(a => a.userId !== discoveryUserId);\n if (candidateActor) {\n evaluatedByUserId.set(candidateActor.userId, { score: opp.score, reasoning: opp.reasoning });\n }\n }\n\n // Summary entry\n traceEntries.push({\n node: \"evaluation\",\n detail: `Evaluated ${candidateEntities.length} candidate(s) → ${passed.length} passed (min score ${minScore})`,\n data: {\n inputCandidates: batchToEvaluate.length,\n returnedFromEvaluator: evaluatedOpportunities.length,\n passedCount: passed.length,\n minScore,\n remaining: effectiveRemaining.length,\n batchNumber: 1,\n durationMs: Date.now() - startTime,\n model: getModelName(\"opportunityEvaluator\"),\n },\n });\n\n // Individual candidate entries - show ALL candidates that went to evaluator\n for (const entity of candidateEntities) {\n const candidateName = entity.profile?.name || entity.userId.slice(0, 8);\n const candidateBio = entity.profile?.bio;\n const evaluated = evaluatedByUserId.get(entity.userId);\n const score = evaluated?.score;\n const reasoning = evaluated?.reasoning;\n const didPass = score !== undefined && score >= minScore;\n const status = score !== undefined \n ? (didPass ? '✓ passed' : `✗ score ${score}`) \n : '✗ not scored';\n \n traceEntries.push({\n node: \"candidate\",\n detail: `${candidateName}: ${status}`,\n data: {\n userId: entity.userId,\n name: candidateName,\n bio: candidateBio,\n score: score,\n passed: didPass,\n reasoning: reasoning || 'No evaluation returned for this candidate',\n matchedVia: entity.matchedVia,\n ragScore: entity.ragScore,\n model: getModelName(\"opportunityEvaluator\"),\n intents: entity.intents?.map((i: { intentId?: string; payload?: string; summary?: string }) => ({\n intentId: i.intentId,\n summary: (i.summary || i.payload || '').slice(0, 100),\n })),\n profile: entity.profile ? {\n name: entity.profile.name,\n location: entity.profile.location,\n } : undefined,\n },\n });\n }\n\n // Only pass opportunities that passed the threshold to downstream nodes\n const passedOpportunities = evaluatedOpportunities.filter((o) => o.score >= minScore);\n\n return {\n evaluatedOpportunities: passedOpportunities,\n remainingCandidates: effectiveRemaining,\n trace: traceEntries,\n agentTimings: agentTimingsAccum,\n };\n } catch (error) {\n const errMsg = error instanceof Error ? error.message : String(error);\n logger.error('[Graph:Evaluation] Failed', { error });\n return {\n evaluatedOpportunities: [],\n error: 'Failed to evaluate candidates.',\n trace: [{\n node: \"evaluation_fatal\",\n detail: `Evaluation failed: ${errMsg}`,\n data: {\n error: errMsg,\n candidateCount: state.candidates?.length ?? 0,\n durationMs: Date.now() - startTime,\n },\n }],\n agentTimings: agentTimingsAccum,\n };\n }\n });\n };\n\n /**\n * Node 3b: Negotiate (post-persist)\n * Runs bilateral negotiation per persisted opportunity, passing opportunityId so the\n * negotiation graph's finalize node updates each opportunity's status:\n * accept → 'pending' (sender notification follows the pending → notification path)\n * reject → 'rejected'\n * timeout/turn_cap → 'stalled'\n * Status updates land in the DB; in-memory state.opportunities is not mutated.\n */\n const NEGOTIATE_TIMER_SENTINEL = Symbol('negotiate-timer-sentinel');\n const negotiateNode = async (state: typeof OpportunityGraphState.State) => {\n if (!this.negotiationGraph) return {};\n if (!state.opportunities || state.opportunities.length === 0) return {};\n\n const traceEmitter = requestContext.getStore()?.traceEmitter;\n const graphStart = Date.now();\n traceEmitter?.({ type: \"graph_start\", name: \"Negotiation graph\" });\n\n try {\n // Use the same discoveryUserId pattern as evaluationNode\n const discoveryUserId = (state.onBehalfOfUserId ?? state.userId) as string;\n\n const sourceAccount = await this.database.getUser(discoveryUserId).catch(() => null);\n\n const sourceUser = {\n id: discoveryUserId,\n intents: state.indexedIntents?.slice(0, 5).map(i => ({\n id: i.intentId as string,\n title: i.summary ?? '',\n description: i.payload ?? '',\n confidence: 1,\n })) ?? [],\n profile: {\n name: state.sourceProfile?.identity?.name ?? sourceAccount?.name,\n bio: state.sourceProfile?.identity?.bio ?? sourceAccount?.intro ?? undefined,\n location: state.sourceProfile?.identity?.location ?? sourceAccount?.location ?? undefined,\n skills: state.sourceProfile?.attributes?.skills,\n interests: state.sourceProfile?.attributes?.interests,\n },\n };\n\n // Build candidates from persisted opportunities. Each opportunity carries its DB id\n // so the negotiation graph's finalize node can update its status from the outcome.\n logger.verbose('[Graph:Negotiate] Building candidates from opportunities', {\n opportunityCount: state.opportunities.length,\n discoveryUserId,\n });\n\n const candidateEntries = state.opportunities\n .map(opp => {\n // Skip opportunities where any introducer exists but has not yet approved.\n const introducerActors = (opp.actors as OpportunityActor[])\n .filter(a => a.role === 'introducer');\n if (introducerActors.length > 0 && !introducerActors.every(a => a.approved === true)) {\n logger.verbose('[Graph:Negotiate] Skipping opportunity: introducer not approved', {\n opportunityId: opp.id,\n introducerCount: introducerActors.length,\n approvedCount: introducerActors.filter(a => a.approved === true).length,\n });\n return null;\n }\n\n const candidateActor = (opp.actors as Array<{ userId: string; role?: string; networkId?: string; intentId?: string }>)\n .find(a => a.userId !== discoveryUserId);\n if (!candidateActor) {\n logger.verbose('[Graph:Negotiate] Skipping opportunity: no candidateActor found', {\n opportunityId: opp.id,\n discoveryUserId,\n actors: (opp.actors as OpportunityActor[])?.map(a => ({ userId: a.userId, role: a.role })) ?? [],\n });\n return null;\n }\n return { opp, candidateActor };\n })\n .filter((e): e is NonNullable<typeof e> => e !== null);\n\n logger.verbose('[Graph:Negotiate] Candidate filtering complete', {\n inputOpportunities: state.opportunities.length,\n outputCandidates: candidateEntries.length,\n });\n\n const candidates: NegotiationCandidate[] = await Promise.all(\n candidateEntries.map(async ({ opp, candidateActor }) => {\n const userId = candidateActor.userId as string;\n const [profile, user, activeIntents, intent] = await Promise.all([\n this.database.getProfile(userId).catch(() => null),\n this.database.getUser(userId).catch(() => null),\n this.database.getActiveIntents(userId).catch(() => []),\n candidateActor.intentId\n ? this.database.getIntent(candidateActor.intentId as string).catch(() => null)\n : null,\n ]);\n\n const toNegIntent = (ai: { id?: string | null; summary?: string | null; payload?: string | null }) => ({\n id: (ai.id ?? candidateActor.intentId) as string,\n title: ai.summary ?? '',\n description: ai.payload ?? '',\n confidence: 1,\n });\n const triggerInActive = activeIntents.some(ai => ai.id === candidateActor.intentId);\n const triggerFallback = !triggerInActive && intent ? [toNegIntent(intent)] : [];\n const candidateIntents = [\n ...triggerFallback,\n ...activeIntents.filter(ai => ai.id === candidateActor.intentId).map(toNegIntent),\n ...activeIntents.filter(ai => ai.id !== candidateActor.intentId).map(toNegIntent),\n ].slice(0, 5);\n\n return {\n userId,\n opportunityId: opp.id as string,\n reasoning: (opp.interpretation as { reasoning?: string } | null)?.reasoning ?? '',\n valencyRole: candidateActor.role ?? 'peer',\n networkId: candidateActor.networkId as string,\n ...(state.searchQuery?.trim() && { discoveryQuery: state.searchQuery.trim() }),\n candidateUser: {\n id: userId,\n intents: candidateIntents,\n profile: {\n name: profile?.identity?.name ?? user?.name,\n bio: profile?.identity?.bio ?? user?.intro ?? undefined,\n location: profile?.identity?.location ?? user?.location ?? undefined,\n skills: profile?.attributes?.skills,\n interests: profile?.attributes?.interests,\n },\n },\n };\n }),\n );\n\n const isChatPath = !!state.options?.conversationId;\n const maxTurns = isChatPath\n ? Number(process.env.NEGOTIATION_MAX_TURNS_CHAT) || 4\n : Number(process.env.NEGOTIATION_MAX_TURNS_AMBIENT) || 6;\n\n // Fetch per-candidate index context (group by networkId to avoid duplicate lookups)\n const uniqueIndexIds = [...new Set(candidates.map(c => c.networkId).filter((id): id is string => !!id))];\n const indexContextMap = new Map<string, string>();\n await Promise.all(\n uniqueIndexIds.map(async (networkId) => {\n const ctx = await this.database.getNetworkMemberContext(networkId, discoveryUserId).catch(() => null);\n const prompt = [ctx?.indexPrompt, ctx?.memberPrompt]\n .filter((v): v is string => !!v?.trim())\n .join('\\n\\n');\n if (prompt) indexContextMap.set(networkId, prompt);\n }),\n );\n\n // Decide turn timeout.\n // - Background/queue path (no conversationId): always the park-window\n // budget (AMBIENT_PARK_WINDOW_MS, 5 min). Turns park in\n // `waiting_for_agent` and are picked up via polling; the dispatcher\n // additionally short-circuits to the system agent when no personal\n // agent has a fresh heartbeat (see AgentDispatcherImpl).\n // - Chat path with a personal agent authorized: use the same park-window\n // so the dispatcher parks the turn and the user's personal agent can\n // pick it up via polling.\n // - Chat path with no personal agent: use a short timeout (30s) so the\n // system `Index Negotiator` kicks in without stalling the chat.\n // Check the personal agent per unique candidate network so cross-network\n // chat runs don't get a single authorized agent deciding the timeout for\n // every candidate. Only use the long (polling) timeout when a personal\n // agent is authorized on ALL candidate networks; otherwise fall back to\n // the short timeout so chats don't stall on a network where only the\n // system negotiator is allowed.\n const hasPersonalAgent = isChatPath && this.agentDispatcher\n ? (uniqueIndexIds.length > 0\n ? (await Promise.all(\n uniqueIndexIds.map((networkId) =>\n this.agentDispatcher!.hasPersonalAgent(\n discoveryUserId,\n { action: 'manage:negotiations', scopeType: 'network', scopeId: networkId },\n ).catch(() => false),\n ),\n )).every(Boolean)\n : false)\n : false;\n // Orchestrator (chat-driven a2h) fan-out uses a tight 60s park window —\n // the user is watching the stream, so we cannot afford the 5-min ambient\n // budget. Ambient keeps its heartbeat-aware long/short split.\n const ORCHESTRATOR_PARK_WINDOW_MS = 60_000;\n const isOrchestrator = state.trigger === 'orchestrator';\n const useLongTimeout = !isChatPath || hasPersonalAgent;\n const timeoutMs = isOrchestrator\n ? ORCHESTRATOR_PARK_WINDOW_MS\n : useLongTimeout ? AMBIENT_PARK_WINDOW_MS : 30_000;\n\n logger.info('negotiateNode timeout decision', {\n discoveryUserId,\n trigger: state.trigger,\n isChatPath,\n isOrchestrator,\n hasDispatcher: !!this.agentDispatcher,\n hasPersonalAgent,\n useLongTimeout,\n timeoutMs,\n candidateCount: candidates.length,\n });\n\n // Per-candidate hook — always-on. Accumulates negotiation resolutions\n // for discovery question generation. Additionally, for the orchestrator\n // trigger: flips the opp from 'pending' to 'draft' and pushes an\n // `opportunity_draft_ready` event so the frontend can render it\n // inline as soon as it resolves, rather than waiting for the full\n // fan-out. Abort (e.g. user closed the chat) suppresses both the\n // status flip and the event — the in-flight negotiation finishes\n // naturally but its card never reaches the user.\n // Build a stable order index so that resolutions accumulated via the\n // per-candidate async hook can be re-sorted to candidate-list order\n // before being handed to buildQuestionPrompt. Without this the LLM\n // sees negotiations in completion-time order (non-deterministic).\n const candidateOrderById = new Map<string, number>();\n candidates.forEach((c, i) => candidateOrderById.set(c.userId, i));\n\n const resolutions: Array<NegotiationResolution & { __order: number }> = [];\n\n const onCandidateResolved: OnNegotiationResolved = async ({ candidate, accepted, turns, outcome }) => {\n resolutions.push({\n __order: candidateOrderById.get(candidate.userId) ?? Number.MAX_SAFE_INTEGER,\n candidateUserId: candidate.userId,\n counterpartyHint: (() => {\n const bio = candidate.candidateUser.profile?.bio?.trim();\n if (bio) return bio;\n return (candidate.candidateUser.profile?.interests ?? []).join(\", \");\n })(),\n indexContext: candidate.networkId\n ? indexContextMap.get(candidate.networkId) ?? \"\"\n : \"\",\n turns,\n outcome,\n });\n\n if (state.trigger !== 'orchestrator') return;\n // ─── orchestrator streaming body ───\n const abortSignal = requestContext.getStore()?.abortSignal;\n if (abortSignal?.aborted) return;\n if (!accepted || !candidate.opportunityId) return;\n\n // Only emit after a successful status flip — the frontend keys\n // cards off `opportunity.status === 'draft'`, so emitting a row\n // with its pre-flip status would render inconsistently. If the\n // flip fails we log and drop the event; the negotiation result\n // is still captured in acceptedResults for the final summary.\n const updated = await this.database\n .updateOpportunityStatus(candidate.opportunityId, 'draft')\n .catch((err) => {\n logger.warn('[Graph:Negotiate] failed to flip opp to draft; suppressing draft-ready event', {\n opportunityId: candidate.opportunityId,\n error: err,\n });\n return null;\n });\n if (!updated || abortSignal?.aborted) return;\n\n traceEmitter?.({\n type: 'opportunity_draft_ready',\n opportunityId: candidate.opportunityId,\n opportunity: updated,\n counterparty: {\n userId: candidate.candidateUser.id,\n ...(candidate.candidateUser.profile?.name\n ? { name: candidate.candidateUser.profile.name }\n : {}),\n },\n });\n };\n\n const negotiationWork = negotiateCandidates(\n this.negotiationGraph, sourceUser, candidates,\n { networkId: '', prompt: '' }, // base context, overridden per-candidate below\n { maxTurns, traceEmitter: traceEmitter ?? undefined,\n indexContextOverrides: indexContextMap,\n timeoutMs,\n trigger: state.trigger === 'orchestrator' ? 'orchestrator' : 'ambient',\n onCandidateResolved },\n );\n\n // MCP-only: race the whole negotiate phase against a budget. When the\n // timer wins we return early with a `timed_out` trace; the unresolved\n // promise keeps running in the Bun event loop and each candidate's\n // finalize node updates its opp status in the DB. We deliberately do\n // NOT await it, NOT abort it, and NOT mutate state.opportunities —\n // the MCP tool handler refreshes statuses from the DB before\n // responding. Bounded blast radius: at most ~20 s of background work\n // per request; orphans heal via maintenance scripts or IND-279 when\n // it lands.\n const budgetMs = state.options.negotiateTimeoutMs;\n let acceptedResults: Awaited<typeof negotiationWork>;\n if (budgetMs !== undefined) {\n let timerId: ReturnType<typeof setTimeout> | undefined;\n const timerWork = new Promise<typeof NEGOTIATE_TIMER_SENTINEL>((resolve) => {\n timerId = setTimeout(() => resolve(NEGOTIATE_TIMER_SENTINEL), budgetMs);\n });\n // try/finally ensures the timer is cleared on every exit path —\n // sentinel-win, work-win, AND `negotiationWork` rejection. Without\n // this, a rejected negotiation would leave the timer pending and\n // keep the event loop alive until `budgetMs` elapses.\n let raced: typeof NEGOTIATE_TIMER_SENTINEL | Awaited<typeof negotiationWork>;\n try {\n raced = await Promise.race([negotiationWork, timerWork]);\n } finally {\n if (timerId !== undefined) clearTimeout(timerId);\n }\n if (raced === NEGOTIATE_TIMER_SENTINEL) {\n // Floating promise is intentional — see comment above.\n void negotiationWork.catch((err) => {\n logger.warn('[Graph:Negotiate] background negotiation failed after timer fired', { error: err });\n });\n logger.warn('[Graph:Negotiate] timed out — returning partial results to caller', {\n discoveryUserId,\n candidateCount: candidates.length,\n negotiateTimeoutMs: budgetMs,\n });\n traceEmitter?.({ type: \"graph_end\", name: \"Negotiation graph\", durationMs: Date.now() - graphStart });\n const orderedResolutionsPartial = [...resolutions]\n .sort((a, b) => a.__order - b.__order)\n .map(({ __order: _o, ...r }) => r as NegotiationResolution);\n const discoveryNegotiationsPartial = orderedResolutionsPartial.map(toDiscoveryNegotiation);\n const discoverySummaryPartial = buildDiscoverySummary(orderedResolutionsPartial);\n return {\n trace: [{\n node: 'negotiate',\n detail: 'timed_out',\n data: {\n negotiateTimeoutMs: budgetMs,\n candidateCount: candidates.length,\n durationMs: Date.now() - graphStart,\n },\n }],\n discoveryNegotiations: discoveryNegotiationsPartial,\n discoverySummary: discoverySummaryPartial,\n };\n }\n acceptedResults = raced;\n } else {\n acceptedResults = await negotiationWork;\n }\n\n // No filtering: every candidate's outcome (accept/reject/stalled) was applied to its\n // opportunity row by the negotiation graph's finalize node via the opportunityId we\n // passed. state.opportunities stays as it was at persist time; DB has the new statuses.\n const acceptedUserIds = new Set(acceptedResults.map(r => r.userId));\n const negotiationDurationMs = Date.now() - graphStart;\n\n const candidateTraceEntries = candidates.map(c => {\n const accepted = acceptedUserIds.has(c.userId);\n const result = accepted ? acceptedResults.find(r => r.userId === c.userId) : null;\n const name = c.candidateUser.profile?.name ?? c.userId;\n const outcome = accepted ? 'accepted' : 'rejected_or_stalled';\n return {\n node: 'negotiate_candidate',\n detail: `${name}: ${outcome}`,\n data: {\n userId: c.userId,\n opportunityId: c.opportunityId,\n name,\n outcome,\n turns: result?.turnCount ?? 0,\n },\n };\n });\n\n const acceptedCount = acceptedResults.length;\n const otherCount = candidates.length - acceptedCount;\n const negotiateTrace = [\n {\n node: 'negotiate',\n detail: `${candidates.length} candidate(s) -> ${acceptedCount} accepted, ${otherCount} rejected/stalled`,\n data: {\n durationMs: negotiationDurationMs,\n candidateCount: candidates.length,\n acceptedCount,\n otherCount,\n },\n },\n ...candidateTraceEntries,\n ];\n\n traceEmitter?.({ type: \"graph_end\", name: \"Negotiation graph\", durationMs: Date.now() - graphStart });\n const orderedResolutions = [...resolutions]\n .sort((a, b) => a.__order - b.__order)\n .map(({ __order: _o, ...r }) => r as NegotiationResolution);\n const discoveryNegotiations = orderedResolutions.map(toDiscoveryNegotiation);\n const discoverySummary = buildDiscoverySummary(orderedResolutions);\n return {\n trace: negotiateTrace,\n discoveryNegotiations,\n discoverySummary,\n };\n } catch (err) {\n logger.error(\"[Graph:Negotiate] Negotiation stage failed\", { error: err });\n traceEmitter?.({ type: \"graph_end\", name: \"Negotiation graph\", durationMs: Date.now() - graphStart });\n return {\n trace: [{\n node: 'negotiate',\n detail: 'Negotiation failed',\n data: { durationMs: Date.now() - graphStart, error: true },\n }],\n discoveryNegotiations: [],\n discoverySummary: buildDiscoverySummary([]),\n };\n }\n };\n\n /**\n * Node 4: Ranking\n * Sorts evaluated opportunities by score, applies limit, dedupes by actor-set hash.\n */\n const rankingNode = withNodeTrace(\n \"opportunity-ranking\",\n async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.ranking\", async () => {\n logger.verbose('[Graph:Ranking] Starting ranking', {\n evaluatedCount: state.evaluatedOpportunities.length,\n });\n\n try {\n const sorted = [...state.evaluatedOpportunities].sort((a, b) => b.score - a.score);\n const limit = state.options.limit ?? 20;\n const ranked = sorted.slice(0, limit);\n\n const actorSetKey = (opp: EvaluatedOpportunity) =>\n opp.actors\n .map((a) => `${a.userId}:${a.networkId}`)\n .sort()\n .join('|');\n const seen = new Set<string>();\n const deduplicated = ranked.filter((opp) => {\n const key = actorSetKey(opp);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n\n logger.verbose('[Graph:Ranking] Ranking complete', {\n sorted: sorted.length,\n afterLimit: ranked.length,\n afterDedup: deduplicated.length,\n });\n return { evaluatedOpportunities: deduplicated };\n } catch (error) {\n const errMsg = error instanceof Error ? error.message : String(error);\n logger.error('[Graph:Ranking] Failed', { error });\n return {\n evaluatedOpportunities: [],\n error: 'Failed to rank opportunities.',\n trace: [{\n node: \"ranking_fatal\",\n detail: `Ranking failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n });\n },\n (result) => {\n const r = result as Record<string, unknown>;\n if (r?.error) return `error: ${r.error}`;\n const opps = r?.evaluatedOpportunities as unknown[];\n return opps ? `Ranked ${opps.length} opportunity(ies)` : undefined;\n },\n );\n\n /**\n * Node: intro_validation (create_introduction path)\n * Validates index scope, membership for introducer and all party users, and no existing opportunity.\n */\n const introValidationNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.introValidation\", async () => {\n logger.verbose('[Graph:IntroValidation] Starting', {\n userId: state.userId,\n networkId: state.networkId,\n entitiesCount: state.introductionEntities?.length ?? 0,\n });\n\n try {\n const entities = state.introductionEntities ?? [];\n const primaryNetworkId = (state.networkId ?? entities[0]?.networkId) as Id<'networks'> | undefined;\n const partyUserIds = [...new Set(entities.map((e) => e.userId).filter((id) => id !== state.userId))];\n\n if (!primaryNetworkId || partyUserIds.length < 1) {\n return {\n error: 'Introduction requires networkId and at least two entities (introducer + one counterpart).',\n };\n }\n\n if (state.requiredNetworkId && primaryNetworkId !== state.requiredNetworkId) {\n return {\n error: 'This chat is scoped to a different community. You can only introduce members of the current community.',\n };\n }\n\n const [introducerIsMember, introducerIsOwner] = await Promise.all([\n this.database.isNetworkMember(primaryNetworkId, state.userId),\n this.database.isIndexOwner(primaryNetworkId, state.userId),\n ]);\n if (!introducerIsMember && !introducerIsOwner) {\n return {\n error: 'One or more users are not members of the specified community. You can only introduce members who share a network.',\n };\n }\n const partyInScope = await Promise.all(\n partyUserIds.map(async (userId) => {\n const [isMember, isOwner] = await Promise.all([\n this.database.isNetworkMember(primaryNetworkId, userId),\n this.database.isIndexOwner(primaryNetworkId, userId),\n ]);\n return isMember || isOwner;\n }),\n );\n const allPartyMembers = partyInScope.every(Boolean);\n if (!allPartyMembers) {\n return {\n error: 'One or more users are not members of the specified community. You can only introduce members who share a network.',\n };\n }\n\n const exists = await this.database.opportunityExistsBetweenActors(partyUserIds, primaryNetworkId);\n if (exists) {\n return { error: 'An opportunity already exists between these people.' };\n }\n\n logger.verbose('[Graph:IntroValidation] Validation passed');\n return {};\n } catch (err) {\n const errMsg = err instanceof Error ? err.message : String(err);\n logger.error('[Graph:IntroValidation] Failed', {\n userId: state.userId,\n networkId: state.networkId,\n error: err,\n });\n return {\n error: 'Introduction validation failed.',\n trace: [{\n node: \"intro_validation_fatal\",\n detail: `IntroValidation failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n });\n };\n\n /**\n * Build fallback reasoning and actors when evaluator returns empty or throws.\n */\n function buildIntroFallback(\n entities: EvaluatorEntity[],\n state: typeof OpportunityGraphState.State,\n primaryNetworkId: Id<'networks'>,\n introducerName?: string\n ): { reasoning: string; score: number; actors: EvaluatedOpportunityActor[] } {\n const reasoning =\n `${introducerName ?? 'A member'} believes these people should connect.` +\n (state.introductionHint ? ` Context: ${state.introductionHint}` : '');\n const score = 70;\n const partyUserIds = entities.map((e) => e.userId).filter((id) => id !== state.userId);\n const actors: EvaluatedOpportunityActor[] = partyUserIds.map((uid) => ({\n userId: uid as Id<'users'>,\n role: 'peer' as const,\n networkId: primaryNetworkId,\n }));\n return { reasoning, score, actors };\n }\n\n /**\n * Node: intro_evaluation (create_introduction path)\n * Runs entity-bundle evaluator and sets evaluatedOpportunities (one) + introductionContext.\n */\n const introEvaluationNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.introEvaluation\", async () => {\n logger.verbose('[Graph:IntroEvaluation] Starting', { userId: state.userId });\n\n if (state.error) {\n return { evaluatedOpportunities: [], agentTimings: [] };\n }\n\n const entities = state.introductionEntities ?? [];\n const primaryNetworkId = (state.networkId ?? entities[0]?.networkId) as Id<'networks'> | undefined;\n if (!primaryNetworkId || entities.length < 2) {\n return { evaluatedOpportunities: [], error: 'Missing entities or network for introduction.', agentTimings: [] };\n }\n\n const agentTimingsAccum: DebugMetaAgent[] = [];\n let introducerName: string | undefined;\n let reasoning: string;\n let score: number;\n let actors: EvaluatedOpportunityActor[] = [];\n\n const _traceEmitterIntro = requestContext.getStore()?.traceEmitter;\n let _introEvalStarted = false;\n let _evalStart = Date.now();\n try {\n const introducerUser = await this.database.getUser(state.userId);\n introducerName = introducerUser?.name ?? undefined;\n const networkContexts = await buildNetworkContexts(entities, this.database);\n const input: EvaluatorInput = {\n discovererId: state.userId,\n entities,\n introductionMode: true,\n introducerName,\n introductionHint: state.introductionHint ?? undefined,\n networkContexts,\n };\n\n _evalStart = Date.now();\n _traceEmitterIntro?.({ type: \"agent_start\", name: \"intro-evaluator\" });\n _introEvalStarted = true;\n const evaluated = await (evaluatorAgent as OpportunityEvaluator).invokeEntityBundle(input, { minScore: 0 });\n const _introDuration = Date.now() - _evalStart;\n agentTimingsAccum.push({ name: 'opportunity.evaluator', durationMs: _introDuration });\n _traceEmitterIntro?.({ type: \"agent_end\", name: \"intro-evaluator\", durationMs: _introDuration, summary: \"Evaluated introduction\" });\n if (evaluated.length > 0) {\n const best = evaluated[0];\n reasoning = best.reasoning;\n score = best.score;\n actors = best.actors.map((a) => ({\n userId: a.userId as Id<'users'>,\n role: a.role,\n intentId: a.intentId ?? undefined,\n networkId: primaryNetworkId,\n }));\n } else {\n const fallback = buildIntroFallback(entities, state, primaryNetworkId, introducerName);\n reasoning = fallback.reasoning;\n score = fallback.score;\n actors = fallback.actors;\n }\n } catch (evalErr) {\n const errMsg = evalErr instanceof Error ? evalErr.message : String(evalErr);\n // Close the intro-evaluator span if it was started before the error\n if (_introEvalStarted) {\n const _introErrDuration = Date.now() - _evalStart;\n _traceEmitterIntro?.({ type: \"agent_end\", name: \"intro-evaluator\", durationMs: _introErrDuration, summary: `error — ${errMsg}` });\n agentTimingsAccum.push({ name: 'opportunity.evaluator', durationMs: _introErrDuration });\n }\n logger.warn('[Graph:IntroEvaluation] Evaluator or getUser failed, using fallback', { error: evalErr });\n const fallback = buildIntroFallback(entities, state, primaryNetworkId, introducerName);\n reasoning = fallback.reasoning;\n score = fallback.score;\n actors = fallback.actors;\n return {\n evaluatedOpportunities: [{ actors, score, reasoning }],\n introductionContext: { createdByName: introducerName },\n options: { ...state.options, initialStatus: state.options.initialStatus ?? 'latent' },\n agentTimings: agentTimingsAccum,\n trace: [{\n node: \"intro_evaluation_fatal\",\n detail: `IntroEvaluation failed (using fallback): ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n\n const evaluatedOpportunity: EvaluatedOpportunity = {\n actors,\n score,\n reasoning,\n };\n\n return {\n evaluatedOpportunities: [evaluatedOpportunity],\n introductionContext: { createdByName: introducerName },\n options: { ...state.options, initialStatus: state.options.initialStatus ?? 'latent' },\n agentTimings: agentTimingsAccum,\n };\n });\n };\n\n /**\n * Node 5: Persist\n * Creates opportunities from evaluator-proposed actors (networkId, userId, role, optional intent).\n */\n const persistNode = withNodeTrace(\n \"opportunity-persist\",\n async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.persist\", async () => {\n const startTime = Date.now();\n const initialStatus = resolveInitialStatus(state.trigger, state.options.initialStatus);\n logger.verbose('[Graph:Persist] Starting persistence (dedup-v2)', {\n opportunitiesToCreate: state.evaluatedOpportunities.length,\n trigger: state.trigger,\n initialStatus,\n });\n\n if (state.evaluatedOpportunities.length === 0) {\n logger.verbose('[Graph:Persist] No opportunities to persist');\n return { opportunities: [] };\n }\n\n try {\n const itemsToPersist: CreateOpportunityData[] = [];\n const reactivatedOpportunities: Opportunity[] = [];\n const existingBetweenActors: Array<{\n candidateUserId: Id<'users'>;\n networkId: Id<'networks'>;\n existingOpportunityId?: Id<'opportunities'>;\n existingStatus?: string;\n }> = [];\n const now = new Date().toISOString();\n // Only skip 'draft' (chat-only) opportunities during dedup.\n // 'latent' must NOT be skipped — background discovery creates latent opportunities,\n // and excluding them causes the same user pair to get duplicate opportunities\n // when multiple intents trigger separate discovery jobs (IND-166).\n const DEDUP_SKIP_STATUSES: Array<'draft'> = ['draft'];\n\n const introducerUserForOnBehalf = state.onBehalfOfUserId\n ? await this.database.getUser(state.userId)\n : null;\n\n // Orchestrator-only: collect already-accepted pairs so Task 7's\n // discover_opportunities tool can tell the LLM \"these pairs are\n // already connected, surface the existing chat rather than\n // creating a new draft\". Runs in parallel across unique\n // counterparties (a single evaluator pass can return multiple\n // opps per counterparty; we only hit the DB once per pair).\n // Failures are swallowed — the per-pair query is best-effort.\n const dedupAlreadyAccepted: Array<{ opportunityId: string; counterpartyUserId: string }> = [];\n if (state.trigger === 'orchestrator') {\n // Use the same viewer-resolution as evaluation/negotiate/persist\n // on-behalf branches so an introducer-driven orchestrator run\n // queries accepted opps between the *target* user and the\n // counterparty, not between the introducer and the counterparty.\n const dedupUserId = (state.onBehalfOfUserId ?? state.userId) as string;\n const uniqueCounterparts = new Set<string>();\n for (const evaluated of state.evaluatedOpportunities) {\n const candidateUserId = evaluated.actors.find(a => a.userId !== dedupUserId)?.userId;\n if (candidateUserId) uniqueCounterparts.add(candidateUserId);\n }\n const lookups = await Promise.all(\n [...uniqueCounterparts].map(async (counterpartyUserId) => {\n const accepted = await this.database\n .findOpportunitiesByActors([dedupUserId, counterpartyUserId], { includeIntroducers: true, statuses: ['accepted'] })\n .catch((err: unknown) => {\n logger.warn('[Graph:Persist] findOpportunitiesByActors (sibling-accept) failed', {\n userId: dedupUserId,\n counterpartyUserId,\n error: err,\n });\n return [] as Awaited<ReturnType<typeof this.database.findOpportunitiesByActors>>;\n });\n return accepted.map((opp: { id: string }) => ({ opportunityId: opp.id, counterpartyUserId }));\n }),\n );\n dedupAlreadyAccepted.push(...lookups.flat());\n }\n\n for (const evaluated of state.evaluatedOpportunities) {\n const indexIdForActors = state.networkId ?? evaluated.actors[0]?.networkId;\n let actors: OpportunityActor[];\n let data: CreateOpportunityData;\n\n logger.verbose('[Graph:Persist:PathSelect]', {\n isIntroduction: !!state.introductionContext,\n stateUserId: state.userId,\n stateIndexId: state.networkId,\n evaluatedActorUserIds: evaluated.actors.map(a => a.userId),\n });\n\n if (state.introductionContext) {\n if (indexIdForActors === undefined) {\n logger.warn('[Graph:Persist] Introduction path missing networkId; skipping opportunity', {\n userId: state.userId,\n actorsCount: evaluated.actors.length,\n });\n continue;\n }\n // Introduction path: manual detection, introducer actor, curator_judgment signal.\n const evaluatorActors: OpportunityActor[] = evaluated.actors.map((a: EvaluatedOpportunityActor) => ({\n networkId: a.networkId ?? indexIdForActors,\n userId: a.userId,\n role: a.role,\n ...(a.intentId ? { intent: a.intentId } : {}),\n }));\n const viewerAlreadyInActors = evaluatorActors.some(a => a.userId === state.userId);\n actors = viewerAlreadyInActors\n ? evaluatorActors\n : [\n ...evaluatorActors,\n { networkId: indexIdForActors, userId: state.userId, role: 'introducer' as const, approved: false },\n ];\n data = {\n detection: {\n source: 'manual',\n createdBy: state.userId,\n createdByName: state.introductionContext.createdByName,\n timestamp: now,\n },\n actors,\n interpretation: {\n category: 'collaboration',\n reasoning: evaluated.reasoning,\n confidence: evaluated.score / 100,\n signals: [\n {\n type: 'curator_judgment',\n weight: 1,\n detail: `Introduction by ${state.introductionContext.createdByName ?? 'a member'} via chat`,\n },\n ],\n },\n context: {\n networkId: state.networkId ?? indexIdForActors,\n ...(state.options.conversationId ? { conversationId: state.options.conversationId } : {}),\n },\n confidence: String(evaluated.score / 100),\n status: initialStatus,\n };\n } else if (state.onBehalfOfUserId) {\n if (indexIdForActors === undefined) {\n logger.warn('[Graph:Persist] Introducer discovery path missing networkId; skipping opportunity', {\n userId: state.userId,\n actorsCount: evaluated.actors.length,\n });\n continue;\n }\n // Introducer discovery path: introducer is state.userId, target is onBehalfOfUserId.\n const evaluatorActors: OpportunityActor[] = evaluated.actors.map((a: EvaluatedOpportunityActor) => ({\n networkId: a.networkId ?? indexIdForActors,\n userId: a.userId,\n role: a.role,\n ...(a.intentId ? { intent: a.intentId } : {}),\n }));\n const viewerAlreadyInActors = evaluatorActors.some(a => a.userId === state.userId);\n actors = viewerAlreadyInActors\n ? evaluatorActors\n : [\n ...evaluatorActors,\n { networkId: indexIdForActors!, userId: state.userId, role: 'introducer' as const, approved: false },\n ];\n\n const candidateUserId = evaluated.actors.find((a) => a.userId !== state.onBehalfOfUserId)?.userId;\n const overlapping = candidateUserId\n ? await this.database.findOpportunitiesByActors(\n [state.onBehalfOfUserId as Id<'users'>, candidateUserId as Id<'users'>],\n { excludeStatuses: DEDUP_SKIP_STATUSES },\n )\n : [];\n if (overlapping.length > 0) {\n const existing = overlapping[0];\n const isRecent = new Date(existing.createdAt).getTime() > Date.now() - DEDUP_WINDOW_MS;\n const sameIntroducer = existing.actors?.some(\n (actor) => actor.role === 'introducer' && actor.userId === state.userId,\n );\n\n if (existing.status === 'expired' || existing.status === 'stalled') {\n // Reactivate expired or stalled opportunities (only if same introducer for expired).\n // A different introducer creating for an expired pair falls through to new creation —\n // the prior expiry belongs to the original introducer, not this one.\n // Stalled opportunities are reactivated regardless of age: a stalled negotiation\n // is still in-flight for this pair, so we resume it rather than create a parallel one.\n if (existing.status === 'stalled' || sameIntroducer) {\n // Introduction path always targets 'draft' (chat-only surface) rather than using\n // initialStatus, because introductions are always chat-initiated, not background-discovered.\n const reactivated = await this.database.updateOpportunityStatus(existing.id, 'draft');\n if (reactivated) {\n logger.verbose('[Graph:Persist] Reactivated opportunity (introduction path)', {\n opportunityId: existing.id,\n candidateUserId,\n previousStatus: existing.status,\n });\n reactivatedOpportunities.push(reactivated);\n }\n continue;\n }\n } else if (existing.status === 'negotiating') {\n // Orphan heal (introduction path): same logic as discovery path\n const priorTask = await this.database.getNegotiationTaskForOpportunity(existing.id);\n if (priorTask) {\n const activeStates = ['submitted', 'working', 'input_required', 'waiting_for_agent', 'claimed'];\n const isFresh = (Date.now() - new Date(priorTask.updatedAt).getTime()) < 5 * 60 * 1000;\n if (activeStates.includes(priorTask.state) && isFresh) {\n existingBetweenActors.push({\n candidateUserId: candidateUserId as Id<'users'>,\n networkId: (state.networkId ?? indexIdForActors ?? '') as Id<'networks'>,\n existingOpportunityId: existing.id as Id<'opportunities'>,\n existingStatus: existing.status,\n });\n logger.verbose('[Graph:Persist] Skipping negotiating opportunity with active task (introduction path)', {\n opportunityId: existing.id,\n candidateUserId,\n taskState: priorTask.state,\n });\n continue;\n }\n }\n const reactivated = await this.database.updateOpportunityStatus(existing.id, 'draft');\n if (reactivated) {\n logger.info('[Graph:Persist] Resuming orphaned negotiating opportunity (introduction path)', {\n opportunityId: existing.id,\n candidateUserId,\n priorTaskState: priorTask?.state,\n });\n reactivatedOpportunities.push(reactivated);\n }\n continue;\n } else if (existing.status === 'latent') {\n // Upgrade latent to draft for introduction path\n const upgraded = await this.database.updateOpportunityStatus(existing.id, 'draft');\n if (upgraded) {\n logger.verbose('[Graph:Persist] Upgraded latent opportunity to draft (introduction path)', {\n opportunityId: existing.id,\n candidateUserId,\n });\n reactivatedOpportunities.push(upgraded);\n }\n continue;\n } else if (isRecent && candidateUserId) {\n // Time-gated skip: only skip if opportunity was created within DEDUP_WINDOW_MS\n existingBetweenActors.push({\n candidateUserId: candidateUserId as Id<'users'>,\n networkId: (state.networkId ?? indexIdForActors ?? '') as Id<'networks'>,\n existingOpportunityId: existing.id as Id<'opportunities'>,\n existingStatus: existing.status,\n });\n logger.verbose('[Graph:Persist] Skipping recent duplicate (introduction path)', {\n candidateUserId,\n existingStatus: existing.status,\n existingOpportunityId: existing.id,\n });\n continue;\n }\n // Else: existing opportunity is old enough, allow new opportunity creation\n logger.verbose('[Graph:Persist] Allowing new opportunity; existing is outside dedup window (introduction path)', {\n candidateUserId,\n existingStatus: existing.status,\n existingOpportunityId: existing.id,\n });\n }\n\n data = {\n detection: {\n source: INTRODUCER_DISCOVERY_SOURCE,\n createdBy: state.userId,\n createdByName: introducerUserForOnBehalf?.name ?? undefined,\n timestamp: now,\n },\n actors,\n interpretation: {\n category: 'collaboration',\n reasoning: evaluated.reasoning,\n confidence: evaluated.score / 100,\n signals: [{\n type: 'curator_judgment',\n weight: 1,\n detail: `Introducer discovery for ${introducerUserForOnBehalf?.name ?? 'a member'} via background maintenance`,\n }],\n },\n context: {\n networkId: state.networkId ?? indexIdForActors,\n ...(state.options.conversationId ? { conversationId: state.options.conversationId } : {}),\n },\n confidence: String(evaluated.score / 100),\n status: initialStatus,\n };\n } else {\n // Discovery path: opportunity_graph source, no introducer, lifecycle guard for agent/patient.\n\n // Build premise lookup from discovery candidates for premise tracking.\n // When multiple premise candidates exist for the same user, keep the highest-similarity one.\n const premiseLookup = new Map<string, { premiseId: string; similarity: number }>();\n for (const c of state.candidates ?? []) {\n if (c.candidatePremiseId) {\n const existing = premiseLookup.get(c.candidateUserId);\n if (!existing || c.similarity > existing.similarity) {\n premiseLookup.set(c.candidateUserId, { premiseId: c.candidatePremiseId, similarity: c.similarity });\n }\n }\n }\n\n const evaluatorActors: OpportunityActor[] = evaluated.actors.map((a: EvaluatedOpportunityActor) => ({\n networkId: a.networkId ?? indexIdForActors,\n userId: a.userId,\n role: a.role,\n ...(a.intentId ? { intent: a.intentId } : {}),\n ...(premiseLookup.has(a.userId) ? { premise: premiseLookup.get(a.userId)!.premiseId as Id<'premises'> } : {}),\n }));\n actors = evaluatorActors;\n\n const hasIntroducerActor = actors.some(a => a.role === 'introducer');\n if (!hasIntroducerActor) {\n const discovererIdx = actors.findIndex(a => a.userId === state.userId);\n if (discovererIdx >= 0 && actors[discovererIdx].role === 'agent') {\n const counterpartIdx = actors.findIndex(\n (a, i) => i !== discovererIdx && a.role === 'patient'\n );\n actors[discovererIdx] = { ...actors[discovererIdx], role: 'patient' };\n if (counterpartIdx >= 0) {\n actors[counterpartIdx] = { ...actors[counterpartIdx], role: 'agent' };\n }\n logger.verbose('[Graph:Persist] Swapped discoverer from agent to patient for lifecycle visibility', {\n discovererId: state.userId,\n });\n }\n }\n\n // Index-agnostic dedup: find ANY existing opportunity between these users,\n // regardless of which index it was created in or whether context.networkId is set.\n const candidateUserId = evaluated.actors.find((a) => a.userId !== state.userId)?.userId;\n logger.verbose('[Graph:Persist:Dedup] Checking overlapping opportunities', {\n stateUserId: state.userId,\n candidateUserId: candidateUserId ?? 'NONE',\n evaluatedActors: evaluated.actors.map(a => ({ userId: a.userId, role: a.role })),\n });\n const overlapping = candidateUserId\n ? await this.database.findOpportunitiesByActors(\n [state.userId as Id<'users'>, candidateUserId as Id<'users'>],\n { excludeStatuses: DEDUP_SKIP_STATUSES },\n )\n : [];\n logger.verbose('[Graph:Persist:Dedup] findOpportunitiesByActors result', {\n count: overlapping.length,\n results: overlapping.map(o => ({ id: o.id, status: o.status, actors: o.actors?.map((a: OpportunityActor) => ({ userId: a.userId, role: a.role })) })),\n });\n\n if (overlapping.length > 0) {\n const existing = overlapping[0];\n const existingIndexId = (existing.context?.networkId ?? state.networkId ?? state.userNetworks?.[0] ?? '') as Id<'networks'>;\n const isRecent = new Date(existing.createdAt).getTime() > Date.now() - DEDUP_WINDOW_MS;\n\n if (existing.status === 'expired' || existing.status === 'stalled') {\n // Reactivate expired or stalled opportunities.\n // Stalled opportunities are reactivated regardless of age: a stalled negotiation\n // is still in-flight for this pair, so we resume it rather than create a parallel one.\n const reactivated = await this.database.updateOpportunityStatus(existing.id, initialStatus);\n if (reactivated) {\n logger.verbose('[Graph:Persist] Reactivated opportunity', {\n opportunityId: existing.id,\n candidateUserId,\n previousStatus: existing.status,\n newStatus: initialStatus,\n });\n reactivatedOpportunities.push(reactivated);\n }\n continue;\n } else if (existing.status === 'negotiating') {\n // Orphan heal: if a prior opportunity is stuck in 'negotiating' with a stale task,\n // reactivate it so the new discovery run can reuse it instead of creating a duplicate.\n const priorTask = await this.database.getNegotiationTaskForOpportunity(existing.id);\n if (priorTask) {\n const activeStates = ['submitted', 'working', 'input_required', 'waiting_for_agent', 'claimed'];\n const isFresh = (Date.now() - new Date(priorTask.updatedAt).getTime()) < 5 * 60 * 1000;\n if (activeStates.includes(priorTask.state) && isFresh) {\n // Still active — skip (lock gate in init node will handle)\n existingBetweenActors.push({\n candidateUserId: candidateUserId as Id<'users'>,\n networkId: existingIndexId,\n existingOpportunityId: existing.id as Id<'opportunities'>,\n existingStatus: existing.status,\n });\n logger.verbose('[Graph:Persist] Skipping negotiating opportunity with active task', {\n opportunityId: existing.id,\n candidateUserId,\n taskState: priorTask.state,\n });\n continue;\n }\n }\n // Task is stale or missing — reactivate the orphaned negotiating opportunity\n const reactivated = await this.database.updateOpportunityStatus(existing.id, initialStatus);\n if (reactivated) {\n logger.info('[Graph:Persist] Resuming orphaned negotiating opportunity', {\n opportunityId: existing.id,\n candidateUserId,\n priorTaskState: priorTask?.state,\n });\n reactivatedOpportunities.push(reactivated);\n }\n continue;\n } else if (existing.status === 'latent' && initialStatus !== 'latent') {\n // Upgrade latent (background-discovered) to the higher-priority status (e.g. pending)\n const upgraded = await this.database.updateOpportunityStatus(existing.id, initialStatus);\n if (upgraded) {\n logger.verbose('[Graph:Persist] Upgraded latent opportunity to higher-priority status', {\n opportunityId: existing.id,\n candidateUserId,\n previousStatus: 'latent',\n newStatus: initialStatus,\n });\n reactivatedOpportunities.push(upgraded);\n }\n continue;\n } else if (isRecent && candidateUserId) {\n // Time-gated skip: only skip if opportunity was created within DEDUP_WINDOW_MS\n // This prevents parallel job duplicates while allowing new discoveries for long-connected pairs\n existingBetweenActors.push({\n candidateUserId: candidateUserId as Id<'users'>,\n networkId: existingIndexId,\n existingOpportunityId: existing.id as Id<'opportunities'>,\n existingStatus: existing.status,\n });\n logger.verbose('[Graph:Persist] Skipping recent duplicate; opportunity created within dedup window', {\n candidateUserId,\n existingStatus: existing.status,\n existingOpportunityId: existing.id,\n createdAt: existing.createdAt,\n });\n continue;\n }\n // Else: existing opportunity is old enough (>10 min), allow new opportunity creation\n logger.verbose('[Graph:Persist] Allowing new opportunity; existing is outside dedup window', {\n candidateUserId,\n existingStatus: existing.status,\n existingOpportunityId: existing.id,\n createdAt: existing.createdAt,\n });\n }\n\n data = {\n detection: {\n source: 'opportunity_graph',\n createdBy: 'agent-opportunity-finder',\n ...(state.discoverySource === 'intent' && state.resolvedTriggerIntentId\n ? { triggeredBy: state.resolvedTriggerIntentId }\n : {}),\n timestamp: now,\n },\n actors,\n interpretation: {\n category: 'collaboration',\n reasoning: evaluated.reasoning,\n confidence: evaluated.score / 100,\n signals: [\n {\n type: evaluated.actors.some((a) => a.intentId) ? 'intent_match' : 'profile_match',\n weight: evaluated.score / 100,\n detail: 'Entity-bundle evaluator',\n },\n ],\n },\n context: {\n ...(state.networkId ? { networkId: state.networkId } : {}),\n ...(state.options.conversationId ? { conversationId: state.options.conversationId } : {}),\n },\n confidence: String(evaluated.score / 100),\n status: initialStatus,\n };\n }\n\n try {\n validateOpportunityActors(data.actors);\n } catch (err) {\n logger.warn('[Graph:Persist] Skipping opportunity with invalid actors', {\n error: err instanceof Error ? err.message : String(err),\n opportunityReasoning: evaluated.reasoning?.slice(0, 80),\n });\n continue;\n }\n\n itemsToPersist.push(data);\n }\n\n const { created: createdList } = await persistOpportunities({\n database: this.database,\n embedder: this.embedder,\n items: itemsToPersist,\n });\n\n const allOpportunities = [...reactivatedOpportunities, ...createdList];\n\n logger.verbose('[Graph:Persist] Persistence complete', {\n created: createdList.length,\n reactivated: reactivatedOpportunities.length,\n existingBetweenActorsCount: existingBetweenActors.length,\n status: initialStatus,\n });\n return {\n opportunities: allOpportunities,\n existingBetweenActors,\n dedupAlreadyAccepted,\n trace: [{\n node: \"persist\",\n detail: `Created ${createdList.length}, reactivated ${reactivatedOpportunities.length}, ${existingBetweenActors.length} existing skipped, ${dedupAlreadyAccepted.length} already-accepted pair(s)`,\n data: {\n created: createdList.length,\n reactivated: reactivatedOpportunities.length,\n existingSkipped: existingBetweenActors.length,\n alreadyAccepted: dedupAlreadyAccepted.length,\n totalOutput: allOpportunities.length,\n durationMs: Date.now() - startTime,\n },\n }],\n };\n } catch (error) {\n const errMsg = error instanceof Error ? error.message : String(error);\n logger.error('[Graph:Persist] Failed', { error });\n return {\n opportunities: [],\n existingBetweenActors: [],\n error: 'Failed to persist opportunities.',\n trace: [{\n node: \"persist_fatal\",\n detail: `Persist failed: ${errMsg}`,\n data: { error: errMsg },\n }],\n };\n }\n });\n },\n (result) => {\n const r = result as Record<string, unknown>;\n if (r?.error) return `error: ${r.error}`;\n const opps = r?.opportunities as unknown[];\n return opps ? `Persisted ${opps.length} opportunity(ies)` : undefined;\n },\n );\n\n // ═══════════════════════════════════════════════════════════════\n // CRUD NODES (read, update, delete, send)\n // ═══════════════════════════════════════════════════════════════\n\n /**\n * Read Node: List opportunities for the user, optionally filtered by networkId.\n * Fast path — no LLM calls.\n */\n const readNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.read\", async () => {\n logger.verbose('[Graph:Read] Listing opportunities', {\n userId: state.userId,\n networkId: state.networkId,\n });\n\n try {\n let indexIdFilter: string | undefined;\n if (state.networkId) {\n const [isMember, isOwner] = await Promise.all([\n this.database.isNetworkMember(state.networkId, state.userId),\n this.database.isIndexOwner(state.networkId, state.userId),\n ]);\n if (!isMember && !isOwner) {\n return {\n readResult: { count: 0, opportunities: [], message: 'Network not found or you are not a member.' },\n };\n }\n indexIdFilter = state.networkId;\n }\n\n const rawList = await this.database.getOpportunitiesForUser(state.userId, {\n limit: 30,\n ...(indexIdFilter ? { networkId: indexIdFilter } : {}),\n });\n const list = rawList.filter((opp) => opp.status !== 'expired');\n\n if (list.length === 0) {\n return {\n readResult: {\n count: 0,\n message: 'You have no opportunities yet. Use discover_opportunities to search for connections.',\n opportunities: [],\n },\n };\n }\n\n // Dedupe by counterpart set (same people = one row) so chat does not show \"You and X\" per index\n const counterpartKey = (opp: (typeof list)[number]) =>\n opp.actors\n .filter((a: OpportunityActor) => a.userId !== state.userId && a.role !== 'introducer')\n .map((a: OpportunityActor) => a.userId)\n .sort()\n .join(',');\n const byKey = new Map<string, (typeof list)[number]>();\n for (const opp of list) {\n const key = counterpartKey(opp);\n const existing = byKey.get(key);\n const conf = Number(opp.interpretation?.confidence ?? opp.confidence ?? 0);\n const existingConf = existing ? Number(existing.interpretation?.confidence ?? existing.confidence ?? 0) : 0;\n const oppTime = opp.updatedAt instanceof Date ? opp.updatedAt.getTime() : new Date(opp.updatedAt).getTime();\n const existingTime = existing\n ? (existing.updatedAt instanceof Date ? existing.updatedAt.getTime() : new Date(existing.updatedAt).getTime())\n : 0;\n if (!existing || conf > existingConf || (conf === existingConf && oppTime > existingTime)) {\n byKey.set(key, opp);\n }\n }\n const dedupedList = [...byKey.values()];\n\n const sourceLabel: Record<string, string> = {\n chat: 'Suggested in chat',\n opportunity_graph: 'System match',\n manual: 'Manual',\n cron: 'Scheduled',\n member_added: 'Member added',\n introducer_discovery: 'Suggested by contact',\n };\n\n const enriched = await Promise.all(\n dedupedList.map(async (opp) => {\n // \"Other parties\" = all actors who are not the current user (exclude introducer for suggestedBy).\n // Opportunity graph persists roles as 'agent'|'patient'|'peer'; manual/createManual use 'party'.\n const otherParties = opp.actors.filter((a: OpportunityActor) => a.userId !== state.userId && a.role !== 'introducer');\n const introducer = opp.actors.find((a: OpportunityActor) => a.role === 'introducer');\n const partyIds = otherParties.map((a: OpportunityActor) => a.userId);\n const idsToResolve = introducer ? [...partyIds, introducer.userId] : partyIds;\n // Use the counterpart's (non-viewer) networkId — it reflects where the match was found.\n // actors[0] is typically the viewer with an arbitrary first-target-index value.\n const counterpartActor = opp.actors.find((a: OpportunityActor) => a.userId !== state.userId);\n const actorIndexId = counterpartActor?.networkId ?? opp.actors[0]?.networkId;\n const [indexRecord, ...profileAndUserPairs] = await Promise.all([\n actorIndexId ? this.database.getNetwork(actorIndexId) : Promise.resolve(null),\n ...idsToResolve.map(async (uid: string) => {\n const [profile, user] = await Promise.all([\n this.database.getProfile(uid),\n this.database.getUser(uid),\n ]);\n return (profile?.identity?.name ?? user?.name ?? 'Unknown') as string;\n }),\n ]);\n const connectedWith = profileAndUserPairs.slice(0, partyIds.length);\n const suggestedBy = introducer ? profileAndUserPairs[partyIds.length] ?? null : null;\n const category = opp.interpretation?.category ?? 'connection';\n const confidence = opp.interpretation?.confidence ?? (opp.confidence ? Number(opp.confidence) : null);\n const source = opp.detection?.source ? (sourceLabel[opp.detection.source] ?? opp.detection.source) : null;\n return {\n id: opp.id,\n indexName: indexRecord?.title ?? (actorIndexId ?? ''),\n connectedWith,\n suggestedBy,\n reasoning: opp.interpretation?.reasoning ?? 'Connection opportunity',\n status: opp.status,\n category,\n confidence: confidence != null ? confidence : null,\n source,\n };\n })\n );\n\n return {\n readResult: {\n count: enriched.length,\n message: `You have ${enriched.length} opportunity(ies).`,\n opportunities: enriched,\n },\n };\n } catch (err) {\n logger.error('[Graph:Read] Failed', { error: err });\n return {\n readResult: { count: 0, opportunities: [], message: 'Failed to list opportunities.' },\n };\n }\n });\n };\n\n /**\n * Update Node: Change opportunity status (accept, reject, etc.).\n * For 'accepted', enforces the self-accept guard: the caller's actor entry\n * must not already have `actedAt` set — i.e. the caller has not yet been\n * the one to advance this opportunity's state. Stamps `actedAt` on accept\n * atomically with the status change via `stampOpportunityActorAction`.\n */\n const updateNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.update\", async () => {\n logger.verbose('[Graph:Update] Updating opportunity status', {\n userId: state.userId,\n opportunityId: state.opportunityId,\n newStatus: state.newStatus,\n });\n\n try {\n if (!state.opportunityId) {\n return { mutationResult: { success: false, error: 'opportunityId is required.' } };\n }\n if (!state.newStatus || !['accepted', 'rejected', 'expired'].includes(state.newStatus)) {\n return { mutationResult: { success: false, error: 'newStatus must be one of: accepted, rejected, expired.' } };\n }\n\n const opp = await this.database.getOpportunity(state.opportunityId);\n if (!opp) {\n return { mutationResult: { success: false, error: 'Opportunity not found.' } };\n }\n const callerActor = opp.actors.find((a: OpportunityActor) => a.userId === state.userId);\n if (!callerActor) {\n return { mutationResult: { success: false, error: 'You are not part of this opportunity.' } };\n }\n\n // Self-accept guard: only applies to the 'accepted' transition. Reject/expire\n // remain available to all actors regardless of prior actedAt.\n if (state.newStatus === 'accepted' && callerActor.actedAt) {\n return {\n mutationResult: {\n success: false,\n error: 'You have already acted on this opportunity. The other party must accept.',\n },\n };\n }\n\n let conversationId: string | undefined;\n if (state.newStatus === 'accepted') {\n const counterpart = opp.actors.find(\n (a: OpportunityActor) => a.userId !== state.userId && a.role !== 'introducer'\n );\n if (counterpart) {\n const dm = await this.database.getOrCreateDM(state.userId, counterpart.userId);\n conversationId = dm.id;\n }\n }\n\n if (state.newStatus === 'accepted') {\n await this.database.stampOpportunityActorAction(\n state.opportunityId,\n state.userId,\n 'accepted',\n state.userId,\n );\n } else {\n // Reject/expire do not stamp actedAt on the caller; they are\n // terminal flips, not commit signals. Keep the legacy path.\n await this.database.updateOpportunityStatus(\n state.opportunityId,\n state.newStatus as 'rejected' | 'expired',\n );\n }\n\n return {\n mutationResult: {\n success: true,\n opportunityId: state.opportunityId,\n message: `Opportunity status updated to ${state.newStatus}.`,\n ...(conversationId && { conversationId }),\n },\n };\n } catch (err) {\n logger.error('[Graph:Update] Failed', { error: err });\n return { mutationResult: { success: false, error: 'Failed to update opportunity.' } };\n }\n });\n };\n\n /**\n * Delete Node: Expire/archive an opportunity.\n */\n const deleteNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.delete\", async () => {\n logger.verbose('[Graph:Delete] Expiring opportunity', {\n userId: state.userId,\n opportunityId: state.opportunityId,\n });\n\n try {\n if (!state.opportunityId) {\n return { mutationResult: { success: false, error: 'opportunityId is required.' } };\n }\n\n const opp = await this.database.getOpportunity(state.opportunityId);\n if (!opp) {\n return { mutationResult: { success: false, error: 'Opportunity not found.' } };\n }\n const isActor = opp.actors.some((a: OpportunityActor) => a.userId === state.userId);\n if (!isActor) {\n return { mutationResult: { success: false, error: 'You are not part of this opportunity.' } };\n }\n\n await this.database.updateOpportunityStatus(state.opportunityId, 'expired');\n\n return {\n mutationResult: {\n success: true,\n opportunityId: state.opportunityId,\n message: 'Opportunity archived (expired).',\n },\n };\n } catch (err) {\n logger.error('[Graph:Delete] Failed', { error: err });\n return { mutationResult: { success: false, error: 'Failed to delete opportunity.' } };\n }\n });\n };\n\n /**\n * Send Node: Promote latent or draft opportunity to pending + queue notification.\n */\n const sendNode = async (state: typeof OpportunityGraphState.State) => {\n return timed(\"OpportunityGraph.send\", async () => {\n logger.verbose('[Graph:Send] Sending opportunity', {\n userId: state.userId,\n opportunityId: state.opportunityId,\n });\n\n try {\n if (!state.opportunityId) {\n return { mutationResult: { success: false, error: 'opportunityId is required.' } };\n }\n\n const opp = await this.database.getOpportunity(state.opportunityId);\n if (!opp) {\n return { mutationResult: { success: false, error: 'Opportunity not found.' } };\n }\n const canSendStatus = opp.status === 'latent' || opp.status === 'draft';\n if (!canSendStatus) {\n return {\n mutationResult: {\n success: false,\n error: `Opportunity is already ${opp.status}; only latent or draft opportunities can be sent.`,\n },\n };\n }\n const senderActor = opp.actors.find((a: OpportunityActor) => a.userId === state.userId);\n const hasIntroducer = opp.actors.some((a: OpportunityActor) => a.role === 'introducer');\n const canSend =\n senderActor?.role === 'introducer' ||\n senderActor?.role === 'peer' ||\n (senderActor?.role === 'patient' && !hasIntroducer) ||\n (senderActor?.role === 'party' && !hasIntroducer);\n if (!senderActor) {\n return { mutationResult: { success: false, error: 'You are not part of this opportunity.' } };\n }\n if (!canSend) {\n return { mutationResult: { success: false, error: 'You cannot send this opportunity.' } };\n }\n\n await this.database.stampOpportunityActorAction(\n state.opportunityId,\n state.userId,\n 'pending',\n );\n\n // Notify only the role that becomes visible at the next tier\n let recipients: OpportunityActor[];\n if (senderActor.role === 'introducer') {\n recipients = opp.actors.filter((a: OpportunityActor) => a.role === 'patient' || a.role === 'party');\n } else if (senderActor.role === 'peer') {\n recipients = opp.actors.filter((a: OpportunityActor) => a.role === 'peer' && a.userId !== state.userId);\n } else {\n recipients = opp.actors.filter((a: OpportunityActor) => a.role === 'agent');\n }\n\n // queueNotification is injected via constructor; if not provided, notifications are skipped.\n const notifier: QueueOpportunityNotificationFn | undefined = this.queueNotification;\n if (notifier) {\n for (const recipient of recipients) {\n await notifier(opp.id, recipient.userId, 'high');\n }\n }\n\n const recipientIds = recipients.map((a: OpportunityActor) => a.userId);\n return {\n mutationResult: {\n success: true,\n opportunityId: opp.id,\n notified: recipientIds,\n message: 'Opportunity sent. The other person has been notified.',\n },\n };\n } catch (err) {\n logger.error('[Graph:Send] Failed', { error: err });\n return { mutationResult: { success: false, error: 'Failed to send opportunity.' } };\n }\n });\n };\n\n /**\n * Negotiate Existing Node: Load an existing opportunity by ID and run bilateral negotiation.\n * Used after introducer approval to trigger the normal negotiation flow for a latent opportunity.\n */\n const negotiateExistingNode = async (state: typeof OpportunityGraphState.State) => {\n if (!state.opportunityId) return {};\n if (!this.negotiationGraph) {\n logger.warn('[Graph:NegotiateExisting] No negotiationGraph wired; skipping', {\n opportunityId: state.opportunityId,\n });\n return {};\n }\n\n try {\n const opp = await this.database.getOpportunity(state.opportunityId as string);\n if (!opp) {\n logger.warn('[Graph:NegotiateExisting] Opportunity not found', { opportunityId: state.opportunityId });\n return {};\n }\n\n const actors = opp.actors as OpportunityActor[];\n const nonIntroducerActors = actors.filter(a => a.role !== 'introducer');\n\n // Find the sourceActor: non-introducer with role patient or party, fallback to first non-introducer\n const sourceActor = nonIntroducerActors.find(a => a.role === 'patient' || a.role === 'party')\n ?? nonIntroducerActors[0];\n if (!sourceActor) {\n logger.warn('[Graph:NegotiateExisting] No source actor found', { opportunityId: state.opportunityId });\n return {};\n }\n\n // Find the candidateActor: non-introducer that is NOT the sourceActor\n const candidateActor = nonIntroducerActors.find(a => a.userId !== sourceActor.userId);\n if (!candidateActor) {\n logger.warn('[Graph:NegotiateExisting] No candidate actor found', { opportunityId: state.opportunityId });\n return {};\n }\n\n // Load user data for both actors in parallel\n const [sourceUserAccount, sourceProfile, sourceIntents, candidateAccount, candidateProfile, candidateIntents] =\n await Promise.all([\n this.database.getUser(sourceActor.userId).catch(() => null),\n this.database.getProfile(sourceActor.userId).catch(() => null),\n this.database.getActiveIntents(sourceActor.userId).catch(() => [] as ActiveIntent[]),\n this.database.getUser(candidateActor.userId).catch(() => null),\n this.database.getProfile(candidateActor.userId).catch(() => null),\n this.database.getActiveIntents(candidateActor.userId).catch(() => [] as ActiveIntent[]),\n ]);\n\n const toNegIntent = (ai: ActiveIntent) => ({\n id: ai.id as string,\n title: ai.summary ?? '',\n description: ai.payload ?? '',\n confidence: 1,\n });\n\n const sourceUser = {\n id: sourceActor.userId,\n intents: sourceIntents.slice(0, 5).map(toNegIntent),\n profile: {\n name: sourceProfile?.identity?.name ?? sourceUserAccount?.name,\n bio: sourceProfile?.identity?.bio ?? sourceUserAccount?.intro ?? undefined,\n location: sourceProfile?.identity?.location ?? sourceUserAccount?.location ?? undefined,\n skills: sourceProfile?.attributes?.skills,\n interests: sourceProfile?.attributes?.interests,\n },\n };\n\n const candidateIntentsForNeg = candidateIntents.slice(0, 5).map(toNegIntent);\n\n const candidate: NegotiationCandidate = {\n userId: candidateActor.userId,\n opportunityId: opp.id as string,\n reasoning: (opp.interpretation as { reasoning?: string } | null)?.reasoning ?? '',\n valencyRole: candidateActor.role ?? 'peer',\n networkId: (candidateActor as { networkId?: string }).networkId as string,\n candidateUser: {\n id: candidateActor.userId,\n intents: candidateIntentsForNeg,\n profile: {\n name: candidateProfile?.identity?.name ?? candidateAccount?.name,\n bio: candidateProfile?.identity?.bio ?? candidateAccount?.intro ?? undefined,\n location: candidateProfile?.identity?.location ?? candidateAccount?.location ?? undefined,\n skills: candidateProfile?.attributes?.skills,\n interests: candidateProfile?.attributes?.interests,\n },\n },\n };\n\n // Load index context for the candidate's network\n const indexContextMap = new Map<string, string>();\n if (candidate.networkId) {\n const ctx = await this.database.getNetworkMemberContext(candidate.networkId, sourceActor.userId).catch(() => null);\n const prompt = [ctx?.indexPrompt, ctx?.memberPrompt]\n .filter((v): v is string => !!v?.trim())\n .join('\\n\\n');\n if (prompt) indexContextMap.set(candidate.networkId, prompt);\n }\n\n const acceptedResults = await negotiateCandidates(\n this.negotiationGraph, sourceUser, [candidate],\n { networkId: '', prompt: '' },\n {\n maxTurns: Number(process.env.NEGOTIATION_MAX_TURNS_AMBIENT) || 6,\n indexContextOverrides: indexContextMap,\n timeoutMs: AMBIENT_PARK_WINDOW_MS,\n trigger: 'ambient',\n },\n );\n\n // Send notifications to non-introducer actors if negotiation was accepted\n if (acceptedResults.length > 0 && this.queueNotification) {\n for (const actor of nonIntroducerActors) {\n await this.queueNotification(opp.id, actor.userId, 'high').catch((err) => {\n logger.warn('[Graph:NegotiateExisting] Failed to queue notification', { actorId: actor.userId, error: err });\n });\n }\n }\n\n logger.info('[Graph:NegotiateExisting] Negotiation complete', {\n opportunityId: opp.id,\n accepted: acceptedResults.length > 0,\n });\n } catch (err) {\n logger.error('[Graph:NegotiateExisting] Failed', { opportunityId: state.opportunityId, error: err });\n return { error: `Failed to load opportunity: ${err instanceof Error ? err.message : String(err)}` };\n }\n\n return {};\n };\n\n /**\n * Node: Approve Introduction\n * Called by the introducer to approve a latent introducer-pattern opportunity.\n * Sets approved=true on the introducer actor (status stays latent), then\n * enqueues a negotiate_existing job so the parties negotiate normally.\n */\n const approveIntroductionNode = async (state: typeof OpportunityGraphState.State) => {\n const { opportunityId, userId } = state;\n if (!opportunityId) {\n return { mutationResult: { success: false, error: 'opportunityId required for approve_introduction' } };\n }\n\n let opp;\n try {\n opp = await this.database.getOpportunity(opportunityId as string);\n } catch (err) {\n return { mutationResult: { success: false, error: `Failed to load opportunity: ${err instanceof Error ? err.message : String(err)}` } };\n }\n if (!opp) {\n return { mutationResult: { success: false, error: 'Opportunity not found' } };\n }\n\n const introducerActor = (opp.actors as OpportunityActor[])\n .find(a => a.role === 'introducer' && a.userId === userId);\n if (!introducerActor) {\n return { mutationResult: { success: false, error: 'You are not the introducer for this opportunity' } };\n }\n if (introducerActor.approved === true) {\n return { mutationResult: { success: false, error: 'Introduction already approved' } };\n }\n\n const updated = await this.database.updateOpportunityActorApproval(opportunityId as string, userId as string, true);\n if (!updated) {\n return { mutationResult: { success: false, error: 'Failed to update approval' } };\n }\n\n if (this.queueNegotiateExisting) {\n await this.queueNegotiateExisting(opportunityId as string, userId as string);\n }\n\n return { mutationResult: { success: true, opportunityId } };\n };\n\n // ═══════════════════════════════════════════════════════════════\n // CONDITIONAL ROUTING FUNCTIONS\n // ═══════════════════════════════════════════════════════════════\n\n /**\n * Router: Decides which path based on operationMode.\n */\n const routeByMode = (state: typeof OpportunityGraphState.State): string => {\n const mode = state.operationMode ?? 'create';\n if (mode === 'read') return 'read';\n if (mode === 'update') return 'update';\n if (mode === 'delete') return 'delete_opp';\n if (mode === 'send') return 'send';\n if (mode === 'create_introduction') return 'intro_validation';\n if (mode === 'negotiate_existing') return 'negotiate_existing';\n if (mode === 'approve_introduction') return 'approve_introduction';\n // 'create' is the default discovery pipeline\n return 'prep';\n };\n\n /**\n * After prep: check if user has indexed intents.\n * Early exit if none (cannot find opportunities).\n */\n const shouldContinueAfterPrep = (state: typeof OpportunityGraphState.State): string => {\n if (state.error) {\n logger.verbose('[Graph:Routing] Error in prep - ending early');\n return END;\n }\n // Continuation mode: skip scope/resolve/discovery, go straight to evaluation\n if (state.operationMode === 'continue_discovery') {\n logger.verbose('[Graph:Routing] Continue discovery → skipping to evaluation', {\n candidatesLoaded: state.candidates.length,\n });\n return 'evaluation';\n }\n logger.verbose('[Graph:Routing] Continuing to scope');\n return 'scope';\n };\n\n /**\n * After scope: check if we have target indexes.\n */\n const shouldContinueAfterScope = (state: typeof OpportunityGraphState.State): string => {\n if (state.error || state.targetNetworks.length === 0) {\n logger.verbose('[Graph:Routing] No target indexes - ending early');\n return END;\n }\n logger.verbose('[Graph:Routing] Continuing to resolve');\n return 'resolve';\n };\n\n /**\n * After discovery: if create-intent signal was set, end so tool can return it; else continue to evaluation.\n */\n const shouldContinueAfterDiscovery = (state: typeof OpportunityGraphState.State): string => {\n if (state.createIntentSuggested) {\n logger.verbose('[Graph:Routing] Create-intent suggested - ending for tool signal');\n return END;\n }\n return 'evaluation';\n };\n\n /**\n * After intro_validation: if validation set state.error, end early; else continue to intro_evaluation.\n */\n const routeAfterIntroValidation = (state: typeof OpportunityGraphState.State): string => {\n if (state.error) {\n logger.verbose('[Graph:Routing] Intro validation error - ending early');\n return END;\n }\n return 'intro_evaluation';\n };\n\n // ═══════════════════════════════════════════════════════════════\n // GRAPH ASSEMBLY\n // ═══════════════════════════════════════════════════════════════\n\n const workflow = new StateGraph(OpportunityGraphState)\n // Add all nodes\n .addNode('prep', prepNode)\n .addNode('scope', scopeNode)\n .addNode('resolve', resolveNode)\n .addNode('discovery', discoveryNode)\n .addNode('evaluation', evaluationNode)\n .addNode('ranking', rankingNode)\n .addNode('intro_validation', introValidationNode)\n .addNode('intro_evaluation', introEvaluationNode)\n .addNode('persist', persistNode)\n // CRUD nodes\n .addNode('read', readNode)\n .addNode('update', updateNode)\n .addNode('delete_opp', deleteNode)\n .addNode('send', sendNode)\n .addNode('negotiate_existing', negotiateExistingNode)\n .addNode('approve_introduction', approveIntroductionNode)\n\n // Route by operation mode from START\n .addConditionalEdges(START, routeByMode, {\n prep: 'prep',\n intro_validation: 'intro_validation',\n read: 'read',\n update: 'update',\n delete_opp: 'delete_opp',\n send: 'send',\n negotiate_existing: 'negotiate_existing',\n approve_introduction: 'approve_introduction',\n })\n\n // Introduction path: validation -> evaluation -> persist (or END on validation error)\n .addConditionalEdges('intro_validation', routeAfterIntroValidation, {\n intro_evaluation: 'intro_evaluation',\n [END]: END,\n })\n .addEdge('intro_evaluation', 'persist')\n\n // CRUD fast paths -> END\n .addEdge('read', END)\n .addEdge('update', END)\n .addEdge('delete_opp', END)\n .addEdge('send', END)\n .addEdge('negotiate_existing', END)\n .addEdge('approve_introduction', END)\n\n // Conditional routing: early exit if no indexed intents\n .addConditionalEdges('prep', shouldContinueAfterPrep, {\n scope: 'scope',\n evaluation: 'evaluation',\n [END]: END,\n })\n\n // Conditional routing: early exit if no target indexes\n .addConditionalEdges('scope', shouldContinueAfterScope, {\n resolve: 'resolve',\n [END]: END,\n })\n .addEdge('resolve', 'discovery')\n\n .addConditionalEdges('discovery', shouldContinueAfterDiscovery, {\n evaluation: 'evaluation',\n [END]: END,\n })\n\n // Discovery → Ranking → Persist → Negotiate (post-persist).\n // Negotiation runs against persisted opportunities so each negotiation receives the\n // opportunity's id and its outcome flips status (pending|stalled|rejected) via the\n // negotiation graph's finalize node. Skipped for continue_discovery and when no\n // negotiation graph or no opportunities were persisted (negotiateNode returns early).\n .addNode('negotiate', negotiateNode)\n .addEdge('evaluation', 'ranking')\n .addEdge('ranking', 'persist')\n .addConditionalEdges('persist', (state) => {\n if (state.operationMode === 'continue_discovery') return END;\n if (!this.negotiationGraph) return END;\n if (!state.opportunities || state.opportunities.length === 0) return END;\n return 'negotiate';\n }, {\n negotiate: 'negotiate',\n [END]: END,\n })\n .addEdge('negotiate', END);\n\n return workflow.compile();\n }\n}\n"]}