@indexnetwork/protocol 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (578) hide show
  1. package/dist/chat/chat-streaming.types.d.ts.map +1 -0
  2. package/dist/chat/chat-streaming.types.js.map +1 -0
  3. package/dist/{agents → chat}/chat.agent.d.ts +2 -2
  4. package/dist/chat/chat.agent.d.ts.map +1 -0
  5. package/dist/{agents → chat}/chat.agent.js +7 -7
  6. package/dist/chat/chat.agent.js.map +1 -0
  7. package/dist/{graphs → chat}/chat.graph.d.ts +43 -43
  8. package/dist/chat/chat.graph.d.ts.map +1 -0
  9. package/dist/{graphs → chat}/chat.graph.js +6 -6
  10. package/dist/chat/chat.graph.js.map +1 -0
  11. package/dist/{agents → chat}/chat.prompt.d.ts +1 -1
  12. package/dist/chat/chat.prompt.d.ts.map +1 -0
  13. package/dist/chat/chat.prompt.js.map +1 -0
  14. package/dist/{agents → chat}/chat.prompt.modules.d.ts +1 -1
  15. package/dist/chat/chat.prompt.modules.d.ts.map +1 -0
  16. package/dist/chat/chat.prompt.modules.js.map +1 -0
  17. package/dist/{states → chat}/chat.state.d.ts +1 -1
  18. package/dist/chat/chat.state.d.ts.map +1 -0
  19. package/dist/chat/chat.state.js.map +1 -0
  20. package/dist/{streamers → chat}/chat.streamer.d.ts +1 -1
  21. package/dist/chat/chat.streamer.d.ts.map +1 -0
  22. package/dist/{streamers → chat}/chat.streamer.js +2 -2
  23. package/dist/chat/chat.streamer.js.map +1 -0
  24. package/dist/{agents/suggestion.generator.d.ts → chat/chat.suggester.d.ts} +2 -2
  25. package/dist/chat/chat.suggester.d.ts.map +1 -0
  26. package/dist/{agents/suggestion.generator.js → chat/chat.suggester.js} +4 -4
  27. package/dist/chat/chat.suggester.js.map +1 -0
  28. package/dist/chat/chat.title.generator.d.ts.map +1 -0
  29. package/dist/{agents → chat}/chat.title.generator.js +3 -3
  30. package/dist/chat/chat.title.generator.js.map +1 -0
  31. package/dist/chat/chat.utils.d.ts.map +1 -0
  32. package/dist/chat/chat.utils.js.map +1 -0
  33. package/dist/{graphs → chat}/tests/chat.graph.mocks.d.ts +3 -3
  34. package/dist/chat/tests/chat.graph.mocks.d.ts.map +1 -0
  35. package/dist/chat/tests/chat.graph.mocks.js.map +1 -0
  36. package/dist/{agents/invite.generator.d.ts → contact/contact.inviter.d.ts} +1 -1
  37. package/dist/contact/contact.inviter.d.ts.map +1 -0
  38. package/dist/{agents/invite.generator.js → contact/contact.inviter.js} +2 -2
  39. package/dist/contact/contact.inviter.js.map +1 -0
  40. package/dist/{tools → contact}/contact.tools.d.ts +1 -1
  41. package/dist/contact/contact.tools.d.ts.map +1 -0
  42. package/dist/contact/contact.tools.js +130 -0
  43. package/dist/contact/contact.tools.js.map +1 -0
  44. package/dist/index.d.ts +61 -59
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +39 -39
  47. package/dist/index.js.map +1 -1
  48. package/dist/{tools → integration}/integration.tools.d.ts +1 -1
  49. package/dist/integration/integration.tools.d.ts.map +1 -0
  50. package/dist/{tools → integration}/integration.tools.js +13 -11
  51. package/dist/integration/integration.tools.js.map +1 -0
  52. package/dist/{agents → intent}/intent.clarifier.d.ts.map +1 -1
  53. package/dist/{agents → intent}/intent.clarifier.js +3 -3
  54. package/dist/{agents → intent}/intent.clarifier.js.map +1 -1
  55. package/dist/{graphs → intent}/intent.graph.d.ts +10 -10
  56. package/dist/{graphs → intent}/intent.graph.d.ts.map +1 -1
  57. package/dist/{graphs → intent}/intent.graph.js +7 -7
  58. package/dist/{graphs → intent}/intent.graph.js.map +1 -1
  59. package/dist/{agents → intent}/intent.indexer.d.ts.map +1 -1
  60. package/dist/{agents → intent}/intent.indexer.js +3 -3
  61. package/dist/{agents → intent}/intent.indexer.js.map +1 -1
  62. package/dist/intent/intent.inferrer.d.ts.map +1 -0
  63. package/dist/{agents → intent}/intent.inferrer.js +4 -9
  64. package/dist/intent/intent.inferrer.js.map +1 -0
  65. package/dist/{agents → intent}/intent.reconciler.d.ts.map +1 -1
  66. package/dist/{agents → intent}/intent.reconciler.js +3 -3
  67. package/dist/{agents → intent}/intent.reconciler.js.map +1 -1
  68. package/dist/{states → intent}/intent.state.d.ts +4 -4
  69. package/dist/{states → intent}/intent.state.d.ts.map +1 -1
  70. package/dist/{states → intent}/intent.state.js.map +1 -1
  71. package/dist/{tools → intent}/intent.tools.d.ts +1 -1
  72. package/dist/intent/intent.tools.d.ts.map +1 -0
  73. package/dist/{tools → intent}/intent.tools.js +115 -26
  74. package/dist/intent/intent.tools.js.map +1 -0
  75. package/dist/{agents → intent}/intent.verifier.d.ts.map +1 -1
  76. package/dist/{agents → intent}/intent.verifier.js +3 -3
  77. package/dist/{agents → intent}/intent.verifier.js.map +1 -1
  78. package/dist/{graphs → maintenance}/maintenance.graph.d.ts +6 -6
  79. package/dist/maintenance/maintenance.graph.d.ts.map +1 -0
  80. package/dist/{graphs → maintenance}/maintenance.graph.js +5 -5
  81. package/dist/maintenance/maintenance.graph.js.map +1 -0
  82. package/dist/{states → maintenance}/maintenance.state.d.ts +2 -2
  83. package/dist/maintenance/maintenance.state.d.ts.map +1 -0
  84. package/dist/maintenance/maintenance.state.js.map +1 -0
  85. package/dist/mcp/mcp.server.d.ts +2 -2
  86. package/dist/mcp/mcp.server.d.ts.map +1 -1
  87. package/dist/mcp/mcp.server.js +5 -4
  88. package/dist/mcp/mcp.server.js.map +1 -1
  89. package/dist/{graphs → negotiation}/negotiation.graph.d.ts +50 -14
  90. package/dist/negotiation/negotiation.graph.d.ts.map +1 -0
  91. package/dist/{graphs → negotiation}/negotiation.graph.js +51 -9
  92. package/dist/negotiation/negotiation.graph.js.map +1 -0
  93. package/dist/negotiation/negotiation.insights.generator.d.ts.map +1 -0
  94. package/dist/{agents → negotiation}/negotiation.insights.generator.js +3 -3
  95. package/dist/negotiation/negotiation.insights.generator.js.map +1 -0
  96. package/dist/{agents → negotiation}/negotiation.proposer.d.ts +1 -1
  97. package/dist/negotiation/negotiation.proposer.d.ts.map +1 -0
  98. package/dist/{agents → negotiation}/negotiation.proposer.js +2 -2
  99. package/dist/negotiation/negotiation.proposer.js.map +1 -0
  100. package/dist/{agents → negotiation}/negotiation.responder.d.ts +1 -1
  101. package/dist/negotiation/negotiation.responder.d.ts.map +1 -0
  102. package/dist/{agents → negotiation}/negotiation.responder.js +2 -2
  103. package/dist/negotiation/negotiation.responder.js.map +1 -0
  104. package/dist/{states → negotiation}/negotiation.state.d.ts +12 -0
  105. package/dist/negotiation/negotiation.state.d.ts.map +1 -0
  106. package/dist/{states → negotiation}/negotiation.state.js +16 -0
  107. package/dist/negotiation/negotiation.state.js.map +1 -0
  108. package/dist/negotiation/negotiation.tools.d.ts +7 -0
  109. package/dist/negotiation/negotiation.tools.d.ts.map +1 -0
  110. package/dist/negotiation/negotiation.tools.js +547 -0
  111. package/dist/negotiation/negotiation.tools.js.map +1 -0
  112. package/dist/{graphs/intent_network.graph.d.ts → network/indexer/indexer.graph.d.ts} +5 -5
  113. package/dist/network/indexer/indexer.graph.d.ts.map +1 -0
  114. package/dist/{graphs/intent_network.graph.js → network/indexer/indexer.graph.js} +5 -5
  115. package/dist/network/indexer/indexer.graph.js.map +1 -0
  116. package/dist/{states/intent_network.state.d.ts → network/indexer/indexer.state.d.ts} +2 -2
  117. package/dist/network/indexer/indexer.state.d.ts.map +1 -0
  118. package/dist/{states/intent_network.state.js → network/indexer/indexer.state.js} +1 -1
  119. package/dist/network/indexer/indexer.state.js.map +1 -0
  120. package/dist/{graphs/network_membership.graph.d.ts → network/membership/membership.graph.d.ts} +2 -2
  121. package/dist/network/membership/membership.graph.d.ts.map +1 -0
  122. package/dist/{graphs/network_membership.graph.js → network/membership/membership.graph.js} +4 -4
  123. package/dist/network/membership/membership.graph.js.map +1 -0
  124. package/dist/{states/network_membership.state.d.ts → network/membership/membership.state.d.ts} +1 -1
  125. package/dist/network/membership/membership.state.d.ts.map +1 -0
  126. package/dist/{states/network_membership.state.js → network/membership/membership.state.js} +1 -1
  127. package/dist/network/membership/membership.state.js.map +1 -0
  128. package/dist/{graphs → network}/network.graph.d.ts +1 -1
  129. package/dist/network/network.graph.d.ts.map +1 -0
  130. package/dist/{graphs → network}/network.graph.js +3 -3
  131. package/dist/network/network.graph.js.map +1 -0
  132. package/dist/network/network.state.d.ts.map +1 -0
  133. package/dist/network/network.state.js.map +1 -0
  134. package/dist/{tools → network}/network.tools.d.ts +1 -1
  135. package/dist/network/network.tools.d.ts.map +1 -0
  136. package/dist/{tools → network}/network.tools.js +67 -23
  137. package/dist/network/network.tools.js.map +1 -0
  138. package/dist/{agents/home.categorizer.d.ts → opportunity/feed/feed.categorizer.d.ts} +2 -2
  139. package/dist/opportunity/feed/feed.categorizer.d.ts.map +1 -0
  140. package/dist/{agents/home.categorizer.js → opportunity/feed/feed.categorizer.js} +5 -5
  141. package/dist/opportunity/feed/feed.categorizer.js.map +1 -0
  142. package/dist/{graphs/home.graph.d.ts → opportunity/feed/feed.graph.d.ts} +15 -15
  143. package/dist/opportunity/feed/feed.graph.d.ts.map +1 -0
  144. package/dist/{graphs/home.graph.js → opportunity/feed/feed.graph.js} +10 -10
  145. package/dist/opportunity/feed/feed.graph.js.map +1 -0
  146. package/dist/opportunity/feed/feed.health.d.ts.map +1 -0
  147. package/dist/{support → opportunity/feed}/feed.health.js +1 -1
  148. package/dist/opportunity/feed/feed.health.js.map +1 -0
  149. package/dist/{states/home.state.d.ts → opportunity/feed/feed.state.d.ts} +3 -3
  150. package/dist/opportunity/feed/feed.state.d.ts.map +1 -0
  151. package/dist/{states/home.state.js → opportunity/feed/feed.state.js} +1 -1
  152. package/dist/opportunity/feed/feed.state.js.map +1 -0
  153. package/dist/{support → opportunity}/opportunity.discover.d.ts +4 -4
  154. package/dist/opportunity/opportunity.discover.d.ts.map +1 -0
  155. package/dist/{support → opportunity}/opportunity.discover.js +4 -4
  156. package/dist/opportunity/opportunity.discover.js.map +1 -0
  157. package/dist/{support → opportunity}/opportunity.enricher.d.ts +3 -3
  158. package/dist/opportunity/opportunity.enricher.d.ts.map +1 -0
  159. package/dist/{support → opportunity}/opportunity.enricher.js +1 -1
  160. package/dist/opportunity/opportunity.enricher.js.map +1 -0
  161. package/dist/{agents → opportunity}/opportunity.evaluator.d.ts +2 -2
  162. package/dist/opportunity/opportunity.evaluator.d.ts.map +1 -0
  163. package/dist/{agents → opportunity}/opportunity.evaluator.js +4 -4
  164. package/dist/opportunity/opportunity.evaluator.js.map +1 -0
  165. package/dist/{graphs → opportunity}/opportunity.graph.d.ts +34 -34
  166. package/dist/opportunity/opportunity.graph.d.ts.map +1 -0
  167. package/dist/{graphs → opportunity}/opportunity.graph.js +14 -12
  168. package/dist/opportunity/opportunity.graph.js.map +1 -0
  169. package/dist/{support/introducer.discovery.d.ts → opportunity/opportunity.introducer.d.ts} +1 -1
  170. package/dist/opportunity/opportunity.introducer.d.ts.map +1 -0
  171. package/dist/{support/introducer.discovery.js → opportunity/opportunity.introducer.js} +2 -2
  172. package/dist/opportunity/opportunity.introducer.js.map +1 -0
  173. package/dist/{support/opportunity.constants.d.ts → opportunity/opportunity.labels.d.ts} +1 -1
  174. package/dist/opportunity/opportunity.labels.d.ts.map +1 -0
  175. package/dist/{support/opportunity.constants.js → opportunity/opportunity.labels.js} +1 -1
  176. package/dist/opportunity/opportunity.labels.js.map +1 -0
  177. package/dist/{support → opportunity}/opportunity.persist.d.ts +2 -2
  178. package/dist/opportunity/opportunity.persist.d.ts.map +1 -0
  179. package/dist/{support → opportunity}/opportunity.persist.js +1 -1
  180. package/dist/opportunity/opportunity.persist.js.map +1 -0
  181. package/dist/{support/opportunity.card-text.d.ts → opportunity/opportunity.presentation.d.ts} +33 -4
  182. package/dist/opportunity/opportunity.presentation.d.ts.map +1 -0
  183. package/dist/{support/opportunity.card-text.js → opportunity/opportunity.presentation.js} +164 -6
  184. package/dist/opportunity/opportunity.presentation.js.map +1 -0
  185. package/dist/{agents → opportunity}/opportunity.presenter.d.ts +2 -2
  186. package/dist/opportunity/opportunity.presenter.d.ts.map +1 -0
  187. package/dist/{agents → opportunity}/opportunity.presenter.js +5 -5
  188. package/dist/opportunity/opportunity.presenter.js.map +1 -0
  189. package/dist/{states → opportunity}/opportunity.state.d.ts +5 -5
  190. package/dist/opportunity/opportunity.state.d.ts.map +1 -0
  191. package/dist/opportunity/opportunity.state.js.map +1 -0
  192. package/dist/{tools → opportunity}/opportunity.tools.d.ts +2 -2
  193. package/dist/opportunity/opportunity.tools.d.ts.map +1 -0
  194. package/dist/{tools → opportunity}/opportunity.tools.js +56 -32
  195. package/dist/opportunity/opportunity.tools.js.map +1 -0
  196. package/dist/{support → opportunity}/opportunity.utils.d.ts +1 -1
  197. package/dist/opportunity/opportunity.utils.d.ts.map +1 -0
  198. package/dist/{support → opportunity}/opportunity.utils.js +1 -1
  199. package/dist/opportunity/opportunity.utils.js.map +1 -0
  200. package/dist/{support/profile.enrichment-display-name.d.ts → profile/profile.enricher.d.ts} +1 -1
  201. package/dist/profile/profile.enricher.d.ts.map +1 -0
  202. package/dist/{support/profile.enrichment-display-name.js → profile/profile.enricher.js} +1 -1
  203. package/dist/profile/profile.enricher.js.map +1 -0
  204. package/dist/profile/profile.generator.d.ts.map +1 -0
  205. package/dist/{agents → profile}/profile.generator.js +3 -3
  206. package/dist/profile/profile.generator.js.map +1 -0
  207. package/dist/{graphs → profile}/profile.graph.d.ts +6 -6
  208. package/dist/profile/profile.graph.d.ts.map +1 -0
  209. package/dist/{graphs → profile}/profile.graph.js +7 -7
  210. package/dist/profile/profile.graph.js.map +1 -0
  211. package/dist/profile/profile.hyde.generator.d.ts.map +1 -0
  212. package/dist/{agents → profile}/profile.hyde.generator.js +3 -3
  213. package/dist/profile/profile.hyde.generator.js.map +1 -0
  214. package/dist/{states → profile}/profile.state.d.ts +2 -2
  215. package/dist/profile/profile.state.d.ts.map +1 -0
  216. package/dist/profile/profile.state.js.map +1 -0
  217. package/dist/profile/profile.tools.d.ts +3 -0
  218. package/dist/profile/profile.tools.d.ts.map +1 -0
  219. package/dist/{tools → profile}/profile.tools.js +53 -21
  220. package/dist/profile/profile.tools.js.map +1 -0
  221. package/dist/shared/agent/model.config.d.ts.map +1 -0
  222. package/dist/shared/agent/model.config.js.map +1 -0
  223. package/dist/{streamers → shared/agent}/response.streamer.d.ts +1 -1
  224. package/dist/shared/agent/response.streamer.d.ts.map +1 -0
  225. package/dist/{streamers → shared/agent}/response.streamer.js +2 -2
  226. package/dist/shared/agent/response.streamer.js.map +1 -0
  227. package/dist/shared/agent/tests/llm-assert.d.ts.map +1 -0
  228. package/dist/shared/agent/tests/llm-assert.js.map +1 -0
  229. package/dist/{tools/index.d.ts → shared/agent/tool.factory.d.ts} +1 -1
  230. package/dist/shared/agent/tool.factory.d.ts.map +1 -0
  231. package/dist/{tools/index.js → shared/agent/tool.factory.js} +34 -23
  232. package/dist/shared/agent/tool.factory.js.map +1 -0
  233. package/dist/{tools → shared/agent}/tool.helpers.d.ts +25 -3
  234. package/dist/shared/agent/tool.helpers.d.ts.map +1 -0
  235. package/dist/shared/agent/tool.helpers.js.map +1 -0
  236. package/dist/shared/agent/tool.registry.d.ts.map +1 -0
  237. package/dist/{tools → shared/agent}/tool.registry.js +11 -7
  238. package/dist/shared/agent/tool.registry.js.map +1 -0
  239. package/dist/shared/agent/utility.tools.d.ts.map +1 -0
  240. package/dist/shared/agent/utility.tools.js +276 -0
  241. package/dist/shared/agent/utility.tools.js.map +1 -0
  242. package/dist/shared/hyde/hyde.generator.d.ts.map +1 -0
  243. package/dist/{agents → shared/hyde}/hyde.generator.js +3 -3
  244. package/dist/shared/hyde/hyde.generator.js.map +1 -0
  245. package/dist/{graphs → shared/hyde}/hyde.graph.d.ts +9 -9
  246. package/dist/shared/hyde/hyde.graph.d.ts.map +1 -0
  247. package/dist/{graphs → shared/hyde}/hyde.graph.js +5 -5
  248. package/dist/shared/hyde/hyde.graph.js.map +1 -0
  249. package/dist/{states → shared/hyde}/hyde.state.d.ts +2 -2
  250. package/dist/shared/hyde/hyde.state.d.ts.map +1 -0
  251. package/dist/shared/hyde/hyde.state.js.map +1 -0
  252. package/dist/shared/hyde/hyde.strategies.d.ts.map +1 -0
  253. package/dist/shared/hyde/hyde.strategies.js.map +1 -0
  254. package/dist/shared/hyde/lens.inferrer.d.ts.map +1 -0
  255. package/dist/{agents → shared/hyde}/lens.inferrer.js +3 -3
  256. package/dist/shared/hyde/lens.inferrer.js.map +1 -0
  257. package/dist/shared/interfaces/auth.interface.d.ts.map +1 -0
  258. package/dist/shared/interfaces/auth.interface.js.map +1 -0
  259. package/dist/shared/interfaces/cache.interface.d.ts.map +1 -0
  260. package/dist/shared/interfaces/cache.interface.js.map +1 -0
  261. package/dist/shared/interfaces/chat-session.interface.d.ts.map +1 -0
  262. package/dist/shared/interfaces/chat-session.interface.js.map +1 -0
  263. package/dist/shared/interfaces/contact.interface.d.ts.map +1 -0
  264. package/dist/shared/interfaces/contact.interface.js.map +1 -0
  265. package/dist/{interfaces → shared/interfaces}/database.interface.d.ts +53 -1
  266. package/dist/shared/interfaces/database.interface.d.ts.map +1 -0
  267. package/dist/shared/interfaces/database.interface.js.map +1 -0
  268. package/dist/{interfaces → shared/interfaces}/embedder.interface.d.ts +1 -1
  269. package/dist/shared/interfaces/embedder.interface.d.ts.map +1 -0
  270. package/dist/shared/interfaces/embedder.interface.js.map +1 -0
  271. package/dist/shared/interfaces/enrichment.interface.d.ts.map +1 -0
  272. package/dist/shared/interfaces/enrichment.interface.js.map +1 -0
  273. package/dist/shared/interfaces/integration.interface.d.ts.map +1 -0
  274. package/dist/shared/interfaces/integration.interface.js.map +1 -0
  275. package/dist/shared/interfaces/negotiation-events.interface.d.ts +58 -0
  276. package/dist/shared/interfaces/negotiation-events.interface.d.ts.map +1 -0
  277. package/dist/shared/interfaces/negotiation-events.interface.js +7 -0
  278. package/dist/shared/interfaces/negotiation-events.interface.js.map +1 -0
  279. package/dist/shared/interfaces/queue.interface.d.ts.map +1 -0
  280. package/dist/shared/interfaces/queue.interface.js.map +1 -0
  281. package/dist/shared/interfaces/scraper.interface.d.ts.map +1 -0
  282. package/dist/shared/interfaces/scraper.interface.js.map +1 -0
  283. package/dist/shared/interfaces/storage.interface.d.ts.map +1 -0
  284. package/dist/shared/interfaces/storage.interface.js.map +1 -0
  285. package/dist/shared/interfaces/webhook.interface.d.ts +25 -0
  286. package/dist/shared/interfaces/webhook.interface.d.ts.map +1 -0
  287. package/dist/shared/interfaces/webhook.interface.js +2 -0
  288. package/dist/shared/interfaces/webhook.interface.js.map +1 -0
  289. package/dist/shared/observability/debug-meta.sanitizer.d.ts.map +1 -0
  290. package/dist/shared/observability/debug-meta.sanitizer.js.map +1 -0
  291. package/dist/shared/observability/log.d.ts.map +1 -0
  292. package/dist/shared/observability/log.js.map +1 -0
  293. package/dist/shared/observability/performance.d.ts.map +1 -0
  294. package/dist/shared/observability/performance.js.map +1 -0
  295. package/dist/shared/observability/protocol.logger.d.ts.map +1 -0
  296. package/dist/shared/observability/protocol.logger.js.map +1 -0
  297. package/dist/shared/observability/request-context.d.ts.map +1 -0
  298. package/dist/shared/observability/request-context.js.map +1 -0
  299. package/dist/shared/ui/lucide.icon-catalog.d.ts.map +1 -0
  300. package/dist/shared/ui/lucide.icon-catalog.js.map +1 -0
  301. package/dist/webhook/webhook.tools.d.ts +7 -0
  302. package/dist/webhook/webhook.tools.d.ts.map +1 -0
  303. package/dist/webhook/webhook.tools.js +127 -0
  304. package/dist/webhook/webhook.tools.js.map +1 -0
  305. package/package.json +1 -1
  306. package/dist/agents/chat.agent.d.ts.map +0 -1
  307. package/dist/agents/chat.agent.js.map +0 -1
  308. package/dist/agents/chat.prompt.d.ts.map +0 -1
  309. package/dist/agents/chat.prompt.js.map +0 -1
  310. package/dist/agents/chat.prompt.modules.d.ts.map +0 -1
  311. package/dist/agents/chat.prompt.modules.js.map +0 -1
  312. package/dist/agents/chat.title.generator.d.ts.map +0 -1
  313. package/dist/agents/chat.title.generator.js.map +0 -1
  314. package/dist/agents/home.categorizer.d.ts.map +0 -1
  315. package/dist/agents/home.categorizer.js.map +0 -1
  316. package/dist/agents/hyde.generator.d.ts.map +0 -1
  317. package/dist/agents/hyde.generator.js.map +0 -1
  318. package/dist/agents/hyde.strategies.d.ts.map +0 -1
  319. package/dist/agents/hyde.strategies.js.map +0 -1
  320. package/dist/agents/intent.inferrer.d.ts.map +0 -1
  321. package/dist/agents/intent.inferrer.js.map +0 -1
  322. package/dist/agents/invite.generator.d.ts.map +0 -1
  323. package/dist/agents/invite.generator.js.map +0 -1
  324. package/dist/agents/lens.inferrer.d.ts.map +0 -1
  325. package/dist/agents/lens.inferrer.js.map +0 -1
  326. package/dist/agents/model.config.d.ts.map +0 -1
  327. package/dist/agents/model.config.js.map +0 -1
  328. package/dist/agents/negotiation.insights.generator.d.ts.map +0 -1
  329. package/dist/agents/negotiation.insights.generator.js.map +0 -1
  330. package/dist/agents/negotiation.proposer.d.ts.map +0 -1
  331. package/dist/agents/negotiation.proposer.js.map +0 -1
  332. package/dist/agents/negotiation.responder.d.ts.map +0 -1
  333. package/dist/agents/negotiation.responder.js.map +0 -1
  334. package/dist/agents/opportunity.evaluator.d.ts.map +0 -1
  335. package/dist/agents/opportunity.evaluator.js.map +0 -1
  336. package/dist/agents/opportunity.presenter.d.ts.map +0 -1
  337. package/dist/agents/opportunity.presenter.js.map +0 -1
  338. package/dist/agents/profile.generator.d.ts.map +0 -1
  339. package/dist/agents/profile.generator.js.map +0 -1
  340. package/dist/agents/profile.hyde.generator.d.ts.map +0 -1
  341. package/dist/agents/profile.hyde.generator.js.map +0 -1
  342. package/dist/agents/suggestion.generator.d.ts.map +0 -1
  343. package/dist/agents/suggestion.generator.js.map +0 -1
  344. package/dist/graphs/chat.graph.d.ts.map +0 -1
  345. package/dist/graphs/chat.graph.js.map +0 -1
  346. package/dist/graphs/home.graph.d.ts.map +0 -1
  347. package/dist/graphs/home.graph.js.map +0 -1
  348. package/dist/graphs/hyde.graph.d.ts.map +0 -1
  349. package/dist/graphs/hyde.graph.js.map +0 -1
  350. package/dist/graphs/index.graph.d.ts +0 -620
  351. package/dist/graphs/index.graph.d.ts.map +0 -1
  352. package/dist/graphs/index.graph.js +0 -226
  353. package/dist/graphs/index.graph.js.map +0 -1
  354. package/dist/graphs/index_membership.graph.d.ts +0 -250
  355. package/dist/graphs/index_membership.graph.d.ts.map +0 -1
  356. package/dist/graphs/index_membership.graph.js +0 -204
  357. package/dist/graphs/index_membership.graph.js.map +0 -1
  358. package/dist/graphs/intent_index.graph.d.ts +0 -396
  359. package/dist/graphs/intent_index.graph.d.ts.map +0 -1
  360. package/dist/graphs/intent_index.graph.js +0 -331
  361. package/dist/graphs/intent_index.graph.js.map +0 -1
  362. package/dist/graphs/intent_network.graph.d.ts.map +0 -1
  363. package/dist/graphs/intent_network.graph.js.map +0 -1
  364. package/dist/graphs/maintenance.graph.d.ts.map +0 -1
  365. package/dist/graphs/maintenance.graph.js.map +0 -1
  366. package/dist/graphs/negotiation.graph.d.ts.map +0 -1
  367. package/dist/graphs/negotiation.graph.js.map +0 -1
  368. package/dist/graphs/network.graph.d.ts.map +0 -1
  369. package/dist/graphs/network.graph.js.map +0 -1
  370. package/dist/graphs/network_membership.graph.d.ts.map +0 -1
  371. package/dist/graphs/network_membership.graph.js.map +0 -1
  372. package/dist/graphs/opportunity.graph.d.ts.map +0 -1
  373. package/dist/graphs/opportunity.graph.js.map +0 -1
  374. package/dist/graphs/profile.graph.d.ts.map +0 -1
  375. package/dist/graphs/profile.graph.js.map +0 -1
  376. package/dist/graphs/tests/chat.graph.mocks.d.ts.map +0 -1
  377. package/dist/graphs/tests/chat.graph.mocks.js.map +0 -1
  378. package/dist/interfaces/auth.interface.d.ts.map +0 -1
  379. package/dist/interfaces/auth.interface.js.map +0 -1
  380. package/dist/interfaces/cache.interface.d.ts.map +0 -1
  381. package/dist/interfaces/cache.interface.js.map +0 -1
  382. package/dist/interfaces/chat-session.interface.d.ts.map +0 -1
  383. package/dist/interfaces/chat-session.interface.js.map +0 -1
  384. package/dist/interfaces/contact.interface.d.ts.map +0 -1
  385. package/dist/interfaces/contact.interface.js.map +0 -1
  386. package/dist/interfaces/database.interface.d.ts.map +0 -1
  387. package/dist/interfaces/database.interface.js.map +0 -1
  388. package/dist/interfaces/embedder.interface.d.ts.map +0 -1
  389. package/dist/interfaces/embedder.interface.js.map +0 -1
  390. package/dist/interfaces/enrichment.interface.d.ts.map +0 -1
  391. package/dist/interfaces/enrichment.interface.js.map +0 -1
  392. package/dist/interfaces/integration.interface.d.ts.map +0 -1
  393. package/dist/interfaces/integration.interface.js.map +0 -1
  394. package/dist/interfaces/queue.interface.d.ts.map +0 -1
  395. package/dist/interfaces/queue.interface.js.map +0 -1
  396. package/dist/interfaces/scraper.interface.d.ts.map +0 -1
  397. package/dist/interfaces/scraper.interface.js.map +0 -1
  398. package/dist/interfaces/storage.interface.d.ts.map +0 -1
  399. package/dist/interfaces/storage.interface.js.map +0 -1
  400. package/dist/states/chat.state.d.ts.map +0 -1
  401. package/dist/states/chat.state.js.map +0 -1
  402. package/dist/states/home.state.d.ts.map +0 -1
  403. package/dist/states/home.state.js.map +0 -1
  404. package/dist/states/hyde.state.d.ts.map +0 -1
  405. package/dist/states/hyde.state.js.map +0 -1
  406. package/dist/states/index.state.d.ts +0 -179
  407. package/dist/states/index.state.d.ts.map +0 -1
  408. package/dist/states/index.state.js +0 -56
  409. package/dist/states/index.state.js.map +0 -1
  410. package/dist/states/index_membership.state.d.ts +0 -77
  411. package/dist/states/index_membership.state.d.ts.map +0 -1
  412. package/dist/states/index_membership.state.js +0 -43
  413. package/dist/states/index_membership.state.js.map +0 -1
  414. package/dist/states/intent_index.state.d.ts +0 -148
  415. package/dist/states/intent_index.state.d.ts.map +0 -1
  416. package/dist/states/intent_index.state.js +0 -100
  417. package/dist/states/intent_index.state.js.map +0 -1
  418. package/dist/states/intent_network.state.d.ts.map +0 -1
  419. package/dist/states/intent_network.state.js.map +0 -1
  420. package/dist/states/maintenance.state.d.ts.map +0 -1
  421. package/dist/states/maintenance.state.js.map +0 -1
  422. package/dist/states/negotiation.state.d.ts.map +0 -1
  423. package/dist/states/negotiation.state.js.map +0 -1
  424. package/dist/states/network.state.d.ts.map +0 -1
  425. package/dist/states/network.state.js.map +0 -1
  426. package/dist/states/network_membership.state.d.ts.map +0 -1
  427. package/dist/states/network_membership.state.js.map +0 -1
  428. package/dist/states/opportunity.state.d.ts.map +0 -1
  429. package/dist/states/opportunity.state.js.map +0 -1
  430. package/dist/states/profile.state.d.ts.map +0 -1
  431. package/dist/states/profile.state.js.map +0 -1
  432. package/dist/streamers/chat.streamer.d.ts.map +0 -1
  433. package/dist/streamers/chat.streamer.js.map +0 -1
  434. package/dist/streamers/index.d.ts +0 -3
  435. package/dist/streamers/index.d.ts.map +0 -1
  436. package/dist/streamers/index.js +0 -3
  437. package/dist/streamers/index.js.map +0 -1
  438. package/dist/streamers/response.streamer.d.ts.map +0 -1
  439. package/dist/streamers/response.streamer.js.map +0 -1
  440. package/dist/support/chat.utils.d.ts.map +0 -1
  441. package/dist/support/chat.utils.js.map +0 -1
  442. package/dist/support/debug-meta.sanitizer.d.ts.map +0 -1
  443. package/dist/support/debug-meta.sanitizer.js.map +0 -1
  444. package/dist/support/feed.health.d.ts.map +0 -1
  445. package/dist/support/feed.health.js.map +0 -1
  446. package/dist/support/introducer.discovery.d.ts.map +0 -1
  447. package/dist/support/introducer.discovery.js.map +0 -1
  448. package/dist/support/log.d.ts.map +0 -1
  449. package/dist/support/log.js.map +0 -1
  450. package/dist/support/lucide.icon-catalog.d.ts.map +0 -1
  451. package/dist/support/lucide.icon-catalog.js.map +0 -1
  452. package/dist/support/opportunity.card-text.d.ts.map +0 -1
  453. package/dist/support/opportunity.card-text.js.map +0 -1
  454. package/dist/support/opportunity.constants.d.ts.map +0 -1
  455. package/dist/support/opportunity.constants.js.map +0 -1
  456. package/dist/support/opportunity.discover.d.ts.map +0 -1
  457. package/dist/support/opportunity.discover.js.map +0 -1
  458. package/dist/support/opportunity.enricher.d.ts.map +0 -1
  459. package/dist/support/opportunity.enricher.js.map +0 -1
  460. package/dist/support/opportunity.persist.d.ts.map +0 -1
  461. package/dist/support/opportunity.persist.js.map +0 -1
  462. package/dist/support/opportunity.presentation.d.ts +0 -21
  463. package/dist/support/opportunity.presentation.d.ts.map +0 -1
  464. package/dist/support/opportunity.presentation.js +0 -75
  465. package/dist/support/opportunity.presentation.js.map +0 -1
  466. package/dist/support/opportunity.sanitize.d.ts +0 -18
  467. package/dist/support/opportunity.sanitize.d.ts.map +0 -1
  468. package/dist/support/opportunity.sanitize.js +0 -89
  469. package/dist/support/opportunity.sanitize.js.map +0 -1
  470. package/dist/support/opportunity.utils.d.ts.map +0 -1
  471. package/dist/support/opportunity.utils.js.map +0 -1
  472. package/dist/support/performance.d.ts.map +0 -1
  473. package/dist/support/performance.js.map +0 -1
  474. package/dist/support/profile.enrichment-display-name.d.ts.map +0 -1
  475. package/dist/support/profile.enrichment-display-name.js.map +0 -1
  476. package/dist/support/protocol.logger.d.ts.map +0 -1
  477. package/dist/support/protocol.logger.js.map +0 -1
  478. package/dist/support/request-context.d.ts.map +0 -1
  479. package/dist/support/request-context.js.map +0 -1
  480. package/dist/support/tests/llm-assert.d.ts.map +0 -1
  481. package/dist/support/tests/llm-assert.js.map +0 -1
  482. package/dist/tools/contact.tools.d.ts.map +0 -1
  483. package/dist/tools/contact.tools.js +0 -115
  484. package/dist/tools/contact.tools.js.map +0 -1
  485. package/dist/tools/index.d.ts.map +0 -1
  486. package/dist/tools/index.js.map +0 -1
  487. package/dist/tools/index.tools.d.ts +0 -3
  488. package/dist/tools/index.tools.d.ts.map +0 -1
  489. package/dist/tools/index.tools.js +0 -423
  490. package/dist/tools/index.tools.js.map +0 -1
  491. package/dist/tools/integration.tools.d.ts.map +0 -1
  492. package/dist/tools/integration.tools.js.map +0 -1
  493. package/dist/tools/intent.tools.d.ts.map +0 -1
  494. package/dist/tools/intent.tools.js.map +0 -1
  495. package/dist/tools/network.tools.d.ts.map +0 -1
  496. package/dist/tools/network.tools.js.map +0 -1
  497. package/dist/tools/opportunity.tools.d.ts.map +0 -1
  498. package/dist/tools/opportunity.tools.js.map +0 -1
  499. package/dist/tools/profile.tools.d.ts +0 -3
  500. package/dist/tools/profile.tools.d.ts.map +0 -1
  501. package/dist/tools/profile.tools.js.map +0 -1
  502. package/dist/tools/tool.helpers.d.ts.map +0 -1
  503. package/dist/tools/tool.helpers.js.map +0 -1
  504. package/dist/tools/tool.registry.d.ts.map +0 -1
  505. package/dist/tools/tool.registry.js.map +0 -1
  506. package/dist/tools/utility.tools.d.ts.map +0 -1
  507. package/dist/tools/utility.tools.js +0 -107
  508. package/dist/tools/utility.tools.js.map +0 -1
  509. package/dist/types/chat-streaming.types.d.ts.map +0 -1
  510. package/dist/types/chat-streaming.types.js.map +0 -1
  511. /package/dist/{types → chat}/chat-streaming.types.d.ts +0 -0
  512. /package/dist/{types → chat}/chat-streaming.types.js +0 -0
  513. /package/dist/{agents → chat}/chat.prompt.js +0 -0
  514. /package/dist/{agents → chat}/chat.prompt.modules.js +0 -0
  515. /package/dist/{states → chat}/chat.state.js +0 -0
  516. /package/dist/{agents → chat}/chat.title.generator.d.ts +0 -0
  517. /package/dist/{support → chat}/chat.utils.d.ts +0 -0
  518. /package/dist/{support → chat}/chat.utils.js +0 -0
  519. /package/dist/{graphs → chat}/tests/chat.graph.mocks.js +0 -0
  520. /package/dist/{agents → intent}/intent.clarifier.d.ts +0 -0
  521. /package/dist/{agents → intent}/intent.indexer.d.ts +0 -0
  522. /package/dist/{agents → intent}/intent.inferrer.d.ts +0 -0
  523. /package/dist/{agents → intent}/intent.reconciler.d.ts +0 -0
  524. /package/dist/{states → intent}/intent.state.js +0 -0
  525. /package/dist/{agents → intent}/intent.verifier.d.ts +0 -0
  526. /package/dist/{states → maintenance}/maintenance.state.js +0 -0
  527. /package/dist/{agents → negotiation}/negotiation.insights.generator.d.ts +0 -0
  528. /package/dist/{states → network}/network.state.d.ts +0 -0
  529. /package/dist/{states → network}/network.state.js +0 -0
  530. /package/dist/{support → opportunity/feed}/feed.health.d.ts +0 -0
  531. /package/dist/{states → opportunity}/opportunity.state.js +0 -0
  532. /package/dist/{agents → profile}/profile.generator.d.ts +0 -0
  533. /package/dist/{agents → profile}/profile.hyde.generator.d.ts +0 -0
  534. /package/dist/{states → profile}/profile.state.js +0 -0
  535. /package/dist/{agents → shared/agent}/model.config.d.ts +0 -0
  536. /package/dist/{agents → shared/agent}/model.config.js +0 -0
  537. /package/dist/{support → shared/agent}/tests/llm-assert.d.ts +0 -0
  538. /package/dist/{support → shared/agent}/tests/llm-assert.js +0 -0
  539. /package/dist/{tools → shared/agent}/tool.helpers.js +0 -0
  540. /package/dist/{tools → shared/agent}/tool.registry.d.ts +0 -0
  541. /package/dist/{tools → shared/agent}/utility.tools.d.ts +0 -0
  542. /package/dist/{agents → shared/hyde}/hyde.generator.d.ts +0 -0
  543. /package/dist/{states → shared/hyde}/hyde.state.js +0 -0
  544. /package/dist/{agents → shared/hyde}/hyde.strategies.d.ts +0 -0
  545. /package/dist/{agents → shared/hyde}/hyde.strategies.js +0 -0
  546. /package/dist/{agents → shared/hyde}/lens.inferrer.d.ts +0 -0
  547. /package/dist/{interfaces → shared/interfaces}/auth.interface.d.ts +0 -0
  548. /package/dist/{interfaces → shared/interfaces}/auth.interface.js +0 -0
  549. /package/dist/{interfaces → shared/interfaces}/cache.interface.d.ts +0 -0
  550. /package/dist/{interfaces → shared/interfaces}/cache.interface.js +0 -0
  551. /package/dist/{interfaces → shared/interfaces}/chat-session.interface.d.ts +0 -0
  552. /package/dist/{interfaces → shared/interfaces}/chat-session.interface.js +0 -0
  553. /package/dist/{interfaces → shared/interfaces}/contact.interface.d.ts +0 -0
  554. /package/dist/{interfaces → shared/interfaces}/contact.interface.js +0 -0
  555. /package/dist/{interfaces → shared/interfaces}/database.interface.js +0 -0
  556. /package/dist/{interfaces → shared/interfaces}/embedder.interface.js +0 -0
  557. /package/dist/{interfaces → shared/interfaces}/enrichment.interface.d.ts +0 -0
  558. /package/dist/{interfaces → shared/interfaces}/enrichment.interface.js +0 -0
  559. /package/dist/{interfaces → shared/interfaces}/integration.interface.d.ts +0 -0
  560. /package/dist/{interfaces → shared/interfaces}/integration.interface.js +0 -0
  561. /package/dist/{interfaces → shared/interfaces}/queue.interface.d.ts +0 -0
  562. /package/dist/{interfaces → shared/interfaces}/queue.interface.js +0 -0
  563. /package/dist/{interfaces → shared/interfaces}/scraper.interface.d.ts +0 -0
  564. /package/dist/{interfaces → shared/interfaces}/scraper.interface.js +0 -0
  565. /package/dist/{interfaces → shared/interfaces}/storage.interface.d.ts +0 -0
  566. /package/dist/{interfaces → shared/interfaces}/storage.interface.js +0 -0
  567. /package/dist/{support → shared/observability}/debug-meta.sanitizer.d.ts +0 -0
  568. /package/dist/{support → shared/observability}/debug-meta.sanitizer.js +0 -0
  569. /package/dist/{support → shared/observability}/log.d.ts +0 -0
  570. /package/dist/{support → shared/observability}/log.js +0 -0
  571. /package/dist/{support → shared/observability}/performance.d.ts +0 -0
  572. /package/dist/{support → shared/observability}/performance.js +0 -0
  573. /package/dist/{support → shared/observability}/protocol.logger.d.ts +0 -0
  574. /package/dist/{support → shared/observability}/protocol.logger.js +0 -0
  575. /package/dist/{support → shared/observability}/request-context.d.ts +0 -0
  576. /package/dist/{support → shared/observability}/request-context.js +0 -0
  577. /package/dist/{support → shared/ui}/lucide.icon-catalog.d.ts +0 -0
  578. /package/dist/{support → shared/ui}/lucide.icon-catalog.js +0 -0
@@ -1,6 +1,7 @@
1
- import { type TraceEmitter } from "../support/request-context.js";
2
- import type { NegotiationDatabase } from "../interfaces/database.interface.js";
3
- import { type NegotiationTurn, type NegotiationOutcome, type UserNegotiationContext, type SeedAssessment, type NegotiationGraphLike } from "../states/negotiation.state.js";
1
+ import { type TraceEmitter } from "../shared/observability/request-context.js";
2
+ import type { NegotiationDatabase } from "../shared/interfaces/database.interface.js";
3
+ import type { WebhookLookup, NegotiationEventEmitter, NegotiationTimeoutQueue } from "../shared/interfaces/negotiation-events.interface.js";
4
+ import { type NegotiationTurn, type NegotiationOutcome, type UserNegotiationContext, type SeedAssessment, type NegotiationGraphLike } from "./negotiation.state.js";
4
5
  interface NegotiationAgentLike {
5
6
  invoke(input: {
6
7
  ownUser: UserNegotiationContext;
@@ -21,7 +22,10 @@ export declare class NegotiationGraphFactory {
21
22
  private database;
22
23
  private proposer;
23
24
  private responder;
24
- constructor(database: NegotiationDatabase, proposer: NegotiationAgentLike, responder: NegotiationAgentLike);
25
+ private webhookLookup?;
26
+ private eventEmitter?;
27
+ private timeoutQueue?;
28
+ constructor(database: NegotiationDatabase, proposer: NegotiationAgentLike, responder: NegotiationAgentLike, webhookLookup?: WebhookLookup | undefined, eventEmitter?: NegotiationEventEmitter | undefined, timeoutQueue?: NegotiationTimeoutQueue | undefined);
25
29
  createGraph(): import("@langchain/langgraph").CompiledStateGraph<{
26
30
  sourceUser: UserNegotiationContext;
27
31
  candidateUser: UserNegotiationContext;
@@ -32,7 +36,7 @@ export declare class NegotiationGraphFactory {
32
36
  seedAssessment: SeedAssessment;
33
37
  conversationId: string;
34
38
  taskId: string;
35
- messages: import("../states/negotiation.state.js").NegotiationMessage[];
39
+ messages: import("./negotiation.state.js").NegotiationMessage[];
36
40
  turnCount: number;
37
41
  maxTurns: number;
38
42
  currentSpeaker: "source" | "candidate";
@@ -47,6 +51,8 @@ export declare class NegotiationGraphFactory {
47
51
  };
48
52
  };
49
53
  } | null;
54
+ status: "active" | "waiting_for_external" | "completed";
55
+ yieldForExternal: boolean;
50
56
  outcome: {
51
57
  reasoning: string;
52
58
  hasOpportunity: boolean;
@@ -72,7 +78,7 @@ export declare class NegotiationGraphFactory {
72
78
  seedAssessment?: SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment> | undefined;
73
79
  conversationId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
74
80
  taskId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
75
- messages?: import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]> | undefined;
81
+ messages?: import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]> | undefined;
76
82
  turnCount?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
77
83
  maxTurns?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
78
84
  currentSpeaker?: "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate"> | undefined;
@@ -97,6 +103,8 @@ export declare class NegotiationGraphFactory {
97
103
  };
98
104
  };
99
105
  } | null> | null | undefined;
106
+ status?: "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed"> | undefined;
107
+ yieldForExternal?: boolean | import("@langchain/langgraph").OverwriteValue<boolean> | undefined;
100
108
  outcome?: {
101
109
  reasoning: string;
102
110
  hasOpportunity: boolean;
@@ -135,7 +143,7 @@ export declare class NegotiationGraphFactory {
135
143
  seedAssessment: import("@langchain/langgraph").BaseChannel<SeedAssessment, SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment>, unknown>;
136
144
  conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
137
145
  taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
138
- messages: import("@langchain/langgraph").BaseChannel<import("../states/negotiation.state.js").NegotiationMessage[], import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]>, unknown>;
146
+ messages: import("@langchain/langgraph").BaseChannel<import("./negotiation.state.js").NegotiationMessage[], import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]>, unknown>;
139
147
  turnCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
140
148
  maxTurns: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
141
149
  currentSpeaker: import("@langchain/langgraph").BaseChannel<"source" | "candidate", "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate">, unknown>;
@@ -170,6 +178,8 @@ export declare class NegotiationGraphFactory {
170
178
  };
171
179
  };
172
180
  } | null> | null, unknown>;
181
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
182
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
173
183
  outcome: import("@langchain/langgraph").BaseChannel<{
174
184
  reasoning: string;
175
185
  hasOpportunity: boolean;
@@ -218,7 +228,7 @@ export declare class NegotiationGraphFactory {
218
228
  seedAssessment: import("@langchain/langgraph").BaseChannel<SeedAssessment, SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment>, unknown>;
219
229
  conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
220
230
  taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
221
- messages: import("@langchain/langgraph").BaseChannel<import("../states/negotiation.state.js").NegotiationMessage[], import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]>, unknown>;
231
+ messages: import("@langchain/langgraph").BaseChannel<import("./negotiation.state.js").NegotiationMessage[], import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]>, unknown>;
222
232
  turnCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
223
233
  maxTurns: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
224
234
  currentSpeaker: import("@langchain/langgraph").BaseChannel<"source" | "candidate", "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate">, unknown>;
@@ -253,6 +263,8 @@ export declare class NegotiationGraphFactory {
253
263
  };
254
264
  };
255
265
  } | null> | null, unknown>;
266
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
267
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
256
268
  outcome: import("@langchain/langgraph").BaseChannel<{
257
269
  reasoning: string;
258
270
  hasOpportunity: boolean;
@@ -315,7 +327,7 @@ export declare class NegotiationGraphFactory {
315
327
  seedAssessment: import("@langchain/langgraph").BaseChannel<SeedAssessment, SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment>, unknown>;
316
328
  conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
317
329
  taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
318
- messages: import("@langchain/langgraph").BaseChannel<import("../states/negotiation.state.js").NegotiationMessage[], import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]>, unknown>;
330
+ messages: import("@langchain/langgraph").BaseChannel<import("./negotiation.state.js").NegotiationMessage[], import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]>, unknown>;
319
331
  turnCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
320
332
  maxTurns: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
321
333
  currentSpeaker: import("@langchain/langgraph").BaseChannel<"source" | "candidate", "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate">, unknown>;
@@ -350,6 +362,8 @@ export declare class NegotiationGraphFactory {
350
362
  };
351
363
  };
352
364
  } | null> | null, unknown>;
365
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
366
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
353
367
  outcome: import("@langchain/langgraph").BaseChannel<{
354
368
  reasoning: string;
355
369
  hasOpportunity: boolean;
@@ -384,6 +398,9 @@ export declare class NegotiationGraphFactory {
384
398
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
385
399
  }>;
386
400
  finalize: {
401
+ outcome?: undefined;
402
+ status?: undefined;
403
+ } | {
387
404
  outcome: {
388
405
  reasoning: string;
389
406
  hasOpportunity: boolean;
@@ -395,6 +412,7 @@ export declare class NegotiationGraphFactory {
395
412
  turnCount: number;
396
413
  reason?: string | undefined;
397
414
  };
415
+ status: "completed";
398
416
  };
399
417
  }, unknown, unknown>;
400
418
  }
@@ -429,6 +447,7 @@ export declare function negotiateCandidates(negotiationGraph: NegotiationGraphLi
429
447
  maxTurns?: number;
430
448
  traceEmitter?: TraceEmitter;
431
449
  indexContextOverrides?: Map<string, string>;
450
+ yieldForExternal?: boolean;
432
451
  }): Promise<NegotiationResult[]>;
433
452
  /**
434
453
  * Creates a negotiation graph with the provided dependencies.
@@ -440,6 +459,9 @@ export declare function createDefaultNegotiationGraph(deps: {
440
459
  database: NegotiationDatabase;
441
460
  proposer: NegotiationAgentLike;
442
461
  responder: NegotiationAgentLike;
462
+ webhookLookup?: WebhookLookup;
463
+ eventEmitter?: NegotiationEventEmitter;
464
+ timeoutQueue?: NegotiationTimeoutQueue;
443
465
  }): import("@langchain/langgraph").CompiledStateGraph<{
444
466
  sourceUser: UserNegotiationContext;
445
467
  candidateUser: UserNegotiationContext;
@@ -450,7 +472,7 @@ export declare function createDefaultNegotiationGraph(deps: {
450
472
  seedAssessment: SeedAssessment;
451
473
  conversationId: string;
452
474
  taskId: string;
453
- messages: import("../states/negotiation.state.js").NegotiationMessage[];
475
+ messages: import("./negotiation.state.js").NegotiationMessage[];
454
476
  turnCount: number;
455
477
  maxTurns: number;
456
478
  currentSpeaker: "source" | "candidate";
@@ -465,6 +487,8 @@ export declare function createDefaultNegotiationGraph(deps: {
465
487
  };
466
488
  };
467
489
  } | null;
490
+ status: "active" | "waiting_for_external" | "completed";
491
+ yieldForExternal: boolean;
468
492
  outcome: {
469
493
  reasoning: string;
470
494
  hasOpportunity: boolean;
@@ -490,7 +514,7 @@ export declare function createDefaultNegotiationGraph(deps: {
490
514
  seedAssessment?: SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment> | undefined;
491
515
  conversationId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
492
516
  taskId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
493
- messages?: import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]> | undefined;
517
+ messages?: import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]> | undefined;
494
518
  turnCount?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
495
519
  maxTurns?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
496
520
  currentSpeaker?: "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate"> | undefined;
@@ -515,6 +539,8 @@ export declare function createDefaultNegotiationGraph(deps: {
515
539
  };
516
540
  };
517
541
  } | null> | null | undefined;
542
+ status?: "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed"> | undefined;
543
+ yieldForExternal?: boolean | import("@langchain/langgraph").OverwriteValue<boolean> | undefined;
518
544
  outcome?: {
519
545
  reasoning: string;
520
546
  hasOpportunity: boolean;
@@ -553,7 +579,7 @@ export declare function createDefaultNegotiationGraph(deps: {
553
579
  seedAssessment: import("@langchain/langgraph").BaseChannel<SeedAssessment, SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment>, unknown>;
554
580
  conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
555
581
  taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
556
- messages: import("@langchain/langgraph").BaseChannel<import("../states/negotiation.state.js").NegotiationMessage[], import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]>, unknown>;
582
+ messages: import("@langchain/langgraph").BaseChannel<import("./negotiation.state.js").NegotiationMessage[], import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]>, unknown>;
557
583
  turnCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
558
584
  maxTurns: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
559
585
  currentSpeaker: import("@langchain/langgraph").BaseChannel<"source" | "candidate", "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate">, unknown>;
@@ -588,6 +614,8 @@ export declare function createDefaultNegotiationGraph(deps: {
588
614
  };
589
615
  };
590
616
  } | null> | null, unknown>;
617
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
618
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
591
619
  outcome: import("@langchain/langgraph").BaseChannel<{
592
620
  reasoning: string;
593
621
  hasOpportunity: boolean;
@@ -636,7 +664,7 @@ export declare function createDefaultNegotiationGraph(deps: {
636
664
  seedAssessment: import("@langchain/langgraph").BaseChannel<SeedAssessment, SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment>, unknown>;
637
665
  conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
638
666
  taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
639
- messages: import("@langchain/langgraph").BaseChannel<import("../states/negotiation.state.js").NegotiationMessage[], import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]>, unknown>;
667
+ messages: import("@langchain/langgraph").BaseChannel<import("./negotiation.state.js").NegotiationMessage[], import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]>, unknown>;
640
668
  turnCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
641
669
  maxTurns: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
642
670
  currentSpeaker: import("@langchain/langgraph").BaseChannel<"source" | "candidate", "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate">, unknown>;
@@ -671,6 +699,8 @@ export declare function createDefaultNegotiationGraph(deps: {
671
699
  };
672
700
  };
673
701
  } | null> | null, unknown>;
702
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
703
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
674
704
  outcome: import("@langchain/langgraph").BaseChannel<{
675
705
  reasoning: string;
676
706
  hasOpportunity: boolean;
@@ -733,7 +763,7 @@ export declare function createDefaultNegotiationGraph(deps: {
733
763
  seedAssessment: import("@langchain/langgraph").BaseChannel<SeedAssessment, SeedAssessment | import("@langchain/langgraph").OverwriteValue<SeedAssessment>, unknown>;
734
764
  conversationId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
735
765
  taskId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
736
- messages: import("@langchain/langgraph").BaseChannel<import("../states/negotiation.state.js").NegotiationMessage[], import("../states/negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("../states/negotiation.state.js").NegotiationMessage[]>, unknown>;
766
+ messages: import("@langchain/langgraph").BaseChannel<import("./negotiation.state.js").NegotiationMessage[], import("./negotiation.state.js").NegotiationMessage[] | import("@langchain/langgraph").OverwriteValue<import("./negotiation.state.js").NegotiationMessage[]>, unknown>;
737
767
  turnCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
738
768
  maxTurns: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
739
769
  currentSpeaker: import("@langchain/langgraph").BaseChannel<"source" | "candidate", "source" | "candidate" | import("@langchain/langgraph").OverwriteValue<"source" | "candidate">, unknown>;
@@ -768,6 +798,8 @@ export declare function createDefaultNegotiationGraph(deps: {
768
798
  };
769
799
  };
770
800
  } | null> | null, unknown>;
801
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
802
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
771
803
  outcome: import("@langchain/langgraph").BaseChannel<{
772
804
  reasoning: string;
773
805
  hasOpportunity: boolean;
@@ -802,6 +834,9 @@ export declare function createDefaultNegotiationGraph(deps: {
802
834
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
803
835
  }>;
804
836
  finalize: {
837
+ outcome?: undefined;
838
+ status?: undefined;
839
+ } | {
805
840
  outcome: {
806
841
  reasoning: string;
807
842
  hasOpportunity: boolean;
@@ -813,6 +848,7 @@ export declare function createDefaultNegotiationGraph(deps: {
813
848
  turnCount: number;
814
849
  reason?: string | undefined;
815
850
  };
851
+ status: "completed";
816
852
  };
817
853
  }, unknown, unknown>;
818
854
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.graph.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.graph.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,25 @@
1
1
  import { StateGraph } from "@langchain/langgraph";
2
- import { requestContext } from "../support/request-context.js";
3
- import { NegotiationGraphState } from "../states/negotiation.state.js";
4
- import { protocolLogger } from "../support/protocol.logger.js";
2
+ import { requestContext } from "../shared/observability/request-context.js";
3
+ import { NegotiationGraphState } from "./negotiation.state.js";
4
+ import { protocolLogger } from "../shared/observability/protocol.logger.js";
5
5
  const logger = protocolLogger("NegotiationGraph");
6
+ /** Default timeout for external agent responses (24 hours). */
7
+ const DEFAULT_EXTERNAL_TIMEOUT_MS = 24 * 60 * 60 * 1000;
6
8
  /**
7
9
  * Factory for the bilateral negotiation LangGraph state machine.
8
10
  * @remarks Accepts dependencies via constructor for testability.
9
11
  */
10
12
  export class NegotiationGraphFactory {
11
- constructor(database, proposer, responder) {
13
+ constructor(database, proposer, responder, webhookLookup, eventEmitter, timeoutQueue) {
12
14
  this.database = database;
13
15
  this.proposer = proposer;
14
16
  this.responder = responder;
17
+ this.webhookLookup = webhookLookup;
18
+ this.eventEmitter = eventEmitter;
19
+ this.timeoutQueue = timeoutQueue;
15
20
  }
16
21
  createGraph() {
17
- const { database, proposer, responder } = this;
22
+ const { database, proposer, responder, webhookLookup, eventEmitter, timeoutQueue } = this;
18
23
  const initNode = async (state) => {
19
24
  try {
20
25
  const conversation = await database.createConversation([
@@ -44,9 +49,37 @@ export class NegotiationGraphFactory {
44
49
  return dataPart?.data;
45
50
  }).filter(Boolean);
46
51
  const isSource = state.currentSpeaker === "source";
47
- const agent = isSource ? proposer : responder;
48
52
  const ownUser = isSource ? state.sourceUser : state.candidateUser;
49
53
  const otherUser = isSource ? state.candidateUser : state.sourceUser;
54
+ // ── Yield check: if the active party has an external agent (webhook), pause ──
55
+ // Skip when yieldForExternal is false (e.g. chat-initiated negotiations need real-time results).
56
+ if (webhookLookup && state.yieldForExternal !== false) {
57
+ const hasExternalAgent = await webhookLookup.hasWebhookForEvent(ownUser.id, 'negotiation.turn_received');
58
+ if (hasExternalAgent) {
59
+ logger.info("[Graph:Turn] External agent available, yielding", { userId: ownUser.id, turnCount: state.turnCount });
60
+ await database.updateTaskState(state.taskId, "waiting_for_external");
61
+ // Determine the last counterparty action for the event payload
62
+ const lastTurnData = history[history.length - 1];
63
+ const deadline = new Date(Date.now() + DEFAULT_EXTERNAL_TIMEOUT_MS).toISOString();
64
+ eventEmitter?.emitTurnReceived({
65
+ negotiationId: state.taskId,
66
+ userId: ownUser.id,
67
+ turnNumber: state.turnCount + 1,
68
+ counterpartyAction: lastTurnData?.action ?? 'propose',
69
+ counterpartyMessage: lastTurnData?.assessment?.reasoning,
70
+ deadline,
71
+ });
72
+ // Enqueue timeout fallback (fire-and-forget to avoid blocking if Redis is down)
73
+ if (timeoutQueue) {
74
+ timeoutQueue.enqueueTimeout(state.taskId, state.turnCount, DEFAULT_EXTERNAL_TIMEOUT_MS)
75
+ .catch((err) => logger.error("[Graph:Turn] Failed to enqueue timeout", { taskId: state.taskId, error: err instanceof Error ? err.message : String(err) }));
76
+ }
77
+ // Return early — graph yields. No new message, no turn increment.
78
+ return { status: 'waiting_for_external' };
79
+ }
80
+ }
81
+ // ── No external agent: run the built-in AI agent ──
82
+ const agent = isSource ? proposer : responder;
50
83
  const senderId = `agent:${ownUser.id}`;
51
84
  const traceEmitter = requestContext.getStore()?.traceEmitter;
52
85
  const agentName = isSource ? "Negotiation proposer agent" : "Negotiation responder agent";
@@ -99,6 +132,9 @@ export class NegotiationGraphFactory {
99
132
  }
100
133
  };
101
134
  const evaluateNode = (state) => {
135
+ // When the graph yielded for an external agent, go straight to finalize (no-op exit)
136
+ if (state.status === 'waiting_for_external')
137
+ return "finalize";
102
138
  if (state.error)
103
139
  return "finalize";
104
140
  if (!state.lastTurn)
@@ -112,6 +148,11 @@ export class NegotiationGraphFactory {
112
148
  return "turn";
113
149
  };
114
150
  const finalizeNode = async (state) => {
151
+ // When yielding for an external agent, skip outcome persistence — the graph
152
+ // will be resumed via respond_to_negotiation or the timeout worker.
153
+ if (state.status === 'waiting_for_external') {
154
+ return {};
155
+ }
115
156
  const history = state.messages.map((m) => {
116
157
  const dataPart = m.parts.find((p) => p.kind === "data");
117
158
  return dataPart?.data;
@@ -158,7 +199,7 @@ export class NegotiationGraphFactory {
158
199
  catch (err) {
159
200
  logger.error("[Graph:Finalize] Failed to persist outcome", { error: err });
160
201
  }
161
- return { outcome };
202
+ return { outcome, status: 'completed' };
162
203
  };
163
204
  const workflow = new StateGraph(NegotiationGraphState)
164
205
  .addNode("init", initNode)
@@ -186,7 +227,7 @@ export class NegotiationGraphFactory {
186
227
  * @returns Only candidates that produced an opportunity
187
228
  */
188
229
  export async function negotiateCandidates(negotiationGraph, sourceUser, candidates, indexContext, opts) {
189
- const { maxTurns, traceEmitter, indexContextOverrides } = opts ?? {};
230
+ const { maxTurns, traceEmitter, indexContextOverrides, yieldForExternal } = opts ?? {};
190
231
  const results = await Promise.all(candidates.map(async (candidate) => {
191
232
  const start = Date.now();
192
233
  traceEmitter?.({ type: "agent_start", name: "Negotiating candidate" });
@@ -205,6 +246,7 @@ export async function negotiateCandidates(negotiationGraph, sourceUser, candidat
205
246
  valencyRole: candidate.valencyRole,
206
247
  },
207
248
  ...(maxTurns !== undefined && { maxTurns }),
249
+ ...(yieldForExternal !== undefined && { yieldForExternal }),
208
250
  });
209
251
  const durationMs = Date.now() - start;
210
252
  const outcome = result.outcome;
@@ -249,7 +291,7 @@ export async function negotiateCandidates(negotiationGraph, sourceUser, candidat
249
291
  * @param deps.responder - Agent that responds to negotiation proposals
250
292
  */
251
293
  export function createDefaultNegotiationGraph(deps) {
252
- const factory = new NegotiationGraphFactory(deps.database, deps.proposer, deps.responder);
294
+ const factory = new NegotiationGraphFactory(deps.database, deps.proposer, deps.responder, deps.webhookLookup, deps.eventEmitter, deps.timeoutQueue);
253
295
  return factory.createGraph();
254
296
  }
255
297
  //# sourceMappingURL=negotiation.graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.graph.js","sourceRoot":"","sources":["../../src/negotiation/negotiation.graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.insights.generator.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.insights.generator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2BH,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,KAAK,CAAa;;IAM1B;;;;OAIG;IAEG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAqDhE"}
@@ -15,9 +15,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
15
15
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16
16
  };
17
17
  import { HumanMessage, SystemMessage } from "@langchain/core/messages";
18
- import { log } from "../support/log.js";
19
- import { Timed } from "../support/performance.js";
20
- import { createModel } from "./model.config.js";
18
+ import { log } from "../shared/observability/log.js";
19
+ import { Timed } from "../shared/observability/performance.js";
20
+ import { createModel } from "../shared/agent/model.config.js";
21
21
  const logger = log.lib.from("NegotiationInsightsGenerator");
22
22
  const SYSTEM_PROMPT = `You are an analyst summarizing a user's negotiation history on a discovery network.
23
23
  Agents negotiate on behalf of users to find collaboration opportunities.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.insights.generator.js","sourceRoot":"","sources":["../../src/negotiation/negotiation.insights.generator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type NegotiationTurn, type UserNegotiationContext, type SeedAssessment } from "../states/negotiation.state.js";
1
+ import { type NegotiationTurn, type UserNegotiationContext, type SeedAssessment } from "./negotiation.state.js";
2
2
  export interface NegotiationProposerInput {
3
3
  ownUser: UserNegotiationContext;
4
4
  otherUser: UserNegotiationContext;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.proposer.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.proposer.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,eAAe,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAyBvI,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,sBAAsB,CAAC;IAClC,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAC;;IASd;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC;CA+BxE"}
@@ -1,5 +1,5 @@
1
- import { createModel } from "./model.config.js";
2
- import { NegotiationTurnSchema } from "../states/negotiation.state.js";
1
+ import { createModel } from "../shared/agent/model.config.js";
2
+ import { NegotiationTurnSchema } from "./negotiation.state.js";
3
3
  const SYSTEM_PROMPT = `You are a negotiation agent representing your user in an opportunity matching system.
4
4
  Your role is to PROPOSE and ARGUE FOR a potential match between your user and another user.
5
5
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.proposer.js","sourceRoot":"","sources":["../../src/negotiation/negotiation.proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAA0E,MAAM,wBAAwB,CAAC;AAEvI,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;uFAqBiE,CAAC;AAUxF;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAG9B;QACE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC,oBAAoB,CAClE,qBAAqB,EACrB,EAAE,IAAI,EAAE,sBAAsB,EAAE,CACjC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,KAA+B;QAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1C,CAAC,CAAC,6BAA6B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,UAAU,CAAC,QAAQ,gBAAgB,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChL,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,WAAW,GAAG;QAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS;OACxC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK;UAC/B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;WAChD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,iBAAiB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;QAG9G,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS;OAC1C,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK;UACjC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;WAClD,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,iBAAiB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;iBAEvG,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,mBAAmB;;8BAEnC,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU,KAAK,CAAC,cAAc,CAAC,SAAS;kBAC9E,KAAK,CAAC,cAAc,CAAC,WAAW,GAAG,WAAW;;EAE9D,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,yDAAyD,EAAE,CAAC;QAExI,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { type NegotiationTurn, type UserNegotiationContext, type SeedAssessment } from "../states/negotiation.state.js";
1
+ import { type NegotiationTurn, type UserNegotiationContext, type SeedAssessment } from "./negotiation.state.js";
2
2
  export interface NegotiationResponderInput {
3
3
  ownUser: UserNegotiationContext;
4
4
  otherUser: UserNegotiationContext;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.responder.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.responder.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,eAAe,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA2BvI,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,sBAAsB,CAAC;IAClC,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAAC;;IASd;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,eAAe,CAAC;CAiCzE"}
@@ -1,5 +1,5 @@
1
- import { createModel } from "./model.config.js";
2
- import { NegotiationTurnSchema } from "../states/negotiation.state.js";
1
+ import { createModel } from "../shared/agent/model.config.js";
2
+ import { NegotiationTurnSchema } from "./negotiation.state.js";
3
3
  const SYSTEM_PROMPT = `You are a negotiation agent representing your user in an opportunity matching system.
4
4
  Your role is to EVALUATE proposals and PROTECT your user from poor matches.
5
5
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.responder.js","sourceRoot":"","sources":["../../src/negotiation/negotiation.responder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAA0E,MAAM,wBAAwB,CAAC;AAEvI,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;uFAuBiE,CAAC;AAUxF;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAG/B;QACE,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CACnE,qBAAqB,EACrB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAClC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,KAAgC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,UAAU,CAAC,QAAQ,gBAAgB,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;aACtH,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,WAAW,GAAG;QAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS;OACxC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK;UAC/B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;WAChD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,iBAAiB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;QAG9G,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS;OAC1C,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK;UACjC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;WAClD,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,iBAAiB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;iBAEvG,KAAK,CAAC,YAAY,CAAC,MAAM,IAAI,mBAAmB;;8BAEnC,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU,KAAK,CAAC,cAAc,CAAC,SAAS;;;EAG9F,WAAW;;sGAEyF,CAAC;QAEnG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -129,6 +129,8 @@ export interface NegotiationGraphLike {
129
129
  };
130
130
  seedAssessment: Omit<SeedAssessment, "actors">;
131
131
  maxTurns?: number;
132
+ /** When false, always run the built-in AI agent instead of yielding for external agents (webhooks). Defaults to true. */
133
+ yieldForExternal?: boolean;
132
134
  }): Promise<{
133
135
  outcome: NegotiationOutcome | null;
134
136
  messages?: NegotiationMessage[];
@@ -194,6 +196,16 @@ export declare const NegotiationGraphState: import("@langchain/langgraph").Annot
194
196
  };
195
197
  };
196
198
  } | null> | null, unknown>;
199
+ /**
200
+ * Graph status. Tracks whether the negotiation is actively running, waiting
201
+ * for an external response (e.g. user input via MCP tool), or finished.
202
+ * - `active` — agents are exchanging turns (default)
203
+ * - `waiting_for_external` — graph has yielded; awaiting external response or timeout
204
+ * - `completed` — negotiation finalized (accept/reject/turn-cap)
205
+ */
206
+ status: import("@langchain/langgraph").BaseChannel<"active" | "waiting_for_external" | "completed", "active" | "waiting_for_external" | "completed" | import("@langchain/langgraph").OverwriteValue<"active" | "waiting_for_external" | "completed">, unknown>;
207
+ /** When false, always run the built-in AI agent instead of yielding for external agents (webhooks). */
208
+ yieldForExternal: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
197
209
  outcome: import("@langchain/langgraph").BaseChannel<{
198
210
  reasoning: string;
199
211
  hasOpportunity: boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.state.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,kFAAkF;AAClF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,mFAAmF;AACnF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvF,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACtG;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE;QACZ,UAAU,EAAE,sBAAsB,CAAC;QACnC,aAAa,EAAE,sBAAsB,CAAC;QACtC,YAAY,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACpD,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yHAAyH;QACzH,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB;;;;mBASM,MAAM;gBAAU,MAAM;;mBAAtB,MAAM;gBAAU,MAAM;;mBAAtB,MAAM;gBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuC5D;;;;;;OAMG;;IAMH,uGAAuG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvG,CAAC"}
@@ -70,6 +70,22 @@ export const NegotiationGraphState = Annotation.Root({
70
70
  reducer: (curr, next) => next ?? curr,
71
71
  default: () => null,
72
72
  }),
73
+ /**
74
+ * Graph status. Tracks whether the negotiation is actively running, waiting
75
+ * for an external response (e.g. user input via MCP tool), or finished.
76
+ * - `active` — agents are exchanging turns (default)
77
+ * - `waiting_for_external` — graph has yielded; awaiting external response or timeout
78
+ * - `completed` — negotiation finalized (accept/reject/turn-cap)
79
+ */
80
+ status: Annotation({
81
+ reducer: (curr, next) => next ?? curr,
82
+ default: () => 'active',
83
+ }),
84
+ /** When false, always run the built-in AI agent instead of yielding for external agents (webhooks). */
85
+ yieldForExternal: Annotation({
86
+ reducer: (curr, next) => next ?? curr,
87
+ default: () => true,
88
+ }),
73
89
  outcome: Annotation({
74
90
  reducer: (curr, next) => next ?? curr,
75
91
  default: () => null,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.state.js","sourceRoot":"","sources":["../../src/negotiation/negotiation.state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DefineTool, ToolDeps } from '../shared/agent/tool.helpers.js';
2
+ /**
3
+ * Creates negotiation MCP tools for external agent access.
4
+ * Exposes negotiation state for listing, reading, and responding to bilateral negotiations.
5
+ */
6
+ export declare function createNegotiationTools(defineTool: DefineTool, deps: ToolDeps): readonly [any, any, any];
7
+ //# sourceMappingURL=negotiation.tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negotiation.tools.d.ts","sourceRoot":"","sources":["../../src/negotiation/negotiation.tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAS5E;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,4BA2jB5E"}