@indexnetwork/protocol 22.0.0-rc.499.1 → 64.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -134
- package/dist/index.js +41 -105
- 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,56 +1,10 @@
|
|
|
1
|
+
import type { NegotiationOpening, NegotiationOpeningDecision } from '../../protocol/negotiation.rules.js';
|
|
1
2
|
/**
|
|
2
|
-
* Database operations for
|
|
3
|
+
* Database operations for the opportunity lifecycle.
|
|
3
4
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
/** HyDE document and opportunity persistence operations. */
|
|
5
|
+
import type { CreateIntentCounterpartyData, CreateOpportunityData, IntentScopedOpportunityPersistenceResult, OpenedNegotiation, Opportunity, OpportunityActor, OpportunityNetworkEligibility, OpportunityQueryOptions, OpportunityStatus } from './entities.js';
|
|
6
|
+
/** Opportunity persistence operations. */
|
|
7
7
|
export interface DatabaseOpportunityQueries {
|
|
8
|
-
/**
|
|
9
|
-
* Get a HyDE document by source and strategy/lens hash.
|
|
10
|
-
* Returns the first matching document when multiple target corpuses exist.
|
|
11
|
-
*
|
|
12
|
-
* @param sourceType - 'intent' | 'query'
|
|
13
|
-
* @param sourceId - Source entity ID (e.g. intent ID, user ID)
|
|
14
|
-
* @param strategy - Lens hash (SHA-256 of lens label) or legacy strategy name
|
|
15
|
-
* @returns The HyDE document or null if not found
|
|
16
|
-
*/
|
|
17
|
-
getHydeDocument(sourceType: HydeSourceType, sourceId: string, strategy: string): Promise<HydeDocument | null>;
|
|
18
|
-
/**
|
|
19
|
-
* Get all HyDE documents for a source (all strategies).
|
|
20
|
-
*
|
|
21
|
-
* @param sourceType - 'intent' | 'query'
|
|
22
|
-
* @param sourceId - Source entity ID
|
|
23
|
-
* @returns Array of HyDE documents for that source
|
|
24
|
-
*/
|
|
25
|
-
getHydeDocumentsForSource(sourceType: HydeSourceType, sourceId: string): Promise<HydeDocument[]>;
|
|
26
|
-
/**
|
|
27
|
-
* Save a HyDE document (upsert by sourceType + sourceId + strategy/lensHash + targetCorpus).
|
|
28
|
-
*
|
|
29
|
-
* @param data - HyDE document data
|
|
30
|
-
* @returns The saved HyDE document
|
|
31
|
-
*/
|
|
32
|
-
saveHydeDocument(data: CreateHydeDocumentData): Promise<HydeDocument>;
|
|
33
|
-
/**
|
|
34
|
-
* Delete all HyDE documents for a source (e.g. when intent archived).
|
|
35
|
-
*
|
|
36
|
-
* @param sourceType - 'intent' | 'query'
|
|
37
|
-
* @param sourceId - Source entity ID
|
|
38
|
-
* @returns Number of documents deleted
|
|
39
|
-
*/
|
|
40
|
-
deleteHydeDocumentsForSource(sourceType: HydeSourceType, sourceId: string): Promise<number>;
|
|
41
|
-
/**
|
|
42
|
-
* Delete expired HyDE documents (expires_at <= now). Used by maintenance jobs.
|
|
43
|
-
*
|
|
44
|
-
* @returns Number of documents deleted
|
|
45
|
-
*/
|
|
46
|
-
deleteExpiredHydeDocuments(): Promise<number>;
|
|
47
|
-
/**
|
|
48
|
-
* Get stale HyDE documents for refresh (e.g. createdAt < threshold).
|
|
49
|
-
*
|
|
50
|
-
* @param threshold - Date threshold; documents created before this are considered stale
|
|
51
|
-
* @returns Array of stale HyDE documents
|
|
52
|
-
*/
|
|
53
|
-
getStaleHydeDocuments(threshold: Date): Promise<HydeDocument[]>;
|
|
54
8
|
/**
|
|
55
9
|
* Create a new opportunity.
|
|
56
10
|
*
|
|
@@ -58,6 +12,16 @@ export interface DatabaseOpportunityQueries {
|
|
|
58
12
|
* @returns The created opportunity
|
|
59
13
|
*/
|
|
60
14
|
createOpportunity(data: CreateOpportunityData): Promise<Opportunity>;
|
|
15
|
+
/**
|
|
16
|
+
* Turn every pair discovery scored into an opportunity with a negotiation
|
|
17
|
+
* record beside it, and hand back the ones that were newly opened.
|
|
18
|
+
*
|
|
19
|
+
* There is no open decision to make: whether a match is worth pursuing is
|
|
20
|
+
* the initiator's first turn. Implementations key on `pairKey`, so a pair the
|
|
21
|
+
* counterparty's run already opened is skipped and the result is exactly the
|
|
22
|
+
* set the caller still owes a `negotiation.turn`.
|
|
23
|
+
*/
|
|
24
|
+
openCounterparties(pairs: CreateIntentCounterpartyData[], decide: (pair: NegotiationOpening) => NegotiationOpeningDecision): Promise<OpenedNegotiation[]>;
|
|
61
25
|
/**
|
|
62
26
|
* Atomically create only while every actor still has an active membership on
|
|
63
27
|
* the actor's network. Implementations lock the membership rows through the
|
|
@@ -66,13 +30,13 @@ export interface DatabaseOpportunityQueries {
|
|
|
66
30
|
createOpportunityIfNetworkEligible?(data: CreateOpportunityData, eligibility: OpportunityNetworkEligibility): Promise<Opportunity | null>;
|
|
67
31
|
/**
|
|
68
32
|
* Intent-scoped discovery persistence boundary. Implementations serialize on
|
|
69
|
-
* normalized
|
|
70
|
-
*
|
|
71
|
-
*
|
|
33
|
+
* the normalized intent pair, reject any existing opportunity for that exact
|
|
34
|
+
* pair, then create/expire while the existing network eligibility locks
|
|
35
|
+
* remain held. Other intents remain fully independent.
|
|
72
36
|
*/
|
|
73
37
|
persistIntentScopedOpportunityIfNetworkEligible?(data: CreateOpportunityData, expireIds: string[], eligibility: OpportunityNetworkEligibility & {
|
|
74
38
|
triggerIntentId: string;
|
|
75
|
-
}
|
|
39
|
+
}): Promise<IntentScopedOpportunityPersistenceResult | null>;
|
|
76
40
|
/**
|
|
77
41
|
* Atomically update status only while the supplied participant anchors remain
|
|
78
42
|
* active and, when supplied, the opportunity still has `expectedStatus`.
|
|
@@ -138,7 +102,7 @@ export interface DatabaseOpportunityQueries {
|
|
|
138
102
|
*/
|
|
139
103
|
getLivePoolOpportunitiesForIntent(recipientUserId: string, intentId: string): Promise<Opportunity[]>;
|
|
140
104
|
/**
|
|
141
|
-
* Get opportunities in
|
|
105
|
+
* Get opportunities in a network (for network admins).
|
|
142
106
|
*
|
|
143
107
|
* @param networkId - Network ID
|
|
144
108
|
* @param options - Optional filters and pagination
|
|
@@ -150,45 +114,9 @@ export interface DatabaseOpportunityQueries {
|
|
|
150
114
|
*
|
|
151
115
|
* @param id - Opportunity ID
|
|
152
116
|
* @param status - New status
|
|
153
|
-
* @param acceptedBy - Required when `status === 'accepted'`
|
|
154
|
-
* @param outbox - Optional IND-434 atomic outcome-capture (same-txn insert)
|
|
155
117
|
* @returns The updated opportunity or null if not found
|
|
156
118
|
*/
|
|
157
|
-
updateOpportunityStatus(id: string, status: OpportunityStatus
|
|
158
|
-
/**
|
|
159
|
-
* Atomically restores a taskless negotiation attempt to its pre-negotiation status.
|
|
160
|
-
* Serializes with exact-attempt task creation, then transitions only the exact
|
|
161
|
-
* still-current `negotiating` version when no qualifying negotiation task exists.
|
|
162
|
-
*
|
|
163
|
-
* @param id - Opportunity ID
|
|
164
|
-
* @param expectedUpdatedAt - Persistence boundary for this negotiation attempt
|
|
165
|
-
* @param fallbackStatus - Status restored when the guarded transition succeeds
|
|
166
|
-
* @returns The compensated opportunity, or null on a status, version, or task race
|
|
167
|
-
*/
|
|
168
|
-
compensateTasklessNegotiatingOpportunity(id: string, expectedUpdatedAt: Date, fallbackStatus: 'latent' | 'draft'): Promise<Opportunity | null>;
|
|
169
|
-
/**
|
|
170
|
-
* Stamp `actedAt` on the actor matching `actorUserId` and update the
|
|
171
|
-
* opportunity's status atomically (row-lock + JSONB merge in one txn).
|
|
172
|
-
*
|
|
173
|
-
* Used by `sendNode` (status → 'pending') and `updateNode` (status →
|
|
174
|
-
* 'accepted'). The self-accept guard is enforced in the caller, not here —
|
|
175
|
-
* this method blindly stamps. Callers must pre-check `actor.actedAt` before
|
|
176
|
-
* invocation when the semantics require it (i.e. accepting).
|
|
177
|
-
*
|
|
178
|
-
* @param id - Opportunity ID
|
|
179
|
-
* @param actorUserId - The user whose actor entry should be stamped
|
|
180
|
-
* @param status - New opportunity status
|
|
181
|
-
* @param acceptedBy - Required when `status === 'accepted'`
|
|
182
|
-
* @param outbox - Optional IND-434 atomic outcome-capture (same-txn insert)
|
|
183
|
-
* @returns The updated opportunity, or null if not found
|
|
184
|
-
*/
|
|
185
|
-
stampOpportunityActorAction(id: string, actorUserId: string, status: OpportunityStatus, acceptedBy?: string, outbox?: OutcomeOutbox): Promise<Opportunity | null>;
|
|
186
|
-
/**
|
|
187
|
-
* Update the `approved` field on an opportunity's introducer actor.
|
|
188
|
-
* Fetches the opportunity, patches the matching actor in JS, and writes
|
|
189
|
-
* the updated actors JSONB back. Returns the updated opportunity or null.
|
|
190
|
-
*/
|
|
191
|
-
updateOpportunityActorApproval(id: string, introducerUserId: string, approved: boolean): Promise<Opportunity | null>;
|
|
119
|
+
updateOpportunityStatus(id: string, status: OpportunityStatus): Promise<Opportunity | null>;
|
|
192
120
|
/**
|
|
193
121
|
* Create one opportunity and expire others in a single transaction.
|
|
194
122
|
* Atomic: insert then update status to 'expired' for each id in expireIds.
|
|
@@ -208,7 +136,7 @@ export interface DatabaseOpportunityQueries {
|
|
|
208
136
|
expired: Opportunity[];
|
|
209
137
|
} | null>;
|
|
210
138
|
/**
|
|
211
|
-
* Check if an opportunity already exists between the given actors in the
|
|
139
|
+
* Check if an opportunity already exists between the given actors in the network (deduplication).
|
|
212
140
|
*
|
|
213
141
|
* @param actorIds - Array of user IDs that would be actors
|
|
214
142
|
* @param networkId - Network ID
|
|
@@ -219,7 +147,7 @@ export interface DatabaseOpportunityQueries {
|
|
|
219
147
|
* Find opportunities whose actors contain all the given user IDs.
|
|
220
148
|
*
|
|
221
149
|
* The `includeIntroducers` flag controls actor matching: when false (default), matching
|
|
222
|
-
* is restricted
|
|
150
|
+
* is restricted by role; when true, any role in `actors` counts.
|
|
223
151
|
*
|
|
224
152
|
* Index-agnostic. Ordered by updatedAt desc.
|
|
225
153
|
*
|
|
@@ -236,7 +164,7 @@ export interface DatabaseOpportunityQueries {
|
|
|
236
164
|
* IND-567 Rejection cool-down: returns the subset of `candidateUserIds` that
|
|
237
165
|
* have at least one non-draft opportunity with `discovererId` whose `updatedAt`
|
|
238
166
|
* falls within the last `windowMs` milliseconds AND whose status is `rejected`
|
|
239
|
-
*
|
|
167
|
+
* `rejected`. Used by the evaluation node to apply a score penalty before
|
|
240
168
|
* sending candidates to the LLM, suppressing cross-query re-surfacing of
|
|
241
169
|
* recently-rejected pairs.
|
|
242
170
|
*
|
|
@@ -246,7 +174,7 @@ export interface DatabaseOpportunityQueries {
|
|
|
246
174
|
* @param discovererId - User running discovery
|
|
247
175
|
* @param candidateUserIds - Candidate user IDs to check (may be empty — return [])
|
|
248
176
|
* @param windowMs - Look-back window in milliseconds
|
|
249
|
-
* @returns Candidate user IDs (subset of input) with a recent rejected
|
|
177
|
+
* @returns Candidate user IDs (subset of input) with a recent rejected opp
|
|
250
178
|
*/
|
|
251
179
|
getRecentlyRejectedOpportunityCounterparties?(discovererId: string, candidateUserIds: string[], windowMs: number): Promise<string[]>;
|
|
252
180
|
/**
|
|
@@ -257,7 +185,7 @@ export interface DatabaseOpportunityQueries {
|
|
|
257
185
|
*/
|
|
258
186
|
expireOpportunitiesByIntent(intentId: string): Promise<number>;
|
|
259
187
|
/**
|
|
260
|
-
* Expire opportunities for a user removed from
|
|
188
|
+
* Expire opportunities for a user removed from a network.
|
|
261
189
|
*
|
|
262
190
|
* @param networkId - Network ID
|
|
263
191
|
* @param userId - User ID that was removed
|
|
@@ -270,16 +198,4 @@ export interface DatabaseOpportunityQueries {
|
|
|
270
198
|
* @returns Number of opportunities updated to expired
|
|
271
199
|
*/
|
|
272
200
|
expireStaleOpportunities(): Promise<number>;
|
|
273
|
-
/**
|
|
274
|
-
* Accept all sibling opportunities between the same actor pair in one transaction.
|
|
275
|
-
* Selects opportunities where both userId and counterpartUserId are actors and status
|
|
276
|
-
* is not accepted/expired/rejected, excludes excludeOpportunityId, then bulk-updates status to accepted.
|
|
277
|
-
* Rolls back on any failure.
|
|
278
|
-
*
|
|
279
|
-
* @param userId - First actor user ID
|
|
280
|
-
* @param counterpartUserId - Second actor user ID
|
|
281
|
-
* @param excludeOpportunityId - Opportunity ID to exclude (the one already being accepted)
|
|
282
|
-
* @returns IDs of opportunities that were updated to accepted
|
|
283
|
-
*/
|
|
284
|
-
acceptSiblingOpportunities(userId: string, counterpartUserId: string, excludeOpportunityId: string): Promise<string[]>;
|
|
285
201
|
}
|
|
@@ -5,50 +5,18 @@
|
|
|
5
5
|
* interfaces keeps each group readable without changing the type one bit —
|
|
6
6
|
* every `Pick<Database, ...>` alias still resolves exactly as before.
|
|
7
7
|
*/
|
|
8
|
-
import type { UserIdentity } from '
|
|
9
|
-
import type { NetworkAssignmentMetadata } from '
|
|
10
|
-
import type { ActiveIntent, ArchiveResult,
|
|
11
|
-
import type { DatabaseIdentityQueries } from './database.identity-queries.js';
|
|
12
|
-
import type { DatabaseMemberQueries } from './database.member-queries.js';
|
|
13
|
-
import type { DatabaseNetworkQueries } from './database.network-queries.js';
|
|
14
|
-
import type { DatabaseOpportunityQueries } from './database.opportunity-queries.js';
|
|
15
|
-
/**
|
|
16
|
-
* Abstract database interface for performing specific domain operations.
|
|
17
|
-
* Decouples the protocol layer from the infrastructure layer.
|
|
18
|
-
*/
|
|
19
|
-
export interface Database extends DatabaseIdentityQueries, DatabaseNetworkQueries, DatabaseOpportunityQueries, DatabaseMemberQueries {
|
|
20
|
-
}
|
|
8
|
+
import type { UserIdentity } from '../../protocol/schemas/identity.schema.js';
|
|
9
|
+
import type { NetworkAssignmentMetadata } from '../../protocol/schemas/network-assignment.schema.js';
|
|
10
|
+
import type { ActiveIntent, ArchiveResult, CreateIntentData, CreateOpportunityData, CreatedIntent, Id, IntentRecord, NetworkAssignmentContext, NetworkIntentDetails, NetworkMemberDetails, NetworkMembership, OnboardingState, Opportunity, OpportunityQueryOptions, OpportunityStatus, OwnedNetwork, SimilarIntent, SimilarIntentSearchOptions, UpdateIntentData, UpdateNetworkSettingsData, UserRecord, UserSocial } from './entities.js';
|
|
21
11
|
/**
|
|
22
12
|
* Context-bound database for accessing the authenticated user's own resources.
|
|
23
13
|
* Created with authUserId bound at construction; no userId parameter needed on methods.
|
|
24
14
|
*
|
|
25
|
-
* **NOT network-scoped**: Returns ALL of the user's own resources regardless of
|
|
15
|
+
* **NOT network-scoped**: Returns ALL of the user's own resources regardless of network.
|
|
26
16
|
* This is critical for the IntentReconciler which needs the full picture for deduplication.
|
|
27
17
|
*
|
|
28
18
|
* Use via `createUserDatabase(db, authUserId)` factory function.
|
|
29
19
|
*/
|
|
30
|
-
export interface AgentActivitySummary {
|
|
31
|
-
/** The requested reporting window, in hours. */
|
|
32
|
-
sinceHours: number;
|
|
33
|
-
/** Number of the user's own non-archived ACTIVE intents. */
|
|
34
|
-
liveSignalsWatched: number;
|
|
35
|
-
/** Opportunities created in the window and linked to one of the user's intents. */
|
|
36
|
-
opportunitiesSurfaced: number;
|
|
37
|
-
/** Opportunity counts grouped by the user's own signal. */
|
|
38
|
-
opportunitiesBySignal: Array<{
|
|
39
|
-
intentId: string;
|
|
40
|
-
title: string;
|
|
41
|
-
count: number;
|
|
42
|
-
}>;
|
|
43
|
-
/** Current, non-expired questions waiting for the user, grouped by affected mode (QuestionMode values). Meta-network. */
|
|
44
|
-
pendingQuestionsByMode: Record<string, number>;
|
|
45
|
-
/** Questions answered by the user during the window, grouped by affected mode (QuestionMode values). Meta-network. */
|
|
46
|
-
answeredQuestionsByMode: Record<string, number>;
|
|
47
|
-
/** Distinct opportunity negotiations started during the window. */
|
|
48
|
-
negotiationsStarted: number;
|
|
49
|
-
/** Distinct opportunity negotiations completed during the window. */
|
|
50
|
-
negotiationsCompleted: number;
|
|
51
|
-
}
|
|
52
20
|
export interface UserDatabase {
|
|
53
21
|
/** The bound authenticated user ID */
|
|
54
22
|
readonly authUserId: string;
|
|
@@ -76,7 +44,7 @@ export interface UserDatabase {
|
|
|
76
44
|
label: string;
|
|
77
45
|
value: string;
|
|
78
46
|
}[]): Promise<void>;
|
|
79
|
-
/** Get ALL active intents for the authenticated user (not
|
|
47
|
+
/** Get ALL active intents for the authenticated user (not network-filtered). */
|
|
80
48
|
getActiveIntents(): Promise<ActiveIntent[]>;
|
|
81
49
|
/**
|
|
82
50
|
* Case-insensitive substring search over the authenticated user's own
|
|
@@ -98,7 +66,7 @@ export interface UserDatabase {
|
|
|
98
66
|
archiveIntent(intentId: string): Promise<ArchiveResult>;
|
|
99
67
|
/** Find similar intents among the user's own intents (for deduplication). */
|
|
100
68
|
findSimilarIntents(embedding: number[], options?: SimilarIntentSearchOptions): Promise<SimilarIntent[]>;
|
|
101
|
-
/** Get intent fields for
|
|
69
|
+
/** Get intent fields for network assignment (own intent). */
|
|
102
70
|
getIntentForIndexing(intentId: string): Promise<{
|
|
103
71
|
id: string;
|
|
104
72
|
payload: string;
|
|
@@ -108,27 +76,27 @@ export interface UserDatabase {
|
|
|
108
76
|
} | null>;
|
|
109
77
|
/** Associate an intent with networks. */
|
|
110
78
|
associateIntentWithNetworks(intentId: string, networkIds: string[]): Promise<void>;
|
|
111
|
-
/** Assign an intent to
|
|
79
|
+
/** Assign an intent to a network. */
|
|
112
80
|
assignIntentToNetwork(intentId: string, networkId: string, relevancyScore?: number, assignmentMetadata?: NetworkAssignmentMetadata): Promise<void>;
|
|
113
|
-
/** Unassign an intent from
|
|
114
|
-
|
|
81
|
+
/** Unassign an intent from a network. */
|
|
82
|
+
unassignIntentFromNetwork(intentId: string, networkId: string): Promise<void>;
|
|
115
83
|
/** Get network IDs for an intent. */
|
|
116
84
|
getNetworkIdsForIntent(intentId: string): Promise<string[]>;
|
|
117
|
-
/** Check if intent is assigned to
|
|
118
|
-
|
|
85
|
+
/** Check if intent is assigned to network. */
|
|
86
|
+
isIntentAssignedToNetwork(intentId: string, networkId: string): Promise<boolean>;
|
|
119
87
|
/** Get all network memberships for the authenticated user. */
|
|
120
88
|
getNetworkMemberships(): Promise<NetworkMembership[]>;
|
|
121
89
|
/** Get network IDs with auto-assign enabled for the authenticated user. */
|
|
122
|
-
|
|
123
|
-
/** Get
|
|
124
|
-
|
|
90
|
+
getUserNetworkIds(): Promise<string[]>;
|
|
91
|
+
/** Get networks owned by the authenticated user. */
|
|
92
|
+
getOwnedNetworks(): Promise<OwnedNetwork[]>;
|
|
125
93
|
/** Get a specific network membership for the authenticated user. */
|
|
126
94
|
getNetworkMembership(networkId: string): Promise<NetworkMembership | null>;
|
|
127
|
-
/** Get
|
|
95
|
+
/** Get network + member context for the authenticated user (for auto-assign). */
|
|
128
96
|
getNetworkMemberContext(networkId: string): Promise<NetworkAssignmentContext | null>;
|
|
129
|
-
/** Get
|
|
97
|
+
/** Get network + member context for the authenticated user without auto-assign gating. */
|
|
130
98
|
getNetworkAssignmentContext?(networkId: string): Promise<NetworkAssignmentContext | null>;
|
|
131
|
-
/** Create a new
|
|
99
|
+
/** Create a new network (user becomes owner). */
|
|
132
100
|
createNetwork(data: {
|
|
133
101
|
title: string;
|
|
134
102
|
prompt?: string | null;
|
|
@@ -146,12 +114,12 @@ export interface UserDatabase {
|
|
|
146
114
|
} | null;
|
|
147
115
|
};
|
|
148
116
|
}>;
|
|
149
|
-
/** Update
|
|
150
|
-
|
|
117
|
+
/** Update network settings (owner only). */
|
|
118
|
+
updateNetworkSettings(networkId: string, data: UpdateNetworkSettingsData): Promise<OwnedNetwork>;
|
|
151
119
|
/** Soft-delete a network (owner only). */
|
|
152
120
|
softDeleteNetwork(networkId: string): Promise<void>;
|
|
153
121
|
/** Get public networks (joinPolicy 'anyone') that the user has not joined. */
|
|
154
|
-
|
|
122
|
+
getPublicNetworksNotJoined(): Promise<{
|
|
155
123
|
networks: Array<{
|
|
156
124
|
id: string;
|
|
157
125
|
title: string;
|
|
@@ -169,99 +137,78 @@ export interface UserDatabase {
|
|
|
169
137
|
success: boolean;
|
|
170
138
|
alreadyMember?: boolean;
|
|
171
139
|
}>;
|
|
172
|
-
/**
|
|
173
|
-
* Summarize the authenticated user's own agent activity without counterparty rows.
|
|
174
|
-
* When `networkId` is present (a network agent's bound community), the
|
|
175
|
-
* network-bound aggregates (opportunity and negotiation counts) are narrowed
|
|
176
|
-
* to that community inside the query; own-signal and question aggregates are
|
|
177
|
-
* meta-network and stay global.
|
|
178
|
-
*/
|
|
179
|
-
getAgentActivitySummary(input: {
|
|
180
|
-
sinceHours: number;
|
|
181
|
-
networkId?: string;
|
|
182
|
-
}): Promise<AgentActivitySummary>;
|
|
183
140
|
/** Get opportunities where the authenticated user is an actor. */
|
|
184
141
|
getOpportunitiesForUser(options?: OpportunityQueryOptions): Promise<Opportunity[]>;
|
|
185
142
|
/** Get a specific opportunity (if user is an actor). */
|
|
186
143
|
getOpportunity(id: string): Promise<Opportunity | null>;
|
|
187
|
-
/** Update an opportunity's status (if user is an actor).
|
|
144
|
+
/** Update an opportunity's status (if user is an actor). */
|
|
188
145
|
updateOpportunityStatus(id: string, status: OpportunityStatus): Promise<Opportunity | null>;
|
|
189
|
-
/** Accept sibling opportunities between the authenticated user and another actor. */
|
|
190
|
-
acceptSiblingOpportunities(counterpartUserId: string, excludeOpportunityId: string): Promise<string[]>;
|
|
191
|
-
/** Get a HyDE document for the user's own source. */
|
|
192
|
-
getHydeDocument(sourceType: HydeSourceType, sourceId: string, strategy: string): Promise<HydeDocument | null>;
|
|
193
|
-
/** Get all HyDE documents for the user's own source. */
|
|
194
|
-
getHydeDocumentsForSource(sourceType: HydeSourceType, sourceId: string): Promise<HydeDocument[]>;
|
|
195
|
-
/** Save a HyDE document for the user's own source. */
|
|
196
|
-
saveHydeDocument(data: CreateHydeDocumentData): Promise<HydeDocument>;
|
|
197
|
-
/** Delete HyDE documents for the user's own source. */
|
|
198
|
-
deleteHydeDocumentsForSource(sourceType: HydeSourceType, sourceId: string): Promise<number>;
|
|
199
146
|
}
|
|
200
147
|
/**
|
|
201
148
|
* Context-bound database for LLM/system operations that access cross-user resources.
|
|
202
|
-
* Created with authUserId +
|
|
149
|
+
* Created with authUserId + networkScope[]; validates membership before access.
|
|
203
150
|
*
|
|
204
151
|
* **Network-scoped**: All cross-user operations are restricted to users/resources
|
|
205
|
-
* within the bound
|
|
152
|
+
* within the bound networkScope[]. This prevents the LLM from accessing arbitrary users' data.
|
|
206
153
|
*
|
|
207
|
-
* Use via `createSystemDatabase(db, authUserId,
|
|
154
|
+
* Use via `createSystemDatabase(db, authUserId, networkScope)` factory function.
|
|
208
155
|
*/
|
|
209
156
|
export interface SystemDatabase {
|
|
210
157
|
/** The bound authenticated user ID */
|
|
211
158
|
readonly authUserId: string;
|
|
212
|
-
/** The
|
|
213
|
-
readonly
|
|
159
|
+
/** The networks the authenticated user has access to (determines cross-user scope) */
|
|
160
|
+
readonly networkScope: string[];
|
|
214
161
|
/** Get a user's profile (requires shared network membership). */
|
|
215
162
|
getProfile(userId: string): Promise<UserIdentity | null>;
|
|
216
163
|
/** Get a user's basic record (requires shared network membership). */
|
|
217
164
|
getUser(userId: string): Promise<UserRecord | null>;
|
|
218
|
-
/** Get all intents in
|
|
219
|
-
|
|
165
|
+
/** Get all intents in a network (cross-user, requires membership). */
|
|
166
|
+
getIntentsInNetwork(networkId: string, options?: {
|
|
220
167
|
limit?: number;
|
|
221
168
|
offset?: number;
|
|
222
|
-
}): Promise<
|
|
223
|
-
/** Get a specific user's intents in
|
|
224
|
-
|
|
169
|
+
}): Promise<NetworkIntentDetails[]>;
|
|
170
|
+
/** Get a specific user's intents in a network (requires shared membership). */
|
|
171
|
+
getUserIntentsInNetwork(userId: string, networkId: string): Promise<ActiveIntent[]>;
|
|
225
172
|
/**
|
|
226
|
-
* Get the caller's own active intents across a set of
|
|
173
|
+
* Get the caller's own active intents across a set of networks.
|
|
227
174
|
* Returns intents owned by `userId` that are linked (via intent_networks)
|
|
228
|
-
* to at least one of `
|
|
229
|
-
*
|
|
230
|
-
* include intents in
|
|
175
|
+
* to at least one of `networkIds`. Used by network-scoped agents to honor
|
|
176
|
+
* networkScope without falling back to global getActiveIntents (which would
|
|
177
|
+
* include intents in networks outside scope).
|
|
231
178
|
*
|
|
232
179
|
* @param userId - The intent owner (always the caller).
|
|
233
|
-
* @param
|
|
234
|
-
* @returns Active intents owned by userId in any of
|
|
180
|
+
* @param networkIds - The set of network IDs to filter on. Empty → empty result.
|
|
181
|
+
* @returns Active intents owned by userId in any of networkIds, deduped by intent id.
|
|
235
182
|
*/
|
|
236
|
-
|
|
183
|
+
getActiveIntentsAcrossNetworks(userId: string, networkIds: string[]): Promise<ActiveIntent[]>;
|
|
237
184
|
/** Get a single intent by ID (if in scope). */
|
|
238
185
|
getIntent(intentId: string): Promise<IntentRecord | null>;
|
|
239
186
|
/** Find similar intents across users within the network scope. */
|
|
240
187
|
findSimilarIntentsInScope(embedding: number[], options?: SimilarIntentSearchOptions): Promise<SimilarIntent[]>;
|
|
241
|
-
/** Check if a user is a member of
|
|
188
|
+
/** Check if a user is a member of a network. */
|
|
242
189
|
isNetworkMember(networkId: string, userId: string): Promise<boolean>;
|
|
243
|
-
/** Check if a user is an owner of
|
|
244
|
-
|
|
245
|
-
/** Get all members of
|
|
246
|
-
getNetworkMembers(networkId: string): Promise<
|
|
190
|
+
/** Check if a user is an owner of a network. */
|
|
191
|
+
isNetworkOwner(networkId: string, userId: string): Promise<boolean>;
|
|
192
|
+
/** Get all members of a network (requires membership). */
|
|
193
|
+
getNetworkMembers(networkId: string): Promise<NetworkMemberDetails[]>;
|
|
247
194
|
/** Get all members across all networks in scope (deduplicated). */
|
|
248
195
|
getMembersFromScope(): Promise<{
|
|
249
196
|
userId: Id<'users'>;
|
|
250
197
|
name: string;
|
|
251
198
|
avatar: string | null;
|
|
252
199
|
}[]>;
|
|
253
|
-
/** Add a user to
|
|
200
|
+
/** Add a user to a network (requires ownership or 'anyone' policy). */
|
|
254
201
|
addMemberToNetwork(networkId: string, userId: string, role: 'owner' | 'member'): Promise<{
|
|
255
202
|
success: boolean;
|
|
256
203
|
alreadyMember?: boolean;
|
|
257
204
|
}>;
|
|
258
|
-
/** Remove a user from
|
|
259
|
-
|
|
205
|
+
/** Remove a user from a network (requires ownership). Cannot remove the owner. */
|
|
206
|
+
removeMemberFromNetwork(networkId: string, userId: string): Promise<{
|
|
260
207
|
success: boolean;
|
|
261
208
|
wasOwner?: boolean;
|
|
262
209
|
notMember?: boolean;
|
|
263
210
|
}>;
|
|
264
|
-
/** Get
|
|
211
|
+
/** Get network info by ID with core fields (requires scope). */
|
|
265
212
|
getNetwork(networkId: string): Promise<{
|
|
266
213
|
id: string;
|
|
267
214
|
title: string;
|
|
@@ -270,7 +217,7 @@ export interface SystemDatabase {
|
|
|
270
217
|
metadata?: Record<string, unknown> | null;
|
|
271
218
|
permissions?: Record<string, unknown> | null;
|
|
272
219
|
} | null>;
|
|
273
|
-
/** Get
|
|
220
|
+
/** Get network with permissions (requires scope). */
|
|
274
221
|
getNetworkWithPermissions(networkId: string): Promise<{
|
|
275
222
|
id: string;
|
|
276
223
|
title: string;
|
|
@@ -278,7 +225,7 @@ export interface SystemDatabase {
|
|
|
278
225
|
joinPolicy: 'anyone' | 'invite_only';
|
|
279
226
|
};
|
|
280
227
|
} | null>;
|
|
281
|
-
/** Get member count for
|
|
228
|
+
/** Get member count for a network (requires scope). */
|
|
282
229
|
getNetworkMemberCount(networkId: string): Promise<number>;
|
|
283
230
|
/** Create an opportunity (cross-user). */
|
|
284
231
|
createOpportunity(data: CreateOpportunityData): Promise<Opportunity>;
|
|
@@ -289,13 +236,11 @@ export interface SystemDatabase {
|
|
|
289
236
|
}>;
|
|
290
237
|
/** Get an opportunity by ID (for system processing). */
|
|
291
238
|
getOpportunity(id: string): Promise<Opportunity | null>;
|
|
292
|
-
/** Get opportunities for
|
|
239
|
+
/** Get opportunities for a network (requires membership). */
|
|
293
240
|
getOpportunitiesForNetwork(networkId: string, options?: OpportunityQueryOptions): Promise<Opportunity[]>;
|
|
294
241
|
/** Update an opportunity's status (system-level). */
|
|
295
|
-
updateOpportunityStatus(id: string, status: OpportunityStatus
|
|
296
|
-
/**
|
|
297
|
-
stampOpportunityActorAction(id: string, actorUserId: string, status: OpportunityStatus, acceptedBy?: string): Promise<Opportunity | null>;
|
|
298
|
-
/** Check if opportunity exists between actors in an index. */
|
|
242
|
+
updateOpportunityStatus(id: string, status: OpportunityStatus): Promise<Opportunity | null>;
|
|
243
|
+
/** Check if opportunity exists between actors in a network. */
|
|
299
244
|
opportunityExistsBetweenActors(actorIds: string[], networkId: string): Promise<boolean>;
|
|
300
245
|
/** Find opportunities by actor IDs with optional include/exclude status filters. */
|
|
301
246
|
findOpportunitiesByActors(actorIds: string[], options?: {
|
|
@@ -309,14 +254,4 @@ export interface SystemDatabase {
|
|
|
309
254
|
expireOpportunitiesForRemovedMember(networkId: string, userId: string): Promise<number>;
|
|
310
255
|
/** Expire stale opportunities (maintenance). */
|
|
311
256
|
expireStaleOpportunities(): Promise<number>;
|
|
312
|
-
/** Get a HyDE document (cross-user for matching). */
|
|
313
|
-
getHydeDocument(sourceType: HydeSourceType, sourceId: string, strategy: string): Promise<HydeDocument | null>;
|
|
314
|
-
/** Get all HyDE documents for a source (cross-user). */
|
|
315
|
-
getHydeDocumentsForSource(sourceType: HydeSourceType, sourceId: string): Promise<HydeDocument[]>;
|
|
316
|
-
/** Save a HyDE document (system-level). */
|
|
317
|
-
saveHydeDocument(data: CreateHydeDocumentData): Promise<HydeDocument>;
|
|
318
|
-
/** Delete expired HyDE documents (maintenance). */
|
|
319
|
-
deleteExpiredHydeDocuments(): Promise<number>;
|
|
320
|
-
/** Get stale HyDE documents for refresh (maintenance). */
|
|
321
|
-
getStaleHydeDocuments(threshold: Date): Promise<HydeDocument[]>;
|
|
322
257
|
}
|
|
@@ -14,16 +14,14 @@ export {};
|
|
|
14
14
|
// They are used by graph factories to enforce interface segregation at compile time.
|
|
15
15
|
//
|
|
16
16
|
// Access control relationship to UserDatabase/SystemDatabase:
|
|
17
|
-
// - EnrichmentGraphDatabase → maps to UserDatabase (user's own profile operations)
|
|
18
17
|
// - IntentGraphDatabase → maps to UserDatabase (mutations) + SystemDatabase (reads)
|
|
19
|
-
// -
|
|
20
|
-
// - NetworkGraphDatabase → maps to UserDatabase (own
|
|
18
|
+
// - OpportunityDatabase → maps to SystemDatabase (cross-user operations)
|
|
19
|
+
// - NetworkGraphDatabase → maps to UserDatabase (own networks)
|
|
21
20
|
// - IntentNetworkGraphDatabase → maps to both (own intent ↔ shared network)
|
|
22
21
|
// - NetworkMembershipGraphDatabase → maps to SystemDatabase (cross-user)
|
|
23
|
-
// - HydeGraphDatabase → maps to both (own HyDE vs cross-user matching)
|
|
24
22
|
//
|
|
25
23
|
// Graphs continue to use these narrowed types because:
|
|
26
24
|
// 1. They receive the raw database adapter with userId passed per method
|
|
27
|
-
// 2. Access control is enforced
|
|
25
|
+
// 2. Access control is enforced by the host via createUserDatabase/createSystemDatabase
|
|
28
26
|
// 3. These types ensure graphs only depend on methods they actually use
|
|
29
27
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The database port: a stable host contract, not a database implementation.
|
|
3
|
+
*
|
|
4
|
+
* The declarations moved into sibling modules — entities, the four query
|
|
5
|
+
* groups that compose `Database`, the access-scoped views, negotiation
|
|
6
|
+
* persistence, and the capability-narrowed aliases. Importers keep using this
|
|
7
|
+
* path; nothing about the types changed.
|
|
8
|
+
*/
|
|
9
|
+
import type { DatabaseIdentityQueries } from "./database/identity-queries.js";
|
|
10
|
+
import type { DatabaseMemberQueries } from "./database/member-queries.js";
|
|
11
|
+
import type { DatabaseNetworkQueries } from "./database/network-queries.js";
|
|
12
|
+
import type { DatabaseOpportunityQueries } from "./database/opportunity-queries.js";
|
|
13
|
+
/** The complete persistence contract a host may implement. */
|
|
14
|
+
export interface Database extends DatabaseIdentityQueries, DatabaseNetworkQueries, DatabaseOpportunityQueries, DatabaseMemberQueries {
|
|
15
|
+
}
|
|
16
|
+
export type * from './database/entities.js';
|
|
17
|
+
export type * from './database/identity-queries.js';
|
|
18
|
+
export type * from './database/network-queries.js';
|
|
19
|
+
export type * from './database/opportunity-queries.js';
|
|
20
|
+
export type * from './database/member-queries.js';
|
|
21
|
+
export type * from './database/port.js';
|
|
22
|
+
export type * from './database/capabilities.js';
|
|
23
|
+
export type * from './database/negotiation.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The database port,
|
|
2
|
+
* The database port: a stable host contract, not a database implementation.
|
|
3
3
|
*
|
|
4
4
|
* The declarations moved into sibling modules — entities, the four query
|
|
5
5
|
* groups that compose `Database`, the access-scoped views, negotiation
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cache interface for protocol layer (
|
|
2
|
+
* Cache interface for protocol layer (opportunities).
|
|
3
3
|
* Implementations live in src/adapters (e.g. Redis).
|
|
4
4
|
*/
|
|
5
5
|
export interface CacheOptions {
|
|
@@ -31,12 +31,10 @@ export interface Cache {
|
|
|
31
31
|
*/
|
|
32
32
|
mget<T>(keys: string[]): Promise<(T | null)[]>;
|
|
33
33
|
/**
|
|
34
|
-
* Delete all keys matching pattern (e.g. "
|
|
34
|
+
* Delete all keys matching pattern (e.g. "opportunity:intent:*").
|
|
35
35
|
* @returns Number of keys deleted
|
|
36
36
|
*/
|
|
37
37
|
deleteByPattern(pattern: string): Promise<number>;
|
|
38
38
|
}
|
|
39
|
-
/** Cache interface for HyDE Graph operations. */
|
|
40
|
-
export type HydeCache = Pick<Cache, 'get' | 'set' | 'delete' | 'exists'>;
|
|
41
39
|
/** Cache interface for Opportunity Graph operations. */
|
|
42
40
|
export type OpportunityCache = Pick<Cache, 'get' | 'set' | 'mget'>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface EmbeddingGenerateOptions {
|
|
2
|
+
signal?: AbortSignal;
|
|
3
|
+
}
|
|
4
|
+
export interface EmbeddingGenerator {
|
|
5
|
+
generate(text: string | string[], dimensions?: number, options?: EmbeddingGenerateOptions): Promise<number[] | number[][]>;
|
|
6
|
+
}
|
|
7
|
+
export interface VectorSearchResult<T> {
|
|
8
|
+
item: T;
|
|
9
|
+
score: number;
|
|
10
|
+
}
|
|
11
|
+
export type VectorStoreOption<T> = {
|
|
12
|
+
limit?: number;
|
|
13
|
+
filter?: Record<string, unknown>;
|
|
14
|
+
candidates?: (T & {
|
|
15
|
+
embedding?: number[] | null;
|
|
16
|
+
})[];
|
|
17
|
+
minScore?: number;
|
|
18
|
+
};
|
|
19
|
+
export interface VectorStore {
|
|
20
|
+
/**
|
|
21
|
+
* Search for similar items in the vector store.
|
|
22
|
+
*
|
|
23
|
+
* @param queryVector - The embedding vector to search for
|
|
24
|
+
* @param collection - The logical name of the collection (e.g., 'profiles', 'intents')
|
|
25
|
+
* @param options - generic options including limit, filter, and candidates
|
|
26
|
+
*/
|
|
27
|
+
search<T>(queryVector: number[], collection: string, options?: VectorStoreOption<T>): Promise<VectorSearchResult<T>[]>;
|
|
28
|
+
}
|
|
29
|
+
/** Embedding generation and vector search for protocol capabilities. */
|
|
30
|
+
export interface Embedder extends EmbeddingGenerator, VectorStore {
|
|
31
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** A stable access error a host can map without importing protocol internals. */
|
|
2
|
+
export declare class ChatContextAccessError extends Error {
|
|
3
|
+
readonly statusCode: number;
|
|
4
|
+
readonly code: "USER_NOT_FOUND" | "NETWORK_NOT_FOUND" | "NETWORK_MEMBERSHIP_REQUIRED";
|
|
5
|
+
constructor(message: string, statusCode: number, code: "USER_NOT_FOUND" | "NETWORK_NOT_FOUND" | "NETWORK_MEMBERSHIP_REQUIRED");
|
|
6
|
+
}
|