@indexnetwork/protocol 22.0.0-rc.499.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 -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,24 +1,4 @@
|
|
|
1
|
-
import type { DebugMetaAgent } from "
|
|
2
|
-
/**
|
|
3
|
-
* Intent payload and metadata loaded for network evaluation.
|
|
4
|
-
* Loaded from the database before LLM-based assignment scoring.
|
|
5
|
-
*/
|
|
6
|
-
export interface IntentForIndexing {
|
|
7
|
-
id: string;
|
|
8
|
-
payload: string;
|
|
9
|
-
userId: string;
|
|
10
|
-
sourceType: string | null;
|
|
11
|
-
sourceId: string | null;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Index and member prompts for a single network (user must be member with autoAssign).
|
|
15
|
-
* Used by the evaluated assignment path in IntentNetworkGraphFactory.
|
|
16
|
-
*/
|
|
17
|
-
export interface IndexMemberContext {
|
|
18
|
-
networkId: string;
|
|
19
|
-
indexPrompt: string | null;
|
|
20
|
-
memberPrompt: string | null;
|
|
21
|
-
}
|
|
1
|
+
import type { DebugMetaAgent } from "../../protocol/core.js";
|
|
22
2
|
/**
|
|
23
3
|
* Result of executing an assignment decision.
|
|
24
4
|
* Returned from the assign node as a structured output alongside mutationResult.
|
|
@@ -31,24 +11,16 @@ export interface AssignmentResult {
|
|
|
31
11
|
}
|
|
32
12
|
/**
|
|
33
13
|
* Intent Index Graph State.
|
|
34
|
-
* Handles CRUD for the
|
|
14
|
+
* Handles CRUD for the intent_networks junction table (linking intents to networks).
|
|
35
15
|
*
|
|
36
16
|
* ## Signal assignment policy
|
|
37
17
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* score of 1 and mode `manual_override`. No LLM call.
|
|
41
|
-
* - `false` (automatic / evaluated): loads intent + network context, calls the
|
|
42
|
-
* injected indexer, then applies `buildNetworkAssignmentDecision` to produce
|
|
43
|
-
* the threshold / metadata. A no-prompt fast path skips the LLM when both
|
|
44
|
-
* prompts are absent.
|
|
45
|
-
*
|
|
46
|
-
* The indexer is injected as a constructor argument — communities never imports
|
|
47
|
-
* signals internals directly.
|
|
18
|
+
* There is none: a link exists because its owner asked for it, so the assign
|
|
19
|
+
* node writes the row at score 1 with mode `manual_override`. No LLM call.
|
|
48
20
|
*
|
|
49
21
|
* Flow:
|
|
50
22
|
* START → router → {
|
|
51
|
-
* create: assignNode
|
|
23
|
+
* create: assignNode → END
|
|
52
24
|
* read: readNode → END
|
|
53
25
|
* delete: unassignNode → END
|
|
54
26
|
* }
|
|
@@ -60,39 +32,12 @@ export declare const IntentNetworkGraphState: import("@langchain/langgraph").Ann
|
|
|
60
32
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
61
33
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
62
34
|
};
|
|
63
|
-
/** Target network for assign/read-by-network.
|
|
35
|
+
/** Target network for assign/read-by-network. */
|
|
64
36
|
networkId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
65
|
-
/** Target intent for assign/read-by-intent.
|
|
37
|
+
/** Target intent for assign/read-by-intent. */
|
|
66
38
|
intentId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
67
39
|
/** Operation mode. */
|
|
68
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
69
|
-
/**
|
|
70
|
-
* When true, skip LLM evaluation and assign directly (manual_override).
|
|
71
|
-
* When false, run IntentIndexer evaluation (automatic mode).
|
|
72
|
-
*/
|
|
73
|
-
skipEvaluation: import("@langchain/langgraph").BaseChannel<boolean, boolean | import("@langchain/langgraph").OverwriteValue<boolean>, unknown>;
|
|
74
|
-
/** Intent payload and metadata. Null if intent not found. */
|
|
75
|
-
intent: import("@langchain/langgraph").BaseChannel<IntentForIndexing | null, IntentForIndexing | import("@langchain/langgraph").OverwriteValue<IntentForIndexing | null> | null, unknown>;
|
|
76
|
-
/** Network + member context. Null if user not eligible. */
|
|
77
|
-
indexContext: import("@langchain/langgraph").BaseChannel<IndexMemberContext | null, IndexMemberContext | import("@langchain/langgraph").OverwriteValue<IndexMemberContext | null> | null, unknown>;
|
|
78
|
-
/** LLM evaluation result from IntentIndexer. Null if evaluation was skipped. */
|
|
79
|
-
evaluation: import("@langchain/langgraph").BaseChannel<{
|
|
80
|
-
reasoning: string;
|
|
81
|
-
indexScore: number;
|
|
82
|
-
memberScore: number;
|
|
83
|
-
} | null, {
|
|
84
|
-
reasoning: string;
|
|
85
|
-
indexScore: number;
|
|
86
|
-
memberScore: number;
|
|
87
|
-
} | import("@langchain/langgraph").OverwriteValue<{
|
|
88
|
-
reasoning: string;
|
|
89
|
-
indexScore: number;
|
|
90
|
-
memberScore: number;
|
|
91
|
-
} | null> | null, unknown>;
|
|
92
|
-
/** Final decision: should intent be in this network? */
|
|
93
|
-
shouldAssign: import("@langchain/langgraph").BaseChannel<boolean | undefined, boolean | import("@langchain/langgraph").OverwriteValue<boolean | undefined> | undefined, unknown>;
|
|
94
|
-
/** Final score used for decision (0–1). */
|
|
95
|
-
finalScore: import("@langchain/langgraph").BaseChannel<number | undefined, number | import("@langchain/langgraph").OverwriteValue<number | undefined> | undefined, unknown>;
|
|
40
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "create" | "read", "delete" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "create" | "read">, unknown>;
|
|
96
41
|
/** Result of the assignment persistence operation. */
|
|
97
42
|
assignmentResult: import("@langchain/langgraph").BaseChannel<AssignmentResult | null, AssignmentResult | import("@langchain/langgraph").OverwriteValue<AssignmentResult | null> | null, unknown>;
|
|
98
43
|
/** For read-by-network: pass userId when listing one user's intents in a network. */
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Annotation } from "@langchain/langgraph";
|
|
2
|
+
/**
|
|
3
|
+
* Intent Index Graph State.
|
|
4
|
+
* Handles CRUD for the intent_networks junction table (linking intents to networks).
|
|
5
|
+
*
|
|
6
|
+
* ## Signal assignment policy
|
|
7
|
+
*
|
|
8
|
+
* There is none: a link exists because its owner asked for it, so the assign
|
|
9
|
+
* node writes the row at score 1 with mode `manual_override`. No LLM call.
|
|
10
|
+
*
|
|
11
|
+
* Flow:
|
|
12
|
+
* START → router → {
|
|
13
|
+
* create: assignNode → END
|
|
14
|
+
* read: readNode → END
|
|
15
|
+
* delete: unassignNode → END
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export const IntentNetworkGraphState = Annotation.Root({
|
|
19
|
+
// --- Core Inputs (from the caller) ---
|
|
20
|
+
/** User performing the action. Always required. */
|
|
21
|
+
userId: (Annotation),
|
|
22
|
+
/** Target network for assign/read-by-network. */
|
|
23
|
+
networkId: Annotation({
|
|
24
|
+
reducer: (_, next) => next,
|
|
25
|
+
default: () => undefined,
|
|
26
|
+
}),
|
|
27
|
+
/** Target intent for assign/read-by-intent. */
|
|
28
|
+
intentId: Annotation({
|
|
29
|
+
reducer: (_, next) => next,
|
|
30
|
+
default: () => undefined,
|
|
31
|
+
}),
|
|
32
|
+
/** Operation mode. */
|
|
33
|
+
operationMode: Annotation({
|
|
34
|
+
reducer: (curr, next) => next ?? curr,
|
|
35
|
+
default: () => 'read',
|
|
36
|
+
}),
|
|
37
|
+
// --- Intermediate State (populated by nodes during graph execution) ---
|
|
38
|
+
/** Result of the assignment persistence operation. */
|
|
39
|
+
assignmentResult: Annotation({
|
|
40
|
+
reducer: (_, next) => next,
|
|
41
|
+
default: () => null,
|
|
42
|
+
}),
|
|
43
|
+
// --- Read Mode Controls ---
|
|
44
|
+
/** For read-by-network: pass userId when listing one user's intents in a network. */
|
|
45
|
+
queryUserId: Annotation({
|
|
46
|
+
reducer: (_, next) => next,
|
|
47
|
+
default: () => undefined,
|
|
48
|
+
}),
|
|
49
|
+
// --- Outputs ---
|
|
50
|
+
/** Output for read mode. */
|
|
51
|
+
readResult: Annotation({
|
|
52
|
+
reducer: (_, next) => next,
|
|
53
|
+
default: () => undefined,
|
|
54
|
+
}),
|
|
55
|
+
/** Output for create/delete modes. */
|
|
56
|
+
mutationResult: Annotation({
|
|
57
|
+
reducer: (_, next) => next,
|
|
58
|
+
default: () => undefined,
|
|
59
|
+
}),
|
|
60
|
+
/** Error message. */
|
|
61
|
+
error: Annotation({
|
|
62
|
+
reducer: (_, next) => next,
|
|
63
|
+
default: () => null,
|
|
64
|
+
}),
|
|
65
|
+
/** Timing records for each agent invocation within this graph run. */
|
|
66
|
+
agentTimings: Annotation({
|
|
67
|
+
reducer: (acc, val) => [...acc, ...val],
|
|
68
|
+
default: () => [],
|
|
69
|
+
}),
|
|
70
|
+
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { NetworkMembershipGraphDatabase } from "
|
|
1
|
+
import type { NetworkMembershipGraphDatabase } from "../../platform/database.js";
|
|
2
2
|
import { NetworkMembershipGraphState } from "./membership.state.js";
|
|
3
3
|
/**
|
|
4
4
|
* Factory class to build and compile the Network Membership Graph.
|
|
5
5
|
*
|
|
6
|
-
* Handles CRUD operations for the
|
|
6
|
+
* Handles CRUD operations for the network_members table:
|
|
7
7
|
* - create: Add a member to a network (validates join policy and ownership)
|
|
8
8
|
* - read: List members of a network (validates caller is member)
|
|
9
9
|
* - delete: Remove a member from a network (owner-only)
|
|
@@ -40,7 +40,7 @@ export declare class NetworkMembershipGraphFactory {
|
|
|
40
40
|
createGraph(): import("@langchain/langgraph").CompiledStateGraph<{
|
|
41
41
|
userId: string;
|
|
42
42
|
networkId: string;
|
|
43
|
-
operationMode: "
|
|
43
|
+
operationMode: "delete" | "create" | "read";
|
|
44
44
|
targetUserId: string | undefined;
|
|
45
45
|
readResult: {
|
|
46
46
|
networkId: string;
|
|
@@ -63,7 +63,7 @@ export declare class NetworkMembershipGraphFactory {
|
|
|
63
63
|
}, {
|
|
64
64
|
userId?: string | undefined;
|
|
65
65
|
networkId?: string | undefined;
|
|
66
|
-
operationMode?: "
|
|
66
|
+
operationMode?: "delete" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "create" | "read"> | undefined;
|
|
67
67
|
targetUserId?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
|
|
68
68
|
readResult?: {
|
|
69
69
|
networkId: string;
|
|
@@ -109,7 +109,7 @@ export declare class NetworkMembershipGraphFactory {
|
|
|
109
109
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
110
110
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
111
111
|
};
|
|
112
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
112
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "create" | "read", "delete" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "create" | "read">, unknown>;
|
|
113
113
|
targetUserId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
114
114
|
readResult: import("@langchain/langgraph").BaseChannel<{
|
|
115
115
|
networkId: string;
|
|
@@ -170,7 +170,7 @@ export declare class NetworkMembershipGraphFactory {
|
|
|
170
170
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
171
171
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
172
172
|
};
|
|
173
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
173
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "create" | "read", "delete" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "create" | "read">, unknown>;
|
|
174
174
|
targetUserId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
175
175
|
readResult: import("@langchain/langgraph").BaseChannel<{
|
|
176
176
|
networkId: string;
|
|
@@ -72,7 +72,7 @@ export async function addMemberNode(state, deps) {
|
|
|
72
72
|
return { mutationResult: { success: false, error: "You must be a member of that network to add others." } };
|
|
73
73
|
}
|
|
74
74
|
if (joinPolicy === 'invite_only') {
|
|
75
|
-
const isOwner = await deps.database.
|
|
75
|
+
const isOwner = await deps.database.isNetworkOwner(state.networkId, state.userId);
|
|
76
76
|
if (!isOwner) {
|
|
77
77
|
return { mutationResult: { success: false, error: "Only the network owner can add members when the network is invite-only." } };
|
|
78
78
|
}
|
|
@@ -162,11 +162,11 @@ export async function removeMemberNode(state, deps) {
|
|
|
162
162
|
return { mutationResult: { success: false, error: "You cannot remove yourself. Use 'leave network' instead." } };
|
|
163
163
|
}
|
|
164
164
|
try {
|
|
165
|
-
const isOwner = await deps.database.
|
|
165
|
+
const isOwner = await deps.database.isNetworkOwner(state.networkId, state.userId);
|
|
166
166
|
if (!isOwner) {
|
|
167
167
|
return { mutationResult: { success: false, error: "Only the network owner can remove members." } };
|
|
168
168
|
}
|
|
169
|
-
const result = await deps.database.
|
|
169
|
+
const result = await deps.database.removeMemberFromNetwork(state.networkId, state.targetUserId);
|
|
170
170
|
if (result.wasOwner) {
|
|
171
171
|
return { mutationResult: { success: false, error: "Cannot remove the network owner." } };
|
|
172
172
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Network Membership Graph State.
|
|
3
|
-
* Handles CRUD operations for network memberships (
|
|
3
|
+
* Handles CRUD operations for network memberships (network_members table).
|
|
4
4
|
*
|
|
5
5
|
* ## Membership authority policy
|
|
6
6
|
*
|
|
@@ -28,7 +28,7 @@ export declare const NetworkMembershipGraphState: import("@langchain/langgraph")
|
|
|
28
28
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
29
29
|
};
|
|
30
30
|
/** Operation mode. */
|
|
31
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
31
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "create" | "read", "delete" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "create" | "read">, unknown>;
|
|
32
32
|
/** For create/delete: the user being added/removed. */
|
|
33
33
|
targetUserId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
34
34
|
/** Output for read mode: list of members. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Annotation } from "@langchain/langgraph";
|
|
2
2
|
/**
|
|
3
3
|
* Network Membership Graph State.
|
|
4
|
-
* Handles CRUD operations for network memberships (
|
|
4
|
+
* Handles CRUD operations for network memberships (network_members table).
|
|
5
5
|
*
|
|
6
6
|
* ## Membership authority policy
|
|
7
7
|
*
|
|
@@ -16,7 +16,7 @@ import { Annotation } from "@langchain/langgraph";
|
|
|
16
16
|
* START → routerNode → {addMemberNode | listMembersNode | removeMemberNode} → END
|
|
17
17
|
*/
|
|
18
18
|
export const NetworkMembershipGraphState = Annotation.Root({
|
|
19
|
-
// --- Core Inputs (from
|
|
19
|
+
// --- Core Inputs (from the caller) ---
|
|
20
20
|
/** User performing the action (the actor). Always required. */
|
|
21
21
|
userId: (Annotation),
|
|
22
22
|
/** Target network. Required for all operations. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NetworkGraphDatabase } from "
|
|
1
|
+
import type { NetworkGraphDatabase } from "../../platform/database.js";
|
|
2
2
|
import { NetworkGraphState } from "./network.state.js";
|
|
3
3
|
/**
|
|
4
4
|
* Factory class to build and compile the Network (community) lifecycle graph.
|
|
@@ -19,9 +19,9 @@ import { NetworkGraphState } from "./network.state.js";
|
|
|
19
19
|
*
|
|
20
20
|
* ## Scope semantics (read mode)
|
|
21
21
|
*
|
|
22
|
-
* When `networkId` is set and `showAll` is false, only the focused network
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
* When `networkId` is set and `showAll` is false, only the focused network is
|
|
23
|
+
* returned. This is the strict-scope invariant for network-bound agents.
|
|
24
|
+
* Set `showAll: true` to bypass.
|
|
25
25
|
*
|
|
26
26
|
* Flow:
|
|
27
27
|
* START → routerNode → {createNode | readNode | updateNode | deleteNode} → END
|
|
@@ -39,7 +39,7 @@ export declare class NetworkGraphFactory {
|
|
|
39
39
|
createGraph(): import("@langchain/langgraph").CompiledStateGraph<{
|
|
40
40
|
userId: string;
|
|
41
41
|
networkId: string | undefined;
|
|
42
|
-
operationMode: "
|
|
42
|
+
operationMode: "delete" | "update" | "create" | "read";
|
|
43
43
|
createInput: {
|
|
44
44
|
title: string;
|
|
45
45
|
prompt?: string;
|
|
@@ -59,7 +59,6 @@ export declare class NetworkGraphFactory {
|
|
|
59
59
|
title: string;
|
|
60
60
|
prompt: string | null;
|
|
61
61
|
autoAssign: boolean;
|
|
62
|
-
isPersonal: boolean;
|
|
63
62
|
joinedAt: Date;
|
|
64
63
|
}>;
|
|
65
64
|
owns: Array<{
|
|
@@ -98,7 +97,7 @@ export declare class NetworkGraphFactory {
|
|
|
98
97
|
}, {
|
|
99
98
|
userId?: string | undefined;
|
|
100
99
|
networkId?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
|
|
101
|
-
operationMode?: "
|
|
100
|
+
operationMode?: "delete" | "update" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "update" | "create" | "read"> | undefined;
|
|
102
101
|
createInput?: {
|
|
103
102
|
title: string;
|
|
104
103
|
prompt?: string;
|
|
@@ -128,7 +127,6 @@ export declare class NetworkGraphFactory {
|
|
|
128
127
|
title: string;
|
|
129
128
|
prompt: string | null;
|
|
130
129
|
autoAssign: boolean;
|
|
131
|
-
isPersonal: boolean;
|
|
132
130
|
joinedAt: Date;
|
|
133
131
|
}>;
|
|
134
132
|
owns: Array<{
|
|
@@ -161,7 +159,6 @@ export declare class NetworkGraphFactory {
|
|
|
161
159
|
title: string;
|
|
162
160
|
prompt: string | null;
|
|
163
161
|
autoAssign: boolean;
|
|
164
|
-
isPersonal: boolean;
|
|
165
162
|
joinedAt: Date;
|
|
166
163
|
}>;
|
|
167
164
|
owns: Array<{
|
|
@@ -203,14 +200,14 @@ export declare class NetworkGraphFactory {
|
|
|
203
200
|
error?: string;
|
|
204
201
|
} | undefined> | undefined;
|
|
205
202
|
error?: string | import("@langchain/langgraph").OverwriteValue<string | null> | null | undefined;
|
|
206
|
-
}, "update" | "
|
|
203
|
+
}, "update" | "create" | "read" | "__start__" | "delete_idx", {
|
|
207
204
|
userId: {
|
|
208
205
|
(annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
|
|
209
206
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
210
207
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
211
208
|
};
|
|
212
209
|
networkId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
213
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
210
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "update" | "create" | "read", "delete" | "update" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "update" | "create" | "read">, unknown>;
|
|
214
211
|
createInput: import("@langchain/langgraph").BaseChannel<{
|
|
215
212
|
title: string;
|
|
216
213
|
prompt?: string;
|
|
@@ -250,7 +247,6 @@ export declare class NetworkGraphFactory {
|
|
|
250
247
|
title: string;
|
|
251
248
|
prompt: string | null;
|
|
252
249
|
autoAssign: boolean;
|
|
253
|
-
isPersonal: boolean;
|
|
254
250
|
joinedAt: Date;
|
|
255
251
|
}>;
|
|
256
252
|
owns: Array<{
|
|
@@ -283,7 +279,6 @@ export declare class NetworkGraphFactory {
|
|
|
283
279
|
title: string;
|
|
284
280
|
prompt: string | null;
|
|
285
281
|
autoAssign: boolean;
|
|
286
|
-
isPersonal: boolean;
|
|
287
282
|
joinedAt: Date;
|
|
288
283
|
}>;
|
|
289
284
|
owns: Array<{
|
|
@@ -316,7 +311,6 @@ export declare class NetworkGraphFactory {
|
|
|
316
311
|
title: string;
|
|
317
312
|
prompt: string | null;
|
|
318
313
|
autoAssign: boolean;
|
|
319
|
-
isPersonal: boolean;
|
|
320
314
|
joinedAt: Date;
|
|
321
315
|
}>;
|
|
322
316
|
owns: Array<{
|
|
@@ -371,7 +365,7 @@ export declare class NetworkGraphFactory {
|
|
|
371
365
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
372
366
|
};
|
|
373
367
|
networkId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
374
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
368
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "update" | "create" | "read", "delete" | "update" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "update" | "create" | "read">, unknown>;
|
|
375
369
|
createInput: import("@langchain/langgraph").BaseChannel<{
|
|
376
370
|
title: string;
|
|
377
371
|
prompt?: string;
|
|
@@ -411,7 +405,6 @@ export declare class NetworkGraphFactory {
|
|
|
411
405
|
title: string;
|
|
412
406
|
prompt: string | null;
|
|
413
407
|
autoAssign: boolean;
|
|
414
|
-
isPersonal: boolean;
|
|
415
408
|
joinedAt: Date;
|
|
416
409
|
}>;
|
|
417
410
|
owns: Array<{
|
|
@@ -444,7 +437,6 @@ export declare class NetworkGraphFactory {
|
|
|
444
437
|
title: string;
|
|
445
438
|
prompt: string | null;
|
|
446
439
|
autoAssign: boolean;
|
|
447
|
-
isPersonal: boolean;
|
|
448
440
|
joinedAt: Date;
|
|
449
441
|
}>;
|
|
450
442
|
owns: Array<{
|
|
@@ -477,7 +469,6 @@ export declare class NetworkGraphFactory {
|
|
|
477
469
|
title: string;
|
|
478
470
|
prompt: string | null;
|
|
479
471
|
autoAssign: boolean;
|
|
480
|
-
isPersonal: boolean;
|
|
481
472
|
joinedAt: Date;
|
|
482
473
|
}>;
|
|
483
474
|
owns: Array<{
|
|
@@ -533,7 +524,6 @@ export declare class NetworkGraphFactory {
|
|
|
533
524
|
title: string;
|
|
534
525
|
prompt: string | null;
|
|
535
526
|
autoAssign: boolean;
|
|
536
|
-
isPersonal: boolean;
|
|
537
527
|
joinedAt: Date;
|
|
538
528
|
}[];
|
|
539
529
|
owns: {
|
|
@@ -560,7 +550,6 @@ export declare class NetworkGraphFactory {
|
|
|
560
550
|
title: string;
|
|
561
551
|
prompt: string | null;
|
|
562
552
|
autoAssign: boolean;
|
|
563
|
-
isPersonal: boolean;
|
|
564
553
|
joinedAt: Date;
|
|
565
554
|
}[];
|
|
566
555
|
owns: {
|
|
@@ -653,7 +642,6 @@ export declare function readNode(state: NetworkState, deps: NetworkGraphDeps): P
|
|
|
653
642
|
title: string;
|
|
654
643
|
prompt: string | null;
|
|
655
644
|
autoAssign: boolean;
|
|
656
|
-
isPersonal: boolean;
|
|
657
645
|
joinedAt: Date;
|
|
658
646
|
}[];
|
|
659
647
|
owns: {
|
|
@@ -680,7 +668,6 @@ export declare function readNode(state: NetworkState, deps: NetworkGraphDeps): P
|
|
|
680
668
|
title: string;
|
|
681
669
|
prompt: string | null;
|
|
682
670
|
autoAssign: boolean;
|
|
683
|
-
isPersonal: boolean;
|
|
684
671
|
joinedAt: Date;
|
|
685
672
|
}[];
|
|
686
673
|
owns: {
|
|
@@ -38,9 +38,8 @@ export async function readNode(state, deps) {
|
|
|
38
38
|
const projectMembership = (m) => ({
|
|
39
39
|
networkId: m.networkId,
|
|
40
40
|
title: m.networkTitle,
|
|
41
|
-
prompt: m.
|
|
41
|
+
prompt: m.networkPrompt,
|
|
42
42
|
autoAssign: m.autoAssign,
|
|
43
|
-
isPersonal: m.isPersonal,
|
|
44
43
|
joinedAt: m.joinedAt,
|
|
45
44
|
});
|
|
46
45
|
const projectOwned = (o) => ({
|
|
@@ -52,17 +51,12 @@ export async function readNode(state, deps) {
|
|
|
52
51
|
joinPolicy: o.permissions.joinPolicy,
|
|
53
52
|
});
|
|
54
53
|
try {
|
|
55
|
-
const [allMemberships,
|
|
54
|
+
const [allMemberships, ownedNetworks, publicNetworksResult] = await Promise.all([
|
|
56
55
|
deps.database.getNetworkMemberships(state.userId),
|
|
57
|
-
deps.database.
|
|
58
|
-
deps.database.
|
|
56
|
+
deps.database.getOwnedNetworks(state.userId),
|
|
57
|
+
deps.database.getPublicNetworksNotJoined(state.userId),
|
|
59
58
|
]);
|
|
60
|
-
// If network-scoped and not showAll, return just that network
|
|
61
|
-
// user's personal network (their contacts). The personal network is part
|
|
62
|
-
// of every allowed-network reach calculation for network-bound agents,
|
|
63
|
-
// and a user in a community-scoped chat still owns their contact list —
|
|
64
|
-
// so surfacing it here keeps contact tools discoverable. Other community
|
|
65
|
-
// memberships are still hidden, and `publicNetworks` is omitted.
|
|
59
|
+
// If network-scoped and not showAll, return just that network.
|
|
66
60
|
const scopeToCurrentNetwork = state.networkId && !state.showAll;
|
|
67
61
|
if (scopeToCurrentNetwork) {
|
|
68
62
|
const networkId = state.networkId;
|
|
@@ -77,20 +71,12 @@ export async function readNode(state, deps) {
|
|
|
77
71
|
};
|
|
78
72
|
}
|
|
79
73
|
const scopedMembership = allMemberships.find((m) => m.networkId === networkId);
|
|
80
|
-
const
|
|
81
|
-
? undefined
|
|
82
|
-
: allMemberships.find((m) => m.isPersonal);
|
|
83
|
-
const scopedOwned = ownedIndexes.find((o) => o.id === networkId);
|
|
84
|
-
const personalOwned = personalMembership
|
|
85
|
-
? ownedIndexes.find((o) => o.id === personalMembership.networkId)
|
|
86
|
-
: undefined;
|
|
74
|
+
const scopedOwned = ownedNetworks.find((o) => o.id === networkId);
|
|
87
75
|
const memberOf = [
|
|
88
76
|
...(scopedMembership ? [projectMembership(scopedMembership)] : []),
|
|
89
|
-
...(personalMembership ? [projectMembership(personalMembership)] : []),
|
|
90
77
|
];
|
|
91
78
|
const owns = [
|
|
92
79
|
...(scopedOwned ? [projectOwned(scopedOwned)] : []),
|
|
93
|
-
...(personalOwned ? [projectOwned(personalOwned)] : []),
|
|
94
80
|
];
|
|
95
81
|
return {
|
|
96
82
|
readResult: {
|
|
@@ -99,13 +85,13 @@ export async function readNode(state, deps) {
|
|
|
99
85
|
stats: {
|
|
100
86
|
memberOfCount: memberOf.length,
|
|
101
87
|
ownsCount: owns.length,
|
|
102
|
-
scopeNote: "Showing current network
|
|
88
|
+
scopeNote: "Showing the current network. Use showAll: true for all networks.",
|
|
103
89
|
},
|
|
104
90
|
},
|
|
105
91
|
};
|
|
106
92
|
}
|
|
107
93
|
// Include public networks available to join
|
|
108
|
-
const publicNetworks =
|
|
94
|
+
const publicNetworks = publicNetworksResult.networks.map((idx) => ({
|
|
109
95
|
networkId: idx.id,
|
|
110
96
|
title: idx.title,
|
|
111
97
|
prompt: idx.prompt,
|
|
@@ -115,9 +101,9 @@ export async function readNode(state, deps) {
|
|
|
115
101
|
return {
|
|
116
102
|
readResult: {
|
|
117
103
|
memberOf: allMemberships.map(projectMembership),
|
|
118
|
-
owns:
|
|
104
|
+
owns: ownedNetworks.map(projectOwned),
|
|
119
105
|
publicNetworks,
|
|
120
|
-
stats: { memberOfCount: allMemberships.length, ownsCount:
|
|
106
|
+
stats: { memberOfCount: allMemberships.length, ownsCount: ownedNetworks.length, publicNetworksCount: publicNetworks.length },
|
|
121
107
|
},
|
|
122
108
|
};
|
|
123
109
|
}
|
|
@@ -210,11 +196,11 @@ export async function updateNode(state, deps) {
|
|
|
210
196
|
return { mutationResult: { success: false, error: "networkId is required for update." } };
|
|
211
197
|
}
|
|
212
198
|
try {
|
|
213
|
-
const isOwner = await deps.database.
|
|
199
|
+
const isOwner = await deps.database.isNetworkOwner(networkId, state.userId);
|
|
214
200
|
if (!isOwner) {
|
|
215
201
|
return { mutationResult: { success: false, error: "You can only modify networks you own." } };
|
|
216
202
|
}
|
|
217
|
-
await deps.database.
|
|
203
|
+
await deps.database.updateNetworkSettings(networkId, state.userId, state.updateInput ?? {});
|
|
218
204
|
return {
|
|
219
205
|
mutationResult: {
|
|
220
206
|
success: true,
|
|
@@ -240,7 +226,7 @@ export async function deleteNode(state, deps) {
|
|
|
240
226
|
return { mutationResult: { success: false, error: "networkId is required for delete." } };
|
|
241
227
|
}
|
|
242
228
|
try {
|
|
243
|
-
const isOwner = await deps.database.
|
|
229
|
+
const isOwner = await deps.database.isNetworkOwner(networkId, state.userId);
|
|
244
230
|
if (!isOwner) {
|
|
245
231
|
return { mutationResult: { success: false, error: "You can only delete networks you own." } };
|
|
246
232
|
}
|
|
@@ -23,10 +23,10 @@ export interface NetworkRecommenderInput {
|
|
|
23
23
|
* LLM-based agent that ranks public communities against a user's profile.
|
|
24
24
|
* Used during onboarding step 6 to surface the most relevant communities first.
|
|
25
25
|
*
|
|
26
|
-
* Follows the
|
|
26
|
+
* Follows the shared agent pattern: `withStructuredOutput`, `invokeWithAbortSignal`,
|
|
27
27
|
* null-on-error fallback. `createStructuredModel` is called inside the constructor
|
|
28
28
|
* (not at module level) so that importing this module does not require
|
|
29
|
-
* OPENROUTER_API_KEY to be set — tests that import communities
|
|
29
|
+
* OPENROUTER_API_KEY to be set — tests that import the communities capability without a
|
|
30
30
|
* live LLM env are unaffected.
|
|
31
31
|
*/
|
|
32
32
|
export declare class NetworkRecommender {
|
|
@@ -52,10 +52,10 @@ OUTPUT RULES:
|
|
|
52
52
|
* LLM-based agent that ranks public communities against a user's profile.
|
|
53
53
|
* Used during onboarding step 6 to surface the most relevant communities first.
|
|
54
54
|
*
|
|
55
|
-
* Follows the
|
|
55
|
+
* Follows the shared agent pattern: `withStructuredOutput`, `invokeWithAbortSignal`,
|
|
56
56
|
* null-on-error fallback. `createStructuredModel` is called inside the constructor
|
|
57
57
|
* (not at module level) so that importing this module does not require
|
|
58
|
-
* OPENROUTER_API_KEY to be set — tests that import communities
|
|
58
|
+
* OPENROUTER_API_KEY to be set — tests that import the communities capability without a
|
|
59
59
|
* live LLM env are unaffected.
|
|
60
60
|
*/
|
|
61
61
|
export class NetworkRecommender {
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* ## Scope semantics
|
|
9
9
|
*
|
|
10
10
|
* When the chat is network-scoped (`networkId` is set) and `showAll` is false,
|
|
11
|
-
* readNode surfaces only the focused network
|
|
12
|
-
*
|
|
11
|
+
* readNode surfaces only the focused network.
|
|
12
|
+
* Setting `showAll: true` bypasses the restriction (admin use).
|
|
13
13
|
*/
|
|
14
14
|
export declare const NetworkGraphState: import("@langchain/langgraph").AnnotationRoot<{
|
|
15
15
|
/** User performing the action. Always required. */
|
|
@@ -18,10 +18,10 @@ export declare const NetworkGraphState: import("@langchain/langgraph").Annotatio
|
|
|
18
18
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
19
19
|
Root: <S extends import("@langchain/langgraph").StateDefinition>(sd: S) => import("@langchain/langgraph").AnnotationRoot<S>;
|
|
20
20
|
};
|
|
21
|
-
/** Target network ID. Required for read/update/delete.
|
|
21
|
+
/** Target network ID. Required for read/update/delete. */
|
|
22
22
|
networkId: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
|
|
23
23
|
/** Operation mode. */
|
|
24
|
-
operationMode: import("@langchain/langgraph").BaseChannel<"
|
|
24
|
+
operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "update" | "create" | "read", "delete" | "update" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "update" | "create" | "read">, unknown>;
|
|
25
25
|
/** For create mode: network creation data. */
|
|
26
26
|
createInput: import("@langchain/langgraph").BaseChannel<{
|
|
27
27
|
title: string;
|
|
@@ -68,7 +68,6 @@ export declare const NetworkGraphState: import("@langchain/langgraph").Annotatio
|
|
|
68
68
|
title: string;
|
|
69
69
|
prompt: string | null;
|
|
70
70
|
autoAssign: boolean;
|
|
71
|
-
isPersonal: boolean;
|
|
72
71
|
joinedAt: Date;
|
|
73
72
|
}>;
|
|
74
73
|
owns: Array<{
|
|
@@ -101,7 +100,6 @@ export declare const NetworkGraphState: import("@langchain/langgraph").Annotatio
|
|
|
101
100
|
title: string;
|
|
102
101
|
prompt: string | null;
|
|
103
102
|
autoAssign: boolean;
|
|
104
|
-
isPersonal: boolean;
|
|
105
103
|
joinedAt: Date;
|
|
106
104
|
}>;
|
|
107
105
|
owns: Array<{
|
|
@@ -134,7 +132,6 @@ export declare const NetworkGraphState: import("@langchain/langgraph").Annotatio
|
|
|
134
132
|
title: string;
|
|
135
133
|
prompt: string | null;
|
|
136
134
|
autoAssign: boolean;
|
|
137
|
-
isPersonal: boolean;
|
|
138
135
|
joinedAt: Date;
|
|
139
136
|
}>;
|
|
140
137
|
owns: Array<{
|
|
@@ -9,14 +9,14 @@ import { Annotation } from "@langchain/langgraph";
|
|
|
9
9
|
* ## Scope semantics
|
|
10
10
|
*
|
|
11
11
|
* When the chat is network-scoped (`networkId` is set) and `showAll` is false,
|
|
12
|
-
* readNode surfaces only the focused network
|
|
13
|
-
*
|
|
12
|
+
* readNode surfaces only the focused network.
|
|
13
|
+
* Setting `showAll: true` bypasses the restriction (admin use).
|
|
14
14
|
*/
|
|
15
15
|
export const NetworkGraphState = Annotation.Root({
|
|
16
|
-
// --- Core Inputs (from
|
|
16
|
+
// --- Core Inputs (from the caller) ---
|
|
17
17
|
/** User performing the action. Always required. */
|
|
18
18
|
userId: (Annotation),
|
|
19
|
-
/** Target network ID. Required for read/update/delete.
|
|
19
|
+
/** Target network ID. Required for read/update/delete. */
|
|
20
20
|
networkId: Annotation({
|
|
21
21
|
reducer: (_, next) => next,
|
|
22
22
|
default: () => undefined,
|