@indexnetwork/protocol 0.1.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/dist/agents/chat.agent.d.ts +218 -0
- package/dist/agents/chat.agent.d.ts.map +1 -0
- package/dist/agents/chat.agent.js +884 -0
- package/dist/agents/chat.agent.js.map +1 -0
- package/dist/agents/chat.prompt.d.ts +18 -0
- package/dist/agents/chat.prompt.d.ts.map +1 -0
- package/dist/agents/chat.prompt.js +372 -0
- package/dist/agents/chat.prompt.js.map +1 -0
- package/dist/agents/chat.prompt.modules.d.ts +61 -0
- package/dist/agents/chat.prompt.modules.d.ts.map +1 -0
- package/dist/agents/chat.prompt.modules.js +366 -0
- package/dist/agents/chat.prompt.modules.js.map +1 -0
- package/dist/agents/chat.title.generator.d.ts +20 -0
- package/dist/agents/chat.title.generator.d.ts.map +1 -0
- package/dist/agents/chat.title.generator.js +66 -0
- package/dist/agents/chat.title.generator.js.map +1 -0
- package/dist/agents/home.categorizer.d.ts +28 -0
- package/dist/agents/home.categorizer.d.ts.map +1 -0
- package/dist/agents/home.categorizer.js +170 -0
- package/dist/agents/home.categorizer.js.map +1 -0
- package/dist/agents/hyde.generator.d.ts +27 -0
- package/dist/agents/hyde.generator.d.ts.map +1 -0
- package/dist/agents/hyde.generator.js +75 -0
- package/dist/agents/hyde.generator.js.map +1 -0
- package/dist/agents/hyde.strategies.d.ts +17 -0
- package/dist/agents/hyde.strategies.d.ts.map +1 -0
- package/dist/agents/hyde.strategies.js +29 -0
- package/dist/agents/hyde.strategies.js.map +1 -0
- package/dist/agents/intent.clarifier.d.ts +29 -0
- package/dist/agents/intent.clarifier.d.ts.map +1 -0
- package/dist/agents/intent.clarifier.js +186 -0
- package/dist/agents/intent.clarifier.js.map +1 -0
- package/dist/agents/intent.indexer.d.ts +77 -0
- package/dist/agents/intent.indexer.d.ts.map +1 -0
- package/dist/agents/intent.indexer.js +164 -0
- package/dist/agents/intent.indexer.js.map +1 -0
- package/dist/agents/intent.inferrer.d.ts +95 -0
- package/dist/agents/intent.inferrer.d.ts.map +1 -0
- package/dist/agents/intent.inferrer.js +238 -0
- package/dist/agents/intent.inferrer.js.map +1 -0
- package/dist/agents/intent.reconciler.d.ts +106 -0
- package/dist/agents/intent.reconciler.d.ts.map +1 -0
- package/dist/agents/intent.reconciler.js +184 -0
- package/dist/agents/intent.reconciler.js.map +1 -0
- package/dist/agents/intent.verifier.d.ts +97 -0
- package/dist/agents/intent.verifier.d.ts.map +1 -0
- package/dist/agents/intent.verifier.js +234 -0
- package/dist/agents/intent.verifier.js.map +1 -0
- package/dist/agents/invite.generator.d.ts +47 -0
- package/dist/agents/invite.generator.d.ts.map +1 -0
- package/dist/agents/invite.generator.js +56 -0
- package/dist/agents/invite.generator.js.map +1 -0
- package/dist/agents/lens.inferrer.d.ts +37 -0
- package/dist/agents/lens.inferrer.d.ts.map +1 -0
- package/dist/agents/lens.inferrer.js +98 -0
- package/dist/agents/lens.inferrer.js.map +1 -0
- package/dist/agents/model.config.d.ts +120 -0
- package/dist/agents/model.config.d.ts.map +1 -0
- package/dist/agents/model.config.js +76 -0
- package/dist/agents/model.config.js.map +1 -0
- package/dist/agents/negotiation.insights.generator.d.ts +32 -0
- package/dist/agents/negotiation.insights.generator.d.ts.map +1 -0
- package/dist/agents/negotiation.insights.generator.js +105 -0
- package/dist/agents/negotiation.insights.generator.js.map +1 -0
- package/dist/agents/negotiation.proposer.d.ts +26 -0
- package/dist/agents/negotiation.proposer.d.ts.map +1 -0
- package/dist/agents/negotiation.proposer.js +67 -0
- package/dist/agents/negotiation.proposer.js.map +1 -0
- package/dist/agents/negotiation.responder.d.ts +26 -0
- package/dist/agents/negotiation.responder.d.ts.map +1 -0
- package/dist/agents/negotiation.responder.js +71 -0
- package/dist/agents/negotiation.responder.js.map +1 -0
- package/dist/agents/opportunity.evaluator.d.ts +253 -0
- package/dist/agents/opportunity.evaluator.d.ts.map +1 -0
- package/dist/agents/opportunity.evaluator.js +413 -0
- package/dist/agents/opportunity.evaluator.js.map +1 -0
- package/dist/agents/opportunity.presenter.d.ts +115 -0
- package/dist/agents/opportunity.presenter.d.ts.map +1 -0
- package/dist/agents/opportunity.presenter.js +524 -0
- package/dist/agents/opportunity.presenter.js.map +1 -0
- package/dist/agents/profile.generator.d.ts +67 -0
- package/dist/agents/profile.generator.d.ts.map +1 -0
- package/dist/agents/profile.generator.js +97 -0
- package/dist/agents/profile.generator.js.map +1 -0
- package/dist/agents/profile.hyde.generator.d.ts +43 -0
- package/dist/agents/profile.hyde.generator.d.ts.map +1 -0
- package/dist/agents/profile.hyde.generator.js +113 -0
- package/dist/agents/profile.hyde.generator.js.map +1 -0
- package/dist/agents/suggestion.generator.d.ts +24 -0
- package/dist/agents/suggestion.generator.d.ts.map +1 -0
- package/dist/agents/suggestion.generator.js +96 -0
- package/dist/agents/suggestion.generator.js.map +1 -0
- package/dist/graphs/chat.graph.d.ts +312 -0
- package/dist/graphs/chat.graph.d.ts.map +1 -0
- package/dist/graphs/chat.graph.js +267 -0
- package/dist/graphs/chat.graph.js.map +1 -0
- package/dist/graphs/home.graph.d.ts +180 -0
- package/dist/graphs/home.graph.d.ts.map +1 -0
- package/dist/graphs/home.graph.js +598 -0
- package/dist/graphs/home.graph.js.map +1 -0
- package/dist/graphs/hyde.graph.d.ts +110 -0
- package/dist/graphs/hyde.graph.d.ts.map +1 -0
- package/dist/graphs/hyde.graph.js +235 -0
- package/dist/graphs/hyde.graph.js.map +1 -0
- package/dist/graphs/index.graph.d.ts +620 -0
- package/dist/graphs/index.graph.d.ts.map +1 -0
- package/dist/graphs/index.graph.js +226 -0
- package/dist/graphs/index.graph.js.map +1 -0
- package/dist/graphs/index_membership.graph.d.ts +250 -0
- package/dist/graphs/index_membership.graph.d.ts.map +1 -0
- package/dist/graphs/index_membership.graph.js +204 -0
- package/dist/graphs/index_membership.graph.js.map +1 -0
- package/dist/graphs/intent.graph.d.ts +490 -0
- package/dist/graphs/intent.graph.d.ts.map +1 -0
- package/dist/graphs/intent.graph.js +787 -0
- package/dist/graphs/intent.graph.js.map +1 -0
- package/dist/graphs/intent_index.graph.d.ts +396 -0
- package/dist/graphs/intent_index.graph.d.ts.map +1 -0
- package/dist/graphs/intent_index.graph.js +331 -0
- package/dist/graphs/intent_index.graph.js.map +1 -0
- package/dist/graphs/maintenance.graph.d.ts +177 -0
- package/dist/graphs/maintenance.graph.d.ts.map +1 -0
- package/dist/graphs/maintenance.graph.js +173 -0
- package/dist/graphs/maintenance.graph.js.map +1 -0
- package/dist/graphs/negotiation.graph.d.ts +819 -0
- package/dist/graphs/negotiation.graph.d.ts.map +1 -0
- package/dist/graphs/negotiation.graph.js +255 -0
- package/dist/graphs/negotiation.graph.js.map +1 -0
- package/dist/graphs/opportunity.graph.d.ts +1082 -0
- package/dist/graphs/opportunity.graph.d.ts.map +1 -0
- package/dist/graphs/opportunity.graph.js +2534 -0
- package/dist/graphs/opportunity.graph.js.map +1 -0
- package/dist/graphs/profile.graph.d.ts +617 -0
- package/dist/graphs/profile.graph.d.ts.map +1 -0
- package/dist/graphs/profile.graph.js +839 -0
- package/dist/graphs/profile.graph.js.map +1 -0
- package/dist/graphs/tests/chat.graph.mocks.d.ts +104 -0
- package/dist/graphs/tests/chat.graph.mocks.d.ts.map +1 -0
- package/dist/graphs/tests/chat.graph.mocks.js +225 -0
- package/dist/graphs/tests/chat.graph.mocks.js.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/auth.interface.d.ts +15 -0
- package/dist/interfaces/auth.interface.d.ts.map +1 -0
- package/dist/interfaces/auth.interface.js +2 -0
- package/dist/interfaces/auth.interface.js.map +1 -0
- package/dist/interfaces/cache.interface.d.ts +43 -0
- package/dist/interfaces/cache.interface.d.ts.map +1 -0
- package/dist/interfaces/cache.interface.js +6 -0
- package/dist/interfaces/cache.interface.js.map +1 -0
- package/dist/interfaces/chat-session.interface.d.ts +11 -0
- package/dist/interfaces/chat-session.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-session.interface.js +2 -0
- package/dist/interfaces/chat-session.interface.js.map +1 -0
- package/dist/interfaces/contact.interface.d.ts +48 -0
- package/dist/interfaces/contact.interface.d.ts.map +1 -0
- package/dist/interfaces/contact.interface.js +2 -0
- package/dist/interfaces/contact.interface.js.map +1 -0
- package/dist/interfaces/database.interface.d.ts +1495 -0
- package/dist/interfaces/database.interface.d.ts.map +1 -0
- package/dist/interfaces/database.interface.js +2 -0
- package/dist/interfaces/database.interface.js.map +1 -0
- package/dist/interfaces/embedder.interface.d.ts +85 -0
- package/dist/interfaces/embedder.interface.d.ts.map +1 -0
- package/dist/interfaces/embedder.interface.js +5 -0
- package/dist/interfaces/embedder.interface.js.map +1 -0
- package/dist/interfaces/enrichment.interface.d.ts +40 -0
- package/dist/interfaces/enrichment.interface.d.ts.map +1 -0
- package/dist/interfaces/enrichment.interface.js +2 -0
- package/dist/interfaces/enrichment.interface.js.map +1 -0
- package/dist/interfaces/integration.interface.d.ts +91 -0
- package/dist/interfaces/integration.interface.d.ts.map +1 -0
- package/dist/interfaces/integration.interface.js +2 -0
- package/dist/interfaces/integration.interface.js.map +1 -0
- package/dist/interfaces/queue.interface.d.ts +17 -0
- package/dist/interfaces/queue.interface.d.ts.map +1 -0
- package/dist/interfaces/queue.interface.js +5 -0
- package/dist/interfaces/queue.interface.js.map +1 -0
- package/dist/interfaces/scraper.interface.d.ts +31 -0
- package/dist/interfaces/scraper.interface.d.ts.map +1 -0
- package/dist/interfaces/scraper.interface.js +2 -0
- package/dist/interfaces/scraper.interface.js.map +1 -0
- package/dist/interfaces/storage.interface.d.ts +46 -0
- package/dist/interfaces/storage.interface.d.ts.map +1 -0
- package/dist/interfaces/storage.interface.js +6 -0
- package/dist/interfaces/storage.interface.js.map +1 -0
- package/dist/mcp/mcp.server.d.ts +29 -0
- package/dist/mcp/mcp.server.d.ts.map +1 -0
- package/dist/mcp/mcp.server.js +171 -0
- package/dist/mcp/mcp.server.js.map +1 -0
- package/dist/states/chat.state.d.ts +126 -0
- package/dist/states/chat.state.d.ts.map +1 -0
- package/dist/states/chat.state.js +112 -0
- package/dist/states/chat.state.js.map +1 -0
- package/dist/states/home.state.d.ts +100 -0
- package/dist/states/home.state.d.ts.map +1 -0
- package/dist/states/home.state.js +74 -0
- package/dist/states/home.state.js.map +1 -0
- package/dist/states/hyde.state.d.ts +54 -0
- package/dist/states/hyde.state.d.ts.map +1 -0
- package/dist/states/hyde.state.js +66 -0
- package/dist/states/hyde.state.js.map +1 -0
- package/dist/states/index.state.d.ts +179 -0
- package/dist/states/index.state.d.ts.map +1 -0
- package/dist/states/index.state.js +56 -0
- package/dist/states/index.state.js.map +1 -0
- package/dist/states/index_membership.state.d.ts +77 -0
- package/dist/states/index_membership.state.d.ts.map +1 -0
- package/dist/states/index_membership.state.js +43 -0
- package/dist/states/index_membership.state.js.map +1 -0
- package/dist/states/intent.state.d.ts +203 -0
- package/dist/states/intent.state.d.ts.map +1 -0
- package/dist/states/intent.state.js +153 -0
- package/dist/states/intent.state.js.map +1 -0
- package/dist/states/intent_index.state.d.ts +148 -0
- package/dist/states/intent_index.state.d.ts.map +1 -0
- package/dist/states/intent_index.state.js +100 -0
- package/dist/states/intent_index.state.js.map +1 -0
- package/dist/states/maintenance.state.d.ts +36 -0
- package/dist/states/maintenance.state.d.ts.map +1 -0
- package/dist/states/maintenance.state.js +56 -0
- package/dist/states/maintenance.state.js.map +1 -0
- package/dist/states/negotiation.state.d.ts +230 -0
- package/dist/states/negotiation.state.d.ts.map +1 -0
- package/dist/states/negotiation.state.js +82 -0
- package/dist/states/negotiation.state.js.map +1 -0
- package/dist/states/opportunity.state.d.ts +300 -0
- package/dist/states/opportunity.state.d.ts.map +1 -0
- package/dist/states/opportunity.state.js +207 -0
- package/dist/states/opportunity.state.js.map +1 -0
- package/dist/states/profile.state.d.ts +172 -0
- package/dist/states/profile.state.d.ts.map +1 -0
- package/dist/states/profile.state.js +133 -0
- package/dist/states/profile.state.js.map +1 -0
- package/dist/streamers/chat.streamer.d.ts +55 -0
- package/dist/streamers/chat.streamer.d.ts.map +1 -0
- package/dist/streamers/chat.streamer.js +186 -0
- package/dist/streamers/chat.streamer.js.map +1 -0
- package/dist/streamers/index.d.ts +3 -0
- package/dist/streamers/index.d.ts.map +1 -0
- package/dist/streamers/index.js +3 -0
- package/dist/streamers/index.js.map +1 -0
- package/dist/streamers/response.streamer.d.ts +36 -0
- package/dist/streamers/response.streamer.d.ts.map +1 -0
- package/dist/streamers/response.streamer.js +46 -0
- package/dist/streamers/response.streamer.js.map +1 -0
- package/dist/support/chat.utils.d.ts +42 -0
- package/dist/support/chat.utils.d.ts.map +1 -0
- package/dist/support/chat.utils.js +89 -0
- package/dist/support/chat.utils.js.map +1 -0
- package/dist/support/debug-meta.sanitizer.d.ts +18 -0
- package/dist/support/debug-meta.sanitizer.d.ts.map +1 -0
- package/dist/support/debug-meta.sanitizer.js +82 -0
- package/dist/support/debug-meta.sanitizer.js.map +1 -0
- package/dist/support/feed.health.d.ts +32 -0
- package/dist/support/feed.health.d.ts.map +1 -0
- package/dist/support/feed.health.js +76 -0
- package/dist/support/feed.health.js.map +1 -0
- package/dist/support/introducer.discovery.d.ts +78 -0
- package/dist/support/introducer.discovery.d.ts.map +1 -0
- package/dist/support/introducer.discovery.js +101 -0
- package/dist/support/introducer.discovery.js.map +1 -0
- package/dist/support/log.d.ts +65 -0
- package/dist/support/log.d.ts.map +1 -0
- package/dist/support/log.js +76 -0
- package/dist/support/log.js.map +1 -0
- package/dist/support/lucide.icon-catalog.d.ts +22 -0
- package/dist/support/lucide.icon-catalog.d.ts.map +1 -0
- package/dist/support/lucide.icon-catalog.js +101 -0
- package/dist/support/lucide.icon-catalog.js.map +1 -0
- package/dist/support/opportunity.card-text.d.ts +39 -0
- package/dist/support/opportunity.card-text.d.ts.map +1 -0
- package/dist/support/opportunity.card-text.js +333 -0
- package/dist/support/opportunity.card-text.js.map +1 -0
- package/dist/support/opportunity.constants.d.ts +9 -0
- package/dist/support/opportunity.constants.d.ts.map +1 -0
- package/dist/support/opportunity.constants.js +11 -0
- package/dist/support/opportunity.constants.js.map +1 -0
- package/dist/support/opportunity.discover.d.ts +144 -0
- package/dist/support/opportunity.discover.d.ts.map +1 -0
- package/dist/support/opportunity.discover.js +610 -0
- package/dist/support/opportunity.discover.js.map +1 -0
- package/dist/support/opportunity.enricher.d.ts +44 -0
- package/dist/support/opportunity.enricher.d.ts.map +1 -0
- package/dist/support/opportunity.enricher.js +245 -0
- package/dist/support/opportunity.enricher.js.map +1 -0
- package/dist/support/opportunity.persist.d.ts +39 -0
- package/dist/support/opportunity.persist.d.ts.map +1 -0
- package/dist/support/opportunity.persist.js +63 -0
- package/dist/support/opportunity.persist.js.map +1 -0
- package/dist/support/opportunity.presentation.d.ts +21 -0
- package/dist/support/opportunity.presentation.d.ts.map +1 -0
- package/dist/support/opportunity.presentation.js +75 -0
- package/dist/support/opportunity.presentation.js.map +1 -0
- package/dist/support/opportunity.sanitize.d.ts +18 -0
- package/dist/support/opportunity.sanitize.d.ts.map +1 -0
- package/dist/support/opportunity.sanitize.js +89 -0
- package/dist/support/opportunity.sanitize.js.map +1 -0
- package/dist/support/opportunity.utils.d.ts +99 -0
- package/dist/support/opportunity.utils.d.ts.map +1 -0
- package/dist/support/opportunity.utils.js +184 -0
- package/dist/support/opportunity.utils.js.map +1 -0
- package/dist/support/performance.d.ts +19 -0
- package/dist/support/performance.d.ts.map +1 -0
- package/dist/support/performance.js +43 -0
- package/dist/support/performance.js.map +1 -0
- package/dist/support/profile.enrichment-display-name.d.ts +16 -0
- package/dist/support/profile.enrichment-display-name.d.ts.map +1 -0
- package/dist/support/profile.enrichment-display-name.js +22 -0
- package/dist/support/profile.enrichment-display-name.js.map +1 -0
- package/dist/support/protocol.logger.d.ts +22 -0
- package/dist/support/protocol.logger.d.ts.map +1 -0
- package/dist/support/protocol.logger.js +44 -0
- package/dist/support/protocol.logger.js.map +1 -0
- package/dist/support/request-context.d.ts +19 -0
- package/dist/support/request-context.d.ts.map +1 -0
- package/dist/support/request-context.js +7 -0
- package/dist/support/request-context.js.map +1 -0
- package/dist/tools/contact.tools.d.ts +7 -0
- package/dist/tools/contact.tools.d.ts.map +1 -0
- package/dist/tools/contact.tools.js +115 -0
- package/dist/tools/contact.tools.js.map +1 -0
- package/dist/tools/index.d.ts +17 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +140 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/index.tools.d.ts +3 -0
- package/dist/tools/index.tools.d.ts.map +1 -0
- package/dist/tools/index.tools.js +423 -0
- package/dist/tools/index.tools.js.map +1 -0
- package/dist/tools/integration.tools.d.ts +13 -0
- package/dist/tools/integration.tools.d.ts.map +1 -0
- package/dist/tools/integration.tools.js +77 -0
- package/dist/tools/integration.tools.js.map +1 -0
- package/dist/tools/intent.tools.d.ts +3 -0
- package/dist/tools/intent.tools.d.ts.map +1 -0
- package/dist/tools/intent.tools.js +458 -0
- package/dist/tools/intent.tools.js.map +1 -0
- package/dist/tools/opportunity.tools.d.ts +44 -0
- package/dist/tools/opportunity.tools.d.ts.map +1 -0
- package/dist/tools/opportunity.tools.js +814 -0
- package/dist/tools/opportunity.tools.js.map +1 -0
- package/dist/tools/profile.tools.d.ts +3 -0
- package/dist/tools/profile.tools.d.ts.map +1 -0
- package/dist/tools/profile.tools.js +513 -0
- package/dist/tools/profile.tools.js.map +1 -0
- package/dist/tools/tool.helpers.d.ts +225 -0
- package/dist/tools/tool.helpers.d.ts.map +1 -0
- package/dist/tools/tool.helpers.js +172 -0
- package/dist/tools/tool.helpers.js.map +1 -0
- package/dist/tools/tool.registry.d.ts +12 -0
- package/dist/tools/tool.registry.d.ts.map +1 -0
- package/dist/tools/tool.registry.js +62 -0
- package/dist/tools/tool.registry.js.map +1 -0
- package/dist/tools/utility.tools.d.ts +3 -0
- package/dist/tools/utility.tools.d.ts.map +1 -0
- package/dist/tools/utility.tools.js +107 -0
- package/dist/tools/utility.tools.js.map +1 -0
- package/dist/types/chat-streaming.types.d.ts +472 -0
- package/dist/types/chat-streaming.types.d.ts.map +1 -0
- package/dist/types/chat-streaming.types.js +260 -0
- package/dist/types/chat-streaming.types.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { requestContext } from "../support/request-context.js";
|
|
3
|
+
import { success, error, UUID_REGEX } from "./tool.helpers.js";
|
|
4
|
+
export function createIndexTools(defineTool, deps) {
|
|
5
|
+
const { graphs, userDb, systemDb } = deps;
|
|
6
|
+
const readIndexes = defineTool({
|
|
7
|
+
name: "read_indexes",
|
|
8
|
+
description: "Lists indexes the user is a member of and indexes they own. Optional userId (omit for current user). When chat is index-scoped, returns only that index.",
|
|
9
|
+
querySchema: z.object({
|
|
10
|
+
userId: z.string().optional().describe("Omit for current user."),
|
|
11
|
+
}),
|
|
12
|
+
handler: async ({ context, query }) => {
|
|
13
|
+
if (query.userId && query.userId.trim() !== context.userId) {
|
|
14
|
+
return error("You can only list your own indexes. Omit userId to see the current user's indexes.");
|
|
15
|
+
}
|
|
16
|
+
const _readIndexGraphStart = Date.now();
|
|
17
|
+
const _readIndexTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
18
|
+
_readIndexTraceEmitter?.({ type: "graph_start", name: "index" });
|
|
19
|
+
const result = await graphs.index.invoke({
|
|
20
|
+
userId: context.userId,
|
|
21
|
+
indexId: context.indexId || undefined,
|
|
22
|
+
operationMode: 'read',
|
|
23
|
+
showAll: false, // Never allow bypass - strict scope enforcement
|
|
24
|
+
});
|
|
25
|
+
const _readIndexGraphMs = Date.now() - _readIndexGraphStart;
|
|
26
|
+
_readIndexTraceEmitter?.({ type: "graph_end", name: "index", durationMs: _readIndexGraphMs });
|
|
27
|
+
if (result.error) {
|
|
28
|
+
return error(result.error);
|
|
29
|
+
}
|
|
30
|
+
if (result.readResult) {
|
|
31
|
+
// When scoped, add clear metadata so model knows results are limited
|
|
32
|
+
if (context.indexId) {
|
|
33
|
+
return success({
|
|
34
|
+
...result.readResult,
|
|
35
|
+
_scopeRestriction: {
|
|
36
|
+
isScoped: true,
|
|
37
|
+
scopedToIndex: context.indexName ?? context.indexId,
|
|
38
|
+
message: `Results are limited to "${context.indexName ?? 'this index'}" because this chat is scoped to that community. The user may belong to other communities not shown here.`,
|
|
39
|
+
},
|
|
40
|
+
_graphTimings: [{ name: 'index', durationMs: _readIndexGraphMs, agents: result.agentTimings ?? [] }],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return success({ ...result.readResult, _graphTimings: [{ name: 'index', durationMs: _readIndexGraphMs, agents: result.agentTimings ?? [] }] });
|
|
44
|
+
}
|
|
45
|
+
return error("Failed to fetch index information.");
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const readIndexMemberships = defineTool({
|
|
49
|
+
name: "read_index_memberships",
|
|
50
|
+
description: "Reads index membership data. Two modes: (1) Pass indexId to list all members of that index (returns userId, name, avatar, permissions, intentCount, joinedAt). (2) Pass userId (or omit for current user) to list all indexes that user belongs to (returns indexId, indexTitle, permissions, joinedAt). Pass both to check whether a specific user is in a specific index. When chat is index-scoped, only that index can be queried.",
|
|
51
|
+
querySchema: z.object({
|
|
52
|
+
indexId: z.string().optional().describe("Index UUID — when provided, lists members of this index."),
|
|
53
|
+
userId: z.string().optional().describe("User ID — when provided, lists that user's index memberships. Omit to default to current user."),
|
|
54
|
+
}),
|
|
55
|
+
handler: async ({ context, query }) => {
|
|
56
|
+
const indexId = query.indexId?.trim() || undefined;
|
|
57
|
+
const userId = query.userId?.trim() || undefined;
|
|
58
|
+
if (indexId && !UUID_REGEX.test(indexId)) {
|
|
59
|
+
return error("Invalid index ID format. Use the exact UUID from read_indexes.");
|
|
60
|
+
}
|
|
61
|
+
// Mode 1: list members of an index
|
|
62
|
+
if (indexId && !userId) {
|
|
63
|
+
// Enforce strict scope: when chat is index-scoped, only allow querying that index
|
|
64
|
+
if (context.indexId && indexId !== context.indexId) {
|
|
65
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only query members of this index.`);
|
|
66
|
+
}
|
|
67
|
+
const _readMembersGraphStart = Date.now();
|
|
68
|
+
const _readMembersTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
69
|
+
_readMembersTraceEmitter?.({ type: "graph_start", name: "index_membership" });
|
|
70
|
+
const result = await graphs.indexMembership.invoke({
|
|
71
|
+
userId: context.userId,
|
|
72
|
+
indexId,
|
|
73
|
+
operationMode: 'read',
|
|
74
|
+
});
|
|
75
|
+
const _readMembersGraphMs = Date.now() - _readMembersGraphStart;
|
|
76
|
+
_readMembersTraceEmitter?.({ type: "graph_end", name: "index_membership", durationMs: _readMembersGraphMs });
|
|
77
|
+
if (result.error) {
|
|
78
|
+
return error(result.error);
|
|
79
|
+
}
|
|
80
|
+
if (result.readResult) {
|
|
81
|
+
return success({ ...result.readResult, _graphTimings: [{ name: 'index_membership', durationMs: _readMembersGraphMs, agents: result.agentTimings ?? [] }] });
|
|
82
|
+
}
|
|
83
|
+
return error("Failed to fetch index members.");
|
|
84
|
+
}
|
|
85
|
+
// Mode 2: list a user's memberships (indexes they belong to)
|
|
86
|
+
const targetUserId = userId || context.userId;
|
|
87
|
+
// Use userDb for own memberships, but systemDb access is implicit through shared index scope
|
|
88
|
+
let memberships;
|
|
89
|
+
if (targetUserId !== context.userId) {
|
|
90
|
+
// Cross-user access: systemDb will validate shared index membership
|
|
91
|
+
const callerMemberships = await userDb.getIndexMemberships();
|
|
92
|
+
if (indexId) {
|
|
93
|
+
// Strict scope enforcement: when chat is index-scoped, only allow querying that index
|
|
94
|
+
if (context.indexId && indexId !== context.indexId) {
|
|
95
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only query membership in this community.`);
|
|
96
|
+
}
|
|
97
|
+
const callerInIndex = callerMemberships.some((m) => m.indexId === indexId);
|
|
98
|
+
if (!callerInIndex) {
|
|
99
|
+
return error("Unauthorized: you can only view another user's membership in an index you belong to. Provide your own userId or omit userId for your memberships.");
|
|
100
|
+
}
|
|
101
|
+
// Check if target user is in the index (systemDb validates scope)
|
|
102
|
+
const isMember = await systemDb.isIndexMember(indexId, targetUserId);
|
|
103
|
+
if (isMember) {
|
|
104
|
+
return success({ isMember: true, userId: targetUserId, indexId });
|
|
105
|
+
}
|
|
106
|
+
return success({ isMember: false, userId: targetUserId, indexId, message: "User is not a member of this index." });
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Strict scope enforcement: when chat is index-scoped, only check the scoped index
|
|
110
|
+
if (context.indexId) {
|
|
111
|
+
const isMember = await systemDb.isIndexMember(context.indexId, targetUserId);
|
|
112
|
+
if (isMember) {
|
|
113
|
+
return success({
|
|
114
|
+
isMember: true,
|
|
115
|
+
userId: targetUserId,
|
|
116
|
+
indexId: context.indexId,
|
|
117
|
+
_scopeRestriction: {
|
|
118
|
+
isScoped: true,
|
|
119
|
+
scopedToIndex: context.indexName ?? context.indexId,
|
|
120
|
+
message: `This chat is scoped to "${context.indexName ?? 'this index'}". Only membership in this community is shown.`,
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return success({
|
|
125
|
+
isMember: false,
|
|
126
|
+
userId: targetUserId,
|
|
127
|
+
indexId: context.indexId,
|
|
128
|
+
message: "User is not a member of this community.",
|
|
129
|
+
_scopeRestriction: {
|
|
130
|
+
isScoped: true,
|
|
131
|
+
scopedToIndex: context.indexName ?? context.indexId,
|
|
132
|
+
message: `This chat is scoped to "${context.indexName ?? 'this index'}". Only membership in this community was checked.`,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// Unscoped chat: show overlap with shared indexes (intersection of caller and target memberships)
|
|
137
|
+
const sharedIndexes = [];
|
|
138
|
+
for (const m of callerMemberships) {
|
|
139
|
+
if (await systemDb.isIndexMember(m.indexId, targetUserId)) {
|
|
140
|
+
sharedIndexes.push(m);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (sharedIndexes.length === 0) {
|
|
144
|
+
return error("Unauthorized: you can only view another user's memberships if you share at least one index, or request your own memberships.");
|
|
145
|
+
}
|
|
146
|
+
// Return only the indexes that are shared
|
|
147
|
+
return success({
|
|
148
|
+
userId: targetUserId,
|
|
149
|
+
count: sharedIndexes.length,
|
|
150
|
+
memberships: sharedIndexes.map((m) => ({
|
|
151
|
+
indexId: m.indexId,
|
|
152
|
+
indexTitle: m.indexTitle,
|
|
153
|
+
})),
|
|
154
|
+
note: "Only showing shared indexes.",
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Own memberships - use userDb
|
|
160
|
+
memberships = await userDb.getIndexMemberships();
|
|
161
|
+
// Strict scope enforcement: when chat is index-scoped, only return the scoped index membership
|
|
162
|
+
if (context.indexId && !indexId) {
|
|
163
|
+
memberships = memberships.filter((m) => m.indexId === context.indexId);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// If both indexId and userId: filter to that specific membership
|
|
167
|
+
if (indexId) {
|
|
168
|
+
// Strict scope enforcement: when chat is index-scoped, only allow querying that index
|
|
169
|
+
if (context.indexId && indexId !== context.indexId) {
|
|
170
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only query membership in this community.`);
|
|
171
|
+
}
|
|
172
|
+
const callerMemberships = await userDb.getIndexMemberships();
|
|
173
|
+
const callerInIndex = targetUserId === context.userId ||
|
|
174
|
+
callerMemberships.some((m) => m.indexId === indexId);
|
|
175
|
+
if (!callerInIndex) {
|
|
176
|
+
return error("Unauthorized: you can only view membership in an index you belong to.");
|
|
177
|
+
}
|
|
178
|
+
const match = memberships.find((m) => m.indexId === indexId);
|
|
179
|
+
if (!match) {
|
|
180
|
+
return success({ isMember: false, userId: targetUserId, indexId, message: "User is not a member of this index." });
|
|
181
|
+
}
|
|
182
|
+
return success({
|
|
183
|
+
isMember: true,
|
|
184
|
+
userId: targetUserId,
|
|
185
|
+
indexId,
|
|
186
|
+
indexTitle: match.indexTitle,
|
|
187
|
+
permissions: match.permissions,
|
|
188
|
+
joinedAt: match.joinedAt,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
// When scoped, add clear metadata so model knows results are limited
|
|
192
|
+
if (context.indexId && targetUserId === context.userId) {
|
|
193
|
+
return success({
|
|
194
|
+
userId: targetUserId,
|
|
195
|
+
count: memberships.length,
|
|
196
|
+
memberships: memberships.map((m) => ({
|
|
197
|
+
indexId: m.indexId,
|
|
198
|
+
indexTitle: m.indexTitle,
|
|
199
|
+
permissions: m.permissions,
|
|
200
|
+
joinedAt: m.joinedAt,
|
|
201
|
+
})),
|
|
202
|
+
_scopeRestriction: {
|
|
203
|
+
isScoped: true,
|
|
204
|
+
scopedToIndex: context.indexName ?? context.indexId,
|
|
205
|
+
message: `Results are limited to "${context.indexName ?? 'this index'}" because this chat is scoped to that community. The user may belong to other communities not shown here.`,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
return success({
|
|
210
|
+
userId: targetUserId,
|
|
211
|
+
count: memberships.length,
|
|
212
|
+
memberships: memberships.map((m) => ({
|
|
213
|
+
indexId: m.indexId,
|
|
214
|
+
indexTitle: m.indexTitle,
|
|
215
|
+
permissions: m.permissions,
|
|
216
|
+
joinedAt: m.joinedAt,
|
|
217
|
+
})),
|
|
218
|
+
});
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
const updateIndexSettingsSchema = z.object({
|
|
222
|
+
title: z.string().optional(),
|
|
223
|
+
prompt: z.string().nullable().optional(),
|
|
224
|
+
imageUrl: z.string().url().nullable().optional(),
|
|
225
|
+
joinPolicy: z.enum(['anyone', 'invite_only']).optional(),
|
|
226
|
+
allowGuestVibeCheck: z.boolean().optional(),
|
|
227
|
+
}).strict();
|
|
228
|
+
const updateIndex = defineTool({
|
|
229
|
+
name: "update_index",
|
|
230
|
+
description: "Updates an index (owner only). Pass indexId or omit when index-scoped.",
|
|
231
|
+
querySchema: z.object({
|
|
232
|
+
indexId: z.string().optional().describe("Index UUID; defaults to current index when scoped."),
|
|
233
|
+
settings: updateIndexSettingsSchema.describe("Fields to update: title?, prompt?, imageUrl?, joinPolicy?, allowGuestVibeCheck?"),
|
|
234
|
+
}),
|
|
235
|
+
handler: async ({ context, query }) => {
|
|
236
|
+
const effectiveIndexId = (query.indexId?.trim() || context.indexId) ?? null;
|
|
237
|
+
if (!effectiveIndexId || !UUID_REGEX.test(effectiveIndexId)) {
|
|
238
|
+
return error("Valid indexId required.");
|
|
239
|
+
}
|
|
240
|
+
// Strict scope enforcement: when chat is index-scoped, only allow updating that index
|
|
241
|
+
if (context.indexId && effectiveIndexId !== context.indexId) {
|
|
242
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only update this community's settings.`);
|
|
243
|
+
}
|
|
244
|
+
const _updateIndexGraphStart = Date.now();
|
|
245
|
+
const _updateIndexTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
246
|
+
_updateIndexTraceEmitter?.({ type: "graph_start", name: "index" });
|
|
247
|
+
const result = await graphs.index.invoke({
|
|
248
|
+
userId: context.userId,
|
|
249
|
+
indexId: effectiveIndexId,
|
|
250
|
+
operationMode: 'update',
|
|
251
|
+
updateInput: query.settings,
|
|
252
|
+
});
|
|
253
|
+
const _updateIndexGraphMs = Date.now() - _updateIndexGraphStart;
|
|
254
|
+
_updateIndexTraceEmitter?.({ type: "graph_end", name: "index", durationMs: _updateIndexGraphMs });
|
|
255
|
+
if (result.mutationResult && !result.mutationResult.success) {
|
|
256
|
+
return error(result.mutationResult.error || "Failed to update index.");
|
|
257
|
+
}
|
|
258
|
+
return success({ message: "Index updated.", settings: Object.keys(query.settings), _graphTimings: [{ name: 'index', durationMs: _updateIndexGraphMs, agents: result.agentTimings ?? [] }] });
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
const createIndex = defineTool({
|
|
262
|
+
name: "create_index",
|
|
263
|
+
description: "Creates a new index (community). You become the owner. Pass title; optional prompt, imageUrl, and joinPolicy ('anyone' | 'invite_only').",
|
|
264
|
+
querySchema: z.object({
|
|
265
|
+
title: z.string().describe("Display name of the index"),
|
|
266
|
+
prompt: z.string().optional().describe("What the community is about"),
|
|
267
|
+
imageUrl: z.string().url().optional().describe("URL of the index image (optional)"),
|
|
268
|
+
joinPolicy: z.enum(['anyone', 'invite_only']).optional().describe("Who can join; default invite_only"),
|
|
269
|
+
}),
|
|
270
|
+
handler: async ({ context, query }) => {
|
|
271
|
+
if (!query.title?.trim()) {
|
|
272
|
+
return error("Title is required.");
|
|
273
|
+
}
|
|
274
|
+
const _createIndexGraphStart = Date.now();
|
|
275
|
+
const _createIndexTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
276
|
+
_createIndexTraceEmitter?.({ type: "graph_start", name: "index" });
|
|
277
|
+
const result = await graphs.index.invoke({
|
|
278
|
+
userId: context.userId,
|
|
279
|
+
operationMode: 'create',
|
|
280
|
+
createInput: {
|
|
281
|
+
title: query.title.trim(),
|
|
282
|
+
prompt: query.prompt?.trim() || undefined,
|
|
283
|
+
imageUrl: query.imageUrl || undefined,
|
|
284
|
+
joinPolicy: query.joinPolicy,
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
const _createIndexGraphMs = Date.now() - _createIndexGraphStart;
|
|
288
|
+
_createIndexTraceEmitter?.({ type: "graph_end", name: "index", durationMs: _createIndexGraphMs });
|
|
289
|
+
if (result.mutationResult) {
|
|
290
|
+
if (result.mutationResult.success) {
|
|
291
|
+
return success({
|
|
292
|
+
created: true,
|
|
293
|
+
indexId: result.mutationResult.indexId,
|
|
294
|
+
title: result.mutationResult.title,
|
|
295
|
+
message: result.mutationResult.message,
|
|
296
|
+
_graphTimings: [{ name: 'index', durationMs: _createIndexGraphMs, agents: result.agentTimings ?? [] }],
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
return error(result.mutationResult.error || "Failed to create index.");
|
|
300
|
+
}
|
|
301
|
+
return error("Failed to create index.");
|
|
302
|
+
},
|
|
303
|
+
});
|
|
304
|
+
const deleteIndex = defineTool({
|
|
305
|
+
name: "delete_index",
|
|
306
|
+
description: "Deletes an index (owner only, must be sole member). When chat is index-scoped, can only delete that index.",
|
|
307
|
+
querySchema: z.object({
|
|
308
|
+
indexId: z.string().optional().describe("Index UUID from read_indexes. Defaults to current index when scoped."),
|
|
309
|
+
}),
|
|
310
|
+
handler: async ({ context, query }) => {
|
|
311
|
+
const indexId = query.indexId?.trim() || context.indexId;
|
|
312
|
+
if (!indexId || !UUID_REGEX.test(indexId)) {
|
|
313
|
+
return error("Valid indexId required.");
|
|
314
|
+
}
|
|
315
|
+
// Strict scope enforcement: when chat is index-scoped, only allow deleting that index
|
|
316
|
+
if (context.indexId && indexId !== context.indexId) {
|
|
317
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only delete this community.`);
|
|
318
|
+
}
|
|
319
|
+
const _deleteIndexGraphStart = Date.now();
|
|
320
|
+
const _deleteIndexTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
321
|
+
_deleteIndexTraceEmitter?.({ type: "graph_start", name: "index" });
|
|
322
|
+
const result = await graphs.index.invoke({
|
|
323
|
+
userId: context.userId,
|
|
324
|
+
indexId,
|
|
325
|
+
operationMode: 'delete',
|
|
326
|
+
});
|
|
327
|
+
const _deleteIndexGraphMs = Date.now() - _deleteIndexGraphStart;
|
|
328
|
+
_deleteIndexTraceEmitter?.({ type: "graph_end", name: "index", durationMs: _deleteIndexGraphMs });
|
|
329
|
+
if (result.mutationResult && !result.mutationResult.success) {
|
|
330
|
+
return error(result.mutationResult.error || "Failed to delete index.");
|
|
331
|
+
}
|
|
332
|
+
return success({ message: "Index deleted.", _graphTimings: [{ name: 'index', durationMs: _deleteIndexGraphMs, agents: result.agentTimings ?? [] }] });
|
|
333
|
+
},
|
|
334
|
+
});
|
|
335
|
+
const createIndexMembership = defineTool({
|
|
336
|
+
name: "create_index_membership",
|
|
337
|
+
description: "Adds a user as a member of an index. Omit userId to join the index yourself (self-join works only for public indexes with joinPolicy 'anyone'). For invite_only indexes only the owner can add members.",
|
|
338
|
+
querySchema: z.object({
|
|
339
|
+
userId: z.string().optional().describe("User ID to add as a member. Omit to join the index yourself."),
|
|
340
|
+
indexId: z.string().optional().describe("Index UUID from read_indexes. Defaults to current index when scoped."),
|
|
341
|
+
}),
|
|
342
|
+
handler: async ({ context, query }) => {
|
|
343
|
+
const indexId = query.indexId?.trim() || context.indexId;
|
|
344
|
+
const targetUserId = query.userId?.trim() || context.userId;
|
|
345
|
+
if (!indexId || !UUID_REGEX.test(indexId)) {
|
|
346
|
+
return error("Invalid index ID format. Use the exact UUID from read_indexes.");
|
|
347
|
+
}
|
|
348
|
+
// Strict scope enforcement: when chat is index-scoped, only allow adding to that index
|
|
349
|
+
if (context.indexId && indexId !== context.indexId) {
|
|
350
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only add members to this community.`);
|
|
351
|
+
}
|
|
352
|
+
const _createMembershipGraphStart = Date.now();
|
|
353
|
+
const _createMembershipTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
354
|
+
_createMembershipTraceEmitter?.({ type: "graph_start", name: "index_membership" });
|
|
355
|
+
const result = await graphs.indexMembership.invoke({
|
|
356
|
+
userId: context.userId,
|
|
357
|
+
indexId,
|
|
358
|
+
targetUserId,
|
|
359
|
+
operationMode: 'create',
|
|
360
|
+
});
|
|
361
|
+
const _createMembershipGraphMs = Date.now() - _createMembershipGraphStart;
|
|
362
|
+
_createMembershipTraceEmitter?.({ type: "graph_end", name: "index_membership", durationMs: _createMembershipGraphMs });
|
|
363
|
+
if (result.mutationResult) {
|
|
364
|
+
if (result.mutationResult.success) {
|
|
365
|
+
const alreadyMember = result.mutationResult.message?.includes("already");
|
|
366
|
+
return success({
|
|
367
|
+
created: !alreadyMember,
|
|
368
|
+
message: result.mutationResult.message,
|
|
369
|
+
_graphTimings: [{ name: 'index_membership', durationMs: _createMembershipGraphMs, agents: result.agentTimings ?? [] }],
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
return error(result.mutationResult.error || "Failed to add member.");
|
|
373
|
+
}
|
|
374
|
+
return error("Failed to add member.");
|
|
375
|
+
},
|
|
376
|
+
});
|
|
377
|
+
const deleteIndexMembership = defineTool({
|
|
378
|
+
name: "delete_index_membership",
|
|
379
|
+
description: "Removes a user from an index. Only the index owner can remove members. Cannot remove the owner themselves.",
|
|
380
|
+
querySchema: z.object({
|
|
381
|
+
userId: z.string().describe("User ID to remove from the index"),
|
|
382
|
+
indexId: z.string().optional().describe("Index UUID. Defaults to current index when scoped."),
|
|
383
|
+
}),
|
|
384
|
+
handler: async ({ context, query }) => {
|
|
385
|
+
const indexId = query.indexId?.trim() || context.indexId;
|
|
386
|
+
const targetUserId = query.userId?.trim();
|
|
387
|
+
if (!indexId || !UUID_REGEX.test(indexId)) {
|
|
388
|
+
return error("Valid indexId required. Use the exact UUID from read_indexes.");
|
|
389
|
+
}
|
|
390
|
+
if (!targetUserId) {
|
|
391
|
+
return error("userId is required.");
|
|
392
|
+
}
|
|
393
|
+
// Strict scope enforcement: when chat is index-scoped, only allow that index
|
|
394
|
+
if (context.indexId && indexId !== context.indexId) {
|
|
395
|
+
return error(`This chat is scoped to ${context.indexName ?? 'this index'}. You can only manage members of this community.`);
|
|
396
|
+
}
|
|
397
|
+
const _deleteMembershipGraphStart = Date.now();
|
|
398
|
+
const _deleteMembershipTraceEmitter = requestContext.getStore()?.traceEmitter;
|
|
399
|
+
_deleteMembershipTraceEmitter?.({ type: "graph_start", name: "index_membership" });
|
|
400
|
+
const result = await graphs.indexMembership.invoke({
|
|
401
|
+
userId: context.userId,
|
|
402
|
+
indexId,
|
|
403
|
+
targetUserId,
|
|
404
|
+
operationMode: 'delete',
|
|
405
|
+
});
|
|
406
|
+
const _deleteMembershipGraphMs = Date.now() - _deleteMembershipGraphStart;
|
|
407
|
+
_deleteMembershipTraceEmitter?.({ type: "graph_end", name: "index_membership", durationMs: _deleteMembershipGraphMs });
|
|
408
|
+
if (result.mutationResult) {
|
|
409
|
+
if (result.mutationResult.success) {
|
|
410
|
+
return success({
|
|
411
|
+
removed: true,
|
|
412
|
+
message: result.mutationResult.message,
|
|
413
|
+
_graphTimings: [{ name: 'index_membership', durationMs: _deleteMembershipGraphMs, agents: result.agentTimings ?? [] }],
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
return error(result.mutationResult.error || "Failed to remove member.");
|
|
417
|
+
}
|
|
418
|
+
return error("Failed to remove member.");
|
|
419
|
+
},
|
|
420
|
+
});
|
|
421
|
+
return [readIndexes, readIndexMemberships, updateIndex, createIndex, deleteIndex, createIndexMembership, deleteIndexMembership];
|
|
422
|
+
}
|
|
423
|
+
//# sourceMappingURL=index.tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.tools.js","sourceRoot":"","sources":["../../src/tools/index.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DefineTool, ToolDeps } from './tool.helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates integration tools for the chat agent.
|
|
4
|
+
*
|
|
5
|
+
* Exposes `import_gmail_contacts` which authenticates via the integration adapter,
|
|
6
|
+
* fetches all Gmail contacts (paginated), and imports them as ghost users into the network.
|
|
7
|
+
*
|
|
8
|
+
* @param defineTool - Tool definition helper injected by the tool registry.
|
|
9
|
+
* @param deps - Shared tool dependencies including the integration adapter.
|
|
10
|
+
* @returns An array of tool definitions to register with the chat agent.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createIntegrationTools(defineTool: DefineTool, deps: ToolDeps): any[];
|
|
13
|
+
//# sourceMappingURL=integration.tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.tools.d.ts","sourceRoot":"","sources":["../../src/tools/integration.tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO9D;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,SAmE5E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { success, error } from './tool.helpers.js';
|
|
3
|
+
import { requestContext } from "../support/request-context.js";
|
|
4
|
+
import { log } from '../support/log.js';
|
|
5
|
+
const logger = log.lib.from('integration.tools');
|
|
6
|
+
/**
|
|
7
|
+
* Creates integration tools for the chat agent.
|
|
8
|
+
*
|
|
9
|
+
* Exposes `import_gmail_contacts` which authenticates via the integration adapter,
|
|
10
|
+
* fetches all Gmail contacts (paginated), and imports them as ghost users into the network.
|
|
11
|
+
*
|
|
12
|
+
* @param defineTool - Tool definition helper injected by the tool registry.
|
|
13
|
+
* @param deps - Shared tool dependencies including the integration adapter.
|
|
14
|
+
* @returns An array of tool definitions to register with the chat agent.
|
|
15
|
+
*/
|
|
16
|
+
export function createIntegrationTools(defineTool, deps) {
|
|
17
|
+
const { integration, integrationImporter } = deps;
|
|
18
|
+
const import_gmail_contacts = defineTool({
|
|
19
|
+
name: 'import_gmail_contacts',
|
|
20
|
+
description: `Import contacts from the user's Gmail/Google account into their network.
|
|
21
|
+
|
|
22
|
+
If the user hasn't connected their Gmail account yet, returns an auth URL they need to visit first.
|
|
23
|
+
|
|
24
|
+
After successful import, contacts are added to the user's network as ghost users
|
|
25
|
+
(enriched with public profile data) and can be matched in opportunity discovery.
|
|
26
|
+
|
|
27
|
+
Returns import statistics or an auth URL if authentication is needed.`,
|
|
28
|
+
querySchema: z.object({}),
|
|
29
|
+
handler: async ({ context }) => {
|
|
30
|
+
try {
|
|
31
|
+
const session = await integration.createSession(context.userId);
|
|
32
|
+
const toolkits = await session.toolkits();
|
|
33
|
+
const gmailToolkit = toolkits.items.find(t => t.slug === 'gmail');
|
|
34
|
+
const isConnected = !!gmailToolkit?.connection?.connectedAccount?.id;
|
|
35
|
+
if (!isConnected) {
|
|
36
|
+
logger.info('Gmail not connected, returning auth URL', { userId: context.userId });
|
|
37
|
+
const originUrl = requestContext.getStore()?.originUrl;
|
|
38
|
+
const callbackUrl = originUrl ? `${originUrl}/oauth/callback` : undefined;
|
|
39
|
+
const authRequest = await session.authorize('gmail', callbackUrl ? { callbackUrl } : undefined);
|
|
40
|
+
return success({
|
|
41
|
+
requiresAuth: true,
|
|
42
|
+
message: 'Please connect your Gmail account to import contacts.',
|
|
43
|
+
authUrl: authRequest.redirectUrl,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const importResult = await integrationImporter.importContacts(context.userId, 'gmail');
|
|
47
|
+
logger.info('Gmail contacts imported', {
|
|
48
|
+
userId: context.userId,
|
|
49
|
+
imported: importResult.imported,
|
|
50
|
+
skipped: importResult.skipped,
|
|
51
|
+
newContacts: importResult.newContacts,
|
|
52
|
+
existingContacts: importResult.existingContacts,
|
|
53
|
+
});
|
|
54
|
+
return success({
|
|
55
|
+
message: importResult.newContacts > 0
|
|
56
|
+
? `Imported ${importResult.imported} contacts from Gmail. ${importResult.newContacts} new, ${importResult.existingContacts} already in your network.`
|
|
57
|
+
: importResult.imported > 0
|
|
58
|
+
? `All ${importResult.imported} contacts from Gmail were already in your network. No new contacts added.`
|
|
59
|
+
: 'No contacts with valid name and email found in your Gmail account.',
|
|
60
|
+
imported: importResult.imported,
|
|
61
|
+
newContacts: importResult.newContacts,
|
|
62
|
+
existingContacts: importResult.existingContacts,
|
|
63
|
+
skipped: importResult.skipped,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
logger.error('import_gmail_contacts failed', {
|
|
68
|
+
userId: context.userId,
|
|
69
|
+
error: err instanceof Error ? err.message : String(err),
|
|
70
|
+
});
|
|
71
|
+
return error(`Failed to import Gmail contacts: ${err instanceof Error ? err.message : String(err)}`);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
return [import_gmail_contacts];
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=integration.tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.tools.js","sourceRoot":"","sources":["../../src/tools/integration.tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent.tools.d.ts","sourceRoot":"","sources":["../../src/tools/intent.tools.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA0B9D,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,gDA6fvE"}
|