@indexnetwork/protocol 6.12.1-rc.404.1 → 6.14.0-rc.406.1
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.
- package/CHANGELOG.md +249 -0
- package/IMPLEMENTATION.md +20 -0
- package/STABILITY.md +4 -0
- package/dist/agent/agent.tools.d.ts +11 -3
- package/dist/agent/agent.tools.js +11 -301
- package/dist/capabilities/communities.facade.d.ts +13 -0
- package/dist/capabilities/communities.facade.js +12 -0
- package/dist/capabilities/communities.tools.port.d.ts +5 -0
- package/dist/capabilities/communities.tools.port.js +1 -0
- package/dist/capabilities/contacts.facade.d.ts +9 -0
- package/dist/capabilities/contacts.facade.js +8 -0
- package/dist/capabilities/contacts.tools.port.d.ts +9 -0
- package/dist/capabilities/contacts.tools.port.js +1 -0
- package/dist/capabilities/integrations.facade.d.ts +8 -0
- package/dist/capabilities/integrations.facade.js +7 -0
- package/dist/capabilities/integrations.tools.port.d.ts +9 -0
- package/dist/capabilities/integrations.tools.port.js +1 -0
- package/dist/capabilities/interaction-composition.facade.d.ts +10 -0
- package/dist/capabilities/interaction-composition.facade.js +9 -0
- package/dist/capabilities/negotiation.discovery.facade.d.ts +9 -0
- package/dist/capabilities/negotiation.discovery.facade.js +7 -0
- package/dist/capabilities/negotiation.facade.d.ts +23 -0
- package/dist/capabilities/negotiation.facade.js +17 -0
- package/dist/capabilities/negotiation.memory.facade.d.ts +6 -0
- package/dist/capabilities/negotiation.memory.facade.js +5 -0
- package/dist/capabilities/negotiation.questions.facade.d.ts +6 -0
- package/dist/capabilities/negotiation.questions.facade.js +5 -0
- package/dist/capabilities/negotiation.state.facade.d.ts +5 -0
- package/dist/capabilities/negotiation.state.facade.js +1 -0
- package/dist/capabilities/negotiation.summary.facade.d.ts +5 -0
- package/dist/capabilities/negotiation.summary.facade.js +5 -0
- package/dist/capabilities/negotiation.tools.port.d.ts +5 -0
- package/dist/capabilities/negotiation.tools.port.js +1 -0
- package/dist/capabilities/opportunities.facade.d.ts +50 -0
- package/dist/capabilities/opportunities.facade.js +50 -0
- package/dist/capabilities/opportunities.safety.facade.d.ts +2 -0
- package/dist/capabilities/opportunities.safety.facade.js +2 -0
- package/dist/capabilities/opportunities.tools.port.d.ts +5 -0
- package/dist/capabilities/opportunities.tools.port.js +1 -0
- package/dist/capabilities/participant-agents.debug.facade.d.ts +2 -0
- package/dist/capabilities/participant-agents.debug.facade.js +1 -0
- package/dist/capabilities/participant-agents.facade.d.ts +35 -0
- package/dist/capabilities/participant-agents.facade.js +35 -0
- package/dist/capabilities/participant-agents.tools.facade.d.ts +8 -0
- package/dist/capabilities/participant-agents.tools.facade.js +8 -0
- package/dist/capabilities/participant-agents.tools.port.d.ts +9 -0
- package/dist/capabilities/participant-agents.tools.port.js +1 -0
- package/dist/capabilities/participant-context.facade.d.ts +13 -0
- package/dist/capabilities/participant-context.facade.js +14 -0
- package/dist/capabilities/participant-context.tools.port.d.ts +9 -0
- package/dist/capabilities/participant-context.tools.port.js +1 -0
- package/dist/capabilities/questions.enqueue.facade.d.ts +5 -0
- package/dist/capabilities/questions.enqueue.facade.js +1 -0
- package/dist/capabilities/questions.facade.d.ts +8 -0
- package/dist/capabilities/questions.facade.js +7 -0
- package/dist/capabilities/questions.runtime.facade.d.ts +5 -0
- package/dist/capabilities/questions.runtime.facade.js +5 -0
- package/dist/capabilities/questions.tools.port.d.ts +5 -0
- package/dist/capabilities/questions.tools.port.js +1 -0
- package/dist/capabilities/signals.facade.d.ts +16 -0
- package/dist/capabilities/signals.facade.js +14 -0
- package/dist/capabilities/signals.indexing.facade.d.ts +12 -0
- package/dist/capabilities/signals.indexing.facade.js +11 -0
- package/dist/capabilities/signals.tools.port.d.ts +5 -0
- package/dist/capabilities/signals.tools.port.js +1 -0
- package/dist/chat/chat-streaming.types.d.ts +0 -1
- package/dist/chat/chat-streaming.types.js +1 -2
- package/dist/chat/chat.agent.d.ts +0 -1
- package/dist/chat/chat.agent.js +0 -1
- package/dist/chat/chat.graph.d.ts +0 -1
- package/dist/chat/chat.graph.js +0 -1
- package/dist/chat/chat.interrupt.classifier.d.ts +0 -1
- package/dist/chat/chat.interrupt.classifier.js +0 -1
- package/dist/chat/chat.persona.d.ts +0 -1
- package/dist/chat/chat.persona.js +0 -1
- package/dist/chat/chat.prompt.d.ts +0 -1
- package/dist/chat/chat.prompt.js +0 -1
- package/dist/chat/chat.prompt.modules.d.ts +0 -1
- package/dist/chat/chat.prompt.modules.js +0 -1
- package/dist/chat/chat.question-dedup.d.ts +0 -1
- package/dist/chat/chat.question-dedup.js +0 -1
- package/dist/chat/chat.state.d.ts +0 -1
- package/dist/chat/chat.state.js +0 -1
- package/dist/chat/chat.streamer.d.ts +0 -1
- package/dist/chat/chat.streamer.js +0 -1
- package/dist/chat/chat.suggester.d.ts +0 -1
- package/dist/chat/chat.suggester.js +0 -1
- package/dist/chat/chat.summarizer.d.ts +0 -1
- package/dist/chat/chat.summarizer.js +0 -1
- package/dist/chat/chat.title.generator.d.ts +0 -1
- package/dist/chat/chat.title.generator.js +0 -1
- package/dist/chat/chat.tools.d.ts +0 -1
- package/dist/chat/chat.tools.js +0 -1
- package/dist/chat/chat.utils.d.ts +0 -1
- package/dist/chat/chat.utils.js +0 -1
- package/dist/chat/negotiator.persona.d.ts +0 -1
- package/dist/chat/negotiator.persona.js +0 -1
- package/dist/chat/negotiator.prompt.d.ts +1 -2
- package/dist/chat/negotiator.prompt.js +1 -2
- package/dist/chat/negotiator.tools.d.ts +0 -1
- package/dist/chat/negotiator.tools.js +0 -1
- package/dist/chat/onboarding.persona.d.ts +0 -1
- package/dist/chat/onboarding.persona.js +0 -1
- package/dist/chat/onboarding.prompt.d.ts +0 -1
- package/dist/chat/onboarding.prompt.js +0 -1
- package/dist/chat/reporter.action.contracts.d.ts +36 -0
- package/dist/chat/reporter.action.contracts.js +1 -0
- package/dist/chat/reporter.action.tools.d.ts +2 -37
- package/dist/chat/reporter.action.tools.js +0 -1
- package/dist/chat/reporter.persona.d.ts +0 -1
- package/dist/chat/reporter.persona.js +0 -1
- package/dist/chat/reporter.prompt.d.ts +0 -1
- package/dist/chat/reporter.prompt.js +0 -1
- package/dist/chat/signal.persona.d.ts +0 -1
- package/dist/chat/signal.persona.js +0 -1
- package/dist/chat/signal.prompt.d.ts +0 -1
- package/dist/chat/signal.prompt.js +0 -1
- package/dist/communities/application/index.d.ts +45 -0
- package/dist/communities/application/index.js +50 -0
- package/dist/communities/application/indexer.graph.d.ts +446 -0
- package/dist/communities/application/indexer.graph.js +420 -0
- package/dist/communities/application/indexer.state.d.ts +172 -0
- package/dist/communities/application/indexer.state.js +116 -0
- package/dist/communities/application/membership.graph.d.ts +270 -0
- package/dist/communities/application/membership.graph.js +229 -0
- package/dist/communities/application/network.graph.d.ts +648 -0
- package/dist/communities/application/network.graph.js +303 -0
- package/dist/communities/application/network.recommender.d.ts +44 -0
- package/dist/communities/application/network.recommender.js +113 -0
- package/dist/communities/application/network.tools.d.ts +35 -0
- package/dist/communities/application/network.tools.js +578 -0
- package/dist/communities/domain/index.d.ts +29 -0
- package/dist/communities/domain/index.js +31 -0
- package/dist/communities/domain/membership.state.d.ts +87 -0
- package/dist/communities/domain/membership.state.js +53 -0
- package/dist/communities/domain/network.state.d.ts +192 -0
- package/dist/communities/domain/network.state.js +66 -0
- package/dist/communities/index.d.ts +14 -0
- package/dist/communities/index.js +14 -0
- package/dist/communities/ports/index.d.ts +25 -0
- package/dist/communities/ports/index.js +27 -0
- package/dist/communities/public/index.d.ts +30 -0
- package/dist/communities/public/index.js +33 -0
- package/dist/contact/contact.inviter.d.ts +7 -44
- package/dist/contact/contact.inviter.js +6 -59
- package/dist/contact/contact.tools.d.ts +7 -5
- package/dist/contact/contact.tools.js +7 -177
- package/dist/contacts/application/contact.inviter.d.ts +49 -0
- package/dist/contacts/application/contact.inviter.js +64 -0
- package/dist/contacts/application/contact.tools.d.ts +20 -0
- package/dist/contacts/application/contact.tools.js +191 -0
- package/dist/contacts/application/index.d.ts +22 -0
- package/dist/contacts/application/index.js +21 -0
- package/dist/contacts/domain/contact.types.d.ts +51 -0
- package/dist/contacts/domain/contact.types.js +10 -0
- package/dist/contacts/domain/index.d.ts +18 -0
- package/dist/contacts/domain/index.js +1 -0
- package/dist/contacts/index.d.ts +24 -0
- package/dist/contacts/index.js +24 -0
- package/dist/contacts/ports/contact.repository.port.d.ts +28 -0
- package/dist/contacts/ports/contact.repository.port.js +14 -0
- package/dist/contacts/ports/contact.tools.port.d.ts +26 -0
- package/dist/contacts/ports/contact.tools.port.js +21 -0
- package/dist/contacts/ports/index.d.ts +22 -0
- package/dist/contacts/ports/index.js +21 -0
- package/dist/contacts/public/index.d.ts +36 -0
- package/dist/contacts/public/index.js +33 -0
- package/dist/context/context.generator.d.ts +0 -1
- package/dist/context/context.generator.js +0 -1
- package/dist/enrichment/enrichment.enricher.d.ts +0 -1
- package/dist/enrichment/enrichment.enricher.js +0 -1
- package/dist/enrichment/enrichment.generator.d.ts +0 -1
- package/dist/enrichment/enrichment.generator.js +0 -1
- package/dist/enrichment/enrichment.graph.d.ts +6 -7
- package/dist/enrichment/enrichment.graph.js +0 -1
- package/dist/enrichment/enrichment.state.d.ts +2 -3
- package/dist/enrichment/enrichment.state.js +0 -1
- package/dist/enrichment/enrichment.tools.d.ts +3 -3
- package/dist/enrichment/enrichment.tools.js +0 -1
- package/dist/index.d.ts +106 -91
- package/dist/index.js +79 -71
- package/dist/integration/integration.tools.d.ts +6 -10
- package/dist/integration/integration.tools.js +6 -82
- package/dist/integrations/application/index.d.ts +14 -0
- package/dist/integrations/application/index.js +14 -0
- package/dist/integrations/application/integration.tools.d.ts +27 -0
- package/dist/integrations/application/integration.tools.js +98 -0
- package/dist/integrations/domain/index.d.ts +18 -0
- package/dist/integrations/domain/index.js +1 -0
- package/dist/integrations/domain/integration.types.d.ts +53 -0
- package/dist/integrations/domain/integration.types.js +11 -0
- package/dist/integrations/index.d.ts +27 -0
- package/dist/integrations/index.js +27 -0
- package/dist/integrations/ports/index.d.ts +28 -0
- package/dist/integrations/ports/index.js +26 -0
- package/dist/integrations/ports/integration.adapter.port.d.ts +62 -0
- package/dist/integrations/ports/integration.adapter.port.js +15 -0
- package/dist/integrations/ports/integration.importer.port.d.ts +31 -0
- package/dist/integrations/ports/integration.importer.port.js +15 -0
- package/dist/integrations/ports/integration.tools.port.d.ts +28 -0
- package/dist/integrations/ports/integration.tools.port.js +21 -0
- package/dist/integrations/public/index.d.ts +37 -0
- package/dist/integrations/public/index.js +34 -0
- package/dist/intent/intent.clarifier.d.ts +3 -52
- package/dist/intent/intent.clarifier.js +2 -202
- package/dist/intent/intent.graph.d.ts +3 -551
- package/dist/intent/intent.graph.js +3 -937
- package/dist/intent/intent.indexer.d.ts +2 -83
- package/dist/intent/intent.indexer.js +2 -171
- package/dist/intent/intent.inferrer.d.ts +2 -95
- package/dist/intent/intent.inferrer.js +2 -234
- package/dist/intent/intent.reconciler.d.ts +2 -106
- package/dist/intent/intent.reconciler.js +2 -187
- package/dist/intent/intent.specificity.d.ts +2 -3
- package/dist/intent/intent.specificity.js +2 -3
- package/dist/intent/intent.state.d.ts +8 -229
- package/dist/intent/intent.state.js +8 -189
- package/dist/intent/intent.tools.d.ts +6 -24
- package/dist/intent/intent.tools.js +4 -788
- package/dist/intent/intent.verifier.d.ts +2 -116
- package/dist/intent/intent.verifier.js +2 -263
- package/dist/maintenance/maintenance.graph.d.ts +0 -1
- package/dist/maintenance/maintenance.graph.js +0 -1
- package/dist/maintenance/maintenance.state.d.ts +0 -1
- package/dist/maintenance/maintenance.state.js +0 -1
- package/dist/mcp/elicitation.builder.d.ts +0 -1
- package/dist/mcp/elicitation.builder.js +0 -1
- package/dist/mcp/elicitation.dispatcher.d.ts +0 -1
- package/dist/mcp/elicitation.dispatcher.js +0 -1
- package/dist/mcp/mcp.server.d.ts +0 -1
- package/dist/mcp/mcp.server.js +1 -2
- package/dist/negotiation/application/index.d.ts +48 -0
- package/dist/negotiation/application/index.js +49 -0
- package/dist/negotiation/application/insight.generator.d.ts +31 -0
- package/dist/negotiation/application/insight.generator.js +105 -0
- package/dist/negotiation/application/negotiation.agent.d.ts +110 -0
- package/dist/negotiation/application/negotiation.agent.js +244 -0
- package/dist/negotiation/application/negotiation.detail-reader.d.ts +94 -0
- package/dist/negotiation/application/negotiation.detail-reader.js +91 -0
- package/dist/negotiation/application/negotiation.graph.d.ts +666 -0
- package/dist/negotiation/application/negotiation.graph.js +1394 -0
- package/dist/negotiation/application/negotiation.reflect.d.ts +194 -0
- package/dist/negotiation/application/negotiation.reflect.js +145 -0
- package/dist/negotiation/application/negotiation.screen.d.ts +78 -0
- package/dist/negotiation/application/negotiation.screen.js +108 -0
- package/dist/negotiation/application/negotiation.summarizer.d.ts +25 -0
- package/dist/negotiation/application/negotiation.summarizer.js +101 -0
- package/dist/negotiation/application/negotiation.tools.d.ts +18 -0
- package/dist/negotiation/application/negotiation.tools.js +782 -0
- package/dist/negotiation/domain/index.d.ts +48 -0
- package/dist/negotiation/domain/index.js +50 -0
- package/dist/negotiation/domain/negotiation.consultation-policy.d.ts +39 -0
- package/dist/negotiation/domain/negotiation.consultation-policy.js +68 -0
- package/dist/negotiation/domain/negotiation.deadlock.contracts.d.ts +10 -0
- package/dist/negotiation/domain/negotiation.deadlock.contracts.js +1 -0
- package/dist/negotiation/domain/negotiation.deadlock.d.ts +81 -0
- package/dist/negotiation/domain/negotiation.deadlock.js +103 -0
- package/dist/negotiation/domain/negotiation.intent-snapshot-provenance.d.ts +21 -0
- package/dist/negotiation/domain/negotiation.intent-snapshot-provenance.js +28 -0
- package/dist/negotiation/domain/negotiation.lifecycle-narration.d.ts +18 -0
- package/dist/negotiation/domain/negotiation.lifecycle-narration.js +87 -0
- package/dist/negotiation/domain/negotiation.memory.d.ts +65 -0
- package/dist/negotiation/domain/negotiation.memory.js +83 -0
- package/dist/negotiation/domain/negotiation.protocol.d.ts +536 -0
- package/dist/negotiation/domain/negotiation.protocol.js +202 -0
- package/dist/negotiation/domain/negotiation.question-safety.d.ts +25 -0
- package/dist/negotiation/domain/negotiation.question-safety.js +55 -0
- package/dist/negotiation/domain/negotiation.screen.contracts.d.ts +88 -0
- package/dist/negotiation/domain/negotiation.screen.contracts.js +58 -0
- package/dist/negotiation/domain/negotiation.state.d.ts +497 -0
- package/dist/negotiation/domain/negotiation.state.js +288 -0
- package/dist/negotiation/domain/negotiation.task-lock-policy.d.ts +10 -0
- package/dist/negotiation/domain/negotiation.task-lock-policy.js +22 -0
- package/dist/negotiation/index.d.ts +49 -0
- package/dist/negotiation/index.js +49 -0
- package/dist/negotiation/insight.generator.d.ts +3 -30
- package/dist/negotiation/insight.generator.js +3 -104
- package/dist/negotiation/negotiation.agent.d.ts +3 -109
- package/dist/negotiation/negotiation.agent.js +3 -248
- package/dist/negotiation/negotiation.attribution.d.ts +0 -1
- package/dist/negotiation/negotiation.attribution.js +0 -1
- package/dist/negotiation/negotiation.consultation-policy.d.ts +3 -38
- package/dist/negotiation/negotiation.consultation-policy.js +3 -67
- package/dist/negotiation/negotiation.deadlock.contracts.d.ts +5 -0
- package/dist/negotiation/negotiation.deadlock.contracts.js +5 -0
- package/dist/negotiation/negotiation.deadlock.d.ts +3 -94
- package/dist/negotiation/negotiation.deadlock.js +3 -101
- package/dist/negotiation/negotiation.detail-reader.d.ts +5 -0
- package/dist/negotiation/negotiation.detail-reader.js +5 -0
- package/dist/negotiation/negotiation.graph.d.ts +3 -663
- package/dist/negotiation/negotiation.graph.js +3 -1459
- package/dist/negotiation/negotiation.intent-snapshot-provenance.d.ts +5 -0
- package/dist/negotiation/negotiation.intent-snapshot-provenance.js +5 -0
- package/dist/negotiation/negotiation.lifecycle-narration.d.ts +5 -0
- package/dist/negotiation/negotiation.lifecycle-narration.js +5 -0
- package/dist/negotiation/negotiation.memory.d.ts +5 -56
- package/dist/negotiation/negotiation.memory.js +5 -69
- package/dist/negotiation/negotiation.protocol.d.ts +3 -535
- package/dist/negotiation/negotiation.protocol.js +3 -201
- package/dist/negotiation/negotiation.question-safety.d.ts +3 -24
- package/dist/negotiation/negotiation.question-safety.js +3 -54
- package/dist/negotiation/negotiation.reflect.d.ts +4 -197
- package/dist/negotiation/negotiation.reflect.js +4 -151
- package/dist/negotiation/negotiation.screen.d.ts +6 -159
- package/dist/negotiation/negotiation.screen.js +6 -152
- package/dist/negotiation/negotiation.state.d.ts +3 -495
- package/dist/negotiation/negotiation.state.js +3 -284
- package/dist/negotiation/negotiation.summarizer.d.ts +3 -24
- package/dist/negotiation/negotiation.summarizer.js +3 -100
- package/dist/negotiation/negotiation.task-lock-policy.d.ts +5 -0
- package/dist/negotiation/negotiation.task-lock-policy.js +5 -0
- package/dist/negotiation/negotiation.tools.d.ts +3 -15
- package/dist/negotiation/negotiation.tools.js +3 -946
- package/dist/negotiation/ports/index.d.ts +18 -0
- package/dist/negotiation/ports/index.js +18 -0
- package/dist/negotiation/ports/negotiation.tools.port.d.ts +18 -0
- package/dist/negotiation/ports/negotiation.tools.port.js +1 -0
- package/dist/negotiation/public/index.d.ts +58 -0
- package/dist/negotiation/public/index.js +60 -0
- package/dist/network/indexer/indexer.graph.d.ts +3 -413
- package/dist/network/indexer/indexer.graph.js +3 -375
- package/dist/network/indexer/indexer.state.d.ts +3 -149
- package/dist/network/indexer/indexer.state.js +3 -98
- package/dist/network/membership/membership.graph.d.ts +3 -248
- package/dist/network/membership/membership.graph.js +3 -202
- package/dist/network/membership/membership.state.d.ts +3 -75
- package/dist/network/membership/membership.state.js +3 -41
- package/dist/network/network.graph.d.ts +3 -629
- package/dist/network/network.graph.js +3 -267
- package/dist/network/network.recommender.d.ts +3 -40
- package/dist/network/network.recommender.js +3 -109
- package/dist/network/network.state.d.ts +3 -180
- package/dist/network/network.state.js +3 -54
- package/dist/network/network.tools.d.ts +5 -3
- package/dist/network/network.tools.js +5 -566
- package/dist/opportunity/application/delivery-card.cache.d.ts +25 -0
- package/dist/opportunity/application/delivery-card.cache.js +43 -0
- package/dist/opportunity/application/index.d.ts +63 -0
- package/dist/opportunity/application/index.js +68 -0
- package/dist/opportunity/application/negotiation-context.loader.d.ts +59 -0
- package/dist/opportunity/application/negotiation-context.loader.js +88 -0
- package/dist/opportunity/application/opportunity.card-presentation.d.ts +44 -0
- package/dist/opportunity/application/opportunity.card-presentation.js +104 -0
- package/dist/opportunity/application/opportunity.discover.d.ts +215 -0
- package/dist/opportunity/application/opportunity.discover.js +793 -0
- package/dist/opportunity/application/opportunity.discovery-continuation-finalization.d.ts +34 -0
- package/dist/opportunity/application/opportunity.discovery-continuation-finalization.js +74 -0
- package/dist/opportunity/application/opportunity.discovery-mcp-lifecycle-finalization.d.ts +44 -0
- package/dist/opportunity/application/opportunity.discovery-mcp-lifecycle-finalization.js +92 -0
- package/dist/opportunity/application/opportunity.discovery-negotiation-summary.d.ts +14 -0
- package/dist/opportunity/application/opportunity.discovery-negotiation-summary.js +46 -0
- package/dist/opportunity/application/opportunity.enricher.d.ts +71 -0
- package/dist/opportunity/application/opportunity.enricher.js +280 -0
- package/dist/opportunity/application/opportunity.evaluator.d.ts +275 -0
- package/dist/opportunity/application/opportunity.evaluator.js +459 -0
- package/dist/opportunity/application/opportunity.existing-negotiation.d.ts +79 -0
- package/dist/opportunity/application/opportunity.existing-negotiation.js +118 -0
- package/dist/opportunity/application/opportunity.feed-selection.d.ts +30 -0
- package/dist/opportunity/application/opportunity.feed-selection.js +96 -0
- package/dist/opportunity/application/opportunity.graph.d.ts +1427 -0
- package/dist/opportunity/application/opportunity.graph.js +3707 -0
- package/dist/opportunity/application/opportunity.introducer.d.ts +77 -0
- package/dist/opportunity/application/opportunity.introducer.js +99 -0
- package/dist/opportunity/application/opportunity.lifecycle.d.ts +63 -0
- package/dist/opportunity/application/opportunity.lifecycle.js +181 -0
- package/dist/opportunity/application/opportunity.newborn-stamping.d.ts +41 -0
- package/dist/opportunity/application/opportunity.newborn-stamping.js +81 -0
- package/dist/opportunity/application/opportunity.pending-questions.d.ts +33 -0
- package/dist/opportunity/application/opportunity.pending-questions.js +42 -0
- package/dist/opportunity/application/opportunity.persist.d.ts +58 -0
- package/dist/opportunity/application/opportunity.persist.js +145 -0
- package/dist/opportunity/application/opportunity.persistence-admission.d.ts +39 -0
- package/dist/opportunity/application/opportunity.persistence-admission.js +59 -0
- package/dist/opportunity/application/opportunity.presenter.d.ts +156 -0
- package/dist/opportunity/application/opportunity.presenter.js +736 -0
- package/dist/opportunity/application/opportunity.tools.d.ts +131 -0
- package/dist/opportunity/application/opportunity.tools.js +1834 -0
- package/dist/opportunity/application/opportunity.update-admission.d.ts +24 -0
- package/dist/opportunity/application/opportunity.update-admission.js +38 -0
- package/dist/opportunity/delivery-card.cache.d.ts +5 -26
- package/dist/opportunity/delivery-card.cache.js +5 -44
- package/dist/opportunity/discovery-question.helper.d.ts +3 -17
- package/dist/opportunity/discovery-question.helper.js +3 -14
- package/dist/opportunity/discriminator/discriminator.adjustments.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.adjustments.js +0 -1
- package/dist/opportunity/discriminator/discriminator.assigner.d.ts +4 -5
- package/dist/opportunity/discriminator/discriminator.assigner.js +0 -1
- package/dist/opportunity/discriminator/discriminator.env.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.env.js +0 -1
- package/dist/opportunity/discriminator/discriminator.miner.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.miner.js +0 -1
- package/dist/opportunity/discriminator/discriminator.push.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.push.js +0 -1
- package/dist/opportunity/discriminator/discriminator.question.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.question.js +0 -1
- package/dist/opportunity/discriminator/discriminator.scorer.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.scorer.js +0 -1
- package/dist/opportunity/discriminator/discriminator.shadow.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.shadow.js +0 -1
- package/dist/opportunity/discriminator/discriminator.types.d.ts +0 -1
- package/dist/opportunity/discriminator/discriminator.types.js +0 -1
- package/dist/opportunity/domain/discovery-question.helper.d.ts +18 -0
- package/dist/opportunity/domain/discovery-question.helper.js +15 -0
- package/dist/opportunity/domain/index.d.ts +55 -0
- package/dist/opportunity/domain/index.js +52 -0
- package/dist/opportunity/domain/negotiation-summary.builder.d.ts +37 -0
- package/dist/opportunity/domain/negotiation-summary.builder.js +66 -0
- package/dist/opportunity/domain/opportunity.actor.d.ts +15 -0
- package/dist/opportunity/domain/opportunity.actor.js +39 -0
- package/dist/opportunity/domain/opportunity.claim-safety.d.ts +24 -0
- package/dist/opportunity/domain/opportunity.claim-safety.js +88 -0
- package/dist/opportunity/domain/opportunity.discovery-run-coalescing.d.ts +33 -0
- package/dist/opportunity/domain/opportunity.discovery-run-coalescing.js +33 -0
- package/dist/opportunity/domain/opportunity.discovery.contracts.d.ts +45 -0
- package/dist/opportunity/domain/opportunity.discovery.contracts.js +1 -0
- package/dist/opportunity/domain/opportunity.evidence.d.ts +21 -0
- package/dist/opportunity/domain/opportunity.evidence.js +78 -0
- package/dist/opportunity/domain/opportunity.labels.d.ts +8 -0
- package/dist/opportunity/domain/opportunity.labels.js +10 -0
- package/dist/opportunity/domain/opportunity.presentation-cache.d.ts +6 -0
- package/dist/opportunity/domain/opportunity.presentation-cache.js +14 -0
- package/dist/opportunity/domain/opportunity.presentation.d.ts +76 -0
- package/dist/opportunity/domain/opportunity.presentation.js +516 -0
- package/dist/opportunity/domain/opportunity.safe-presentation.d.ts +104 -0
- package/dist/opportunity/domain/opportunity.safe-presentation.js +102 -0
- package/dist/opportunity/domain/opportunity.state.d.ts +519 -0
- package/dist/opportunity/domain/opportunity.state.js +309 -0
- package/dist/opportunity/domain/opportunity.utils.d.ts +217 -0
- package/dist/opportunity/domain/opportunity.utils.js +395 -0
- package/dist/opportunity/feed/feed.categorizer.d.ts +0 -1
- package/dist/opportunity/feed/feed.categorizer.js +0 -1
- package/dist/opportunity/feed/feed.graph.d.ts +1 -2
- package/dist/opportunity/feed/feed.graph.js +0 -1
- package/dist/opportunity/feed/feed.health.d.ts +0 -1
- package/dist/opportunity/feed/feed.health.js +0 -1
- package/dist/opportunity/feed/feed.state.d.ts +1 -2
- package/dist/opportunity/feed/feed.state.js +0 -1
- package/dist/opportunity/index.d.ts +37 -0
- package/dist/opportunity/index.js +37 -0
- package/dist/opportunity/negotiation-context.loader.d.ts +3 -58
- package/dist/opportunity/negotiation-context.loader.js +3 -87
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.env.d.ts +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.env.js +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.extractor.d.ts +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.extractor.js +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.miner.d.ts +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.miner.js +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.shadow.d.ts +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.shadow.js +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.types.d.ts +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.types.js +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.verifier.d.ts +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.verifier.js +0 -1
- package/dist/opportunity/negotiation-summary.builder.d.ts +3 -36
- package/dist/opportunity/negotiation-summary.builder.js +3 -65
- package/dist/opportunity/opportunity.actor.d.ts +3 -14
- package/dist/opportunity/opportunity.actor.js +3 -38
- package/dist/opportunity/opportunity.card-presentation.d.ts +5 -0
- package/dist/opportunity/opportunity.card-presentation.js +5 -0
- package/dist/opportunity/opportunity.claim-safety.d.ts +3 -23
- package/dist/opportunity/opportunity.claim-safety.js +3 -87
- package/dist/opportunity/opportunity.discover.d.ts +3 -218
- package/dist/opportunity/opportunity.discover.js +3 -917
- package/dist/opportunity/opportunity.discovery-continuation-finalization.d.ts +5 -0
- package/dist/opportunity/opportunity.discovery-continuation-finalization.js +5 -0
- package/dist/opportunity/opportunity.discovery-mcp-lifecycle-finalization.d.ts +5 -0
- package/dist/opportunity/opportunity.discovery-mcp-lifecycle-finalization.js +5 -0
- package/dist/opportunity/opportunity.discovery-negotiation-summary.d.ts +5 -0
- package/dist/opportunity/opportunity.discovery-negotiation-summary.js +5 -0
- package/dist/opportunity/opportunity.discovery-run-coalescing.d.ts +5 -0
- package/dist/opportunity/opportunity.discovery-run-coalescing.js +5 -0
- package/dist/opportunity/opportunity.discovery.contracts.d.ts +5 -0
- package/dist/opportunity/opportunity.discovery.contracts.js +5 -0
- package/dist/opportunity/opportunity.enricher.d.ts +3 -70
- package/dist/opportunity/opportunity.enricher.js +3 -279
- package/dist/opportunity/opportunity.evaluator.d.ts +5 -276
- package/dist/opportunity/opportunity.evaluator.js +5 -460
- package/dist/opportunity/opportunity.evidence.d.ts +5 -22
- package/dist/opportunity/opportunity.evidence.js +5 -79
- package/dist/opportunity/opportunity.existing-negotiation.d.ts +5 -0
- package/dist/opportunity/opportunity.existing-negotiation.js +5 -0
- package/dist/opportunity/opportunity.feed-selection.d.ts +5 -0
- package/dist/opportunity/opportunity.feed-selection.js +5 -0
- package/dist/opportunity/opportunity.graph.d.ts +3 -1489
- package/dist/opportunity/opportunity.graph.js +3 -4071
- package/dist/opportunity/opportunity.introducer.d.ts +3 -76
- package/dist/opportunity/opportunity.introducer.js +3 -98
- package/dist/opportunity/opportunity.labels.d.ts +5 -9
- package/dist/opportunity/opportunity.labels.js +5 -11
- package/dist/opportunity/opportunity.lifecycle.d.ts +5 -0
- package/dist/opportunity/opportunity.lifecycle.js +5 -0
- package/dist/opportunity/opportunity.newborn-stamping.d.ts +5 -0
- package/dist/opportunity/opportunity.newborn-stamping.js +5 -0
- package/dist/opportunity/opportunity.pending-questions.d.ts +3 -32
- package/dist/opportunity/opportunity.pending-questions.js +3 -41
- package/dist/opportunity/opportunity.persist.d.ts +3 -57
- package/dist/opportunity/opportunity.persist.js +3 -144
- package/dist/opportunity/opportunity.persistence-admission.d.ts +5 -0
- package/dist/opportunity/opportunity.persistence-admission.js +5 -0
- package/dist/opportunity/opportunity.presentation-cache.d.ts +5 -7
- package/dist/opportunity/opportunity.presentation-cache.js +5 -15
- package/dist/opportunity/opportunity.presentation.d.ts +3 -75
- package/dist/opportunity/opportunity.presentation.js +3 -515
- package/dist/opportunity/opportunity.presenter.d.ts +10 -155
- package/dist/opportunity/opportunity.presenter.js +10 -735
- package/dist/opportunity/opportunity.safe-presentation.d.ts +3 -103
- package/dist/opportunity/opportunity.safe-presentation.js +3 -101
- package/dist/opportunity/opportunity.state.d.ts +3 -518
- package/dist/opportunity/opportunity.state.js +3 -308
- package/dist/opportunity/opportunity.tools.d.ts +3 -157
- package/dist/opportunity/opportunity.tools.js +3 -2238
- package/dist/opportunity/opportunity.update-admission.d.ts +5 -0
- package/dist/opportunity/opportunity.update-admission.js +5 -0
- package/dist/opportunity/opportunity.utils.d.ts +3 -216
- package/dist/opportunity/opportunity.utils.js +3 -394
- package/dist/opportunity/outcome/outcome.env.d.ts +0 -1
- package/dist/opportunity/outcome/outcome.env.js +0 -1
- package/dist/opportunity/outcome/outcome.hypotheses.d.ts +0 -1
- package/dist/opportunity/outcome/outcome.hypotheses.js +0 -1
- package/dist/opportunity/outcome/outcome.shadow.d.ts +0 -1
- package/dist/opportunity/outcome/outcome.shadow.js +0 -1
- package/dist/opportunity/outcome/outcome.types.d.ts +0 -1
- package/dist/opportunity/outcome/outcome.types.js +0 -1
- package/dist/opportunity/ports/index.d.ts +5 -0
- package/dist/opportunity/ports/index.js +1 -0
- package/dist/opportunity/ports/opportunity.tools.port.d.ts +5 -0
- package/dist/opportunity/ports/opportunity.tools.port.js +1 -0
- package/dist/opportunity/public/index.d.ts +58 -0
- package/dist/opportunity/public/index.js +51 -0
- package/dist/participant-agents/application/agent.tools.d.ts +16 -0
- package/dist/participant-agents/application/agent.tools.js +313 -0
- package/dist/participant-agents/application/index.d.ts +21 -0
- package/dist/participant-agents/application/index.js +22 -0
- package/dist/participant-agents/domain/agent.types.d.ts +76 -0
- package/dist/participant-agents/domain/agent.types.js +22 -0
- package/dist/participant-agents/domain/index.d.ts +20 -0
- package/dist/participant-agents/domain/index.js +1 -0
- package/dist/participant-agents/index.d.ts +24 -0
- package/dist/participant-agents/index.js +24 -0
- package/dist/participant-agents/ports/agent.dispatcher.port.d.ts +25 -0
- package/dist/participant-agents/ports/agent.dispatcher.port.js +1 -0
- package/dist/participant-agents/ports/agent.repository.port.d.ts +118 -0
- package/dist/participant-agents/ports/agent.repository.port.js +10 -0
- package/dist/participant-agents/ports/agent.tools.port.d.ts +24 -0
- package/dist/participant-agents/ports/agent.tools.port.js +20 -0
- package/dist/participant-agents/ports/index.d.ts +29 -0
- package/dist/participant-agents/ports/index.js +27 -0
- package/dist/participant-agents/public/index.d.ts +39 -0
- package/dist/participant-agents/public/index.js +36 -0
- package/dist/participant-context/application/index.d.ts +73 -0
- package/dist/participant-context/application/index.js +83 -0
- package/dist/participant-context/domain/index.d.ts +67 -0
- package/dist/participant-context/domain/index.js +68 -0
- package/dist/participant-context/index.d.ts +16 -0
- package/dist/participant-context/index.js +16 -0
- package/dist/participant-context/ports/index.d.ts +37 -0
- package/dist/participant-context/ports/index.js +34 -0
- package/dist/participant-context/public/index.d.ts +48 -0
- package/dist/participant-context/public/index.js +55 -0
- package/dist/platform/index.d.ts +19 -0
- package/dist/platform/index.js +23 -0
- package/dist/premise/premise.analyzer.d.ts +0 -1
- package/dist/premise/premise.analyzer.js +0 -2
- package/dist/premise/premise.decomposer.d.ts +0 -1
- package/dist/premise/premise.decomposer.js +0 -2
- package/dist/premise/premise.graph.d.ts +1 -2
- package/dist/premise/premise.graph.js +0 -2
- package/dist/premise/premise.indexer.d.ts +0 -1
- package/dist/premise/premise.indexer.js +0 -2
- package/dist/premise/premise.state.d.ts +1 -2
- package/dist/premise/premise.state.js +0 -1
- package/dist/premise/premise.tools.d.ts +3 -3
- package/dist/premise/premise.tools.js +0 -2
- package/dist/public/index.d.ts +17 -0
- package/dist/public/index.js +17 -0
- package/dist/questioner/questioner.agent.d.ts +4 -27
- package/dist/questioner/questioner.agent.js +3 -133
- package/dist/questioner/questioner.ask.tool.d.ts +3 -12
- package/dist/questioner/questioner.ask.tool.js +3 -299
- package/dist/questioner/questioner.discovery.prompt.d.ts +3 -7
- package/dist/questioner/questioner.discovery.prompt.js +3 -180
- package/dist/questioner/questioner.env.d.ts +3 -57
- package/dist/questioner/questioner.env.js +3 -93
- package/dist/questioner/questioner.presets.d.ts +4 -19
- package/dist/questioner/questioner.presets.js +3 -465
- package/dist/questioner/questioner.qud.d.ts +3 -6
- package/dist/questioner/questioner.qud.js +3 -10
- package/dist/questioner/questioner.tools.d.ts +3 -15
- package/dist/questioner/questioner.tools.js +3 -186
- package/dist/questioner/questioner.types.d.ts +4 -218
- package/dist/questioner/questioner.types.js +5 -62
- package/dist/questions/application/index.d.ts +39 -0
- package/dist/questions/application/index.js +41 -0
- package/dist/questions/application/question.agent.d.ts +28 -0
- package/dist/questions/application/question.agent.js +139 -0
- package/dist/questions/application/question.ask.tool.d.ts +12 -0
- package/dist/questions/application/question.ask.tool.js +300 -0
- package/dist/questions/application/question.discovery.prompt.d.ts +8 -0
- package/dist/questions/application/question.discovery.prompt.js +181 -0
- package/dist/questions/application/question.env.d.ts +61 -0
- package/dist/questions/application/question.env.js +97 -0
- package/dist/questions/application/question.input.d.ts +237 -0
- package/dist/questions/application/question.input.js +61 -0
- package/dist/questions/application/question.presets.d.ts +24 -0
- package/dist/questions/application/question.presets.js +445 -0
- package/dist/questions/application/question.qud.d.ts +12 -0
- package/dist/questions/application/question.qud.js +16 -0
- package/dist/questions/application/question.tools.d.ts +15 -0
- package/dist/questions/application/question.tools.js +190 -0
- package/dist/questions/domain/index.d.ts +25 -0
- package/dist/questions/domain/index.js +25 -0
- package/dist/questions/domain/question.schema.d.ts +1537 -0
- package/dist/questions/domain/question.schema.js +422 -0
- package/dist/questions/index.d.ts +22 -0
- package/dist/questions/index.js +22 -0
- package/dist/questions/ports/index.d.ts +29 -0
- package/dist/questions/ports/index.js +27 -0
- package/dist/questions/ports/question.generator.port.d.ts +34 -0
- package/dist/questions/ports/question.generator.port.js +1 -0
- package/dist/questions/ports/question.persistence.port.d.ts +87 -0
- package/dist/questions/ports/question.persistence.port.js +1 -0
- package/dist/questions/ports/question.tools.port.d.ts +15 -0
- package/dist/questions/ports/question.tools.port.js +1 -0
- package/dist/questions/public/index.d.ts +47 -0
- package/dist/questions/public/index.js +49 -0
- package/dist/runtime/background/index.d.ts +14 -0
- package/dist/runtime/background/index.js +14 -0
- package/dist/runtime/foreground/composition/tool.factory.d.ts +16 -0
- package/dist/runtime/foreground/composition/tool.factory.js +224 -0
- package/dist/runtime/foreground/composition/tool.registry.d.ts +11 -0
- package/dist/runtime/foreground/composition/tool.registry.js +106 -0
- package/dist/runtime/foreground/index.d.ts +13 -0
- package/dist/runtime/foreground/index.js +13 -0
- package/dist/runtime/foreground/signals/intent.tools.d.ts +13 -0
- package/dist/runtime/foreground/signals/intent.tools.js +13 -0
- package/dist/shared/agent/model-signal.d.ts +0 -1
- package/dist/shared/agent/model-signal.js +0 -1
- package/dist/shared/agent/model.config.d.ts +0 -1
- package/dist/shared/agent/model.config.js +0 -1
- package/dist/shared/agent/tool.factory.d.ts +4 -15
- package/dist/shared/agent/tool.factory.js +4 -226
- package/dist/shared/agent/tool.helpers.d.ts +51 -12
- package/dist/shared/agent/tool.helpers.js +0 -1
- package/dist/shared/agent/tool.registry.d.ts +9 -9
- package/dist/shared/agent/tool.registry.js +9 -104
- package/dist/shared/agent/tool.runtime.d.ts +0 -1
- package/dist/shared/agent/tool.runtime.js +0 -1
- package/dist/shared/agent/tool.scope.d.ts +0 -1
- package/dist/shared/agent/tool.scope.js +0 -1
- package/dist/shared/agent/utility.tools.d.ts +5 -3
- package/dist/shared/agent/utility.tools.js +0 -1
- package/dist/shared/assignment/network-assignment.policy.d.ts +0 -1
- package/dist/shared/assignment/network-assignment.policy.js +0 -1
- package/dist/shared/hyde/hyde.documents.d.ts +0 -1
- package/dist/shared/hyde/hyde.documents.js +0 -1
- package/dist/shared/hyde/hyde.env.d.ts +0 -1
- package/dist/shared/hyde/hyde.env.js +0 -1
- package/dist/shared/hyde/hyde.frame.d.ts +4 -5
- package/dist/shared/hyde/hyde.frame.js +0 -1
- package/dist/shared/hyde/hyde.generator.d.ts +0 -1
- package/dist/shared/hyde/hyde.generator.js +0 -1
- package/dist/shared/hyde/hyde.graph.d.ts +0 -1
- package/dist/shared/hyde/hyde.graph.js +0 -1
- package/dist/shared/hyde/hyde.state.d.ts +0 -1
- package/dist/shared/hyde/hyde.state.js +0 -1
- package/dist/shared/hyde/hyde.strategies.d.ts +0 -1
- package/dist/shared/hyde/hyde.strategies.js +0 -1
- package/dist/shared/hyde/hyde.validator.d.ts +0 -1
- package/dist/shared/hyde/hyde.validator.js +0 -1
- package/dist/shared/hyde/lens.inferrer.d.ts +6 -7
- package/dist/shared/hyde/lens.inferrer.js +0 -1
- package/dist/shared/interfaces/agent-dispatcher.interface.d.ts +4 -1
- package/dist/shared/interfaces/agent-dispatcher.interface.js +4 -1
- package/dist/shared/interfaces/agent.interface.d.ts +13 -173
- package/dist/shared/interfaces/agent.interface.js +12 -12
- package/dist/shared/interfaces/auth.interface.d.ts +0 -1
- package/dist/shared/interfaces/auth.interface.js +0 -1
- package/dist/shared/interfaces/cache.interface.d.ts +0 -1
- package/dist/shared/interfaces/cache.interface.js +0 -1
- package/dist/shared/interfaces/chat-message-writer.interface.d.ts +0 -1
- package/dist/shared/interfaces/chat-message-writer.interface.js +0 -1
- package/dist/shared/interfaces/chat-session.interface.d.ts +0 -1
- package/dist/shared/interfaces/chat-session.interface.js +0 -1
- package/dist/shared/interfaces/chat-summary.interface.d.ts +0 -1
- package/dist/shared/interfaces/chat-summary.interface.js +0 -1
- package/dist/shared/interfaces/connect-link.interface.d.ts +0 -1
- package/dist/shared/interfaces/connect-link.interface.js +0 -1
- package/dist/shared/interfaces/contact.interface.d.ts +7 -55
- package/dist/shared/interfaces/contact.interface.js +7 -1
- package/dist/shared/interfaces/database.interface.d.ts +0 -1
- package/dist/shared/interfaces/database.interface.js +0 -1
- package/dist/shared/interfaces/delivery-ledger.interface.d.ts +0 -1
- package/dist/shared/interfaces/delivery-ledger.interface.js +0 -1
- package/dist/shared/interfaces/discovery-run.interface.d.ts +2 -3
- package/dist/shared/interfaces/discovery-run.interface.js +0 -1
- package/dist/shared/interfaces/embedder.interface.d.ts +0 -1
- package/dist/shared/interfaces/embedder.interface.js +0 -1
- package/dist/shared/interfaces/enrichment-run.interface.d.ts +2 -3
- package/dist/shared/interfaces/enrichment-run.interface.js +0 -1
- package/dist/shared/interfaces/enrichment.interface.d.ts +0 -1
- package/dist/shared/interfaces/enrichment.interface.js +0 -1
- package/dist/shared/interfaces/integration.interface.d.ts +6 -88
- package/dist/shared/interfaces/integration.interface.js +7 -1
- package/dist/shared/interfaces/negotiation-events.interface.d.ts +0 -1
- package/dist/shared/interfaces/negotiation-events.interface.js +0 -1
- package/dist/shared/interfaces/negotiation-summary.interface.d.ts +0 -1
- package/dist/shared/interfaces/negotiation-summary.interface.js +0 -1
- package/dist/shared/interfaces/negotiator-memory.interface.d.ts +0 -1
- package/dist/shared/interfaces/negotiator-memory.interface.js +0 -1
- package/dist/shared/interfaces/question-generator.interface.d.ts +3 -28
- package/dist/shared/interfaces/question-generator.interface.js +0 -1
- package/dist/shared/interfaces/questioner.interface.d.ts +3 -77
- package/dist/shared/interfaces/questioner.interface.js +0 -1
- package/dist/shared/interfaces/queue.interface.d.ts +0 -1
- package/dist/shared/interfaces/queue.interface.js +0 -1
- package/dist/shared/interfaces/scraper.interface.d.ts +0 -1
- package/dist/shared/interfaces/scraper.interface.js +0 -1
- package/dist/shared/interfaces/tool-request-context.interface.d.ts +12 -0
- package/dist/shared/interfaces/tool-request-context.interface.js +1 -0
- package/dist/shared/network/metadata.renderer.d.ts +0 -1
- package/dist/shared/network/metadata.renderer.js +0 -1
- package/dist/shared/observability/debug-meta.sanitizer.d.ts +0 -1
- package/dist/shared/observability/debug-meta.sanitizer.js +0 -1
- package/dist/shared/observability/log.d.ts +0 -1
- package/dist/shared/observability/log.js +0 -1
- package/dist/shared/observability/performance.d.ts +0 -1
- package/dist/shared/observability/performance.js +0 -1
- package/dist/shared/observability/protocol.logger.d.ts +0 -1
- package/dist/shared/observability/protocol.logger.js +0 -1
- package/dist/shared/observability/request-context.d.ts +0 -1
- package/dist/shared/observability/request-context.js +0 -1
- package/dist/shared/observability/trace.d.ts +0 -1
- package/dist/shared/observability/trace.js +0 -1
- package/dist/shared/schemas/chat-context.schema.d.ts +0 -1
- package/dist/shared/schemas/chat-context.schema.js +0 -1
- package/dist/shared/schemas/discovery-question.schema.d.ts +17 -18
- package/dist/shared/schemas/discovery-question.schema.js +0 -1
- package/dist/shared/schemas/identity.schema.d.ts +0 -1
- package/dist/shared/schemas/identity.schema.js +0 -1
- package/dist/shared/schemas/mcp-auth.schema.d.ts +0 -1
- package/dist/shared/schemas/mcp-auth.schema.js +0 -1
- package/dist/shared/schemas/negotiation-digest.schema.d.ts +5 -6
- package/dist/shared/schemas/negotiation-digest.schema.js +0 -1
- package/dist/shared/schemas/negotiation-state.schema.d.ts +4 -5
- package/dist/shared/schemas/negotiation-state.schema.js +0 -1
- package/dist/shared/schemas/network-assignment.schema.d.ts +0 -1
- package/dist/shared/schemas/network-assignment.schema.js +0 -1
- package/dist/shared/schemas/pending-question.schema.d.ts +0 -1
- package/dist/shared/schemas/pending-question.schema.js +0 -1
- package/dist/shared/schemas/question.schema.d.ts +3 -1535
- package/dist/shared/schemas/question.schema.js +3 -420
- package/dist/shared/ui/lucide.icon-catalog.d.ts +0 -1
- package/dist/shared/ui/lucide.icon-catalog.js +0 -1
- package/dist/shared/utils/social-label.d.ts +0 -1
- package/dist/shared/utils/social-label.js +0 -1
- package/dist/shared/utils/telegram-handle.d.ts +0 -1
- package/dist/shared/utils/telegram-handle.js +0 -1
- package/dist/signals/application/index.d.ts +19 -0
- package/dist/signals/application/index.js +22 -0
- package/dist/signals/application/intent.clarifier.d.ts +51 -0
- package/dist/signals/application/intent.clarifier.js +201 -0
- package/dist/signals/application/intent.graph.d.ts +552 -0
- package/dist/signals/application/intent.graph.js +938 -0
- package/dist/signals/application/intent.indexer.d.ts +82 -0
- package/dist/signals/application/intent.indexer.js +170 -0
- package/dist/signals/application/intent.inferrer.d.ts +94 -0
- package/dist/signals/application/intent.inferrer.js +233 -0
- package/dist/signals/application/intent.reconciler.d.ts +105 -0
- package/dist/signals/application/intent.reconciler.js +186 -0
- package/dist/signals/application/intent.tools.d.ts +24 -0
- package/dist/signals/application/intent.tools.js +789 -0
- package/dist/signals/application/intent.verifier.d.ts +115 -0
- package/dist/signals/application/intent.verifier.js +262 -0
- package/dist/signals/domain/index.d.ts +9 -0
- package/dist/signals/domain/index.js +11 -0
- package/dist/signals/domain/intent.state.d.ts +230 -0
- package/dist/signals/domain/intent.state.js +190 -0
- package/dist/signals/domain/signal.specificity.d.ts +2 -0
- package/dist/signals/domain/signal.specificity.js +2 -0
- package/dist/signals/index.d.ts +13 -0
- package/dist/signals/index.js +13 -0
- package/dist/signals/ports/index.d.ts +15 -0
- package/dist/signals/ports/index.js +13 -0
- package/dist/signals/public/index.d.ts +15 -0
- package/dist/signals/public/index.js +16 -0
- package/package.json +14 -3
- package/dist/agent/agent.tools.d.ts.map +0 -1
- package/dist/agent/agent.tools.js.map +0 -1
- package/dist/agent/tests/fakes.d.ts +0 -25
- package/dist/agent/tests/fakes.d.ts.map +0 -1
- package/dist/agent/tests/fakes.js +0 -178
- package/dist/agent/tests/fakes.js.map +0 -1
- package/dist/chat/chat-streaming.types.d.ts.map +0 -1
- package/dist/chat/chat-streaming.types.js.map +0 -1
- package/dist/chat/chat.agent.d.ts.map +0 -1
- package/dist/chat/chat.agent.js.map +0 -1
- package/dist/chat/chat.graph.d.ts.map +0 -1
- package/dist/chat/chat.graph.js.map +0 -1
- package/dist/chat/chat.interrupt.classifier.d.ts.map +0 -1
- package/dist/chat/chat.interrupt.classifier.js.map +0 -1
- package/dist/chat/chat.persona.d.ts.map +0 -1
- package/dist/chat/chat.persona.js.map +0 -1
- package/dist/chat/chat.prompt.d.ts.map +0 -1
- package/dist/chat/chat.prompt.js.map +0 -1
- package/dist/chat/chat.prompt.modules.d.ts.map +0 -1
- package/dist/chat/chat.prompt.modules.js.map +0 -1
- package/dist/chat/chat.question-dedup.d.ts.map +0 -1
- package/dist/chat/chat.question-dedup.js.map +0 -1
- package/dist/chat/chat.state.d.ts.map +0 -1
- package/dist/chat/chat.state.js.map +0 -1
- package/dist/chat/chat.streamer.d.ts.map +0 -1
- package/dist/chat/chat.streamer.js.map +0 -1
- package/dist/chat/chat.suggester.d.ts.map +0 -1
- package/dist/chat/chat.suggester.js.map +0 -1
- package/dist/chat/chat.summarizer.d.ts.map +0 -1
- package/dist/chat/chat.summarizer.js.map +0 -1
- package/dist/chat/chat.title.generator.d.ts.map +0 -1
- package/dist/chat/chat.title.generator.js.map +0 -1
- package/dist/chat/chat.tools.d.ts.map +0 -1
- package/dist/chat/chat.tools.js.map +0 -1
- package/dist/chat/chat.utils.d.ts.map +0 -1
- package/dist/chat/chat.utils.js.map +0 -1
- package/dist/chat/negotiator.persona.d.ts.map +0 -1
- package/dist/chat/negotiator.persona.js.map +0 -1
- package/dist/chat/negotiator.prompt.d.ts.map +0 -1
- package/dist/chat/negotiator.prompt.js.map +0 -1
- package/dist/chat/negotiator.tools.d.ts.map +0 -1
- package/dist/chat/negotiator.tools.js.map +0 -1
- package/dist/chat/onboarding.persona.d.ts.map +0 -1
- package/dist/chat/onboarding.persona.js.map +0 -1
- package/dist/chat/onboarding.prompt.d.ts.map +0 -1
- package/dist/chat/onboarding.prompt.js.map +0 -1
- package/dist/chat/reporter.action.tools.d.ts.map +0 -1
- package/dist/chat/reporter.action.tools.js.map +0 -1
- package/dist/chat/reporter.persona.d.ts.map +0 -1
- package/dist/chat/reporter.persona.js.map +0 -1
- package/dist/chat/reporter.prompt.d.ts.map +0 -1
- package/dist/chat/reporter.prompt.js.map +0 -1
- package/dist/chat/signal.persona.d.ts.map +0 -1
- package/dist/chat/signal.persona.js.map +0 -1
- package/dist/chat/signal.prompt.d.ts.map +0 -1
- package/dist/chat/signal.prompt.js.map +0 -1
- package/dist/chat/tests/chat.graph.mocks.d.ts +0 -98
- package/dist/chat/tests/chat.graph.mocks.d.ts.map +0 -1
- package/dist/chat/tests/chat.graph.mocks.js +0 -225
- package/dist/chat/tests/chat.graph.mocks.js.map +0 -1
- package/dist/contact/contact.inviter.d.ts.map +0 -1
- package/dist/contact/contact.inviter.js.map +0 -1
- package/dist/contact/contact.tools.d.ts.map +0 -1
- package/dist/contact/contact.tools.js.map +0 -1
- package/dist/context/context.generator.d.ts.map +0 -1
- package/dist/context/context.generator.js.map +0 -1
- package/dist/enrichment/enrichment.enricher.d.ts.map +0 -1
- package/dist/enrichment/enrichment.enricher.js.map +0 -1
- package/dist/enrichment/enrichment.generator.d.ts.map +0 -1
- package/dist/enrichment/enrichment.generator.js.map +0 -1
- package/dist/enrichment/enrichment.graph.d.ts.map +0 -1
- package/dist/enrichment/enrichment.graph.js.map +0 -1
- package/dist/enrichment/enrichment.state.d.ts.map +0 -1
- package/dist/enrichment/enrichment.state.js.map +0 -1
- package/dist/enrichment/enrichment.tools.d.ts.map +0 -1
- package/dist/enrichment/enrichment.tools.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integration/integration.tools.d.ts.map +0 -1
- package/dist/integration/integration.tools.js.map +0 -1
- package/dist/intent/intent.clarifier.d.ts.map +0 -1
- package/dist/intent/intent.clarifier.js.map +0 -1
- package/dist/intent/intent.graph.d.ts.map +0 -1
- package/dist/intent/intent.graph.js.map +0 -1
- package/dist/intent/intent.indexer.d.ts.map +0 -1
- package/dist/intent/intent.indexer.js.map +0 -1
- package/dist/intent/intent.inferrer.d.ts.map +0 -1
- package/dist/intent/intent.inferrer.js.map +0 -1
- package/dist/intent/intent.reconciler.d.ts.map +0 -1
- package/dist/intent/intent.reconciler.js.map +0 -1
- package/dist/intent/intent.specificity.d.ts.map +0 -1
- package/dist/intent/intent.specificity.js.map +0 -1
- package/dist/intent/intent.state.d.ts.map +0 -1
- package/dist/intent/intent.state.js.map +0 -1
- package/dist/intent/intent.tools.d.ts.map +0 -1
- package/dist/intent/intent.tools.js.map +0 -1
- package/dist/intent/intent.verifier.d.ts.map +0 -1
- package/dist/intent/intent.verifier.js.map +0 -1
- package/dist/maintenance/maintenance.graph.d.ts.map +0 -1
- package/dist/maintenance/maintenance.graph.js.map +0 -1
- package/dist/maintenance/maintenance.state.d.ts.map +0 -1
- package/dist/maintenance/maintenance.state.js.map +0 -1
- package/dist/mcp/elicitation.builder.d.ts.map +0 -1
- package/dist/mcp/elicitation.builder.js.map +0 -1
- package/dist/mcp/elicitation.dispatcher.d.ts.map +0 -1
- package/dist/mcp/elicitation.dispatcher.js.map +0 -1
- package/dist/mcp/mcp.server.d.ts.map +0 -1
- package/dist/mcp/mcp.server.js.map +0 -1
- package/dist/negotiation/insight.generator.d.ts.map +0 -1
- package/dist/negotiation/insight.generator.js.map +0 -1
- package/dist/negotiation/negotiation.agent.d.ts.map +0 -1
- package/dist/negotiation/negotiation.agent.js.map +0 -1
- package/dist/negotiation/negotiation.attribution.d.ts.map +0 -1
- package/dist/negotiation/negotiation.attribution.js.map +0 -1
- package/dist/negotiation/negotiation.consultation-policy.d.ts.map +0 -1
- package/dist/negotiation/negotiation.consultation-policy.js.map +0 -1
- package/dist/negotiation/negotiation.deadlock.d.ts.map +0 -1
- package/dist/negotiation/negotiation.deadlock.js.map +0 -1
- package/dist/negotiation/negotiation.graph.d.ts.map +0 -1
- package/dist/negotiation/negotiation.graph.js.map +0 -1
- package/dist/negotiation/negotiation.memory.d.ts.map +0 -1
- package/dist/negotiation/negotiation.memory.js.map +0 -1
- package/dist/negotiation/negotiation.protocol.d.ts.map +0 -1
- package/dist/negotiation/negotiation.protocol.js.map +0 -1
- package/dist/negotiation/negotiation.question-safety.d.ts.map +0 -1
- package/dist/negotiation/negotiation.question-safety.js.map +0 -1
- package/dist/negotiation/negotiation.reflect.d.ts.map +0 -1
- package/dist/negotiation/negotiation.reflect.js.map +0 -1
- package/dist/negotiation/negotiation.screen.d.ts.map +0 -1
- package/dist/negotiation/negotiation.screen.js.map +0 -1
- package/dist/negotiation/negotiation.state.d.ts.map +0 -1
- package/dist/negotiation/negotiation.state.js.map +0 -1
- package/dist/negotiation/negotiation.summarizer.d.ts.map +0 -1
- package/dist/negotiation/negotiation.summarizer.js.map +0 -1
- package/dist/negotiation/negotiation.tools.d.ts.map +0 -1
- package/dist/negotiation/negotiation.tools.js.map +0 -1
- package/dist/network/indexer/indexer.graph.d.ts.map +0 -1
- package/dist/network/indexer/indexer.graph.js.map +0 -1
- package/dist/network/indexer/indexer.state.d.ts.map +0 -1
- package/dist/network/indexer/indexer.state.js.map +0 -1
- package/dist/network/membership/membership.graph.d.ts.map +0 -1
- package/dist/network/membership/membership.graph.js.map +0 -1
- package/dist/network/membership/membership.state.d.ts.map +0 -1
- package/dist/network/membership/membership.state.js.map +0 -1
- package/dist/network/network.graph.d.ts.map +0 -1
- package/dist/network/network.graph.js.map +0 -1
- package/dist/network/network.recommender.d.ts.map +0 -1
- package/dist/network/network.recommender.js.map +0 -1
- package/dist/network/network.state.d.ts.map +0 -1
- package/dist/network/network.state.js.map +0 -1
- package/dist/network/network.tools.d.ts.map +0 -1
- package/dist/network/network.tools.js.map +0 -1
- package/dist/opportunity/delivery-card.cache.d.ts.map +0 -1
- package/dist/opportunity/delivery-card.cache.js.map +0 -1
- package/dist/opportunity/discovery-question.helper.d.ts.map +0 -1
- package/dist/opportunity/discovery-question.helper.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.adjustments.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.adjustments.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.assigner.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.assigner.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.env.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.env.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.miner.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.miner.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.push.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.push.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.question.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.question.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.scorer.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.scorer.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.shadow.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.shadow.js.map +0 -1
- package/dist/opportunity/discriminator/discriminator.types.d.ts.map +0 -1
- package/dist/opportunity/discriminator/discriminator.types.js.map +0 -1
- package/dist/opportunity/feed/feed.categorizer.d.ts.map +0 -1
- package/dist/opportunity/feed/feed.categorizer.js.map +0 -1
- package/dist/opportunity/feed/feed.graph.d.ts.map +0 -1
- package/dist/opportunity/feed/feed.graph.js.map +0 -1
- package/dist/opportunity/feed/feed.health.d.ts.map +0 -1
- package/dist/opportunity/feed/feed.health.js.map +0 -1
- package/dist/opportunity/feed/feed.state.d.ts.map +0 -1
- package/dist/opportunity/feed/feed.state.js.map +0 -1
- package/dist/opportunity/negotiation-context.loader.d.ts.map +0 -1
- package/dist/opportunity/negotiation-context.loader.js.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.env.d.ts.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.env.js.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.extractor.d.ts.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.extractor.js.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.miner.d.ts.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.miner.js.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.shadow.d.ts.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.shadow.js.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.types.d.ts.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.types.js.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.verifier.d.ts.map +0 -1
- package/dist/opportunity/negotiation-evidence/negotiation-evidence.verifier.js.map +0 -1
- package/dist/opportunity/negotiation-summary.builder.d.ts.map +0 -1
- package/dist/opportunity/negotiation-summary.builder.js.map +0 -1
- package/dist/opportunity/opportunity.actor.d.ts.map +0 -1
- package/dist/opportunity/opportunity.actor.js.map +0 -1
- package/dist/opportunity/opportunity.claim-safety.d.ts.map +0 -1
- package/dist/opportunity/opportunity.claim-safety.js.map +0 -1
- package/dist/opportunity/opportunity.discover.d.ts.map +0 -1
- package/dist/opportunity/opportunity.discover.js.map +0 -1
- package/dist/opportunity/opportunity.enricher.d.ts.map +0 -1
- package/dist/opportunity/opportunity.enricher.js.map +0 -1
- package/dist/opportunity/opportunity.evaluator.d.ts.map +0 -1
- package/dist/opportunity/opportunity.evaluator.js.map +0 -1
- package/dist/opportunity/opportunity.evidence.d.ts.map +0 -1
- package/dist/opportunity/opportunity.evidence.js.map +0 -1
- package/dist/opportunity/opportunity.graph.d.ts.map +0 -1
- package/dist/opportunity/opportunity.graph.js.map +0 -1
- package/dist/opportunity/opportunity.introducer.d.ts.map +0 -1
- package/dist/opportunity/opportunity.introducer.js.map +0 -1
- package/dist/opportunity/opportunity.labels.d.ts.map +0 -1
- package/dist/opportunity/opportunity.labels.js.map +0 -1
- package/dist/opportunity/opportunity.pending-questions.d.ts.map +0 -1
- package/dist/opportunity/opportunity.pending-questions.js.map +0 -1
- package/dist/opportunity/opportunity.persist.d.ts.map +0 -1
- package/dist/opportunity/opportunity.persist.js.map +0 -1
- package/dist/opportunity/opportunity.presentation-cache.d.ts.map +0 -1
- package/dist/opportunity/opportunity.presentation-cache.js.map +0 -1
- package/dist/opportunity/opportunity.presentation.d.ts.map +0 -1
- package/dist/opportunity/opportunity.presentation.js.map +0 -1
- package/dist/opportunity/opportunity.presenter.d.ts.map +0 -1
- package/dist/opportunity/opportunity.presenter.js.map +0 -1
- package/dist/opportunity/opportunity.safe-presentation.d.ts.map +0 -1
- package/dist/opportunity/opportunity.safe-presentation.js.map +0 -1
- package/dist/opportunity/opportunity.state.d.ts.map +0 -1
- package/dist/opportunity/opportunity.state.js.map +0 -1
- package/dist/opportunity/opportunity.tools.d.ts.map +0 -1
- package/dist/opportunity/opportunity.tools.js.map +0 -1
- package/dist/opportunity/opportunity.utils.d.ts.map +0 -1
- package/dist/opportunity/opportunity.utils.js.map +0 -1
- package/dist/opportunity/outcome/outcome.env.d.ts.map +0 -1
- package/dist/opportunity/outcome/outcome.env.js.map +0 -1
- package/dist/opportunity/outcome/outcome.hypotheses.d.ts.map +0 -1
- package/dist/opportunity/outcome/outcome.hypotheses.js.map +0 -1
- package/dist/opportunity/outcome/outcome.shadow.d.ts.map +0 -1
- package/dist/opportunity/outcome/outcome.shadow.js.map +0 -1
- package/dist/opportunity/outcome/outcome.types.d.ts.map +0 -1
- package/dist/opportunity/outcome/outcome.types.js.map +0 -1
- package/dist/premise/premise.analyzer.d.ts.map +0 -1
- package/dist/premise/premise.analyzer.js.map +0 -1
- package/dist/premise/premise.decomposer.d.ts.map +0 -1
- package/dist/premise/premise.decomposer.js.map +0 -1
- package/dist/premise/premise.graph.d.ts.map +0 -1
- package/dist/premise/premise.graph.js.map +0 -1
- package/dist/premise/premise.indexer.d.ts.map +0 -1
- package/dist/premise/premise.indexer.js.map +0 -1
- package/dist/premise/premise.state.d.ts.map +0 -1
- package/dist/premise/premise.state.js.map +0 -1
- package/dist/premise/premise.tools.d.ts.map +0 -1
- package/dist/premise/premise.tools.js.map +0 -1
- package/dist/questioner/questioner.agent.d.ts.map +0 -1
- package/dist/questioner/questioner.agent.js.map +0 -1
- package/dist/questioner/questioner.ask.tool.d.ts.map +0 -1
- package/dist/questioner/questioner.ask.tool.js.map +0 -1
- package/dist/questioner/questioner.discovery.prompt.d.ts.map +0 -1
- package/dist/questioner/questioner.discovery.prompt.js.map +0 -1
- package/dist/questioner/questioner.env.d.ts.map +0 -1
- package/dist/questioner/questioner.env.js.map +0 -1
- package/dist/questioner/questioner.presets.d.ts.map +0 -1
- package/dist/questioner/questioner.presets.js.map +0 -1
- package/dist/questioner/questioner.qud.d.ts.map +0 -1
- package/dist/questioner/questioner.qud.js.map +0 -1
- package/dist/questioner/questioner.tools.d.ts.map +0 -1
- package/dist/questioner/questioner.tools.js.map +0 -1
- package/dist/questioner/questioner.types.d.ts.map +0 -1
- package/dist/questioner/questioner.types.js.map +0 -1
- package/dist/shared/agent/model-signal.d.ts.map +0 -1
- package/dist/shared/agent/model-signal.js.map +0 -1
- package/dist/shared/agent/model.config.d.ts.map +0 -1
- package/dist/shared/agent/model.config.js.map +0 -1
- package/dist/shared/agent/tests/llm-assert.d.ts +0 -11
- package/dist/shared/agent/tests/llm-assert.d.ts.map +0 -1
- package/dist/shared/agent/tests/llm-assert.js +0 -43
- package/dist/shared/agent/tests/llm-assert.js.map +0 -1
- package/dist/shared/agent/tool.factory.d.ts.map +0 -1
- package/dist/shared/agent/tool.factory.js.map +0 -1
- package/dist/shared/agent/tool.helpers.d.ts.map +0 -1
- package/dist/shared/agent/tool.helpers.js.map +0 -1
- package/dist/shared/agent/tool.registry.d.ts.map +0 -1
- package/dist/shared/agent/tool.registry.js.map +0 -1
- package/dist/shared/agent/tool.runtime.d.ts.map +0 -1
- package/dist/shared/agent/tool.runtime.js.map +0 -1
- package/dist/shared/agent/tool.scope.d.ts.map +0 -1
- package/dist/shared/agent/tool.scope.js.map +0 -1
- package/dist/shared/agent/utility.tools.d.ts.map +0 -1
- package/dist/shared/agent/utility.tools.js.map +0 -1
- package/dist/shared/assignment/network-assignment.policy.d.ts.map +0 -1
- package/dist/shared/assignment/network-assignment.policy.js.map +0 -1
- package/dist/shared/hyde/hyde.documents.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.documents.js.map +0 -1
- package/dist/shared/hyde/hyde.env.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.env.js.map +0 -1
- package/dist/shared/hyde/hyde.frame.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.frame.js.map +0 -1
- package/dist/shared/hyde/hyde.generator.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.generator.js.map +0 -1
- package/dist/shared/hyde/hyde.graph.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.graph.js.map +0 -1
- package/dist/shared/hyde/hyde.state.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.state.js.map +0 -1
- package/dist/shared/hyde/hyde.strategies.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.strategies.js.map +0 -1
- package/dist/shared/hyde/hyde.validator.d.ts.map +0 -1
- package/dist/shared/hyde/hyde.validator.js.map +0 -1
- package/dist/shared/hyde/lens.inferrer.d.ts.map +0 -1
- package/dist/shared/hyde/lens.inferrer.js.map +0 -1
- package/dist/shared/interfaces/agent-dispatcher.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/agent-dispatcher.interface.js.map +0 -1
- package/dist/shared/interfaces/agent.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/agent.interface.js.map +0 -1
- package/dist/shared/interfaces/auth.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/auth.interface.js.map +0 -1
- package/dist/shared/interfaces/cache.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/cache.interface.js.map +0 -1
- package/dist/shared/interfaces/chat-message-writer.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/chat-message-writer.interface.js.map +0 -1
- package/dist/shared/interfaces/chat-session.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/chat-session.interface.js.map +0 -1
- package/dist/shared/interfaces/chat-summary.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/chat-summary.interface.js.map +0 -1
- package/dist/shared/interfaces/connect-link.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/connect-link.interface.js.map +0 -1
- package/dist/shared/interfaces/contact.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/contact.interface.js.map +0 -1
- package/dist/shared/interfaces/database.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/database.interface.js.map +0 -1
- package/dist/shared/interfaces/delivery-ledger.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/delivery-ledger.interface.js.map +0 -1
- package/dist/shared/interfaces/discovery-run.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/discovery-run.interface.js.map +0 -1
- package/dist/shared/interfaces/embedder.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/embedder.interface.js.map +0 -1
- package/dist/shared/interfaces/enrichment-run.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/enrichment-run.interface.js.map +0 -1
- package/dist/shared/interfaces/enrichment.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/enrichment.interface.js.map +0 -1
- package/dist/shared/interfaces/integration.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/integration.interface.js.map +0 -1
- package/dist/shared/interfaces/negotiation-events.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/negotiation-events.interface.js.map +0 -1
- package/dist/shared/interfaces/negotiation-summary.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/negotiation-summary.interface.js.map +0 -1
- package/dist/shared/interfaces/negotiator-memory.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/negotiator-memory.interface.js.map +0 -1
- package/dist/shared/interfaces/question-generator.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/question-generator.interface.js.map +0 -1
- package/dist/shared/interfaces/questioner.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/questioner.interface.js.map +0 -1
- package/dist/shared/interfaces/queue.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/queue.interface.js.map +0 -1
- package/dist/shared/interfaces/scraper.interface.d.ts.map +0 -1
- package/dist/shared/interfaces/scraper.interface.js.map +0 -1
- package/dist/shared/network/metadata.renderer.d.ts.map +0 -1
- package/dist/shared/network/metadata.renderer.js.map +0 -1
- package/dist/shared/observability/debug-meta.sanitizer.d.ts.map +0 -1
- package/dist/shared/observability/debug-meta.sanitizer.js.map +0 -1
- package/dist/shared/observability/log.d.ts.map +0 -1
- package/dist/shared/observability/log.js.map +0 -1
- package/dist/shared/observability/performance.d.ts.map +0 -1
- package/dist/shared/observability/performance.js.map +0 -1
- package/dist/shared/observability/protocol.logger.d.ts.map +0 -1
- package/dist/shared/observability/protocol.logger.js.map +0 -1
- package/dist/shared/observability/request-context.d.ts.map +0 -1
- package/dist/shared/observability/request-context.js.map +0 -1
- package/dist/shared/observability/trace.d.ts.map +0 -1
- package/dist/shared/observability/trace.js.map +0 -1
- package/dist/shared/schemas/chat-context.schema.d.ts.map +0 -1
- package/dist/shared/schemas/chat-context.schema.js.map +0 -1
- package/dist/shared/schemas/discovery-question.schema.d.ts.map +0 -1
- package/dist/shared/schemas/discovery-question.schema.js.map +0 -1
- package/dist/shared/schemas/identity.schema.d.ts.map +0 -1
- package/dist/shared/schemas/identity.schema.js.map +0 -1
- package/dist/shared/schemas/mcp-auth.schema.d.ts.map +0 -1
- package/dist/shared/schemas/mcp-auth.schema.js.map +0 -1
- package/dist/shared/schemas/negotiation-digest.schema.d.ts.map +0 -1
- package/dist/shared/schemas/negotiation-digest.schema.js.map +0 -1
- package/dist/shared/schemas/negotiation-state.schema.d.ts.map +0 -1
- package/dist/shared/schemas/negotiation-state.schema.js.map +0 -1
- package/dist/shared/schemas/network-assignment.schema.d.ts.map +0 -1
- package/dist/shared/schemas/network-assignment.schema.js.map +0 -1
- package/dist/shared/schemas/pending-question.schema.d.ts.map +0 -1
- package/dist/shared/schemas/pending-question.schema.js.map +0 -1
- package/dist/shared/schemas/question.schema.d.ts.map +0 -1
- package/dist/shared/schemas/question.schema.js.map +0 -1
- package/dist/shared/ui/lucide.icon-catalog.d.ts.map +0 -1
- package/dist/shared/ui/lucide.icon-catalog.js.map +0 -1
- package/dist/shared/utils/social-label.d.ts.map +0 -1
- package/dist/shared/utils/social-label.js.map +0 -1
- package/dist/shared/utils/telegram-handle.d.ts.map +0 -1
- package/dist/shared/utils/telegram-handle.js.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Cache } from '../../shared/interfaces/cache.interface.js';
|
|
2
|
+
import type { ChatGraphCompositeDatabase, Opportunity } from '../../shared/interfaces/database.interface.js';
|
|
3
|
+
import type { CandidateMatch } from '../domain/opportunity.state.js';
|
|
4
|
+
import type { DiscoverDebugStep, DiscoveryResultContract } from '../domain/opportunity.discovery.contracts.js';
|
|
5
|
+
export interface DiscoveryContinuationCacheSession {
|
|
6
|
+
candidates: CandidateMatch[];
|
|
7
|
+
}
|
|
8
|
+
export interface DiscoveryContinuationGraphResult {
|
|
9
|
+
trace?: Array<{
|
|
10
|
+
node: string;
|
|
11
|
+
detail?: string;
|
|
12
|
+
data?: Record<string, unknown>;
|
|
13
|
+
}>;
|
|
14
|
+
error?: string;
|
|
15
|
+
remainingCandidates?: CandidateMatch[];
|
|
16
|
+
opportunities?: Opportunity[];
|
|
17
|
+
}
|
|
18
|
+
interface DiscoveryContinuationFinalizationInput<TOpportunity> {
|
|
19
|
+
result: DiscoveryContinuationGraphResult;
|
|
20
|
+
cache: Pick<Cache, 'set' | 'delete'>;
|
|
21
|
+
cacheKey: string;
|
|
22
|
+
cached: DiscoveryContinuationCacheSession;
|
|
23
|
+
userId: string;
|
|
24
|
+
discoveryId: string;
|
|
25
|
+
database: Pick<ChatGraphCompositeDatabase, 'getOpportunitiesByIds'>;
|
|
26
|
+
enrich: (opportunities: Opportunity[], debugSteps: DiscoverDebugStep[]) => Promise<TOpportunity[]>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Finalizes a successful continuation graph result without owning session
|
|
30
|
+
* lookup, scope admission, or graph invocation. Cache failures are advisory;
|
|
31
|
+
* lifecycle refresh and presentation use the graph result regardless.
|
|
32
|
+
*/
|
|
33
|
+
export declare function finalizeDiscoveryContinuation<TOpportunity>(args: DiscoveryContinuationFinalizationInput<TOpportunity>): Promise<DiscoveryResultContract<TOpportunity>>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { protocolLogger } from '../../shared/observability/protocol.logger.js';
|
|
2
|
+
const logger = protocolLogger('OpportunityDiscover');
|
|
3
|
+
/**
|
|
4
|
+
* Finalizes a successful continuation graph result without owning session
|
|
5
|
+
* lookup, scope admission, or graph invocation. Cache failures are advisory;
|
|
6
|
+
* lifecycle refresh and presentation use the graph result regardless.
|
|
7
|
+
*/
|
|
8
|
+
export async function finalizeDiscoveryContinuation(args) {
|
|
9
|
+
const debugSteps = [];
|
|
10
|
+
for (const trace of args.result.trace || []) {
|
|
11
|
+
debugSteps.push({
|
|
12
|
+
step: trace.node,
|
|
13
|
+
detail: trace.detail,
|
|
14
|
+
...(trace.data ? { data: trace.data } : {}),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
if (args.result.error) {
|
|
18
|
+
logger.warn('continueDiscovery graph returned error', { error: args.result.error });
|
|
19
|
+
return {
|
|
20
|
+
found: false,
|
|
21
|
+
count: 0,
|
|
22
|
+
message: 'Discovery continuation failed. Please start a new search.',
|
|
23
|
+
debugSteps,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const remaining = args.result.remainingCandidates || [];
|
|
27
|
+
let pagination;
|
|
28
|
+
try {
|
|
29
|
+
if (remaining.length > 0) {
|
|
30
|
+
await args.cache.set(args.cacheKey, {
|
|
31
|
+
...args.cached,
|
|
32
|
+
candidates: remaining,
|
|
33
|
+
}, { ttl: 1800 });
|
|
34
|
+
pagination = {
|
|
35
|
+
discoveryId: args.discoveryId,
|
|
36
|
+
evaluated: args.cached.candidates.length - remaining.length,
|
|
37
|
+
remaining: remaining.length,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
await args.cache.delete(args.cacheKey);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (cacheErr) {
|
|
45
|
+
logger.warn('Failed to update discovery pagination cache', {
|
|
46
|
+
userId: args.userId,
|
|
47
|
+
discoveryId: args.discoveryId,
|
|
48
|
+
error: cacheErr instanceof Error ? cacheErr.message : String(cacheErr),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const opportunities = Array.isArray(args.result.opportunities) ? args.result.opportunities : [];
|
|
52
|
+
const refreshed = opportunities.length > 0
|
|
53
|
+
? await args.database.getOpportunitiesByIds(opportunities.map((opportunity) => opportunity.id))
|
|
54
|
+
: [];
|
|
55
|
+
const refreshedById = new Map(refreshed.map((opportunity) => [opportunity.id, opportunity]));
|
|
56
|
+
const currentOpportunities = opportunities.map((opportunity) => refreshedById.get(opportunity.id) ?? opportunity);
|
|
57
|
+
if (currentOpportunities.length === 0) {
|
|
58
|
+
return {
|
|
59
|
+
found: false,
|
|
60
|
+
count: 0,
|
|
61
|
+
message: 'No more matching opportunities found in the remaining candidates.',
|
|
62
|
+
debugSteps,
|
|
63
|
+
pagination,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const enriched = await args.enrich(currentOpportunities, debugSteps);
|
|
67
|
+
return {
|
|
68
|
+
found: true,
|
|
69
|
+
count: enriched.length,
|
|
70
|
+
opportunities: enriched,
|
|
71
|
+
debugSteps,
|
|
72
|
+
pagination,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { OpportunityStatus } from '../../shared/interfaces/database.interface.js';
|
|
2
|
+
import type { OpportunityCardLike } from './opportunity.card-presentation.js';
|
|
3
|
+
import type { ExistingConnection, FormattedDiscoveryCandidate } from './opportunity.discover.js';
|
|
4
|
+
type DiscoveryPagination = {
|
|
5
|
+
discoveryId: string;
|
|
6
|
+
evaluated: number;
|
|
7
|
+
remaining: number;
|
|
8
|
+
};
|
|
9
|
+
export interface DiscoveryMcpLifecycleFinalizationInput<TCard extends OpportunityCardLike> {
|
|
10
|
+
isMcp: boolean;
|
|
11
|
+
candidates: FormattedDiscoveryCandidate[];
|
|
12
|
+
existingConnections?: ExistingConnection[];
|
|
13
|
+
existingConnectionsForMention?: ExistingConnection[];
|
|
14
|
+
alreadyAcceptedPairs?: Array<{
|
|
15
|
+
opportunityId: string;
|
|
16
|
+
counterpartyUserId: string;
|
|
17
|
+
}>;
|
|
18
|
+
pagination?: DiscoveryPagination;
|
|
19
|
+
isIntroducerFlow: boolean;
|
|
20
|
+
displayLimit: number;
|
|
21
|
+
readOpportunitiesByIds: (ids: string[]) => Promise<Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
status: OpportunityStatus;
|
|
24
|
+
}>>;
|
|
25
|
+
warn: (message: string, data: Record<string, unknown>) => void;
|
|
26
|
+
/** The caller supplies the only allowed safe-presentation path for card text. */
|
|
27
|
+
projectSafeCard: (candidate: FormattedDiscoveryCandidate) => TCard;
|
|
28
|
+
}
|
|
29
|
+
export interface DiscoveryMcpLifecycleFinalization<TCard extends OpportunityCardLike> {
|
|
30
|
+
displayedCards: TCard[];
|
|
31
|
+
/** Source candidates retain viewer approval data for facade-owned link minting. */
|
|
32
|
+
displayedCandidates: FormattedDiscoveryCandidate[];
|
|
33
|
+
negotiatingCount: number;
|
|
34
|
+
/** Adds lifecycle-aware completion copy after facade-owned link decoration. */
|
|
35
|
+
composeMessage: (baseMessage: string) => string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Reconciles a discovery graph result with authoritative opportunity lifecycle
|
|
39
|
+
* rows before the MCP tool presents cards. Graph output is intentionally not
|
|
40
|
+
* trusted for new-card lifecycle after its negotiate phase. The tools facade
|
|
41
|
+
* continues to own link writes and the outer tool response.
|
|
42
|
+
*/
|
|
43
|
+
export declare function finalizeMcpDiscoveryLifecycle<TCard extends OpportunityCardLike>(input: DiscoveryMcpLifecycleFinalizationInput<TCard>): Promise<DiscoveryMcpLifecycleFinalization<TCard>>;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
function existingConnectionsNarrative(connections) {
|
|
2
|
+
if (connections.length === 0)
|
|
3
|
+
return '';
|
|
4
|
+
return ('\n\nYou already have a connection with: ' +
|
|
5
|
+
connections.map((connection) => connection.name + (connection.status ? ` (${connection.status})` : '')).join(', ') +
|
|
6
|
+
'. View on your home page.');
|
|
7
|
+
}
|
|
8
|
+
function alreadyAcceptedNarrative(alreadyAcceptedPairs) {
|
|
9
|
+
if (alreadyAcceptedPairs.length === 0)
|
|
10
|
+
return '';
|
|
11
|
+
return `\n\nYou already have ${alreadyAcceptedPairs.length} accepted opportunity(ies) with some of these candidates — open the existing chat with them rather than creating a new draft.`;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Reconciles a discovery graph result with authoritative opportunity lifecycle
|
|
15
|
+
* rows before the MCP tool presents cards. Graph output is intentionally not
|
|
16
|
+
* trusted for new-card lifecycle after its negotiate phase. The tools facade
|
|
17
|
+
* continues to own link writes and the outer tool response.
|
|
18
|
+
*/
|
|
19
|
+
export async function finalizeMcpDiscoveryLifecycle(input) {
|
|
20
|
+
const existingConnectionIds = new Set((input.existingConnections ?? [])
|
|
21
|
+
.map((connection) => connection.opportunityId)
|
|
22
|
+
.filter((id) => typeof id === 'string'));
|
|
23
|
+
let negotiatingCount = 0;
|
|
24
|
+
let visibleCandidates = input.candidates;
|
|
25
|
+
if (input.isMcp && input.candidates.length > 0) {
|
|
26
|
+
const newCardIds = input.candidates
|
|
27
|
+
.filter((candidate) => !existingConnectionIds.has(candidate.opportunityId))
|
|
28
|
+
.map((candidate) => candidate.opportunityId);
|
|
29
|
+
const refreshed = newCardIds.length > 0
|
|
30
|
+
? await input.readOpportunitiesByIds(newCardIds)
|
|
31
|
+
: [];
|
|
32
|
+
const statusById = new Map(refreshed.map((opportunity) => [opportunity.id, opportunity.status]));
|
|
33
|
+
const draftCandidates = [];
|
|
34
|
+
for (const candidate of input.candidates) {
|
|
35
|
+
if (existingConnectionIds.has(candidate.opportunityId)) {
|
|
36
|
+
// Re-surfaced connections preserve their discover-time lifecycle.
|
|
37
|
+
draftCandidates.push(candidate);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const refreshedStatus = statusById.get(candidate.opportunityId);
|
|
41
|
+
if (refreshedStatus === 'draft') {
|
|
42
|
+
draftCandidates.push({ ...candidate, status: refreshedStatus });
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (refreshedStatus === 'negotiating') {
|
|
46
|
+
negotiatingCount += 1;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (refreshedStatus === 'rejected' || refreshedStatus === 'stalled') {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Pending, latent, and missing rows are not expected after the graph's
|
|
53
|
+
// negotiate phase. Preserve the established fail-closed display policy:
|
|
54
|
+
// do not surface a card, but make the deferred state observable.
|
|
55
|
+
input.warn('unexpected refreshed status — counting as negotiating', {
|
|
56
|
+
opportunityId: candidate.opportunityId,
|
|
57
|
+
refreshedStatus,
|
|
58
|
+
});
|
|
59
|
+
negotiatingCount += 1;
|
|
60
|
+
}
|
|
61
|
+
visibleCandidates = draftCandidates;
|
|
62
|
+
}
|
|
63
|
+
// Projection is supplied by the tools facade so this policy cannot choose a
|
|
64
|
+
// raw-reasoning path; callers must use getSafePresentationOrSkip-compatible copy.
|
|
65
|
+
const projectedCards = visibleCandidates.map(input.projectSafeCard);
|
|
66
|
+
const displayedCards = projectedCards.slice(0, input.displayLimit);
|
|
67
|
+
const displayedCandidates = visibleCandidates.slice(0, input.displayLimit);
|
|
68
|
+
const extraFromCap = projectedCards.length - displayedCards.length;
|
|
69
|
+
const existingNarrative = existingConnectionsNarrative(input.existingConnectionsForMention ?? input.existingConnections ?? []);
|
|
70
|
+
const acceptedNarrative = alreadyAcceptedNarrative(input.alreadyAcceptedPairs ?? []);
|
|
71
|
+
const totalRemaining = (input.pagination?.remaining ?? 0) + extraFromCap;
|
|
72
|
+
const completionNarrative = totalRemaining > 0 && input.pagination?.discoveryId
|
|
73
|
+
? `\n\nThere are ${totalRemaining} more candidates. Ask if the user wants to see more — they can say "show me more" and you should call discover_opportunities with continueFrom="${input.pagination.discoveryId}".`
|
|
74
|
+
: input.isIntroducerFlow
|
|
75
|
+
? '\n\nThese are all the introduction candidates I found for this person.'
|
|
76
|
+
: '\n\nThese are all the connections I found. If the user wants to attract more connections, suggest they create a signal — e.g. "Would you like to create a signal so others looking for someone like you can find you?" If they agree, call create_intent with a description based on what they were searching for.';
|
|
77
|
+
return {
|
|
78
|
+
displayedCards,
|
|
79
|
+
displayedCandidates,
|
|
80
|
+
negotiatingCount,
|
|
81
|
+
composeMessage(baseMessage) {
|
|
82
|
+
const message = baseMessage + existingNarrative + acceptedNarrative + completionNarrative;
|
|
83
|
+
if (!input.isMcp || negotiatingCount === 0)
|
|
84
|
+
return message;
|
|
85
|
+
if (displayedCards.length > 0) {
|
|
86
|
+
return message + `\n\n${negotiatingCount} more opportunit${negotiatingCount === 1 ? 'y is' : 'ies are'} still being evaluated — check back via \`list_opportunities\` shortly.`;
|
|
87
|
+
}
|
|
88
|
+
// Preserve existing/accepted facts but omit card-only completion copy.
|
|
89
|
+
return `Found candidates, but they're still being evaluated. Try \`list_opportunities\` in a minute — ${negotiatingCount} pending.` + existingNarrative + acceptedNarrative;
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NegotiationSummaryReader } from '../../shared/interfaces/negotiation-summary.interface.js';
|
|
2
|
+
import type { DiscoveryNegotiationDigest } from '../../shared/schemas/negotiation-digest.schema.js';
|
|
3
|
+
import type { DiscoveryNegotiation } from '../../shared/schemas/discovery-question.schema.js';
|
|
4
|
+
export interface DiscoveryNegotiationSummaryInput {
|
|
5
|
+
negotiations: DiscoveryNegotiation[];
|
|
6
|
+
summarizer: NegotiationSummaryReader | undefined;
|
|
7
|
+
callerSignal?: AbortSignal;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Summarizes each already-admitted discovery negotiation independently. A
|
|
11
|
+
* missing, null, empty, or failed model response falls back per negotiation so
|
|
12
|
+
* one failure cannot suppress an ordered batch of deterministic digests.
|
|
13
|
+
*/
|
|
14
|
+
export declare function summarizeDiscoveryNegotiations(args: DiscoveryNegotiationSummaryInput): Promise<DiscoveryNegotiationDigest[]>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { buildFallbackDigest } from '../../capabilities/negotiation.summary.facade.js';
|
|
2
|
+
import { protocolLogger } from '../../shared/observability/protocol.logger.js';
|
|
3
|
+
import { traceAgent } from '../../shared/observability/trace.js';
|
|
4
|
+
const logger = protocolLogger('OpportunityDiscoveryNegotiationSummary');
|
|
5
|
+
const NEGOTIATION_SUMMARY_TIMEOUT_MS_DEFAULT = 5000;
|
|
6
|
+
function parsePositiveIntEnv(name, fallback) {
|
|
7
|
+
const raw = process.env[name];
|
|
8
|
+
if (!raw)
|
|
9
|
+
return fallback;
|
|
10
|
+
const n = Number.parseInt(raw, 10);
|
|
11
|
+
if (!Number.isFinite(n) || n <= 0 || n > Number.MAX_SAFE_INTEGER)
|
|
12
|
+
return fallback;
|
|
13
|
+
return n;
|
|
14
|
+
}
|
|
15
|
+
function combineWithDeadline(callerSignal, deadlineMs) {
|
|
16
|
+
const deadline = AbortSignal.timeout(deadlineMs);
|
|
17
|
+
if (!callerSignal)
|
|
18
|
+
return deadline;
|
|
19
|
+
return AbortSignal.any([callerSignal, deadline]);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Summarizes each already-admitted discovery negotiation independently. A
|
|
23
|
+
* missing, null, empty, or failed model response falls back per negotiation so
|
|
24
|
+
* one failure cannot suppress an ordered batch of deterministic digests.
|
|
25
|
+
*/
|
|
26
|
+
export async function summarizeDiscoveryNegotiations(args) {
|
|
27
|
+
const perNegTimeoutMs = parsePositiveIntEnv('NEGOTIATION_SUMMARY_TIMEOUT_MS', NEGOTIATION_SUMMARY_TIMEOUT_MS_DEFAULT);
|
|
28
|
+
return traceAgent(`Negotiation summary (${args.negotiations.length})`, () => Promise.all(args.negotiations.map(async (negotiation) => {
|
|
29
|
+
if (!args.summarizer)
|
|
30
|
+
return buildFallbackDigest(negotiation);
|
|
31
|
+
const signal = combineWithDeadline(args.callerSignal, perNegTimeoutMs);
|
|
32
|
+
try {
|
|
33
|
+
const digest = await args.summarizer.summarize(negotiation, { signal });
|
|
34
|
+
return digest ?? buildFallbackDigest(negotiation);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
const aborted = err instanceof Error && err.name === 'AbortError';
|
|
38
|
+
logger.warn('negotiationSummary.summarize threw — using fallback digest', {
|
|
39
|
+
counterpartyHint: negotiation.counterpartyHint,
|
|
40
|
+
aborted,
|
|
41
|
+
error: err instanceof Error ? err.message : String(err),
|
|
42
|
+
});
|
|
43
|
+
return buildFallbackDigest(negotiation);
|
|
44
|
+
}
|
|
45
|
+
})), (digests) => `${digests.length} digest${digests.length === 1 ? '' : 's'}`);
|
|
46
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opportunity enricher: when creating an opportunity, find overlapping existing
|
|
3
|
+
* opportunities (by non-introducer actor userId), check semantic relatedness, and
|
|
4
|
+
* optionally merge into a single enriched opportunity and expire the old one(s).
|
|
5
|
+
*/
|
|
6
|
+
import type { CreateOpportunityData, Opportunity, OpportunityStatus } from '../../shared/interfaces/database.interface.js';
|
|
7
|
+
import type { Embedder } from '../../shared/interfaces/embedder.interface.js';
|
|
8
|
+
/**
|
|
9
|
+
* Statuses excluded from the merge-candidate pool by default.
|
|
10
|
+
*
|
|
11
|
+
* - 'accepted': the pair already connected — do NOT fold a new discovery into
|
|
12
|
+
* the historical opp. IND-237 surfaces the existing conversation separately.
|
|
13
|
+
* - 'negotiating': a negotiation is in-flight for this pair; rolling a new
|
|
14
|
+
* candidate into it would blur the outcome of the active turn. Wait for the
|
|
15
|
+
* negotiation to finalize (→ draft/pending/rejected/stalled) first, then
|
|
16
|
+
* enrichment can pick it up on the next pass.
|
|
17
|
+
* - 'expired': already superseded by a later enriched opportunity. Without this
|
|
18
|
+
* exclusion, each enrichment cycle re-merges previously-expired enriched
|
|
19
|
+
* opportunities, compounding their actor arrays into 100+ entries.
|
|
20
|
+
*
|
|
21
|
+
* Exported for callers that want to extend rather than replace the default.
|
|
22
|
+
*/
|
|
23
|
+
export declare const DEFAULT_ENRICHER_EXCLUDE_STATUSES: OpportunityStatus[];
|
|
24
|
+
export type EnricherDatabase = {
|
|
25
|
+
findOpportunitiesByActors(actorIds: string[], options?: {
|
|
26
|
+
includeIntroducers?: boolean;
|
|
27
|
+
statuses?: OpportunityStatus[];
|
|
28
|
+
excludeStatuses?: OpportunityStatus[];
|
|
29
|
+
}): Promise<Opportunity[]>;
|
|
30
|
+
};
|
|
31
|
+
export type EnrichmentResult = {
|
|
32
|
+
enriched: false;
|
|
33
|
+
data: CreateOpportunityData;
|
|
34
|
+
} | {
|
|
35
|
+
enriched: true;
|
|
36
|
+
data: CreateOpportunityData;
|
|
37
|
+
expiredIds: string[];
|
|
38
|
+
resolvedStatus: OpportunityStatus;
|
|
39
|
+
};
|
|
40
|
+
export type EnrichOrCreateOptions = {
|
|
41
|
+
similarityThreshold?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Statuses to exclude from the merge-candidate pool. Defaults to
|
|
44
|
+
* {@link DEFAULT_ENRICHER_EXCLUDE_STATUSES} (`['accepted', 'negotiating']`).
|
|
45
|
+
* Pass an empty array `[]` to consider all statuses.
|
|
46
|
+
*/
|
|
47
|
+
excludeStatuses?: OpportunityStatus[];
|
|
48
|
+
/** Restrict merge/expiration candidates to the authoritative owned intent. */
|
|
49
|
+
ownedIntentScope?: {
|
|
50
|
+
triggerIntentId: string;
|
|
51
|
+
ownerUserId: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Enrich or create: find overlapping opportunities, filter by semantic relatedness
|
|
56
|
+
* using a two-phase approach, merge actors and interpretation into a single
|
|
57
|
+
* CreateOpportunityData, and return the data plus IDs to expire. If no related
|
|
58
|
+
* overlap, return original data unchanged.
|
|
59
|
+
*
|
|
60
|
+
* Phase 1 — Intent check (free, no API call):
|
|
61
|
+
* Shared intent IDs mean the same declared user goal drove both opportunities.
|
|
62
|
+
* This is rare because the IntentReconciler already deduplicates intents per-user
|
|
63
|
+
* upstream, but when it fires it is definitive.
|
|
64
|
+
*
|
|
65
|
+
* Phase 2 — Batched embedding similarity (one API call for all remaining):
|
|
66
|
+
* For opportunities without shared intents, embed all reasoning texts in a single
|
|
67
|
+
* batch call and compare cosine similarity. Cross-user intent comparison (e.g.
|
|
68
|
+
* Alice's "find ML co-founder" vs Bob's "join ML startup") is implicitly handled
|
|
69
|
+
* here since reasoning text synthesizes both users' intents.
|
|
70
|
+
*/
|
|
71
|
+
export declare function enrichOrCreate(database: EnricherDatabase, embedder: Embedder, newData: CreateOpportunityData, options?: EnrichOrCreateOptions): Promise<EnrichmentResult>;
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opportunity enricher: when creating an opportunity, find overlapping existing
|
|
3
|
+
* opportunities (by non-introducer actor userId), check semantic relatedness, and
|
|
4
|
+
* optionally merge into a single enriched opportunity and expire the old one(s).
|
|
5
|
+
*/
|
|
6
|
+
import { getAbortSignalConfig } from '../../shared/agent/model-signal.js';
|
|
7
|
+
import { protocolLogger } from '../../shared/observability/protocol.logger.js';
|
|
8
|
+
const logger = protocolLogger('OpportunityEnricher');
|
|
9
|
+
const DEFAULT_SIMILARITY_THRESHOLD = 0.7;
|
|
10
|
+
const MIN_REASONING_LENGTH_FOR_EMBEDDING = 10;
|
|
11
|
+
/**
|
|
12
|
+
* Statuses excluded from the merge-candidate pool by default.
|
|
13
|
+
*
|
|
14
|
+
* - 'accepted': the pair already connected — do NOT fold a new discovery into
|
|
15
|
+
* the historical opp. IND-237 surfaces the existing conversation separately.
|
|
16
|
+
* - 'negotiating': a negotiation is in-flight for this pair; rolling a new
|
|
17
|
+
* candidate into it would blur the outcome of the active turn. Wait for the
|
|
18
|
+
* negotiation to finalize (→ draft/pending/rejected/stalled) first, then
|
|
19
|
+
* enrichment can pick it up on the next pass.
|
|
20
|
+
* - 'expired': already superseded by a later enriched opportunity. Without this
|
|
21
|
+
* exclusion, each enrichment cycle re-merges previously-expired enriched
|
|
22
|
+
* opportunities, compounding their actor arrays into 100+ entries.
|
|
23
|
+
*
|
|
24
|
+
* Exported for callers that want to extend rather than replace the default.
|
|
25
|
+
*/
|
|
26
|
+
export const DEFAULT_ENRICHER_EXCLUDE_STATUSES = ['accepted', 'negotiating', 'expired'];
|
|
27
|
+
/**
|
|
28
|
+
* Cosine similarity between two vectors (0–1).
|
|
29
|
+
*/
|
|
30
|
+
function cosineSimilarity(a, b) {
|
|
31
|
+
if (a.length !== b.length || a.length === 0)
|
|
32
|
+
return 0;
|
|
33
|
+
let dot = 0;
|
|
34
|
+
let normA = 0;
|
|
35
|
+
let normB = 0;
|
|
36
|
+
for (let i = 0; i < a.length; i++) {
|
|
37
|
+
dot += a[i] * b[i];
|
|
38
|
+
normA += a[i] * a[i];
|
|
39
|
+
normB += b[i] * b[i];
|
|
40
|
+
}
|
|
41
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
42
|
+
if (denom === 0)
|
|
43
|
+
return 0;
|
|
44
|
+
const sim = dot / denom;
|
|
45
|
+
return Math.max(0, Math.min(1, sim));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolve enriched opportunity status from related opportunities' statuses and the incoming status.
|
|
49
|
+
* Priority: accepted > pending > rejected > stalled > draft (only when incoming is draft) > latent.
|
|
50
|
+
* The incoming status is included so we do not wrongly downgrade when the new opportunity has a higher-priority status.
|
|
51
|
+
* When incoming is 'draft' (e.g. from in-chat discovery), we preserve draft so the opportunity stays chat-only and
|
|
52
|
+
* does not appear on the home view (home excludes draft).
|
|
53
|
+
* When incoming is NOT draft (e.g. 'latent' from the background broker), existing draft status does NOT contaminate
|
|
54
|
+
* the result — the broker-created opportunity retains its own status and can appear on the home view.
|
|
55
|
+
*/
|
|
56
|
+
function resolveEnrichedStatus(relatedStatuses, incomingStatus) {
|
|
57
|
+
const statuses = incomingStatus ? [...relatedStatuses, incomingStatus] : relatedStatuses;
|
|
58
|
+
if (statuses.includes('accepted'))
|
|
59
|
+
return 'accepted';
|
|
60
|
+
if (statuses.includes('pending'))
|
|
61
|
+
return 'pending';
|
|
62
|
+
if (statuses.includes('rejected'))
|
|
63
|
+
return 'rejected';
|
|
64
|
+
if (statuses.includes('stalled'))
|
|
65
|
+
return 'stalled';
|
|
66
|
+
if (incomingStatus === 'draft')
|
|
67
|
+
return 'draft';
|
|
68
|
+
return 'latent';
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Extract non-introducer actor userIds from create data.
|
|
72
|
+
*/
|
|
73
|
+
function getNonIntroducerUserIds(data) {
|
|
74
|
+
const ids = data.actors
|
|
75
|
+
.filter((a) => a.role !== 'introducer')
|
|
76
|
+
.map((a) => a.userId);
|
|
77
|
+
return [...new Set(ids)];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Extract intent IDs from actors.
|
|
81
|
+
*/
|
|
82
|
+
function belongsToOwnedIntent(opportunity, scope) {
|
|
83
|
+
if (opportunity.detection.triggeredBy === scope.triggerIntentId)
|
|
84
|
+
return true;
|
|
85
|
+
return opportunity.actors.some((actor) => actor.userId === scope.ownerUserId && actor.intent === scope.triggerIntentId);
|
|
86
|
+
}
|
|
87
|
+
function getIntentIdsFromActors(actors) {
|
|
88
|
+
const ids = new Set();
|
|
89
|
+
for (const a of actors) {
|
|
90
|
+
if (a.intent)
|
|
91
|
+
ids.add(a.intent);
|
|
92
|
+
}
|
|
93
|
+
return ids;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if two opportunities share at least one intent ID.
|
|
97
|
+
*/
|
|
98
|
+
function shareIntentIds(newData, existing) {
|
|
99
|
+
const newIntents = getIntentIdsFromActors(newData.actors);
|
|
100
|
+
const existingIntents = getIntentIdsFromActors(existing.actors);
|
|
101
|
+
for (const id of newIntents) {
|
|
102
|
+
if (existingIntents.has(id))
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Merge actors from new data and existing opportunities: union by (networkId, userId, intent),
|
|
109
|
+
* preserving all unique introducers and preferring newer role on conflict.
|
|
110
|
+
*/
|
|
111
|
+
function mergeActors(newData, existingList) {
|
|
112
|
+
const key = (a) => `${a.networkId}:${a.userId}:${a.intent ?? ''}`;
|
|
113
|
+
const map = new Map();
|
|
114
|
+
// Add all from existing first (older)
|
|
115
|
+
for (const opp of existingList) {
|
|
116
|
+
for (const a of opp.actors) {
|
|
117
|
+
map.set(key(a), a);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Add/overwrite with new (newer wins for same key, e.g. role)
|
|
121
|
+
for (const a of newData.actors) {
|
|
122
|
+
map.set(key(a), a);
|
|
123
|
+
}
|
|
124
|
+
return [...map.values()];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Merge interpretation: single reasoning (new data only), max confidence, merged signals.
|
|
128
|
+
* We use only the new opportunity's reasoning to avoid repetitive concatenation when
|
|
129
|
+
* multiple overlapping opportunities share the same or similar text (e.g. same pair
|
|
130
|
+
* across indexes), which previously produced long duplicated paragraphs in chat cards.
|
|
131
|
+
*/
|
|
132
|
+
function mergeInterpretation(newData, existingList) {
|
|
133
|
+
const reasoning = newData.interpretation.reasoning;
|
|
134
|
+
let maxConf = typeof newData.interpretation.confidence === 'number'
|
|
135
|
+
? newData.interpretation.confidence
|
|
136
|
+
: parseFloat(String(newData.interpretation.confidence ?? 0));
|
|
137
|
+
for (const o of existingList) {
|
|
138
|
+
const c = o.interpretation?.confidence;
|
|
139
|
+
const cNum = typeof c === 'number' ? c : parseFloat(String(c ?? 0));
|
|
140
|
+
if (cNum > maxConf)
|
|
141
|
+
maxConf = cNum;
|
|
142
|
+
}
|
|
143
|
+
const confidence = maxConf;
|
|
144
|
+
const signals = [
|
|
145
|
+
...(newData.interpretation.signals ?? []),
|
|
146
|
+
...existingList.flatMap((o) => o.interpretation?.signals ?? []),
|
|
147
|
+
];
|
|
148
|
+
const seen = new Set();
|
|
149
|
+
const dedupedSignals = signals.filter((s) => {
|
|
150
|
+
const k = `${s.type}:${s.detail ?? ''}`;
|
|
151
|
+
if (seen.has(k))
|
|
152
|
+
return false;
|
|
153
|
+
seen.add(k);
|
|
154
|
+
return true;
|
|
155
|
+
});
|
|
156
|
+
return {
|
|
157
|
+
category: newData.interpretation.category,
|
|
158
|
+
reasoning,
|
|
159
|
+
confidence: typeof confidence === 'string' ? parseFloat(confidence) : confidence,
|
|
160
|
+
signals: dedupedSignals.length > 0 ? dedupedSignals : newData.interpretation.signals,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Enrich or create: find overlapping opportunities, filter by semantic relatedness
|
|
165
|
+
* using a two-phase approach, merge actors and interpretation into a single
|
|
166
|
+
* CreateOpportunityData, and return the data plus IDs to expire. If no related
|
|
167
|
+
* overlap, return original data unchanged.
|
|
168
|
+
*
|
|
169
|
+
* Phase 1 — Intent check (free, no API call):
|
|
170
|
+
* Shared intent IDs mean the same declared user goal drove both opportunities.
|
|
171
|
+
* This is rare because the IntentReconciler already deduplicates intents per-user
|
|
172
|
+
* upstream, but when it fires it is definitive.
|
|
173
|
+
*
|
|
174
|
+
* Phase 2 — Batched embedding similarity (one API call for all remaining):
|
|
175
|
+
* For opportunities without shared intents, embed all reasoning texts in a single
|
|
176
|
+
* batch call and compare cosine similarity. Cross-user intent comparison (e.g.
|
|
177
|
+
* Alice's "find ML co-founder" vs Bob's "join ML startup") is implicitly handled
|
|
178
|
+
* here since reasoning text synthesizes both users' intents.
|
|
179
|
+
*/
|
|
180
|
+
export async function enrichOrCreate(database, embedder, newData, options) {
|
|
181
|
+
const actorUserIds = getNonIntroducerUserIds(newData);
|
|
182
|
+
if (actorUserIds.length === 0) {
|
|
183
|
+
return { enriched: false, data: newData };
|
|
184
|
+
}
|
|
185
|
+
const excludeStatuses = options?.excludeStatuses ?? DEFAULT_ENRICHER_EXCLUDE_STATUSES;
|
|
186
|
+
const pairOverlaps = await database.findOpportunitiesByActors(actorUserIds, { excludeStatuses });
|
|
187
|
+
const ownedIntentScope = options?.ownedIntentScope;
|
|
188
|
+
const overlapping = ownedIntentScope
|
|
189
|
+
? pairOverlaps.filter((opportunity) => belongsToOwnedIntent(opportunity, ownedIntentScope))
|
|
190
|
+
: pairOverlaps;
|
|
191
|
+
if (ownedIntentScope && pairOverlaps.length > overlapping.length) {
|
|
192
|
+
logger.info('Excluded cross-trigger overlaps from owned-intent enrichment', {
|
|
193
|
+
triggerIntentId: ownedIntentScope.triggerIntentId,
|
|
194
|
+
pairOverlapCount: pairOverlaps.length,
|
|
195
|
+
sameTriggerOverlapCount: overlapping.length,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (overlapping.length === 0) {
|
|
199
|
+
return { enriched: false, data: newData };
|
|
200
|
+
}
|
|
201
|
+
const threshold = options?.similarityThreshold ?? DEFAULT_SIMILARITY_THRESHOLD;
|
|
202
|
+
// Phase 1: Intent-based relatedness (free, strongest signal)
|
|
203
|
+
const related = [];
|
|
204
|
+
const remaining = [];
|
|
205
|
+
for (const opp of overlapping) {
|
|
206
|
+
if (shareIntentIds(newData, opp)) {
|
|
207
|
+
related.push(opp);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
remaining.push(opp);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Phase 2: Batched embedding similarity (one API call for all remaining)
|
|
214
|
+
if (remaining.length > 0) {
|
|
215
|
+
const newReasoning = (newData.interpretation?.reasoning ?? '').trim();
|
|
216
|
+
// Only embed opps where both reasonings are long enough
|
|
217
|
+
const embeddable = [];
|
|
218
|
+
for (const opp of remaining) {
|
|
219
|
+
const existingReasoning = (opp.interpretation?.reasoning ?? '').trim();
|
|
220
|
+
if (newReasoning.length >= MIN_REASONING_LENGTH_FOR_EMBEDDING &&
|
|
221
|
+
existingReasoning.length >= MIN_REASONING_LENGTH_FOR_EMBEDDING) {
|
|
222
|
+
embeddable.push(opp);
|
|
223
|
+
}
|
|
224
|
+
// Short reasoning + no shared intents (Phase 1 missed) → not related
|
|
225
|
+
}
|
|
226
|
+
if (embeddable.length > 0) {
|
|
227
|
+
try {
|
|
228
|
+
const textsToEmbed = [
|
|
229
|
+
newReasoning,
|
|
230
|
+
...embeddable.map((o) => (o.interpretation?.reasoning ?? '').trim()),
|
|
231
|
+
];
|
|
232
|
+
const vectors = (await embedder.generate(textsToEmbed, undefined, getAbortSignalConfig()));
|
|
233
|
+
const newVec = vectors[0];
|
|
234
|
+
if (newVec?.length) {
|
|
235
|
+
for (let i = 0; i < embeddable.length; i++) {
|
|
236
|
+
const existingVec = vectors[i + 1];
|
|
237
|
+
if (existingVec?.length && cosineSimilarity(newVec, existingVec) >= threshold) {
|
|
238
|
+
related.push(embeddable[i]);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch (e) {
|
|
244
|
+
logger.warn('Embedding check failed; intent-matched opportunities already captured', { error: e });
|
|
245
|
+
// Phase 1 matches are preserved; remaining opps without shared intents are not related
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (related.length === 0) {
|
|
250
|
+
return { enriched: false, data: newData };
|
|
251
|
+
}
|
|
252
|
+
const mergedActors = mergeActors(newData, related);
|
|
253
|
+
const mergedInterpretation = mergeInterpretation(newData, related);
|
|
254
|
+
const enrichedFrom = related.map((o) => o.id);
|
|
255
|
+
const mergedConfidence = typeof mergedInterpretation.confidence === 'number'
|
|
256
|
+
? String(mergedInterpretation.confidence)
|
|
257
|
+
: mergedInterpretation.confidence;
|
|
258
|
+
const enrichedData = {
|
|
259
|
+
...newData,
|
|
260
|
+
detection: {
|
|
261
|
+
...newData.detection,
|
|
262
|
+
source: 'enrichment',
|
|
263
|
+
enrichedFrom,
|
|
264
|
+
},
|
|
265
|
+
actors: mergedActors,
|
|
266
|
+
interpretation: mergedInterpretation,
|
|
267
|
+
confidence: mergedConfidence,
|
|
268
|
+
};
|
|
269
|
+
const resolvedStatus = resolveEnrichedStatus(related.map((o) => o.status), newData.status);
|
|
270
|
+
logger.verbose('Enriched opportunity', {
|
|
271
|
+
enrichedFrom,
|
|
272
|
+
actorCount: mergedActors.length,
|
|
273
|
+
});
|
|
274
|
+
return {
|
|
275
|
+
enriched: true,
|
|
276
|
+
data: enrichedData,
|
|
277
|
+
expiredIds: enrichedFrom,
|
|
278
|
+
resolvedStatus,
|
|
279
|
+
};
|
|
280
|
+
}
|