@indexnetwork/protocol 22.0.0-rc.499.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 -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,256 +0,0 @@
1
- import { Annotation } from "@langchain/langgraph";
2
- /**
3
- * Opportunity Graph State Annotation
4
- */
5
- export const OpportunityGraphState = Annotation.Root({
6
- // ─── Input Fields (Required) ───
7
- userId: Annotation({
8
- reducer: (curr, next) => next ?? curr,
9
- default: () => '',
10
- }),
11
- searchQuery: Annotation({
12
- reducer: (curr, next) => next ?? curr,
13
- default: () => undefined,
14
- }),
15
- networkId: Annotation({
16
- reducer: (curr, next) => next ?? curr,
17
- default: () => undefined,
18
- }),
19
- /**
20
- * Optional set of indexes discovery may search within (e.g. a network-scoped
21
- * agent's reachable networks: the bound network plus the user's personal network).
22
- * The scope node intersects this with the user's actual memberships. Ignored
23
- * when `networkId` is set (single-network override). When unset, discovery
24
- * spans all of the user's networks.
25
- */
26
- indexScope: Annotation({
27
- reducer: (curr, next) => next ?? curr,
28
- default: () => undefined,
29
- }),
30
- /** Optional intent to use as discovery source and for triggeredBy. When set, used for search text (if query empty) and persist. */
31
- triggerIntentId: Annotation({
32
- reducer: (curr, next) => next ?? curr,
33
- default: () => undefined,
34
- }),
35
- /** Optional: restrict discovery to this specific user ID only (direct connection). */
36
- targetUserId: Annotation({
37
- reducer: (curr, next) => next ?? curr,
38
- default: () => undefined,
39
- }),
40
- /** Optional: discover on behalf of this user (introducer flow). When set, prep/eval use this user's profile/intents; userId becomes the introducer. */
41
- onBehalfOfUserId: Annotation({
42
- reducer: (curr, next) => next ?? curr,
43
- default: () => undefined,
44
- }),
45
- options: Annotation({
46
- reducer: (curr, next) => next ?? curr,
47
- default: () => ({}),
48
- }),
49
- /**
50
- * Operation mode controls graph flow:
51
- * - 'create': Existing discover pipeline (Prep → Scope → Discovery → Evaluation → Ranking → Persist)
52
- * - 'create_introduction': Introduction path (validation → evaluation → persist) for chat-driven intros
53
- * - 'continue_discovery': Pagination path (Prep → Evaluation → Ranking → Persist) using pre-loaded candidates
54
- * - 'read': List opportunities filtered by userId and optionally networkId (fast path)
55
- * - 'update': Change opportunity status (accept, reject, etc.)
56
- * - 'delete': Expire/archive an opportunity
57
- * - 'send': Promote latent opportunity to pending + queue notification
58
- * - 'negotiate_existing': Load an existing opportunity by opportunityId and run bilateral negotiation.
59
- * Used after introducer approval to trigger the normal negotiation flow.
60
- * - 'approve_introduction': Mark the caller as having approved a latent introducer opportunity,
61
- * then enqueue a negotiate_existing job for that opportunity.
62
- *
63
- * Defaults to 'create' for backward compatibility.
64
- */
65
- operationMode: Annotation({
66
- reducer: (curr, next) => next ?? curr,
67
- default: () => 'create',
68
- }),
69
- /** Introduction mode: pre-gathered entities (profiles + intents per party). */
70
- introductionEntities: Annotation({
71
- reducer: (curr, next) => next ?? curr,
72
- default: () => [],
73
- }),
74
- /** Introduction mode: optional hint from the introducer. */
75
- introductionHint: Annotation({
76
- reducer: (curr, next) => next ?? curr,
77
- default: () => undefined,
78
- }),
79
- /** When set (e.g. chat scope), networkId must match this. */
80
- requiredNetworkId: Annotation({
81
- reducer: (curr, next) => next ?? curr,
82
- default: () => undefined,
83
- }),
84
- /** Set by intro_evaluation; used by persist to build manual detection and introducer actor. */
85
- introductionContext: Annotation({
86
- reducer: (curr, next) => next ?? curr,
87
- default: () => undefined,
88
- }),
89
- /** Target opportunity ID for update/delete/send modes. */
90
- opportunityId: Annotation({
91
- reducer: (curr, next) => next ?? curr,
92
- default: () => undefined,
93
- }),
94
- /** New status for update mode (e.g. 'accepted', 'rejected'). */
95
- newStatus: Annotation({
96
- reducer: (curr, next) => next ?? curr,
97
- default: () => undefined,
98
- }),
99
- // ─── Intermediate Fields (Accumulated) ───
100
- /** User's indexed intents with hyde documents (from prep) */
101
- indexedIntents: Annotation({
102
- reducer: (curr, next) => next ?? curr,
103
- default: () => [],
104
- }),
105
- /** User's network memberships (from prep) */
106
- userNetworks: Annotation({
107
- reducer: (curr, next) => next ?? curr,
108
- default: () => [],
109
- }),
110
- /** Target indexes to search within (from scope) */
111
- targetNetworks: Annotation({
112
- reducer: (curr, next) => next ?? curr,
113
- default: () => [],
114
- }),
115
- /** Per-index relevancy scores for dedup tie-breaking. Background path: from intent_indexes. Chat path: transient from IntentIndexer. */
116
- indexRelevancyScores: Annotation({
117
- reducer: (curr, next) => next ?? curr,
118
- default: () => ({}),
119
- }),
120
- /** Whether discovery used intent (path A) or user context (path B/C). Used by persist for triggeredBy. In-memory routing state only; never persisted. */
121
- discoverySource: Annotation({
122
- reducer: (curr, next) => next ?? curr,
123
- default: () => 'intent',
124
- }),
125
- /** Resolved intent ID used for this discovery run (when discoverySource is 'intent'). Set by intent-resolution. */
126
- resolvedTriggerIntentId: Annotation({
127
- reducer: (curr, next) => next ?? curr,
128
- default: () => undefined,
129
- }),
130
- /** Asker's profile (from prep). Used for profile-as-source discovery and evaluation. */
131
- sourceProfile: Annotation({
132
- reducer: (curr, next) => next ?? curr,
133
- default: () => null,
134
- }),
135
- /** User's active premises with embeddings (from prep). Used for premise-to-premise discovery path D. */
136
- sourcePremises: Annotation({
137
- reducer: (curr, next) => next ?? curr,
138
- default: () => [],
139
- }),
140
- /** User context embeddings per network (from prep). Used for context-to-intent discovery. */
141
- sourceContexts: Annotation({
142
- reducer: (curr, next) => next ?? curr,
143
- default: () => [],
144
- }),
145
- /** Resolved intent is in at least one target index (path A vs C). */
146
- resolvedIntentInIndex: Annotation({
147
- reducer: (curr, next) => next ?? curr,
148
- default: () => false,
149
- }),
150
- /** Create-intent signal: when true, tool should return createIntentSuggested so agent can auto-call create_intent. */
151
- createIntentSuggested: Annotation({
152
- reducer: (curr, next) => next ?? curr,
153
- default: () => false,
154
- }),
155
- /** Suggested description for create_intent when createIntentSuggested is true. */
156
- suggestedIntentDescription: Annotation({
157
- reducer: (curr, next) => next ?? curr,
158
- default: () => undefined,
159
- }),
160
- /** HyDE embeddings per lens label (from discovery) */
161
- hydeEmbeddings: Annotation({
162
- reducer: (curr, next) => next ?? curr,
163
- default: () => ({}),
164
- }),
165
- /** Candidate matches from semantic search (from discovery) */
166
- candidates: Annotation({
167
- reducer: (curr, next) => next ?? curr,
168
- default: () => [],
169
- }),
170
- /** Candidates not yet evaluated (for pagination -- cached in Redis by caller). */
171
- remainingCandidates: Annotation({
172
- reducer: (curr, next) => next ?? curr,
173
- default: () => [],
174
- }),
175
- /** Discovery session ID for pagination (maps to Redis cache key). */
176
- discoveryId: Annotation({
177
- reducer: (curr, next) => next ?? curr,
178
- default: () => null,
179
- }),
180
- /** Evaluated candidates with scores (from evaluation; legacy) */
181
- evaluatedCandidates: Annotation({
182
- reducer: (curr, next) => next ?? curr,
183
- default: () => [],
184
- }),
185
- /** Evaluated opportunities with actors (from entity-bundle evaluator) */
186
- evaluatedOpportunities: Annotation({
187
- reducer: (curr, next) => next ?? curr,
188
- default: () => [],
189
- }),
190
- // ─── Output Fields (Overwrite per turn) ───
191
- /** Final ranked and persisted opportunities */
192
- opportunities: Annotation({
193
- reducer: (curr, next) => next,
194
- default: () => [],
195
- }),
196
- /** Discovery path: pairs skipped because an opportunity already exists between viewer and candidate (no duplicate created). */
197
- existingBetweenActors: Annotation({
198
- reducer: (curr, next) => next ?? curr,
199
- default: () => [],
200
- }),
201
- /** Typed persist-node counts used by queue telemetry. */
202
- persistenceOutcome: Annotation({
203
- reducer: (curr, next) => next ?? curr,
204
- default: () => undefined,
205
- }),
206
- /** Positive exact-successor receipt for a fenced continuation. */
207
- negotiationContinuationReceipt: Annotation({
208
- reducer: (curr, next) => next ?? curr,
209
- default: () => undefined,
210
- }),
211
- /** Error message if any step fails */
212
- error: Annotation({
213
- reducer: (curr, next) => next,
214
- default: () => undefined,
215
- }),
216
- /** Output for read mode: enriched list of opportunities. */
217
- readResult: Annotation({
218
- reducer: (curr, next) => next,
219
- default: () => undefined,
220
- }),
221
- /** Output for update/delete/send modes. */
222
- mutationResult: Annotation({
223
- reducer: (curr, next) => next,
224
- default: () => undefined,
225
- }),
226
- // ─── Trace Output ───
227
- /**
228
- * Accumulated trace entries from each graph node.
229
- * Used for observability: surfaces internal processing steps (search query, HyDE strategies,
230
- * candidates found, evaluation results) to the frontend.
231
- */
232
- trace: Annotation({
233
- reducer: (curr, next) => [...curr, ...(next || [])],
234
- default: () => [],
235
- }),
236
- /** Timing records for each agent invocation within this graph run. */
237
- agentTimings: Annotation({
238
- reducer: (acc, val) => [...acc, ...val],
239
- default: () => [],
240
- }),
241
- /**
242
- * Per-candidate negotiation records captured by `negotiateNode`. Populated
243
- * regardless of accept/reject so the question generator sees a complete
244
- * picture. Empty when the negotiate node was skipped (no opportunities to
245
- * negotiate).
246
- */
247
- discoveryNegotiations: Annotation({
248
- reducer: (curr, next) => [...curr, ...(next || [])],
249
- default: () => [],
250
- }),
251
- /** Aggregate counters across `discoveryNegotiations`. Built in the negotiate node. */
252
- discoverySummary: Annotation({
253
- reducer: (_curr, next) => next ?? null,
254
- default: () => null,
255
- }),
256
- });
@@ -1,138 +0,0 @@
1
- /**
2
- * Card rendering and link minting for the opportunity tools.
3
- *
4
- * These are the pieces both `list_opportunities` and the mutation tools reach
5
- * for: the deep links, the minimal fallback card, and the small guards that
6
- * shape tool error payloads.
7
- */
8
- import { type OpportunityOwnerAction, type OpportunityOwnerApprovalVerdict } from "./opportunity.owner-approval.js";
9
- export declare function stripLeadingNarratorName(remark: string, narratorName: string): string;
10
- import type { Opportunity } from "../shared/interfaces/database.interface.js";
11
- export declare const logger: import("../shared/observability/log.js").LoggerWithSource;
12
- /**
13
- * Build the agent-facing profile link for a counterpart — always the Index web
14
- * profile URL with `?link_preview=false`. Returns `undefined` only if
15
- * `frontendUrl` is not configured.
16
- *
17
- * The `?link_preview=false` hint is honored by chat-gateway runtimes (e.g.
18
- * OpenClaw's Telegram delivery) that strip link previews when present in the
19
- * URL; consistent placement matters more than Telegram's own handling.
20
- *
21
- * Trailing slashes on frontendUrl are stripped before concatenation.
22
- */
23
- export declare function buildProfileUrl(counterpartUserId: string, frontendUrl: string | undefined): string | undefined;
24
- /**
25
- * Build the deep-link to an opportunity's A2A negotiation trace
26
- * (`/chat/:conversationId`) so users can see *what negotiation led to* the
27
- * surfaced opportunity (EDG-50/EDG-51). Returns `undefined` when `frontendUrl`
28
- * is unset or there is no negotiation conversation to link to.
29
- *
30
- * The `?link_preview=false` hint mirrors `buildProfileUrl` — chat-gateway
31
- * runtimes (e.g. Telegram delivery) strip link previews when it is present.
32
- * Trailing slashes on `frontendUrl` are stripped before concatenation.
33
- */
34
- export declare function buildNegotiationUrl(conversationId: string | undefined, frontendUrl: string | undefined): string | undefined;
35
- /**
36
- * Build the agent-facing deep link for an opportunity — the canonical
37
- * `https://index.network/o/<id>` universal link. Returns `undefined` when
38
- * `frontendUrl` is unset or there is no opportunity id.
39
- *
40
- * This is the *only* place the protocol mints an opportunity deep link. It is
41
- * a navigation link, not an authority: opening it raises the opportunity card
42
- * in the Index macOS app when installed and a static Index landing page
43
- * otherwise. Acceptance stays an authenticated call.
44
- *
45
- * No `?link_preview=false` hint here (unlike `buildProfileUrl`): the Hermes
46
- * plugin mints the identical bare form for payloads the protocol does not
47
- * touch, and keeping the two byte-identical is what makes its never-overwrite
48
- * rule invisible.
49
- */
50
- export declare function buildOpportunityAppUrl(opportunityId: string, frontendUrl: string | undefined): string | undefined;
51
- /**
52
- * Attach the agent-facing profile link for a counterpart to `card` (mutates
53
- * in place). Every counterpart has a profile page worth linking to — without
54
- * this, the agent gets a name with no URL attached and tends to fabricate
55
- * one. Accept/act guidance is plain text ("accept in the Index app"); no
56
- * actionable URLs are minted here.
57
- */
58
- export declare function attachProfileLink(card: Record<string, unknown> & {
59
- opportunityId: string;
60
- }, opts: {
61
- counterpartUserId: string;
62
- frontendUrl: string | undefined;
63
- }): void;
64
- /**
65
- * Attach the opportunity deep link to `card` (mutates in place) so every MCP
66
- * client — Claude Desktop, the CLI, the web, Hermes — can hand the user one
67
- * clickable link to the card instead of fabricating one from an id.
68
- */
69
- export declare function attachOpportunityAppLink(card: Record<string, unknown> & {
70
- opportunityId: string;
71
- }, opts: {
72
- frontendUrl: string | undefined;
73
- }): void;
74
- /**
75
- * IND-593: stable fail-closed denial for the owner-approval boundary. The
76
- * `missing` reason carries the fresh, server-derived interaction challenge the
77
- * owner must explicitly approve; all other reasons carry no challenge.
78
- */
79
- export declare function ownerApprovalDenial(opportunityId: string, action: OpportunityOwnerAction, verdict: Extract<OpportunityOwnerApprovalVerdict, {
80
- kind: 'denied';
81
- }>): string;
82
- /**
83
- * Maximum number of opportunity cards to show per chat response.
84
- * Sized for `selectByComposition` to fill both feed buckets — up to 3
85
- * connection + 3 connector-flow per the digest/ambient prompt rules.
86
- */
87
- export declare const CHAT_DISPLAY_LIMIT = 6;
88
- /**
89
- * Build minimal opportunity card data for chat without calling the LLM presenter.
90
- * Uses only required fields from the opportunity record and counterpart name/avatar
91
- * so list_opportunities and discovery return quickly.
92
- *
93
- * Note: narratorChip.text is generated via regex heuristics (narratorRemarkFromReasoning)
94
- * rather than the OpportunityPresenter LLM. If narrator quality becomes an issue again,
95
- * consider making this function async and delegating to OpportunityPresenter.presentCard()
96
- * which already produces a high-quality narratorRemark via LLM (used by the home graph
97
- * and discovery pipeline). The trade-off is 5-20s latency per card.
98
- *
99
- * Exported for use in tests (opportunity.tools.spec.ts).
100
- */
101
- export declare function buildMinimalOpportunityCard(opp: Opportunity, viewerId: string, counterpartUserId: string, counterpartName: string, counterpartAvatar: string | null, introducerName?: string | null, introducerAvatar?: string | null, viewerName?: string, secondPartyName?: string, secondPartyAvatar?: string | null, secondPartyUserId?: string): {
102
- opportunityId: string;
103
- userId: string;
104
- name: string;
105
- avatar: string | null;
106
- mainText: string;
107
- cta: string;
108
- headline: string;
109
- primaryActionLabel: string;
110
- secondaryActionLabel: string;
111
- mutualIntentsLabel: string;
112
- narratorChip: {
113
- name: string;
114
- text: string;
115
- avatar?: string | null;
116
- userId?: string;
117
- };
118
- viewerRole: string;
119
- score: number | undefined;
120
- status: string;
121
- secondParty?: {
122
- name: string;
123
- avatar?: string | null;
124
- userId?: string;
125
- };
126
- };
127
- /**
128
- * Stable, retry-classified error codes for `confirm_opportunity_delivery`.
129
- *
130
- * The plain `error()` envelope only carries a human message, which forced
131
- * callers (the Hermes digest sweep) to treat every failure — permanent or
132
- * transient — as retryable, and made "already delivered but never confirmed"
133
- * impossible to distinguish from "opportunity deleted". Each code carries an
134
- * explicit `retryable` flag so deterministic callers can retry transient
135
- * failures and drop permanent ones instead of re-spamming the ledger.
136
- */
137
- export type ConfirmDeliveryErrorCode = "unauthenticated" | "ledger_unavailable" | "invalid_opportunity_id" | "opportunity_not_found" | "not_authorized" | "confirm_failed";
138
- export declare function confirmDeliveryError(code: ConfirmDeliveryErrorCode, retryable: boolean, message: string): string;
@@ -1,212 +0,0 @@
1
- /**
2
- * Card rendering and link minting for the opportunity tools.
3
- *
4
- * These are the pieces both `list_opportunities` and the mutation tools reach
5
- * for: the deep links, the minimal fallback card, and the small guards that
6
- * shape tool error payloads.
7
- */
8
- import { MINIMAL_MAIN_TEXT_MAX_CHARS, getPrimaryActionLabel, SECONDARY_ACTION_LABEL } from "./opportunity.labels.js";
9
- import { narratorRemarkFromReasoning, safeFallbackSummary } from "./opportunity.presentation.js";
10
- export function stripLeadingNarratorName(remark, narratorName) {
11
- let t = remark.trim();
12
- if (!t || !narratorName.trim())
13
- return remark;
14
- const name = narratorName.trim();
15
- const nameLower = name.toLowerCase();
16
- for (;;) {
17
- const lower = t.toLowerCase();
18
- if (!lower.startsWith(nameLower))
19
- break;
20
- // Require a word boundary after the name so a short name like "Al" does not
21
- // mangle a longer word ("Always …" → "ways …"). The char after the name must
22
- // be a separator (sentence/clause punctuation or whitespace) or end of string.
23
- // Keep this set in sync with the separator stripped from `rest` below.
24
- const boundary = t.charAt(name.length);
25
- if (boundary && !/[\s.:,\-–—]/.test(boundary))
26
- break;
27
- const rest = t.slice(name.length).replace(/^\s*[.:,\-–—]\s*/i, '').trim();
28
- if (rest.length === 0 || rest === t)
29
- break;
30
- t = rest;
31
- }
32
- return t;
33
- }
34
- import { protocolLogger } from "../shared/observability/protocol.logger.js";
35
- export const logger = protocolLogger("ChatTools:Opportunity");
36
- /**
37
- * Build the agent-facing profile link for a counterpart — always the Index web
38
- * profile URL with `?link_preview=false`. Returns `undefined` only if
39
- * `frontendUrl` is not configured.
40
- *
41
- * The `?link_preview=false` hint is honored by chat-gateway runtimes (e.g.
42
- * OpenClaw's Telegram delivery) that strip link previews when present in the
43
- * URL; consistent placement matters more than Telegram's own handling.
44
- *
45
- * Trailing slashes on frontendUrl are stripped before concatenation.
46
- */
47
- export function buildProfileUrl(counterpartUserId, frontendUrl) {
48
- // The profile link is always the Index web profile, regardless of the
49
- // counterpart's socials.
50
- if (!frontendUrl)
51
- return undefined;
52
- const base = frontendUrl.replace(/\/+$/, "");
53
- return `${base}/u/${counterpartUserId}?link_preview=false`;
54
- }
55
- /**
56
- * Build the deep-link to an opportunity's A2A negotiation trace
57
- * (`/chat/:conversationId`) so users can see *what negotiation led to* the
58
- * surfaced opportunity (EDG-50/EDG-51). Returns `undefined` when `frontendUrl`
59
- * is unset or there is no negotiation conversation to link to.
60
- *
61
- * The `?link_preview=false` hint mirrors `buildProfileUrl` — chat-gateway
62
- * runtimes (e.g. Telegram delivery) strip link previews when it is present.
63
- * Trailing slashes on `frontendUrl` are stripped before concatenation.
64
- */
65
- export function buildNegotiationUrl(conversationId, frontendUrl) {
66
- if (!frontendUrl || !conversationId)
67
- return undefined;
68
- const base = frontendUrl.replace(/\/+$/, "");
69
- return `${base}/chat/${conversationId}?link_preview=false`;
70
- }
71
- /**
72
- * Build the agent-facing deep link for an opportunity — the canonical
73
- * `https://index.network/o/<id>` universal link. Returns `undefined` when
74
- * `frontendUrl` is unset or there is no opportunity id.
75
- *
76
- * This is the *only* place the protocol mints an opportunity deep link. It is
77
- * a navigation link, not an authority: opening it raises the opportunity card
78
- * in the Index macOS app when installed and a static Index landing page
79
- * otherwise. Acceptance stays an authenticated call.
80
- *
81
- * No `?link_preview=false` hint here (unlike `buildProfileUrl`): the Hermes
82
- * plugin mints the identical bare form for payloads the protocol does not
83
- * touch, and keeping the two byte-identical is what makes its never-overwrite
84
- * rule invisible.
85
- */
86
- export function buildOpportunityAppUrl(opportunityId, frontendUrl) {
87
- if (!frontendUrl || !opportunityId)
88
- return undefined;
89
- const base = frontendUrl.replace(/\/+$/, "");
90
- return `${base}/o/${opportunityId}`;
91
- }
92
- /**
93
- * Attach the agent-facing profile link for a counterpart to `card` (mutates
94
- * in place). Every counterpart has a profile page worth linking to — without
95
- * this, the agent gets a name with no URL attached and tends to fabricate
96
- * one. Accept/act guidance is plain text ("accept in the Index app"); no
97
- * actionable URLs are minted here.
98
- */
99
- export function attachProfileLink(card, opts) {
100
- const profileUrl = buildProfileUrl(opts.counterpartUserId, opts.frontendUrl);
101
- if (profileUrl)
102
- card.profileUrl = profileUrl;
103
- }
104
- /**
105
- * Attach the opportunity deep link to `card` (mutates in place) so every MCP
106
- * client — Claude Desktop, the CLI, the web, Hermes — can hand the user one
107
- * clickable link to the card instead of fabricating one from an id.
108
- */
109
- export function attachOpportunityAppLink(card, opts) {
110
- const appUrl = buildOpportunityAppUrl(card.opportunityId, opts.frontendUrl);
111
- if (appUrl)
112
- card.appUrl = appUrl;
113
- }
114
- /**
115
- * IND-593: stable fail-closed denial for the owner-approval boundary. The
116
- * `missing` reason carries the fresh, server-derived interaction challenge the
117
- * owner must explicitly approve; all other reasons carry no challenge.
118
- */
119
- export function ownerApprovalDenial(opportunityId, action, verdict) {
120
- return JSON.stringify({
121
- success: false,
122
- error: `Owner approval required for this opportunity ${action} (${verdict.reason}).`,
123
- approval: {
124
- code: "owner_approval_required",
125
- reason: verdict.reason,
126
- opportunityId,
127
- action,
128
- ...(verdict.challenge
129
- ? { interactionId: verdict.challenge.interactionId, expiresAt: verdict.challenge.expiresAt }
130
- : {}),
131
- },
132
- });
133
- }
134
- /**
135
- * Maximum number of opportunity cards to show per chat response.
136
- * Sized for `selectByComposition` to fill both feed buckets — up to 3
137
- * connection + 3 connector-flow per the digest/ambient prompt rules.
138
- */
139
- export const CHAT_DISPLAY_LIMIT = 6;
140
- /**
141
- * Build minimal opportunity card data for chat without calling the LLM presenter.
142
- * Uses only required fields from the opportunity record and counterpart name/avatar
143
- * so list_opportunities and discovery return quickly.
144
- *
145
- * Note: narratorChip.text is generated via regex heuristics (narratorRemarkFromReasoning)
146
- * rather than the OpportunityPresenter LLM. If narrator quality becomes an issue again,
147
- * consider making this function async and delegating to OpportunityPresenter.presentCard()
148
- * which already produces a high-quality narratorRemark via LLM (used by the home graph
149
- * and discovery pipeline). The trade-off is 5-20s latency per card.
150
- *
151
- * Exported for use in tests (opportunity.tools.spec.ts).
152
- */
153
- export function buildMinimalOpportunityCard(opp, viewerId, counterpartUserId, counterpartName, counterpartAvatar, introducerName, introducerAvatar, viewerName, secondPartyName, secondPartyAvatar, secondPartyUserId) {
154
- const viewerActor = opp.actors.find((a) => a.userId === viewerId);
155
- const viewerRole = viewerActor?.role ?? "party";
156
- const introducerActor = opp.actors.find((a) => a.role === "introducer" && a.userId !== viewerId);
157
- const viewerIsIntroducer = opp.actors.some((a) => a.role === "introducer" && a.userId === viewerId);
158
- const reasoning = opp.interpretation?.reasoning ?? "";
159
- // Shared sanitization standard — see opportunity.safe-presentation.ts.
160
- const mainText = safeFallbackSummary(reasoning, {
161
- counterpartName,
162
- viewerName,
163
- introducerName: introducerName ?? undefined,
164
- maxChars: MINIMAL_MAIN_TEXT_MAX_CHARS,
165
- emptyText: "A suggested connection.",
166
- });
167
- const score = typeof opp.interpretation?.confidence === "number"
168
- ? opp.interpretation.confidence
169
- : undefined;
170
- const narratorName = viewerIsIntroducer
171
- ? "You"
172
- : introducerName?.trim() || (introducerActor ? "Someone" : "Index");
173
- const primaryActionLabel = getPrimaryActionLabel(viewerRole);
174
- return {
175
- opportunityId: opp.id,
176
- userId: counterpartUserId,
177
- name: counterpartName,
178
- avatar: counterpartAvatar,
179
- mainText,
180
- cta: "Start a conversation to connect.",
181
- headline: viewerIsIntroducer && secondPartyName
182
- ? `${counterpartName} → ${secondPartyName}`
183
- : `Connection with ${counterpartName}`,
184
- primaryActionLabel,
185
- secondaryActionLabel: SECONDARY_ACTION_LABEL,
186
- mutualIntentsLabel: "Suggested connection",
187
- narratorChip: {
188
- name: narratorName,
189
- text: narratorRemarkFromReasoning(reasoning, counterpartName, viewerName),
190
- ...(viewerIsIntroducer
191
- ? { userId: viewerId, avatar: null }
192
- : introducerActor
193
- ? { userId: introducerActor.userId, avatar: introducerAvatar ?? null }
194
- : {}),
195
- },
196
- viewerRole,
197
- score,
198
- status: opp.status ?? "latent",
199
- ...(viewerIsIntroducer && secondPartyName
200
- ? {
201
- secondParty: {
202
- name: secondPartyName,
203
- ...(secondPartyAvatar != null ? { avatar: secondPartyAvatar } : {}),
204
- ...(secondPartyUserId ? { userId: secondPartyUserId } : {}),
205
- },
206
- }
207
- : {}),
208
- };
209
- }
210
- export function confirmDeliveryError(code, retryable, message) {
211
- return JSON.stringify({ success: false, error: message, code, retryable });
212
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * The opportunity tool registry: list, update, and delivery confirmation.
3
- *
4
- * `list_opportunities` lives in `opportunity.tools.list.ts` and the shared card
5
- * and link helpers in `opportunity.tools.cards.ts`; this file wires the three
6
- * tools together and owns the two mutation tools.
7
- */
8
- import type { DefineTool } from "../shared/agent/tool.helpers.js";
9
- import type { OpportunityToolDeps } from "./opportunity.tools.port.js";
10
- export { buildOpportunityPresentation } from "./opportunity.presentation.js";
11
- export { attachOpportunityAppLink, attachProfileLink, buildMinimalOpportunityCard, buildNegotiationUrl, buildOpportunityAppUrl, buildProfileUrl } from "./opportunity.tools.cards.js";
12
- export declare function createOpportunityTools(defineTool: DefineTool, deps: OpportunityToolDeps): readonly [any, any, any];