@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
@@ -9,162 +9,103 @@ export interface ModelSettings {
9
9
  temperature?: number;
10
10
  maxTokens?: number;
11
11
  reasoning?: {
12
- effort?: 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
12
+ effort?: 'low' | 'medium' | 'high';
13
13
  exclude?: boolean;
14
14
  };
15
15
  }
16
16
  /**
17
17
  * Runtime configuration for the protocol package.
18
- * When passed via `ToolContext.modelConfig`, all fields (`apiKey`, `baseURL`, `chatModel`,
18
+ * When passed explicitly, all fields (`apiKey`, `baseURL`, `chatModel`,
19
19
  * `chatReasoningEffort`) are honored by `ChatAgent` when the chat graph runs.
20
- * Other protocol agents don't read from `ToolContext` but may accept an explicit `ModelConfig`
20
+ * Other protocol agents may accept an explicit `ModelConfig`
21
21
  * as a direct parameter to `createModel()`.
22
22
  * All fields fall back to environment variables if not provided.
23
23
  */
24
24
  export interface ModelConfig {
25
25
  /** OpenRouter API key. Falls back to OPENROUTER_API_KEY env var. */
26
26
  apiKey?: string;
27
- /** OpenRouter base URL. Falls back to OPENROUTER_BASE_URL env var. */
27
+ /** OpenRouter base URL. Defaults to {@link OPENROUTER_BASE_URL}. */
28
28
  baseURL?: string;
29
29
  /** Override the chat agent model. Falls back to CHAT_MODEL env var. */
30
30
  chatModel?: string;
31
31
  /** Override the chat reasoning effort. Falls back to CHAT_REASONING_EFFORT env var. */
32
- chatReasoningEffort?: 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
32
+ chatReasoningEffort?: 'low' | 'medium' | 'high';
33
33
  }
34
34
  /** Per-agent model settings before canonical assignments are applied. */
35
- declare function getBaseModelConfig(config?: ModelConfig): { [Agent in "intentInferrer" | "intentIndexer" | "intentVerifier" | "intentReconciler" | "intentClarifier" | "profileGenerator" | "hydeGenerator" | "hydeValidator" | "lensInferrer" | "opportunityEvaluator" | "opportunityPresenter" | "negotiator" | "negotiationScreener" | "negotiationReflector" | "homeCategorizer" | "suggestionGenerator" | "chatTitleGenerator" | "negotiationInsights" | "chatContextSummarizer" | "questioner" | "signalIntakePack" | "negotiationSummarizer" | "poolDiscriminatorMiner" | "poolDiscriminatorAssigner" | "negotiationEvidenceMiner" | "inviteGenerator" | "premiseAnalyzer" | "premiseDecomposer" | "premiseIndexer" | "userContextGenerator" | "networkRecommender" | "interruptClassifier" | "chat"]: Omit<{
35
+ declare function getBaseModelConfig(config?: ModelConfig): { [Agent in "intentInferrer" | "intentVerifier" | "intentClarifier" | "profileGenerator" | "opportunityPresenter" | "negotiator" | "negotiationReflector" | "homeCategorizer" | "suggestionGenerator" | "chatTitleGenerator" | "negotiationInsights" | "chatContextSummarizer" | "negotiationSummarizer" | "inviteGenerator" | "userContextGenerator" | "networkRecommender" | "interruptClassifier" | "chat"]: Omit<{
36
36
  readonly intentInferrer: {
37
- readonly model: "google/gemini-2.5-flash";
38
- };
39
- readonly intentIndexer: {
40
- readonly model: "google/gemini-2.5-flash";
37
+ readonly model: "google/gemini-3.7-flash";
41
38
  };
42
39
  readonly intentVerifier: {
43
- readonly model: "google/gemini-2.5-flash";
44
- };
45
- readonly intentReconciler: {
46
- readonly model: "google/gemini-2.5-flash";
40
+ readonly model: "google/gemini-3.7-flash";
47
41
  };
48
42
  readonly intentClarifier: {
49
- readonly model: "google/gemini-2.5-flash";
43
+ readonly model: "google/gemini-3.7-flash";
50
44
  };
51
45
  readonly profileGenerator: {
52
- readonly model: "google/gemini-2.5-flash";
53
- };
54
- readonly hydeGenerator: {
55
- readonly model: "google/gemini-2.5-flash";
56
- };
57
- readonly hydeValidator: {
58
- readonly model: "google/gemini-2.5-flash";
59
- readonly temperature: 0;
60
- readonly maxTokens: 2048;
61
- };
62
- readonly lensInferrer: {
63
- readonly model: "google/gemini-2.5-flash";
64
- };
65
- readonly opportunityEvaluator: {
66
- readonly model: "google/gemini-2.5-flash";
46
+ readonly model: "google/gemini-3.7-flash";
67
47
  };
68
48
  readonly opportunityPresenter: {
69
- readonly model: "google/gemini-2.5-flash";
49
+ readonly model: "google/gemini-3.7-flash";
70
50
  };
71
51
  readonly negotiator: {
72
- readonly model: "google/gemini-2.5-flash";
73
- };
74
- readonly negotiationScreener: {
75
- readonly model: "google/gemini-2.5-flash";
76
- readonly temperature: 0.2;
77
- readonly maxTokens: 1024;
52
+ readonly model: "google/gemini-3.7-flash";
78
53
  };
79
54
  readonly negotiationReflector: {
80
- readonly model: "google/gemini-2.5-flash";
55
+ readonly model: "google/gemini-3.7-flash";
81
56
  readonly temperature: 0.3;
82
57
  readonly maxTokens: 2048;
83
58
  };
84
59
  readonly homeCategorizer: {
85
- readonly model: "google/gemini-2.5-flash";
60
+ readonly model: "google/gemini-3.7-flash";
86
61
  };
87
62
  readonly suggestionGenerator: {
88
- readonly model: "google/gemini-2.5-flash";
63
+ readonly model: "google/gemini-3.7-flash";
89
64
  readonly temperature: 0.4;
90
65
  readonly maxTokens: 512;
91
66
  };
92
67
  readonly chatTitleGenerator: {
93
- readonly model: "google/gemini-2.5-flash";
68
+ readonly model: "google/gemini-3.7-flash";
94
69
  readonly temperature: 0.3;
95
70
  readonly maxTokens: 32;
96
71
  };
97
72
  readonly negotiationInsights: {
98
- readonly model: "google/gemini-2.5-flash";
73
+ readonly model: "google/gemini-3.7-flash";
99
74
  readonly temperature: 0.4;
100
75
  readonly maxTokens: 512;
101
76
  };
102
77
  readonly chatContextSummarizer: {
103
- readonly model: "google/gemini-2.5-flash";
78
+ readonly model: "google/gemini-3.7-flash";
104
79
  readonly temperature: 0.2;
105
80
  readonly maxTokens: 512;
106
81
  };
107
- readonly questioner: {
108
- readonly model: "google/gemini-2.5-flash";
109
- readonly temperature: 0.5;
110
- readonly maxTokens: 1024;
111
- };
112
- readonly signalIntakePack: {
113
- readonly model: "google/gemini-2.5-flash";
114
- readonly temperature: 0.3;
115
- readonly maxTokens: 1024;
116
- };
117
82
  readonly negotiationSummarizer: {
118
- readonly model: "google/gemini-2.5-flash";
83
+ readonly model: "google/gemini-3.7-flash";
119
84
  readonly temperature: 0.2;
120
85
  readonly maxTokens: 256;
121
86
  };
122
- readonly poolDiscriminatorMiner: {
123
- readonly model: "google/gemini-2.5-flash";
124
- readonly temperature: 0.2;
125
- readonly maxTokens: 4096;
126
- };
127
- readonly poolDiscriminatorAssigner: {
128
- readonly model: "google/gemini-2.5-flash";
129
- readonly temperature: 0.1;
130
- readonly maxTokens: 16384;
131
- };
132
- readonly negotiationEvidenceMiner: {
133
- readonly model: "google/gemini-2.5-flash";
134
- readonly temperature: 0.2;
135
- readonly maxTokens: 4096;
136
- };
137
87
  readonly inviteGenerator: {
138
- readonly model: "google/gemini-2.5-flash";
88
+ readonly model: "google/gemini-3.7-flash";
139
89
  readonly temperature: 0.3;
140
90
  readonly maxTokens: 512;
141
91
  };
142
- readonly premiseAnalyzer: {
143
- readonly model: "google/gemini-2.5-flash";
144
- };
145
- readonly premiseDecomposer: {
146
- readonly model: "google/gemini-2.5-flash";
147
- };
148
- readonly premiseIndexer: {
149
- readonly model: "google/gemini-2.5-flash";
150
- };
151
92
  readonly userContextGenerator: {
152
- readonly model: "google/gemini-2.5-flash";
93
+ readonly model: "google/gemini-3.7-flash";
153
94
  readonly temperature: 0.3;
154
95
  readonly maxTokens: 512;
155
96
  };
156
97
  readonly networkRecommender: {
157
- readonly model: "google/gemini-2.5-flash";
98
+ readonly model: "google/gemini-3.7-flash";
158
99
  readonly temperature: 0.2;
159
100
  readonly maxTokens: 512;
160
101
  };
161
102
  readonly interruptClassifier: {
162
- readonly model: "google/gemini-2.5-flash";
103
+ readonly model: "google/gemini-3.7-flash";
163
104
  readonly temperature: 0;
164
105
  readonly maxTokens: 16;
165
106
  };
166
107
  readonly chat: {
167
- readonly model: "google/gemini-3-pro-preview";
108
+ readonly model: "google/gemini-3.7-flash";
168
109
  readonly maxTokens: 8192;
169
110
  readonly reasoning: {
170
111
  readonly effort: NonNullable<ModelSettings["reasoning"]>["effort"];
@@ -201,9 +142,10 @@ export declare function createFallbackModel(agent: ModelAgent, config?: ModelCon
201
142
  * plus `.withRetry(...)` and `.withFallbacks([...])`.
202
143
  *
203
144
  * Retry covers transient provider errors *and* schema parse/validation
204
- * failures; the fallback model (see OPENROUTER_FALLBACK_MODEL) is bound to the
205
- * same schema so a provider outage degrades to a different vendor instead of
206
- * failing the call. Abort signals pass through: aborts are never retried and
145
+ * failures; the fallback model (see FALLBACK_MODEL_BY_TIER) is bound to the
146
+ * same schema so a provider outage or rate limit degrades to the previous
147
+ * generation of the same tier instead of failing the call. Abort signals
148
+ * pass through: aborts are never retried and
207
149
  * skip the fallback.
208
150
  *
209
151
  * @param agent - Key identifying which agent's model settings to use.
@@ -1,42 +1,28 @@
1
1
  import { ChatOpenAI } from "@langchain/openai";
2
2
  import { resolveCanonicalAllAgentModels } from "./model.resolver.js";
3
+ const GEMINI_3_7_FLASH_MODEL = "google/gemini-3.7-flash";
3
4
  /** Per-agent model settings before canonical assignments are applied. */
4
5
  function getBaseModelConfig(config) {
5
6
  const settings = {
6
- intentInferrer: { model: "google/gemini-2.5-flash" },
7
- intentIndexer: { model: "google/gemini-2.5-flash" },
8
- intentVerifier: { model: "google/gemini-2.5-flash" },
9
- intentReconciler: { model: "google/gemini-2.5-flash" },
10
- intentClarifier: { model: "google/gemini-2.5-flash" },
11
- profileGenerator: { model: "google/gemini-2.5-flash" },
12
- hydeGenerator: { model: "google/gemini-2.5-flash" },
13
- hydeValidator: { model: "google/gemini-2.5-flash", temperature: 0.0, maxTokens: 2048 },
14
- lensInferrer: { model: "google/gemini-2.5-flash" },
15
- opportunityEvaluator: { model: "google/gemini-2.5-flash" },
16
- opportunityPresenter: { model: "google/gemini-2.5-flash" },
17
- negotiator: { model: "google/gemini-2.5-flash" },
18
- negotiationScreener: { model: "google/gemini-2.5-flash", temperature: 0.2, maxTokens: 1024 },
19
- negotiationReflector: { model: "google/gemini-2.5-flash", temperature: 0.3, maxTokens: 2048 },
20
- homeCategorizer: { model: "google/gemini-2.5-flash" },
21
- suggestionGenerator: { model: "google/gemini-2.5-flash", temperature: 0.4, maxTokens: 512 },
22
- chatTitleGenerator: { model: "google/gemini-2.5-flash", temperature: 0.3, maxTokens: 32 },
23
- negotiationInsights: { model: "google/gemini-2.5-flash", temperature: 0.4, maxTokens: 512 },
24
- chatContextSummarizer: { model: "google/gemini-2.5-flash", temperature: 0.2, maxTokens: 512 },
25
- questioner: { model: "google/gemini-2.5-flash", temperature: 0.5, maxTokens: 1024 },
26
- signalIntakePack: { model: "google/gemini-2.5-flash", temperature: 0.3, maxTokens: 1024 },
27
- negotiationSummarizer: { model: "google/gemini-2.5-flash", temperature: 0.2, maxTokens: 256 },
28
- poolDiscriminatorMiner: { model: "google/gemini-2.5-flash", temperature: 0.2, maxTokens: 4096 },
29
- poolDiscriminatorAssigner: { model: "google/gemini-2.5-flash", temperature: 0.1, maxTokens: 16384 },
30
- negotiationEvidenceMiner: { model: "google/gemini-2.5-flash", temperature: 0.2, maxTokens: 4096 },
31
- inviteGenerator: { model: "google/gemini-2.5-flash", temperature: 0.3, maxTokens: 512 },
32
- premiseAnalyzer: { model: "google/gemini-2.5-flash" },
33
- premiseDecomposer: { model: "google/gemini-2.5-flash" },
34
- premiseIndexer: { model: "google/gemini-2.5-flash" },
35
- userContextGenerator: { model: "google/gemini-2.5-flash", temperature: 0.3, maxTokens: 512 },
36
- networkRecommender: { model: "google/gemini-2.5-flash", temperature: 0.2, maxTokens: 512 },
37
- interruptClassifier: { model: "google/gemini-2.5-flash", temperature: 0.0, maxTokens: 16 },
7
+ intentInferrer: { model: "google/gemini-3.7-flash" },
8
+ intentVerifier: { model: "google/gemini-3.7-flash" },
9
+ intentClarifier: { model: "google/gemini-3.7-flash" },
10
+ profileGenerator: { model: "google/gemini-3.7-flash" },
11
+ opportunityPresenter: { model: "google/gemini-3.7-flash" },
12
+ negotiator: { model: "google/gemini-3.7-flash" },
13
+ negotiationReflector: { model: "google/gemini-3.7-flash", temperature: 0.3, maxTokens: 2048 },
14
+ homeCategorizer: { model: "google/gemini-3.7-flash" },
15
+ suggestionGenerator: { model: "google/gemini-3.7-flash", temperature: 0.4, maxTokens: 512 },
16
+ chatTitleGenerator: { model: "google/gemini-3.7-flash", temperature: 0.3, maxTokens: 32 },
17
+ negotiationInsights: { model: "google/gemini-3.7-flash", temperature: 0.4, maxTokens: 512 },
18
+ chatContextSummarizer: { model: "google/gemini-3.7-flash", temperature: 0.2, maxTokens: 512 },
19
+ negotiationSummarizer: { model: "google/gemini-3.7-flash", temperature: 0.2, maxTokens: 256 },
20
+ inviteGenerator: { model: "google/gemini-3.7-flash", temperature: 0.3, maxTokens: 512 },
21
+ userContextGenerator: { model: "google/gemini-3.7-flash", temperature: 0.3, maxTokens: 512 },
22
+ networkRecommender: { model: "google/gemini-3.7-flash", temperature: 0.2, maxTokens: 512 },
23
+ interruptClassifier: { model: "google/gemini-3.7-flash", temperature: 0.0, maxTokens: 16 },
38
24
  chat: {
39
- model: "google/gemini-3-pro-preview",
25
+ model: "google/gemini-3.7-flash",
40
26
  maxTokens: 8192,
41
27
  reasoning: {
42
28
  effort: (config?.chatReasoningEffort ?? process.env.CHAT_REASONING_EFFORT ?? "low"),
@@ -48,7 +34,16 @@ function getBaseModelConfig(config) {
48
34
  CHAT_MODEL: config?.chatModel ?? process.env.CHAT_MODEL,
49
35
  EVAL_MODEL_OVERRIDES: process.env.EVAL_MODEL_OVERRIDES,
50
36
  }, { applyEvalOverrides: process.env.NODE_ENV !== "production" });
51
- return Object.fromEntries(Object.entries(settings).map(([agent, value]) => [agent, { ...value, model: assignments[agent] }]));
37
+ return Object.fromEntries(Object.entries(settings).map(([agent, value]) => {
38
+ const model = assignments[agent];
39
+ return [agent, {
40
+ ...value,
41
+ model,
42
+ reasoning: model === GEMINI_3_7_FLASH_MODEL
43
+ ? ("reasoning" in value ? value.reasoning : { effort: "low" })
44
+ : undefined,
45
+ }];
46
+ }));
52
47
  }
53
48
  /** Canonical assignments preserve sampling, token, and reasoning settings. */
54
49
  function getModelConfig(config) {
@@ -72,28 +67,27 @@ export function createModel(agent, config) {
72
67
  return instantiateModel(agent, cfg, config);
73
68
  }
74
69
  /** Instantiates a ChatOpenAI from explicit settings (shared by primary + fallback creation). */
70
+ /** OpenRouter API root. */
71
+ const OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
75
72
  function instantiateModel(agent, cfg, config) {
76
73
  const apiKey = config?.apiKey ?? process.env.OPENROUTER_API_KEY;
77
74
  if (!apiKey?.trim()) {
78
- throw new Error(`createModel(${agent}): OPENROUTER_API_KEY is required. Pass via the config argument, ToolContext.modelConfig.apiKey, or set the OPENROUTER_API_KEY environment variable.`);
75
+ throw new Error(`createModel(${agent}): OPENROUTER_API_KEY is required. Pass via the config argument or set the OPENROUTER_API_KEY environment variable.`);
79
76
  }
80
77
  // Hard upper bound on a single LLM call. Without this, langchain's HTTP
81
78
  // client waits until the upstream cuts the socket (~3 minutes via
82
79
  // OpenRouter), blocking the entire chat response. 60 s is generous enough
83
80
  // for slow providers but bounds the worst case.
84
- const timeoutEnv = Number.parseInt(process.env.OPENROUTER_REQUEST_TIMEOUT_MS ?? "", 10);
85
- const timeout = Number.isFinite(timeoutEnv) && timeoutEnv > 0 ? timeoutEnv : 60000;
81
+ const timeout = 60000;
86
82
  // ChatOpenAI defaults to maxRetries=2. That means a single hung upstream
87
83
  // provider gets retried up to 2 more times, each waiting `timeout` before
88
84
  // failing — so worst-case latency becomes timeout * 3. Cap retries at 1
89
- // so the worst case stays bounded at ~2 * timeout. Configurable via
90
- // OPENROUTER_MAX_RETRIES.
91
- const retriesEnv = Number.parseInt(process.env.OPENROUTER_MAX_RETRIES ?? "", 10);
92
- const maxRetries = Number.isFinite(retriesEnv) && retriesEnv >= 0 ? retriesEnv : 1;
85
+ // so the worst case stays bounded at ~2 * timeout.
86
+ const maxRetries = 1;
93
87
  return new ChatOpenAI({
94
88
  model: cfg.model,
95
89
  configuration: {
96
- baseURL: config?.baseURL ?? process.env.OPENROUTER_BASE_URL ?? "https://openrouter.ai/api/v1",
90
+ baseURL: config?.baseURL ?? OPENROUTER_BASE_URL,
97
91
  apiKey,
98
92
  },
99
93
  temperature: cfg.temperature,
@@ -104,20 +98,19 @@ function instantiateModel(agent, cfg, config) {
104
98
  });
105
99
  }
106
100
  /**
107
- * Default cross-vendor fallback model. The per-agent primaries run on Google's
108
- * provider lane (gemini-2.5-flash); a same-key OpenRouter fallback on a
109
- * different vendor survives Google-side outages.
110
- * Override via OPENROUTER_FALLBACK_MODEL; set it to "none" (or "off") to disable.
101
+ * Same-tier, previous-generation fallback: a "pro" primary falls back to the
102
+ * previous pro model, a "flash" primary to the previous flash model — the
103
+ * fallback is meant to survive a provider-side outage or rate limit on the
104
+ * exact primary, not to trade away the tier's capability. Every current
105
+ * primary is a flash model, but this stays tier-aware for when a pro model
106
+ * is added.
111
107
  */
112
- const DEFAULT_FALLBACK_MODEL = "openai/gpt-4o-mini";
113
- function getFallbackModelName() {
114
- const raw = process.env.OPENROUTER_FALLBACK_MODEL;
115
- if (raw === undefined)
116
- return DEFAULT_FALLBACK_MODEL;
117
- const value = raw.trim();
118
- if (!value || value.toLowerCase() === "none" || value.toLowerCase() === "off")
119
- return undefined;
120
- return value;
108
+ const FALLBACK_MODEL_BY_TIER = {
109
+ pro: "google/gemini-2.5-pro",
110
+ flash: "google/gemini-2.5-flash",
111
+ };
112
+ function fallbackModelFor(primaryModel) {
113
+ return primaryModel.includes("pro") ? FALLBACK_MODEL_BY_TIER.pro : FALLBACK_MODEL_BY_TIER.flash;
121
114
  }
122
115
  /**
123
116
  * Creates the fallback ChatOpenAI for an agent, or undefined when fallbacks
@@ -126,24 +119,19 @@ function getFallbackModelName() {
126
119
  * primary-model specific.
127
120
  */
128
121
  export function createFallbackModel(agent, config) {
129
- const fallbackName = getFallbackModelName();
130
- if (!fallbackName)
131
- return undefined;
132
122
  const cfg = getModelConfig(config)[agent];
133
- if (cfg.model === fallbackName)
123
+ const fallbackModel = fallbackModelFor(cfg.model);
124
+ if (cfg.model === fallbackModel)
134
125
  return undefined;
135
- return instantiateModel(agent, { ...cfg, model: fallbackName, reasoning: undefined }, config);
126
+ return instantiateModel(agent, { ...cfg, model: fallbackModel, reasoning: undefined }, config);
136
127
  }
137
128
  /**
138
129
  * Number of attempts (1 = no retry) for runnable-level retries added by
139
130
  * `createStructuredModel` / `createResilientModel`. These wrap ChatOpenAI's
140
131
  * own HTTP-level `maxRetries` and additionally cover structured-output
141
- * parse/validation failures. Configurable via OPENROUTER_RUNNABLE_MAX_ATTEMPTS.
132
+ * parse/validation failures.
142
133
  */
143
- function getRunnableMaxAttempts() {
144
- const env = Number.parseInt(process.env.OPENROUTER_RUNNABLE_MAX_ATTEMPTS ?? "", 10);
145
- return Number.isFinite(env) && env >= 1 ? env : 2;
146
- }
134
+ const RUNNABLE_MAX_ATTEMPTS = 2;
147
135
  /**
148
136
  * Stops runnable-level retries when the failure was a caller abort —
149
137
  * retrying a cancelled request only delays cancellation. Thrown errors from
@@ -154,7 +142,7 @@ function abortAwareFailedAttemptHandler(error) {
154
142
  throw error;
155
143
  }
156
144
  function withResilience(primary, fallback) {
157
- const attempts = getRunnableMaxAttempts();
145
+ const attempts = RUNNABLE_MAX_ATTEMPTS;
158
146
  let runnable = attempts > 1
159
147
  ? primary.withRetry({ stopAfterAttempt: attempts, onFailedAttempt: abortAwareFailedAttemptHandler })
160
148
  : primary;
@@ -168,9 +156,10 @@ function withResilience(primary, fallback) {
168
156
  * plus `.withRetry(...)` and `.withFallbacks([...])`.
169
157
  *
170
158
  * Retry covers transient provider errors *and* schema parse/validation
171
- * failures; the fallback model (see OPENROUTER_FALLBACK_MODEL) is bound to the
172
- * same schema so a provider outage degrades to a different vendor instead of
173
- * failing the call. Abort signals pass through: aborts are never retried and
159
+ * failures; the fallback model (see FALLBACK_MODEL_BY_TIER) is bound to the
160
+ * same schema so a provider outage or rate limit degrades to the previous
161
+ * generation of the same tier instead of failing the call. Abort signals
162
+ * pass through: aborts are never retried and
174
163
  * skip the fallback.
175
164
  *
176
165
  * @param agent - Key identifying which agent's model settings to use.
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Canonical model-assignment authority for every protocol agent.
3
+ *
4
+ * The resolver is pure: callers provide the complete environment projection it
5
+ * may read. Historical eval planning uses the returned all-agent map so an
6
+ * unmentioned agent cannot drift behind an implicit runtime default.
7
+ */
8
+ export declare const CANONICAL_AGENT_MODEL_DEFAULTS: Readonly<{
9
+ readonly intentInferrer: "google/gemini-3.7-flash";
10
+ readonly intentVerifier: "google/gemini-3.7-flash";
11
+ readonly intentClarifier: "google/gemini-3.7-flash";
12
+ readonly profileGenerator: "google/gemini-3.7-flash";
13
+ readonly opportunityPresenter: "google/gemini-3.7-flash";
14
+ readonly negotiator: "google/gemini-3.7-flash";
15
+ readonly negotiationReflector: "google/gemini-3.7-flash";
16
+ readonly homeCategorizer: "google/gemini-3.7-flash";
17
+ readonly suggestionGenerator: "google/gemini-3.7-flash";
18
+ readonly chatTitleGenerator: "google/gemini-3.7-flash";
19
+ readonly negotiationInsights: "google/gemini-3.7-flash";
20
+ readonly chatContextSummarizer: "google/gemini-3.7-flash";
21
+ readonly negotiationSummarizer: "google/gemini-3.7-flash";
22
+ readonly inviteGenerator: "google/gemini-3.7-flash";
23
+ readonly userContextGenerator: "google/gemini-3.7-flash";
24
+ readonly networkRecommender: "google/gemini-3.7-flash";
25
+ readonly interruptClassifier: "google/gemini-3.7-flash";
26
+ readonly chat: "google/gemini-3.7-flash";
27
+ }>;
28
+ export type CanonicalModelAgent = keyof typeof CANONICAL_AGENT_MODEL_DEFAULTS;
29
+ export type CanonicalAllAgentModels = Readonly<Record<CanonicalModelAgent, string>>;
30
+ export declare const CANONICAL_MODEL_AGENTS: readonly ("intentInferrer" | "intentVerifier" | "intentClarifier" | "profileGenerator" | "opportunityPresenter" | "negotiator" | "negotiationReflector" | "homeCategorizer" | "suggestionGenerator" | "chatTitleGenerator" | "negotiationInsights" | "chatContextSummarizer" | "negotiationSummarizer" | "inviteGenerator" | "userContextGenerator" | "networkRecommender" | "interruptClassifier" | "chat")[];
31
+ export declare function resolveCanonicalAllAgentModels(environment: Readonly<Record<string, string | undefined>>, options?: {
32
+ applyEvalOverrides?: boolean;
33
+ }): CanonicalAllAgentModels;
@@ -6,39 +6,24 @@
6
6
  * unmentioned agent cannot drift behind an implicit runtime default.
7
7
  */
8
8
  export const CANONICAL_AGENT_MODEL_DEFAULTS = Object.freeze({
9
- intentInferrer: "google/gemini-2.5-flash",
10
- intentIndexer: "google/gemini-2.5-flash",
11
- intentVerifier: "google/gemini-2.5-flash",
12
- intentReconciler: "google/gemini-2.5-flash",
13
- intentClarifier: "google/gemini-2.5-flash",
14
- profileGenerator: "google/gemini-2.5-flash",
15
- hydeGenerator: "google/gemini-2.5-flash",
16
- hydeValidator: "google/gemini-2.5-flash",
17
- lensInferrer: "google/gemini-2.5-flash",
18
- opportunityEvaluator: "google/gemini-2.5-flash",
19
- opportunityPresenter: "google/gemini-2.5-flash",
20
- negotiator: "google/gemini-2.5-flash",
21
- negotiationScreener: "google/gemini-2.5-flash",
22
- negotiationReflector: "google/gemini-2.5-flash",
23
- homeCategorizer: "google/gemini-2.5-flash",
24
- suggestionGenerator: "google/gemini-2.5-flash",
25
- chatTitleGenerator: "google/gemini-2.5-flash",
26
- negotiationInsights: "google/gemini-2.5-flash",
27
- chatContextSummarizer: "google/gemini-2.5-flash",
28
- questioner: "google/gemini-2.5-flash",
29
- signalIntakePack: "google/gemini-2.5-flash",
30
- negotiationSummarizer: "google/gemini-2.5-flash",
31
- poolDiscriminatorMiner: "google/gemini-2.5-flash",
32
- poolDiscriminatorAssigner: "google/gemini-2.5-flash",
33
- negotiationEvidenceMiner: "google/gemini-2.5-flash",
34
- inviteGenerator: "google/gemini-2.5-flash",
35
- premiseAnalyzer: "google/gemini-2.5-flash",
36
- premiseDecomposer: "google/gemini-2.5-flash",
37
- premiseIndexer: "google/gemini-2.5-flash",
38
- userContextGenerator: "google/gemini-2.5-flash",
39
- networkRecommender: "google/gemini-2.5-flash",
40
- interruptClassifier: "google/gemini-2.5-flash",
41
- chat: "google/gemini-3-pro-preview",
9
+ intentInferrer: "google/gemini-3.7-flash",
10
+ intentVerifier: "google/gemini-3.7-flash",
11
+ intentClarifier: "google/gemini-3.7-flash",
12
+ profileGenerator: "google/gemini-3.7-flash",
13
+ opportunityPresenter: "google/gemini-3.7-flash",
14
+ negotiator: "google/gemini-3.7-flash",
15
+ negotiationReflector: "google/gemini-3.7-flash",
16
+ homeCategorizer: "google/gemini-3.7-flash",
17
+ suggestionGenerator: "google/gemini-3.7-flash",
18
+ chatTitleGenerator: "google/gemini-3.7-flash",
19
+ negotiationInsights: "google/gemini-3.7-flash",
20
+ chatContextSummarizer: "google/gemini-3.7-flash",
21
+ negotiationSummarizer: "google/gemini-3.7-flash",
22
+ inviteGenerator: "google/gemini-3.7-flash",
23
+ userContextGenerator: "google/gemini-3.7-flash",
24
+ networkRecommender: "google/gemini-3.7-flash",
25
+ interruptClassifier: "google/gemini-3.7-flash",
26
+ chat: "google/gemini-3.7-flash",
42
27
  });
43
28
  export const CANONICAL_MODEL_AGENTS = Object.freeze(Object.keys(CANONICAL_AGENT_MODEL_DEFAULTS));
44
29
  function parseOverrides(raw) {
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Request scope primitives.
3
+ *
4
+ * `scopeType`/`scopeId` describe the caller's focused scope, not the full set of
5
+ * networks they may read or write. The helpers here derive concrete network id
6
+ * sets from the focused scope and the caller's memberships.
7
+ */
8
+ import type { ScopeMembership, ScopeType } from '../../../protocol/core.js';
9
+ export type { ScopeMembership, ScopeType } from '../../../protocol/core.js';
10
+ export interface ScopeEnvelope {
11
+ scopeType?: ScopeType;
12
+ scopeId?: string;
13
+ }
14
+ export interface DeriveNetworkScopeInput extends ScopeEnvelope {
15
+ memberships: ScopeMembership[];
16
+ }
17
+ /** Every network the caller may read within their focused scope. */
18
+ export declare function deriveAllowedNetworkIds(input: DeriveNetworkScopeInput): string[];
19
+ /** The networks discovery may draw counterparties from. Empty when the focused network is not one of the caller's. */
20
+ export declare function deriveDiscoveryNetworkIds(input: DeriveNetworkScopeInput): string[];
@@ -0,0 +1,24 @@
1
+ function uniqueNetworkIds(ids) {
2
+ return [...new Set(ids.map((id) => id.trim()).filter(Boolean))];
3
+ }
4
+ function hasNetworkScope(scope) {
5
+ return scope.scopeType === 'network' && typeof scope.scopeId === 'string' && scope.scopeId.trim().length > 0;
6
+ }
7
+ /** Every network the caller may read within their focused scope. */
8
+ export function deriveAllowedNetworkIds(input) {
9
+ if (!hasNetworkScope(input)) {
10
+ return uniqueNetworkIds(input.memberships.map((membership) => membership.networkId));
11
+ }
12
+ return uniqueNetworkIds(input.memberships
13
+ .filter((membership) => membership.networkId === input.scopeId)
14
+ .map((membership) => membership.networkId));
15
+ }
16
+ /** The networks discovery may draw counterparties from. Empty when the focused network is not one of the caller's. */
17
+ export function deriveDiscoveryNetworkIds(input) {
18
+ if (!hasNetworkScope(input)) {
19
+ return uniqueNetworkIds(input.memberships.map((membership) => membership.networkId));
20
+ }
21
+ return input.memberships.some((membership) => membership.networkId === input.scopeId)
22
+ ? [input.scopeId]
23
+ : [];
24
+ }
@@ -0,0 +1,23 @@
1
+ import type { NetworkAssignmentMetadata, NetworkAssignmentResourceType } from "../../../protocol/schemas/network-assignment.schema.js";
2
+ export interface ManualAssignmentArgs {
3
+ resourceType: NetworkAssignmentResourceType;
4
+ /** Provenance tag recorded on the row, e.g. `intent-create`. */
5
+ source: string;
6
+ createdAt?: string;
7
+ reason?: string;
8
+ }
9
+ export interface NetworkAssignmentDecision {
10
+ finalScore: number;
11
+ metadata: NetworkAssignmentMetadata;
12
+ }
13
+ /**
14
+ * Builds the row-level metadata for a network assignment.
15
+ *
16
+ * Every assignment is a deliberate act by the resource's owner — nothing is
17
+ * scored or thresholded — so the score is always 1 and the recorded mode is
18
+ * always `manual_override`.
19
+ *
20
+ * @param args - Resource type and provenance for the assignment.
21
+ * @returns The score and explainability metadata to persist.
22
+ */
23
+ export declare function buildManualAssignmentMetadata(args: ManualAssignmentArgs): NetworkAssignmentDecision;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Builds the row-level metadata for a network assignment.
3
+ *
4
+ * Every assignment is a deliberate act by the resource's owner — nothing is
5
+ * scored or thresholded — so the score is always 1 and the recorded mode is
6
+ * always `manual_override`.
7
+ *
8
+ * @param args - Resource type and provenance for the assignment.
9
+ * @returns The score and explainability metadata to persist.
10
+ */
11
+ export function buildManualAssignmentMetadata(args) {
12
+ return {
13
+ finalScore: 1,
14
+ metadata: {
15
+ resourceType: args.resourceType,
16
+ mode: "manual_override",
17
+ scope: "network",
18
+ policy: "unified-threshold-v1",
19
+ threshold: 0,
20
+ promptPresence: "none",
21
+ finalScore: 1,
22
+ assigned: true,
23
+ reason: args.reason ?? "Assigned explicitly by the owner.",
24
+ ...(args.source ? { source: args.source } : {}),
25
+ ...(args.createdAt ? { createdAt: args.createdAt } : {}),
26
+ },
27
+ };
28
+ }
@@ -1,11 +1,8 @@
1
1
  /**
2
2
  * Protocol-internal logging module.
3
3
  *
4
- * Self-contained — no imports from outside the protocol library.
5
- * Ships with a minimal console-based default. The host application can
6
- * call `setLoggerFactory()` at startup to wire in a richer implementation
7
- * (e.g. the project-wide `log` utility with ANSI colors, context filtering,
8
- * and embedding redaction).
4
+ * The package emits through a host-provided logger factory. It intentionally
5
+ * has no console or vendor logger implementation; hosts wire their own logger.
9
6
  */
10
7
  type LogMethod = (message: string, meta?: Record<string, unknown>) => void;
11
8
  export type LoggerWithSource = {
@@ -34,7 +31,7 @@ type SanitizeFn = (value: unknown) => unknown;
34
31
  * );
35
32
  * ```
36
33
  */
37
- export declare function setLoggerFactory(factory: LoggerFactory, sanitize?: SanitizeFn): void;
34
+ export declare function setLoggerFactory(factory: LoggerFactory | undefined, sanitize?: SanitizeFn): void;
38
35
  /** Sanitize an object for logging (redacts embeddings when host logger is wired in). */
39
36
  export declare function sanitizeForLog(value: unknown): unknown;
40
37
  /**