@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
@@ -16,9 +16,13 @@ export const IntentGraphState = Annotation.Root({
16
16
  userProfile: (Annotation),
17
17
  /**
18
18
  * Explicit input content (e.g., user message).
19
- * Optional - graph might run on implicit only.
19
+ * Omitted for read, archive, and status operations.
20
20
  */
21
21
  inputContent: (Annotation),
22
+ /** Host-authorized preparation, reused without admission. Null metadata means the final text was edited. Never pass client-supplied objects here. */
23
+ preparation: (Annotation),
24
+ /** The full preparation outcome for an unprepared create, including repairable feedback. */
25
+ preparationResult: (Annotation),
22
26
  /**
23
27
  * Conversation history for context-aware intent inference.
24
28
  * Used to resolve anaphoric references ("that intent", "this goal").
@@ -30,24 +34,25 @@ export const IntentGraphState = Annotation.Root({
30
34
  default: () => undefined,
31
35
  }),
32
36
  /**
33
- * Operation mode controls graph flow and determines which nodes execute.
34
- * - 'create': Full pipeline (prep → inference → verification → reconciliation → execution)
35
- * - 'update': Skip verification if no new intents (prep → inference → reconciliation → execution)
36
- * - 'delete': Skip inference and verification (prep → reconciliation → execution)
37
- * - 'read': Fast path (prep → queryNode → END) — reads intents without LLM calls
38
- * - 'propose': Inference + verification only, stops before reconciliation (no DB writes)
39
- *
40
- * Defaults to 'create' for backward compatibility.
37
+ * The graph routes on the shape of its input, not a mode flag:
38
+ * - `inputContent` alone → create path (prepare → execute)
39
+ * - `inputContent` + `targetIntentIds` → explicit update, bound to that one id
40
+ * - `targetIntentIds` + `archive: true` → expire those ids, no LLM
41
+ * - `targetIntentIds` + `status` → pause/resume, no LLM
42
+ * - none of the above → read (query fast path)
43
+ * Exactly one of {content, archive, status} may be set per invoke.
41
44
  */
42
- operationMode: Annotation({
45
+ targetIntentIds: Annotation({
43
46
  reducer: (curr, next) => next ?? curr,
44
- default: () => 'create',
47
+ default: () => undefined,
45
48
  }),
46
- /**
47
- * For update/delete operations, specifies which intent IDs to target.
48
- * Optional - used when modifying or removing specific intents.
49
- */
50
- targetIntentIds: Annotation({
49
+ /** Archive route: expire every id in `targetIntentIds`. Requires `targetIntentIds`. */
50
+ archive: Annotation({
51
+ reducer: (curr, next) => next ?? curr,
52
+ default: () => false,
53
+ }),
54
+ /** Transition route: pause/resume the single id in `targetIntentIds`. Requires `targetIntentIds`. */
55
+ status: Annotation({
51
56
  reducer: (curr, next) => next ?? curr,
52
57
  default: () => undefined,
53
58
  }),
@@ -60,14 +65,23 @@ export const IntentGraphState = Annotation.Root({
60
65
  default: () => undefined,
61
66
  }),
62
67
  /**
63
- * Optional network scope (network ID). Used for linking created intents to a network
64
- * and for scoping read operations. Prep always fetches ALL user intents via
65
- * getActiveIntents(userId) regardless of network scope (for global dedup/reconciliation).
68
+ * Optional network scope (network ID) for read operations. Prep always
69
+ * fetches ALL user intents via getActiveIntents(userId) regardless of network
70
+ * scope (for explicit update ownership).
66
71
  */
67
72
  networkId: Annotation({
68
73
  reducer: (curr, next) => next ?? curr,
69
74
  default: () => undefined,
70
75
  }),
76
+ /**
77
+ * Create route: the networks a newly created intent is linked to. Exactly
78
+ * this list is written to `intent_networks`, each one membership-checked;
79
+ * nothing is inferred or scored. An empty list creates an unlinked intent.
80
+ */
81
+ networkIds: Annotation({
82
+ reducer: (curr, next) => next ?? curr,
83
+ default: () => undefined,
84
+ }),
71
85
  /** Focused request scope type for write-side assignment and follow-up queues. */
72
86
  scopeType: Annotation({
73
87
  reducer: (curr, next) => next ?? curr,
@@ -79,14 +93,6 @@ export const IntentGraphState = Annotation.Root({
79
93
  default: () => undefined,
80
94
  }),
81
95
  // --- Populated by Graph (Prep Node) ---
82
- /**
83
- * The formatted string of currently active intents.
84
- * Always populated by prep via getActiveIntents(userId).
85
- */
86
- activeIntents: Annotation({
87
- reducer: (curr, next) => next,
88
- default: () => "",
89
- }),
90
96
  /** IDs of active intents owned by the graph user, used to fail closed on explicit updates. */
91
97
  activeIntentIds: Annotation({
92
98
  reducer: (curr, next) => next,
@@ -115,7 +121,7 @@ export const IntentGraphState = Annotation.Root({
115
121
  }),
116
122
  // --- Output ---
117
123
  /**
118
- * Final actions to be performed on the DB (Create, Update, Expire).
124
+ * Final actions to be performed on the DB (Create, Update, Expire, Transition).
119
125
  */
120
126
  actions: Annotation({
121
127
  reducer: (curr, next) => next,
@@ -129,6 +135,11 @@ export const IntentGraphState = Annotation.Root({
129
135
  reducer: (curr, next) => next,
130
136
  default: () => [],
131
137
  }),
138
+ /** Detailed outcome of a `transition` action, for host-side status mapping. */
139
+ transitionResult: Annotation({
140
+ reducer: (curr, next) => next ?? curr,
141
+ default: () => undefined,
142
+ }),
132
143
  // --- Error State ---
133
144
  /**
134
145
  * If set, indicates a fatal error that should short-circuit the graph to END.
@@ -158,9 +169,9 @@ export const IntentGraphState = Annotation.Root({
158
169
  * For read mode: the set of network IDs the caller's agent can reach.
159
170
  * When set and neither networkId nor queryUserId is provided, the graph
160
171
  * returns the caller's own intents across all networks in this set (scope-aware
161
- * default path). Derived by the tool layer from the scope envelope plus memberships.
172
+ * default path). Derived by the host from the scope envelope plus memberships.
162
173
  */
163
- indexScope: Annotation({
174
+ networkScope: Annotation({
164
175
  reducer: (_curr, next) => next,
165
176
  default: () => undefined,
166
177
  }),
@@ -174,7 +185,7 @@ export const IntentGraphState = Annotation.Root({
174
185
  }),
175
186
  /**
176
187
  * For read mode: when true, return all of the current user's intents
177
- * ignoring network scope. Used before create_intent to detect duplicates.
188
+ * ignoring network scope. Used when the caller requests a global list.
178
189
  */
179
190
  allUserIntents: Annotation({
180
191
  reducer: (curr, next) => next ?? curr,
@@ -0,0 +1,16 @@
1
+ import type { SemanticVerifierOutput } from "./intent.verifier.js";
2
+ import type { IntentValidationFailure } from "./graph/intent.graph.state.js";
3
+ /** The admission policy shared by preparation and explicit updates. */
4
+ export declare function admissionFailure(description: string, verdict: SemanticVerifierOutput, isExplicitUpdate?: boolean): IntentValidationFailure | undefined;
5
+ /** Measurements of exactly one description, independent of admission. */
6
+ export interface IntentSemanticMetadata {
7
+ semanticEntropy: number;
8
+ referentialAnchor: string | null;
9
+ felicityAuthority: number;
10
+ felicitySincerity: number;
11
+ felicityClarity: number;
12
+ intentMode: "REFERENTIAL" | "ATTRIBUTIVE";
13
+ speechActType: "COMMISSIVE" | "DIRECTIVE" | null;
14
+ }
15
+ /** Map even a negative verdict to measurements without applying admission. */
16
+ export declare function semanticMetadata(verdict: SemanticVerifierOutput): IntentSemanticMetadata;
@@ -0,0 +1,30 @@
1
+ const MAX_PERMISSIBLE_ENTROPY = 0.75;
2
+ const MIN_CLEAR_INTENT_SCORE = 40;
3
+ // Match the whole request so qualified job searches use the verifier's verdict.
4
+ const GENERIC_JOB_PHRASE = /^(?:(?:i(?:['’]m|\s+am)?\s+)?(?:want|need|seek(?:ing)?|looking\s+for)\s+)?(?:a|any|some)\s+job[.!?]*$/i;
5
+ const DEFAULT_SPECIFICITY_WARNING = "This signal is broad and may produce many weak matches. Add a more concrete role, outcome, location, timeframe, domain, or specific need to get better recommendations.";
6
+ /** The admission policy shared by preparation and explicit updates. */
7
+ export function admissionFailure(description, verdict, isExplicitUpdate = false) {
8
+ const details = { classification: verdict.classification, referentialBreadth: verdict.referential_breadth };
9
+ if (!["COMMISSIVE", "DIRECTIVE", "DECLARATION"].includes(verdict.classification)) {
10
+ return { ...details, category: "non_actionable", message: "Describe who you want to reach and what you want to do together." };
11
+ }
12
+ if (GENERIC_JOB_PHRASE.test(description.trim()) || verdict.semantic_entropy > MAX_PERMISSIBLE_ENTROPY || verdict.felicity_scores.clarity < MIN_CLEAR_INTENT_SCORE) {
13
+ return { ...details, category: "vague_or_invalid", message: "Make the goal more concrete: specify the role, outcome, or particular help you need." };
14
+ }
15
+ if (!isExplicitUpdate && verdict.referential_breadth === "broad") {
16
+ return { ...details, category: "vague_or_invalid", message: verdict.specificity_warning?.trim() || DEFAULT_SPECIFICITY_WARNING };
17
+ }
18
+ }
19
+ /** Map even a negative verdict to measurements without applying admission. */
20
+ export function semanticMetadata(verdict) {
21
+ return {
22
+ semanticEntropy: verdict.semantic_entropy,
23
+ referentialAnchor: verdict.referential_anchor,
24
+ felicityAuthority: verdict.felicity_scores.authority,
25
+ felicitySincerity: verdict.felicity_scores.sincerity,
26
+ felicityClarity: verdict.felicity_scores.clarity,
27
+ intentMode: verdict.referential_anchor ? "REFERENTIAL" : "ATTRIBUTIVE",
28
+ speechActType: verdict.classification === "COMMISSIVE" || verdict.classification === "DIRECTIVE" ? verdict.classification : null,
29
+ };
30
+ }
@@ -5,18 +5,6 @@ import { z } from "zod";
5
5
  * Used to implement safety controls for read/write separation.
6
6
  */
7
7
  export interface InferrerOptions {
8
- /**
9
- * Whether to fallback to profile inference when content is empty.
10
- * Should be TRUE for create operations without explicit content.
11
- * Should be FALSE for query operations.
12
- * Default: true (for backward compatibility).
13
- */
14
- allowProfileFallback?: boolean;
15
- /**
16
- * The operation mode for context.
17
- * Helps inferrer understand the user's intent.
18
- */
19
- operationMode?: 'create' | 'update' | 'delete';
20
8
  /**
21
9
  * Conversation history for anaphoric resolution.
22
10
  * Used to resolve references like "that intent", "this goal", etc.
@@ -48,7 +36,7 @@ export declare class ExplicitIntentInferrer {
48
36
  * Main entry point. Invokes the agent with input and returns structured output.
49
37
  * @param content - The raw string content to analyze.
50
38
  * @param profileContext - The formatted profile context string.
51
- * @param options - Options controlling inference behavior (fallback, operation mode, conversation context).
39
+ * @param options - Conversation context for the explicit update.
52
40
  */
53
41
  invoke(content: string | null, profileContext: string, options?: InferrerOptions): Promise<{
54
42
  intents: {
@@ -63,32 +51,5 @@ export declare class ExplicitIntentInferrer {
63
51
  * Converts BaseMessage[] to readable string format.
64
52
  */
65
53
  private formatConversationHistory;
66
- /**
67
- * Factory method to expose the agent as a LangChain tool.
68
- * Useful for composing agents into larger graphs.
69
- */
70
- static asTool(): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
71
- content: z.ZodNullable<z.ZodString>;
72
- profileContext: z.ZodString;
73
- }, "strip", z.ZodTypeAny, {
74
- profileContext: string;
75
- content: string | null;
76
- }, {
77
- profileContext: string;
78
- content: string | null;
79
- }>, {
80
- profileContext: string;
81
- content: string | null;
82
- }, {
83
- profileContext: string;
84
- content: string | null;
85
- }, {
86
- intents: {
87
- reasoning: string;
88
- type: "goal" | "tombstone";
89
- confidence: "low" | "medium" | "high";
90
- description: string;
91
- }[];
92
- }, unknown, "explicit_intent_inferrer">;
93
54
  }
94
55
  export {};
@@ -8,7 +8,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { HumanMessage, SystemMessage } from "@langchain/core/messages";
11
- import { tool } from "@langchain/core/tools";
12
11
  import { z } from "zod";
13
12
  import { protocolLogger } from "../shared/observability/protocol.logger.js";
14
13
  import { Timed } from "../shared/observability/performance.js";
@@ -42,7 +41,6 @@ const systemPrompt = `
42
41
  - Be precise and self-contained in descriptions (e.g., "Learn Rust programming" instead of "Learn it").
43
42
  - Do NOT try to manage existing IDs or check for duplicates.
44
43
  - IGNORE purely phatic communication (e.g., "Hello", "Hi", "Good morning") - return empty intents.
45
- - For CREATE operations: Extract what the user wants to ADD.
46
44
  - For UPDATE operations: Extract what the user wants to CHANGE.
47
45
  - For queries/questions: You should not see these - return empty intents.
48
46
 
@@ -76,11 +74,6 @@ const systemPrompt = `
76
74
  - Example: If history mentions "text-based RPG game" and user says "make that intent have LLM narration",
77
75
  the output should be "Create a text-based RPG game with LLM-enhanced narration" (preserving "text-based").
78
76
 
79
- WHEN TO FALLBACK TO PROFILE:
80
- - Only when explicitly instructed: "(No content provided. Please infer intents from Profile Narrative and Aspirations)"
81
- - This should ONLY happen for CREATE operations with no explicit user input
82
- - Never infer from profile for query operations
83
- - When content IS present: profile may inform HOW to describe the intent (e.g., adding domain context), but must NOT change WHAT the intent is about
84
77
  `;
85
78
  // ──────────────────────────────────────────────────────────────
86
79
  // 2. RESPONSE SCHEMA (Zod)
@@ -107,22 +100,17 @@ export class ExplicitIntentInferrer {
107
100
  * Main entry point. Invokes the agent with input and returns structured output.
108
101
  * @param content - The raw string content to analyze.
109
102
  * @param profileContext - The formatted profile context string.
110
- * @param options - Options controlling inference behavior (fallback, operation mode, conversation context).
103
+ * @param options - Conversation context for the explicit update.
111
104
  */
112
105
  async invoke(content, profileContext, options = {}) {
113
- const { allowProfileFallback = true, // Default TRUE for backward compatibility
114
- operationMode = 'create', conversationContext = undefined } = options;
106
+ const { conversationContext = undefined } = options;
115
107
  logger.verbose("invoke: received input", {
116
108
  contentPreview: content?.substring(0, 50),
117
- allowProfileFallback,
118
- operationMode,
119
109
  hasConversationContext: !!conversationContext,
120
110
  conversationMessageCount: conversationContext?.length || 0,
121
111
  });
122
- // CRITICAL: Don't fallback to profile when explicitly disabled
123
- // This prevents auto-generation of intents from profile during query operations
124
- if (!content && !allowProfileFallback) {
125
- logger.verbose("invoke: no content and fallback disabled, returning empty");
112
+ if (!content) {
113
+ logger.verbose("invoke: no content, returning empty");
126
114
  return { intents: [] };
127
115
  }
128
116
  // Build conversation history section for anaphoric resolution
@@ -132,24 +120,20 @@ export class ExplicitIntentInferrer {
132
120
  const conversationSection = formattedHistory
133
121
  ? `# Conversation History (for reference resolution)\n${formattedHistory}\n`
134
122
  : '';
135
- // Build content section based on fallback setting
136
- const contentSection = content
137
- ? `## New Content\n\n${content}`
138
- : allowProfileFallback
139
- ? '(No content provided. Please infer intents from Profile Narrative and Aspirations)'
140
- : '(No content to analyze. Return empty intents list.)';
123
+ const contentSection = `## New Content\n\n${content}`;
124
+ // No profile means no profile section at all. Callers that deliberately run
125
+ // profile-blind must not see an empty heading the model could try to fill in.
126
+ const profileSection = profileContext?.trim()
127
+ ? `# User Memory Profile\n ${profileContext}\n`
128
+ : '';
141
129
  const prompt = `
142
130
  Context:
143
- # User Memory Profile
144
- ${profileContext}
145
-
131
+ ${profileSection}
146
132
  ${conversationSection}${contentSection}
147
133
 
148
134
  # Operation Context
149
- This analysis is for a ${operationMode} operation.
150
- ${operationMode === 'create' ? 'Extract NEW intents the user wants to add.' : ''}
151
- ${operationMode === 'update' ? 'Extract MODIFICATIONS to existing intents. Use conversation history to resolve references like "that intent".' : ''}
152
- ${operationMode === 'delete' ? 'This should not execute - delete operations skip inference.' : ''}
135
+ This analysis is for an update operation.
136
+ Extract MODIFICATIONS to existing intents. Use conversation history to resolve references like "that intent".
153
137
  `;
154
138
  logger.debug("invoke: prompt details", {
155
139
  hasConversationHistory: !!conversationSection,
@@ -168,9 +152,6 @@ export class ExplicitIntentInferrer {
168
152
  const output = responseFormat.parse(result);
169
153
  logger.verbose('invoke: found intents', {
170
154
  count: output.intents.length,
171
- operationMode,
172
- allowedFallback: allowProfileFallback,
173
- usedFallback: !content && allowProfileFallback,
174
155
  });
175
156
  return output;
176
157
  }
@@ -207,23 +188,6 @@ export class ExplicitIntentInferrer {
207
188
  });
208
189
  return formatted;
209
190
  }
210
- /**
211
- * Factory method to expose the agent as a LangChain tool.
212
- * Useful for composing agents into larger graphs.
213
- */
214
- static asTool() {
215
- return tool(async (args) => {
216
- const agent = new ExplicitIntentInferrer();
217
- return await agent.invoke(args.content, args.profileContext);
218
- }, {
219
- name: 'explicit_intent_inferrer',
220
- description: 'Extracts explicit intents from user content and profile context.',
221
- schema: z.object({
222
- content: z.string().nullable().describe('The new content to analyze'),
223
- profileContext: z.string().describe('The user profile context')
224
- })
225
- });
226
- }
227
191
  }
228
192
  __decorate([
229
193
  Timed(),
@@ -0,0 +1,52 @@
1
+ import { type IntentSemanticMetadata } from "./intent.admission.js";
2
+ import { SemanticVerifier } from "./intent.verifier.js";
3
+ /** One answer paired with the recovery field it fills. */
4
+ export interface PrepareAnswer {
5
+ prompt: string;
6
+ answer: string;
7
+ }
8
+ /** The current draft and recovery answers not yet folded into it. */
9
+ export interface PrepareInput {
10
+ payload: string;
11
+ answers?: PrepareAnswer[];
12
+ }
13
+ export interface RecoveryFieldOption {
14
+ label: string;
15
+ description: string;
16
+ }
17
+ export type RecoveryFieldKind = "single" | "multi" | "text";
18
+ export interface RecoveryField {
19
+ id: string;
20
+ label: string;
21
+ kind: RecoveryFieldKind;
22
+ options?: RecoveryFieldOption[];
23
+ placeholder?: string;
24
+ }
25
+ /** Host-authorized preparation. Null metadata authorizes revisions needing fresh measurements. Never accept this object from an untrusted client. */
26
+ export interface PreparedIntent {
27
+ metadata: IntentSemanticMetadata | null;
28
+ }
29
+ /** Review is available only after admission of the complete prepared draft. */
30
+ export type PrepareResult = {
31
+ status: "ready";
32
+ payload: string;
33
+ metadata: IntentSemanticMetadata;
34
+ } | {
35
+ status: "needs_revision";
36
+ payload: string;
37
+ feedback: string;
38
+ recovery: RecoveryField[];
39
+ };
40
+ /** Folds recovery answers into a draft, admits its final form, and returns a dynamic recovery form on failure. Model failures propagate for retry. */
41
+ export declare class IntentPreparer {
42
+ private readonly verifier;
43
+ constructor(verifier?: Pick<SemanticVerifier, "invoke">);
44
+ /**
45
+ * Prepare one draft using the creation admission policy.
46
+ * @param input - Current payload and pending recovery answers.
47
+ * @param profileContext - The speaker's profile, if supplied by the host.
48
+ * @returns An admitted draft or admission feedback plus a recovery form.
49
+ * @throws When rewriting, verification, or recovery generation fails; callers must retain the input for retry.
50
+ */
51
+ invoke(input: PrepareInput, profileContext?: string): Promise<PrepareResult>;
52
+ }
@@ -0,0 +1,87 @@
1
+ import { HumanMessage, SystemMessage } from "@langchain/core/messages";
2
+ import { z } from "zod";
3
+ import { createStructuredModel } from "../shared/agent/model.config.js";
4
+ import { invokeWithAbortSignal } from "../shared/agent/model-signal.js";
5
+ import { admissionFailure, semanticMetadata } from "./intent.admission.js";
6
+ import { SemanticVerifier } from "./intent.verifier.js";
7
+ const payloadSchema = z.object({ payload: z.string().trim().min(1).max(65536) });
8
+ const recoveryOptionSchema = z.object({
9
+ label: z.string().trim().min(1).max(120),
10
+ description: z.string().max(280).nullable().optional().transform((value) => value ?? ""),
11
+ });
12
+ const recoveryFieldSchema = z.object({
13
+ id: z.string().trim().min(1).max(40),
14
+ label: z.string().trim().min(1).max(120),
15
+ kind: z.enum(["single", "multi", "text"]),
16
+ options: z.array(recoveryOptionSchema).min(2).max(5).nullable().optional(),
17
+ placeholder: z.string().max(200).nullable().optional(),
18
+ });
19
+ const recoverySchema = z.object({
20
+ recovery: z.array(recoveryFieldSchema).min(2).max(6),
21
+ });
22
+ function parseRecoveryFields(result) {
23
+ return result.recovery.map((field) => {
24
+ const placeholder = field.placeholder?.trim() || undefined;
25
+ const options = field.options?.length ? field.options : undefined;
26
+ if (field.kind === "text") {
27
+ if (!placeholder) {
28
+ throw new Error("Text recovery fields require a placeholder.");
29
+ }
30
+ return { id: field.id, label: field.label, kind: field.kind, placeholder };
31
+ }
32
+ if (!options?.length) {
33
+ throw new Error("Single and multi recovery fields require options.");
34
+ }
35
+ return { id: field.id, label: field.label, kind: field.kind, options };
36
+ });
37
+ }
38
+ /** Folds recovery answers into a draft, admits its final form, and returns a dynamic recovery form on failure. Model failures propagate for retry. */
39
+ export class IntentPreparer {
40
+ constructor(verifier = new SemanticVerifier()) {
41
+ this.verifier = verifier;
42
+ }
43
+ /**
44
+ * Prepare one draft using the creation admission policy.
45
+ * @param input - Current payload and pending recovery answers.
46
+ * @param profileContext - The speaker's profile, if supplied by the host.
47
+ * @returns An admitted draft or admission feedback plus a recovery form.
48
+ * @throws When rewriting, verification, or recovery generation fails; callers must retain the input for retry.
49
+ */
50
+ async invoke(input, profileContext = "") {
51
+ const answers = (input.answers ?? []).filter((answer) => answer.answer.trim());
52
+ let payload = input.payload;
53
+ if (answers.length > 0) {
54
+ const model = createStructuredModel("intentClarifier", payloadSchema, { name: "intent_draft" });
55
+ const result = await invokeWithAbortSignal(model, [
56
+ new SystemMessage("Fold every supplied answer into the signal in the person's own voice. Preserve all existing details unless an answer explicitly changes them. Every claim must trace to the draft or answers; never invent constraints or facts to make a signal pass validation. Return the complete draft, concise and concrete."),
57
+ new HumanMessage(JSON.stringify({ payload, answers })),
58
+ ]);
59
+ payload = payloadSchema.parse(result).payload;
60
+ }
61
+ const verdict = await this.verifier.invoke(payload, profileContext);
62
+ const failure = admissionFailure(payload, verdict);
63
+ if (!failure)
64
+ return { status: "ready", payload, metadata: semanticMetadata(verdict) };
65
+ const model = createStructuredModel("intentClarifier", recoverySchema, { name: "intent_recovery" });
66
+ const result = await invokeWithAbortSignal(model, [
67
+ new SystemMessage("Build one recovery form that helps the person concretize their signal. Return 2-6 fields. Each field needs a draft-specific label, a kind (single, multi, or text), and for single/multi 2-5 concrete options anchored to the draft. Text fields need a placeholder. Never re-ask what the draft or answers already settle. Options must be matchable and specific. Do not expose scores, classifications, JSON, or internal vocabulary."),
68
+ new HumanMessage(JSON.stringify({
69
+ payload,
70
+ answers,
71
+ feedback: failure.message,
72
+ category: failure.category,
73
+ classification: verdict.classification,
74
+ clarity: verdict.felicity_scores.clarity,
75
+ entropy: verdict.semantic_entropy,
76
+ referentialBreadth: verdict.referential_breadth,
77
+ missingConstraints: verdict.missing_selectional_constraints,
78
+ })),
79
+ ]);
80
+ return {
81
+ status: "needs_revision",
82
+ payload,
83
+ feedback: failure.message,
84
+ recovery: parseRecoveryFields(recoverySchema.parse(result)),
85
+ };
86
+ }
87
+ }
@@ -34,7 +34,7 @@ declare const responseFormat: z.ZodObject<{
34
34
  semantic_entropy: number;
35
35
  referential_anchor: string | null;
36
36
  referential_breadth: "narrow" | "moderate" | "broad";
37
- missing_selectional_constraints: ("location" | "role" | "outcome" | "timeframe" | "domain" | "concrete_need")[];
37
+ missing_selectional_constraints: ("location" | "outcome" | "role" | "timeframe" | "domain" | "concrete_need")[];
38
38
  specificity_warning: string | null;
39
39
  flags: string[];
40
40
  }, {
@@ -48,7 +48,7 @@ declare const responseFormat: z.ZodObject<{
48
48
  semantic_entropy: number;
49
49
  referential_anchor: string | null;
50
50
  referential_breadth: "narrow" | "moderate" | "broad";
51
- missing_selectional_constraints: ("location" | "role" | "outcome" | "timeframe" | "domain" | "concrete_need")[];
51
+ missing_selectional_constraints: ("location" | "outcome" | "role" | "timeframe" | "domain" | "concrete_need")[];
52
52
  specificity_warning: string | null;
53
53
  flags: string[];
54
54
  }>;
@@ -74,42 +74,9 @@ export declare class SemanticVerifier {
74
74
  semantic_entropy: number;
75
75
  referential_anchor: string | null;
76
76
  referential_breadth: "narrow" | "moderate" | "broad";
77
- missing_selectional_constraints: ("location" | "role" | "outcome" | "timeframe" | "domain" | "concrete_need")[];
77
+ missing_selectional_constraints: ("location" | "outcome" | "role" | "timeframe" | "domain" | "concrete_need")[];
78
78
  specificity_warning: string | null;
79
79
  flags: string[];
80
80
  }>;
81
- /**
82
- * Factory method to expose the agent as a LangChain tool.
83
- */
84
- static asTool(): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
85
- content: z.ZodString;
86
- context: z.ZodString;
87
- }, "strip", z.ZodTypeAny, {
88
- context: string;
89
- content: string;
90
- }, {
91
- context: string;
92
- content: string;
93
- }>, {
94
- context: string;
95
- content: string;
96
- }, {
97
- context: string;
98
- content: string;
99
- }, {
100
- reasoning: string;
101
- classification: "COMMISSIVE" | "DIRECTIVE" | "ASSERTIVE" | "EXPRESSIVE" | "DECLARATION" | "UNKNOWN";
102
- felicity_scores: {
103
- clarity: number;
104
- authority: number;
105
- sincerity: number;
106
- };
107
- semantic_entropy: number;
108
- referential_anchor: string | null;
109
- referential_breadth: "narrow" | "moderate" | "broad";
110
- missing_selectional_constraints: ("location" | "role" | "outcome" | "timeframe" | "domain" | "concrete_need")[];
111
- specificity_warning: string | null;
112
- flags: string[];
113
- }, unknown, "semantic_verifier">;
114
81
  }
115
82
  export {};
@@ -8,7 +8,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { HumanMessage, SystemMessage } from "@langchain/core/messages";
11
- import { tool } from "@langchain/core/tools";
12
11
  import { z } from "zod";
13
12
  import { protocolLogger } from "../shared/observability/protocol.logger.js";
14
13
  import { Timed } from "../shared/observability/performance.js";
@@ -237,22 +236,6 @@ export class SemanticVerifier {
237
236
  throw error;
238
237
  }
239
238
  }
240
- /**
241
- * Factory method to expose the agent as a LangChain tool.
242
- */
243
- static asTool() {
244
- return tool(async (args) => {
245
- const agent = new SemanticVerifier();
246
- return await agent.invoke(args.content, args.context);
247
- }, {
248
- name: 'semantic_verifier',
249
- description: 'Verifies the semantic validity and felicity conditions of an intent.',
250
- schema: z.object({
251
- content: z.string().describe('The intent content to verify'),
252
- context: z.string().describe('The user profile context')
253
- })
254
- });
255
- }
256
239
  }
257
240
  __decorate([
258
241
  Timed(),