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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/CHANGELOG.md +1841 -0
  2. package/IMPLEMENTATION.md +140 -181
  3. package/README.md +16 -20
  4. package/STABILITY.md +16 -11
  5. package/dist/{intents/intent.module.d.ts → capabilities/intents.d.ts} +182 -192
  6. package/dist/capabilities/intents.js +88 -0
  7. package/dist/capabilities/negotiations.d.ts +17 -0
  8. package/dist/capabilities/negotiations.js +16 -0
  9. package/dist/{networks/network.module.d.ts → capabilities/networks.d.ts} +33 -169
  10. package/dist/{networks/network.module.js → capabilities/networks.js} +6 -17
  11. package/dist/index.d.ts +57 -132
  12. package/dist/index.js +41 -100
  13. package/dist/internal/agents/agent.repository.port.d.ts +59 -0
  14. package/dist/internal/agents/agent.repository.port.js +7 -0
  15. package/dist/internal/agents/agent.types.d.ts +35 -0
  16. package/dist/{agents → internal/agents}/agent.types.js +1 -6
  17. package/dist/{intents → internal/intents}/graph/intent.graph.d.ts +142 -151
  18. package/dist/{intents → internal/intents}/graph/intent.graph.execute.d.ts +5 -1
  19. package/dist/{intents → internal/intents}/graph/intent.graph.execute.js +165 -46
  20. package/dist/internal/intents/graph/intent.graph.infer.d.ts +78 -0
  21. package/dist/internal/intents/graph/intent.graph.infer.js +122 -0
  22. package/dist/internal/intents/graph/intent.graph.js +108 -0
  23. package/dist/{intents → internal/intents}/graph/intent.graph.reconcile.d.ts +18 -9
  24. package/dist/internal/intents/graph/intent.graph.reconcile.js +173 -0
  25. package/dist/internal/intents/graph/intent.graph.shared.d.ts +55 -0
  26. package/dist/{intents → internal/intents}/graph/intent.graph.shared.js +25 -70
  27. package/dist/{intents → internal/intents}/graph/intent.graph.state.d.ts +96 -32
  28. package/dist/{intents → internal/intents}/graph/intent.graph.state.js +42 -31
  29. package/dist/internal/intents/intent.admission.d.ts +16 -0
  30. package/dist/internal/intents/intent.admission.js +30 -0
  31. package/dist/{intents → internal/intents}/intent.inferrer.d.ts +1 -40
  32. package/dist/{intents → internal/intents}/intent.inferrer.js +13 -49
  33. package/dist/internal/intents/intent.preparer.d.ts +52 -0
  34. package/dist/internal/intents/intent.preparer.js +87 -0
  35. package/dist/{intents → internal/intents}/intent.verifier.d.ts +3 -36
  36. package/dist/{intents → internal/intents}/intent.verifier.js +0 -17
  37. package/dist/{networks → internal/networks}/indexer.graph.d.ts +15 -200
  38. package/dist/{networks → internal/networks}/indexer.graph.js +19 -128
  39. package/dist/{networks → internal/networks}/indexer.state.d.ts +8 -63
  40. package/dist/internal/networks/indexer.state.js +70 -0
  41. package/dist/{networks → internal/networks}/membership.graph.d.ts +6 -6
  42. package/dist/{networks → internal/networks}/membership.graph.js +3 -3
  43. package/dist/{networks → internal/networks}/membership.state.d.ts +2 -2
  44. package/dist/{networks → internal/networks}/membership.state.js +2 -2
  45. package/dist/{networks → internal/networks}/network.graph.d.ts +9 -22
  46. package/dist/{networks → internal/networks}/network.graph.js +13 -27
  47. package/dist/{networks → internal/networks}/network.recommender.d.ts +2 -2
  48. package/dist/{networks → internal/networks}/network.recommender.js +2 -2
  49. package/dist/{networks → internal/networks}/network.state.d.ts +4 -7
  50. package/dist/{networks → internal/networks}/network.state.js +4 -4
  51. package/dist/internal/opportunities/negotiation-context.loader.d.ts +26 -0
  52. package/dist/internal/opportunities/negotiation-context.loader.js +36 -0
  53. package/dist/{opportunities → internal/opportunities}/opportunity.actor.d.ts +1 -1
  54. package/dist/{opportunities → internal/opportunities}/opportunity.actor.js +7 -1
  55. package/dist/internal/opportunities/opportunity.counterparties.d.ts +17 -0
  56. package/dist/internal/opportunities/opportunity.counterparties.js +19 -0
  57. package/dist/internal/opportunities/opportunity.events.d.ts +38 -0
  58. package/dist/internal/opportunities/opportunity.events.js +94 -0
  59. package/dist/{opportunities → internal/opportunities}/opportunity.feed-selection.d.ts +3 -9
  60. package/dist/internal/opportunities/opportunity.feed-selection.js +40 -0
  61. package/dist/internal/opportunities/opportunity.graph.modes.d.ts +39 -0
  62. package/dist/internal/opportunities/opportunity.graph.modes.js +138 -0
  63. package/dist/{opportunities → internal/opportunities}/opportunity.labels.d.ts +2 -3
  64. package/dist/internal/opportunities/opportunity.labels.js +9 -0
  65. package/dist/{opportunities → internal/opportunities}/opportunity.presentation.d.ts +17 -86
  66. package/dist/{opportunities → internal/opportunities}/opportunity.presentation.js +54 -447
  67. package/dist/{opportunities → internal/opportunities}/opportunity.update-admission.d.ts +2 -2
  68. package/dist/internal/opportunities/opportunity.utils.d.ts +105 -0
  69. package/dist/internal/opportunities/opportunity.utils.js +165 -0
  70. package/dist/{opportunities → internal/opportunities}/radar/radar.graph.d.ts +17 -17
  71. package/dist/{opportunities → internal/opportunities}/radar/radar.graph.js +41 -161
  72. package/dist/{opportunities → internal/opportunities}/radar/radar.state.d.ts +4 -11
  73. package/dist/{shared → internal/shared}/agent/model-signal.d.ts +1 -1
  74. package/dist/{shared → internal/shared}/agent/model-signal.js +1 -1
  75. package/dist/{shared → internal/shared}/agent/model.config.d.ts +28 -86
  76. package/dist/{shared → internal/shared}/agent/model.config.js +58 -69
  77. package/dist/internal/shared/agent/model.resolver.d.ts +33 -0
  78. package/dist/{shared → internal/shared}/agent/model.resolver.js +18 -33
  79. package/dist/internal/shared/agent/scope.d.ts +20 -0
  80. package/dist/internal/shared/agent/scope.js +24 -0
  81. package/dist/internal/shared/assignment/network-assignment.policy.d.ts +23 -0
  82. package/dist/internal/shared/assignment/network-assignment.policy.js +28 -0
  83. package/dist/{shared → internal/shared}/observability/log.d.ts +3 -6
  84. package/dist/{shared → internal/shared}/observability/log.js +9 -18
  85. package/dist/{shared → internal/shared}/observability/protocol.logger.d.ts +1 -1
  86. package/dist/{shared → internal/shared}/observability/protocol.logger.js +1 -1
  87. package/dist/internal/shared/observability/request-context.d.ts +29 -0
  88. package/dist/internal/shared/observability/request-context.js +17 -0
  89. package/dist/{shared → internal/shared}/utils/social-label.d.ts +2 -2
  90. package/dist/{shared → internal/shared}/utils/social-label.js +1 -1
  91. package/dist/platform/database/capabilities.d.ts +59 -0
  92. package/dist/{shared/interfaces/database.entities.d.ts → platform/database/entities.d.ts} +81 -121
  93. package/dist/{shared/interfaces/database.identity-queries.d.ts → platform/database/identity-queries.d.ts} +55 -20
  94. package/dist/platform/database/member-queries.d.ts +55 -0
  95. package/dist/platform/database/member-queries.js +4 -0
  96. package/dist/platform/database/negotiation.d.ts +38 -0
  97. package/dist/{shared/interfaces/database.network-queries.d.ts → platform/database/network-queries.d.ts} +66 -67
  98. package/dist/platform/database/network-queries.js +4 -0
  99. package/dist/{shared/interfaces/database.opportunity-queries.d.ts → platform/database/opportunity-queries.d.ts} +25 -109
  100. package/dist/{shared/interfaces/database.port.d.ts → platform/database/port.d.ts} +52 -117
  101. package/dist/{shared/interfaces/database.port.js → platform/database/port.js} +3 -5
  102. package/dist/platform/database.d.ts +23 -0
  103. package/dist/{shared/interfaces/database.interface.js → platform/database.js} +1 -1
  104. package/dist/{shared/interfaces/cache.interface.d.ts → platform/discovery/cache.d.ts} +2 -4
  105. package/dist/{shared/interfaces/cache.interface.js → platform/discovery/cache.js} +1 -1
  106. package/dist/platform/discovery/embedder.d.ts +31 -0
  107. package/dist/platform/runtime/errors.d.ts +6 -0
  108. package/dist/platform/runtime/errors.js +9 -0
  109. package/dist/platform/runtime/follow-up.d.ts +36 -0
  110. package/dist/platform/runtime/follow-up.js +4 -0
  111. package/dist/platform/runtime/observability.d.ts +34 -0
  112. package/dist/protocol/core.d.ts +11 -0
  113. package/dist/protocol/discovery.rules.d.ts +21 -0
  114. package/dist/protocol/discovery.rules.js +29 -0
  115. package/dist/protocol/negotiation.constants.d.ts +3 -0
  116. package/dist/protocol/negotiation.constants.js +3 -0
  117. package/dist/protocol/negotiation.rules.d.ts +73 -0
  118. package/dist/protocol/negotiation.rules.js +68 -0
  119. package/dist/protocol/protocol.prompt.d.ts +13 -0
  120. package/dist/protocol/protocol.prompt.js +190 -0
  121. package/dist/{shared → protocol}/schemas/discovery-question.schema.d.ts +13 -13
  122. package/dist/{shared → protocol}/schemas/discovery-question.schema.js +2 -2
  123. package/dist/{shared → protocol}/schemas/identity.schema.d.ts +4 -4
  124. package/dist/{shared → protocol}/schemas/identity.schema.js +4 -4
  125. package/dist/{shared → protocol}/schemas/network-assignment.schema.d.ts +11 -20
  126. package/dist/{shared → protocol}/schemas/network-assignment.schema.js +2 -9
  127. package/dist/protocol/schemas/underspecification.schema.d.ts +9 -0
  128. package/dist/protocol/schemas/underspecification.schema.js +12 -0
  129. package/package.json +7 -15
  130. package/dist/agents/agent.dispatcher.port.d.ts +0 -25
  131. package/dist/agents/agent.module.d.ts +0 -19
  132. package/dist/agents/agent.module.js +0 -11
  133. package/dist/agents/agent.repository.port.d.ts +0 -118
  134. package/dist/agents/agent.repository.port.js +0 -10
  135. package/dist/agents/agent.tools.d.ts +0 -16
  136. package/dist/agents/agent.tools.js +0 -351
  137. package/dist/agents/agent.tools.port.d.ts +0 -22
  138. package/dist/agents/agent.tools.port.js +0 -18
  139. package/dist/agents/agent.types.d.ts +0 -76
  140. package/dist/chat/chat-streaming.types.d.ts +0 -618
  141. package/dist/chat/chat-streaming.types.js +0 -297
  142. package/dist/chat/chat.agent.d.ts +0 -292
  143. package/dist/chat/chat.agent.js +0 -1010
  144. package/dist/chat/chat.graph.d.ts +0 -424
  145. package/dist/chat/chat.graph.js +0 -257
  146. package/dist/chat/chat.interrupt.classifier.d.ts +0 -25
  147. package/dist/chat/chat.interrupt.classifier.js +0 -64
  148. package/dist/chat/chat.persona.d.ts +0 -39
  149. package/dist/chat/chat.prompt.d.ts +0 -4
  150. package/dist/chat/chat.prompt.js +0 -12
  151. package/dist/chat/chat.prompt.modules.d.ts +0 -30
  152. package/dist/chat/chat.prompt.modules.js +0 -40
  153. package/dist/chat/chat.question-dedup.d.ts +0 -14
  154. package/dist/chat/chat.question-dedup.js +0 -17
  155. package/dist/chat/chat.state.d.ts +0 -135
  156. package/dist/chat/chat.state.js +0 -120
  157. package/dist/chat/chat.streamer.d.ts +0 -64
  158. package/dist/chat/chat.streamer.js +0 -217
  159. package/dist/chat/chat.suggester.d.ts +0 -23
  160. package/dist/chat/chat.suggester.js +0 -95
  161. package/dist/chat/chat.summarizer.d.ts +0 -20
  162. package/dist/chat/chat.summarizer.js +0 -97
  163. package/dist/chat/chat.title.generator.d.ts +0 -19
  164. package/dist/chat/chat.title.generator.js +0 -66
  165. package/dist/chat/chat.tools.d.ts +0 -5
  166. package/dist/chat/chat.tools.js +0 -62
  167. package/dist/chat/chat.utils.d.ts +0 -41
  168. package/dist/chat/chat.utils.js +0 -88
  169. package/dist/chat/negotiator.persona.d.ts +0 -74
  170. package/dist/chat/negotiator.persona.js +0 -154
  171. package/dist/chat/negotiator.prompt.d.ts +0 -45
  172. package/dist/chat/negotiator.prompt.js +0 -160
  173. package/dist/chat/negotiator.tools.d.ts +0 -42
  174. package/dist/chat/negotiator.tools.js +0 -134
  175. package/dist/chat/onboarding.persona.d.ts +0 -28
  176. package/dist/chat/onboarding.persona.js +0 -86
  177. package/dist/chat/onboarding.prompt.d.ts +0 -6
  178. package/dist/chat/onboarding.prompt.js +0 -63
  179. package/dist/chat/signal.persona.d.ts +0 -47
  180. package/dist/chat/signal.persona.js +0 -319
  181. package/dist/chat/signal.prompt.d.ts +0 -39
  182. package/dist/chat/signal.prompt.js +0 -136
  183. package/dist/contacts/contact.module.d.ts +0 -8
  184. package/dist/contacts/contact.module.js +0 -6
  185. package/dist/contacts/contact.repository.port.d.ts +0 -21
  186. package/dist/contacts/contact.repository.port.js +0 -12
  187. package/dist/contacts/contact.tools.d.ts +0 -17
  188. package/dist/contacts/contact.tools.js +0 -108
  189. package/dist/contacts/contact.tools.port.d.ts +0 -20
  190. package/dist/contacts/contact.tools.port.js +0 -16
  191. package/dist/contacts/contact.types.d.ts +0 -24
  192. package/dist/contacts/contact.types.js +0 -8
  193. package/dist/contexts/context.generator.d.ts +0 -95
  194. package/dist/contexts/context.generator.js +0 -127
  195. package/dist/contexts/context.module.d.ts +0 -13
  196. package/dist/contexts/context.module.js +0 -12
  197. package/dist/contexts/context.tools.port.d.ts +0 -9
  198. package/dist/discovery/hyde.documents.d.ts +0 -9
  199. package/dist/discovery/hyde.documents.js +0 -49
  200. package/dist/discovery/hyde.env.d.ts +0 -8
  201. package/dist/discovery/hyde.env.js +0 -9
  202. package/dist/discovery/hyde.frame.d.ts +0 -150
  203. package/dist/discovery/hyde.frame.js +0 -107
  204. package/dist/discovery/hyde.generator.d.ts +0 -38
  205. package/dist/discovery/hyde.generator.js +0 -103
  206. package/dist/discovery/hyde.graph.d.ts +0 -209
  207. package/dist/discovery/hyde.graph.js +0 -482
  208. package/dist/discovery/hyde.state.d.ts +0 -70
  209. package/dist/discovery/hyde.state.js +0 -85
  210. package/dist/discovery/hyde.strategies.d.ts +0 -17
  211. package/dist/discovery/hyde.strategies.js +0 -34
  212. package/dist/discovery/hyde.validator.d.ts +0 -78
  213. package/dist/discovery/hyde.validator.js +0 -48
  214. package/dist/discovery/index.d.ts +0 -26
  215. package/dist/discovery/index.js +0 -19
  216. package/dist/discovery/lens.inferrer.d.ts +0 -214
  217. package/dist/discovery/lens.inferrer.js +0 -152
  218. package/dist/enrichment/enrichment.generator.d.ts +0 -68
  219. package/dist/enrichment/enrichment.generator.js +0 -95
  220. package/dist/enrichment/enrichment.graph.d.ts +0 -544
  221. package/dist/enrichment/enrichment.graph.js +0 -695
  222. package/dist/enrichment/enrichment.state.d.ts +0 -141
  223. package/dist/enrichment/enrichment.state.js +0 -115
  224. package/dist/enrichment/enrichment.tools.context-read.d.ts +0 -10
  225. package/dist/enrichment/enrichment.tools.context-read.js +0 -353
  226. package/dist/enrichment/enrichment.tools.context-write.d.ts +0 -9
  227. package/dist/enrichment/enrichment.tools.context-write.js +0 -417
  228. package/dist/enrichment/enrichment.tools.d.ts +0 -13
  229. package/dist/enrichment/enrichment.tools.helpers.d.ts +0 -139
  230. package/dist/enrichment/enrichment.tools.helpers.js +0 -234
  231. package/dist/enrichment/enrichment.tools.js +0 -153
  232. package/dist/intents/graph/intent.graph.infer.d.ts +0 -44
  233. package/dist/intents/graph/intent.graph.infer.js +0 -97
  234. package/dist/intents/graph/intent.graph.js +0 -134
  235. package/dist/intents/graph/intent.graph.reconcile.js +0 -274
  236. package/dist/intents/graph/intent.graph.shared.d.ts +0 -68
  237. package/dist/intents/intake/intake.orchestrator.d.ts +0 -203
  238. package/dist/intents/intake/intake.orchestrator.js +0 -255
  239. package/dist/intents/intake/intake.pack.generator.d.ts +0 -57
  240. package/dist/intents/intake/intake.pack.generator.js +0 -90
  241. package/dist/intents/intent.clarifier.d.ts +0 -51
  242. package/dist/intents/intent.clarifier.js +0 -201
  243. package/dist/intents/intent.indexer.d.ts +0 -82
  244. package/dist/intents/intent.indexer.js +0 -170
  245. package/dist/intents/intent.module.js +0 -103
  246. package/dist/intents/intent.proposal.d.ts +0 -37
  247. package/dist/intents/intent.proposal.js +0 -14
  248. package/dist/intents/intent.reconciler.d.ts +0 -105
  249. package/dist/intents/intent.reconciler.js +0 -186
  250. package/dist/intents/intent.tools.d.ts +0 -27
  251. package/dist/intents/intent.tools.js +0 -808
  252. package/dist/maintenance/maintenance.graph.d.ts +0 -239
  253. package/dist/maintenance/maintenance.graph.js +0 -199
  254. package/dist/maintenance/maintenance.state.d.ts +0 -35
  255. package/dist/maintenance/maintenance.state.js +0 -55
  256. package/dist/mcp/elicitation.builder.d.ts +0 -53
  257. package/dist/mcp/elicitation.builder.js +0 -74
  258. package/dist/mcp/elicitation.dispatcher.d.ts +0 -36
  259. package/dist/mcp/elicitation.dispatcher.js +0 -86
  260. package/dist/mcp/mcp.authorization-policy.d.ts +0 -252
  261. package/dist/mcp/mcp.authorization-policy.js +0 -535
  262. package/dist/mcp/mcp.server.d.ts +0 -90
  263. package/dist/mcp/mcp.server.js +0 -631
  264. package/dist/negotiations/insight.generator.d.ts +0 -31
  265. package/dist/negotiations/insight.generator.js +0 -105
  266. package/dist/negotiations/negotiation.agent.d.ts +0 -130
  267. package/dist/negotiations/negotiation.agent.js +0 -396
  268. package/dist/negotiations/negotiation.answer-consumption.d.ts +0 -223
  269. package/dist/negotiations/negotiation.answer-consumption.js +0 -275
  270. package/dist/negotiations/negotiation.attribution.d.ts +0 -91
  271. package/dist/negotiations/negotiation.attribution.js +0 -109
  272. package/dist/negotiations/negotiation.candidates.d.ts +0 -83
  273. package/dist/negotiations/negotiation.candidates.js +0 -162
  274. package/dist/negotiations/negotiation.client-dm.d.ts +0 -50
  275. package/dist/negotiations/negotiation.client-dm.js +0 -66
  276. package/dist/negotiations/negotiation.consultation-policy.d.ts +0 -95
  277. package/dist/negotiations/negotiation.consultation-policy.js +0 -159
  278. package/dist/negotiations/negotiation.deadlock.contracts.d.ts +0 -10
  279. package/dist/negotiations/negotiation.deadlock.d.ts +0 -87
  280. package/dist/negotiations/negotiation.deadlock.js +0 -150
  281. package/dist/negotiations/negotiation.detail-reader.d.ts +0 -94
  282. package/dist/negotiations/negotiation.detail-reader.js +0 -91
  283. package/dist/negotiations/negotiation.expected-speaker.d.ts +0 -33
  284. package/dist/negotiations/negotiation.expected-speaker.js +0 -59
  285. package/dist/negotiations/negotiation.graph.d.ts +0 -694
  286. package/dist/negotiations/negotiation.graph.finalize.d.ts +0 -5
  287. package/dist/negotiations/negotiation.graph.finalize.js +0 -403
  288. package/dist/negotiations/negotiation.graph.init.d.ts +0 -54
  289. package/dist/negotiations/negotiation.graph.init.js +0 -256
  290. package/dist/negotiations/negotiation.graph.js +0 -94
  291. package/dist/negotiations/negotiation.graph.screen.d.ts +0 -23
  292. package/dist/negotiations/negotiation.graph.screen.js +0 -108
  293. package/dist/negotiations/negotiation.graph.shared.d.ts +0 -111
  294. package/dist/negotiations/negotiation.graph.shared.js +0 -168
  295. package/dist/negotiations/negotiation.graph.turn.d.ts +0 -134
  296. package/dist/negotiations/negotiation.graph.turn.js +0 -662
  297. package/dist/negotiations/negotiation.hermes-contract.d.ts +0 -31
  298. package/dist/negotiations/negotiation.hermes-contract.js +0 -72
  299. package/dist/negotiations/negotiation.intent-snapshot-provenance.d.ts +0 -21
  300. package/dist/negotiations/negotiation.intent-snapshot-provenance.js +0 -28
  301. package/dist/negotiations/negotiation.lifecycle-narration.d.ts +0 -18
  302. package/dist/negotiations/negotiation.lifecycle-narration.js +0 -87
  303. package/dist/negotiations/negotiation.memory.d.ts +0 -65
  304. package/dist/negotiations/negotiation.memory.js +0 -83
  305. package/dist/negotiations/negotiation.module.d.ts +0 -36
  306. package/dist/negotiations/negotiation.module.js +0 -23
  307. package/dist/negotiations/negotiation.protocol.d.ts +0 -1018
  308. package/dist/negotiations/negotiation.protocol.js +0 -224
  309. package/dist/negotiations/negotiation.question-safety.d.ts +0 -52
  310. package/dist/negotiations/negotiation.question-safety.js +0 -119
  311. package/dist/negotiations/negotiation.reflect.d.ts +0 -194
  312. package/dist/negotiations/negotiation.reflect.js +0 -145
  313. package/dist/negotiations/negotiation.scope.d.ts +0 -41
  314. package/dist/negotiations/negotiation.scope.js +0 -39
  315. package/dist/negotiations/negotiation.screen.contracts.d.ts +0 -88
  316. package/dist/negotiations/negotiation.screen.contracts.js +0 -58
  317. package/dist/negotiations/negotiation.screen.d.ts +0 -78
  318. package/dist/negotiations/negotiation.screen.js +0 -112
  319. package/dist/negotiations/negotiation.stall-gap.d.ts +0 -83
  320. package/dist/negotiations/negotiation.stall-gap.js +0 -152
  321. package/dist/negotiations/negotiation.stance.contracts.d.ts +0 -123
  322. package/dist/negotiations/negotiation.stance.contracts.js +0 -317
  323. package/dist/negotiations/negotiation.state.d.ts +0 -597
  324. package/dist/negotiations/negotiation.state.js +0 -286
  325. package/dist/negotiations/negotiation.summarizer.d.ts +0 -25
  326. package/dist/negotiations/negotiation.summarizer.js +0 -101
  327. package/dist/negotiations/negotiation.task-lock-policy.d.ts +0 -10
  328. package/dist/negotiations/negotiation.task-lock-policy.js +0 -22
  329. package/dist/negotiations/negotiation.tools.d.ts +0 -18
  330. package/dist/negotiations/negotiation.tools.js +0 -842
  331. package/dist/negotiations/negotiation.tools.port.d.ts +0 -17
  332. package/dist/negotiations/negotiation.turn-cap.d.ts +0 -9
  333. package/dist/negotiations/negotiation.turn-cap.js +0 -12
  334. package/dist/networks/indexer.state.js +0 -112
  335. package/dist/networks/network.tools.d.ts +0 -36
  336. package/dist/networks/network.tools.js +0 -594
  337. package/dist/opportunities/delivery-card.cache.d.ts +0 -25
  338. package/dist/opportunities/delivery-card.cache.js +0 -43
  339. package/dist/opportunities/discovery.env.d.ts +0 -20
  340. package/dist/opportunities/discovery.env.js +0 -109
  341. package/dist/opportunities/discriminator/discriminator.adjustments.d.ts +0 -90
  342. package/dist/opportunities/discriminator/discriminator.adjustments.js +0 -141
  343. package/dist/opportunities/discriminator/discriminator.assigner.d.ts +0 -78
  344. package/dist/opportunities/discriminator/discriminator.assigner.js +0 -153
  345. package/dist/opportunities/discriminator/discriminator.env.d.ts +0 -103
  346. package/dist/opportunities/discriminator/discriminator.env.js +0 -103
  347. package/dist/opportunities/discriminator/discriminator.miner.d.ts +0 -114
  348. package/dist/opportunities/discriminator/discriminator.miner.js +0 -228
  349. package/dist/opportunities/discriminator/discriminator.push.d.ts +0 -13
  350. package/dist/opportunities/discriminator/discriminator.push.js +0 -19
  351. package/dist/opportunities/discriminator/discriminator.question.d.ts +0 -58
  352. package/dist/opportunities/discriminator/discriminator.question.js +0 -155
  353. package/dist/opportunities/discriminator/discriminator.scorer.d.ts +0 -32
  354. package/dist/opportunities/discriminator/discriminator.scorer.js +0 -105
  355. package/dist/opportunities/discriminator/discriminator.shadow.d.ts +0 -32
  356. package/dist/opportunities/discriminator/discriminator.shadow.js +0 -90
  357. package/dist/opportunities/discriminator/discriminator.types.d.ts +0 -93
  358. package/dist/opportunities/discriminator/discriminator.types.js +0 -18
  359. package/dist/opportunities/negotiation-context.loader.d.ts +0 -59
  360. package/dist/opportunities/negotiation-context.loader.js +0 -90
  361. package/dist/opportunities/negotiation-evidence/negotiation-evidence.env.d.ts +0 -43
  362. package/dist/opportunities/negotiation-evidence/negotiation-evidence.env.js +0 -44
  363. package/dist/opportunities/negotiation-evidence/negotiation-evidence.extractor.d.ts +0 -24
  364. package/dist/opportunities/negotiation-evidence/negotiation-evidence.extractor.js +0 -188
  365. package/dist/opportunities/negotiation-evidence/negotiation-evidence.miner.d.ts +0 -26
  366. package/dist/opportunities/negotiation-evidence/negotiation-evidence.miner.js +0 -112
  367. package/dist/opportunities/negotiation-evidence/negotiation-evidence.shadow.d.ts +0 -19
  368. package/dist/opportunities/negotiation-evidence/negotiation-evidence.shadow.js +0 -61
  369. package/dist/opportunities/negotiation-evidence/negotiation-evidence.types.d.ts +0 -191
  370. package/dist/opportunities/negotiation-evidence/negotiation-evidence.types.js +0 -18
  371. package/dist/opportunities/negotiation-evidence/negotiation-evidence.verifier.d.ts +0 -34
  372. package/dist/opportunities/negotiation-evidence/negotiation-evidence.verifier.js +0 -91
  373. package/dist/opportunities/negotiation-summary.builder.d.ts +0 -37
  374. package/dist/opportunities/negotiation-summary.builder.js +0 -66
  375. package/dist/opportunities/opportunity.discovery-negotiation-summary.d.ts +0 -14
  376. package/dist/opportunities/opportunity.discovery-negotiation-summary.js +0 -46
  377. package/dist/opportunities/opportunity.enricher.d.ts +0 -71
  378. package/dist/opportunities/opportunity.enricher.js +0 -280
  379. package/dist/opportunities/opportunity.evaluator.d.ts +0 -289
  380. package/dist/opportunities/opportunity.evaluator.js +0 -516
  381. package/dist/opportunities/opportunity.evidence.d.ts +0 -22
  382. package/dist/opportunities/opportunity.evidence.js +0 -87
  383. package/dist/opportunities/opportunity.existing-negotiation.d.ts +0 -79
  384. package/dist/opportunities/opportunity.existing-negotiation.js +0 -118
  385. package/dist/opportunities/opportunity.feed-selection.js +0 -96
  386. package/dist/opportunities/opportunity.graph.d.ts +0 -1611
  387. package/dist/opportunities/opportunity.graph.discovery-strategies.d.ts +0 -109
  388. package/dist/opportunities/opportunity.graph.discovery-strategies.js +0 -451
  389. package/dist/opportunities/opportunity.graph.discovery.d.ts +0 -69
  390. package/dist/opportunities/opportunity.graph.discovery.js +0 -397
  391. package/dist/opportunities/opportunity.graph.evaluation.d.ts +0 -82
  392. package/dist/opportunities/opportunity.graph.evaluation.js +0 -608
  393. package/dist/opportunities/opportunity.graph.js +0 -193
  394. package/dist/opportunities/opportunity.graph.modes.d.ts +0 -538
  395. package/dist/opportunities/opportunity.graph.modes.js +0 -538
  396. package/dist/opportunities/opportunity.graph.negotiate.d.ts +0 -109
  397. package/dist/opportunities/opportunity.graph.negotiate.js +0 -392
  398. package/dist/opportunities/opportunity.graph.persist-node.d.ts +0 -93
  399. package/dist/opportunities/opportunity.graph.persist-node.js +0 -765
  400. package/dist/opportunities/opportunity.graph.prep.d.ts +0 -150
  401. package/dist/opportunities/opportunity.graph.prep.js +0 -381
  402. package/dist/opportunities/opportunity.graph.shared.d.ts +0 -173
  403. package/dist/opportunities/opportunity.graph.shared.js +0 -199
  404. package/dist/opportunities/opportunity.introducer-feature.d.ts +0 -2
  405. package/dist/opportunities/opportunity.introducer-feature.js +0 -4
  406. package/dist/opportunities/opportunity.introducer.d.ts +0 -77
  407. package/dist/opportunities/opportunity.introducer.js +0 -99
  408. package/dist/opportunities/opportunity.labels.js +0 -10
  409. package/dist/opportunities/opportunity.lifecycle.d.ts +0 -63
  410. package/dist/opportunities/opportunity.lifecycle.js +0 -181
  411. package/dist/opportunities/opportunity.module.d.ts +0 -54
  412. package/dist/opportunities/opportunity.module.js +0 -39
  413. package/dist/opportunities/opportunity.newborn-stamping.d.ts +0 -41
  414. package/dist/opportunities/opportunity.newborn-stamping.js +0 -81
  415. package/dist/opportunities/opportunity.owner-approval.d.ts +0 -118
  416. package/dist/opportunities/opportunity.owner-approval.js +0 -34
  417. package/dist/opportunities/opportunity.owner-provenance.d.ts +0 -6
  418. package/dist/opportunities/opportunity.owner-provenance.js +0 -28
  419. package/dist/opportunities/opportunity.persist.d.ts +0 -58
  420. package/dist/opportunities/opportunity.persist.js +0 -145
  421. package/dist/opportunities/opportunity.persistence-admission.d.ts +0 -39
  422. package/dist/opportunities/opportunity.persistence-admission.js +0 -59
  423. package/dist/opportunities/opportunity.state.d.ts +0 -451
  424. package/dist/opportunities/opportunity.state.js +0 -256
  425. package/dist/opportunities/opportunity.tools.cards.d.ts +0 -138
  426. package/dist/opportunities/opportunity.tools.cards.js +0 -212
  427. package/dist/opportunities/opportunity.tools.d.ts +0 -12
  428. package/dist/opportunities/opportunity.tools.js +0 -236
  429. package/dist/opportunities/opportunity.tools.list.d.ts +0 -10
  430. package/dist/opportunities/opportunity.tools.list.js +0 -489
  431. package/dist/opportunities/opportunity.tools.port.d.ts +0 -16
  432. package/dist/opportunities/opportunity.utils.d.ts +0 -217
  433. package/dist/opportunities/opportunity.utils.js +0 -395
  434. package/dist/opportunities/outcome/outcome.env.d.ts +0 -60
  435. package/dist/opportunities/outcome/outcome.env.js +0 -63
  436. package/dist/opportunities/outcome/outcome.hypotheses.d.ts +0 -29
  437. package/dist/opportunities/outcome/outcome.hypotheses.js +0 -117
  438. package/dist/opportunities/outcome/outcome.shadow.d.ts +0 -56
  439. package/dist/opportunities/outcome/outcome.shadow.js +0 -87
  440. package/dist/opportunities/outcome/outcome.types.d.ts +0 -110
  441. package/dist/opportunities/outcome/outcome.types.js +0 -26
  442. package/dist/opportunities/radar/radar.health.d.ts +0 -31
  443. package/dist/opportunities/radar/radar.health.js +0 -75
  444. package/dist/premises/premise.analyzer.d.ts +0 -35
  445. package/dist/premises/premise.analyzer.js +0 -115
  446. package/dist/premises/premise.decomposer.d.ts +0 -69
  447. package/dist/premises/premise.decomposer.js +0 -213
  448. package/dist/premises/premise.graph.d.ts +0 -345
  449. package/dist/premises/premise.graph.js +0 -278
  450. package/dist/premises/premise.indexer.d.ts +0 -35
  451. package/dist/premises/premise.indexer.js +0 -86
  452. package/dist/premises/premise.state.d.ts +0 -67
  453. package/dist/premises/premise.state.js +0 -94
  454. package/dist/premises/premise.tools.d.ts +0 -3
  455. package/dist/premises/premise.tools.js +0 -248
  456. package/dist/questions/question.env.d.ts +0 -27
  457. package/dist/questions/question.env.js +0 -27
  458. package/dist/questions/question.input.d.ts +0 -107
  459. package/dist/questions/question.module.d.ts +0 -30
  460. package/dist/questions/question.module.js +0 -28
  461. package/dist/questions/question.schema.d.ts +0 -1529
  462. package/dist/questions/question.schema.js +0 -420
  463. package/dist/shared/agent/activity-projection.d.ts +0 -271
  464. package/dist/shared/agent/activity-projection.js +0 -254
  465. package/dist/shared/agent/canonical-guidance.d.ts +0 -30
  466. package/dist/shared/agent/canonical-guidance.js +0 -246
  467. package/dist/shared/agent/model.resolver.d.ts +0 -48
  468. package/dist/shared/agent/tool.factory.d.ts +0 -17
  469. package/dist/shared/agent/tool.factory.js +0 -221
  470. package/dist/shared/agent/tool.helpers.d.ts +0 -482
  471. package/dist/shared/agent/tool.helpers.js +0 -232
  472. package/dist/shared/agent/tool.registry.d.ts +0 -25
  473. package/dist/shared/agent/tool.registry.js +0 -76
  474. package/dist/shared/agent/tool.runtime.d.ts +0 -28
  475. package/dist/shared/agent/tool.runtime.js +0 -194
  476. package/dist/shared/agent/tool.scope.d.ts +0 -44
  477. package/dist/shared/agent/tool.scope.js +0 -50
  478. package/dist/shared/agent/utility.tools.d.ts +0 -15
  479. package/dist/shared/agent/utility.tools.js +0 -322
  480. package/dist/shared/assignment/network-assignment.policy.d.ts +0 -61
  481. package/dist/shared/assignment/network-assignment.policy.js +0 -105
  482. package/dist/shared/interfaces/agent-dispatcher.interface.d.ts +0 -100
  483. package/dist/shared/interfaces/agent-dispatcher.interface.js +0 -12
  484. package/dist/shared/interfaces/auth.interface.d.ts +0 -37
  485. package/dist/shared/interfaces/auth.interface.js +0 -1
  486. package/dist/shared/interfaces/chat-message-writer.interface.d.ts +0 -18
  487. package/dist/shared/interfaces/chat-message-writer.interface.js +0 -1
  488. package/dist/shared/interfaces/chat-session.interface.d.ts +0 -23
  489. package/dist/shared/interfaces/chat-session.interface.js +0 -18
  490. package/dist/shared/interfaces/chat-summary.interface.d.ts +0 -16
  491. package/dist/shared/interfaces/chat-summary.interface.js +0 -1
  492. package/dist/shared/interfaces/database.capabilities.d.ts +0 -100
  493. package/dist/shared/interfaces/database.interface.d.ts +0 -16
  494. package/dist/shared/interfaces/database.member-queries.d.ts +0 -219
  495. package/dist/shared/interfaces/database.member-queries.js +0 -4
  496. package/dist/shared/interfaces/database.negotiation.d.ts +0 -329
  497. package/dist/shared/interfaces/database.negotiation.js +0 -26
  498. package/dist/shared/interfaces/database.network-queries.js +0 -4
  499. package/dist/shared/interfaces/database.opportunity-queries.js +0 -4
  500. package/dist/shared/interfaces/delivery-ledger.interface.d.ts +0 -40
  501. package/dist/shared/interfaces/delivery-ledger.interface.js +0 -5
  502. package/dist/shared/interfaces/embedder.interface.d.ts +0 -92
  503. package/dist/shared/interfaces/embedder.interface.js +0 -4
  504. package/dist/shared/interfaces/enrichment-run.interface.d.ts +0 -62
  505. package/dist/shared/interfaces/enrichment-run.interface.js +0 -1
  506. package/dist/shared/interfaces/enrichment.interface.js +0 -1
  507. package/dist/shared/interfaces/negotiation-events.interface.d.ts +0 -77
  508. package/dist/shared/interfaces/negotiation-events.interface.js +0 -6
  509. package/dist/shared/interfaces/negotiation-summary.interface.d.ts +0 -25
  510. package/dist/shared/interfaces/negotiation-summary.interface.js +0 -1
  511. package/dist/shared/interfaces/negotiator-memory.interface.d.ts +0 -58
  512. package/dist/shared/interfaces/negotiator-memory.interface.js +0 -11
  513. package/dist/shared/interfaces/queue.interface.d.ts +0 -23
  514. package/dist/shared/interfaces/queue.interface.js +0 -4
  515. package/dist/shared/interfaces/scraper.interface.js +0 -1
  516. package/dist/shared/interfaces/tool-request-context.interface.d.ts +0 -11
  517. package/dist/shared/interfaces/tool-request-context.interface.js +0 -1
  518. package/dist/shared/observability/request-context.d.ts +0 -27
  519. package/dist/shared/observability/request-context.js +0 -6
  520. package/dist/shared/schemas/mcp-auth.schema.d.ts +0 -87
  521. package/dist/shared/schemas/mcp-auth.schema.js +0 -56
  522. package/dist/shared/schemas/negotiation-digest.schema.d.ts +0 -58
  523. package/dist/shared/schemas/negotiation-digest.schema.js +0 -38
  524. package/dist/shared/schemas/negotiation-state.schema.d.ts +0 -343
  525. package/dist/shared/schemas/negotiation-state.schema.js +0 -81
  526. package/dist/shared/schemas/question-block.fixture.d.ts +0 -12
  527. package/dist/shared/schemas/question-block.fixture.js +0 -39
  528. package/dist/shared/schemas/question-block.schema.d.ts +0 -111
  529. package/dist/shared/schemas/question-block.schema.js +0 -124
  530. package/dist/shared/schemas/structured-question.schema.d.ts +0 -66
  531. package/dist/shared/schemas/structured-question.schema.js +0 -31
  532. package/dist/shared/schemas/underspecification.schema.d.ts +0 -13
  533. package/dist/shared/schemas/underspecification.schema.js +0 -16
  534. /package/dist/{opportunities → internal/opportunities}/opportunity.update-admission.js +0 -0
  535. /package/dist/{opportunities → internal/opportunities}/radar/radar.state.js +0 -0
  536. /package/dist/{shared → internal/shared}/network/metadata.renderer.d.ts +0 -0
  537. /package/dist/{shared → internal/shared}/network/metadata.renderer.js +0 -0
  538. /package/dist/{shared → internal/shared}/observability/debug-meta.sanitizer.d.ts +0 -0
  539. /package/dist/{shared → internal/shared}/observability/debug-meta.sanitizer.js +0 -0
  540. /package/dist/{shared → internal/shared}/observability/performance.d.ts +0 -0
  541. /package/dist/{shared → internal/shared}/observability/performance.js +0 -0
  542. /package/dist/{shared → internal/shared}/observability/trace.d.ts +0 -0
  543. /package/dist/{shared → internal/shared}/observability/trace.js +0 -0
  544. /package/dist/{shared → internal/shared}/utils/claim-safety.d.ts +0 -0
  545. /package/dist/{shared → internal/shared}/utils/claim-safety.js +0 -0
  546. /package/dist/{shared → internal/shared}/utils/telegram-handle.d.ts +0 -0
  547. /package/dist/{shared → internal/shared}/utils/telegram-handle.js +0 -0
  548. /package/dist/{shared/interfaces/database.capabilities.js → platform/database/capabilities.js} +0 -0
  549. /package/dist/{shared/interfaces/database.entities.js → platform/database/entities.js} +0 -0
  550. /package/dist/{shared/interfaces/database.identity-queries.js → platform/database/identity-queries.js} +0 -0
  551. /package/dist/{agents/agent.dispatcher.port.js → platform/database/negotiation.js} +0 -0
  552. /package/dist/{chat/chat.persona.js → platform/database/opportunity-queries.js} +0 -0
  553. /package/dist/{contexts/context.tools.port.js → platform/discovery/embedder.js} +0 -0
  554. /package/dist/{shared/interfaces/scraper.interface.d.ts → platform/discovery/scraper.d.ts} +0 -0
  555. /package/dist/{negotiations/negotiation.deadlock.contracts.js → platform/discovery/scraper.js} +0 -0
  556. /package/dist/{shared/interfaces/enrichment.interface.d.ts → platform/enrichment/ports.d.ts} +0 -0
  557. /package/dist/{negotiations/negotiation.tools.port.js → platform/enrichment/ports.js} +0 -0
  558. /package/dist/{opportunities/opportunity.tools.port.js → platform/runtime/observability.js} +0 -0
  559. /package/dist/{questions/question.input.js → protocol/core.js} +0 -0
  560. /package/dist/{shared → protocol}/schemas/chat-context.schema.d.ts +0 -0
  561. /package/dist/{shared → protocol}/schemas/chat-context.schema.js +0 -0
@@ -1,535 +0,0 @@
1
- import { z } from 'zod';
2
- import { McpActivityCallerSchema } from '../shared/agent/activity-projection.js';
3
- /** Canonical MCP permission actions. */
4
- export const MCP_PERMISSION_ACTIONS = [
5
- 'manage:identity',
6
- 'manage:premises',
7
- 'manage:intents',
8
- 'manage:networks',
9
- 'manage:opportunities',
10
- 'manage:negotiations',
11
- ];
12
- export const McpPermissionActionSchema = z.enum(MCP_PERMISSION_ACTIONS);
13
- export const McpToolPermissionRequirementSchema = z.object({
14
- action: McpPermissionActionSchema,
15
- /**
16
- * Capability reach only. Entity ownership, membership, approval, and exact
17
- * scope checks remain in the capability handler.
18
- */
19
- reach: z.enum(['principal', 'network']).default('principal'),
20
- }).strict();
21
- const McpToolPermissionMapSchema = z.record(z.string().min(1), McpToolPermissionRequirementSchema);
22
- /**
23
- * Runtime-validates a capability-owned tool-to-permission mapping.
24
- */
25
- export function defineMcpToolPermissionMap(mapping) {
26
- const parsed = McpToolPermissionMapSchema.parse(mapping);
27
- return new Map(Object.entries(parsed));
28
- }
29
- /**
30
- * Exact full-standalone Hermes MCP surface. Every admitted tool maps to one
31
- * canonical action; absence is denial, including human-only, deletion,
32
- * permission-management, agent-administration, and retired aliases.
33
- */
34
- export const HERMES_AGENT_MCP_TOOL_PERMISSIONS = defineMcpToolPermissionMap({
35
- read_user_contexts: { action: 'manage:identity', reach: 'principal' },
36
- preview_user_context: { action: 'manage:identity', reach: 'principal' },
37
- confirm_user_context: { action: 'manage:identity', reach: 'principal' },
38
- create_user_context: { action: 'manage:identity', reach: 'principal' },
39
- update_user_context: { action: 'manage:identity', reach: 'principal' },
40
- get_enrichment_run: { action: 'manage:identity', reach: 'principal' },
41
- cancel_enrichment_run: { action: 'manage:identity', reach: 'principal' },
42
- read_intents: { action: 'manage:intents', reach: 'network' },
43
- search_intents: { action: 'manage:intents', reach: 'network' },
44
- create_intent: { action: 'manage:intents', reach: 'network' },
45
- update_intent: { action: 'manage:intents', reach: 'network' },
46
- read_intent_indexes: { action: 'manage:intents', reach: 'network' },
47
- create_intent_index: { action: 'manage:intents', reach: 'network' },
48
- list_negotiations: { action: 'manage:negotiations', reach: 'network' },
49
- get_negotiation: { action: 'manage:negotiations', reach: 'network' },
50
- respond_to_negotiation: { action: 'manage:negotiations', reach: 'network' },
51
- read_networks: { action: 'manage:networks', reach: 'network' },
52
- read_network_memberships: { action: 'manage:networks', reach: 'network' },
53
- create_network: { action: 'manage:networks', reach: 'network' },
54
- update_network: { action: 'manage:networks', reach: 'network' },
55
- create_network_membership: { action: 'manage:networks', reach: 'network' },
56
- list_opportunities: { action: 'manage:opportunities', reach: 'network' },
57
- update_opportunity: { action: 'manage:opportunities', reach: 'network' },
58
- confirm_opportunity_delivery: { action: 'manage:opportunities', reach: 'network' },
59
- read_premises: { action: 'manage:premises', reach: 'principal' },
60
- create_premise: { action: 'manage:premises', reach: 'principal' },
61
- update_premise: { action: 'manage:premises', reach: 'principal' },
62
- retract_premise: { action: 'manage:premises', reach: 'principal' },
63
- read_activity_summary: { action: 'manage:identity', reach: 'principal' },
64
- read_docs: { action: 'manage:identity', reach: 'principal' },
65
- });
66
- export const McpToolAccessRuleSchema = z.object({
67
- access: z.enum([
68
- 'permission',
69
- 'authenticated',
70
- 'human_only',
71
- 'agent_admin',
72
- 'informational',
73
- 'delivery_only',
74
- 'removed',
75
- ]),
76
- actions: z.array(McpPermissionActionSchema).optional(),
77
- reach: z.enum(['principal', 'network']),
78
- }).strict().superRefine((rule, ctx) => {
79
- if (rule.access === 'permission' && (!rule.actions || rule.actions.length === 0)) {
80
- ctx.addIssue({
81
- code: z.ZodIssueCode.custom,
82
- path: ['actions'],
83
- message: 'Permission rules require at least one action.',
84
- });
85
- }
86
- if (rule.access !== 'permission' && rule.actions !== undefined) {
87
- ctx.addIssue({
88
- code: z.ZodIssueCode.custom,
89
- path: ['actions'],
90
- message: 'Only permission rules may declare actions.',
91
- });
92
- }
93
- });
94
- const McpToolAccessRuleMapSchema = z.record(z.string().min(1), McpToolAccessRuleSchema);
95
- /** Runtime-validates a complete static MCP tool access matrix. */
96
- export function defineMcpToolAccessRules(rules) {
97
- const parsed = McpToolAccessRuleMapSchema.parse(rules);
98
- return new Map(Object.entries(parsed));
99
- }
100
- /**
101
- * Canonical MCP tool authorization matrix.
102
- *
103
- * Every tool registered by `createToolRegistry` is classified. Tool handlers
104
- * retain domain ownership, membership, exact-scope, and approval checks.
105
- */
106
- export const CANONICAL_MCP_TOOL_ACCESS_RULES = defineMcpToolAccessRules({
107
- // Participant identity/context.
108
- read_user_contexts: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
109
- preview_user_context: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
110
- confirm_user_context: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
111
- create_user_context: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
112
- update_user_context: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
113
- get_enrichment_run: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
114
- cancel_enrichment_run: { access: 'permission', actions: ['manage:identity'], reach: 'principal' },
115
- // Premises are meta-network; a network-scoped agent retains principal reach.
116
- read_premises: { access: 'permission', actions: ['manage:premises'], reach: 'principal' },
117
- create_premise: { access: 'permission', actions: ['manage:premises'], reach: 'principal' },
118
- update_premise: { access: 'permission', actions: ['manage:premises'], reach: 'principal' },
119
- retract_premise: { access: 'permission', actions: ['manage:premises'], reach: 'principal' },
120
- // Signals.
121
- read_intents: { access: 'authenticated', reach: 'network' },
122
- search_intents: { access: 'authenticated', reach: 'network' },
123
- create_intent: { access: 'permission', actions: ['manage:intents'], reach: 'network' },
124
- update_intent: { access: 'permission', actions: ['manage:intents'], reach: 'network' },
125
- delete_intent: { access: 'permission', actions: ['manage:intents'], reach: 'network' },
126
- read_intent_indexes: { access: 'authenticated', reach: 'network' },
127
- create_intent_index: { access: 'permission', actions: ['manage:intents'], reach: 'network' },
128
- delete_intent_index: { access: 'permission', actions: ['manage:intents'], reach: 'network' },
129
- // Communities.
130
- read_networks: { access: 'authenticated', reach: 'network' },
131
- read_network_memberships: { access: 'authenticated', reach: 'network' },
132
- create_network: { access: 'permission', actions: ['manage:networks'], reach: 'network' },
133
- update_network: { access: 'permission', actions: ['manage:networks'], reach: 'network' },
134
- delete_network: { access: 'human_only', reach: 'network' },
135
- create_network_membership: { access: 'permission', actions: ['manage:networks'], reach: 'network' },
136
- delete_network_membership: { access: 'permission', actions: ['manage:networks'], reach: 'network' },
137
- // Opportunities and delivery.
138
- list_opportunities: { access: 'authenticated', reach: 'network' },
139
- update_opportunity: { access: 'permission', actions: ['manage:opportunities'], reach: 'network' },
140
- confirm_opportunity_delivery: { access: 'delivery_only', reach: 'network' },
141
- // A2A negotiations.
142
- list_negotiations: { access: 'permission', actions: ['manage:negotiations'], reach: 'network' },
143
- get_negotiation: { access: 'permission', actions: ['manage:negotiations'], reach: 'network' },
144
- respond_to_negotiation: { access: 'permission', actions: ['manage:negotiations'], reach: 'network' },
145
- // H2A chat history.
146
- list_conversations: { access: 'human_only', reach: 'principal' },
147
- get_conversation: { access: 'human_only', reach: 'principal' },
148
- // Agent administration.
149
- read_own_agent: { access: 'agent_admin', reach: 'principal' },
150
- register_agent: { access: 'agent_admin', reach: 'principal' },
151
- list_agents: { access: 'agent_admin', reach: 'principal' },
152
- update_agent: { access: 'agent_admin', reach: 'principal' },
153
- delete_agent: { access: 'agent_admin', reach: 'principal' },
154
- grant_agent_permission: { access: 'agent_admin', reach: 'principal' },
155
- revoke_agent_permission: { access: 'agent_admin', reach: 'principal' },
156
- // Protocol guidance.
157
- read_docs: { access: 'informational', reach: 'principal' },
158
- // Aggregate activity reporting. Any activity-domain permission admits the
159
- // call; the handler then projects each domain by the caller's exact grants
160
- // via the centralized activity projection, and a network agent's
161
- // network-bound aggregates are narrowed to its bound community at the
162
- // query/adapter layer.
163
- read_activity_summary: {
164
- access: 'permission',
165
- actions: [
166
- 'manage:identity',
167
- 'manage:premises',
168
- 'manage:intents',
169
- 'manage:opportunities',
170
- 'manage:negotiations',
171
- ],
172
- reach: 'principal',
173
- },
174
- // Restricted MCP surface still registered by the shared registry. The contact
175
- // and Gmail-import tools, scrape_url, the deprecated profile/profile-run
176
- // aliases, and the retired report_agent_activity name are no longer
177
- // classified here because they are omitted from the MCP registry composition
178
- // entirely (IND-596/597/598/605) — an unregistered tool is rejected as
179
- // unknown before any authorization work. read_activity_summary (above) is
180
- // the only public activity-reporting name; no legacy alias is retained.
181
- });
182
- /** Tools visible on the REST Tool API while web/CLI onboarding is incomplete. MCP does not use this allowlist. */
183
- export const ONBOARDING_ALLOWED = new Set([
184
- 'register_agent',
185
- 'read_docs',
186
- 'preview_user_context',
187
- 'get_enrichment_run',
188
- 'cancel_enrichment_run',
189
- 'confirm_user_context',
190
- 'create_user_context',
191
- 'read_user_contexts',
192
- 'complete_onboarding',
193
- 'read_networks',
194
- 'create_network_membership',
195
- 'create_intent',
196
- ]);
197
- /** Agent administration inventory. */
198
- export const MCP_AGENT_ADMIN_TOOLS = new Set([
199
- 'read_own_agent',
200
- 'register_agent',
201
- 'list_agents',
202
- 'update_agent',
203
- 'delete_agent',
204
- 'grant_agent_permission',
205
- 'revoke_agent_permission',
206
- ]);
207
- /** Informational inventory retained as a convenience export. */
208
- export const MCP_INFORMATIONAL_TOOLS = new Set([
209
- 'read_docs',
210
- ]);
211
- const McpPolicyAgentPermissionSchema = z.object({
212
- agentId: z.string().min(1),
213
- userId: z.string().min(1),
214
- scope: z.enum(['global', 'node', 'network']),
215
- scopeId: z.string().min(1).nullable(),
216
- actions: z.array(z.string()),
217
- }).strict();
218
- export const McpPolicyAgentSnapshotSchema = z.object({
219
- id: z.string().min(1),
220
- ownerId: z.string().min(1),
221
- type: z.enum(['personal', 'external', 'system']),
222
- status: z.enum(['active', 'inactive']),
223
- permissions: z.array(McpPolicyAgentPermissionSchema),
224
- }).strict();
225
- export const McpPrincipalProfileSchema = z.enum([
226
- 'session_human',
227
- 'enrollment_key',
228
- 'unregistered_key',
229
- 'registered_global_agent',
230
- 'registered_network_agent',
231
- 'hermes_agent',
232
- 'delivery_agent',
233
- 'invalid_agent',
234
- ]);
235
- export const McpCapabilitySubjectSchema = z.object({
236
- profile: McpPrincipalProfileSchema,
237
- userId: z.string().min(1),
238
- agentId: z.string().min(1).optional(),
239
- agentType: z.enum(['personal', 'external', 'system']).optional(),
240
- networkScopeId: z.string().min(1).nullable(),
241
- permissions: z.array(McpPermissionActionSchema),
242
- }).strict();
243
- /**
244
- * Retired durable grant actions and the canonical capabilities each projects to
245
- * at the permission-loading boundary. TEMPORARY rolling-data compatibility
246
- * (IND-607): while a mixed-version fleet is live, old replicas (current `dev`)
247
- * still WRITE `manage:profile` / `manage:contacts` rows AFTER the pre-deploy
248
- * `0109` migration runs, and un-migrated rows may also remain. The new runtime
249
- * must therefore interpret these residual STORED rows so no agent loses access
250
- * during the rolling window and none is over-authorized:
251
- *
252
- * - `manage:profile` -> `manage:identity` + `manage:premises`
253
- * - `manage:contacts` -> (no capability)
254
- *
255
- * This is NOT a public alias: the legacy names are never accepted as INPUT
256
- * (grant validation and tool schemas are canonical-only) and never surfaced in
257
- * documentation or `tools/list`. They are tolerated ONLY as pre-existing stored
258
- * data, and only until the post-drain final sweep sets `retired_remaining = 0`
259
- * and the compatibility-removal gate is met (see the IND-609 rollout doc).
260
- */
261
- const LEGACY_STORED_ACTION_PROJECTION = {
262
- 'manage:profile': ['manage:identity', 'manage:premises'],
263
- 'manage:contacts': [],
264
- };
265
- /**
266
- * Central capability-loading interpretation of a stored permission row's raw
267
- * actions. Canonical actions pass through; retired actions project per
268
- * {@link LEGACY_STORED_ACTION_PROJECTION}; every unknown action fails closed
269
- * (ignored). Owner/scope matching is applied by the caller BEFORE this runs, so
270
- * this function never widens the scope a grant applies to.
271
- */
272
- export function projectStoredPermissionActions(actions) {
273
- const granted = new Set();
274
- for (const action of actions) {
275
- const projected = LEGACY_STORED_ACTION_PROJECTION[action];
276
- if (projected !== undefined) {
277
- for (const capability of projected)
278
- granted.add(capability);
279
- continue;
280
- }
281
- const parsed = McpPermissionActionSchema.safeParse(action);
282
- if (parsed.success)
283
- granted.add(parsed.data);
284
- // Unknown actions are ignored — fail closed.
285
- }
286
- return [...granted];
287
- }
288
- function resolveAgentPermissions(identity, agent) {
289
- const granted = new Set();
290
- for (const permission of agent.permissions) {
291
- if (permission.agentId !== identity.agentId || permission.userId !== identity.userId)
292
- continue;
293
- const scopeApplies = permission.scope === 'global' ||
294
- (permission.scope === 'network' &&
295
- identity.networkScopeId !== null &&
296
- identity.networkScopeId !== undefined &&
297
- permission.scopeId === identity.networkScopeId);
298
- if (!scopeApplies)
299
- continue;
300
- // Canonical-only going forward, plus temporary interpretation of residual
301
- // legacy stored rows during the mixed-version rolling window.
302
- for (const action of projectStoredPermissionActions(permission.actions)) {
303
- granted.add(action);
304
- }
305
- }
306
- return [...granted];
307
- }
308
- /**
309
- * Resolves a request-local, runtime-validated principal profile.
310
- */
311
- export function resolveMcpCapabilitySubject(input) {
312
- const { identity } = input;
313
- if (identity.isSessionAuth === true) {
314
- return McpCapabilitySubjectSchema.parse({
315
- profile: 'session_human',
316
- userId: identity.userId,
317
- networkScopeId: null,
318
- permissions: [],
319
- });
320
- }
321
- if (!identity.agentId) {
322
- return McpCapabilitySubjectSchema.parse({
323
- profile: identity.enrollmentCapable === true ? 'enrollment_key' : 'unregistered_key',
324
- userId: identity.userId,
325
- networkScopeId: null,
326
- permissions: [],
327
- });
328
- }
329
- const parsedAgent = McpPolicyAgentSnapshotSchema.safeParse(input.agent);
330
- if (!parsedAgent.success ||
331
- parsedAgent.data.id !== identity.agentId ||
332
- parsedAgent.data.ownerId !== identity.userId ||
333
- parsedAgent.data.status !== 'active') {
334
- return McpCapabilitySubjectSchema.parse({
335
- profile: 'invalid_agent',
336
- userId: identity.userId,
337
- agentId: identity.agentId,
338
- networkScopeId: identity.networkScopeId ?? null,
339
- permissions: [],
340
- });
341
- }
342
- const agent = parsedAgent.data;
343
- const profile = identity.isHermesAgent === true
344
- ? 'hermes_agent'
345
- : identity.isDeliveryAgent === true
346
- ? 'delivery_agent'
347
- : identity.networkScopeId
348
- ? 'registered_network_agent'
349
- : 'registered_global_agent';
350
- return McpCapabilitySubjectSchema.parse({
351
- profile,
352
- userId: identity.userId,
353
- agentId: identity.agentId,
354
- agentType: agent.type,
355
- networkScopeId: identity.networkScopeId ?? null,
356
- permissions: resolveAgentPermissions(identity, agent),
357
- });
358
- }
359
- /**
360
- * Maps a resolved capability subject to the typed caller context consumed by
361
- * the centralized activity-summary projection. Session humans own the
362
- * summarized data and receive the full owner view; every other profile is
363
- * projected as an agent bounded by its granted permissions and (for network
364
- * agents) its bound community.
365
- */
366
- export function resolveMcpActivityCaller(subject) {
367
- const isHuman = subject.profile === 'session_human';
368
- return McpActivityCallerSchema.parse({
369
- kind: isHuman ? 'human' : 'agent',
370
- permissions: isHuman ? [] : subject.permissions,
371
- networkScopeId: isHuman ? null : subject.networkScopeId,
372
- });
373
- }
374
- export const McpCapabilityDecisionReasonSchema = z.enum([
375
- 'session_human',
376
- 'enrollment',
377
- 'authenticated',
378
- 'agent_self_read',
379
- 'informational',
380
- 'permission_granted',
381
- 'delivery',
382
- 'enrollment_required',
383
- 'unregistered_principal',
384
- 'invalid_agent',
385
- 'agent_admin_denied',
386
- 'human_read_own_agent_denied',
387
- 'human_only',
388
- 'permission_missing',
389
- 'delivery_required',
390
- 'removed',
391
- 'tool_unclassified',
392
- ]);
393
- /**
394
- * Builds a safe denial event from a resolved subject and a denial decision.
395
- * Only whitelisted, non-sensitive fields are copied across; the caller's
396
- * granted permissions, credentials, headers, and tool arguments are never
397
- * included.
398
- */
399
- export function buildMcpAuthorizationDenialEvent(input) {
400
- const { phase, toolName, subject, decision } = input;
401
- return {
402
- phase,
403
- toolName,
404
- profile: subject.profile,
405
- reason: decision.reason,
406
- ...(decision.reach ? { reach: decision.reach } : {}),
407
- ...(decision.requiredPermissions && decision.requiredPermissions.length > 0
408
- ? { requiredPermissions: [...decision.requiredPermissions] }
409
- : {}),
410
- userId: subject.userId,
411
- ...(subject.agentId ? { agentId: subject.agentId } : {}),
412
- networkScopeId: subject.networkScopeId,
413
- };
414
- }
415
- /**
416
- * Reusable MCP capability policy. It stores static rules only; caller-specific
417
- * subjects and decisions are never retained.
418
- */
419
- export class McpCapabilityPolicy {
420
- constructor(options = {}) {
421
- const parsedRules = McpToolAccessRuleMapSchema.parse(Object.fromEntries(options.toolRules ?? CANONICAL_MCP_TOOL_ACCESS_RULES));
422
- this.toolRules = new Map(Object.entries(parsedRules));
423
- }
424
- /**
425
- * Decides whether a resolved caller may use one classified tool.
426
- */
427
- authorize(subject, toolName) {
428
- const rule = this.toolRules.get(toolName);
429
- if (!rule)
430
- return { allowed: false, reason: 'tool_unclassified' };
431
- if (rule.access === 'removed') {
432
- return { allowed: false, reason: 'removed', reach: rule.reach };
433
- }
434
- if (subject.profile === 'invalid_agent') {
435
- return { allowed: false, reason: 'invalid_agent', reach: rule.reach };
436
- }
437
- if (subject.profile === 'unregistered_key') {
438
- return { allowed: false, reason: 'unregistered_principal', reach: rule.reach };
439
- }
440
- if (subject.profile === 'enrollment_key') {
441
- return toolName === 'register_agent'
442
- ? { allowed: true, reason: 'enrollment', reach: rule.reach }
443
- : { allowed: false, reason: 'enrollment_required', reach: rule.reach };
444
- }
445
- if (subject.profile === 'hermes_agent') {
446
- const requirement = HERMES_AGENT_MCP_TOOL_PERMISSIONS.get(toolName);
447
- if (!requirement)
448
- return { allowed: false, reason: 'tool_unclassified' };
449
- return subject.permissions.includes(requirement.action)
450
- ? {
451
- allowed: true,
452
- reason: 'permission_granted',
453
- reach: requirement.reach,
454
- requiredPermissions: [requirement.action],
455
- }
456
- : {
457
- allowed: false,
458
- reason: 'permission_missing',
459
- reach: requirement.reach,
460
- requiredPermissions: [requirement.action],
461
- };
462
- }
463
- if (rule.access === 'delivery_only') {
464
- return subject.profile === 'delivery_agent'
465
- ? { allowed: true, reason: 'delivery', reach: rule.reach }
466
- : { allowed: false, reason: 'delivery_required', reach: rule.reach };
467
- }
468
- // Agent administration is split by principal kind and must be decided
469
- // BEFORE the generic session-human blanket allow below — otherwise a
470
- // session human would be admitted to read_own_agent (an agent-only tool)
471
- // by the blanket allow before this rule is ever reached (IND-599).
472
- if (rule.access === 'agent_admin') {
473
- // read_own_agent is the ONLY agent_admin tool available to a registered
474
- // active agent, and it returns that agent's own record (no target). Every
475
- // other agent_admin tool is an owner/admin action reserved for humans.
476
- if (subject.profile === 'registered_global_agent' ||
477
- subject.profile === 'registered_network_agent' ||
478
- subject.profile === 'delivery_agent') {
479
- return toolName === 'read_own_agent'
480
- ? { allowed: true, reason: 'agent_self_read', reach: rule.reach }
481
- : { allowed: false, reason: 'agent_admin_denied', reach: rule.reach };
482
- }
483
- // Session humans get every agent_admin tool EXCEPT read_own_agent,
484
- // which is reserved for agent principals.
485
- if (subject.profile === 'session_human') {
486
- return toolName === 'read_own_agent'
487
- ? { allowed: false, reason: 'human_read_own_agent_denied', reach: rule.reach }
488
- : { allowed: true, reason: 'session_human', reach: rule.reach };
489
- }
490
- // Every other profile (enrollment/unregistered/invalid) is handled above
491
- // and never reaches here; fail closed for completeness.
492
- return { allowed: false, reason: 'agent_admin_denied', reach: rule.reach };
493
- }
494
- if (subject.profile === 'session_human') {
495
- return { allowed: true, reason: 'session_human', reach: rule.reach };
496
- }
497
- if (rule.access === 'human_only') {
498
- return { allowed: false, reason: 'human_only', reach: rule.reach };
499
- }
500
- if (rule.access === 'informational') {
501
- return { allowed: true, reason: 'informational', reach: rule.reach };
502
- }
503
- if (rule.access === 'authenticated') {
504
- return { allowed: true, reason: 'authenticated', reach: rule.reach };
505
- }
506
- const requiredPermissions = rule.actions ?? [];
507
- return requiredPermissions.some((action) => subject.permissions.includes(action))
508
- ? {
509
- allowed: true,
510
- reason: 'permission_granted',
511
- reach: rule.reach,
512
- requiredPermissions,
513
- }
514
- : {
515
- allowed: false,
516
- reason: 'permission_missing',
517
- reach: rule.reach,
518
- requiredPermissions,
519
- };
520
- }
521
- /**
522
- * Filters a static inventory and returns a fresh, uncached caller list.
523
- */
524
- visibleToolNames(subject, toolNames) {
525
- return toolNames.filter((toolName) => this.authorize(subject, toolName).allowed);
526
- }
527
- /** Returns the static classification for inventory tests and host composition. */
528
- ruleFor(toolName) {
529
- return this.toolRules.get(toolName);
530
- }
531
- }
532
- /** Canonical production options explicitly passed by the host composition. */
533
- export const CANONICAL_MCP_CAPABILITY_POLICY_OPTIONS = {
534
- toolRules: CANONICAL_MCP_TOOL_ACCESS_RULES,
535
- };
@@ -1,90 +0,0 @@
1
- /**
2
- * MCP Server Factory — creates an McpServer instance with all protocol tools
3
- * registered from the existing tool registry. Each tool invocation resolves
4
- * auth from the HTTP request, builds a ResolvedToolContext, and delegates
5
- * to the raw tool handler.
6
- */
7
- import { McpServer, fromJsonSchema } from '@modelcontextprotocol/server';
8
- import type { JsonSchemaType } from '@modelcontextprotocol/server';
9
- import type { McpAuthResolver } from '../shared/interfaces/auth.interface.js';
10
- import type { ToolDeps, ResolvedToolContext, RawToolDefinition } from '../shared/agent/tool.helpers.js';
11
- import type { ToolRegistryDeps } from '../shared/agent/tool.registry.js';
12
- import type { McpAuthorizationObserver, McpCapabilityPolicyOptions } from './mcp.authorization-policy.js';
13
- /**
14
- * Static registration metadata for one MCP tool — schema conversion artifacts
15
- * that depend only on registry-shaping feature flags, not on per-request
16
- * database scope.
17
- */
18
- type McpToolRegistrationMetadata = Pick<RawToolDefinition, 'name' | 'description' | 'schema'> & {
19
- jsonSchema: JsonSchemaType;
20
- inputSchema: ReturnType<typeof fromJsonSchema>;
21
- };
22
- /**
23
- * Builds a cache key from registry-shaping dependency booleans.
24
- * When a feature flag changes the tool set, the cache key changes so
25
- * the cached metadata set is automatically invalidated.
26
- */
27
- export declare function getMcpToolMetadataCacheKey(deps: Pick<ToolDeps, 'chatSession' | 'agentDatabase' | 'agentDispatcher' | 'questionerEnqueue'>): string;
28
- /**
29
- * Clears the metadata cache. Used in tests to ensure fresh state between cases.
30
- */
31
- export declare function clearMcpToolMetadataCacheForTests(): void;
32
- /**
33
- * Returns cached (or builds and caches) static MCP tool registration metadata.
34
- * The first call per cache key runs the full registry creation + schema
35
- * conversion; subsequent calls return the cached metadata array for the same
36
- * registry-shaping dependency profile.
37
- *
38
- * Does NOT store tool handlers — those remain request-scoped because they
39
- * capture per-request userDb/systemDb.
40
- */
41
- export declare function getCachedMcpToolMetadata(deps: ToolRegistryDeps): readonly McpToolRegistrationMetadata[];
42
- /**
43
- * Runtime/auth failures are converted into structured MCP `isError` tool
44
- * results for the caller. Reporting them as application exceptions produces
45
- * Sentry noise for expected client failures and policy-enforced timeouts.
46
- */
47
- export declare function shouldReportMcpToolError(err: unknown): boolean;
48
- /**
49
- * Strips internal `_`-prefixed keys from `data` and promotes `isError`
50
- * from the inner `success: false` signal to the MCP envelope level.
51
- * Fail-open: if JSON parsing throws, returns the original text with isError: false.
52
- */
53
- export declare function sanitizeMcpResult(text: string): {
54
- text: string;
55
- isError: boolean;
56
- };
57
- /**
58
- * Factory for creating per-request scoped database instances.
59
- * Injected from the controller/handler layer to keep the protocol layer
60
- * free of direct adapter imports.
61
- */
62
- export interface ScopedDepsFactory {
63
- /** Creates scoped userDb and systemDb for the given user and allowed network IDs. */
64
- create(userId: string, allowedNetworkIds: string[]): Pick<ToolDeps, 'userDb' | 'systemDb'>;
65
- }
66
- /**
67
- * Promotes a network-scoped agent's bound network into the resolved tool
68
- * context as the implicit chat scope. Every tool derives its focused network
69
- * from the `scopeType`/`scopeId` envelope; without this step scoped API-key
70
- * calls would still resolve an unscoped/global view.
71
- *
72
- * No-op when there is no scope, or when an explicit scope is already set
73
- * (a user-driven network-scoped chat must keep precedence over the agent
74
- * binding — which would be a strict subset anyway, since the API key cannot
75
- * reach beyond its bound network).
76
- */
77
- export declare const applyNetworkScopeToContext: (context: ResolvedToolContext, networkScopeId: string | null | undefined) => void;
78
- export { ONBOARDING_ALLOWED } from './mcp.authorization-policy.js';
79
- /**
80
- * Builds the onboarding gate message for REST Tool API callers. Condensed
81
- * from the chat onboarding flow into a 6-step tool-error guide. MCP does
82
- * not use this gate.
83
- */
84
- export declare function buildMcpOnboardingMessage(ctx: ResolvedToolContext): string;
85
- export declare const MCP_INSTRUCTIONS: string;
86
- /**
87
- * Extracts a Bearer token from an HTTP Authorization header.
88
- */
89
- export declare function extractBearerToken(req: Request): string | undefined;
90
- export declare function createMcpServer(deps: ToolRegistryDeps, authResolver: McpAuthResolver, scopedDepsFactory: ScopedDepsFactory, policyOptions?: McpCapabilityPolicyOptions, authorizationObserver?: McpAuthorizationObserver): McpServer;