@indexnetwork/protocol 22.0.0-rc.498.1 → 64.0.0-rc.604.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1841 -0
- package/IMPLEMENTATION.md +140 -181
- package/README.md +16 -20
- package/STABILITY.md +16 -11
- package/dist/{intents/intent.module.d.ts → capabilities/intents.d.ts} +182 -192
- package/dist/capabilities/intents.js +88 -0
- package/dist/capabilities/negotiations.d.ts +17 -0
- package/dist/capabilities/negotiations.js +16 -0
- package/dist/{networks/network.module.d.ts → capabilities/networks.d.ts} +33 -169
- package/dist/{networks/network.module.js → capabilities/networks.js} +6 -17
- package/dist/index.d.ts +57 -132
- package/dist/index.js +41 -100
- package/dist/internal/agents/agent.repository.port.d.ts +59 -0
- package/dist/internal/agents/agent.repository.port.js +7 -0
- package/dist/internal/agents/agent.types.d.ts +35 -0
- package/dist/{agents → internal/agents}/agent.types.js +1 -6
- package/dist/{intents → internal/intents}/graph/intent.graph.d.ts +142 -151
- package/dist/{intents → internal/intents}/graph/intent.graph.execute.d.ts +5 -1
- package/dist/{intents → internal/intents}/graph/intent.graph.execute.js +165 -46
- package/dist/internal/intents/graph/intent.graph.infer.d.ts +78 -0
- package/dist/internal/intents/graph/intent.graph.infer.js +122 -0
- package/dist/internal/intents/graph/intent.graph.js +108 -0
- package/dist/{intents → internal/intents}/graph/intent.graph.reconcile.d.ts +18 -9
- package/dist/internal/intents/graph/intent.graph.reconcile.js +173 -0
- package/dist/internal/intents/graph/intent.graph.shared.d.ts +55 -0
- package/dist/{intents → internal/intents}/graph/intent.graph.shared.js +25 -70
- package/dist/{intents → internal/intents}/graph/intent.graph.state.d.ts +96 -32
- package/dist/{intents → internal/intents}/graph/intent.graph.state.js +42 -31
- package/dist/internal/intents/intent.admission.d.ts +16 -0
- package/dist/internal/intents/intent.admission.js +30 -0
- package/dist/{intents → internal/intents}/intent.inferrer.d.ts +1 -40
- package/dist/{intents → internal/intents}/intent.inferrer.js +13 -49
- package/dist/internal/intents/intent.preparer.d.ts +52 -0
- package/dist/internal/intents/intent.preparer.js +87 -0
- package/dist/{intents → internal/intents}/intent.verifier.d.ts +3 -36
- package/dist/{intents → internal/intents}/intent.verifier.js +0 -17
- package/dist/{networks → internal/networks}/indexer.graph.d.ts +15 -200
- package/dist/{networks → internal/networks}/indexer.graph.js +19 -128
- package/dist/{networks → internal/networks}/indexer.state.d.ts +8 -63
- package/dist/internal/networks/indexer.state.js +70 -0
- package/dist/{networks → internal/networks}/membership.graph.d.ts +6 -6
- package/dist/{networks → internal/networks}/membership.graph.js +3 -3
- package/dist/{networks → internal/networks}/membership.state.d.ts +2 -2
- package/dist/{networks → internal/networks}/membership.state.js +2 -2
- package/dist/{networks → internal/networks}/network.graph.d.ts +9 -22
- package/dist/{networks → internal/networks}/network.graph.js +13 -27
- package/dist/{networks → internal/networks}/network.recommender.d.ts +2 -2
- package/dist/{networks → internal/networks}/network.recommender.js +2 -2
- package/dist/{networks → internal/networks}/network.state.d.ts +4 -7
- package/dist/{networks → internal/networks}/network.state.js +4 -4
- package/dist/internal/opportunities/negotiation-context.loader.d.ts +26 -0
- package/dist/internal/opportunities/negotiation-context.loader.js +36 -0
- package/dist/{opportunities → internal/opportunities}/opportunity.actor.d.ts +1 -1
- package/dist/{opportunities → internal/opportunities}/opportunity.actor.js +7 -1
- package/dist/internal/opportunities/opportunity.counterparties.d.ts +17 -0
- package/dist/internal/opportunities/opportunity.counterparties.js +19 -0
- package/dist/internal/opportunities/opportunity.events.d.ts +38 -0
- package/dist/internal/opportunities/opportunity.events.js +94 -0
- package/dist/{opportunities → internal/opportunities}/opportunity.feed-selection.d.ts +3 -9
- package/dist/internal/opportunities/opportunity.feed-selection.js +40 -0
- package/dist/internal/opportunities/opportunity.graph.modes.d.ts +39 -0
- package/dist/internal/opportunities/opportunity.graph.modes.js +138 -0
- package/dist/{opportunities → internal/opportunities}/opportunity.labels.d.ts +2 -3
- package/dist/internal/opportunities/opportunity.labels.js +9 -0
- package/dist/{opportunities → internal/opportunities}/opportunity.presentation.d.ts +17 -86
- package/dist/{opportunities → internal/opportunities}/opportunity.presentation.js +54 -447
- package/dist/{opportunities → internal/opportunities}/opportunity.update-admission.d.ts +2 -2
- package/dist/internal/opportunities/opportunity.utils.d.ts +105 -0
- package/dist/internal/opportunities/opportunity.utils.js +165 -0
- package/dist/{opportunities → internal/opportunities}/radar/radar.graph.d.ts +17 -17
- package/dist/{opportunities → internal/opportunities}/radar/radar.graph.js +41 -161
- package/dist/{opportunities → internal/opportunities}/radar/radar.state.d.ts +4 -11
- package/dist/{shared → internal/shared}/agent/model-signal.d.ts +1 -1
- package/dist/{shared → internal/shared}/agent/model-signal.js +1 -1
- package/dist/{shared → internal/shared}/agent/model.config.d.ts +28 -86
- package/dist/{shared → internal/shared}/agent/model.config.js +58 -69
- package/dist/internal/shared/agent/model.resolver.d.ts +33 -0
- package/dist/{shared → internal/shared}/agent/model.resolver.js +18 -33
- package/dist/internal/shared/agent/scope.d.ts +20 -0
- package/dist/internal/shared/agent/scope.js +24 -0
- package/dist/internal/shared/assignment/network-assignment.policy.d.ts +23 -0
- package/dist/internal/shared/assignment/network-assignment.policy.js +28 -0
- package/dist/{shared → internal/shared}/observability/log.d.ts +3 -6
- package/dist/{shared → internal/shared}/observability/log.js +9 -18
- package/dist/{shared → internal/shared}/observability/protocol.logger.d.ts +1 -1
- package/dist/{shared → internal/shared}/observability/protocol.logger.js +1 -1
- package/dist/internal/shared/observability/request-context.d.ts +29 -0
- package/dist/internal/shared/observability/request-context.js +17 -0
- package/dist/{shared → internal/shared}/utils/social-label.d.ts +2 -2
- package/dist/{shared → internal/shared}/utils/social-label.js +1 -1
- package/dist/platform/database/capabilities.d.ts +59 -0
- package/dist/{shared/interfaces/database.entities.d.ts → platform/database/entities.d.ts} +81 -121
- package/dist/{shared/interfaces/database.identity-queries.d.ts → platform/database/identity-queries.d.ts} +55 -20
- package/dist/platform/database/member-queries.d.ts +55 -0
- package/dist/platform/database/member-queries.js +4 -0
- package/dist/platform/database/negotiation.d.ts +38 -0
- package/dist/{shared/interfaces/database.network-queries.d.ts → platform/database/network-queries.d.ts} +66 -67
- package/dist/platform/database/network-queries.js +4 -0
- package/dist/{shared/interfaces/database.opportunity-queries.d.ts → platform/database/opportunity-queries.d.ts} +25 -109
- package/dist/{shared/interfaces/database.port.d.ts → platform/database/port.d.ts} +52 -117
- package/dist/{shared/interfaces/database.port.js → platform/database/port.js} +3 -5
- package/dist/platform/database.d.ts +23 -0
- package/dist/{shared/interfaces/database.interface.js → platform/database.js} +1 -1
- package/dist/{shared/interfaces/cache.interface.d.ts → platform/discovery/cache.d.ts} +2 -4
- package/dist/{shared/interfaces/cache.interface.js → platform/discovery/cache.js} +1 -1
- package/dist/platform/discovery/embedder.d.ts +31 -0
- package/dist/platform/runtime/errors.d.ts +6 -0
- package/dist/platform/runtime/errors.js +9 -0
- package/dist/platform/runtime/follow-up.d.ts +36 -0
- package/dist/platform/runtime/follow-up.js +4 -0
- package/dist/platform/runtime/observability.d.ts +34 -0
- package/dist/protocol/core.d.ts +11 -0
- package/dist/protocol/discovery.rules.d.ts +21 -0
- package/dist/protocol/discovery.rules.js +29 -0
- package/dist/protocol/negotiation.constants.d.ts +3 -0
- package/dist/protocol/negotiation.constants.js +3 -0
- package/dist/protocol/negotiation.rules.d.ts +73 -0
- package/dist/protocol/negotiation.rules.js +68 -0
- package/dist/protocol/protocol.prompt.d.ts +13 -0
- package/dist/protocol/protocol.prompt.js +190 -0
- package/dist/{shared → protocol}/schemas/discovery-question.schema.d.ts +13 -13
- package/dist/{shared → protocol}/schemas/discovery-question.schema.js +2 -2
- package/dist/{shared → protocol}/schemas/identity.schema.d.ts +4 -4
- package/dist/{shared → protocol}/schemas/identity.schema.js +4 -4
- package/dist/{shared → protocol}/schemas/network-assignment.schema.d.ts +11 -20
- package/dist/{shared → protocol}/schemas/network-assignment.schema.js +2 -9
- package/dist/protocol/schemas/underspecification.schema.d.ts +9 -0
- package/dist/protocol/schemas/underspecification.schema.js +12 -0
- package/package.json +7 -15
- package/dist/agents/agent.dispatcher.port.d.ts +0 -25
- package/dist/agents/agent.module.d.ts +0 -19
- package/dist/agents/agent.module.js +0 -11
- package/dist/agents/agent.repository.port.d.ts +0 -118
- package/dist/agents/agent.repository.port.js +0 -10
- package/dist/agents/agent.tools.d.ts +0 -16
- package/dist/agents/agent.tools.js +0 -351
- package/dist/agents/agent.tools.port.d.ts +0 -22
- package/dist/agents/agent.tools.port.js +0 -18
- package/dist/agents/agent.types.d.ts +0 -76
- package/dist/chat/chat-streaming.types.d.ts +0 -618
- package/dist/chat/chat-streaming.types.js +0 -297
- package/dist/chat/chat.agent.d.ts +0 -292
- package/dist/chat/chat.agent.js +0 -1010
- package/dist/chat/chat.graph.d.ts +0 -424
- package/dist/chat/chat.graph.js +0 -257
- package/dist/chat/chat.interrupt.classifier.d.ts +0 -25
- package/dist/chat/chat.interrupt.classifier.js +0 -64
- package/dist/chat/chat.persona.d.ts +0 -39
- package/dist/chat/chat.prompt.d.ts +0 -4
- package/dist/chat/chat.prompt.js +0 -12
- package/dist/chat/chat.prompt.modules.d.ts +0 -30
- package/dist/chat/chat.prompt.modules.js +0 -40
- package/dist/chat/chat.question-dedup.d.ts +0 -14
- package/dist/chat/chat.question-dedup.js +0 -17
- package/dist/chat/chat.state.d.ts +0 -135
- package/dist/chat/chat.state.js +0 -120
- package/dist/chat/chat.streamer.d.ts +0 -64
- package/dist/chat/chat.streamer.js +0 -217
- package/dist/chat/chat.suggester.d.ts +0 -23
- package/dist/chat/chat.suggester.js +0 -95
- package/dist/chat/chat.summarizer.d.ts +0 -20
- package/dist/chat/chat.summarizer.js +0 -97
- package/dist/chat/chat.title.generator.d.ts +0 -19
- package/dist/chat/chat.title.generator.js +0 -66
- package/dist/chat/chat.tools.d.ts +0 -5
- package/dist/chat/chat.tools.js +0 -62
- package/dist/chat/chat.utils.d.ts +0 -41
- package/dist/chat/chat.utils.js +0 -88
- package/dist/chat/negotiator.persona.d.ts +0 -74
- package/dist/chat/negotiator.persona.js +0 -154
- package/dist/chat/negotiator.prompt.d.ts +0 -45
- package/dist/chat/negotiator.prompt.js +0 -160
- package/dist/chat/negotiator.tools.d.ts +0 -42
- package/dist/chat/negotiator.tools.js +0 -134
- package/dist/chat/onboarding.persona.d.ts +0 -28
- package/dist/chat/onboarding.persona.js +0 -86
- package/dist/chat/onboarding.prompt.d.ts +0 -6
- package/dist/chat/onboarding.prompt.js +0 -63
- package/dist/chat/signal.persona.d.ts +0 -47
- package/dist/chat/signal.persona.js +0 -319
- package/dist/chat/signal.prompt.d.ts +0 -39
- package/dist/chat/signal.prompt.js +0 -136
- package/dist/contacts/contact.module.d.ts +0 -8
- package/dist/contacts/contact.module.js +0 -6
- package/dist/contacts/contact.repository.port.d.ts +0 -21
- package/dist/contacts/contact.repository.port.js +0 -12
- package/dist/contacts/contact.tools.d.ts +0 -17
- package/dist/contacts/contact.tools.js +0 -108
- package/dist/contacts/contact.tools.port.d.ts +0 -20
- package/dist/contacts/contact.tools.port.js +0 -16
- package/dist/contacts/contact.types.d.ts +0 -24
- package/dist/contacts/contact.types.js +0 -8
- package/dist/contexts/context.generator.d.ts +0 -95
- package/dist/contexts/context.generator.js +0 -127
- package/dist/contexts/context.module.d.ts +0 -13
- package/dist/contexts/context.module.js +0 -12
- package/dist/contexts/context.tools.port.d.ts +0 -9
- package/dist/discovery/hyde.documents.d.ts +0 -9
- package/dist/discovery/hyde.documents.js +0 -49
- package/dist/discovery/hyde.env.d.ts +0 -8
- package/dist/discovery/hyde.env.js +0 -9
- package/dist/discovery/hyde.frame.d.ts +0 -150
- package/dist/discovery/hyde.frame.js +0 -107
- package/dist/discovery/hyde.generator.d.ts +0 -38
- package/dist/discovery/hyde.generator.js +0 -103
- package/dist/discovery/hyde.graph.d.ts +0 -209
- package/dist/discovery/hyde.graph.js +0 -482
- package/dist/discovery/hyde.state.d.ts +0 -70
- package/dist/discovery/hyde.state.js +0 -85
- package/dist/discovery/hyde.strategies.d.ts +0 -17
- package/dist/discovery/hyde.strategies.js +0 -34
- package/dist/discovery/hyde.validator.d.ts +0 -78
- package/dist/discovery/hyde.validator.js +0 -48
- package/dist/discovery/index.d.ts +0 -26
- package/dist/discovery/index.js +0 -19
- package/dist/discovery/lens.inferrer.d.ts +0 -214
- package/dist/discovery/lens.inferrer.js +0 -152
- package/dist/enrichment/enrichment.generator.d.ts +0 -68
- package/dist/enrichment/enrichment.generator.js +0 -95
- package/dist/enrichment/enrichment.graph.d.ts +0 -544
- package/dist/enrichment/enrichment.graph.js +0 -695
- package/dist/enrichment/enrichment.state.d.ts +0 -141
- package/dist/enrichment/enrichment.state.js +0 -115
- package/dist/enrichment/enrichment.tools.context-read.d.ts +0 -10
- package/dist/enrichment/enrichment.tools.context-read.js +0 -353
- package/dist/enrichment/enrichment.tools.context-write.d.ts +0 -9
- package/dist/enrichment/enrichment.tools.context-write.js +0 -417
- package/dist/enrichment/enrichment.tools.d.ts +0 -13
- package/dist/enrichment/enrichment.tools.helpers.d.ts +0 -139
- package/dist/enrichment/enrichment.tools.helpers.js +0 -234
- package/dist/enrichment/enrichment.tools.js +0 -153
- package/dist/intents/graph/intent.graph.infer.d.ts +0 -44
- package/dist/intents/graph/intent.graph.infer.js +0 -97
- package/dist/intents/graph/intent.graph.js +0 -134
- package/dist/intents/graph/intent.graph.reconcile.js +0 -274
- package/dist/intents/graph/intent.graph.shared.d.ts +0 -68
- package/dist/intents/intake/intake.orchestrator.d.ts +0 -203
- package/dist/intents/intake/intake.orchestrator.js +0 -255
- package/dist/intents/intake/intake.pack.generator.d.ts +0 -57
- package/dist/intents/intake/intake.pack.generator.js +0 -90
- package/dist/intents/intent.clarifier.d.ts +0 -51
- package/dist/intents/intent.clarifier.js +0 -201
- package/dist/intents/intent.indexer.d.ts +0 -82
- package/dist/intents/intent.indexer.js +0 -170
- package/dist/intents/intent.module.js +0 -103
- package/dist/intents/intent.proposal.d.ts +0 -37
- package/dist/intents/intent.proposal.js +0 -14
- package/dist/intents/intent.reconciler.d.ts +0 -105
- package/dist/intents/intent.reconciler.js +0 -186
- package/dist/intents/intent.tools.d.ts +0 -27
- package/dist/intents/intent.tools.js +0 -808
- package/dist/maintenance/maintenance.graph.d.ts +0 -239
- package/dist/maintenance/maintenance.graph.js +0 -199
- package/dist/maintenance/maintenance.state.d.ts +0 -35
- package/dist/maintenance/maintenance.state.js +0 -55
- package/dist/mcp/elicitation.builder.d.ts +0 -53
- package/dist/mcp/elicitation.builder.js +0 -74
- package/dist/mcp/elicitation.dispatcher.d.ts +0 -36
- package/dist/mcp/elicitation.dispatcher.js +0 -86
- package/dist/mcp/mcp.authorization-policy.d.ts +0 -252
- package/dist/mcp/mcp.authorization-policy.js +0 -535
- package/dist/mcp/mcp.server.d.ts +0 -90
- package/dist/mcp/mcp.server.js +0 -631
- package/dist/negotiations/insight.generator.d.ts +0 -31
- package/dist/negotiations/insight.generator.js +0 -105
- package/dist/negotiations/negotiation.agent.d.ts +0 -130
- package/dist/negotiations/negotiation.agent.js +0 -396
- package/dist/negotiations/negotiation.answer-consumption.d.ts +0 -223
- package/dist/negotiations/negotiation.answer-consumption.js +0 -275
- package/dist/negotiations/negotiation.attribution.d.ts +0 -91
- package/dist/negotiations/negotiation.attribution.js +0 -109
- package/dist/negotiations/negotiation.candidates.d.ts +0 -83
- package/dist/negotiations/negotiation.candidates.js +0 -162
- package/dist/negotiations/negotiation.client-dm.d.ts +0 -50
- package/dist/negotiations/negotiation.client-dm.js +0 -66
- package/dist/negotiations/negotiation.consultation-policy.d.ts +0 -95
- package/dist/negotiations/negotiation.consultation-policy.js +0 -159
- package/dist/negotiations/negotiation.deadlock.contracts.d.ts +0 -10
- package/dist/negotiations/negotiation.deadlock.d.ts +0 -87
- package/dist/negotiations/negotiation.deadlock.js +0 -150
- package/dist/negotiations/negotiation.detail-reader.d.ts +0 -94
- package/dist/negotiations/negotiation.detail-reader.js +0 -91
- package/dist/negotiations/negotiation.expected-speaker.d.ts +0 -33
- package/dist/negotiations/negotiation.expected-speaker.js +0 -59
- package/dist/negotiations/negotiation.graph.d.ts +0 -694
- package/dist/negotiations/negotiation.graph.finalize.d.ts +0 -5
- package/dist/negotiations/negotiation.graph.finalize.js +0 -403
- package/dist/negotiations/negotiation.graph.init.d.ts +0 -54
- package/dist/negotiations/negotiation.graph.init.js +0 -256
- package/dist/negotiations/negotiation.graph.js +0 -94
- package/dist/negotiations/negotiation.graph.screen.d.ts +0 -23
- package/dist/negotiations/negotiation.graph.screen.js +0 -108
- package/dist/negotiations/negotiation.graph.shared.d.ts +0 -111
- package/dist/negotiations/negotiation.graph.shared.js +0 -168
- package/dist/negotiations/negotiation.graph.turn.d.ts +0 -134
- package/dist/negotiations/negotiation.graph.turn.js +0 -662
- package/dist/negotiations/negotiation.hermes-contract.d.ts +0 -31
- package/dist/negotiations/negotiation.hermes-contract.js +0 -72
- package/dist/negotiations/negotiation.intent-snapshot-provenance.d.ts +0 -21
- package/dist/negotiations/negotiation.intent-snapshot-provenance.js +0 -28
- package/dist/negotiations/negotiation.lifecycle-narration.d.ts +0 -18
- package/dist/negotiations/negotiation.lifecycle-narration.js +0 -87
- package/dist/negotiations/negotiation.memory.d.ts +0 -65
- package/dist/negotiations/negotiation.memory.js +0 -83
- package/dist/negotiations/negotiation.module.d.ts +0 -36
- package/dist/negotiations/negotiation.module.js +0 -23
- package/dist/negotiations/negotiation.protocol.d.ts +0 -1018
- package/dist/negotiations/negotiation.protocol.js +0 -224
- package/dist/negotiations/negotiation.question-safety.d.ts +0 -52
- package/dist/negotiations/negotiation.question-safety.js +0 -119
- package/dist/negotiations/negotiation.reflect.d.ts +0 -194
- package/dist/negotiations/negotiation.reflect.js +0 -145
- package/dist/negotiations/negotiation.scope.d.ts +0 -41
- package/dist/negotiations/negotiation.scope.js +0 -39
- package/dist/negotiations/negotiation.screen.contracts.d.ts +0 -88
- package/dist/negotiations/negotiation.screen.contracts.js +0 -58
- package/dist/negotiations/negotiation.screen.d.ts +0 -78
- package/dist/negotiations/negotiation.screen.js +0 -112
- package/dist/negotiations/negotiation.stall-gap.d.ts +0 -83
- package/dist/negotiations/negotiation.stall-gap.js +0 -152
- package/dist/negotiations/negotiation.stance.contracts.d.ts +0 -123
- package/dist/negotiations/negotiation.stance.contracts.js +0 -317
- package/dist/negotiations/negotiation.state.d.ts +0 -597
- package/dist/negotiations/negotiation.state.js +0 -286
- package/dist/negotiations/negotiation.summarizer.d.ts +0 -25
- package/dist/negotiations/negotiation.summarizer.js +0 -101
- package/dist/negotiations/negotiation.task-lock-policy.d.ts +0 -10
- package/dist/negotiations/negotiation.task-lock-policy.js +0 -22
- package/dist/negotiations/negotiation.tools.d.ts +0 -18
- package/dist/negotiations/negotiation.tools.js +0 -842
- package/dist/negotiations/negotiation.tools.port.d.ts +0 -17
- package/dist/negotiations/negotiation.turn-cap.d.ts +0 -9
- package/dist/negotiations/negotiation.turn-cap.js +0 -12
- package/dist/networks/indexer.state.js +0 -112
- package/dist/networks/network.tools.d.ts +0 -36
- package/dist/networks/network.tools.js +0 -594
- package/dist/opportunities/delivery-card.cache.d.ts +0 -25
- package/dist/opportunities/delivery-card.cache.js +0 -43
- package/dist/opportunities/discovery.env.d.ts +0 -20
- package/dist/opportunities/discovery.env.js +0 -109
- package/dist/opportunities/discriminator/discriminator.adjustments.d.ts +0 -90
- package/dist/opportunities/discriminator/discriminator.adjustments.js +0 -141
- package/dist/opportunities/discriminator/discriminator.assigner.d.ts +0 -78
- package/dist/opportunities/discriminator/discriminator.assigner.js +0 -153
- package/dist/opportunities/discriminator/discriminator.env.d.ts +0 -103
- package/dist/opportunities/discriminator/discriminator.env.js +0 -103
- package/dist/opportunities/discriminator/discriminator.miner.d.ts +0 -114
- package/dist/opportunities/discriminator/discriminator.miner.js +0 -228
- package/dist/opportunities/discriminator/discriminator.push.d.ts +0 -13
- package/dist/opportunities/discriminator/discriminator.push.js +0 -19
- package/dist/opportunities/discriminator/discriminator.question.d.ts +0 -58
- package/dist/opportunities/discriminator/discriminator.question.js +0 -155
- package/dist/opportunities/discriminator/discriminator.scorer.d.ts +0 -32
- package/dist/opportunities/discriminator/discriminator.scorer.js +0 -105
- package/dist/opportunities/discriminator/discriminator.shadow.d.ts +0 -32
- package/dist/opportunities/discriminator/discriminator.shadow.js +0 -90
- package/dist/opportunities/discriminator/discriminator.types.d.ts +0 -93
- package/dist/opportunities/discriminator/discriminator.types.js +0 -18
- package/dist/opportunities/negotiation-context.loader.d.ts +0 -59
- package/dist/opportunities/negotiation-context.loader.js +0 -90
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.env.d.ts +0 -43
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.env.js +0 -44
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.extractor.d.ts +0 -24
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.extractor.js +0 -188
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.miner.d.ts +0 -26
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.miner.js +0 -112
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.shadow.d.ts +0 -19
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.shadow.js +0 -61
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.types.d.ts +0 -191
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.types.js +0 -18
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.verifier.d.ts +0 -34
- package/dist/opportunities/negotiation-evidence/negotiation-evidence.verifier.js +0 -91
- package/dist/opportunities/negotiation-summary.builder.d.ts +0 -37
- package/dist/opportunities/negotiation-summary.builder.js +0 -66
- package/dist/opportunities/opportunity.discovery-negotiation-summary.d.ts +0 -14
- package/dist/opportunities/opportunity.discovery-negotiation-summary.js +0 -46
- package/dist/opportunities/opportunity.enricher.d.ts +0 -71
- package/dist/opportunities/opportunity.enricher.js +0 -280
- package/dist/opportunities/opportunity.evaluator.d.ts +0 -289
- package/dist/opportunities/opportunity.evaluator.js +0 -516
- package/dist/opportunities/opportunity.evidence.d.ts +0 -22
- package/dist/opportunities/opportunity.evidence.js +0 -87
- package/dist/opportunities/opportunity.existing-negotiation.d.ts +0 -79
- package/dist/opportunities/opportunity.existing-negotiation.js +0 -118
- package/dist/opportunities/opportunity.feed-selection.js +0 -96
- package/dist/opportunities/opportunity.graph.d.ts +0 -1611
- package/dist/opportunities/opportunity.graph.discovery-strategies.d.ts +0 -109
- package/dist/opportunities/opportunity.graph.discovery-strategies.js +0 -451
- package/dist/opportunities/opportunity.graph.discovery.d.ts +0 -69
- package/dist/opportunities/opportunity.graph.discovery.js +0 -397
- package/dist/opportunities/opportunity.graph.evaluation.d.ts +0 -82
- package/dist/opportunities/opportunity.graph.evaluation.js +0 -608
- package/dist/opportunities/opportunity.graph.js +0 -193
- package/dist/opportunities/opportunity.graph.modes.d.ts +0 -538
- package/dist/opportunities/opportunity.graph.modes.js +0 -538
- package/dist/opportunities/opportunity.graph.negotiate.d.ts +0 -109
- package/dist/opportunities/opportunity.graph.negotiate.js +0 -392
- package/dist/opportunities/opportunity.graph.persist-node.d.ts +0 -93
- package/dist/opportunities/opportunity.graph.persist-node.js +0 -765
- package/dist/opportunities/opportunity.graph.prep.d.ts +0 -150
- package/dist/opportunities/opportunity.graph.prep.js +0 -381
- package/dist/opportunities/opportunity.graph.shared.d.ts +0 -173
- package/dist/opportunities/opportunity.graph.shared.js +0 -199
- package/dist/opportunities/opportunity.introducer-feature.d.ts +0 -2
- package/dist/opportunities/opportunity.introducer-feature.js +0 -4
- package/dist/opportunities/opportunity.introducer.d.ts +0 -77
- package/dist/opportunities/opportunity.introducer.js +0 -99
- package/dist/opportunities/opportunity.labels.js +0 -10
- package/dist/opportunities/opportunity.lifecycle.d.ts +0 -63
- package/dist/opportunities/opportunity.lifecycle.js +0 -181
- package/dist/opportunities/opportunity.module.d.ts +0 -54
- package/dist/opportunities/opportunity.module.js +0 -39
- package/dist/opportunities/opportunity.newborn-stamping.d.ts +0 -41
- package/dist/opportunities/opportunity.newborn-stamping.js +0 -81
- package/dist/opportunities/opportunity.owner-approval.d.ts +0 -118
- package/dist/opportunities/opportunity.owner-approval.js +0 -34
- package/dist/opportunities/opportunity.owner-provenance.d.ts +0 -6
- package/dist/opportunities/opportunity.owner-provenance.js +0 -28
- package/dist/opportunities/opportunity.persist.d.ts +0 -58
- package/dist/opportunities/opportunity.persist.js +0 -145
- package/dist/opportunities/opportunity.persistence-admission.d.ts +0 -39
- package/dist/opportunities/opportunity.persistence-admission.js +0 -59
- package/dist/opportunities/opportunity.state.d.ts +0 -451
- package/dist/opportunities/opportunity.state.js +0 -256
- package/dist/opportunities/opportunity.tools.cards.d.ts +0 -138
- package/dist/opportunities/opportunity.tools.cards.js +0 -212
- package/dist/opportunities/opportunity.tools.d.ts +0 -12
- package/dist/opportunities/opportunity.tools.js +0 -236
- package/dist/opportunities/opportunity.tools.list.d.ts +0 -10
- package/dist/opportunities/opportunity.tools.list.js +0 -489
- package/dist/opportunities/opportunity.tools.port.d.ts +0 -16
- package/dist/opportunities/opportunity.utils.d.ts +0 -217
- package/dist/opportunities/opportunity.utils.js +0 -395
- package/dist/opportunities/outcome/outcome.env.d.ts +0 -60
- package/dist/opportunities/outcome/outcome.env.js +0 -63
- package/dist/opportunities/outcome/outcome.hypotheses.d.ts +0 -29
- package/dist/opportunities/outcome/outcome.hypotheses.js +0 -117
- package/dist/opportunities/outcome/outcome.shadow.d.ts +0 -56
- package/dist/opportunities/outcome/outcome.shadow.js +0 -87
- package/dist/opportunities/outcome/outcome.types.d.ts +0 -110
- package/dist/opportunities/outcome/outcome.types.js +0 -26
- package/dist/opportunities/radar/radar.health.d.ts +0 -31
- package/dist/opportunities/radar/radar.health.js +0 -75
- package/dist/premises/premise.analyzer.d.ts +0 -35
- package/dist/premises/premise.analyzer.js +0 -115
- package/dist/premises/premise.decomposer.d.ts +0 -69
- package/dist/premises/premise.decomposer.js +0 -213
- package/dist/premises/premise.graph.d.ts +0 -345
- package/dist/premises/premise.graph.js +0 -278
- package/dist/premises/premise.indexer.d.ts +0 -35
- package/dist/premises/premise.indexer.js +0 -86
- package/dist/premises/premise.state.d.ts +0 -67
- package/dist/premises/premise.state.js +0 -94
- package/dist/premises/premise.tools.d.ts +0 -3
- package/dist/premises/premise.tools.js +0 -248
- package/dist/questions/question.env.d.ts +0 -27
- package/dist/questions/question.env.js +0 -27
- package/dist/questions/question.input.d.ts +0 -107
- package/dist/questions/question.module.d.ts +0 -30
- package/dist/questions/question.module.js +0 -28
- package/dist/questions/question.schema.d.ts +0 -1529
- package/dist/questions/question.schema.js +0 -420
- package/dist/shared/agent/activity-projection.d.ts +0 -271
- package/dist/shared/agent/activity-projection.js +0 -254
- package/dist/shared/agent/canonical-guidance.d.ts +0 -30
- package/dist/shared/agent/canonical-guidance.js +0 -246
- package/dist/shared/agent/model.resolver.d.ts +0 -48
- package/dist/shared/agent/tool.factory.d.ts +0 -17
- package/dist/shared/agent/tool.factory.js +0 -221
- package/dist/shared/agent/tool.helpers.d.ts +0 -482
- package/dist/shared/agent/tool.helpers.js +0 -232
- package/dist/shared/agent/tool.registry.d.ts +0 -25
- package/dist/shared/agent/tool.registry.js +0 -76
- package/dist/shared/agent/tool.runtime.d.ts +0 -28
- package/dist/shared/agent/tool.runtime.js +0 -194
- package/dist/shared/agent/tool.scope.d.ts +0 -44
- package/dist/shared/agent/tool.scope.js +0 -50
- package/dist/shared/agent/utility.tools.d.ts +0 -15
- package/dist/shared/agent/utility.tools.js +0 -322
- package/dist/shared/assignment/network-assignment.policy.d.ts +0 -61
- package/dist/shared/assignment/network-assignment.policy.js +0 -105
- package/dist/shared/interfaces/agent-dispatcher.interface.d.ts +0 -100
- package/dist/shared/interfaces/agent-dispatcher.interface.js +0 -12
- package/dist/shared/interfaces/auth.interface.d.ts +0 -37
- package/dist/shared/interfaces/auth.interface.js +0 -1
- package/dist/shared/interfaces/chat-message-writer.interface.d.ts +0 -18
- package/dist/shared/interfaces/chat-message-writer.interface.js +0 -1
- package/dist/shared/interfaces/chat-session.interface.d.ts +0 -23
- package/dist/shared/interfaces/chat-session.interface.js +0 -18
- package/dist/shared/interfaces/chat-summary.interface.d.ts +0 -16
- package/dist/shared/interfaces/chat-summary.interface.js +0 -1
- package/dist/shared/interfaces/database.capabilities.d.ts +0 -100
- package/dist/shared/interfaces/database.interface.d.ts +0 -16
- package/dist/shared/interfaces/database.member-queries.d.ts +0 -219
- package/dist/shared/interfaces/database.member-queries.js +0 -4
- package/dist/shared/interfaces/database.negotiation.d.ts +0 -329
- package/dist/shared/interfaces/database.negotiation.js +0 -26
- package/dist/shared/interfaces/database.network-queries.js +0 -4
- package/dist/shared/interfaces/database.opportunity-queries.js +0 -4
- package/dist/shared/interfaces/delivery-ledger.interface.d.ts +0 -40
- package/dist/shared/interfaces/delivery-ledger.interface.js +0 -5
- package/dist/shared/interfaces/embedder.interface.d.ts +0 -92
- package/dist/shared/interfaces/embedder.interface.js +0 -4
- package/dist/shared/interfaces/enrichment-run.interface.d.ts +0 -62
- package/dist/shared/interfaces/enrichment-run.interface.js +0 -1
- package/dist/shared/interfaces/enrichment.interface.js +0 -1
- package/dist/shared/interfaces/negotiation-events.interface.d.ts +0 -77
- package/dist/shared/interfaces/negotiation-events.interface.js +0 -6
- package/dist/shared/interfaces/negotiation-summary.interface.d.ts +0 -25
- package/dist/shared/interfaces/negotiation-summary.interface.js +0 -1
- package/dist/shared/interfaces/negotiator-memory.interface.d.ts +0 -58
- package/dist/shared/interfaces/negotiator-memory.interface.js +0 -11
- package/dist/shared/interfaces/queue.interface.d.ts +0 -23
- package/dist/shared/interfaces/queue.interface.js +0 -4
- package/dist/shared/interfaces/scraper.interface.js +0 -1
- package/dist/shared/interfaces/tool-request-context.interface.d.ts +0 -11
- package/dist/shared/interfaces/tool-request-context.interface.js +0 -1
- package/dist/shared/observability/request-context.d.ts +0 -27
- package/dist/shared/observability/request-context.js +0 -6
- package/dist/shared/schemas/mcp-auth.schema.d.ts +0 -87
- package/dist/shared/schemas/mcp-auth.schema.js +0 -56
- package/dist/shared/schemas/negotiation-digest.schema.d.ts +0 -58
- package/dist/shared/schemas/negotiation-digest.schema.js +0 -38
- package/dist/shared/schemas/negotiation-state.schema.d.ts +0 -343
- package/dist/shared/schemas/negotiation-state.schema.js +0 -81
- package/dist/shared/schemas/question-block.fixture.d.ts +0 -12
- package/dist/shared/schemas/question-block.fixture.js +0 -39
- package/dist/shared/schemas/question-block.schema.d.ts +0 -111
- package/dist/shared/schemas/question-block.schema.js +0 -124
- package/dist/shared/schemas/structured-question.schema.d.ts +0 -66
- package/dist/shared/schemas/structured-question.schema.js +0 -31
- package/dist/shared/schemas/underspecification.schema.d.ts +0 -13
- package/dist/shared/schemas/underspecification.schema.js +0 -16
- /package/dist/{opportunities → internal/opportunities}/opportunity.update-admission.js +0 -0
- /package/dist/{opportunities → internal/opportunities}/radar/radar.state.js +0 -0
- /package/dist/{shared → internal/shared}/network/metadata.renderer.d.ts +0 -0
- /package/dist/{shared → internal/shared}/network/metadata.renderer.js +0 -0
- /package/dist/{shared → internal/shared}/observability/debug-meta.sanitizer.d.ts +0 -0
- /package/dist/{shared → internal/shared}/observability/debug-meta.sanitizer.js +0 -0
- /package/dist/{shared → internal/shared}/observability/performance.d.ts +0 -0
- /package/dist/{shared → internal/shared}/observability/performance.js +0 -0
- /package/dist/{shared → internal/shared}/observability/trace.d.ts +0 -0
- /package/dist/{shared → internal/shared}/observability/trace.js +0 -0
- /package/dist/{shared → internal/shared}/utils/claim-safety.d.ts +0 -0
- /package/dist/{shared → internal/shared}/utils/claim-safety.js +0 -0
- /package/dist/{shared → internal/shared}/utils/telegram-handle.d.ts +0 -0
- /package/dist/{shared → internal/shared}/utils/telegram-handle.js +0 -0
- /package/dist/{shared/interfaces/database.capabilities.js → platform/database/capabilities.js} +0 -0
- /package/dist/{shared/interfaces/database.entities.js → platform/database/entities.js} +0 -0
- /package/dist/{shared/interfaces/database.identity-queries.js → platform/database/identity-queries.js} +0 -0
- /package/dist/{agents/agent.dispatcher.port.js → platform/database/negotiation.js} +0 -0
- /package/dist/{chat/chat.persona.js → platform/database/opportunity-queries.js} +0 -0
- /package/dist/{contexts/context.tools.port.js → platform/discovery/embedder.js} +0 -0
- /package/dist/{shared/interfaces/scraper.interface.d.ts → platform/discovery/scraper.d.ts} +0 -0
- /package/dist/{negotiations/negotiation.deadlock.contracts.js → platform/discovery/scraper.js} +0 -0
- /package/dist/{shared/interfaces/enrichment.interface.d.ts → platform/enrichment/ports.d.ts} +0 -0
- /package/dist/{negotiations/negotiation.tools.port.js → platform/enrichment/ports.js} +0 -0
- /package/dist/{opportunities/opportunity.tools.port.js → platform/runtime/observability.js} +0 -0
- /package/dist/{questions/question.input.js → protocol/core.js} +0 -0
- /package/dist/{shared → protocol}/schemas/chat-context.schema.d.ts +0 -0
- /package/dist/{shared → protocol}/schemas/chat-context.schema.js +0 -0
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lens C negotiation-evidence — shared types (IND-433).
|
|
3
|
-
*
|
|
4
|
-
* Lens C mines neutral clarification hypotheses from RECURRING negotiation
|
|
5
|
-
* evidence, read in place at mining time. It never builds a durable transcript
|
|
6
|
-
* projection and never summarizes an entire pair DM; the only content it will
|
|
7
|
-
* ever touch is a narrow, positively-constructed allowlist:
|
|
8
|
-
*
|
|
9
|
-
* - authoritative owner answers (the recipient's own answers),
|
|
10
|
-
* - structured bilateral actions / coarse outcomes, and
|
|
11
|
-
* - explicitly shared message content.
|
|
12
|
-
*
|
|
13
|
-
* Everything else — screen/evaluator reasoning, agent chain-of-thought,
|
|
14
|
-
* `memoryHints`, private negotiator memories/reflections, disclosure subjects,
|
|
15
|
-
* untagged shared answers, and old synthesized digests — is excluded by
|
|
16
|
-
* construction (never mapped into an {@link AllowlistedEvidence}).
|
|
17
|
-
*/
|
|
18
|
-
/** The four allowlisted evidence families. Nothing else may be surfaced. */
|
|
19
|
-
export type EvidenceKind = "owner_answer" | "bilateral_action" | "coarse_outcome" | "shared_message";
|
|
20
|
-
/**
|
|
21
|
-
* Who authored an evidence unit. `system` covers structured bilateral facts
|
|
22
|
-
* (actions/outcomes) that belong to neither party's voice. The distinction is
|
|
23
|
-
* load-bearing: a counterparty statement may support an OBSERVATION but never
|
|
24
|
-
* a fact or preference ABOUT the recipient (IND-433).
|
|
25
|
-
*/
|
|
26
|
-
export type EvidenceSpeaker = "owner" | "counterparty" | "system";
|
|
27
|
-
/**
|
|
28
|
-
* One unit of allowlisted evidence, extracted in place for exactly one
|
|
29
|
-
* (recipient, intent, opportunity, task) tuple. Provenance travels with the
|
|
30
|
-
* unit so cross-recipient / cross-intent / cross-opportunity / cross-network /
|
|
31
|
-
* cross-task / cross-speaker contamination is a pure-function rejection rather
|
|
32
|
-
* than a downstream concern.
|
|
33
|
-
*/
|
|
34
|
-
export interface AllowlistedEvidence {
|
|
35
|
-
/** Deterministic id, unique within one mining pass: `${kind}:${opportunityId}:${ordinal}`. */
|
|
36
|
-
evidenceId: string;
|
|
37
|
-
kind: EvidenceKind;
|
|
38
|
-
speaker: EvidenceSpeaker;
|
|
39
|
-
/** The only text a support reference may quote — bounded, exclusion-scrubbed. */
|
|
40
|
-
content: string;
|
|
41
|
-
recipientUserId: string;
|
|
42
|
-
intentId: string;
|
|
43
|
-
intentFingerprint: string;
|
|
44
|
-
opportunityId: string;
|
|
45
|
-
taskId: string;
|
|
46
|
-
conversationId: string;
|
|
47
|
-
networkId: string;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* One raw negotiation turn as read in place. Untrusted: it still carries the
|
|
51
|
-
* fields Lens C must EXCLUDE (`reasoning`, `askUser`/disclosure). The extractor
|
|
52
|
-
* maps only the allowlisted projection of this record.
|
|
53
|
-
*/
|
|
54
|
-
export interface RawEvidenceTurn {
|
|
55
|
-
/** Turn author user id — mapped to owner/counterparty against the segment. */
|
|
56
|
-
senderUserId: string;
|
|
57
|
-
/** Structured bilateral action (propose/accept/counter/decline/...). */
|
|
58
|
-
action: string;
|
|
59
|
-
/** Free-text message body, if any. */
|
|
60
|
-
message?: string | null;
|
|
61
|
-
/**
|
|
62
|
-
* True only when this message was EXPLICITLY shared/consented for reuse.
|
|
63
|
-
* Untagged messages are excluded — Lens C never mines an untagged answer.
|
|
64
|
-
*/
|
|
65
|
-
sharedTagged?: boolean;
|
|
66
|
-
/** Chain-of-thought — EXCLUDED. Present here only to prove it is dropped. */
|
|
67
|
-
reasoning?: string | null;
|
|
68
|
-
/** Disclosure subject — EXCLUDED. Present here only to prove it is dropped. */
|
|
69
|
-
disclosureSubject?: string | null;
|
|
70
|
-
}
|
|
71
|
-
/** Coarse, structured outcome facts (no evaluator reasoning). */
|
|
72
|
-
export interface RawEvidenceOutcome {
|
|
73
|
-
hasOpportunity: boolean;
|
|
74
|
-
/** `turn_cap | timeout` are coarse; `screened_out` is a private gate → dropped. */
|
|
75
|
-
reason?: "turn_cap" | "timeout" | "screened_out";
|
|
76
|
-
/** Agreed collaboration roles, if any. */
|
|
77
|
-
agreedRoles?: Array<{
|
|
78
|
-
userId: string;
|
|
79
|
-
role: string;
|
|
80
|
-
}>;
|
|
81
|
-
/** Evaluator reasoning — EXCLUDED. Present here only to prove it is dropped. */
|
|
82
|
-
reasoning?: string | null;
|
|
83
|
-
}
|
|
84
|
-
/** Authoritative owner answer (the recipient's own answer to a question). */
|
|
85
|
-
export interface RawEvidenceOwnerAnswer {
|
|
86
|
-
/** Answerer user id — must equal the segment recipient to be authoritative. */
|
|
87
|
-
answererUserId: string;
|
|
88
|
-
selectedOptions: string[];
|
|
89
|
-
freeText?: string;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* All in-place negotiation data for ONE opportunity segment, scoped to an
|
|
93
|
-
* exact recipient + intent/fingerprint + opportunity + task. Continuations of
|
|
94
|
-
* the same opportunity arrive as separate segments sharing `opportunityId`;
|
|
95
|
-
* the extractor groups them and counts the opportunity once.
|
|
96
|
-
*/
|
|
97
|
-
export interface RawEvidenceSegment {
|
|
98
|
-
recipientUserId: string;
|
|
99
|
-
intentId: string;
|
|
100
|
-
intentFingerprint: string;
|
|
101
|
-
opportunityId: string;
|
|
102
|
-
taskId: string;
|
|
103
|
-
conversationId: string;
|
|
104
|
-
networkId: string;
|
|
105
|
-
/** The counterparty in this bilateral negotiation. */
|
|
106
|
-
counterpartyUserId: string;
|
|
107
|
-
turns: RawEvidenceTurn[];
|
|
108
|
-
outcome?: RawEvidenceOutcome | null;
|
|
109
|
-
ownerAnswers?: RawEvidenceOwnerAnswer[];
|
|
110
|
-
}
|
|
111
|
-
/** The scope a mining pass is bound to — every segment must match it exactly. */
|
|
112
|
-
export interface EvidenceMiningScope {
|
|
113
|
-
recipientUserId: string;
|
|
114
|
-
intentId: string;
|
|
115
|
-
intentFingerprint: string;
|
|
116
|
-
networkId: string;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* The three claim shapes a hypothesis may take. The speaker constraint is
|
|
120
|
-
* enforced against these: `recipient_fact` / `recipient_preference` require
|
|
121
|
-
* owner-authored (or structured bilateral) support; `observation` may also be
|
|
122
|
-
* supported by counterparty statements.
|
|
123
|
-
*/
|
|
124
|
-
export type HypothesisClaimType = "observation" | "recipient_fact" | "recipient_preference";
|
|
125
|
-
/** A support reference proposed by the miner (before code-side verification). */
|
|
126
|
-
export interface ProposedSupportRef {
|
|
127
|
-
/** Must resolve to an {@link AllowlistedEvidence} in the pass. */
|
|
128
|
-
evidenceId: string;
|
|
129
|
-
/** Verbatim span the miner copied from that evidence's content. */
|
|
130
|
-
span: string;
|
|
131
|
-
}
|
|
132
|
-
/** One hypothesis proposed by the miner. */
|
|
133
|
-
export interface MinedEvidenceHypothesis {
|
|
134
|
-
/** Neutral, non-identifying clarification hypothesis. */
|
|
135
|
-
statement: string;
|
|
136
|
-
claimType: HypothesisClaimType;
|
|
137
|
-
supportRefs: ProposedSupportRef[];
|
|
138
|
-
}
|
|
139
|
-
/** A support reference that resolved against the allowlist. */
|
|
140
|
-
export interface VerifiedSupportRef {
|
|
141
|
-
evidenceId: string;
|
|
142
|
-
kind: EvidenceKind;
|
|
143
|
-
speaker: EvidenceSpeaker;
|
|
144
|
-
opportunityId: string;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* A hypothesis after verification + the recurrence gate. Retained hypotheses
|
|
148
|
-
* are returned for OFFLINE review only — shadow mode never persists or logs
|
|
149
|
-
* their text (see {@link NegotiationEvidenceTelemetry}).
|
|
150
|
-
*/
|
|
151
|
-
export interface RetainedEvidenceHypothesis {
|
|
152
|
-
statement: string;
|
|
153
|
-
claimType: HypothesisClaimType;
|
|
154
|
-
support: VerifiedSupportRef[];
|
|
155
|
-
/** Count of DISTINCT opportunities in `support` — the recurrence measure. */
|
|
156
|
-
distinctOpportunities: number;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Aggregate-only telemetry. Deliberately carries NO evidence content, NO
|
|
160
|
-
* hypothesis text, and NO spans — only counts — so it is safe to emit to
|
|
161
|
-
* routine logs without leaking internal negotiation content.
|
|
162
|
-
*/
|
|
163
|
-
export interface NegotiationEvidenceTelemetry {
|
|
164
|
-
recipientUserId: string;
|
|
165
|
-
intentId: string;
|
|
166
|
-
/** Raw segments supplied to the pass (pre-grouping). */
|
|
167
|
-
segments: number;
|
|
168
|
-
/** Distinct opportunities after continuation grouping. */
|
|
169
|
-
distinctOpportunities: number;
|
|
170
|
-
/** Allowlisted evidence unit counts, by kind. */
|
|
171
|
-
evidenceCounts: Record<EvidenceKind, number>;
|
|
172
|
-
/** Records dropped by allowlist / exclusion / provenance mismatch. */
|
|
173
|
-
excludedRecords: number;
|
|
174
|
-
hypothesesMined: number;
|
|
175
|
-
/** Hypotheses whose every support ref verified against the allowlist. */
|
|
176
|
-
hypothesesSupported: number;
|
|
177
|
-
/** Supported hypotheses that also met the distinct-opportunity floor. */
|
|
178
|
-
hypothesesRecurrent: number;
|
|
179
|
-
/** Hypotheses discarded (unsupported ref, speaker violation, or too rare). */
|
|
180
|
-
hypothesesDiscarded: number;
|
|
181
|
-
}
|
|
182
|
-
/** Result of one shadow mining pass. */
|
|
183
|
-
export interface NegotiationEvidenceShadowResult {
|
|
184
|
-
/** Safe-to-log aggregate counts. */
|
|
185
|
-
telemetry: NegotiationEvidenceTelemetry;
|
|
186
|
-
/**
|
|
187
|
-
* Retained recurrent hypotheses for offline eval. In shadow mode the caller
|
|
188
|
-
* MUST NOT persist these or write them to routine logs.
|
|
189
|
-
*/
|
|
190
|
-
hypotheses: RetainedEvidenceHypothesis[];
|
|
191
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lens C negotiation-evidence — shared types (IND-433).
|
|
3
|
-
*
|
|
4
|
-
* Lens C mines neutral clarification hypotheses from RECURRING negotiation
|
|
5
|
-
* evidence, read in place at mining time. It never builds a durable transcript
|
|
6
|
-
* projection and never summarizes an entire pair DM; the only content it will
|
|
7
|
-
* ever touch is a narrow, positively-constructed allowlist:
|
|
8
|
-
*
|
|
9
|
-
* - authoritative owner answers (the recipient's own answers),
|
|
10
|
-
* - structured bilateral actions / coarse outcomes, and
|
|
11
|
-
* - explicitly shared message content.
|
|
12
|
-
*
|
|
13
|
-
* Everything else — screen/evaluator reasoning, agent chain-of-thought,
|
|
14
|
-
* `memoryHints`, private negotiator memories/reflections, disclosure subjects,
|
|
15
|
-
* untagged shared answers, and old synthesized digests — is excluded by
|
|
16
|
-
* construction (never mapped into an {@link AllowlistedEvidence}).
|
|
17
|
-
*/
|
|
18
|
-
export {};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lens C support-reference verification + recurrence gate (IND-433).
|
|
3
|
-
*
|
|
4
|
-
* A mined hypothesis is retained ONLY when:
|
|
5
|
-
* 1. it carries at least one support reference,
|
|
6
|
-
* 2. EVERY support reference resolves to an allowlisted evidence unit in
|
|
7
|
-
* this pass AND quotes a verbatim span of that unit's content,
|
|
8
|
-
* 3. the speaker constraint holds — a claim that is a fact or preference
|
|
9
|
-
* ABOUT the recipient may never rest on a counterparty statement, and
|
|
10
|
-
* 4. its verified support spans at least `minDistinctOpportunities` DISTINCT
|
|
11
|
-
* opportunities (recurrence). Continuations were already grouped upstream,
|
|
12
|
-
* so same-pair repetition cannot inflate this.
|
|
13
|
-
*
|
|
14
|
-
* Any failure discards the whole hypothesis — there is no partial retention.
|
|
15
|
-
*/
|
|
16
|
-
import type { AllowlistedEvidence, MinedEvidenceHypothesis, RetainedEvidenceHypothesis } from "./negotiation-evidence.types.js";
|
|
17
|
-
/** Result of verifying a batch of mined hypotheses. */
|
|
18
|
-
export interface VerificationResult {
|
|
19
|
-
/** Hypotheses that passed verification AND the recurrence gate. */
|
|
20
|
-
retained: RetainedEvidenceHypothesis[];
|
|
21
|
-
/** Hypotheses whose every support ref verified (pre-recurrence). */
|
|
22
|
-
supported: number;
|
|
23
|
-
/** Supported hypotheses that also met the distinct-opportunity floor. */
|
|
24
|
-
recurrent: number;
|
|
25
|
-
/** Hypotheses discarded for any reason (mined − recurrent). */
|
|
26
|
-
discarded: number;
|
|
27
|
-
}
|
|
28
|
-
/** True when `span` is a meaningful verbatim substring of `content`. */
|
|
29
|
-
export declare function evidenceSpanMatches(content: string, span: string): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Verify + recurrence-gate a batch of mined hypotheses against the allowlisted
|
|
32
|
-
* evidence produced for the same pass.
|
|
33
|
-
*/
|
|
34
|
-
export declare function verifyHypotheses(hypotheses: MinedEvidenceHypothesis[], evidence: AllowlistedEvidence[], minDistinctOpportunities: number): VerificationResult;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/** Minimum normalized span length that counts as meaningful verbatim evidence. */
|
|
2
|
-
const MIN_SPAN_CHARS = 8;
|
|
3
|
-
/** Lowercase, fold typographic punctuation, collapse whitespace. */
|
|
4
|
-
function normalizeForMatch(s) {
|
|
5
|
-
return s
|
|
6
|
-
.toLowerCase()
|
|
7
|
-
.replace(/[\u2018\u2019\u02bc]/g, "'")
|
|
8
|
-
.replace(/[\u201c\u201d]/g, '"')
|
|
9
|
-
.replace(/[\u2013\u2014]/g, "-")
|
|
10
|
-
.replace(/\u2026/g, "...")
|
|
11
|
-
.replace(/\s+/g, " ")
|
|
12
|
-
.trim();
|
|
13
|
-
}
|
|
14
|
-
/** Strip wrapping quotes / edge punctuation the LLM habitually adds. */
|
|
15
|
-
function stripEdgePunctuation(s) {
|
|
16
|
-
return s
|
|
17
|
-
.replace(/^[\s"'.,;:!?()\u2018\u2019\u201c\u201d]+/, "")
|
|
18
|
-
.replace(/[\s"'.,;:!?()\u2018\u2019\u201c\u201d]+$/, "");
|
|
19
|
-
}
|
|
20
|
-
/** True when `span` is a meaningful verbatim substring of `content`. */
|
|
21
|
-
export function evidenceSpanMatches(content, span) {
|
|
22
|
-
const haystack = normalizeForMatch(content);
|
|
23
|
-
const needle = normalizeForMatch(stripEdgePunctuation(span));
|
|
24
|
-
return needle.length >= MIN_SPAN_CHARS && haystack.includes(needle);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* A `recipient_fact` / `recipient_preference` claim must not lean on a
|
|
28
|
-
* counterparty statement. `observation` claims accept any speaker.
|
|
29
|
-
*/
|
|
30
|
-
function speakerAllowedForClaim(claimType, evidence) {
|
|
31
|
-
if (claimType === "observation")
|
|
32
|
-
return true;
|
|
33
|
-
return evidence.speaker !== "counterparty";
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Verify one hypothesis. Returns the verified support (deduped) when every
|
|
37
|
-
* reference resolves and satisfies the speaker constraint; otherwise null.
|
|
38
|
-
*/
|
|
39
|
-
function verifyHypothesis(hypothesis, byId) {
|
|
40
|
-
if (hypothesis.supportRefs.length === 0)
|
|
41
|
-
return null;
|
|
42
|
-
const verified = new Map();
|
|
43
|
-
for (const ref of hypothesis.supportRefs) {
|
|
44
|
-
const evidence = byId.get(ref.evidenceId);
|
|
45
|
-
if (!evidence)
|
|
46
|
-
return null; // reference to non-allowlisted / hallucinated id
|
|
47
|
-
if (!speakerAllowedForClaim(hypothesis.claimType, evidence))
|
|
48
|
-
return null;
|
|
49
|
-
if (!evidenceSpanMatches(evidence.content, ref.span))
|
|
50
|
-
return null;
|
|
51
|
-
verified.set(evidence.evidenceId, {
|
|
52
|
-
evidenceId: evidence.evidenceId,
|
|
53
|
-
kind: evidence.kind,
|
|
54
|
-
speaker: evidence.speaker,
|
|
55
|
-
opportunityId: evidence.opportunityId,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
return [...verified.values()];
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Verify + recurrence-gate a batch of mined hypotheses against the allowlisted
|
|
62
|
-
* evidence produced for the same pass.
|
|
63
|
-
*/
|
|
64
|
-
export function verifyHypotheses(hypotheses, evidence, minDistinctOpportunities) {
|
|
65
|
-
const byId = new Map(evidence.map((e) => [e.evidenceId, e]));
|
|
66
|
-
const retained = [];
|
|
67
|
-
let supported = 0;
|
|
68
|
-
let recurrent = 0;
|
|
69
|
-
for (const hypothesis of hypotheses) {
|
|
70
|
-
const support = verifyHypothesis(hypothesis, byId);
|
|
71
|
-
if (!support)
|
|
72
|
-
continue;
|
|
73
|
-
supported += 1;
|
|
74
|
-
const distinctOpportunities = new Set(support.map((s) => s.opportunityId)).size;
|
|
75
|
-
if (distinctOpportunities < minDistinctOpportunities)
|
|
76
|
-
continue;
|
|
77
|
-
recurrent += 1;
|
|
78
|
-
retained.push({
|
|
79
|
-
statement: hypothesis.statement,
|
|
80
|
-
claimType: hypothesis.claimType,
|
|
81
|
-
support,
|
|
82
|
-
distinctOpportunities,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
retained,
|
|
87
|
-
supported,
|
|
88
|
-
recurrent,
|
|
89
|
-
discarded: hypotheses.length - recurrent,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure mappers from raw per-candidate negotiation data to the protocol's
|
|
3
|
-
* `DiscoveryNegotiation` / `DiscoverySummary` shapes consumed by the question
|
|
4
|
-
* generator. No DB access, no LLM — safe to import from anywhere.
|
|
5
|
-
*/
|
|
6
|
-
import type { NegotiationTurn, NegotiationOutcome } from "../negotiations/negotiation.module.js";
|
|
7
|
-
import type { DiscoveryNegotiation, DiscoverySummary } from "../shared/schemas/discovery-question.schema.js";
|
|
8
|
-
/**
|
|
9
|
-
* The input shape collected by the opportunity graph's negotiate node for
|
|
10
|
-
* each candidate that completed a negotiation attempt (accepted, rejected,
|
|
11
|
-
* stalled, or errored).
|
|
12
|
-
*/
|
|
13
|
-
export interface NegotiationResolution {
|
|
14
|
-
candidateUserId: string;
|
|
15
|
-
/** Abstract profile slice for the LLM (e.g. "AI infra founder, Berlin"). */
|
|
16
|
-
counterpartyHint: string;
|
|
17
|
-
/** Network/community prompt for the negotiation. */
|
|
18
|
-
indexContext: string;
|
|
19
|
-
turns: NegotiationTurn[];
|
|
20
|
-
outcome: NegotiationOutcome;
|
|
21
|
-
/** Optional pre-negotiation evaluator score (0..1). */
|
|
22
|
-
seedAssessmentScore?: number;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Convert one negotiation resolution to `DiscoveryNegotiation`.
|
|
26
|
-
*
|
|
27
|
-
* @param r - The raw resolution from the negotiate node.
|
|
28
|
-
* @returns A `DiscoveryNegotiation` ready for the question generator.
|
|
29
|
-
*/
|
|
30
|
-
export declare function toDiscoveryNegotiation(r: NegotiationResolution): DiscoveryNegotiation;
|
|
31
|
-
/**
|
|
32
|
-
* Aggregate counters across all negotiations in a single discovery turn.
|
|
33
|
-
*
|
|
34
|
-
* @param resolutions - All resolved negotiations from the negotiate node.
|
|
35
|
-
* @returns A `DiscoverySummary` with totals and role distribution.
|
|
36
|
-
*/
|
|
37
|
-
export declare function buildDiscoverySummary(resolutions: NegotiationResolution[]): DiscoverySummary;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert one negotiation resolution to `DiscoveryNegotiation`.
|
|
3
|
-
*
|
|
4
|
-
* @param r - The raw resolution from the negotiate node.
|
|
5
|
-
* @returns A `DiscoveryNegotiation` ready for the question generator.
|
|
6
|
-
*/
|
|
7
|
-
export function toDiscoveryNegotiation(r) {
|
|
8
|
-
const turns = r.turns.map((t) => ({
|
|
9
|
-
action: t.action,
|
|
10
|
-
reasoning: t.assessment.reasoning,
|
|
11
|
-
suggestedRoles: {
|
|
12
|
-
ownUser: t.assessment.suggestedRoles.ownUser,
|
|
13
|
-
otherUser: t.assessment.suggestedRoles.otherUser,
|
|
14
|
-
},
|
|
15
|
-
}));
|
|
16
|
-
const outcome = {
|
|
17
|
-
hasOpportunity: r.outcome.hasOpportunity,
|
|
18
|
-
reasoning: r.outcome.reasoning,
|
|
19
|
-
...(r.outcome.hasOpportunity && r.outcome.agreedRoles.length > 0
|
|
20
|
-
? { agreedRoles: r.outcome.agreedRoles.map((a) => ({ userId: a.userId, role: a.role })) }
|
|
21
|
-
: {}),
|
|
22
|
-
...(r.outcome.reason ? { reason: r.outcome.reason } : {}),
|
|
23
|
-
};
|
|
24
|
-
return {
|
|
25
|
-
counterpartyId: r.candidateUserId,
|
|
26
|
-
counterpartyHint: r.counterpartyHint,
|
|
27
|
-
indexContext: r.indexContext,
|
|
28
|
-
turns,
|
|
29
|
-
outcome,
|
|
30
|
-
...(r.seedAssessmentScore !== undefined ? { seedAssessmentScore: r.seedAssessmentScore } : {}),
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Aggregate counters across all negotiations in a single discovery turn.
|
|
35
|
-
*
|
|
36
|
-
* @param resolutions - All resolved negotiations from the negotiate node.
|
|
37
|
-
* @returns A `DiscoverySummary` with totals and role distribution.
|
|
38
|
-
*/
|
|
39
|
-
export function buildDiscoverySummary(resolutions) {
|
|
40
|
-
const roleDistribution = {};
|
|
41
|
-
let opportunitiesFound = 0;
|
|
42
|
-
let noOpportunityCount = 0;
|
|
43
|
-
let timeoutCount = 0;
|
|
44
|
-
for (const r of resolutions) {
|
|
45
|
-
if (r.outcome.hasOpportunity) {
|
|
46
|
-
opportunitiesFound += 1;
|
|
47
|
-
for (const role of r.outcome.agreedRoles) {
|
|
48
|
-
const key = role.role;
|
|
49
|
-
roleDistribution[key] = (roleDistribution[key] ?? 0) + 1;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
noOpportunityCount += 1;
|
|
54
|
-
if (r.outcome.reason === "turn_cap" || r.outcome.reason === "timeout") {
|
|
55
|
-
timeoutCount += 1;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
totalCandidates: resolutions.length,
|
|
61
|
-
opportunitiesFound,
|
|
62
|
-
noOpportunityCount,
|
|
63
|
-
timeoutCount,
|
|
64
|
-
roleDistribution,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
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[]>;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { buildFallbackDigest } from '../negotiations/negotiation.module.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
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
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>;
|