@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,226 @@
1
+ import { StateGraph, START, END } from "@langchain/langgraph";
2
+ import { protocolLogger } from "../support/protocol.logger.js";
3
+ import { timed } from "../support/performance.js";
4
+ import { IndexGraphState } from "../states/index.state.js";
5
+ const logger = protocolLogger("IndexGraphFactory");
6
+ /**
7
+ * Factory class to build and compile the Index (CRUD) Graph.
8
+ *
9
+ * Handles create, read, update, and delete operations for indexes.
10
+ * Membership and intent-index assignment operations are handled by
11
+ * separate graphs (IndexMembershipGraph and IntentIndexGraph).
12
+ *
13
+ * Flow:
14
+ * START → routerNode → {createNode | readNode | updateNode | deleteNode} → END
15
+ */
16
+ export class IndexGraphFactory {
17
+ constructor(database) {
18
+ this.database = database;
19
+ }
20
+ createGraph() {
21
+ // --- NODE DEFINITIONS ---
22
+ /**
23
+ * Read Node: List indexes the user belongs to and owns.
24
+ */
25
+ const readNode = async (state) => {
26
+ return timed("IndexGraph.read", async () => {
27
+ logger.verbose("Read indexes", { userId: state.userId, indexId: state.indexId, showAll: state.showAll });
28
+ try {
29
+ const [allMemberships, ownedIndexes, publicIndexesResult] = await Promise.all([
30
+ this.database.getIndexMemberships(state.userId),
31
+ this.database.getOwnedIndexes(state.userId),
32
+ this.database.getPublicIndexesNotJoined(state.userId),
33
+ ]);
34
+ // If index-scoped and not showAll, return just that index (no public indexes in scoped view)
35
+ const scopeToCurrentIndex = state.indexId && !state.showAll;
36
+ if (scopeToCurrentIndex) {
37
+ const indexId = state.indexId;
38
+ const isMember = await this.database.isIndexMember(indexId, state.userId);
39
+ if (!isMember) {
40
+ return {
41
+ readResult: {
42
+ memberOf: [],
43
+ owns: [],
44
+ stats: { memberOfCount: 0, ownsCount: 0, scopeNote: "Index not found or you are not a member." },
45
+ },
46
+ };
47
+ }
48
+ const membership = allMemberships.find((m) => m.indexId === indexId);
49
+ const owned = ownedIndexes.find((o) => o.id === indexId);
50
+ return {
51
+ readResult: {
52
+ memberOf: membership
53
+ ? [{ indexId: membership.indexId, title: membership.indexTitle, description: membership.indexPrompt, autoAssign: membership.autoAssign, joinedAt: membership.joinedAt }]
54
+ : [],
55
+ owns: owned
56
+ ? [{ indexId: owned.id, title: owned.title, description: owned.prompt, memberCount: owned.memberCount, intentCount: owned.intentCount, joinPolicy: owned.permissions.joinPolicy }]
57
+ : [],
58
+ stats: { memberOfCount: membership ? 1 : 0, ownsCount: owned ? 1 : 0, scopeNote: "Showing current index. Use showAll: true for all indexes." },
59
+ },
60
+ };
61
+ }
62
+ // Include public indexes available to join
63
+ const publicIndexes = publicIndexesResult.indexes.map((idx) => ({
64
+ indexId: idx.id,
65
+ title: idx.title,
66
+ description: idx.prompt,
67
+ memberCount: idx.memberCount,
68
+ owner: idx.owner,
69
+ }));
70
+ return {
71
+ readResult: {
72
+ memberOf: allMemberships.map((m) => ({ indexId: m.indexId, title: m.indexTitle, description: m.indexPrompt, autoAssign: m.autoAssign, joinedAt: m.joinedAt })),
73
+ owns: ownedIndexes.map((o) => ({ indexId: o.id, title: o.title, description: o.prompt, memberCount: o.memberCount, intentCount: o.intentCount, joinPolicy: o.permissions.joinPolicy })),
74
+ publicIndexes,
75
+ stats: { memberOfCount: allMemberships.length, ownsCount: ownedIndexes.length, publicIndexesCount: publicIndexes.length },
76
+ },
77
+ };
78
+ }
79
+ catch (err) {
80
+ logger.error("Read indexes failed", { error: err });
81
+ return { error: "Failed to fetch index information." };
82
+ }
83
+ });
84
+ };
85
+ /**
86
+ * Create Node: Create a new index and add user as owner.
87
+ */
88
+ const createNode = async (state) => {
89
+ return timed("IndexGraph.create", async () => {
90
+ logger.verbose("Create index", { userId: state.userId, createInput: state.createInput });
91
+ if (!state.createInput?.title?.trim()) {
92
+ return { mutationResult: { success: false, error: "Title is required." } };
93
+ }
94
+ let createdIndexId;
95
+ try {
96
+ const index = await this.database.createIndex({
97
+ title: state.createInput.title.trim(),
98
+ prompt: state.createInput.prompt?.trim() || undefined,
99
+ imageUrl: state.createInput.imageUrl ?? undefined,
100
+ joinPolicy: state.createInput.joinPolicy,
101
+ });
102
+ createdIndexId = index.id;
103
+ const added = await this.database.addMemberToIndex(index.id, state.userId, 'owner');
104
+ if (!added.success) {
105
+ logger.error("addMemberToIndex failed; cleaning up orphaned index", { indexId: index.id });
106
+ try {
107
+ await this.database.softDeleteIndex(index.id);
108
+ }
109
+ catch { }
110
+ return { mutationResult: { success: false, error: "Failed to set you as owner. Index was not created." } };
111
+ }
112
+ return {
113
+ mutationResult: {
114
+ success: true,
115
+ indexId: index.id,
116
+ title: index.title,
117
+ message: `Index "${index.title}" created. You are the owner.`,
118
+ },
119
+ };
120
+ }
121
+ catch (err) {
122
+ logger.error("Create index failed", { error: err });
123
+ if (createdIndexId) {
124
+ try {
125
+ await this.database.softDeleteIndex(createdIndexId);
126
+ }
127
+ catch { }
128
+ }
129
+ return { mutationResult: { success: false, error: "Failed to create index." } };
130
+ }
131
+ });
132
+ };
133
+ /**
134
+ * Update Node: Update index settings (owner only).
135
+ */
136
+ const updateNode = async (state) => {
137
+ return timed("IndexGraph.update", async () => {
138
+ const indexId = state.indexId;
139
+ logger.verbose("Update index", { userId: state.userId, indexId, updateInput: state.updateInput });
140
+ if (!indexId) {
141
+ return { mutationResult: { success: false, error: "indexId is required for update." } };
142
+ }
143
+ try {
144
+ const isOwner = await this.database.isIndexOwner(indexId, state.userId);
145
+ if (!isOwner) {
146
+ return { mutationResult: { success: false, error: "You can only modify indexes you own." } };
147
+ }
148
+ await this.database.updateIndexSettings(indexId, state.userId, state.updateInput ?? {});
149
+ return {
150
+ mutationResult: {
151
+ success: true,
152
+ indexId,
153
+ message: "Index settings updated.",
154
+ },
155
+ };
156
+ }
157
+ catch (err) {
158
+ logger.error("Update index failed", { error: err });
159
+ return { mutationResult: { success: false, error: "Failed to update index." } };
160
+ }
161
+ });
162
+ };
163
+ /**
164
+ * Delete Node: Soft-delete an index (owner only, sole member).
165
+ */
166
+ const deleteNode = async (state) => {
167
+ return timed("IndexGraph.delete", async () => {
168
+ const indexId = state.indexId;
169
+ logger.verbose("Delete index", { userId: state.userId, indexId });
170
+ if (!indexId) {
171
+ return { mutationResult: { success: false, error: "indexId is required for delete." } };
172
+ }
173
+ try {
174
+ const isOwner = await this.database.isIndexOwner(indexId, state.userId);
175
+ if (!isOwner) {
176
+ return { mutationResult: { success: false, error: "You can only delete indexes you own." } };
177
+ }
178
+ const count = await this.database.getIndexMemberCount(indexId);
179
+ if (count > 1) {
180
+ return { mutationResult: { success: false, error: "Cannot delete index with other members. Remove members first." } };
181
+ }
182
+ await this.database.softDeleteIndex(indexId);
183
+ return {
184
+ mutationResult: {
185
+ success: true,
186
+ indexId,
187
+ message: "Index deleted.",
188
+ },
189
+ };
190
+ }
191
+ catch (err) {
192
+ logger.error("Delete index failed", { error: err });
193
+ return { mutationResult: { success: false, error: "Failed to delete index." } };
194
+ }
195
+ });
196
+ };
197
+ // --- CONDITIONAL ROUTING ---
198
+ const routeByMode = (state) => {
199
+ switch (state.operationMode) {
200
+ case 'create': return 'create';
201
+ case 'read': return 'read';
202
+ case 'update': return 'update';
203
+ case 'delete': return 'delete_idx';
204
+ default: return 'read';
205
+ }
206
+ };
207
+ // --- GRAPH ASSEMBLY ---
208
+ const workflow = new StateGraph(IndexGraphState)
209
+ .addNode("read", readNode)
210
+ .addNode("create", createNode)
211
+ .addNode("update", updateNode)
212
+ .addNode("delete_idx", deleteNode)
213
+ .addConditionalEdges(START, routeByMode, {
214
+ read: "read",
215
+ create: "create",
216
+ update: "update",
217
+ delete_idx: "delete_idx",
218
+ })
219
+ .addEdge("read", END)
220
+ .addEdge("create", END)
221
+ .addEdge("update", END)
222
+ .addEdge("delete_idx", END);
223
+ return workflow.compile();
224
+ }
225
+ }
226
+ //# sourceMappingURL=index.graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.graph.js","sourceRoot":"","sources":["../../src/graphs/index.graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ import type { IndexMembershipGraphDatabase } from "../interfaces/database.interface.js";
2
+ /**
3
+ * Factory class to build and compile the Index Membership Graph.
4
+ *
5
+ * Handles CRUD operations for the index_members table:
6
+ * - create: Add a member to an index (validates join policy and ownership)
7
+ * - read: List members of an index (validates caller is member)
8
+ * - delete: Remove a member from an index (future, validates ownership)
9
+ */
10
+ export declare class IndexMembershipGraphFactory {
11
+ private database;
12
+ constructor(database: IndexMembershipGraphDatabase);
13
+ createGraph(): import("@langchain/langgraph").CompiledStateGraph<{
14
+ userId: string;
15
+ indexId: string;
16
+ operationMode: "create" | "delete" | "read";
17
+ targetUserId: string | undefined;
18
+ readResult: {
19
+ indexId: string;
20
+ count: number;
21
+ members: Array<{
22
+ userId: string;
23
+ name: string;
24
+ avatar: string | null;
25
+ permissions: string[];
26
+ intentCount: number;
27
+ joinedAt: Date;
28
+ }>;
29
+ } | undefined;
30
+ mutationResult: {
31
+ success: boolean;
32
+ message?: string;
33
+ error?: string;
34
+ } | undefined;
35
+ error: string | null;
36
+ }, {
37
+ userId?: string | undefined;
38
+ indexId?: string | undefined;
39
+ operationMode?: "create" | "delete" | "read" | import("@langchain/langgraph").OverwriteValue<"create" | "delete" | "read"> | undefined;
40
+ targetUserId?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
41
+ readResult?: {
42
+ indexId: string;
43
+ count: number;
44
+ members: Array<{
45
+ userId: string;
46
+ name: string;
47
+ avatar: string | null;
48
+ permissions: string[];
49
+ intentCount: number;
50
+ joinedAt: Date;
51
+ }>;
52
+ } | import("@langchain/langgraph").OverwriteValue<{
53
+ indexId: string;
54
+ count: number;
55
+ members: Array<{
56
+ userId: string;
57
+ name: string;
58
+ avatar: string | null;
59
+ permissions: string[];
60
+ intentCount: number;
61
+ joinedAt: Date;
62
+ }>;
63
+ } | undefined> | undefined;
64
+ mutationResult?: {
65
+ success: boolean;
66
+ message?: string;
67
+ error?: string;
68
+ } | import("@langchain/langgraph").OverwriteValue<{
69
+ success: boolean;
70
+ message?: string;
71
+ error?: string;
72
+ } | undefined> | undefined;
73
+ error?: string | import("@langchain/langgraph").OverwriteValue<string | null> | null | undefined;
74
+ }, "__start__" | "add_member" | "list_members" | "remove_member", {
75
+ userId: {
76
+ (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
77
+ (): import("@langchain/langgraph").LastValue<string>;
78
+ Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
79
+ };
80
+ indexId: {
81
+ (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
82
+ (): import("@langchain/langgraph").LastValue<string>;
83
+ Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
84
+ };
85
+ operationMode: import("@langchain/langgraph").BaseChannel<"create" | "delete" | "read", "create" | "delete" | "read" | import("@langchain/langgraph").OverwriteValue<"create" | "delete" | "read">, unknown>;
86
+ targetUserId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
87
+ readResult: import("@langchain/langgraph").BaseChannel<{
88
+ indexId: string;
89
+ count: number;
90
+ members: Array<{
91
+ userId: string;
92
+ name: string;
93
+ avatar: string | null;
94
+ permissions: string[];
95
+ intentCount: number;
96
+ joinedAt: Date;
97
+ }>;
98
+ } | undefined, {
99
+ indexId: string;
100
+ count: number;
101
+ members: Array<{
102
+ userId: string;
103
+ name: string;
104
+ avatar: string | null;
105
+ permissions: string[];
106
+ intentCount: number;
107
+ joinedAt: Date;
108
+ }>;
109
+ } | import("@langchain/langgraph").OverwriteValue<{
110
+ indexId: string;
111
+ count: number;
112
+ members: Array<{
113
+ userId: string;
114
+ name: string;
115
+ avatar: string | null;
116
+ permissions: string[];
117
+ intentCount: number;
118
+ joinedAt: Date;
119
+ }>;
120
+ } | undefined> | undefined, unknown>;
121
+ mutationResult: import("@langchain/langgraph").BaseChannel<{
122
+ success: boolean;
123
+ message?: string;
124
+ error?: string;
125
+ } | undefined, {
126
+ success: boolean;
127
+ message?: string;
128
+ error?: string;
129
+ } | import("@langchain/langgraph").OverwriteValue<{
130
+ success: boolean;
131
+ message?: string;
132
+ error?: string;
133
+ } | undefined> | undefined, unknown>;
134
+ error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
135
+ }, {
136
+ userId: {
137
+ (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
138
+ (): import("@langchain/langgraph").LastValue<string>;
139
+ Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
140
+ };
141
+ indexId: {
142
+ (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
143
+ (): import("@langchain/langgraph").LastValue<string>;
144
+ Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
145
+ };
146
+ operationMode: import("@langchain/langgraph").BaseChannel<"create" | "delete" | "read", "create" | "delete" | "read" | import("@langchain/langgraph").OverwriteValue<"create" | "delete" | "read">, unknown>;
147
+ targetUserId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
148
+ readResult: import("@langchain/langgraph").BaseChannel<{
149
+ indexId: string;
150
+ count: number;
151
+ members: Array<{
152
+ userId: string;
153
+ name: string;
154
+ avatar: string | null;
155
+ permissions: string[];
156
+ intentCount: number;
157
+ joinedAt: Date;
158
+ }>;
159
+ } | undefined, {
160
+ indexId: string;
161
+ count: number;
162
+ members: Array<{
163
+ userId: string;
164
+ name: string;
165
+ avatar: string | null;
166
+ permissions: string[];
167
+ intentCount: number;
168
+ joinedAt: Date;
169
+ }>;
170
+ } | import("@langchain/langgraph").OverwriteValue<{
171
+ indexId: string;
172
+ count: number;
173
+ members: Array<{
174
+ userId: string;
175
+ name: string;
176
+ avatar: string | null;
177
+ permissions: string[];
178
+ intentCount: number;
179
+ joinedAt: Date;
180
+ }>;
181
+ } | undefined> | undefined, unknown>;
182
+ mutationResult: import("@langchain/langgraph").BaseChannel<{
183
+ success: boolean;
184
+ message?: string;
185
+ error?: string;
186
+ } | undefined, {
187
+ success: boolean;
188
+ message?: string;
189
+ error?: string;
190
+ } | import("@langchain/langgraph").OverwriteValue<{
191
+ success: boolean;
192
+ message?: string;
193
+ error?: string;
194
+ } | undefined> | undefined, unknown>;
195
+ error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
196
+ }, import("@langchain/langgraph").StateDefinition, {
197
+ add_member: {
198
+ mutationResult: {
199
+ success: boolean;
200
+ error: string;
201
+ message?: undefined;
202
+ };
203
+ } | {
204
+ mutationResult: {
205
+ success: boolean;
206
+ message: string;
207
+ error?: undefined;
208
+ };
209
+ };
210
+ list_members: {
211
+ readResult: {
212
+ indexId: string;
213
+ count: number;
214
+ members: never[];
215
+ };
216
+ error: string;
217
+ } | {
218
+ readResult: {
219
+ indexId: string;
220
+ count: number;
221
+ members: {
222
+ userId: string;
223
+ name: string;
224
+ avatar: string | null;
225
+ permissions: string[];
226
+ intentCount: number;
227
+ joinedAt: Date;
228
+ }[];
229
+ };
230
+ error?: undefined;
231
+ } | {
232
+ error: string;
233
+ readResult?: undefined;
234
+ };
235
+ remove_member: {
236
+ mutationResult: {
237
+ success: boolean;
238
+ error: string;
239
+ message?: undefined;
240
+ };
241
+ } | {
242
+ mutationResult: {
243
+ success: boolean;
244
+ message: string;
245
+ error?: undefined;
246
+ };
247
+ };
248
+ }, unknown, unknown>;
249
+ }
250
+ //# sourceMappingURL=index_membership.graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_membership.graph.d.ts","sourceRoot":"","sources":["../../src/graphs/index_membership.graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAOxF;;;;;;;GAOG;AACH,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,4BAA4B;IAEnD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNnB"}