import { ToolRegistry } from './registry.js'; import type { Tool } from '../types/tools.js'; import { FileStateCache } from '../state/file-cache.js'; import { ProjectIndex } from '../state/project-index.js'; import { ModeManager } from '../state/mode-manager.js'; import { FileUndoManager } from '../state/file-undo.js'; import type { ConfigManager } from '../config/manager.js'; import type { ProviderRegistry } from '../providers/registry.js'; import type { ToolLLM } from '../config/tool-llm.js'; import { ContextAccountingHolder } from './context-accounting/index.js'; import type { CredentialEnvScrubConfig } from './exec/credential-env.js'; import { type ExecPromptAsk, type ExecPromptAnswer } from './exec/interactive.js'; import type { ExecContainmentRequirement } from './exec/containment.js'; import type { OwnerTerminalGuard } from './exec/owner-terminal-guard.js'; import { createWorkflowServices } from './workflow/index.js'; import { ProcessManager } from './shared/process-manager.js'; import type { AgentManager } from './agent/index.js'; import { AgentMessageBus } from '../agents/message-bus.js'; import type { WrfcController } from '../agents/wrfc-controller.js'; import type { WebSearchService } from '../web-search/index.js'; import type { ChannelPluginRegistry } from '../channels/index.js'; import type { RemoteRunnerRegistry } from '../runtime/remote/index.js'; import { CrossSessionTaskRegistry } from '../sessions/orchestration/index.js'; import type { SandboxSessionRegistry } from '../runtime/sandbox/session-registry.js'; import type { FeatureFlagManager } from '../runtime/feature-flags/index.js'; import type { ServiceRegistry } from '../config/service-registry.js'; import type { SecretsManager } from '../config/secrets.js'; import { OverflowHandler } from './shared/overflow.js'; import type { SessionChangeTracker } from '../sessions/change-tracker.js'; import type { ArchetypeLoader } from '../agents/archetypes.js'; export { applyRoutedConfigWrite, localStorePathForKey, readRoutedConfigValue, readRoutedConfigValues, resolveRouterDeps, } from './goodvibes-runtime/config-routing.js'; export type { ConfigReadResult, ConfigRoutingOptions, ConfigValueOrigin, RoutedConfigRead, RoutedConfigWrite, UnavailableConfigRead, } from './goodvibes-runtime/config-routing.js'; export { ToolRegistry } from './registry.js'; export { ProcessManager } from './shared/process-manager.js'; export type { BackgroundProcess, BgCommandResult, SpawnOptions } from './shared/process-manager.js'; export { AGENT_TEMPLATES, AgentManager } from './agent/index.js'; export type { AgentExecutor, AgentRecord } from './agent/index.js'; export { AutoHealer, } from './shared/auto-heal.js'; export { appendSchemaFingerprint, computeSchemaFingerprint, computeSchemaFingerprintSync, getSchemaShapeId, SCHEMA_SHAPE_IDS, } from './shared/schema-fingerprint.js'; export type { SchemaFingerprintMeta } from './shared/schema-fingerprint.js'; export { OverflowHandler, createSpillBackend } from './shared/overflow.js'; export { DiagnosticsBackend, FileBackend, LedgerBackend, overflowCleanup, } from './shared/overflow.js'; export type { OverflowHandlerConfig, OverflowOptions, OverflowResult, RetentionPolicyConfig, SpillBackend, SpillBackendType, SpillEntry, } from './shared/overflow.js'; export { WORKFLOW_DEFINITIONS, TriggerManager, WorkflowManager, ScheduleManager, createWorkflowServices, createWorkflowTool, parseInterval, } from './workflow/index.js'; export type { TriggerDefinition, WorkflowServices } from './workflow/index.js'; export { loadSkillByTrigger } from './registry-tool/skill-loader.js'; export type { SkillLoaderRoots } from './registry-tool/skill-loader.js'; export { ReadTool } from './read/index.js'; export { createWriteTool } from './write/index.js'; export { createEditTool } from './edit/index.js'; export { createRepoMapTool } from './repo-map/index.js'; export { ContextAccountingHolder, createContextAccountingTool, } from './context-accounting/index.js'; export type { ContextAccountingSource, ContextTokenState, } from './context-accounting/index.js'; export type { EditToolOptions } from './edit/index.js'; export type { EditItem, EditInput } from './edit/types.js'; export { createFindTool } from './find/index.js'; export { createExecTool } from './exec/index.js'; export type { ExecSandboxConfig, ExecSandboxRuntime, ExecSandboxPlan, SandboxAvailability, SandboxHostProbe, SandboxNetworkState, BwrapArgvInput, ResolveSandboxPlanInput, } from './exec/sandbox.js'; export type { ExecInteractionRuntime, ExecPromptAsk, ExecPromptAnswer, PtyAvailability, PtyHostProbe, } from './exec/interactive.js'; export { decideExecContainment, } from './exec/containment.js'; export type { ExecContainmentPosture, ExecContainmentRequirement, ExecContainmentDecision, } from './exec/containment.js'; export { decideOwnerTerminalAccess, PLATFORM_TMUX_SESSION_PREFIX, } from './exec/owner-terminal-guard.js'; export type { OwnerTerminalGuard, OwnerTerminalGuardPosture, OwnerTerminalDecision, } from './exec/owner-terminal-guard.js'; export { formatDenialResponse, guardExecCommand } from './exec/ast-guard.js'; export { createAnalyzeTool } from './analyze/index.js'; export { InspectTool } from './inspect/index.js'; export { createAgentTool } from './agent/index.js'; export { cancelAllAgentRuns, type CancellableAgentRuns } from './agent/index.js'; export { createChannelTool } from './channel/index.js'; export { registerChannelAgentTools } from './channel/agent-tools.js'; export { controlTool } from './control/index.js'; export { createFetchTool } from './fetch/index.js'; export { applySanitizer, resolveSanitizeMode } from './fetch/sanitizer.js'; export type { SanitizeMode } from './fetch/sanitizer.js'; export { TRUST_TIER_EVENTS, classifyHostTrustTier, extractHostname, } from './fetch/trust-tiers.js'; export type { TrustTierConfig } from './fetch/trust-tiers.js'; export { repairToolCall } from './auto-repair.js'; export { createMcpTool } from './mcp/index.js'; export { createPacketTool } from './packet/index.js'; export { createQueryTool } from './query/index.js'; export { createRegistryTool } from './registry-tool/index.js'; export { createRemoteTool } from './remote-trigger/index.js'; export { createReplTool } from './repl/index.js'; export { createStateTool } from './state/index.js'; export { createTaskTool } from './task/index.js'; export { createTeamTool } from './team/index.js'; export { createWebSearchTool } from './web-search/index.js'; export { createWorklistTool } from './worklist/index.js'; type ToolContractFeatureFlags = Pick; export declare function registerToolWithContractGate(registry: ToolRegistry, tool: Tool, featureFlags?: ToolContractFeatureFlags | null): void; /** * Register all built-in tools into the given registry. * Creates shared FileStateCache and ProjectIndex instances so read/write/edit * tools share cache state within a session. */ export declare function registerAllTools(registry: ToolRegistry, deps?: { fileCache?: FileStateCache | undefined; projectIndex?: ProjectIndex | undefined; fileUndoManager: FileUndoManager; modeManager: ModeManager; processManager: ProcessManager; agentManager?: AgentManager | undefined; agentMessageBus: AgentMessageBus; wrfcController?: WrfcController | undefined; webSearchService?: WebSearchService | undefined; channelRegistry?: ChannelPluginRegistry | null | undefined; remoteRunnerRegistry?: RemoteRunnerRegistry | undefined; workflowServices: ReturnType; mcpRegistry?: import('../mcp/registry.js').McpRegistry | undefined; sessionOrchestration?: CrossSessionTaskRegistry | undefined; /** * Resolves the host's real runtime session id, called fresh on each task-tool * invocation. Without it the task tool writes every ref into the unowned * legacy namespace and owner-existence reaping over the task graph cannot * run, the bounds still apply, but nothing is keyed to a real session. */ resolveSessionId?: (() => string) | undefined; sandboxSessionRegistry?: SandboxSessionRegistry | undefined; workingDirectory: string; surfaceRoot: string; /** * How the settings tools reach the runtime that OWNS a given key. Without * it a client writes daemon-owned settings into its own store, where they * configure nothing, and reads them back from that same store, where they * look unset. Hosts that embed or can reach a daemon should supply this. */ configRouting?: import('./goodvibes-runtime/config-routing.js').ConfigRoutingOptions | undefined; archetypeLoader?: Pick | undefined; configManager?: ConfigManager | undefined; providerRegistry?: ProviderRegistry | undefined; toolLLM?: ToolLLM | undefined; featureFlags?: Pick | null | undefined; serviceRegistry?: Pick | null | undefined; secretsManager?: Pick | null | undefined; overflowHandler?: OverflowHandler | undefined; changeTracker?: SessionChangeTracker | undefined; /** Project memory registry, when present, `state mode=memory set` mirrors writes into retrievable records. */ memoryRegistry?: import('../state/index.js').MemoryRegistry | undefined; /** * Where the owner profile store and occasions service arrive once the * gateway composition has built them. Supplying it registers the `profile` * tool, which is how a conversational turn records a trip, a date or a fact * the owner just stated. Without it the tool is not registered at all, * rather than registered and quietly unable to write. */ personalCapture?: import('../personal-capture/index.js').PersonalCaptureHolder | undefined; /** * Post-edit diagnostics provider for write/edit tool results. Defaults to * the in-process tree-sitter syntax provider; pass null to disable, or a * custom provider to override. */ diagnosticsProvider?: import('./shared/post-edit-diagnostics.js').DiagnosticsProvider | null | undefined; /** * Credential-bearing env-var scrub applied to every spawned exec command's * environment. Threaded straight into createExecTool so a consumer can wire * its `permissions.exec.*` config (master switch + allowlist) at the * composition root instead of the scrub always resolving to its built-in * default. Omitted → scrub enabled with the default allowlist (see * resolveCredentialEnvScrub). */ credentialEnvScrub?: CredentialEnvScrubConfig | undefined; /** * Per-file read-permission decision shared with search / list / map tools * (find, repo_map). Wired at the composition root to * PermissionManager.previewReadAccess so a file the read tool would gate * never leaks its content through a search. Omitted → all files allowed. */ readAccessFilter?: import('./shared/read-access.js').ReadAccessFilter | undefined; /** * Settable holder for the context_accounting tool's session source. The tool * is always registered (consumers inherit it like repo_map); the interactive * session binds its Orchestrator-backed source onto this holder after * construction. Omitted → the tool registers with a fresh empty holder and * honestly reports "no live session context bound". */ contextAccountingHolder?: ContextAccountingHolder | undefined; /** * Broker a per-command exec-sandbox host-access escalation (network, * host-privilege escalation) through the approval broker before the command * runs. Wired at the composition root to the sandbox-escalation seam. * Omitted → escalations are not asked (today's behavior). */ sandboxEscalationHandler?: ((input: { readonly command: string; readonly escalations: readonly string[]; readonly boundary: string; readonly policyReasons: readonly string[]; readonly workingDirectory?: string | undefined; }) => Promise) | undefined; /** * Broker the one-tap "allow localhost fetches for this project" ask through * the approval broker. Wired at the composition root (see * runtime/permissions/localhost-fetch-approval.ts). Omitted → unapproved * localhost fetches are refused with an honest reason naming * fetch.allowLocalhost. */ localhostFetchApproval?: ((input: { url: string; host: string; }) => Promise) | undefined; /** * Reports each contained (sandboxed) command run; the composition root * wires it to the announce-once containment receipt. */ onSandboxedRun?: (() => void) | undefined; /** * Broker an exec PTY terminal-prompt answer through the approval broker * while the command keeps running. Wired at the composition root (see * runtime/permissions/exec-prompt-wiring.ts). Omitted → the PTY path is * not engaged and every command runs the unchanged pipe-based path. */ execPromptAnswerHandler?: ((ask: ExecPromptAsk) => Promise) | undefined; /** * Whether this composition REQUIRES the exec boundary. Omitted → * `host-allowed`: when no boundary is available a command runs on the host * with the self-labelling note, exactly as before. * * A hosted CONVERSATIONAL turn states `required`, and then an absent * boundary is a refusal rather than a silent fallback. A hosted WORKSTREAM * that genuinely needs the host is granted `host-allowed` per spawn by the * product composing it, the posture never arrives from the model, the * wire, or a tool argument. See exec/containment.ts. */ execContainment?: ExecContainmentRequirement | undefined; /** * Whether commands that drive an existing tmux session this platform did * not create are refused. Omitted → `off`, so every existing caller is * unchanged. See exec/owner-terminal-guard.ts. */ ownerTerminalGuard?: OwnerTerminalGuard | undefined; }): { fileCache: FileStateCache; projectIndex: ProjectIndex; }; //# sourceMappingURL=index.d.ts.map