@indexnetwork/protocol 22.0.0-rc.498.1 → 64.0.0-rc.604.2

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 (561) hide show
  1. package/CHANGELOG.md +1841 -0
  2. package/IMPLEMENTATION.md +140 -181
  3. package/README.md +16 -20
  4. package/STABILITY.md +16 -11
  5. package/dist/{intents/intent.module.d.ts → capabilities/intents.d.ts} +182 -192
  6. package/dist/capabilities/intents.js +88 -0
  7. package/dist/capabilities/negotiations.d.ts +17 -0
  8. package/dist/capabilities/negotiations.js +16 -0
  9. package/dist/{networks/network.module.d.ts → capabilities/networks.d.ts} +33 -169
  10. package/dist/{networks/network.module.js → capabilities/networks.js} +6 -17
  11. package/dist/index.d.ts +57 -132
  12. package/dist/index.js +41 -100
  13. package/dist/internal/agents/agent.repository.port.d.ts +59 -0
  14. package/dist/internal/agents/agent.repository.port.js +7 -0
  15. package/dist/internal/agents/agent.types.d.ts +35 -0
  16. package/dist/{agents → internal/agents}/agent.types.js +1 -6
  17. package/dist/{intents → internal/intents}/graph/intent.graph.d.ts +142 -151
  18. package/dist/{intents → internal/intents}/graph/intent.graph.execute.d.ts +5 -1
  19. package/dist/{intents → internal/intents}/graph/intent.graph.execute.js +165 -46
  20. package/dist/internal/intents/graph/intent.graph.infer.d.ts +78 -0
  21. package/dist/internal/intents/graph/intent.graph.infer.js +122 -0
  22. package/dist/internal/intents/graph/intent.graph.js +108 -0
  23. package/dist/{intents → internal/intents}/graph/intent.graph.reconcile.d.ts +18 -9
  24. package/dist/internal/intents/graph/intent.graph.reconcile.js +173 -0
  25. package/dist/internal/intents/graph/intent.graph.shared.d.ts +55 -0
  26. package/dist/{intents → internal/intents}/graph/intent.graph.shared.js +25 -70
  27. package/dist/{intents → internal/intents}/graph/intent.graph.state.d.ts +96 -32
  28. package/dist/{intents → internal/intents}/graph/intent.graph.state.js +42 -31
  29. package/dist/internal/intents/intent.admission.d.ts +16 -0
  30. package/dist/internal/intents/intent.admission.js +30 -0
  31. package/dist/{intents → internal/intents}/intent.inferrer.d.ts +1 -40
  32. package/dist/{intents → internal/intents}/intent.inferrer.js +13 -49
  33. package/dist/internal/intents/intent.preparer.d.ts +52 -0
  34. package/dist/internal/intents/intent.preparer.js +87 -0
  35. package/dist/{intents → internal/intents}/intent.verifier.d.ts +3 -36
  36. package/dist/{intents → internal/intents}/intent.verifier.js +0 -17
  37. package/dist/{networks → internal/networks}/indexer.graph.d.ts +15 -200
  38. package/dist/{networks → internal/networks}/indexer.graph.js +19 -128
  39. package/dist/{networks → internal/networks}/indexer.state.d.ts +8 -63
  40. package/dist/internal/networks/indexer.state.js +70 -0
  41. package/dist/{networks → internal/networks}/membership.graph.d.ts +6 -6
  42. package/dist/{networks → internal/networks}/membership.graph.js +3 -3
  43. package/dist/{networks → internal/networks}/membership.state.d.ts +2 -2
  44. package/dist/{networks → internal/networks}/membership.state.js +2 -2
  45. package/dist/{networks → internal/networks}/network.graph.d.ts +9 -22
  46. package/dist/{networks → internal/networks}/network.graph.js +13 -27
  47. package/dist/{networks → internal/networks}/network.recommender.d.ts +2 -2
  48. package/dist/{networks → internal/networks}/network.recommender.js +2 -2
  49. package/dist/{networks → internal/networks}/network.state.d.ts +4 -7
  50. package/dist/{networks → internal/networks}/network.state.js +4 -4
  51. package/dist/internal/opportunities/negotiation-context.loader.d.ts +26 -0
  52. package/dist/internal/opportunities/negotiation-context.loader.js +36 -0
  53. package/dist/{opportunities → internal/opportunities}/opportunity.actor.d.ts +1 -1
  54. package/dist/{opportunities → internal/opportunities}/opportunity.actor.js +7 -1
  55. package/dist/internal/opportunities/opportunity.counterparties.d.ts +17 -0
  56. package/dist/internal/opportunities/opportunity.counterparties.js +19 -0
  57. package/dist/internal/opportunities/opportunity.events.d.ts +38 -0
  58. package/dist/internal/opportunities/opportunity.events.js +94 -0
  59. package/dist/{opportunities → internal/opportunities}/opportunity.feed-selection.d.ts +3 -9
  60. package/dist/internal/opportunities/opportunity.feed-selection.js +40 -0
  61. package/dist/internal/opportunities/opportunity.graph.modes.d.ts +39 -0
  62. package/dist/internal/opportunities/opportunity.graph.modes.js +138 -0
  63. package/dist/{opportunities → internal/opportunities}/opportunity.labels.d.ts +2 -3
  64. package/dist/internal/opportunities/opportunity.labels.js +9 -0
  65. package/dist/{opportunities → internal/opportunities}/opportunity.presentation.d.ts +17 -86
  66. package/dist/{opportunities → internal/opportunities}/opportunity.presentation.js +54 -447
  67. package/dist/{opportunities → internal/opportunities}/opportunity.update-admission.d.ts +2 -2
  68. package/dist/internal/opportunities/opportunity.utils.d.ts +105 -0
  69. package/dist/internal/opportunities/opportunity.utils.js +165 -0
  70. package/dist/{opportunities → internal/opportunities}/radar/radar.graph.d.ts +17 -17
  71. package/dist/{opportunities → internal/opportunities}/radar/radar.graph.js +41 -161
  72. package/dist/{opportunities → internal/opportunities}/radar/radar.state.d.ts +4 -11
  73. package/dist/{shared → internal/shared}/agent/model-signal.d.ts +1 -1
  74. package/dist/{shared → internal/shared}/agent/model-signal.js +1 -1
  75. package/dist/{shared → internal/shared}/agent/model.config.d.ts +28 -86
  76. package/dist/{shared → internal/shared}/agent/model.config.js +58 -69
  77. package/dist/internal/shared/agent/model.resolver.d.ts +33 -0
  78. package/dist/{shared → internal/shared}/agent/model.resolver.js +18 -33
  79. package/dist/internal/shared/agent/scope.d.ts +20 -0
  80. package/dist/internal/shared/agent/scope.js +24 -0
  81. package/dist/internal/shared/assignment/network-assignment.policy.d.ts +23 -0
  82. package/dist/internal/shared/assignment/network-assignment.policy.js +28 -0
  83. package/dist/{shared → internal/shared}/observability/log.d.ts +3 -6
  84. package/dist/{shared → internal/shared}/observability/log.js +9 -18
  85. package/dist/{shared → internal/shared}/observability/protocol.logger.d.ts +1 -1
  86. package/dist/{shared → internal/shared}/observability/protocol.logger.js +1 -1
  87. package/dist/internal/shared/observability/request-context.d.ts +29 -0
  88. package/dist/internal/shared/observability/request-context.js +17 -0
  89. package/dist/{shared → internal/shared}/utils/social-label.d.ts +2 -2
  90. package/dist/{shared → internal/shared}/utils/social-label.js +1 -1
  91. package/dist/platform/database/capabilities.d.ts +59 -0
  92. package/dist/{shared/interfaces/database.entities.d.ts → platform/database/entities.d.ts} +81 -121
  93. package/dist/{shared/interfaces/database.identity-queries.d.ts → platform/database/identity-queries.d.ts} +55 -20
  94. package/dist/platform/database/member-queries.d.ts +55 -0
  95. package/dist/platform/database/member-queries.js +4 -0
  96. package/dist/platform/database/negotiation.d.ts +38 -0
  97. package/dist/{shared/interfaces/database.network-queries.d.ts → platform/database/network-queries.d.ts} +66 -67
  98. package/dist/platform/database/network-queries.js +4 -0
  99. package/dist/{shared/interfaces/database.opportunity-queries.d.ts → platform/database/opportunity-queries.d.ts} +25 -109
  100. package/dist/{shared/interfaces/database.port.d.ts → platform/database/port.d.ts} +52 -117
  101. package/dist/{shared/interfaces/database.port.js → platform/database/port.js} +3 -5
  102. package/dist/platform/database.d.ts +23 -0
  103. package/dist/{shared/interfaces/database.interface.js → platform/database.js} +1 -1
  104. package/dist/{shared/interfaces/cache.interface.d.ts → platform/discovery/cache.d.ts} +2 -4
  105. package/dist/{shared/interfaces/cache.interface.js → platform/discovery/cache.js} +1 -1
  106. package/dist/platform/discovery/embedder.d.ts +31 -0
  107. package/dist/platform/runtime/errors.d.ts +6 -0
  108. package/dist/platform/runtime/errors.js +9 -0
  109. package/dist/platform/runtime/follow-up.d.ts +36 -0
  110. package/dist/platform/runtime/follow-up.js +4 -0
  111. package/dist/platform/runtime/observability.d.ts +34 -0
  112. package/dist/protocol/core.d.ts +11 -0
  113. package/dist/protocol/discovery.rules.d.ts +21 -0
  114. package/dist/protocol/discovery.rules.js +29 -0
  115. package/dist/protocol/negotiation.constants.d.ts +3 -0
  116. package/dist/protocol/negotiation.constants.js +3 -0
  117. package/dist/protocol/negotiation.rules.d.ts +73 -0
  118. package/dist/protocol/negotiation.rules.js +68 -0
  119. package/dist/protocol/protocol.prompt.d.ts +13 -0
  120. package/dist/protocol/protocol.prompt.js +190 -0
  121. package/dist/{shared → protocol}/schemas/discovery-question.schema.d.ts +13 -13
  122. package/dist/{shared → protocol}/schemas/discovery-question.schema.js +2 -2
  123. package/dist/{shared → protocol}/schemas/identity.schema.d.ts +4 -4
  124. package/dist/{shared → protocol}/schemas/identity.schema.js +4 -4
  125. package/dist/{shared → protocol}/schemas/network-assignment.schema.d.ts +11 -20
  126. package/dist/{shared → protocol}/schemas/network-assignment.schema.js +2 -9
  127. package/dist/protocol/schemas/underspecification.schema.d.ts +9 -0
  128. package/dist/protocol/schemas/underspecification.schema.js +12 -0
  129. package/package.json +7 -15
  130. package/dist/agents/agent.dispatcher.port.d.ts +0 -25
  131. package/dist/agents/agent.module.d.ts +0 -19
  132. package/dist/agents/agent.module.js +0 -11
  133. package/dist/agents/agent.repository.port.d.ts +0 -118
  134. package/dist/agents/agent.repository.port.js +0 -10
  135. package/dist/agents/agent.tools.d.ts +0 -16
  136. package/dist/agents/agent.tools.js +0 -351
  137. package/dist/agents/agent.tools.port.d.ts +0 -22
  138. package/dist/agents/agent.tools.port.js +0 -18
  139. package/dist/agents/agent.types.d.ts +0 -76
  140. package/dist/chat/chat-streaming.types.d.ts +0 -618
  141. package/dist/chat/chat-streaming.types.js +0 -297
  142. package/dist/chat/chat.agent.d.ts +0 -292
  143. package/dist/chat/chat.agent.js +0 -1010
  144. package/dist/chat/chat.graph.d.ts +0 -424
  145. package/dist/chat/chat.graph.js +0 -257
  146. package/dist/chat/chat.interrupt.classifier.d.ts +0 -25
  147. package/dist/chat/chat.interrupt.classifier.js +0 -64
  148. package/dist/chat/chat.persona.d.ts +0 -39
  149. package/dist/chat/chat.prompt.d.ts +0 -4
  150. package/dist/chat/chat.prompt.js +0 -12
  151. package/dist/chat/chat.prompt.modules.d.ts +0 -30
  152. package/dist/chat/chat.prompt.modules.js +0 -40
  153. package/dist/chat/chat.question-dedup.d.ts +0 -14
  154. package/dist/chat/chat.question-dedup.js +0 -17
  155. package/dist/chat/chat.state.d.ts +0 -135
  156. package/dist/chat/chat.state.js +0 -120
  157. package/dist/chat/chat.streamer.d.ts +0 -64
  158. package/dist/chat/chat.streamer.js +0 -217
  159. package/dist/chat/chat.suggester.d.ts +0 -23
  160. package/dist/chat/chat.suggester.js +0 -95
  161. package/dist/chat/chat.summarizer.d.ts +0 -20
  162. package/dist/chat/chat.summarizer.js +0 -97
  163. package/dist/chat/chat.title.generator.d.ts +0 -19
  164. package/dist/chat/chat.title.generator.js +0 -66
  165. package/dist/chat/chat.tools.d.ts +0 -5
  166. package/dist/chat/chat.tools.js +0 -62
  167. package/dist/chat/chat.utils.d.ts +0 -41
  168. package/dist/chat/chat.utils.js +0 -88
  169. package/dist/chat/negotiator.persona.d.ts +0 -74
  170. package/dist/chat/negotiator.persona.js +0 -154
  171. package/dist/chat/negotiator.prompt.d.ts +0 -45
  172. package/dist/chat/negotiator.prompt.js +0 -160
  173. package/dist/chat/negotiator.tools.d.ts +0 -42
  174. package/dist/chat/negotiator.tools.js +0 -134
  175. package/dist/chat/onboarding.persona.d.ts +0 -28
  176. package/dist/chat/onboarding.persona.js +0 -86
  177. package/dist/chat/onboarding.prompt.d.ts +0 -6
  178. package/dist/chat/onboarding.prompt.js +0 -63
  179. package/dist/chat/signal.persona.d.ts +0 -47
  180. package/dist/chat/signal.persona.js +0 -319
  181. package/dist/chat/signal.prompt.d.ts +0 -39
  182. package/dist/chat/signal.prompt.js +0 -136
  183. package/dist/contacts/contact.module.d.ts +0 -8
  184. package/dist/contacts/contact.module.js +0 -6
  185. package/dist/contacts/contact.repository.port.d.ts +0 -21
  186. package/dist/contacts/contact.repository.port.js +0 -12
  187. package/dist/contacts/contact.tools.d.ts +0 -17
  188. package/dist/contacts/contact.tools.js +0 -108
  189. package/dist/contacts/contact.tools.port.d.ts +0 -20
  190. package/dist/contacts/contact.tools.port.js +0 -16
  191. package/dist/contacts/contact.types.d.ts +0 -24
  192. package/dist/contacts/contact.types.js +0 -8
  193. package/dist/contexts/context.generator.d.ts +0 -95
  194. package/dist/contexts/context.generator.js +0 -127
  195. package/dist/contexts/context.module.d.ts +0 -13
  196. package/dist/contexts/context.module.js +0 -12
  197. package/dist/contexts/context.tools.port.d.ts +0 -9
  198. package/dist/discovery/hyde.documents.d.ts +0 -9
  199. package/dist/discovery/hyde.documents.js +0 -49
  200. package/dist/discovery/hyde.env.d.ts +0 -8
  201. package/dist/discovery/hyde.env.js +0 -9
  202. package/dist/discovery/hyde.frame.d.ts +0 -150
  203. package/dist/discovery/hyde.frame.js +0 -107
  204. package/dist/discovery/hyde.generator.d.ts +0 -38
  205. package/dist/discovery/hyde.generator.js +0 -103
  206. package/dist/discovery/hyde.graph.d.ts +0 -209
  207. package/dist/discovery/hyde.graph.js +0 -482
  208. package/dist/discovery/hyde.state.d.ts +0 -70
  209. package/dist/discovery/hyde.state.js +0 -85
  210. package/dist/discovery/hyde.strategies.d.ts +0 -17
  211. package/dist/discovery/hyde.strategies.js +0 -34
  212. package/dist/discovery/hyde.validator.d.ts +0 -78
  213. package/dist/discovery/hyde.validator.js +0 -48
  214. package/dist/discovery/index.d.ts +0 -26
  215. package/dist/discovery/index.js +0 -19
  216. package/dist/discovery/lens.inferrer.d.ts +0 -214
  217. package/dist/discovery/lens.inferrer.js +0 -152
  218. package/dist/enrichment/enrichment.generator.d.ts +0 -68
  219. package/dist/enrichment/enrichment.generator.js +0 -95
  220. package/dist/enrichment/enrichment.graph.d.ts +0 -544
  221. package/dist/enrichment/enrichment.graph.js +0 -695
  222. package/dist/enrichment/enrichment.state.d.ts +0 -141
  223. package/dist/enrichment/enrichment.state.js +0 -115
  224. package/dist/enrichment/enrichment.tools.context-read.d.ts +0 -10
  225. package/dist/enrichment/enrichment.tools.context-read.js +0 -353
  226. package/dist/enrichment/enrichment.tools.context-write.d.ts +0 -9
  227. package/dist/enrichment/enrichment.tools.context-write.js +0 -417
  228. package/dist/enrichment/enrichment.tools.d.ts +0 -13
  229. package/dist/enrichment/enrichment.tools.helpers.d.ts +0 -139
  230. package/dist/enrichment/enrichment.tools.helpers.js +0 -234
  231. package/dist/enrichment/enrichment.tools.js +0 -153
  232. package/dist/intents/graph/intent.graph.infer.d.ts +0 -44
  233. package/dist/intents/graph/intent.graph.infer.js +0 -97
  234. package/dist/intents/graph/intent.graph.js +0 -134
  235. package/dist/intents/graph/intent.graph.reconcile.js +0 -274
  236. package/dist/intents/graph/intent.graph.shared.d.ts +0 -68
  237. package/dist/intents/intake/intake.orchestrator.d.ts +0 -203
  238. package/dist/intents/intake/intake.orchestrator.js +0 -255
  239. package/dist/intents/intake/intake.pack.generator.d.ts +0 -57
  240. package/dist/intents/intake/intake.pack.generator.js +0 -90
  241. package/dist/intents/intent.clarifier.d.ts +0 -51
  242. package/dist/intents/intent.clarifier.js +0 -201
  243. package/dist/intents/intent.indexer.d.ts +0 -82
  244. package/dist/intents/intent.indexer.js +0 -170
  245. package/dist/intents/intent.module.js +0 -103
  246. package/dist/intents/intent.proposal.d.ts +0 -37
  247. package/dist/intents/intent.proposal.js +0 -14
  248. package/dist/intents/intent.reconciler.d.ts +0 -105
  249. package/dist/intents/intent.reconciler.js +0 -186
  250. package/dist/intents/intent.tools.d.ts +0 -27
  251. package/dist/intents/intent.tools.js +0 -808
  252. package/dist/maintenance/maintenance.graph.d.ts +0 -239
  253. package/dist/maintenance/maintenance.graph.js +0 -199
  254. package/dist/maintenance/maintenance.state.d.ts +0 -35
  255. package/dist/maintenance/maintenance.state.js +0 -55
  256. package/dist/mcp/elicitation.builder.d.ts +0 -53
  257. package/dist/mcp/elicitation.builder.js +0 -74
  258. package/dist/mcp/elicitation.dispatcher.d.ts +0 -36
  259. package/dist/mcp/elicitation.dispatcher.js +0 -86
  260. package/dist/mcp/mcp.authorization-policy.d.ts +0 -252
  261. package/dist/mcp/mcp.authorization-policy.js +0 -535
  262. package/dist/mcp/mcp.server.d.ts +0 -90
  263. package/dist/mcp/mcp.server.js +0 -631
  264. package/dist/negotiations/insight.generator.d.ts +0 -31
  265. package/dist/negotiations/insight.generator.js +0 -105
  266. package/dist/negotiations/negotiation.agent.d.ts +0 -130
  267. package/dist/negotiations/negotiation.agent.js +0 -396
  268. package/dist/negotiations/negotiation.answer-consumption.d.ts +0 -223
  269. package/dist/negotiations/negotiation.answer-consumption.js +0 -275
  270. package/dist/negotiations/negotiation.attribution.d.ts +0 -91
  271. package/dist/negotiations/negotiation.attribution.js +0 -109
  272. package/dist/negotiations/negotiation.candidates.d.ts +0 -83
  273. package/dist/negotiations/negotiation.candidates.js +0 -162
  274. package/dist/negotiations/negotiation.client-dm.d.ts +0 -50
  275. package/dist/negotiations/negotiation.client-dm.js +0 -66
  276. package/dist/negotiations/negotiation.consultation-policy.d.ts +0 -95
  277. package/dist/negotiations/negotiation.consultation-policy.js +0 -159
  278. package/dist/negotiations/negotiation.deadlock.contracts.d.ts +0 -10
  279. package/dist/negotiations/negotiation.deadlock.d.ts +0 -87
  280. package/dist/negotiations/negotiation.deadlock.js +0 -150
  281. package/dist/negotiations/negotiation.detail-reader.d.ts +0 -94
  282. package/dist/negotiations/negotiation.detail-reader.js +0 -91
  283. package/dist/negotiations/negotiation.expected-speaker.d.ts +0 -33
  284. package/dist/negotiations/negotiation.expected-speaker.js +0 -59
  285. package/dist/negotiations/negotiation.graph.d.ts +0 -694
  286. package/dist/negotiations/negotiation.graph.finalize.d.ts +0 -5
  287. package/dist/negotiations/negotiation.graph.finalize.js +0 -403
  288. package/dist/negotiations/negotiation.graph.init.d.ts +0 -54
  289. package/dist/negotiations/negotiation.graph.init.js +0 -256
  290. package/dist/negotiations/negotiation.graph.js +0 -94
  291. package/dist/negotiations/negotiation.graph.screen.d.ts +0 -23
  292. package/dist/negotiations/negotiation.graph.screen.js +0 -108
  293. package/dist/negotiations/negotiation.graph.shared.d.ts +0 -111
  294. package/dist/negotiations/negotiation.graph.shared.js +0 -168
  295. package/dist/negotiations/negotiation.graph.turn.d.ts +0 -134
  296. package/dist/negotiations/negotiation.graph.turn.js +0 -662
  297. package/dist/negotiations/negotiation.hermes-contract.d.ts +0 -31
  298. package/dist/negotiations/negotiation.hermes-contract.js +0 -72
  299. package/dist/negotiations/negotiation.intent-snapshot-provenance.d.ts +0 -21
  300. package/dist/negotiations/negotiation.intent-snapshot-provenance.js +0 -28
  301. package/dist/negotiations/negotiation.lifecycle-narration.d.ts +0 -18
  302. package/dist/negotiations/negotiation.lifecycle-narration.js +0 -87
  303. package/dist/negotiations/negotiation.memory.d.ts +0 -65
  304. package/dist/negotiations/negotiation.memory.js +0 -83
  305. package/dist/negotiations/negotiation.module.d.ts +0 -36
  306. package/dist/negotiations/negotiation.module.js +0 -23
  307. package/dist/negotiations/negotiation.protocol.d.ts +0 -1018
  308. package/dist/negotiations/negotiation.protocol.js +0 -224
  309. package/dist/negotiations/negotiation.question-safety.d.ts +0 -52
  310. package/dist/negotiations/negotiation.question-safety.js +0 -119
  311. package/dist/negotiations/negotiation.reflect.d.ts +0 -194
  312. package/dist/negotiations/negotiation.reflect.js +0 -145
  313. package/dist/negotiations/negotiation.scope.d.ts +0 -41
  314. package/dist/negotiations/negotiation.scope.js +0 -39
  315. package/dist/negotiations/negotiation.screen.contracts.d.ts +0 -88
  316. package/dist/negotiations/negotiation.screen.contracts.js +0 -58
  317. package/dist/negotiations/negotiation.screen.d.ts +0 -78
  318. package/dist/negotiations/negotiation.screen.js +0 -112
  319. package/dist/negotiations/negotiation.stall-gap.d.ts +0 -83
  320. package/dist/negotiations/negotiation.stall-gap.js +0 -152
  321. package/dist/negotiations/negotiation.stance.contracts.d.ts +0 -123
  322. package/dist/negotiations/negotiation.stance.contracts.js +0 -317
  323. package/dist/negotiations/negotiation.state.d.ts +0 -597
  324. package/dist/negotiations/negotiation.state.js +0 -286
  325. package/dist/negotiations/negotiation.summarizer.d.ts +0 -25
  326. package/dist/negotiations/negotiation.summarizer.js +0 -101
  327. package/dist/negotiations/negotiation.task-lock-policy.d.ts +0 -10
  328. package/dist/negotiations/negotiation.task-lock-policy.js +0 -22
  329. package/dist/negotiations/negotiation.tools.d.ts +0 -18
  330. package/dist/negotiations/negotiation.tools.js +0 -842
  331. package/dist/negotiations/negotiation.tools.port.d.ts +0 -17
  332. package/dist/negotiations/negotiation.turn-cap.d.ts +0 -9
  333. package/dist/negotiations/negotiation.turn-cap.js +0 -12
  334. package/dist/networks/indexer.state.js +0 -112
  335. package/dist/networks/network.tools.d.ts +0 -36
  336. package/dist/networks/network.tools.js +0 -594
  337. package/dist/opportunities/delivery-card.cache.d.ts +0 -25
  338. package/dist/opportunities/delivery-card.cache.js +0 -43
  339. package/dist/opportunities/discovery.env.d.ts +0 -20
  340. package/dist/opportunities/discovery.env.js +0 -109
  341. package/dist/opportunities/discriminator/discriminator.adjustments.d.ts +0 -90
  342. package/dist/opportunities/discriminator/discriminator.adjustments.js +0 -141
  343. package/dist/opportunities/discriminator/discriminator.assigner.d.ts +0 -78
  344. package/dist/opportunities/discriminator/discriminator.assigner.js +0 -153
  345. package/dist/opportunities/discriminator/discriminator.env.d.ts +0 -103
  346. package/dist/opportunities/discriminator/discriminator.env.js +0 -103
  347. package/dist/opportunities/discriminator/discriminator.miner.d.ts +0 -114
  348. package/dist/opportunities/discriminator/discriminator.miner.js +0 -228
  349. package/dist/opportunities/discriminator/discriminator.push.d.ts +0 -13
  350. package/dist/opportunities/discriminator/discriminator.push.js +0 -19
  351. package/dist/opportunities/discriminator/discriminator.question.d.ts +0 -58
  352. package/dist/opportunities/discriminator/discriminator.question.js +0 -155
  353. package/dist/opportunities/discriminator/discriminator.scorer.d.ts +0 -32
  354. package/dist/opportunities/discriminator/discriminator.scorer.js +0 -105
  355. package/dist/opportunities/discriminator/discriminator.shadow.d.ts +0 -32
  356. package/dist/opportunities/discriminator/discriminator.shadow.js +0 -90
  357. package/dist/opportunities/discriminator/discriminator.types.d.ts +0 -93
  358. package/dist/opportunities/discriminator/discriminator.types.js +0 -18
  359. package/dist/opportunities/negotiation-context.loader.d.ts +0 -59
  360. package/dist/opportunities/negotiation-context.loader.js +0 -90
  361. package/dist/opportunities/negotiation-evidence/negotiation-evidence.env.d.ts +0 -43
  362. package/dist/opportunities/negotiation-evidence/negotiation-evidence.env.js +0 -44
  363. package/dist/opportunities/negotiation-evidence/negotiation-evidence.extractor.d.ts +0 -24
  364. package/dist/opportunities/negotiation-evidence/negotiation-evidence.extractor.js +0 -188
  365. package/dist/opportunities/negotiation-evidence/negotiation-evidence.miner.d.ts +0 -26
  366. package/dist/opportunities/negotiation-evidence/negotiation-evidence.miner.js +0 -112
  367. package/dist/opportunities/negotiation-evidence/negotiation-evidence.shadow.d.ts +0 -19
  368. package/dist/opportunities/negotiation-evidence/negotiation-evidence.shadow.js +0 -61
  369. package/dist/opportunities/negotiation-evidence/negotiation-evidence.types.d.ts +0 -191
  370. package/dist/opportunities/negotiation-evidence/negotiation-evidence.types.js +0 -18
  371. package/dist/opportunities/negotiation-evidence/negotiation-evidence.verifier.d.ts +0 -34
  372. package/dist/opportunities/negotiation-evidence/negotiation-evidence.verifier.js +0 -91
  373. package/dist/opportunities/negotiation-summary.builder.d.ts +0 -37
  374. package/dist/opportunities/negotiation-summary.builder.js +0 -66
  375. package/dist/opportunities/opportunity.discovery-negotiation-summary.d.ts +0 -14
  376. package/dist/opportunities/opportunity.discovery-negotiation-summary.js +0 -46
  377. package/dist/opportunities/opportunity.enricher.d.ts +0 -71
  378. package/dist/opportunities/opportunity.enricher.js +0 -280
  379. package/dist/opportunities/opportunity.evaluator.d.ts +0 -289
  380. package/dist/opportunities/opportunity.evaluator.js +0 -516
  381. package/dist/opportunities/opportunity.evidence.d.ts +0 -22
  382. package/dist/opportunities/opportunity.evidence.js +0 -87
  383. package/dist/opportunities/opportunity.existing-negotiation.d.ts +0 -79
  384. package/dist/opportunities/opportunity.existing-negotiation.js +0 -118
  385. package/dist/opportunities/opportunity.feed-selection.js +0 -96
  386. package/dist/opportunities/opportunity.graph.d.ts +0 -1611
  387. package/dist/opportunities/opportunity.graph.discovery-strategies.d.ts +0 -109
  388. package/dist/opportunities/opportunity.graph.discovery-strategies.js +0 -451
  389. package/dist/opportunities/opportunity.graph.discovery.d.ts +0 -69
  390. package/dist/opportunities/opportunity.graph.discovery.js +0 -397
  391. package/dist/opportunities/opportunity.graph.evaluation.d.ts +0 -82
  392. package/dist/opportunities/opportunity.graph.evaluation.js +0 -608
  393. package/dist/opportunities/opportunity.graph.js +0 -193
  394. package/dist/opportunities/opportunity.graph.modes.d.ts +0 -538
  395. package/dist/opportunities/opportunity.graph.modes.js +0 -538
  396. package/dist/opportunities/opportunity.graph.negotiate.d.ts +0 -109
  397. package/dist/opportunities/opportunity.graph.negotiate.js +0 -392
  398. package/dist/opportunities/opportunity.graph.persist-node.d.ts +0 -93
  399. package/dist/opportunities/opportunity.graph.persist-node.js +0 -765
  400. package/dist/opportunities/opportunity.graph.prep.d.ts +0 -150
  401. package/dist/opportunities/opportunity.graph.prep.js +0 -381
  402. package/dist/opportunities/opportunity.graph.shared.d.ts +0 -173
  403. package/dist/opportunities/opportunity.graph.shared.js +0 -199
  404. package/dist/opportunities/opportunity.introducer-feature.d.ts +0 -2
  405. package/dist/opportunities/opportunity.introducer-feature.js +0 -4
  406. package/dist/opportunities/opportunity.introducer.d.ts +0 -77
  407. package/dist/opportunities/opportunity.introducer.js +0 -99
  408. package/dist/opportunities/opportunity.labels.js +0 -10
  409. package/dist/opportunities/opportunity.lifecycle.d.ts +0 -63
  410. package/dist/opportunities/opportunity.lifecycle.js +0 -181
  411. package/dist/opportunities/opportunity.module.d.ts +0 -54
  412. package/dist/opportunities/opportunity.module.js +0 -39
  413. package/dist/opportunities/opportunity.newborn-stamping.d.ts +0 -41
  414. package/dist/opportunities/opportunity.newborn-stamping.js +0 -81
  415. package/dist/opportunities/opportunity.owner-approval.d.ts +0 -118
  416. package/dist/opportunities/opportunity.owner-approval.js +0 -34
  417. package/dist/opportunities/opportunity.owner-provenance.d.ts +0 -6
  418. package/dist/opportunities/opportunity.owner-provenance.js +0 -28
  419. package/dist/opportunities/opportunity.persist.d.ts +0 -58
  420. package/dist/opportunities/opportunity.persist.js +0 -145
  421. package/dist/opportunities/opportunity.persistence-admission.d.ts +0 -39
  422. package/dist/opportunities/opportunity.persistence-admission.js +0 -59
  423. package/dist/opportunities/opportunity.state.d.ts +0 -451
  424. package/dist/opportunities/opportunity.state.js +0 -256
  425. package/dist/opportunities/opportunity.tools.cards.d.ts +0 -138
  426. package/dist/opportunities/opportunity.tools.cards.js +0 -212
  427. package/dist/opportunities/opportunity.tools.d.ts +0 -12
  428. package/dist/opportunities/opportunity.tools.js +0 -236
  429. package/dist/opportunities/opportunity.tools.list.d.ts +0 -10
  430. package/dist/opportunities/opportunity.tools.list.js +0 -489
  431. package/dist/opportunities/opportunity.tools.port.d.ts +0 -16
  432. package/dist/opportunities/opportunity.utils.d.ts +0 -217
  433. package/dist/opportunities/opportunity.utils.js +0 -395
  434. package/dist/opportunities/outcome/outcome.env.d.ts +0 -60
  435. package/dist/opportunities/outcome/outcome.env.js +0 -63
  436. package/dist/opportunities/outcome/outcome.hypotheses.d.ts +0 -29
  437. package/dist/opportunities/outcome/outcome.hypotheses.js +0 -117
  438. package/dist/opportunities/outcome/outcome.shadow.d.ts +0 -56
  439. package/dist/opportunities/outcome/outcome.shadow.js +0 -87
  440. package/dist/opportunities/outcome/outcome.types.d.ts +0 -110
  441. package/dist/opportunities/outcome/outcome.types.js +0 -26
  442. package/dist/opportunities/radar/radar.health.d.ts +0 -31
  443. package/dist/opportunities/radar/radar.health.js +0 -75
  444. package/dist/premises/premise.analyzer.d.ts +0 -35
  445. package/dist/premises/premise.analyzer.js +0 -115
  446. package/dist/premises/premise.decomposer.d.ts +0 -69
  447. package/dist/premises/premise.decomposer.js +0 -213
  448. package/dist/premises/premise.graph.d.ts +0 -345
  449. package/dist/premises/premise.graph.js +0 -278
  450. package/dist/premises/premise.indexer.d.ts +0 -35
  451. package/dist/premises/premise.indexer.js +0 -86
  452. package/dist/premises/premise.state.d.ts +0 -67
  453. package/dist/premises/premise.state.js +0 -94
  454. package/dist/premises/premise.tools.d.ts +0 -3
  455. package/dist/premises/premise.tools.js +0 -248
  456. package/dist/questions/question.env.d.ts +0 -27
  457. package/dist/questions/question.env.js +0 -27
  458. package/dist/questions/question.input.d.ts +0 -107
  459. package/dist/questions/question.module.d.ts +0 -30
  460. package/dist/questions/question.module.js +0 -28
  461. package/dist/questions/question.schema.d.ts +0 -1529
  462. package/dist/questions/question.schema.js +0 -420
  463. package/dist/shared/agent/activity-projection.d.ts +0 -271
  464. package/dist/shared/agent/activity-projection.js +0 -254
  465. package/dist/shared/agent/canonical-guidance.d.ts +0 -30
  466. package/dist/shared/agent/canonical-guidance.js +0 -246
  467. package/dist/shared/agent/model.resolver.d.ts +0 -48
  468. package/dist/shared/agent/tool.factory.d.ts +0 -17
  469. package/dist/shared/agent/tool.factory.js +0 -221
  470. package/dist/shared/agent/tool.helpers.d.ts +0 -482
  471. package/dist/shared/agent/tool.helpers.js +0 -232
  472. package/dist/shared/agent/tool.registry.d.ts +0 -25
  473. package/dist/shared/agent/tool.registry.js +0 -76
  474. package/dist/shared/agent/tool.runtime.d.ts +0 -28
  475. package/dist/shared/agent/tool.runtime.js +0 -194
  476. package/dist/shared/agent/tool.scope.d.ts +0 -44
  477. package/dist/shared/agent/tool.scope.js +0 -50
  478. package/dist/shared/agent/utility.tools.d.ts +0 -15
  479. package/dist/shared/agent/utility.tools.js +0 -322
  480. package/dist/shared/assignment/network-assignment.policy.d.ts +0 -61
  481. package/dist/shared/assignment/network-assignment.policy.js +0 -105
  482. package/dist/shared/interfaces/agent-dispatcher.interface.d.ts +0 -100
  483. package/dist/shared/interfaces/agent-dispatcher.interface.js +0 -12
  484. package/dist/shared/interfaces/auth.interface.d.ts +0 -37
  485. package/dist/shared/interfaces/auth.interface.js +0 -1
  486. package/dist/shared/interfaces/chat-message-writer.interface.d.ts +0 -18
  487. package/dist/shared/interfaces/chat-message-writer.interface.js +0 -1
  488. package/dist/shared/interfaces/chat-session.interface.d.ts +0 -23
  489. package/dist/shared/interfaces/chat-session.interface.js +0 -18
  490. package/dist/shared/interfaces/chat-summary.interface.d.ts +0 -16
  491. package/dist/shared/interfaces/chat-summary.interface.js +0 -1
  492. package/dist/shared/interfaces/database.capabilities.d.ts +0 -100
  493. package/dist/shared/interfaces/database.interface.d.ts +0 -16
  494. package/dist/shared/interfaces/database.member-queries.d.ts +0 -219
  495. package/dist/shared/interfaces/database.member-queries.js +0 -4
  496. package/dist/shared/interfaces/database.negotiation.d.ts +0 -329
  497. package/dist/shared/interfaces/database.negotiation.js +0 -26
  498. package/dist/shared/interfaces/database.network-queries.js +0 -4
  499. package/dist/shared/interfaces/database.opportunity-queries.js +0 -4
  500. package/dist/shared/interfaces/delivery-ledger.interface.d.ts +0 -40
  501. package/dist/shared/interfaces/delivery-ledger.interface.js +0 -5
  502. package/dist/shared/interfaces/embedder.interface.d.ts +0 -92
  503. package/dist/shared/interfaces/embedder.interface.js +0 -4
  504. package/dist/shared/interfaces/enrichment-run.interface.d.ts +0 -62
  505. package/dist/shared/interfaces/enrichment-run.interface.js +0 -1
  506. package/dist/shared/interfaces/enrichment.interface.js +0 -1
  507. package/dist/shared/interfaces/negotiation-events.interface.d.ts +0 -77
  508. package/dist/shared/interfaces/negotiation-events.interface.js +0 -6
  509. package/dist/shared/interfaces/negotiation-summary.interface.d.ts +0 -25
  510. package/dist/shared/interfaces/negotiation-summary.interface.js +0 -1
  511. package/dist/shared/interfaces/negotiator-memory.interface.d.ts +0 -58
  512. package/dist/shared/interfaces/negotiator-memory.interface.js +0 -11
  513. package/dist/shared/interfaces/queue.interface.d.ts +0 -23
  514. package/dist/shared/interfaces/queue.interface.js +0 -4
  515. package/dist/shared/interfaces/scraper.interface.js +0 -1
  516. package/dist/shared/interfaces/tool-request-context.interface.d.ts +0 -11
  517. package/dist/shared/interfaces/tool-request-context.interface.js +0 -1
  518. package/dist/shared/observability/request-context.d.ts +0 -27
  519. package/dist/shared/observability/request-context.js +0 -6
  520. package/dist/shared/schemas/mcp-auth.schema.d.ts +0 -87
  521. package/dist/shared/schemas/mcp-auth.schema.js +0 -56
  522. package/dist/shared/schemas/negotiation-digest.schema.d.ts +0 -58
  523. package/dist/shared/schemas/negotiation-digest.schema.js +0 -38
  524. package/dist/shared/schemas/negotiation-state.schema.d.ts +0 -343
  525. package/dist/shared/schemas/negotiation-state.schema.js +0 -81
  526. package/dist/shared/schemas/question-block.fixture.d.ts +0 -12
  527. package/dist/shared/schemas/question-block.fixture.js +0 -39
  528. package/dist/shared/schemas/question-block.schema.d.ts +0 -111
  529. package/dist/shared/schemas/question-block.schema.js +0 -124
  530. package/dist/shared/schemas/structured-question.schema.d.ts +0 -66
  531. package/dist/shared/schemas/structured-question.schema.js +0 -31
  532. package/dist/shared/schemas/underspecification.schema.d.ts +0 -13
  533. package/dist/shared/schemas/underspecification.schema.js +0 -16
  534. /package/dist/{opportunities → internal/opportunities}/opportunity.update-admission.js +0 -0
  535. /package/dist/{opportunities → internal/opportunities}/radar/radar.state.js +0 -0
  536. /package/dist/{shared → internal/shared}/network/metadata.renderer.d.ts +0 -0
  537. /package/dist/{shared → internal/shared}/network/metadata.renderer.js +0 -0
  538. /package/dist/{shared → internal/shared}/observability/debug-meta.sanitizer.d.ts +0 -0
  539. /package/dist/{shared → internal/shared}/observability/debug-meta.sanitizer.js +0 -0
  540. /package/dist/{shared → internal/shared}/observability/performance.d.ts +0 -0
  541. /package/dist/{shared → internal/shared}/observability/performance.js +0 -0
  542. /package/dist/{shared → internal/shared}/observability/trace.d.ts +0 -0
  543. /package/dist/{shared → internal/shared}/observability/trace.js +0 -0
  544. /package/dist/{shared → internal/shared}/utils/claim-safety.d.ts +0 -0
  545. /package/dist/{shared → internal/shared}/utils/claim-safety.js +0 -0
  546. /package/dist/{shared → internal/shared}/utils/telegram-handle.d.ts +0 -0
  547. /package/dist/{shared → internal/shared}/utils/telegram-handle.js +0 -0
  548. /package/dist/{shared/interfaces/database.capabilities.js → platform/database/capabilities.js} +0 -0
  549. /package/dist/{shared/interfaces/database.entities.js → platform/database/entities.js} +0 -0
  550. /package/dist/{shared/interfaces/database.identity-queries.js → platform/database/identity-queries.js} +0 -0
  551. /package/dist/{agents/agent.dispatcher.port.js → platform/database/negotiation.js} +0 -0
  552. /package/dist/{chat/chat.persona.js → platform/database/opportunity-queries.js} +0 -0
  553. /package/dist/{contexts/context.tools.port.js → platform/discovery/embedder.js} +0 -0
  554. /package/dist/{shared/interfaces/scraper.interface.d.ts → platform/discovery/scraper.d.ts} +0 -0
  555. /package/dist/{negotiations/negotiation.deadlock.contracts.js → platform/discovery/scraper.js} +0 -0
  556. /package/dist/{shared/interfaces/enrichment.interface.d.ts → platform/enrichment/ports.d.ts} +0 -0
  557. /package/dist/{negotiations/negotiation.tools.port.js → platform/enrichment/ports.js} +0 -0
  558. /package/dist/{opportunities/opportunity.tools.port.js → platform/runtime/observability.js} +0 -0
  559. /package/dist/{questions/question.input.js → protocol/core.js} +0 -0
  560. /package/dist/{shared → protocol}/schemas/chat-context.schema.d.ts +0 -0
  561. /package/dist/{shared → protocol}/schemas/chat-context.schema.js +0 -0
@@ -1,120 +0,0 @@
1
- import { Annotation, messagesStateReducer } from "@langchain/langgraph";
2
- // ══════════════════════════════════════════════════════════════════════════════
3
- // CHAT GRAPH STATE (Agent Loop Architecture)
4
- // ══════════════════════════════════════════════════════════════════════════════
5
- /**
6
- * The Chat Graph State using LangGraph Annotations.
7
- *
8
- * This is a simplified state for the agent loop architecture.
9
- * The agent handles all routing decisions internally via tool calling.
10
- *
11
- * Design Principles:
12
- * - Messages accumulate through the conversation (includes tool calls/results)
13
- * - Iteration count tracks loop progress for soft/hard limits
14
- * - Final response is extracted at the end
15
- */
16
- export const ChatGraphState = Annotation.Root({
17
- // ═══════════════════════════════════════════════════════════════════════════
18
- // CORE INPUTS
19
- // ═══════════════════════════════════════════════════════════════════════════
20
- /**
21
- * The User ID - required for all operations.
22
- */
23
- userId: (Annotation),
24
- /**
25
- * Legacy optional index (community) ID when chat is scoped to a specific index.
26
- * New callers should set scopeType/scopeId; networkId is retained as an edge alias.
27
- */
28
- networkId: Annotation({
29
- reducer: (curr, next) => next ?? curr,
30
- default: () => undefined,
31
- }),
32
- /** Focused request scope type. Network scope uses a network id; intent scope uses an intent id. */
33
- scopeType: Annotation({
34
- reducer: (curr, next) => next ?? curr,
35
- default: () => undefined,
36
- }),
37
- /** Focused request scope id. Network scope uses a network id; intent scope uses an intent id. */
38
- scopeId: Annotation({
39
- reducer: (curr, next) => next ?? curr,
40
- default: () => undefined,
41
- }),
42
- /**
43
- * Chat session ID when streaming with context. Used by tools to create draft
44
- * opportunities tied to this conversation (context.conversationId).
45
- */
46
- sessionId: Annotation({
47
- reducer: (curr, next) => next ?? curr,
48
- default: () => undefined,
49
- }),
50
- /**
51
- * Conversation history using LangGraph's built-in message reducer.
52
- * Includes: HumanMessage, AIMessage, ToolMessage, SystemMessage
53
- * Automatically handles message appending, ID management, and ordering.
54
- */
55
- messages: Annotation({
56
- reducer: messagesStateReducer,
57
- default: () => [],
58
- }),
59
- // ═══════════════════════════════════════════════════════════════════════════
60
- // LOOP CONTROL
61
- // ═══════════════════════════════════════════════════════════════════════════
62
- /**
63
- * Current iteration count in the agent loop.
64
- * Used for soft limit (nudge) and hard limit (force exit).
65
- */
66
- iterationCount: Annotation({
67
- reducer: (curr, next) => next,
68
- default: () => 0,
69
- }),
70
- /**
71
- * Flag indicating whether the agent loop should continue.
72
- * Set to false when agent produces final response or hits hard limit.
73
- */
74
- shouldContinue: Annotation({
75
- reducer: (curr, next) => next,
76
- default: () => true,
77
- }),
78
- // ═══════════════════════════════════════════════════════════════════════════
79
- // OUTPUTS
80
- // ═══════════════════════════════════════════════════════════════════════════
81
- /**
82
- * The final generated response text.
83
- * Set when the agent decides to stop and respond.
84
- */
85
- responseText: Annotation({
86
- reducer: (curr, next) => next,
87
- default: () => undefined,
88
- }),
89
- /**
90
- * Error message if the agent loop fails.
91
- */
92
- error: Annotation({
93
- reducer: (curr, next) => next,
94
- default: () => undefined,
95
- }),
96
- /**
97
- * Per-turn debug meta (graph, iterations, tool calls) for copy-debug.
98
- * Not persisted; only used so the streamer receives it in the updates chunk.
99
- */
100
- debugMeta: Annotation({
101
- reducer: (curr, next) => next,
102
- default: () => undefined,
103
- }),
104
- // Legacy subgraph state (used by index/intent/response nodes when present)
105
- /** Router output: target, operationType, extractedContext. */
106
- routingDecision: Annotation({
107
- reducer: (curr, next) => next,
108
- default: () => undefined,
109
- }),
110
- /** Results from intent/profile/opportunities/scrape subgraphs. */
111
- subgraphResults: Annotation({
112
- reducer: (curr, next) => next,
113
- default: () => undefined,
114
- }),
115
- /** User profile context (e.g. for intent nodes). */
116
- userProfile: Annotation({
117
- reducer: (curr, next) => next,
118
- default: () => undefined,
119
- }),
120
- });
@@ -1,64 +0,0 @@
1
- import { BaseMessage } from "@langchain/core/messages";
2
- import { BaseCheckpointSaver } from "@langchain/langgraph";
3
- import type { ToolScopeType } from "../shared/agent/tool.scope.js";
4
- import type { ChatStreamEvent } from "./chat-streaming.types.js";
5
- /**
6
- * Top-level streaming service for Chat Graph events.
7
- *
8
- * Uses `graph.stream()` with `streamMode: ["custom", "updates"]` so that
9
- * the agent's `config.writer()` calls arrive as `"custom"` chunks (text
10
- * tokens and tool-activity events) and the final state update arrives as
11
- * an `"updates"` chunk.
12
- */
13
- export declare class ChatStreamer {
14
- private loadSessionContext;
15
- private createStreamingGraph;
16
- constructor(loadSessionContext: (sessionId: string, maxMessages: number) => Promise<BaseMessage[]>, createStreamingGraph: (checkpointer?: BaseCheckpointSaver) => any);
17
- /**
18
- * Streams chat events with full session context.
19
- * Loads previous conversation history and optionally uses a checkpointer
20
- * for state persistence.
21
- *
22
- * @param input - Configuration for context-aware streaming
23
- * @param checkpointer - Optional checkpointer for state persistence
24
- * @yields ChatStreamEvent objects
25
- */
26
- streamChatEventsWithContext(input: {
27
- userId: string;
28
- message: string;
29
- sessionId: string;
30
- maxContextMessages?: number;
31
- /** @deprecated Use scopeType/scopeId. Kept for REST/session edge compatibility. */
32
- networkId?: string;
33
- scopeType?: ToolScopeType;
34
- scopeId?: string;
35
- prefillMessages?: Array<{
36
- role: "assistant" | "user";
37
- content: string;
38
- }>;
39
- /** Per-run identifier used to form a composite LangGraph thread_id (sessionId:runId).
40
- * When provided, prevents stale checkpoint state from a prior run being resumed.
41
- * Defaults to sessionId alone when absent (backward compatible). */
42
- runId?: string;
43
- }, checkpointer?: BaseCheckpointSaver, signal?: AbortSignal): AsyncGenerator<ChatStreamEvent>;
44
- /**
45
- * Streams chat events from the graph execution.
46
- *
47
- * Uses `graph.stream()` with `streamMode: ["custom", "updates"]`:
48
- * - `"custom"` chunks carry {@link AgentStreamEvent} objects emitted by
49
- * `ChatAgent.streamRun()` via `config.writer()`
50
- * - `"updates"` chunks carry the final state update from `agentLoopNode`
51
- *
52
- * @param input - The input state for the graph (userId and messages)
53
- * @param sessionId - The session ID for event attribution
54
- * @param checkpointer - Optional checkpointer for persistence
55
- * @yields ChatStreamEvent objects
56
- */
57
- streamChatEvents(input: {
58
- userId: string;
59
- messages: BaseMessage[];
60
- networkId?: string;
61
- scopeType?: ToolScopeType;
62
- scopeId?: string;
63
- }, sessionId: string, checkpointer?: BaseCheckpointSaver, signal?: AbortSignal, threadId?: string): AsyncGenerator<ChatStreamEvent>;
64
- }
@@ -1,217 +0,0 @@
1
- import { AIMessage, HumanMessage } from "@langchain/core/messages";
2
- import { protocolLogger } from "../shared/observability/protocol.logger.js";
3
- import { createAgentEndEvent, createAgentStartEvent, createDebugMetaEvent, createDecisionQuestionsEvent, createErrorEvent, createGraphEndEvent, createPhaseStartEvent, createPhaseEndEvent, createGraphStartEvent, createIterationStartEvent, createLlmStartEvent, createLlmEndEvent, createResponseCompleteEvent, createResponseResetEvent, createHallucinationDetectedEvent, createStatusEvent, createTokenEvent, createToolActivityEvent, createChatSummarizerStartEvent, createChatSummarizerEndEvent } from "./chat-streaming.types.js";
4
- const logger = protocolLogger("ChatStreamer");
5
- // ══════════════════════════════════════════════════════════════════════════════
6
- // CHAT STREAMER (Streaming Narration Architecture)
7
- // ══════════════════════════════════════════════════════════════════════════════
8
- /**
9
- * Top-level streaming service for Chat Graph events.
10
- *
11
- * Uses `graph.stream()` with `streamMode: ["custom", "updates"]` so that
12
- * the agent's `config.writer()` calls arrive as `"custom"` chunks (text
13
- * tokens and tool-activity events) and the final state update arrives as
14
- * an `"updates"` chunk.
15
- */
16
- export class ChatStreamer {
17
- constructor(loadSessionContext, createStreamingGraph) {
18
- this.loadSessionContext = loadSessionContext;
19
- this.createStreamingGraph = createStreamingGraph;
20
- }
21
- /**
22
- * Streams chat events with full session context.
23
- * Loads previous conversation history and optionally uses a checkpointer
24
- * for state persistence.
25
- *
26
- * @param input - Configuration for context-aware streaming
27
- * @param checkpointer - Optional checkpointer for state persistence
28
- * @yields ChatStreamEvent objects
29
- */
30
- async *streamChatEventsWithContext(input, checkpointer, signal) {
31
- const { userId, message, sessionId, maxContextMessages = 20, networkId, scopeType, scopeId, prefillMessages, runId, } = input;
32
- const effectiveScopeType = scopeType ?? (networkId ? 'network' : undefined);
33
- const effectiveScopeId = scopeId ?? (effectiveScopeType === 'network' ? networkId : undefined);
34
- logger.verbose("Starting context-aware streaming", {
35
- userId,
36
- sessionId,
37
- maxContextMessages,
38
- hasCheckpointer: !!checkpointer,
39
- hasIndexScope: !!effectiveScopeId,
40
- scopeType: effectiveScopeType,
41
- scopeId: effectiveScopeId,
42
- });
43
- try {
44
- // Load previous conversation context
45
- const previousMessages = await this.loadSessionContext(sessionId, maxContextMessages);
46
- // Inject prefill messages (e.g. hardcoded onboarding greeting) only for fresh sessions
47
- const prefill = previousMessages.length === 0
48
- ? (prefillMessages ?? []).map((pm) => pm.role === "assistant" ? new AIMessage(pm.content) : new HumanMessage(pm.content))
49
- : [];
50
- const allMessages = [...previousMessages, ...prefill, new HumanMessage(message)];
51
- logger.verbose("Context prepared", {
52
- previousCount: previousMessages.length,
53
- totalCount: allMessages.length,
54
- });
55
- // Form composite thread_id when a runId is provided
56
- const threadId = runId ? `${sessionId}:${runId}` : sessionId;
57
- // Stream with context using the optional checkpointer
58
- yield* this.streamChatEvents({ userId, messages: allMessages, scopeType: effectiveScopeType, scopeId: effectiveScopeId }, sessionId, checkpointer, signal, threadId);
59
- }
60
- catch (error) {
61
- logger.error("Stream error", {
62
- error: error instanceof Error ? error.message : String(error),
63
- });
64
- yield createErrorEvent(sessionId, error instanceof Error
65
- ? error.message
66
- : "Unknown error during context-aware streaming", "CONTEXT_STREAM_ERROR");
67
- }
68
- }
69
- /**
70
- * Streams chat events from the graph execution.
71
- *
72
- * Uses `graph.stream()` with `streamMode: ["custom", "updates"]`:
73
- * - `"custom"` chunks carry {@link AgentStreamEvent} objects emitted by
74
- * `ChatAgent.streamRun()` via `config.writer()`
75
- * - `"updates"` chunks carry the final state update from `agentLoopNode`
76
- *
77
- * @param input - The input state for the graph (userId and messages)
78
- * @param sessionId - The session ID for event attribution
79
- * @param checkpointer - Optional checkpointer for persistence
80
- * @yields ChatStreamEvent objects
81
- */
82
- async *streamChatEvents(input, sessionId, checkpointer, signal, threadId) {
83
- const graph = this.createStreamingGraph(checkpointer);
84
- try {
85
- const initialState = {
86
- userId: input.userId,
87
- messages: input.messages,
88
- };
89
- const effectiveScopeType = input.scopeType ?? (input.networkId ? 'network' : undefined);
90
- const effectiveScopeId = input.scopeId ?? (effectiveScopeType === 'network' ? input.networkId : undefined);
91
- if (input.networkId)
92
- initialState.networkId = input.networkId;
93
- if (effectiveScopeType && effectiveScopeId) {
94
- initialState.scopeType = effectiveScopeType;
95
- initialState.scopeId = effectiveScopeId;
96
- }
97
- initialState.sessionId = sessionId;
98
- // Use graph.stream() with custom + updates modes.
99
- // Custom events come from config.writer() inside agentLoopNode.
100
- const eventStream = await graph.stream(initialState, {
101
- streamMode: ["custom", "updates"],
102
- configurable: { thread_id: threadId ?? sessionId, signal },
103
- signal,
104
- });
105
- // Emit initial status
106
- yield createStatusEvent(sessionId, "Processing your message...");
107
- for await (const tuple of eventStream) {
108
- if (signal?.aborted)
109
- break;
110
- // graph.stream with multiple modes yields [mode, chunk] tuples
111
- const [mode, chunk] = tuple;
112
- // ─────────────────────────────────────────────────────────────────
113
- // CUSTOM: writer events from ChatAgent.streamRun()
114
- // ─────────────────────────────────────────────────────────────────
115
- if (mode === "custom") {
116
- const event = chunk;
117
- if (event.type === "iteration_start") {
118
- yield createIterationStartEvent(sessionId, event.iteration);
119
- }
120
- if (event.type === "llm_start") {
121
- yield createLlmStartEvent(sessionId, event.iteration);
122
- }
123
- if (event.type === "text_chunk" && event.content) {
124
- yield createTokenEvent(sessionId, event.content);
125
- }
126
- if (event.type === "response_reset") {
127
- yield createResponseResetEvent(sessionId, event.reason);
128
- }
129
- if (event.type === "hallucination_detected") {
130
- yield createHallucinationDetectedEvent(sessionId, event.blockType, event.tool);
131
- }
132
- if (event.type === "llm_end") {
133
- yield createLlmEndEvent(sessionId, event.iteration, event.hasToolCalls, event.toolNames);
134
- }
135
- if (event.type === "tool_activity") {
136
- logger.debug("Tool activity", { name: event.name, phase: event.phase });
137
- if (event.phase === "start") {
138
- yield createToolActivityEvent(sessionId, event.name, event.name, "start");
139
- }
140
- else {
141
- yield createToolActivityEvent(sessionId, event.name, event.name, "end", event.success, event.summary, event.steps);
142
- }
143
- }
144
- if (event.type === "graph_start") {
145
- yield createGraphStartEvent(sessionId, event.name);
146
- }
147
- if (event.type === "graph_end") {
148
- yield createGraphEndEvent(sessionId, event.name, event.durationMs);
149
- }
150
- if (event.type === "phase_start") {
151
- yield createPhaseStartEvent(sessionId, event.name);
152
- }
153
- if (event.type === "phase_end") {
154
- yield createPhaseEndEvent(sessionId, event.name, event.durationMs);
155
- }
156
- if (event.type === "agent_start") {
157
- yield createAgentStartEvent(sessionId, event.name);
158
- }
159
- if (event.type === "agent_end") {
160
- yield createAgentEndEvent(sessionId, event.name, event.durationMs, event.summary);
161
- }
162
- if (event.type === "decision_questions") {
163
- yield createDecisionQuestionsEvent(sessionId, { questions: event.questions });
164
- }
165
- if (event.type === "status") {
166
- // Keep-alive/status line from long-blocking tools so SSE
167
- // transports do not idle out.
168
- yield createStatusEvent(sessionId, event.message);
169
- }
170
- if (event.type === "chat_summarizer_start") {
171
- yield createChatSummarizerStartEvent(sessionId, event.payload);
172
- }
173
- if (event.type === "chat_summarizer_end") {
174
- yield createChatSummarizerEndEvent(sessionId, event.payload);
175
- }
176
- }
177
- // ─────────────────────────────────────────────────────────────────
178
- // UPDATES: final state from agentLoopNode
179
- // ─────────────────────────────────────────────────────────────────
180
- if (mode === "updates") {
181
- // The updates chunk is { agent_loop: { responseText, error, ... } }
182
- const updates = chunk;
183
- const agentOutput = updates?.agent_loop;
184
- if (agentOutput?.error) {
185
- logger.warn("Agent loop returned error via updates", {
186
- error: agentOutput.error,
187
- });
188
- yield createErrorEvent(sessionId, String(agentOutput.error), "AGENT_ERROR");
189
- }
190
- // Yield the agent's authoritative response text so the
191
- // controller can persist it without relying on token accumulation.
192
- const responseText = typeof agentOutput?.responseText === "string"
193
- ? agentOutput.responseText
194
- : "";
195
- yield createResponseCompleteEvent(sessionId, responseText);
196
- const debugMeta = agentOutput?.debugMeta;
197
- if (debugMeta?.graph != null &&
198
- typeof debugMeta.iterations === "number") {
199
- const llmFallback = { calls: 0, totalDurationMs: 0, resets: [], hallucinations: [] };
200
- yield createDebugMetaEvent(sessionId, debugMeta.graph, debugMeta.iterations, Array.isArray(debugMeta.tools) ? debugMeta.tools : [], debugMeta.llm ?? llmFallback, debugMeta.orchestratorNegotiations);
201
- }
202
- logger.verbose("Agent loop complete (updates)", {
203
- responseLength: responseText.length,
204
- });
205
- }
206
- }
207
- }
208
- catch (error) {
209
- logger.error("Stream error", {
210
- error: error instanceof Error ? error.message : String(error),
211
- });
212
- yield createErrorEvent(sessionId, error instanceof Error
213
- ? error.message
214
- : "Unknown error during streaming", "STREAM_ERROR");
215
- }
216
- }
217
- }
@@ -1,23 +0,0 @@
1
- import type { ChatSuggestion } from "./chat-streaming.types.js";
2
- export interface SuggestionGeneratorInput {
3
- /** Last few messages (user and assistant) to derive context */
4
- messages: Array<{
5
- role: "user" | "assistant";
6
- content: string;
7
- }>;
8
- /** Optional index/community context to tailor suggestions */
9
- indexContext?: string;
10
- }
11
- /**
12
- * Lightweight generator for context-aware chat follow-up suggestions.
13
- * Uses a fast model and structured output to return 3-5 suggestions per call.
14
- */
15
- export declare class SuggestionGenerator {
16
- private model;
17
- constructor();
18
- /**
19
- * Generate follow-up suggestions from the last exchange.
20
- * Returns empty array on failure (graceful degradation).
21
- */
22
- generate(input: SuggestionGeneratorInput): Promise<ChatSuggestion[]>;
23
- }
@@ -1,95 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { HumanMessage, SystemMessage } from "@langchain/core/messages";
11
- import { z } from "zod";
12
- import { protocolLogger } from "../shared/observability/protocol.logger.js";
13
- import { Timed } from "../shared/observability/performance.js";
14
- import { createStructuredModel } from "../shared/agent/model.config.js";
15
- import { invokeWithAbortSignal } from "../shared/agent/model-signal.js";
16
- const logger = protocolLogger("SuggestionGenerator");
17
- const suggestionItemSchema = z.object({
18
- label: z.string().describe("Short label for the chip (2-5 words)"),
19
- type: z.enum(["direct", "prompt"]).describe("direct = auto-submit message; prompt = prefill input"),
20
- followupText: z.string().nullable().describe("For type=direct: full message to send when clicked; null for prompt type"),
21
- prefill: z.string().nullable().describe("For type=prompt: text to prefill the input; null for direct type"),
22
- });
23
- const suggestionsSchema = z.object({
24
- suggestions: z
25
- .array(suggestionItemSchema)
26
- .min(1)
27
- .max(6)
28
- .describe("3-5 follow-up suggestions based on the conversation"),
29
- });
30
- const SYSTEM_PROMPT = `You generate follow-up suggestions for a chat user based on their conversation.
31
-
32
- Rules:
33
- - Return 3-5 suggestions. Mix of "direct" (one-click send) and "prompt" (prefill for user to edit).
34
- - Labels must be short: 2-5 words (e.g. "Find collaborators", "Add more details").
35
- - For type=direct: provide followupText as the exact message to send (complete sentence).
36
- - For type=prompt: provide prefill as the start of a sentence the user can complete (e.g. "I need help with ").
37
- - Suggestions must be relevant to the last exchange and natural next steps.
38
- - Do not repeat what the user or assistant just said; suggest logical follow-ups.
39
- - Voice: Calm, direct; no hype or networking clichés. Prefer words like opportunity, overlap, signal, pattern, relevant. Avoid: search, leverage, networking, match, optimize, scale.`;
40
- /**
41
- * Lightweight generator for context-aware chat follow-up suggestions.
42
- * Uses a fast model and structured output to return 3-5 suggestions per call.
43
- */
44
- export class SuggestionGenerator {
45
- constructor() {
46
- this.model = createStructuredModel("suggestionGenerator", suggestionsSchema, { name: "chat_suggestions" });
47
- }
48
- /**
49
- * Generate follow-up suggestions from the last exchange.
50
- * Returns empty array on failure (graceful degradation).
51
- */
52
- async generate(input) {
53
- const { messages, indexContext } = input;
54
- if (messages.length === 0)
55
- return [];
56
- const excerpt = messages
57
- .slice(-6)
58
- .map((m) => `${m.role === "user" ? "User" : "Assistant"}: ${m.content.slice(0, 300)}`)
59
- .join("\n\n");
60
- const userContent = indexContext
61
- ? `Conversation (community context: ${indexContext}):\n\n${excerpt}\n\nGenerate 3-5 follow-up suggestions.`
62
- : `Conversation:\n\n${excerpt}\n\nGenerate 3-5 follow-up suggestions.`;
63
- try {
64
- const result = await invokeWithAbortSignal(this.model, [
65
- new SystemMessage(SYSTEM_PROMPT),
66
- new HumanMessage(userContent),
67
- ]);
68
- const parsed = suggestionsSchema.safeParse(result);
69
- if (!parsed.success) {
70
- logger.warn("Parse failed", { error: parsed.error.message });
71
- return [];
72
- }
73
- const out = parsed.data.suggestions.map((s) => ({
74
- label: s.label,
75
- type: s.type,
76
- ...(s.type === "direct" && s.followupText != null && { followupText: s.followupText }),
77
- ...(s.type === "prompt" && s.prefill != null && { prefill: s.prefill }),
78
- }));
79
- logger.verbose("Generated", { count: out.length });
80
- return out;
81
- }
82
- catch (error) {
83
- logger.warn("Failed", {
84
- error: error instanceof Error ? error.message : String(error),
85
- });
86
- return [];
87
- }
88
- }
89
- }
90
- __decorate([
91
- Timed(),
92
- __metadata("design:type", Function),
93
- __metadata("design:paramtypes", [Object]),
94
- __metadata("design:returntype", Promise)
95
- ], SuggestionGenerator.prototype, "generate", null);
@@ -1,20 +0,0 @@
1
- import { type ChatContextDigest } from "../shared/schemas/chat-context.schema.js";
2
- export interface ChatSummarizerMessage {
3
- role: "user" | "assistant";
4
- content: string;
5
- }
6
- export interface ChatSummarizerInput {
7
- previousDigest: ChatContextDigest | null;
8
- newMessages: ChatSummarizerMessage[];
9
- }
10
- /** Pure LLM summarizer; no DB, no events. */
11
- export declare class ChatSummarizer {
12
- private model;
13
- constructor();
14
- /**
15
- * Summarize a chat session into a bounded structured digest.
16
- * @param input - Previous digest (or null) and any messages added since.
17
- * @returns Updated digest, or null on LLM failure / first-time empty input.
18
- */
19
- summarize(input: ChatSummarizerInput): Promise<ChatContextDigest | null>;
20
- }
@@ -1,97 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- /**
11
- * ChatSummarizer — rolling, incremental digest of a chat session. Takes the
12
- * previous persisted digest (if any) plus messages added since, returns a
13
- * structured ChatContextDigest. Pure: no DB, no events. Persistence is the
14
- * caller's responsibility (see backend ChatSummaryService).
15
- *
16
- * The model is instructed to drop entries in the previous digest that newer
17
- * messages override, keeping the digest bounded as the session grows.
18
- */
19
- import { HumanMessage, SystemMessage } from "@langchain/core/messages";
20
- import { ChatContextDigestSchema } from "../shared/schemas/chat-context.schema.js";
21
- import { createStructuredModel } from "../shared/agent/model.config.js";
22
- import { invokeWithAbortSignal } from "../shared/agent/model-signal.js";
23
- import { protocolLogger } from "../shared/observability/protocol.logger.js";
24
- import { Timed } from "../shared/observability/performance.js";
25
- const logger = protocolLogger("ChatSummarizer");
26
- const MESSAGE_CONTENT_CAP = 240;
27
- const SYSTEM_PROMPT = `You distill chat sessions into a compact structured digest used to keep an assistant from asking obvious questions.
28
-
29
- Output four arrays:
30
- - statedFacts: facts the user volunteered (stage, location, role, timing, scope, budget, …).
31
- - openQuestions: questions the assistant asked that the user has not yet answered.
32
- - rejectionReasons: pushback the user gave on prior assistant proposals (e.g. "none of these fit — all US-based").
33
- - surfacedFindings: facts the assistant has already shared with the user from prior negotiation results.
34
-
35
- Rules:
36
- - Drop entries from the previous digest that newer messages override or contradict.
37
- - Keep each entry short (≤140 chars), specific, and standalone.
38
- - Bound the digest: at most 20 statedFacts, 10 openQuestions, 10 rejectionReasons, 20 surfacedFindings. Drop the least relevant when over.
39
- - Never invent facts. If the digest is empty for a category, output an empty array.`;
40
- /** Pure LLM summarizer; no DB, no events. */
41
- export class ChatSummarizer {
42
- constructor() {
43
- this.model = createStructuredModel("chatContextSummarizer", ChatContextDigestSchema, {
44
- name: "chat_context_digest",
45
- });
46
- }
47
- /**
48
- * Summarize a chat session into a bounded structured digest.
49
- * @param input - Previous digest (or null) and any messages added since.
50
- * @returns Updated digest, or null on LLM failure / first-time empty input.
51
- */
52
- async summarize(input) {
53
- if (input.newMessages.length === 0) {
54
- return input.previousDigest;
55
- }
56
- const truncated = input.newMessages.map((m) => ({
57
- role: m.role,
58
- content: m.content.length > MESSAGE_CONTENT_CAP
59
- ? m.content.slice(0, MESSAGE_CONTENT_CAP)
60
- : m.content,
61
- }));
62
- const user = [
63
- input.previousDigest
64
- ? `Previous digest:\n${JSON.stringify(input.previousDigest, null, 2)}`
65
- : "Previous digest: (none — this is the first summarization for this session)",
66
- "",
67
- "New messages (since previous digest):",
68
- ...truncated.map((m) => ` [${m.role}] ${m.content}`),
69
- "",
70
- "Produce the updated digest now.",
71
- ].join("\n");
72
- try {
73
- const response = await invokeWithAbortSignal(this.model, [
74
- new SystemMessage(SYSTEM_PROMPT),
75
- new HumanMessage(user),
76
- ]);
77
- const parsed = ChatContextDigestSchema.safeParse(response);
78
- if (!parsed.success) {
79
- logger.warn("ChatSummarizer parse failed", { error: parsed.error.message });
80
- return null;
81
- }
82
- return parsed.data;
83
- }
84
- catch (err) {
85
- logger.warn("ChatSummarizer LLM call failed", {
86
- error: err instanceof Error ? err.message : String(err),
87
- });
88
- return null;
89
- }
90
- }
91
- }
92
- __decorate([
93
- Timed(),
94
- __metadata("design:type", Function),
95
- __metadata("design:paramtypes", [Object]),
96
- __metadata("design:returntype", Promise)
97
- ], ChatSummarizer.prototype, "summarize", null);
@@ -1,19 +0,0 @@
1
- export interface TitleGeneratorInput {
2
- messages: Array<{
3
- role: string;
4
- content: string;
5
- }>;
6
- }
7
- /**
8
- * Generates a short, descriptive title for a chat session using the first exchange.
9
- * Only meaningful when there is at least one user message and one assistant message.
10
- */
11
- export declare class ChatTitleGenerator {
12
- private model;
13
- constructor();
14
- /**
15
- * Suggests a title from the conversation excerpt.
16
- * Call only when there is at least one user and one assistant message.
17
- */
18
- invoke(input: TitleGeneratorInput): Promise<string>;
19
- }