import type { DefineTool } from "../../shared/agent/tool.helpers.js"; import type { NetworkToolDeps } from "../../capabilities/communities.tools.port.js"; /** * Creates all community (network) lifecycle and membership tools. * * ## Exposed tools * * Foreground (participant-directed): * - `read_networks` — list joined networks, owned networks, and public networks. * - `read_network_memberships` — query membership: list members, check membership, or * list the user's memberships. * - `create_network` — create a new network; caller becomes owner. * - `update_network` — update settings (title, prompt, imageUrl, joinPolicy); owner-only. * - `delete_network` — soft-delete (owner-only; network must have no other members). * - `create_network_membership` — add a member (self-join or owner-invite). * - `delete_network_membership` — remove a member (owner-only). * * Automatic assignment of intents to networks is handled by IntentNetworkGraphFactory * (ambient) — these foreground tools only manage network and membership lifecycle. * * ## Scope enforcement * * In network-scoped chats, all tools validate that the requested networkId matches * the scoped network. Cross-scope mutations are rejected with a clear error. * * ## Onboarding ranking * * `read_networks` includes an onboarding-only `orderedNetworkIds` list when * `context.isOnboarding` is true and public networks are available. Ranking is * performed by `NetworkRecommender` (ambient LLM agent) or a `deps.networkRanker` * override, with graceful degradation if ranking fails. * * IND-546: canonical home — previously network/network.tools.ts. */ export declare function createNetworkTools(defineTool: DefineTool, deps: NetworkToolDeps): readonly [any, any, any, any, any, any, any];