@indexnetwork/protocol 22.0.0-rc.499.1 → 64.0.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 (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 -134
  12. package/dist/index.js +41 -105
  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,482 +0,0 @@
1
- /**
2
- * HyDE Graph: cache-aware hypothetical document generation with lens inference.
3
- *
4
- * Legacy flow: infer_lenses → check_cache → generate_missing? → embed → cache_results.
5
- * Frame-v1 flow adds one batch validate_generated node before embed.
6
- */
7
- import { createHash } from 'crypto';
8
- import { END, START, StateGraph } from '@langchain/langgraph';
9
- import { getAbortSignalConfig } from '../shared/agent/model-signal.js';
10
- import { protocolLogger } from '../shared/observability/protocol.logger.js';
11
- import { timed } from '../shared/observability/performance.js';
12
- import { requestContext } from "../shared/observability/request-context.js";
13
- import { computeHydeSourceTextHash } from './hyde.documents.js';
14
- import { getHydeGenerationMode, HYDE_FRAME_GENERATION_VERSION } from './hyde.env.js';
15
- import { sanitizeHydeSourceFrame } from './hyde.frame.js';
16
- import { HydeGraphState } from './hyde.state.js';
17
- import { HYDE_DEFAULT_CACHE_TTL } from './hyde.strategies.js';
18
- import { HydeValidator } from './hyde.validator.js';
19
- const logger = protocolLogger("HyDEGraphFactory");
20
- let lastGenerationTimestamp = 0;
21
- function nextGenerationMarker() {
22
- lastGenerationTimestamp = Math.max(Date.now(), lastGenerationTimestamp + 1);
23
- return new Date(lastGenerationTimestamp).toISOString();
24
- }
25
- /** Hash a lens label (+ optional corpus) to a short key for cache/DB indexing. */
26
- function lensHash(label, corpus) {
27
- const input = corpus
28
- ? `${label.toLowerCase().trim()}:${corpus}`
29
- : label.toLowerCase().trim();
30
- return createHash('sha256').update(input).digest('hex').slice(0, 16);
31
- }
32
- function entityCacheKey(sourceId, sourceText) {
33
- return sourceId ?? `q:${createHash('sha256').update(sourceText).digest('hex').slice(0, 16)}`;
34
- }
35
- function sortedFrame(frame) {
36
- const sort = (items) => [...items].sort((left, right) => {
37
- const leftJson = JSON.stringify(left);
38
- const rightJson = JSON.stringify(right);
39
- return leftJson < rightJson ? -1 : leftJson > rightJson ? 1 : 0;
40
- });
41
- return {
42
- sourceRoles: sort(frame.sourceRoles),
43
- counterpartRoles: sort(frame.counterpartRoles),
44
- hardConstraints: sort(frame.hardConstraints),
45
- namedEntities: sort(frame.namedEntities),
46
- domainVocabulary: sort(frame.domainVocabulary),
47
- };
48
- }
49
- /** Deterministic identity for the source content and sanitized frame. */
50
- function computeHydeFrameFingerprint(sourceText, sourceFrame) {
51
- return createHash('sha256')
52
- .update(sourceText)
53
- .update('\0')
54
- .update(JSON.stringify(sortedFrame(sourceFrame)))
55
- .digest('hex');
56
- }
57
- function requireFrameFingerprint(frameFingerprint) {
58
- if (!frameFingerprint)
59
- throw new Error('frame-v1 HyDE requires a frame fingerprint');
60
- return frameFingerprint;
61
- }
62
- /** Preserve the exact legacy Redis key and isolate frame-v1 data by namespace. */
63
- function cacheKey(mode, sourceType, sourceId, sourceText, lens, corpus, frameFingerprint) {
64
- const entityKey = entityCacheKey(sourceId, sourceText);
65
- if (mode === 'legacy')
66
- return `hyde:${sourceType}:${entityKey}:${lensHash(lens, corpus)}`;
67
- return `hyde:${HYDE_FRAME_GENERATION_VERSION}:${sourceType}:${entityKey}:${requireFrameFingerprint(frameFingerprint)}:${lensHash(lens, corpus)}`;
68
- }
69
- /** Preserve legacy identity and use a stable frame-v1 identity per lens/corpus. */
70
- function dbStrategy(mode, label, corpus) {
71
- const hash = lensHash(label, corpus);
72
- return mode === 'legacy' ? hash : `${HYDE_FRAME_GENERATION_VERSION}:${hash}`;
73
- }
74
- function isValidGenerationMarker(value) {
75
- return typeof value === 'string' && Number.isFinite(Date.parse(value));
76
- }
77
- function isFrameCacheDocument(doc, lensLabel, frameFingerprint, sourceTextHash) {
78
- return doc.hydeGenerationVersion === HYDE_FRAME_GENERATION_VERSION
79
- && doc.validationStatus === 'valid'
80
- && doc.lens === lensLabel
81
- && doc.frameFingerprint === frameFingerprint
82
- && doc.sourceTextHash === sourceTextHash
83
- && isValidGenerationMarker(doc.generatedAt);
84
- }
85
- function isFrameDbContext(context, lensLabel, frameFingerprint, sourceTextHash) {
86
- return context?.hydeGenerationVersion === HYDE_FRAME_GENERATION_VERSION
87
- && context.lensLabel === lensLabel
88
- && context.validationStatus === 'valid'
89
- && context.frameFingerprint === frameFingerprint
90
- && context.sourceTextHash === sourceTextHash
91
- && isValidGenerationMarker(context.generatedAt);
92
- }
93
- function emptyFrame() {
94
- return {
95
- sourceRoles: [],
96
- counterpartRoles: [],
97
- hardConstraints: [],
98
- namedEntities: [],
99
- domainVocabulary: [],
100
- };
101
- }
102
- function opaqueDocumentKey(doc) {
103
- return `d-${createHash('sha256')
104
- .update(`${doc.lens}\0${doc.targetCorpus}\0${doc.hydeText}`)
105
- .digest('hex')
106
- .slice(0, 16)}`;
107
- }
108
- function isRuntimeVerdict(value) {
109
- if (!value || typeof value !== 'object')
110
- return false;
111
- const verdict = value;
112
- return typeof verdict.key === 'string'
113
- && typeof verdict.valid === 'boolean'
114
- && Array.isArray(verdict.unsupportedNamedEntities)
115
- && verdict.unsupportedNamedEntities.every((item) => typeof item === 'string')
116
- && Array.isArray(verdict.unsupportedHardConstraints)
117
- && verdict.unsupportedHardConstraints.every((item) => typeof item === 'string')
118
- && typeof verdict.reasoning === 'string';
119
- }
120
- /** Factory for the HyDE generation graph. Existing five-argument calls remain valid. */
121
- export class HydeGraphFactory {
122
- constructor(database, embedder, cache, inferrer, generator, options = {}) {
123
- const mode = options.mode ?? getHydeGenerationMode();
124
- this.deps = {
125
- database, embedder, cache, inferrer, generator, options, mode,
126
- ...(mode === HYDE_FRAME_GENERATION_VERSION
127
- ? { validator: options.validator ?? new HydeValidator() }
128
- : {}),
129
- };
130
- }
131
- createGraph() {
132
- const deps = this.deps;
133
- const mode = deps.mode;
134
- const workflow = new StateGraph(HydeGraphState)
135
- .addNode('infer_lenses', (state) => inferLensesNode(state, deps))
136
- .addNode('check_cache', (state) => checkCacheNode(state, deps))
137
- .addNode('generate_missing', (state) => generateMissingNode(state, deps))
138
- .addNode('embed', (state) => embedNode(state, deps))
139
- .addNode('cache_results', (state) => cacheResultsNode(state, deps))
140
- .addEdge(START, 'infer_lenses')
141
- .addEdge('infer_lenses', 'check_cache')
142
- .addConditionalEdges('check_cache', shouldGenerate, {
143
- generate: 'generate_missing',
144
- skip: 'embed',
145
- });
146
- if (mode === HYDE_FRAME_GENERATION_VERSION) {
147
- workflow
148
- .addNode('validate_generated', (state) => validateGeneratedNode(state, deps))
149
- .addEdge('generate_missing', 'validate_generated')
150
- .addEdge('validate_generated', 'embed');
151
- }
152
- else {
153
- workflow.addEdge('generate_missing', 'embed');
154
- }
155
- workflow
156
- .addEdge('embed', 'cache_results')
157
- .addEdge('cache_results', END);
158
- return workflow.compile();
159
- return workflow.compile();
160
- }
161
- }
162
- /** Node 1: Infer lenses from source text + optional profile context. */
163
- export async function inferLensesNode(state, deps) {
164
- return timed("HydeGraph.inferLenses", async () => {
165
- const { sourceText, profileContext, maxLenses } = state;
166
- const agentTimingsAccum = [];
167
- try {
168
- const traceEmitter = requestContext.getStore()?.traceEmitter;
169
- const inferrerStart = Date.now();
170
- traceEmitter?.({ type: "agent_start", name: "lens-inferrer" });
171
- const result = await deps.inferrer.infer({
172
- sourceText,
173
- profileContext,
174
- maxLenses,
175
- ...(deps.mode === HYDE_FRAME_GENERATION_VERSION ? { frameConstrained: true } : {}),
176
- });
177
- const durationMs = Date.now() - inferrerStart;
178
- agentTimingsAccum.push({ name: 'lens.inferrer', durationMs });
179
- traceEmitter?.({ type: "agent_end", name: "lens-inferrer", durationMs, summary: result.lenses.length > 0 ? `Inferred ${result.lenses.length} lens(es)` : "lens-inferrer completed" });
180
- if (deps.mode === HYDE_FRAME_GENERATION_VERSION) {
181
- const sourceFrame = sanitizeHydeSourceFrame(sourceText, result.sourceFrame ?? emptyFrame());
182
- return {
183
- lenses: result.lenses,
184
- sourceFrame,
185
- frameFingerprint: computeHydeFrameFingerprint(sourceText, sourceFrame),
186
- sourceTextHash: computeHydeSourceTextHash(sourceText),
187
- generatedAt: nextGenerationMarker(),
188
- agentTimings: agentTimingsAccum,
189
- };
190
- }
191
- return { lenses: result.lenses, agentTimings: agentTimingsAccum };
192
- }
193
- catch (error) {
194
- logger.error('Lens inference failed in graph node', { error });
195
- if (deps.mode === HYDE_FRAME_GENERATION_VERSION) {
196
- const sourceFrame = emptyFrame();
197
- return {
198
- lenses: [],
199
- sourceFrame,
200
- frameFingerprint: computeHydeFrameFingerprint(sourceText, sourceFrame),
201
- sourceTextHash: computeHydeSourceTextHash(sourceText),
202
- generatedAt: nextGenerationMarker(),
203
- agentTimings: agentTimingsAccum,
204
- };
205
- }
206
- return { lenses: [], agentTimings: agentTimingsAccum };
207
- }
208
- });
209
- }
210
- /** Node 2: Check the mode-isolated cache/DB for matching documents. */
211
- export async function checkCacheNode(state, deps) {
212
- return timed("HydeGraph.checkCache", async () => {
213
- const { sourceType, sourceId, sourceText, lenses, forceRegenerate } = state;
214
- if (forceRegenerate)
215
- return { hydeDocuments: {} };
216
- const frameFingerprint = deps.mode === HYDE_FRAME_GENERATION_VERSION
217
- ? requireFrameFingerprint(state.frameFingerprint)
218
- : undefined;
219
- const sourceTextHash = deps.mode === HYDE_FRAME_GENERATION_VERSION
220
- ? state.sourceTextHash ?? computeHydeSourceTextHash(sourceText)
221
- : undefined;
222
- const cached = {};
223
- for (const lens of lenses) {
224
- const key = cacheKey(deps.mode, sourceType, sourceId ?? undefined, sourceText, lens.label, lens.corpus, frameFingerprint);
225
- const fromCache = await deps.cache.get(key);
226
- const cacheAccepted = fromCache?.hydeText
227
- && fromCache.hydeEmbedding?.length
228
- && (deps.mode === 'legacy' || isFrameCacheDocument(fromCache, lens.label, frameFingerprint, sourceTextHash));
229
- if (cacheAccepted && fromCache) {
230
- cached[lens.label] = {
231
- ...fromCache,
232
- ...(deps.mode === HYDE_FRAME_GENERATION_VERSION ? { origin: 'cache' } : {}),
233
- };
234
- continue;
235
- }
236
- if (sourceId) {
237
- const fromDb = await deps.database.getHydeDocument(sourceType, sourceId, dbStrategy(deps.mode, lens.label, lens.corpus));
238
- const frameDbContext = deps.mode === HYDE_FRAME_GENERATION_VERSION && fromDb
239
- ? fromDb.context
240
- : null;
241
- if (fromDb && (deps.mode === 'legacy' || isFrameDbContext(frameDbContext, lens.label, frameFingerprint, sourceTextHash))) {
242
- cached[lens.label] = {
243
- lens: lens.label,
244
- targetCorpus: fromDb.targetCorpus,
245
- hydeText: fromDb.hydeText,
246
- hydeEmbedding: fromDb.hydeEmbedding,
247
- ...(deps.mode === HYDE_FRAME_GENERATION_VERSION
248
- ? {
249
- origin: 'db',
250
- validationStatus: 'valid',
251
- hydeGenerationVersion: HYDE_FRAME_GENERATION_VERSION,
252
- frameFingerprint,
253
- sourceTextHash,
254
- generatedAt: frameDbContext.generatedAt,
255
- }
256
- : {}),
257
- };
258
- }
259
- }
260
- }
261
- if (deps.mode === HYDE_FRAME_GENERATION_VERSION) {
262
- const newestTimestamp = Math.max(...Object.values(cached).map((doc) => Date.parse(doc.generatedAt ?? '')));
263
- if (Number.isFinite(newestTimestamp)) {
264
- return {
265
- hydeDocuments: Object.fromEntries(Object.entries(cached).filter(([, doc]) => Date.parse(doc.generatedAt ?? '') === newestTimestamp)),
266
- };
267
- }
268
- }
269
- return { hydeDocuments: cached };
270
- });
271
- }
272
- /** Node 3: Generate all missing documents and return a complete snapshot. */
273
- export async function generateMissingNode(state, deps) {
274
- return timed("HydeGraph.generateMissing", async () => {
275
- const { sourceText, sourceFrame, lenses, hydeDocuments } = state;
276
- const missing = lenses.filter((lens) => !hydeDocuments[lens.label]);
277
- const agentTimingsAccum = [];
278
- const generated = {};
279
- const sourceTextHash = deps.mode === HYDE_FRAME_GENERATION_VERSION
280
- ? state.sourceTextHash ?? computeHydeSourceTextHash(sourceText)
281
- : undefined;
282
- const generatedAt = deps.mode === HYDE_FRAME_GENERATION_VERSION
283
- ? state.generatedAt ?? nextGenerationMarker()
284
- : undefined;
285
- await Promise.all(missing.map(async (lens) => {
286
- const traceEmitter = requestContext.getStore()?.traceEmitter;
287
- const generatorStart = Date.now();
288
- traceEmitter?.({ type: "agent_start", name: "hyde-generator" });
289
- const out = await deps.generator.generate({
290
- sourceText,
291
- lens: lens.label,
292
- corpus: lens.corpus,
293
- ...(deps.mode === HYDE_FRAME_GENERATION_VERSION && sourceFrame ? { sourceFrame } : {}),
294
- });
295
- const durationMs = Date.now() - generatorStart;
296
- agentTimingsAccum.push({ name: 'hyde.generator', durationMs });
297
- traceEmitter?.({ type: "agent_end", name: "hyde-generator", durationMs, summary: `Generated: ${lens.label}` });
298
- generated[lens.label] = {
299
- lens: lens.label,
300
- targetCorpus: lens.corpus,
301
- hydeText: out.text,
302
- hydeEmbedding: [],
303
- ...(deps.mode === HYDE_FRAME_GENERATION_VERSION
304
- ? {
305
- origin: 'generated',
306
- frameFingerprint: requireFrameFingerprint(state.frameFingerprint),
307
- sourceTextHash,
308
- generatedAt,
309
- }
310
- : {}),
311
- };
312
- }));
313
- const retained = deps.mode === HYDE_FRAME_GENERATION_VERSION
314
- ? Object.fromEntries(Object.entries(hydeDocuments).map(([label, doc]) => [
315
- label,
316
- {
317
- ...doc,
318
- frameFingerprint: requireFrameFingerprint(state.frameFingerprint),
319
- sourceTextHash,
320
- generatedAt,
321
- },
322
- ]))
323
- : hydeDocuments;
324
- return { hydeDocuments: { ...retained, ...generated }, agentTimings: agentTimingsAccum };
325
- });
326
- }
327
- /** Frame-v1 only: validate newly generated docs in one batch. */
328
- export async function validateGeneratedNode(state, deps) {
329
- return timed("HydeGraph.validateGenerated", async () => {
330
- const generated = Object.values(state.hydeDocuments).filter((doc) => doc.origin === 'generated');
331
- if (generated.length === 0 || !deps.validator)
332
- return { hydeDocuments: state.hydeDocuments };
333
- const frame = sanitizeHydeSourceFrame(state.sourceText, state.sourceFrame ?? emptyFrame());
334
- const documents = {};
335
- const lensByDocumentKey = new Map();
336
- for (const doc of generated) {
337
- const key = opaqueDocumentKey(doc);
338
- documents[key] = { corpus: doc.targetCorpus, text: doc.hydeText };
339
- lensByDocumentKey.set(key, doc.lens);
340
- }
341
- const updated = { ...state.hydeDocuments };
342
- const agentTimingsAccum = [];
343
- const traceEmitter = requestContext.getStore()?.traceEmitter;
344
- const validatorStart = Date.now();
345
- let validCount = 0;
346
- let rejectedCount = 0;
347
- let failedOpenCount = 0;
348
- traceEmitter?.({ type: 'agent_start', name: 'hyde-validator' });
349
- try {
350
- const output = await deps.validator.validate({
351
- sourceText: state.sourceText,
352
- sourceFrame: frame,
353
- documents,
354
- });
355
- const rawVerdicts = Array.isArray(output.verdicts)
356
- ? output.verdicts
357
- : [];
358
- for (const key of Object.keys(documents)) {
359
- const lensLabel = lensByDocumentKey.get(key);
360
- if (!lensLabel)
361
- continue;
362
- const matching = rawVerdicts.filter((value) => !!value && typeof value === 'object' && value.key === key);
363
- const doc = updated[lensLabel];
364
- if (!doc)
365
- continue;
366
- if (matching.length !== 1 || !isRuntimeVerdict(matching[0])) {
367
- failedOpenCount += 1;
368
- updated[lensLabel] = { ...doc, validationStatus: 'failed_open', hydeGenerationVersion: HYDE_FRAME_GENERATION_VERSION };
369
- continue;
370
- }
371
- const verdict = matching[0];
372
- const hasUnsupportedGrounding = verdict.unsupportedNamedEntities.length > 0
373
- || verdict.unsupportedHardConstraints.length > 0;
374
- const contradictory = verdict.valid === hasUnsupportedGrounding;
375
- if (contradictory) {
376
- failedOpenCount += 1;
377
- updated[lensLabel] = { ...doc, validationStatus: 'failed_open', hydeGenerationVersion: HYDE_FRAME_GENERATION_VERSION };
378
- }
379
- else if (!verdict.valid) {
380
- rejectedCount += 1;
381
- delete updated[lensLabel];
382
- }
383
- else {
384
- validCount += 1;
385
- updated[lensLabel] = { ...doc, validationStatus: 'valid', hydeGenerationVersion: HYDE_FRAME_GENERATION_VERSION };
386
- }
387
- }
388
- }
389
- catch (error) {
390
- logger.error('HyDE validation failed open', { error });
391
- validCount = 0;
392
- rejectedCount = 0;
393
- failedOpenCount = generated.length;
394
- for (const doc of generated) {
395
- updated[doc.lens] = { ...doc, validationStatus: 'failed_open', hydeGenerationVersion: HYDE_FRAME_GENERATION_VERSION };
396
- }
397
- }
398
- finally {
399
- const durationMs = Date.now() - validatorStart;
400
- agentTimingsAccum.push({ name: 'hyde.validator', durationMs });
401
- traceEmitter?.({
402
- type: 'agent_end',
403
- name: 'hyde-validator',
404
- durationMs,
405
- summary: `${validCount} valid, ${rejectedCount} rejected, ${failedOpenCount} failed open`,
406
- });
407
- }
408
- return { hydeDocuments: updated, agentTimings: agentTimingsAccum };
409
- });
410
- }
411
- /** Embed all accepted/cached documents that do not have embeddings. */
412
- export async function embedNode(state, deps) {
413
- return timed("HydeGraph.embed", async () => {
414
- const toEmbed = [];
415
- const updated = {};
416
- const hydeEmbeddings = {};
417
- for (const [label, doc] of Object.entries(state.hydeDocuments)) {
418
- if (doc.hydeEmbedding?.length) {
419
- updated[label] = doc;
420
- hydeEmbeddings[label] = doc.hydeEmbedding;
421
- }
422
- else {
423
- toEmbed.push({ label, doc });
424
- }
425
- }
426
- if (toEmbed.length > 0) {
427
- const embeddings = await deps.embedder.generate(toEmbed.map((item) => item.doc.hydeText), undefined, getAbortSignalConfig());
428
- const embeddingArray = Array.isArray(embeddings[0]) ? embeddings : [embeddings];
429
- for (let i = 0; i < toEmbed.length; i++) {
430
- const { label, doc } = toEmbed[i];
431
- const embedding = embeddingArray[i] ?? [];
432
- updated[label] = { ...doc, hydeEmbedding: embedding };
433
- hydeEmbeddings[label] = embedding;
434
- }
435
- }
436
- return { hydeDocuments: updated, hydeEmbeddings };
437
- });
438
- }
439
- /** Cache/persist only legacy docs or successfully validated frame-v1 docs. */
440
- export async function cacheResultsNode(state, deps) {
441
- return timed("HydeGraph.cacheResults", async () => {
442
- const { sourceType, sourceId, sourceText, hydeDocuments } = state;
443
- const frameFingerprint = deps.mode === HYDE_FRAME_GENERATION_VERSION
444
- ? requireFrameFingerprint(state.frameFingerprint)
445
- : undefined;
446
- const sourceTextHash = deps.mode === HYDE_FRAME_GENERATION_VERSION
447
- ? state.sourceTextHash ?? computeHydeSourceTextHash(sourceText)
448
- : undefined;
449
- for (const [label, doc] of Object.entries(hydeDocuments)) {
450
- if (deps.mode === HYDE_FRAME_GENERATION_VERSION
451
- && !isFrameCacheDocument(doc, label, frameFingerprint, sourceTextHash))
452
- continue;
453
- const key = cacheKey(deps.mode, sourceType, sourceId ?? undefined, sourceText, label, doc.targetCorpus, frameFingerprint);
454
- await deps.cache.set(key, doc, { ttl: HYDE_DEFAULT_CACHE_TTL });
455
- if (sourceId) {
456
- await deps.database.saveHydeDocument({
457
- sourceType,
458
- sourceId,
459
- strategy: dbStrategy(deps.mode, label, doc.targetCorpus),
460
- targetCorpus: doc.targetCorpus,
461
- hydeText: doc.hydeText,
462
- hydeEmbedding: doc.hydeEmbedding,
463
- ...(deps.mode === HYDE_FRAME_GENERATION_VERSION ? {
464
- context: {
465
- hydeGenerationVersion: HYDE_FRAME_GENERATION_VERSION,
466
- lensLabel: label,
467
- validationStatus: 'valid',
468
- frameFingerprint: doc.frameFingerprint,
469
- sourceTextHash: doc.sourceTextHash,
470
- generatedAt: doc.generatedAt,
471
- },
472
- } : {}),
473
- });
474
- }
475
- }
476
- return {};
477
- });
478
- }
479
- /** After the cache check: generate the missing documents, or skip straight to embedding. */
480
- export function shouldGenerate(state) {
481
- return state.lenses.some((lens) => !state.hydeDocuments[lens.label]) ? 'generate' : 'skip';
482
- }
@@ -1,70 +0,0 @@
1
- /**
2
- * HyDE Graph state: cache-aware hypothetical document generation.
3
- * Used by the HyDE graph for infer_lenses → check_cache → generate_missing → embed → cache_results.
4
- */
5
- import type { Id } from '../shared/interfaces/database.interface.js';
6
- import type { Lens, HydeTargetCorpus } from './lens.inferrer.js';
7
- import type { HydeSourceFrame } from './hyde.frame.js';
8
- import type { DebugMetaAgent } from '../agents/agent.module.js';
9
- export type HydeDocumentOrigin = 'cache' | 'db' | 'generated';
10
- export type HydeValidationStatus = 'valid' | 'invalid' | 'failed_open';
11
- /** Single HyDE document (text + embedding) for one lens. */
12
- export interface HydeDocumentState {
13
- lens: string;
14
- targetCorpus: HydeTargetCorpus;
15
- hydeText: string;
16
- hydeEmbedding: number[];
17
- origin?: HydeDocumentOrigin;
18
- validationStatus?: HydeValidationStatus;
19
- hydeGenerationVersion?: 'frame-v1';
20
- frameFingerprint?: string;
21
- sourceTextHash?: string;
22
- generatedAt?: string;
23
- }
24
- /** State for the HyDE generation graph. */
25
- export declare const HydeGraphState: import("@langchain/langgraph").AnnotationRoot<{
26
- /** Source type: intent, profile, user context, or ad-hoc query. */
27
- sourceType: {
28
- (annotation: import("@langchain/langgraph").SingleReducer<"intent" | "context" | "query", "intent" | "context" | "query">): import("@langchain/langgraph").BaseChannel<"intent" | "context" | "query", "intent" | "context" | "query" | import("@langchain/langgraph").OverwriteValue<"intent" | "context" | "query">, unknown>;
29
- (): import("@langchain/langgraph").LastValue<"intent" | "context" | "query">;
30
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
31
- };
32
- /** Source entity ID (e.g. intent ID, user ID). Omitted for ad-hoc query. */
33
- sourceId: import("@langchain/langgraph").BaseChannel<Id<"users"> | Id<"intents"> | undefined, Id<"users"> | Id<"intents"> | import("@langchain/langgraph").OverwriteValue<Id<"users"> | Id<"intents"> | undefined> | undefined, unknown>;
34
- /** Source text to generate HyDE from (intent payload, profile summary, or query). */
35
- sourceText: {
36
- (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
37
- (): import("@langchain/langgraph").LastValue<string>;
38
- Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
39
- };
40
- /** Optional profile context for lens inference (user's profile summary). */
41
- profileContext: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
42
- /** Maximum number of lenses to infer (default 3). */
43
- maxLenses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
44
- /** When true, skip cache/DB and regenerate all lenses. */
45
- forceRegenerate: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
46
- /** Inferred lenses from the LensInferrer agent. */
47
- lenses: import("@langchain/langgraph").BaseChannel<Lens[], Lens[] | import("@langchain/langgraph").OverwriteValue<Lens[]>, unknown>;
48
- /** Sanitized source-grounded frame produced by frame-v1 inference. */
49
- sourceFrame: import("@langchain/langgraph").BaseChannel<HydeSourceFrame | undefined, HydeSourceFrame | import("@langchain/langgraph").OverwriteValue<HydeSourceFrame | undefined> | undefined, unknown>;
50
- /** Exact sourceText + sanitized sourceFrame identity for frame-v1 reuse. */
51
- frameFingerprint: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
52
- /** Hash of the exact source text for persisted frame-v1 freshness checks. */
53
- sourceTextHash: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
54
- /** Shared cohort marker assigned when this run generates any missing document. */
55
- generatedAt: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
56
- /**
57
- * Complete HyDE document snapshot keyed by lens label. Writers replace the
58
- * snapshot so rejected documents can be removed before embedding.
59
- */
60
- hydeDocuments: import("@langchain/langgraph").BaseChannel<Record<string, HydeDocumentState>, Record<string, HydeDocumentState> | import("@langchain/langgraph").OverwriteValue<Record<string, HydeDocumentState>>, unknown>;
61
- /**
62
- * Final embeddings per lens (convenience output for search).
63
- * Populated by embed node; used by opportunity graph.
64
- */
65
- hydeEmbeddings: import("@langchain/langgraph").BaseChannel<Record<string, number[]>, Record<string, number[]> | import("@langchain/langgraph").OverwriteValue<Record<string, number[]>>, unknown>;
66
- /** Non-fatal error message. */
67
- error: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
68
- /** Timing records for each agent invocation within this graph run. */
69
- agentTimings: import("@langchain/langgraph").BaseChannel<DebugMetaAgent[], DebugMetaAgent[] | import("@langchain/langgraph").OverwriteValue<DebugMetaAgent[]>, unknown>;
70
- }>;
@@ -1,85 +0,0 @@
1
- /**
2
- * HyDE Graph state: cache-aware hypothetical document generation.
3
- * Used by the HyDE graph for infer_lenses → check_cache → generate_missing → embed → cache_results.
4
- */
5
- import { Annotation } from '@langchain/langgraph';
6
- /** State for the HyDE generation graph. */
7
- export const HydeGraphState = Annotation.Root({
8
- // ─── Inputs ─────────────────────────────────────────────────────────────
9
- /** Source type: intent, profile, user context, or ad-hoc query. */
10
- sourceType: (Annotation),
11
- /** Source entity ID (e.g. intent ID, user ID). Omitted for ad-hoc query. */
12
- sourceId: Annotation({
13
- reducer: (curr, next) => next ?? curr,
14
- default: () => undefined,
15
- }),
16
- /** Source text to generate HyDE from (intent payload, profile summary, or query). */
17
- sourceText: (Annotation),
18
- /** Optional profile context for lens inference (user's profile summary). */
19
- profileContext: Annotation({
20
- reducer: (curr, next) => next ?? curr,
21
- default: () => undefined,
22
- }),
23
- /** Maximum number of lenses to infer (default 3). */
24
- maxLenses: Annotation({
25
- reducer: (curr, next) => next ?? curr,
26
- default: () => 3,
27
- }),
28
- /** When true, skip cache/DB and regenerate all lenses. */
29
- forceRegenerate: Annotation({
30
- reducer: (curr, next) => next ?? curr,
31
- default: () => false,
32
- }),
33
- // ─── Intermediate / output ─────────────────────────────────────────────
34
- /** Inferred lenses from the LensInferrer agent. */
35
- lenses: Annotation({
36
- reducer: (curr, next) => next ?? curr,
37
- default: () => [],
38
- }),
39
- /** Sanitized source-grounded frame produced by frame-v1 inference. */
40
- sourceFrame: Annotation({
41
- reducer: (curr, next) => next ?? curr,
42
- default: () => undefined,
43
- }),
44
- /** Exact sourceText + sanitized sourceFrame identity for frame-v1 reuse. */
45
- frameFingerprint: Annotation({
46
- reducer: (curr, next) => next ?? curr,
47
- default: () => undefined,
48
- }),
49
- /** Hash of the exact source text for persisted frame-v1 freshness checks. */
50
- sourceTextHash: Annotation({
51
- reducer: (curr, next) => next ?? curr,
52
- default: () => undefined,
53
- }),
54
- /** Shared cohort marker assigned when this run generates any missing document. */
55
- generatedAt: Annotation({
56
- reducer: (curr, next) => next ?? curr,
57
- default: () => undefined,
58
- }),
59
- /**
60
- * Complete HyDE document snapshot keyed by lens label. Writers replace the
61
- * snapshot so rejected documents can be removed before embedding.
62
- */
63
- hydeDocuments: Annotation({
64
- reducer: (curr, next) => next ?? curr,
65
- default: () => ({}),
66
- }),
67
- /**
68
- * Final embeddings per lens (convenience output for search).
69
- * Populated by embed node; used by opportunity graph.
70
- */
71
- hydeEmbeddings: Annotation({
72
- reducer: (curr, next) => (next ? { ...curr, ...next } : curr),
73
- default: () => ({}),
74
- }),
75
- /** Non-fatal error message. */
76
- error: Annotation({
77
- reducer: (curr, next) => next ?? curr,
78
- default: () => undefined,
79
- }),
80
- /** Timing records for each agent invocation within this graph run. */
81
- agentTimings: Annotation({
82
- reducer: (acc, val) => [...acc, ...val],
83
- default: () => [],
84
- }),
85
- });
@@ -1,17 +0,0 @@
1
- /**
2
- * HyDE (Hypothetical Document Embeddings) type definitions.
3
- *
4
- * The system is now role-agnostic: instead of hardcoded strategy names
5
- * (mirror, reciprocal, mentor, investor, collaborator, hiree), an LLM
6
- * infers free-text "lenses" dynamically. This file re-exports the lens
7
- * types and provides constants for the HyDE pipeline.
8
- */
9
- import type { HydeTargetCorpus } from './lens.inferrer.js';
10
- export type { Lens, HydeTargetCorpus, LensInferenceInput, LensInferenceOutput } from './lens.inferrer.js';
11
- /** Default cache TTL for ephemeral HyDE documents (1 hour). */
12
- export declare const HYDE_DEFAULT_CACHE_TTL = 3600;
13
- /**
14
- * Prompt templates for HyDE document generation.
15
- * Keyed by target corpus — the lens label provides the semantic specificity.
16
- */
17
- export declare const HYDE_CORPUS_PROMPTS: Record<HydeTargetCorpus, (sourceText: string, lens: string) => string>;