@indexnetwork/protocol 0.1.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 (365) hide show
  1. package/dist/agents/chat.agent.d.ts +218 -0
  2. package/dist/agents/chat.agent.d.ts.map +1 -0
  3. package/dist/agents/chat.agent.js +884 -0
  4. package/dist/agents/chat.agent.js.map +1 -0
  5. package/dist/agents/chat.prompt.d.ts +18 -0
  6. package/dist/agents/chat.prompt.d.ts.map +1 -0
  7. package/dist/agents/chat.prompt.js +372 -0
  8. package/dist/agents/chat.prompt.js.map +1 -0
  9. package/dist/agents/chat.prompt.modules.d.ts +61 -0
  10. package/dist/agents/chat.prompt.modules.d.ts.map +1 -0
  11. package/dist/agents/chat.prompt.modules.js +366 -0
  12. package/dist/agents/chat.prompt.modules.js.map +1 -0
  13. package/dist/agents/chat.title.generator.d.ts +20 -0
  14. package/dist/agents/chat.title.generator.d.ts.map +1 -0
  15. package/dist/agents/chat.title.generator.js +66 -0
  16. package/dist/agents/chat.title.generator.js.map +1 -0
  17. package/dist/agents/home.categorizer.d.ts +28 -0
  18. package/dist/agents/home.categorizer.d.ts.map +1 -0
  19. package/dist/agents/home.categorizer.js +170 -0
  20. package/dist/agents/home.categorizer.js.map +1 -0
  21. package/dist/agents/hyde.generator.d.ts +27 -0
  22. package/dist/agents/hyde.generator.d.ts.map +1 -0
  23. package/dist/agents/hyde.generator.js +75 -0
  24. package/dist/agents/hyde.generator.js.map +1 -0
  25. package/dist/agents/hyde.strategies.d.ts +17 -0
  26. package/dist/agents/hyde.strategies.d.ts.map +1 -0
  27. package/dist/agents/hyde.strategies.js +29 -0
  28. package/dist/agents/hyde.strategies.js.map +1 -0
  29. package/dist/agents/intent.clarifier.d.ts +29 -0
  30. package/dist/agents/intent.clarifier.d.ts.map +1 -0
  31. package/dist/agents/intent.clarifier.js +186 -0
  32. package/dist/agents/intent.clarifier.js.map +1 -0
  33. package/dist/agents/intent.indexer.d.ts +77 -0
  34. package/dist/agents/intent.indexer.d.ts.map +1 -0
  35. package/dist/agents/intent.indexer.js +164 -0
  36. package/dist/agents/intent.indexer.js.map +1 -0
  37. package/dist/agents/intent.inferrer.d.ts +95 -0
  38. package/dist/agents/intent.inferrer.d.ts.map +1 -0
  39. package/dist/agents/intent.inferrer.js +238 -0
  40. package/dist/agents/intent.inferrer.js.map +1 -0
  41. package/dist/agents/intent.reconciler.d.ts +106 -0
  42. package/dist/agents/intent.reconciler.d.ts.map +1 -0
  43. package/dist/agents/intent.reconciler.js +184 -0
  44. package/dist/agents/intent.reconciler.js.map +1 -0
  45. package/dist/agents/intent.verifier.d.ts +97 -0
  46. package/dist/agents/intent.verifier.d.ts.map +1 -0
  47. package/dist/agents/intent.verifier.js +234 -0
  48. package/dist/agents/intent.verifier.js.map +1 -0
  49. package/dist/agents/invite.generator.d.ts +47 -0
  50. package/dist/agents/invite.generator.d.ts.map +1 -0
  51. package/dist/agents/invite.generator.js +56 -0
  52. package/dist/agents/invite.generator.js.map +1 -0
  53. package/dist/agents/lens.inferrer.d.ts +37 -0
  54. package/dist/agents/lens.inferrer.d.ts.map +1 -0
  55. package/dist/agents/lens.inferrer.js +98 -0
  56. package/dist/agents/lens.inferrer.js.map +1 -0
  57. package/dist/agents/model.config.d.ts +120 -0
  58. package/dist/agents/model.config.d.ts.map +1 -0
  59. package/dist/agents/model.config.js +76 -0
  60. package/dist/agents/model.config.js.map +1 -0
  61. package/dist/agents/negotiation.insights.generator.d.ts +32 -0
  62. package/dist/agents/negotiation.insights.generator.d.ts.map +1 -0
  63. package/dist/agents/negotiation.insights.generator.js +105 -0
  64. package/dist/agents/negotiation.insights.generator.js.map +1 -0
  65. package/dist/agents/negotiation.proposer.d.ts +26 -0
  66. package/dist/agents/negotiation.proposer.d.ts.map +1 -0
  67. package/dist/agents/negotiation.proposer.js +67 -0
  68. package/dist/agents/negotiation.proposer.js.map +1 -0
  69. package/dist/agents/negotiation.responder.d.ts +26 -0
  70. package/dist/agents/negotiation.responder.d.ts.map +1 -0
  71. package/dist/agents/negotiation.responder.js +71 -0
  72. package/dist/agents/negotiation.responder.js.map +1 -0
  73. package/dist/agents/opportunity.evaluator.d.ts +253 -0
  74. package/dist/agents/opportunity.evaluator.d.ts.map +1 -0
  75. package/dist/agents/opportunity.evaluator.js +413 -0
  76. package/dist/agents/opportunity.evaluator.js.map +1 -0
  77. package/dist/agents/opportunity.presenter.d.ts +115 -0
  78. package/dist/agents/opportunity.presenter.d.ts.map +1 -0
  79. package/dist/agents/opportunity.presenter.js +524 -0
  80. package/dist/agents/opportunity.presenter.js.map +1 -0
  81. package/dist/agents/profile.generator.d.ts +67 -0
  82. package/dist/agents/profile.generator.d.ts.map +1 -0
  83. package/dist/agents/profile.generator.js +97 -0
  84. package/dist/agents/profile.generator.js.map +1 -0
  85. package/dist/agents/profile.hyde.generator.d.ts +43 -0
  86. package/dist/agents/profile.hyde.generator.d.ts.map +1 -0
  87. package/dist/agents/profile.hyde.generator.js +113 -0
  88. package/dist/agents/profile.hyde.generator.js.map +1 -0
  89. package/dist/agents/suggestion.generator.d.ts +24 -0
  90. package/dist/agents/suggestion.generator.d.ts.map +1 -0
  91. package/dist/agents/suggestion.generator.js +96 -0
  92. package/dist/agents/suggestion.generator.js.map +1 -0
  93. package/dist/graphs/chat.graph.d.ts +312 -0
  94. package/dist/graphs/chat.graph.d.ts.map +1 -0
  95. package/dist/graphs/chat.graph.js +267 -0
  96. package/dist/graphs/chat.graph.js.map +1 -0
  97. package/dist/graphs/home.graph.d.ts +180 -0
  98. package/dist/graphs/home.graph.d.ts.map +1 -0
  99. package/dist/graphs/home.graph.js +598 -0
  100. package/dist/graphs/home.graph.js.map +1 -0
  101. package/dist/graphs/hyde.graph.d.ts +110 -0
  102. package/dist/graphs/hyde.graph.d.ts.map +1 -0
  103. package/dist/graphs/hyde.graph.js +235 -0
  104. package/dist/graphs/hyde.graph.js.map +1 -0
  105. package/dist/graphs/index.graph.d.ts +620 -0
  106. package/dist/graphs/index.graph.d.ts.map +1 -0
  107. package/dist/graphs/index.graph.js +226 -0
  108. package/dist/graphs/index.graph.js.map +1 -0
  109. package/dist/graphs/index_membership.graph.d.ts +250 -0
  110. package/dist/graphs/index_membership.graph.d.ts.map +1 -0
  111. package/dist/graphs/index_membership.graph.js +204 -0
  112. package/dist/graphs/index_membership.graph.js.map +1 -0
  113. package/dist/graphs/intent.graph.d.ts +490 -0
  114. package/dist/graphs/intent.graph.d.ts.map +1 -0
  115. package/dist/graphs/intent.graph.js +787 -0
  116. package/dist/graphs/intent.graph.js.map +1 -0
  117. package/dist/graphs/intent_index.graph.d.ts +396 -0
  118. package/dist/graphs/intent_index.graph.d.ts.map +1 -0
  119. package/dist/graphs/intent_index.graph.js +331 -0
  120. package/dist/graphs/intent_index.graph.js.map +1 -0
  121. package/dist/graphs/maintenance.graph.d.ts +177 -0
  122. package/dist/graphs/maintenance.graph.d.ts.map +1 -0
  123. package/dist/graphs/maintenance.graph.js +173 -0
  124. package/dist/graphs/maintenance.graph.js.map +1 -0
  125. package/dist/graphs/negotiation.graph.d.ts +819 -0
  126. package/dist/graphs/negotiation.graph.d.ts.map +1 -0
  127. package/dist/graphs/negotiation.graph.js +255 -0
  128. package/dist/graphs/negotiation.graph.js.map +1 -0
  129. package/dist/graphs/opportunity.graph.d.ts +1082 -0
  130. package/dist/graphs/opportunity.graph.d.ts.map +1 -0
  131. package/dist/graphs/opportunity.graph.js +2534 -0
  132. package/dist/graphs/opportunity.graph.js.map +1 -0
  133. package/dist/graphs/profile.graph.d.ts +617 -0
  134. package/dist/graphs/profile.graph.d.ts.map +1 -0
  135. package/dist/graphs/profile.graph.js +839 -0
  136. package/dist/graphs/profile.graph.js.map +1 -0
  137. package/dist/graphs/tests/chat.graph.mocks.d.ts +104 -0
  138. package/dist/graphs/tests/chat.graph.mocks.d.ts.map +1 -0
  139. package/dist/graphs/tests/chat.graph.mocks.js +225 -0
  140. package/dist/graphs/tests/chat.graph.mocks.js.map +1 -0
  141. package/dist/index.d.ts +62 -0
  142. package/dist/index.d.ts.map +1 -0
  143. package/dist/index.js +44 -0
  144. package/dist/index.js.map +1 -0
  145. package/dist/interfaces/auth.interface.d.ts +15 -0
  146. package/dist/interfaces/auth.interface.d.ts.map +1 -0
  147. package/dist/interfaces/auth.interface.js +2 -0
  148. package/dist/interfaces/auth.interface.js.map +1 -0
  149. package/dist/interfaces/cache.interface.d.ts +43 -0
  150. package/dist/interfaces/cache.interface.d.ts.map +1 -0
  151. package/dist/interfaces/cache.interface.js +6 -0
  152. package/dist/interfaces/cache.interface.js.map +1 -0
  153. package/dist/interfaces/chat-session.interface.d.ts +11 -0
  154. package/dist/interfaces/chat-session.interface.d.ts.map +1 -0
  155. package/dist/interfaces/chat-session.interface.js +2 -0
  156. package/dist/interfaces/chat-session.interface.js.map +1 -0
  157. package/dist/interfaces/contact.interface.d.ts +48 -0
  158. package/dist/interfaces/contact.interface.d.ts.map +1 -0
  159. package/dist/interfaces/contact.interface.js +2 -0
  160. package/dist/interfaces/contact.interface.js.map +1 -0
  161. package/dist/interfaces/database.interface.d.ts +1495 -0
  162. package/dist/interfaces/database.interface.d.ts.map +1 -0
  163. package/dist/interfaces/database.interface.js +2 -0
  164. package/dist/interfaces/database.interface.js.map +1 -0
  165. package/dist/interfaces/embedder.interface.d.ts +85 -0
  166. package/dist/interfaces/embedder.interface.d.ts.map +1 -0
  167. package/dist/interfaces/embedder.interface.js +5 -0
  168. package/dist/interfaces/embedder.interface.js.map +1 -0
  169. package/dist/interfaces/enrichment.interface.d.ts +40 -0
  170. package/dist/interfaces/enrichment.interface.d.ts.map +1 -0
  171. package/dist/interfaces/enrichment.interface.js +2 -0
  172. package/dist/interfaces/enrichment.interface.js.map +1 -0
  173. package/dist/interfaces/integration.interface.d.ts +91 -0
  174. package/dist/interfaces/integration.interface.d.ts.map +1 -0
  175. package/dist/interfaces/integration.interface.js +2 -0
  176. package/dist/interfaces/integration.interface.js.map +1 -0
  177. package/dist/interfaces/queue.interface.d.ts +17 -0
  178. package/dist/interfaces/queue.interface.d.ts.map +1 -0
  179. package/dist/interfaces/queue.interface.js +5 -0
  180. package/dist/interfaces/queue.interface.js.map +1 -0
  181. package/dist/interfaces/scraper.interface.d.ts +31 -0
  182. package/dist/interfaces/scraper.interface.d.ts.map +1 -0
  183. package/dist/interfaces/scraper.interface.js +2 -0
  184. package/dist/interfaces/scraper.interface.js.map +1 -0
  185. package/dist/interfaces/storage.interface.d.ts +46 -0
  186. package/dist/interfaces/storage.interface.d.ts.map +1 -0
  187. package/dist/interfaces/storage.interface.js +6 -0
  188. package/dist/interfaces/storage.interface.js.map +1 -0
  189. package/dist/mcp/mcp.server.d.ts +29 -0
  190. package/dist/mcp/mcp.server.d.ts.map +1 -0
  191. package/dist/mcp/mcp.server.js +171 -0
  192. package/dist/mcp/mcp.server.js.map +1 -0
  193. package/dist/states/chat.state.d.ts +126 -0
  194. package/dist/states/chat.state.d.ts.map +1 -0
  195. package/dist/states/chat.state.js +112 -0
  196. package/dist/states/chat.state.js.map +1 -0
  197. package/dist/states/home.state.d.ts +100 -0
  198. package/dist/states/home.state.d.ts.map +1 -0
  199. package/dist/states/home.state.js +74 -0
  200. package/dist/states/home.state.js.map +1 -0
  201. package/dist/states/hyde.state.d.ts +54 -0
  202. package/dist/states/hyde.state.d.ts.map +1 -0
  203. package/dist/states/hyde.state.js +66 -0
  204. package/dist/states/hyde.state.js.map +1 -0
  205. package/dist/states/index.state.d.ts +179 -0
  206. package/dist/states/index.state.d.ts.map +1 -0
  207. package/dist/states/index.state.js +56 -0
  208. package/dist/states/index.state.js.map +1 -0
  209. package/dist/states/index_membership.state.d.ts +77 -0
  210. package/dist/states/index_membership.state.d.ts.map +1 -0
  211. package/dist/states/index_membership.state.js +43 -0
  212. package/dist/states/index_membership.state.js.map +1 -0
  213. package/dist/states/intent.state.d.ts +203 -0
  214. package/dist/states/intent.state.d.ts.map +1 -0
  215. package/dist/states/intent.state.js +153 -0
  216. package/dist/states/intent.state.js.map +1 -0
  217. package/dist/states/intent_index.state.d.ts +148 -0
  218. package/dist/states/intent_index.state.d.ts.map +1 -0
  219. package/dist/states/intent_index.state.js +100 -0
  220. package/dist/states/intent_index.state.js.map +1 -0
  221. package/dist/states/maintenance.state.d.ts +36 -0
  222. package/dist/states/maintenance.state.d.ts.map +1 -0
  223. package/dist/states/maintenance.state.js +56 -0
  224. package/dist/states/maintenance.state.js.map +1 -0
  225. package/dist/states/negotiation.state.d.ts +230 -0
  226. package/dist/states/negotiation.state.d.ts.map +1 -0
  227. package/dist/states/negotiation.state.js +82 -0
  228. package/dist/states/negotiation.state.js.map +1 -0
  229. package/dist/states/opportunity.state.d.ts +300 -0
  230. package/dist/states/opportunity.state.d.ts.map +1 -0
  231. package/dist/states/opportunity.state.js +207 -0
  232. package/dist/states/opportunity.state.js.map +1 -0
  233. package/dist/states/profile.state.d.ts +172 -0
  234. package/dist/states/profile.state.d.ts.map +1 -0
  235. package/dist/states/profile.state.js +133 -0
  236. package/dist/states/profile.state.js.map +1 -0
  237. package/dist/streamers/chat.streamer.d.ts +55 -0
  238. package/dist/streamers/chat.streamer.d.ts.map +1 -0
  239. package/dist/streamers/chat.streamer.js +186 -0
  240. package/dist/streamers/chat.streamer.js.map +1 -0
  241. package/dist/streamers/index.d.ts +3 -0
  242. package/dist/streamers/index.d.ts.map +1 -0
  243. package/dist/streamers/index.js +3 -0
  244. package/dist/streamers/index.js.map +1 -0
  245. package/dist/streamers/response.streamer.d.ts +36 -0
  246. package/dist/streamers/response.streamer.d.ts.map +1 -0
  247. package/dist/streamers/response.streamer.js +46 -0
  248. package/dist/streamers/response.streamer.js.map +1 -0
  249. package/dist/support/chat.utils.d.ts +42 -0
  250. package/dist/support/chat.utils.d.ts.map +1 -0
  251. package/dist/support/chat.utils.js +89 -0
  252. package/dist/support/chat.utils.js.map +1 -0
  253. package/dist/support/debug-meta.sanitizer.d.ts +18 -0
  254. package/dist/support/debug-meta.sanitizer.d.ts.map +1 -0
  255. package/dist/support/debug-meta.sanitizer.js +82 -0
  256. package/dist/support/debug-meta.sanitizer.js.map +1 -0
  257. package/dist/support/feed.health.d.ts +32 -0
  258. package/dist/support/feed.health.d.ts.map +1 -0
  259. package/dist/support/feed.health.js +76 -0
  260. package/dist/support/feed.health.js.map +1 -0
  261. package/dist/support/introducer.discovery.d.ts +78 -0
  262. package/dist/support/introducer.discovery.d.ts.map +1 -0
  263. package/dist/support/introducer.discovery.js +101 -0
  264. package/dist/support/introducer.discovery.js.map +1 -0
  265. package/dist/support/log.d.ts +65 -0
  266. package/dist/support/log.d.ts.map +1 -0
  267. package/dist/support/log.js +76 -0
  268. package/dist/support/log.js.map +1 -0
  269. package/dist/support/lucide.icon-catalog.d.ts +22 -0
  270. package/dist/support/lucide.icon-catalog.d.ts.map +1 -0
  271. package/dist/support/lucide.icon-catalog.js +101 -0
  272. package/dist/support/lucide.icon-catalog.js.map +1 -0
  273. package/dist/support/opportunity.card-text.d.ts +39 -0
  274. package/dist/support/opportunity.card-text.d.ts.map +1 -0
  275. package/dist/support/opportunity.card-text.js +333 -0
  276. package/dist/support/opportunity.card-text.js.map +1 -0
  277. package/dist/support/opportunity.constants.d.ts +9 -0
  278. package/dist/support/opportunity.constants.d.ts.map +1 -0
  279. package/dist/support/opportunity.constants.js +11 -0
  280. package/dist/support/opportunity.constants.js.map +1 -0
  281. package/dist/support/opportunity.discover.d.ts +144 -0
  282. package/dist/support/opportunity.discover.d.ts.map +1 -0
  283. package/dist/support/opportunity.discover.js +610 -0
  284. package/dist/support/opportunity.discover.js.map +1 -0
  285. package/dist/support/opportunity.enricher.d.ts +44 -0
  286. package/dist/support/opportunity.enricher.d.ts.map +1 -0
  287. package/dist/support/opportunity.enricher.js +245 -0
  288. package/dist/support/opportunity.enricher.js.map +1 -0
  289. package/dist/support/opportunity.persist.d.ts +39 -0
  290. package/dist/support/opportunity.persist.d.ts.map +1 -0
  291. package/dist/support/opportunity.persist.js +63 -0
  292. package/dist/support/opportunity.persist.js.map +1 -0
  293. package/dist/support/opportunity.presentation.d.ts +21 -0
  294. package/dist/support/opportunity.presentation.d.ts.map +1 -0
  295. package/dist/support/opportunity.presentation.js +75 -0
  296. package/dist/support/opportunity.presentation.js.map +1 -0
  297. package/dist/support/opportunity.sanitize.d.ts +18 -0
  298. package/dist/support/opportunity.sanitize.d.ts.map +1 -0
  299. package/dist/support/opportunity.sanitize.js +89 -0
  300. package/dist/support/opportunity.sanitize.js.map +1 -0
  301. package/dist/support/opportunity.utils.d.ts +99 -0
  302. package/dist/support/opportunity.utils.d.ts.map +1 -0
  303. package/dist/support/opportunity.utils.js +184 -0
  304. package/dist/support/opportunity.utils.js.map +1 -0
  305. package/dist/support/performance.d.ts +19 -0
  306. package/dist/support/performance.d.ts.map +1 -0
  307. package/dist/support/performance.js +43 -0
  308. package/dist/support/performance.js.map +1 -0
  309. package/dist/support/profile.enrichment-display-name.d.ts +16 -0
  310. package/dist/support/profile.enrichment-display-name.d.ts.map +1 -0
  311. package/dist/support/profile.enrichment-display-name.js +22 -0
  312. package/dist/support/profile.enrichment-display-name.js.map +1 -0
  313. package/dist/support/protocol.logger.d.ts +22 -0
  314. package/dist/support/protocol.logger.d.ts.map +1 -0
  315. package/dist/support/protocol.logger.js +44 -0
  316. package/dist/support/protocol.logger.js.map +1 -0
  317. package/dist/support/request-context.d.ts +19 -0
  318. package/dist/support/request-context.d.ts.map +1 -0
  319. package/dist/support/request-context.js +7 -0
  320. package/dist/support/request-context.js.map +1 -0
  321. package/dist/tools/contact.tools.d.ts +7 -0
  322. package/dist/tools/contact.tools.d.ts.map +1 -0
  323. package/dist/tools/contact.tools.js +115 -0
  324. package/dist/tools/contact.tools.js.map +1 -0
  325. package/dist/tools/index.d.ts +17 -0
  326. package/dist/tools/index.d.ts.map +1 -0
  327. package/dist/tools/index.js +140 -0
  328. package/dist/tools/index.js.map +1 -0
  329. package/dist/tools/index.tools.d.ts +3 -0
  330. package/dist/tools/index.tools.d.ts.map +1 -0
  331. package/dist/tools/index.tools.js +423 -0
  332. package/dist/tools/index.tools.js.map +1 -0
  333. package/dist/tools/integration.tools.d.ts +13 -0
  334. package/dist/tools/integration.tools.d.ts.map +1 -0
  335. package/dist/tools/integration.tools.js +77 -0
  336. package/dist/tools/integration.tools.js.map +1 -0
  337. package/dist/tools/intent.tools.d.ts +3 -0
  338. package/dist/tools/intent.tools.d.ts.map +1 -0
  339. package/dist/tools/intent.tools.js +458 -0
  340. package/dist/tools/intent.tools.js.map +1 -0
  341. package/dist/tools/opportunity.tools.d.ts +44 -0
  342. package/dist/tools/opportunity.tools.d.ts.map +1 -0
  343. package/dist/tools/opportunity.tools.js +814 -0
  344. package/dist/tools/opportunity.tools.js.map +1 -0
  345. package/dist/tools/profile.tools.d.ts +3 -0
  346. package/dist/tools/profile.tools.d.ts.map +1 -0
  347. package/dist/tools/profile.tools.js +513 -0
  348. package/dist/tools/profile.tools.js.map +1 -0
  349. package/dist/tools/tool.helpers.d.ts +225 -0
  350. package/dist/tools/tool.helpers.d.ts.map +1 -0
  351. package/dist/tools/tool.helpers.js +172 -0
  352. package/dist/tools/tool.helpers.js.map +1 -0
  353. package/dist/tools/tool.registry.d.ts +12 -0
  354. package/dist/tools/tool.registry.d.ts.map +1 -0
  355. package/dist/tools/tool.registry.js +62 -0
  356. package/dist/tools/tool.registry.js.map +1 -0
  357. package/dist/tools/utility.tools.d.ts +3 -0
  358. package/dist/tools/utility.tools.d.ts.map +1 -0
  359. package/dist/tools/utility.tools.js +107 -0
  360. package/dist/tools/utility.tools.js.map +1 -0
  361. package/dist/types/chat-streaming.types.d.ts +472 -0
  362. package/dist/types/chat-streaming.types.d.ts.map +1 -0
  363. package/dist/types/chat-streaming.types.js +260 -0
  364. package/dist/types/chat-streaming.types.js.map +1 -0
  365. package/package.json +32 -0
@@ -0,0 +1,331 @@
1
+ import { StateGraph, START, END } from "@langchain/langgraph";
2
+ import { IntentIndexer } from "../agents/intent.indexer.js";
3
+ import { protocolLogger } from "../support/protocol.logger.js";
4
+ import { timed } from "../support/performance.js";
5
+ import { requestContext } from "../support/request-context.js";
6
+ import { IntentIndexGraphState, } from "../states/intent_index.state.js";
7
+ const logger = protocolLogger("IntentIndexGraphFactory");
8
+ const QUALIFICATION_THRESHOLD = 0.7;
9
+ /**
10
+ * Factory class to build and compile the Intent Index Graph.
11
+ *
12
+ * Handles CRUD for the intent_indexes junction table:
13
+ * - create: Assign an intent to an index (direct or evaluated via IntentIndexer agent)
14
+ * - read: List intent-index links (by intentId or by indexId)
15
+ * - delete: Unassign an intent from an index
16
+ *
17
+ * The evaluate-based assignment flow is migrated from the old Index Graph.
18
+ */
19
+ export class IntentIndexGraphFactory {
20
+ constructor(database) {
21
+ this.database = database;
22
+ }
23
+ createGraph() {
24
+ const indexer = new IntentIndexer();
25
+ // --- NODE DEFINITIONS ---
26
+ /**
27
+ * Assign Node: Assign an intent to an index.
28
+ * Two sub-paths:
29
+ * - Direct assignment (skipEvaluation=true): assign immediately
30
+ * - Evaluated assignment (skipEvaluation=false): load intent + index context, evaluate via IntentIndexer
31
+ */
32
+ const assignNode = async (state) => {
33
+ return timed("IntentIndexGraph.assign", async () => {
34
+ const intentId = state.intentId;
35
+ const indexId = state.indexId;
36
+ logger.verbose("Assign intent to index", { userId: state.userId, intentId, indexId, skipEvaluation: state.skipEvaluation });
37
+ const agentTimingsAccum = [];
38
+ if (!intentId || !indexId) {
39
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: false, error: "Both intentId and indexId are required." } };
40
+ }
41
+ try {
42
+ // Validate ownership and membership
43
+ const intent = await this.database.getIntent(intentId);
44
+ if (!intent) {
45
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: false, error: "Intent not found." } };
46
+ }
47
+ if (intent.userId !== state.userId) {
48
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: false, error: "You can only add your own intents to an index." } };
49
+ }
50
+ const isMember = await this.database.isIndexMember(indexId, state.userId);
51
+ if (!isMember) {
52
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: false, error: "You are not a member of that index." } };
53
+ }
54
+ // Check if already assigned
55
+ const alreadyAssigned = await this.database.isIntentAssignedToIndex(intentId, indexId);
56
+ if (alreadyAssigned) {
57
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: true, message: "That intent is already in this index." } };
58
+ }
59
+ // Direct assignment (skip evaluation)
60
+ if (state.skipEvaluation) {
61
+ await this.database.assignIntentToIndex(intentId, indexId, 1.0);
62
+ return {
63
+ agentTimings: agentTimingsAccum,
64
+ assignmentResult: { indexId, assigned: true, success: true },
65
+ mutationResult: { success: true, message: "Intent saved to the index." },
66
+ };
67
+ }
68
+ // Evaluated assignment (migrated from old Index Graph)
69
+ const intentForIndexing = await this.database.getIntentForIndexing(intentId);
70
+ if (!intentForIndexing) {
71
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: false, error: "Intent not found for indexing." } };
72
+ }
73
+ const indexContext = await this.database.getIndexMemberContext(indexId, intentForIndexing.userId);
74
+ if (!indexContext) {
75
+ // No prompts or not eligible - auto-assign
76
+ await this.database.assignIntentToIndex(intentId, indexId, 1.0);
77
+ return {
78
+ agentTimings: agentTimingsAccum,
79
+ assignmentResult: { indexId, assigned: true, success: true },
80
+ mutationResult: { success: true, message: "Intent assigned to index (auto-assign, no prompts)." },
81
+ };
82
+ }
83
+ const hasNoPrompts = !indexContext.indexPrompt?.trim() && !indexContext.memberPrompt?.trim();
84
+ if (hasNoPrompts) {
85
+ await this.database.assignIntentToIndex(intentId, indexId, 1.0);
86
+ return {
87
+ agentTimings: agentTimingsAccum,
88
+ assignmentResult: { indexId, assigned: true, success: true },
89
+ mutationResult: { success: true, message: "Intent assigned to index (no prompts, auto-assign)." },
90
+ };
91
+ }
92
+ // Run IntentIndexer evaluation
93
+ const sourceName = intentForIndexing.sourceType
94
+ ? `${intentForIndexing.sourceType}:${intentForIndexing.sourceId ?? ""}`
95
+ : undefined;
96
+ const _traceEmitterIndexer = requestContext.getStore()?.traceEmitter;
97
+ const _indexerStart = Date.now();
98
+ _traceEmitterIndexer?.({ type: "agent_start", name: "intent-indexer" });
99
+ const result = await indexer.evaluate(intentForIndexing.payload, indexContext.indexPrompt, indexContext.memberPrompt, sourceName);
100
+ const _indexerMs = Date.now() - _indexerStart;
101
+ agentTimingsAccum.push({ name: 'intent.indexer', durationMs: _indexerMs });
102
+ _traceEmitterIndexer?.({ type: "agent_end", name: "intent-indexer", durationMs: _indexerMs, summary: result ? `Scored: index=${result.indexScore.toFixed(2)}, member=${result.memberScore.toFixed(2)}` : "intent-indexer completed" });
103
+ if (!result) {
104
+ return {
105
+ agentTimings: agentTimingsAccum,
106
+ evaluation: null,
107
+ shouldAssign: false,
108
+ finalScore: 0,
109
+ mutationResult: { success: false, error: "Evaluation returned no result." },
110
+ };
111
+ }
112
+ const { indexScore, memberScore } = result;
113
+ const ip = indexContext.indexPrompt?.trim();
114
+ const mp = indexContext.memberPrompt?.trim();
115
+ let shouldAssign = false;
116
+ let finalScore = 0;
117
+ if (ip && mp) {
118
+ if (indexScore > QUALIFICATION_THRESHOLD && memberScore > QUALIFICATION_THRESHOLD) {
119
+ shouldAssign = true;
120
+ finalScore = indexScore * 0.6 + memberScore * 0.4;
121
+ }
122
+ }
123
+ else if (ip) {
124
+ if (indexScore > QUALIFICATION_THRESHOLD) {
125
+ shouldAssign = true;
126
+ finalScore = indexScore;
127
+ }
128
+ }
129
+ else if (mp) {
130
+ if (memberScore > QUALIFICATION_THRESHOLD) {
131
+ shouldAssign = true;
132
+ finalScore = memberScore;
133
+ }
134
+ }
135
+ else {
136
+ shouldAssign = true;
137
+ finalScore = 1.0;
138
+ }
139
+ if (shouldAssign) {
140
+ await this.database.assignIntentToIndex(intentId, indexId, finalScore);
141
+ return {
142
+ agentTimings: agentTimingsAccum,
143
+ evaluation: result,
144
+ shouldAssign: true,
145
+ finalScore,
146
+ assignmentResult: { indexId, assigned: true, success: true },
147
+ mutationResult: { success: true, message: `Intent assigned to index (score: ${finalScore.toFixed(2)}).` },
148
+ };
149
+ }
150
+ return {
151
+ agentTimings: agentTimingsAccum,
152
+ evaluation: result,
153
+ shouldAssign: false,
154
+ finalScore,
155
+ assignmentResult: { indexId, assigned: false, success: true },
156
+ mutationResult: { success: false, error: `Intent did not qualify for this index (score: ${finalScore.toFixed(2)}).` },
157
+ };
158
+ }
159
+ catch (err) {
160
+ logger.error("Assign failed", { error: err });
161
+ return { agentTimings: agentTimingsAccum, mutationResult: { success: false, error: "Failed to assign intent to index." } };
162
+ }
163
+ });
164
+ };
165
+ /**
166
+ * Read Node: Query intent-index relationships.
167
+ * - By intentId only: list all indexes the intent is in (owner only)
168
+ * - By indexId only: list intents in the index (member only)
169
+ * - By both intentId and indexId: check if specific link exists (owner only)
170
+ */
171
+ const readNode = async (state) => {
172
+ return timed("IntentIndexGraph.read", async () => {
173
+ const intentId = state.intentId;
174
+ const indexId = state.indexId;
175
+ logger.verbose("Read intent-index links", { userId: state.userId, intentId, indexId, queryUserId: state.queryUserId });
176
+ try {
177
+ // By both: check if specific intent-index link exists
178
+ if (intentId && indexId) {
179
+ const intent = await this.database.getIntent(intentId);
180
+ if (!intent) {
181
+ return { readResult: { links: [], count: 0, mode: "check_link" }, error: "Intent not found." };
182
+ }
183
+ if (intent.userId !== state.userId) {
184
+ return { readResult: { links: [], count: 0, mode: "check_link" }, error: "You can only check links for your own intents." };
185
+ }
186
+ const isLinked = await this.database.isIntentAssignedToIndex(intentId, indexId);
187
+ return {
188
+ readResult: {
189
+ links: isLinked ? [{ intentId, indexId }] : [],
190
+ count: isLinked ? 1 : 0,
191
+ mode: "check_link",
192
+ note: isLinked ? "Intent is linked to this index." : "Intent is not linked to this index.",
193
+ },
194
+ };
195
+ }
196
+ // By intent only: list all indexes for this intent
197
+ if (intentId) {
198
+ const intent = await this.database.getIntent(intentId);
199
+ if (!intent) {
200
+ return { readResult: { links: [], count: 0, mode: "indexes_for_intent" }, error: "Intent not found." };
201
+ }
202
+ if (intent.userId !== state.userId) {
203
+ return { readResult: { links: [], count: 0, mode: "indexes_for_intent" }, error: "You can only list indexes for your own intents." };
204
+ }
205
+ const indexIds = await this.database.getIndexIdsForIntent(intentId);
206
+ return {
207
+ readResult: {
208
+ links: indexIds.map((id) => ({ intentId, indexId: id })),
209
+ count: indexIds.length,
210
+ mode: "indexes_for_intent",
211
+ note: "To show index titles, use read_indexes.",
212
+ },
213
+ };
214
+ }
215
+ // By index: list intents in the index
216
+ if (!indexId) {
217
+ return {
218
+ readResult: { links: [], count: 0, mode: "unknown" },
219
+ error: "Provide indexId or intentId.",
220
+ };
221
+ }
222
+ const isMember = await this.database.isIndexMember(indexId, state.userId);
223
+ if (!isMember) {
224
+ return {
225
+ readResult: { links: [], count: 0, mode: "intents_in_index" },
226
+ error: "Index not found or you are not a member.",
227
+ };
228
+ }
229
+ // All intents or filtered by user
230
+ if (!state.queryUserId) {
231
+ const intents = await this.database.getIndexIntentsForMember(indexId, state.userId, { limit: 50, offset: 0 });
232
+ return {
233
+ readResult: {
234
+ links: intents.map((i) => ({
235
+ intentId: i.id,
236
+ indexId,
237
+ intentTitle: i.payload,
238
+ userId: i.userId,
239
+ userName: i.userName,
240
+ createdAt: i.createdAt,
241
+ })),
242
+ count: intents.length,
243
+ mode: "intents_in_index",
244
+ note: "To show index title and full intent details, use read_indexes and read_intents.",
245
+ },
246
+ };
247
+ }
248
+ // Specific user's intents
249
+ const intents = await this.database.getIntentsInIndexForMember(state.queryUserId, indexId);
250
+ return {
251
+ readResult: {
252
+ links: intents.map((i) => ({
253
+ intentId: i.id,
254
+ indexId,
255
+ intentTitle: i.payload,
256
+ createdAt: i.createdAt,
257
+ })),
258
+ count: intents.length,
259
+ mode: "intents_in_index",
260
+ note: "To show index title and full intent details, use read_indexes and read_intents.",
261
+ },
262
+ };
263
+ }
264
+ catch (err) {
265
+ logger.error("Read intent-index failed", { error: err });
266
+ return { error: "Failed to fetch intent-index links." };
267
+ }
268
+ });
269
+ };
270
+ /**
271
+ * Unassign Node: Remove an intent from an index.
272
+ */
273
+ const unassignNode = async (state) => {
274
+ return timed("IntentIndexGraph.unassign", async () => {
275
+ const intentId = state.intentId;
276
+ const indexId = state.indexId;
277
+ logger.verbose("Unassign intent from index", { userId: state.userId, intentId, indexId });
278
+ if (!intentId || !indexId) {
279
+ return { mutationResult: { success: false, error: "Both intentId and indexId are required." } };
280
+ }
281
+ try {
282
+ const intent = await this.database.getIntent(intentId);
283
+ if (!intent) {
284
+ return { mutationResult: { success: false, error: "Intent not found." } };
285
+ }
286
+ if (intent.userId !== state.userId) {
287
+ return { mutationResult: { success: false, error: "You can only remove your own intents from an index." } };
288
+ }
289
+ const isMember = await this.database.isIndexMember(indexId, state.userId);
290
+ if (!isMember) {
291
+ return { mutationResult: { success: false, error: "You are not a member of that index." } };
292
+ }
293
+ const assigned = await this.database.isIntentAssignedToIndex(intentId, indexId);
294
+ if (!assigned) {
295
+ return { mutationResult: { success: true, message: "That intent is not in this index." } };
296
+ }
297
+ await this.database.unassignIntentFromIndex(intentId, indexId);
298
+ return { mutationResult: { success: true, message: "Intent removed from the index." } };
299
+ }
300
+ catch (err) {
301
+ logger.error("Unassign failed", { error: err });
302
+ return { mutationResult: { success: false, error: "Failed to remove intent from index." } };
303
+ }
304
+ });
305
+ };
306
+ // --- CONDITIONAL ROUTING ---
307
+ const routeByMode = (state) => {
308
+ switch (state.operationMode) {
309
+ case 'create': return 'assign';
310
+ case 'read': return 'read';
311
+ case 'delete': return 'unassign';
312
+ default: return 'read';
313
+ }
314
+ };
315
+ // --- GRAPH ASSEMBLY ---
316
+ const workflow = new StateGraph(IntentIndexGraphState)
317
+ .addNode("assign", assignNode)
318
+ .addNode("read", readNode)
319
+ .addNode("unassign", unassignNode)
320
+ .addConditionalEdges(START, routeByMode, {
321
+ assign: "assign",
322
+ read: "read",
323
+ unassign: "unassign",
324
+ })
325
+ .addEdge("assign", END)
326
+ .addEdge("read", END)
327
+ .addEdge("unassign", END);
328
+ return workflow.compile();
329
+ }
330
+ }
331
+ //# sourceMappingURL=intent_index.graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent_index.graph.js","sourceRoot":"","sources":["../../src/graphs/intent_index.graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /** Database methods needed by the maintenance graph (includes introducer discovery). */
2
+ export interface MaintenanceGraphDatabase {
3
+ getOpportunitiesForUser(userId: string, options?: {
4
+ limit?: number;
5
+ }): Promise<Array<{
6
+ id: string;
7
+ actors: Array<{
8
+ userId: string;
9
+ role: string;
10
+ }>;
11
+ status: string;
12
+ [key: string]: unknown;
13
+ }>>;
14
+ getActiveIntents(userId: string): Promise<Array<{
15
+ id: string;
16
+ payload: string;
17
+ }>>;
18
+ /** Get the user's personal index ID (for introducer discovery). */
19
+ getPersonalIndexId(userId: string): Promise<string | null>;
20
+ /** Get contacts with intent freshness data from a personal index (for introducer discovery). */
21
+ getContactsWithIntentFreshness(personalIndexId: string, ownerId: string, limit: number): Promise<Array<{
22
+ userId: string;
23
+ latestIntentAt: string | null;
24
+ intentCount: number;
25
+ }>>;
26
+ }
27
+ /** Cache methods needed by the maintenance graph. */
28
+ export interface MaintenanceGraphCache {
29
+ get<T = unknown>(key: string): Promise<T | null>;
30
+ set(key: string, value: unknown, options?: {
31
+ ttl?: number;
32
+ }): Promise<void>;
33
+ }
34
+ /** Queue methods needed by the maintenance graph. */
35
+ export interface MaintenanceGraphQueue {
36
+ addJob(data: {
37
+ intentId: string;
38
+ userId: string;
39
+ indexIds?: string[];
40
+ contactUserId?: string;
41
+ }, options?: {
42
+ priority?: number;
43
+ jobId?: string;
44
+ }): Promise<unknown>;
45
+ }
46
+ /**
47
+ * Factory for the Maintenance Graph.
48
+ * Accepts database, cache, and queue dependencies via constructor injection.
49
+ */
50
+ export declare class MaintenanceGraphFactory {
51
+ private database;
52
+ private cache;
53
+ private queue;
54
+ constructor(database: MaintenanceGraphDatabase, cache: MaintenanceGraphCache, queue: MaintenanceGraphQueue);
55
+ /** Compile and return the maintenance graph. */
56
+ createGraph(): import("@langchain/langgraph").CompiledStateGraph<{
57
+ userId: string;
58
+ activeIntents: {
59
+ id: string;
60
+ payload: string;
61
+ }[];
62
+ currentOpportunities: import("../index.js").Opportunity[];
63
+ expiredCount: number;
64
+ lastRediscoveryAt: number | null;
65
+ healthResult: import("../support/feed.health.js").FeedHealthResult | null;
66
+ rediscoveryJobsEnqueued: number;
67
+ connectorFlowCount: number;
68
+ introducerDiscoveryJobsEnqueued: number;
69
+ error: string | undefined;
70
+ }, {
71
+ userId?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
72
+ activeIntents?: {
73
+ id: string;
74
+ payload: string;
75
+ }[] | import("@langchain/langgraph").OverwriteValue<{
76
+ id: string;
77
+ payload: string;
78
+ }[]> | undefined;
79
+ currentOpportunities?: import("../index.js").Opportunity[] | import("@langchain/langgraph").OverwriteValue<import("../index.js").Opportunity[]> | undefined;
80
+ expiredCount?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
81
+ lastRediscoveryAt?: number | import("@langchain/langgraph").OverwriteValue<number | null> | null | undefined;
82
+ healthResult?: import("../support/feed.health.js").FeedHealthResult | import("@langchain/langgraph").OverwriteValue<import("../support/feed.health.js").FeedHealthResult | null> | null | undefined;
83
+ rediscoveryJobsEnqueued?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
84
+ connectorFlowCount?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
85
+ introducerDiscoveryJobsEnqueued?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
86
+ error?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
87
+ }, "__start__" | "loadCurrentFeed" | "scoreFeedHealth" | "rediscover" | "introducerDiscovery" | "logMaintenance", {
88
+ userId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
89
+ activeIntents: import("@langchain/langgraph").BaseChannel<{
90
+ id: string;
91
+ payload: string;
92
+ }[], {
93
+ id: string;
94
+ payload: string;
95
+ }[] | import("@langchain/langgraph").OverwriteValue<{
96
+ id: string;
97
+ payload: string;
98
+ }[]>, unknown>;
99
+ currentOpportunities: import("@langchain/langgraph").BaseChannel<import("../index.js").Opportunity[], import("../index.js").Opportunity[] | import("@langchain/langgraph").OverwriteValue<import("../index.js").Opportunity[]>, unknown>;
100
+ expiredCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
101
+ lastRediscoveryAt: import("@langchain/langgraph").BaseChannel<number | null, number | import("@langchain/langgraph").OverwriteValue<number | null> | null, unknown>;
102
+ healthResult: import("@langchain/langgraph").BaseChannel<import("../support/feed.health.js").FeedHealthResult | null, import("../support/feed.health.js").FeedHealthResult | import("@langchain/langgraph").OverwriteValue<import("../support/feed.health.js").FeedHealthResult | null> | null, unknown>;
103
+ rediscoveryJobsEnqueued: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
104
+ connectorFlowCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
105
+ introducerDiscoveryJobsEnqueued: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
106
+ error: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
107
+ }, {
108
+ userId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
109
+ activeIntents: import("@langchain/langgraph").BaseChannel<{
110
+ id: string;
111
+ payload: string;
112
+ }[], {
113
+ id: string;
114
+ payload: string;
115
+ }[] | import("@langchain/langgraph").OverwriteValue<{
116
+ id: string;
117
+ payload: string;
118
+ }[]>, unknown>;
119
+ currentOpportunities: import("@langchain/langgraph").BaseChannel<import("../index.js").Opportunity[], import("../index.js").Opportunity[] | import("@langchain/langgraph").OverwriteValue<import("../index.js").Opportunity[]>, unknown>;
120
+ expiredCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
121
+ lastRediscoveryAt: import("@langchain/langgraph").BaseChannel<number | null, number | import("@langchain/langgraph").OverwriteValue<number | null> | null, unknown>;
122
+ healthResult: import("@langchain/langgraph").BaseChannel<import("../support/feed.health.js").FeedHealthResult | null, import("../support/feed.health.js").FeedHealthResult | import("@langchain/langgraph").OverwriteValue<import("../support/feed.health.js").FeedHealthResult | null> | null, unknown>;
123
+ rediscoveryJobsEnqueued: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
124
+ connectorFlowCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
125
+ introducerDiscoveryJobsEnqueued: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
126
+ error: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
127
+ }, import("@langchain/langgraph").StateDefinition, {
128
+ loadCurrentFeed: import("@langchain/langgraph").UpdateType<{
129
+ userId: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
130
+ activeIntents: import("@langchain/langgraph").BaseChannel<{
131
+ id: string;
132
+ payload: string;
133
+ }[], {
134
+ id: string;
135
+ payload: string;
136
+ }[] | import("@langchain/langgraph").OverwriteValue<{
137
+ id: string;
138
+ payload: string;
139
+ }[]>, unknown>;
140
+ currentOpportunities: import("@langchain/langgraph").BaseChannel<import("../index.js").Opportunity[], import("../index.js").Opportunity[] | import("@langchain/langgraph").OverwriteValue<import("../index.js").Opportunity[]>, unknown>;
141
+ expiredCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
142
+ lastRediscoveryAt: import("@langchain/langgraph").BaseChannel<number | null, number | import("@langchain/langgraph").OverwriteValue<number | null> | null, unknown>;
143
+ healthResult: import("@langchain/langgraph").BaseChannel<import("../support/feed.health.js").FeedHealthResult | null, import("../support/feed.health.js").FeedHealthResult | import("@langchain/langgraph").OverwriteValue<import("../support/feed.health.js").FeedHealthResult | null> | null, unknown>;
144
+ rediscoveryJobsEnqueued: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
145
+ connectorFlowCount: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
146
+ introducerDiscoveryJobsEnqueued: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
147
+ error: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
148
+ }>;
149
+ scoreFeedHealth: {
150
+ healthResult?: undefined;
151
+ connectorFlowCount?: undefined;
152
+ error?: undefined;
153
+ } | {
154
+ healthResult: import("../support/feed.health.js").FeedHealthResult;
155
+ connectorFlowCount: number;
156
+ error?: undefined;
157
+ } | {
158
+ error: string;
159
+ healthResult?: undefined;
160
+ connectorFlowCount?: undefined;
161
+ };
162
+ rediscover: {
163
+ rediscoveryJobsEnqueued: number;
164
+ error?: undefined;
165
+ } | {
166
+ error: string;
167
+ rediscoveryJobsEnqueued?: undefined;
168
+ };
169
+ introducerDiscovery: {
170
+ introducerDiscoveryJobsEnqueued?: undefined;
171
+ } | {
172
+ introducerDiscoveryJobsEnqueued: number;
173
+ };
174
+ logMaintenance: {};
175
+ }, unknown, unknown>;
176
+ }
177
+ //# sourceMappingURL=maintenance.graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.graph.d.ts","sourceRoot":"","sources":["../../src/graphs/maintenance.graph.ts"],"names":[],"mappings":"AAyBA,wFAAwF;AACxF,MAAM,WAAW,wBAAwB;IACvC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/L,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAClF,mEAAmE;IACnE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,gGAAgG;IAChG,8BAA8B,CAC5B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC3F;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED,qDAAqD;AACrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpK;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;gBAFL,QAAQ,EAAE,wBAAwB,EAClC,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,qBAAqB;IAGtC,gDAAgD;IAChD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6KZ"}