diff --git a/AGENTS.md b/AGENTS.md index 06ecf8ba8..95217bc47 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,6 +22,7 @@ This repo contains multiple packages, but **`packages/coding-agent/`** is the pr ## Code Quality - No `any` types unless absolutely necessary +- Prefer `export * from "./module"` over named re-export-from blocks, including `export type { ... } from`. In pure `index.ts` barrel files (re-exports only), use star re-exports even for single-specifier cases. If star re-exports create symbol ambiguity, remove the redundant export path instead of keeping duplicate exports. - **No `private`/`protected`/`public` keyword on class fields or methods** — use ES native `#` private fields for encapsulation; leave members that need external access as bare (no keyword). The only place `private`/`protected`/`public` is allowed is on **constructor parameter properties** (e.g., `constructor(private readonly session: ToolSession)`), where TypeScript requires the keyword for the implicit field declaration. ```typescript diff --git a/packages/ai/src/utils/oauth/cursor.ts b/packages/ai/src/utils/oauth/cursor.ts index c929b4453..c01112126 100644 --- a/packages/ai/src/utils/oauth/cursor.ts +++ b/packages/ai/src/utils/oauth/cursor.ts @@ -144,7 +144,7 @@ function getTokenExpiry(token: string): number { return Date.now() + 3600 * 1000; } -export function isTokenExpiringSoon(token: string, thresholdSeconds = 300): boolean { +export function isCursorTokenExpiringSoon(token: string, thresholdSeconds = 300): boolean { try { const [, payload] = token.split("."); if (!payload) return true; diff --git a/packages/ai/src/utils/oauth/index.ts b/packages/ai/src/utils/oauth/index.ts index 04af7be8f..05c33ccee 100644 --- a/packages/ai/src/utils/oauth/index.ts +++ b/packages/ai/src/utils/oauth/index.ts @@ -46,7 +46,7 @@ export { loginCloudflareAiGateway } from "./cloudflare-ai-gateway"; // Cursor export { generateCursorAuthParams, - isTokenExpiringSoon as isCursorTokenExpiringSoon, + isCursorTokenExpiringSoon, loginCursor, pollCursorAuth, refreshCursorToken, diff --git a/packages/ai/src/utils/schema/index.ts b/packages/ai/src/utils/schema/index.ts index 4be0db6ff..be356e59f 100644 --- a/packages/ai/src/utils/schema/index.ts +++ b/packages/ai/src/utils/schema/index.ts @@ -1,30 +1,8 @@ -export { adaptSchemaForStrict } from "./adapt"; -export { - type SchemaCompatibilityProvider, - type SchemaCompatibilityResult, - type SchemaCompatibilityViolation, - type StrictSchemaEnforcementResult, - validateSchemaCompatibility, - validateStrictSchemaEnforcement, -} from "./compatibility"; -export { areJsonValuesEqual, mergeCompatibleEnumSchemas, mergePropertySchemas } from "./equality"; -export { - CLOUD_CODE_ASSIST_SHARED_SCHEMA_KEYS, - CLOUD_CODE_ASSIST_TYPE_SPECIFIC_KEYS, - NON_STRUCTURAL_SCHEMA_KEYS, - UNSUPPORTED_SCHEMA_FIELDS, -} from "./fields"; -export { copySchemaWithout, prepareSchemaForCCA, stripResidualCombiners } from "./normalize-cca"; -export { - sanitizeSchemaForCCA, - sanitizeSchemaForGoogle, - sanitizeSchemaForMCP, -} from "./sanitize-google"; -export { - enforceStrictSchema, - NO_STRICT, - StringEnum, - sanitizeSchemaForStrictMode, - tryEnforceStrictSchema, -} from "./strict-mode"; -export { isJsonObject, type JsonObject } from "./types"; +export * from "./adapt"; +export * from "./compatibility"; +export * from "./equality"; +export * from "./fields"; +export * from "./normalize-cca"; +export * from "./sanitize-google"; +export * from "./strict-mode"; +export * from "./types"; diff --git a/packages/coding-agent/src/capability/index.ts b/packages/coding-agent/src/capability/index.ts index 6f202ca87..574badb28 100644 --- a/packages/coding-agent/src/capability/index.ts +++ b/packages/coding-agent/src/capability/index.ts @@ -419,14 +419,4 @@ export function cacheStats(): { content: number; dir: number } { // Re-exports // ============================================================================= -export type { - Capability, - CapabilityInfo, - CapabilityResult, - LoadContext, - LoadOptions, - LoadResult, - Provider, - ProviderInfo, - SourceMeta, -} from "./types"; +export type * from "./types"; diff --git a/packages/coding-agent/src/commit/analysis/index.ts b/packages/coding-agent/src/commit/analysis/index.ts index 1eca1491b..42213155d 100644 --- a/packages/coding-agent/src/commit/analysis/index.ts +++ b/packages/coding-agent/src/commit/analysis/index.ts @@ -1,4 +1,4 @@ -export { generateConventionalAnalysis } from "./conventional"; -export { extractScopeCandidates } from "./scope"; -export { generateSummary, stripTypePrefix } from "./summary"; -export { validateAnalysis, validateScope, validateSummary } from "./validation"; +export * from "./conventional"; +export * from "./scope"; +export * from "./summary"; +export * from "./validation"; diff --git a/packages/coding-agent/src/config/settings.ts b/packages/coding-agent/src/config/settings.ts index 0615d87bd..1c8cd9712 100644 --- a/packages/coding-agent/src/config/settings.ts +++ b/packages/coding-agent/src/config/settings.ts @@ -41,26 +41,8 @@ import { } from "./settings-schema"; // Re-export types that callers need -export type { - BashInterceptorRule, - BranchSummarySettings, - CommitSettings, - CompactionSettings, - ContextPromotionSettings, - ExaSettings, - GroupPrefix, - GroupTypeMap, - MemoriesSettings, - RetrySettings, - SettingPath, - SettingValue, - SkillsSettings, - StatusLineSettings, - ThinkingBudgetsSettings, - TodoCompletionSettings, - TtsrSettings, -} from "./settings-schema"; -export { getDefault, getEnumValues, getPathsForTab, getType, getUi, hasUi } from "./settings-schema"; +export type * from "./settings-schema"; +export * from "./settings-schema"; // ═══════════════════════════════════════════════════════════════════════════ // Types diff --git a/packages/coding-agent/src/discovery/index.ts b/packages/coding-agent/src/discovery/index.ts index 76351abcd..8f3a9faf4 100644 --- a/packages/coding-agent/src/discovery/index.ts +++ b/packages/coding-agent/src/discovery/index.ts @@ -76,14 +76,4 @@ export type { SSHHost } from "../capability/ssh"; export type { SystemPrompt } from "../capability/system-prompt"; export type { CustomTool } from "../capability/tool"; // Re-export types -export type { - Capability, - CapabilityInfo, - CapabilityResult, - LoadContext, - LoadOptions, - LoadResult, - Provider, - ProviderInfo, - SourceMeta, -} from "../capability/types"; +export type * from "../capability/types"; diff --git a/packages/coding-agent/src/exa/index.ts b/packages/coding-agent/src/exa/index.ts index ad462bb7d..cb09ed83f 100644 --- a/packages/coding-agent/src/exa/index.ts +++ b/packages/coding-agent/src/exa/index.ts @@ -27,16 +27,7 @@ export const exaTools: CustomTool[] = [ export { companyTool } from "./company"; export { linkedinTool } from "./linkedin"; -export { - callExaTool, - callWebsetsTool, - createMCPToolFromServer, - fetchMCPToolSchema, - findApiKey, - formatSearchResults, - isSearchResponse, - MCPWrappedTool, -} from "./mcp-client"; +export * from "./mcp-client"; export { renderExaCall, renderExaResult } from "./render"; export { researcherTools } from "./researcher"; // Re-export individual modules for selective importing diff --git a/packages/coding-agent/src/extensibility/custom-commands/index.ts b/packages/coding-agent/src/extensibility/custom-commands/index.ts index 5759f2051..5922756a4 100644 --- a/packages/coding-agent/src/extensibility/custom-commands/index.ts +++ b/packages/coding-agent/src/extensibility/custom-commands/index.ts @@ -1,15 +1,2 @@ -export { - type DiscoverCustomCommandsOptions, - type DiscoverCustomCommandsResult, - discoverCustomCommands, - type LoadCustomCommandsOptions, - loadCustomCommands, -} from "./loader"; -export type { - CustomCommand, - CustomCommandAPI, - CustomCommandFactory, - CustomCommandSource, - CustomCommandsLoadResult, - LoadedCustomCommand, -} from "./types"; +export * from "./loader"; +export type * from "./types"; diff --git a/packages/coding-agent/src/extensibility/custom-tools/index.ts b/packages/coding-agent/src/extensibility/custom-tools/index.ts index 62b507956..92447ff28 100644 --- a/packages/coding-agent/src/extensibility/custom-tools/index.ts +++ b/packages/coding-agent/src/extensibility/custom-tools/index.ts @@ -2,21 +2,6 @@ * Custom tools module. */ -export { CustomToolLoader, discoverAndLoadCustomTools, loadCustomTools } from "./loader"; -export type { - AgentToolResult, - AgentToolUpdateCallback, - CustomTool, - CustomToolAPI, - CustomToolContext, - CustomToolFactory, - CustomToolResult, - CustomToolSessionEvent, - CustomToolsLoadResult, - CustomToolUIContext, - ExecResult, - LoadedCustomTool, - RenderResultOptions, - ToolLoadError, -} from "./types"; -export { CustomToolAdapter } from "./wrapper"; +export * from "./loader"; +export type * from "./types"; +export * from "./wrapper"; diff --git a/packages/coding-agent/src/extensibility/extensions/index.ts b/packages/coding-agent/src/extensibility/extensions/index.ts index b76ccfcc9..8a06778c7 100644 --- a/packages/coding-agent/src/extensibility/extensions/index.ts +++ b/packages/coding-agent/src/extensibility/extensions/index.ts @@ -3,134 +3,13 @@ */ export type { SlashCommandInfo, SlashCommandLocation, SlashCommandSource } from "../slash-commands"; -export { discoverAndLoadExtensions, ExtensionRuntime, loadExtensionFromFactory, loadExtensions } from "./loader"; -export type { - BranchHandler, - ExtensionErrorListener, - NavigateTreeHandler, - NewSessionHandler, - ShutdownHandler, - SwitchSessionHandler, -} from "./runner"; -export { ExtensionRunner } from "./runner"; -export type { - AgentEndEvent, - AgentStartEvent, - // Re-exports - AgentToolResult, - AgentToolUpdateCallback, - AppAction, - AppendEntryHandler, - // Events - Tool (ToolCallEvent types) - BashToolCallEvent, - BashToolResultEvent, - BeforeAgentStartEvent, - BeforeAgentStartEventResult, - // Events - Agent - ContextEvent, - // Event Results - ContextEventResult, - ContextUsage, - CustomToolCallEvent, - CustomToolResultEvent, - EditToolCallEvent, - EditToolResultEvent, - ExecOptions, - ExecResult, - Extension, - ExtensionActions, - ExtensionAPI, - ExtensionCommandContext, - ExtensionCommandContextActions, - // Context - ExtensionContext, - ExtensionContextActions, - // Errors - ExtensionError, - ExtensionEvent, - ExtensionFactory, - ExtensionFlag, - ExtensionHandler, - ExtensionShortcut, - ExtensionUIContext, - ExtensionUIDialogOptions, - FindToolCallEvent, - FindToolResultEvent, - GetActiveToolsHandler, - GetAllToolsHandler, - GetCommandsHandler, - GetThinkingLevelHandler, - GrepToolCallEvent, - GrepToolResultEvent, - // Events - Input - InputEvent, - InputEventResult, - KeybindingsManager, - LoadExtensionsResult, - // Events - Message - MessageEndEvent, - // Message Rendering - MessageRenderer, - MessageRenderOptions, - MessageStartEvent, - MessageUpdateEvent, - // Provider Registration - ProviderConfig, - ProviderModelConfig, - ReadToolCallEvent, - ReadToolResultEvent, - // Commands - RegisteredCommand, - RegisteredTool, - // Events - Resources - ResourcesDiscoverEvent, - ResourcesDiscoverResult, - SendMessageHandler, - SendUserMessageHandler, - SessionBeforeBranchEvent, - SessionBeforeBranchResult, - SessionBeforeCompactEvent, - SessionBeforeCompactResult, - SessionBeforeSwitchEvent, - SessionBeforeSwitchResult, - SessionBeforeTreeEvent, - SessionBeforeTreeResult, - SessionBranchEvent, - SessionCompactEvent, - SessionCompactingEvent, - SessionCompactingResult, - SessionEvent, - SessionShutdownEvent, - // Events - Session - SessionStartEvent, - SessionSwitchEvent, - SessionTreeEvent, - SetActiveToolsHandler, - SetModelHandler, - SetThinkingLevelHandler, - TerminalInputHandler, - // Events - Tool - ToolCallEvent, - ToolCallEventResult, - // Tools - ToolDefinition, - // Events - Tool Execution - ToolExecutionEndEvent, - ToolExecutionStartEvent, - ToolExecutionUpdateEvent, - ToolRenderResultOptions, - ToolResultEvent, - ToolResultEventResult, - TreePreparation, - TurnEndEvent, - TurnStartEvent, - UserBashEvent, - UserBashEventResult, - UserPythonEvent, - UserPythonEventResult, - WriteToolCallEvent, - WriteToolResultEvent, -} from "./types"; +export { + discoverAndLoadExtensions, + ExtensionRuntimeNotInitializedError, + loadExtensionFromFactory, + loadExtensions, +} from "./loader"; +export * from "./runner"; // Type guards -export { isToolCallEventType } from "./types"; -export { ExtensionToolWrapper, RegisteredToolAdapter, wrapRegisteredTool, wrapRegisteredTools } from "./wrapper"; +export * from "./types"; +export * from "./wrapper"; diff --git a/packages/coding-agent/src/extensibility/hooks/index.ts b/packages/coding-agent/src/extensibility/hooks/index.ts index 9d03d7f02..101337bdf 100644 --- a/packages/coding-agent/src/extensibility/hooks/index.ts +++ b/packages/coding-agent/src/extensibility/hooks/index.ts @@ -1,16 +1,5 @@ -// biome-ignore assist/source/organizeImports: biome is not smart export type { ReadonlySessionManager, UsageStatistics } from "../../session/session-manager"; -export { - discoverAndLoadHooks, - loadHooks, - type AppendEntryHandler, - type BranchHandler, - type LoadedHook, - type LoadHooksResult, - type NavigateTreeHandler, - type NewSessionHandler, - type SendMessageHandler, -} from "./loader"; -export { execCommand, HookRunner, type HookErrorListener } from "./runner"; -export { HookToolWrapper } from "./tool-wrapper"; +export * from "./loader"; +export * from "./runner"; +export * from "./tool-wrapper"; export * from "./types"; diff --git a/packages/coding-agent/src/extensibility/plugins/index.ts b/packages/coding-agent/src/extensibility/plugins/index.ts index c53cda777..8666950e2 100644 --- a/packages/coding-agent/src/extensibility/plugins/index.ts +++ b/packages/coding-agent/src/extensibility/plugins/index.ts @@ -1,33 +1,8 @@ // Plugin system exports -export { formatDoctorResults, runDoctorChecks } from "./doctor"; -export { type GitSource, parseGitUrl } from "./git-url"; -export { - getAllPluginCommandPaths, - getAllPluginHookPaths, - getAllPluginToolPaths, - getEnabledPlugins, - getPluginSettings, - resolvePluginCommandPaths, - resolvePluginHookPaths, - resolvePluginToolPaths, -} from "./loader"; -export { PluginManager, parseSettingValue, validateSetting } from "./manager"; -export { extractPackageName, formatPluginSpec, parsePluginSpec } from "./parser"; -export type { - BooleanSetting, - DoctorCheck, - DoctorOptions, - EnumSetting, - InstalledPlugin, - InstallOptions, - NumberSetting, - PluginFeature, - PluginManifest, - PluginRuntimeConfig, - PluginRuntimeState, - PluginSettingSchema, - PluginSettingType, - ProjectPluginOverrides, - StringSetting, -} from "./types"; +export * from "./doctor"; +export * from "./git-url"; +export * from "./loader"; +export * from "./manager"; +export * from "./parser"; +export type * from "./types"; diff --git a/packages/coding-agent/src/index.ts b/packages/coding-agent/src/index.ts index 720c07c2e..e6884143f 100644 --- a/packages/coding-agent/src/index.ts +++ b/packages/coding-agent/src/index.ts @@ -1,3 +1,5 @@ +import { HookEditorComponent, HookInputComponent, HookSelectorComponent } from "./modes/components"; + // Core session management // TypeBox helper for string enums (convenience for custom tools) @@ -7,245 +9,51 @@ export { StringEnum } from "@oh-my-pi/pi-ai"; export { Container, Markdown, Spacer, Text } from "@oh-my-pi/pi-tui"; // Logging export { getAgentDir, logger, VERSION } from "@oh-my-pi/pi-utils"; -export { formatKeyHint, formatKeyHints } from "./config/keybindings"; -export { ModelRegistry } from "./config/model-registry"; +export * from "./config/keybindings"; +export * from "./config/model-registry"; // Prompt templates -export type { PromptTemplate } from "./config/prompt-templates"; -export { renderPromptTemplate } from "./config/prompt-templates"; -export type { CompactionSettings, RetrySettings, SkillsSettings } from "./config/settings"; +export type * from "./config/prompt-templates"; +export * from "./config/prompt-templates"; +export type { RetrySettings, SkillsSettings } from "./config/settings"; export { Settings, settings } from "./config/settings"; // Custom commands -export type { - CustomCommand, - CustomCommandAPI, - CustomCommandFactory, - CustomCommandSource, - CustomCommandsLoadResult, - LoadedCustomCommand, -} from "./extensibility/custom-commands/types"; -export type { - AgentToolUpdateCallback, - CustomTool, - CustomToolAPI, - CustomToolContext, - CustomToolFactory, - CustomToolSessionEvent, - CustomToolsLoadResult, - CustomToolUIContext, - ExecResult, - LoadedCustomTool, - RenderResultOptions, -} from "./extensibility/custom-tools"; +export type * from "./extensibility/custom-commands/types"; +export type * from "./extensibility/custom-tools"; // Custom tools -export { CustomToolLoader, discoverAndLoadCustomTools, loadCustomTools } from "./extensibility/custom-tools"; -export type { - AppAction, - Extension, - ExtensionActions, - ExtensionAPI, - ExtensionCommandContext, - ExtensionCommandContextActions, - ExtensionContext, - ExtensionContextActions, - ExtensionError, - ExtensionEvent, - ExtensionFactory, - ExtensionFlag, - ExtensionHandler, - ExtensionShortcut, - ExtensionUIContext, - ExtensionUIDialogOptions, - InputEvent, - InputEventResult, - KeybindingsManager, - LoadExtensionsResult, - MessageRenderer, - MessageRenderOptions, - ProviderConfig, - ProviderModelConfig, - RegisteredCommand, - ToolCallEvent, - ToolResultEvent, - TurnEndEvent, - TurnStartEvent, - UserBashEvent, - UserBashEventResult, - UserPythonEvent, - UserPythonEventResult, -} from "./extensibility/extensions"; +export * from "./extensibility/custom-tools"; +export type * from "./extensibility/extensions"; // Extension types and utilities -export { - discoverAndLoadExtensions, - ExtensionRunner, - ExtensionRuntime, -} from "./extensibility/extensions"; +export * from "./extensibility/extensions"; // Hook system types (legacy re-export) -export type * from "./extensibility/hooks"; // Skills -export { - type LoadSkillsFromDirOptions, - type LoadSkillsResult, - loadSkills, - loadSkillsFromDir, - type Skill, - type SkillWarning, -} from "./extensibility/skills"; +export * from "./extensibility/skills"; // Slash commands export { type FileSlashCommand, loadSlashCommands as discoverSlashCommands } from "./extensibility/slash-commands"; -export type { FileDiagnosticsResult } from "./lsp"; +export type * from "./lsp"; // Main entry point -export { main } from "./main"; +export * from "./main"; // Run modes for programmatic SDK usage -export { - InteractiveMode, - type InteractiveModeOptions, - type PrintModeOptions, - RpcClient, - type RpcClientOptions, - type RpcEventListener, - runPrintMode, - runRpcMode, -} from "./modes"; +export * from "./modes"; // UI components for extensions export { - AssistantMessageComponent, - BashExecutionComponent, - BorderedLoader, - BranchSummaryMessageComponent, - CompactionSummaryMessageComponent, - CustomEditor, - CustomMessageComponent, - DynamicBorder, - FooterComponent, HookEditorComponent as ExtensionEditorComponent, HookInputComponent as ExtensionInputComponent, HookSelectorComponent as ExtensionSelectorComponent, - LoginDialogComponent, - ModelSelectorComponent, - OAuthSelectorComponent, - type RenderDiffOptions, - renderDiff, - SessionSelectorComponent, - type SettingsCallbacks, - SettingsSelectorComponent, - ShowImagesSelectorComponent, - ThemeSelectorComponent, - ThinkingSelectorComponent, - ToolExecutionComponent, - type ToolExecutionOptions, - TreeSelectorComponent, - truncateToVisualLines, - UserMessageComponent, - UserMessageSelectorComponent, - type VisualTruncateResult, -} from "./modes/components"; +}; +export * from "./modes/components"; // Theme utilities for custom tools -export { - getLanguageFromPath, - getMarkdownTheme, - getSelectListTheme, - getSettingsListTheme, - highlightCode, - initTheme, - Theme, - type ThemeColor, -} from "./modes/theme/theme"; -export { computeLineHash } from "./patch/hashline"; +export * from "./modes/theme/theme"; +export * from "./patch/hashline"; // SDK for programmatic usage -export { - // Factory - BashTool, - // Tool factories - BUILTIN_TOOLS, - type BuildSystemPromptOptions, - buildSystemPrompt, - type CreateAgentSessionOptions, - type CreateAgentSessionResult, - createAgentSession, - createTools, - // Discovery - discoverAuthStorage, - discoverContextFiles, - discoverCustomTSCommands, - discoverExtensions, - discoverMCPServers, - discoverPromptTemplates, - discoverSkills, - EditTool, - FindTool, - GrepTool, - loadSshTool, - PythonTool, - ReadTool, - type ToolSession, - WriteTool, -} from "./sdk"; -export { - AgentSession, - type AgentSessionConfig, - type AgentSessionEvent, - type AgentSessionEventListener, - type ModelCycleResult, - type PromptOptions, - type SessionStats, -} from "./session/agent-session"; +export * from "./sdk"; +export * from "./session/agent-session"; // Auth and model registry -export { - type ApiKeyCredential, - type AuthCredential, - type AuthCredentialStore, - AuthStorage, - type OAuthCredential, - type StoredAuthCredential, -} from "./session/auth-storage"; +export * from "./session/auth-storage"; // Compaction -export { - type BranchPreparation, - type BranchSummaryResult, - type CollectEntriesResult, - type CompactionResult, - type CutPointResult, - calculateContextTokens, - collectEntriesForBranchSummary, - compact, - DEFAULT_COMPACTION_SETTINGS, - estimateTokens, - type FileOperations, - findCutPoint, - findTurnStartIndex, - type GenerateBranchSummaryOptions, - generateBranchSummary, - generateSummary, - getLastAssistantUsage, - prepareBranchEntries, - serializeConversation, - shouldCompact, -} from "./session/compaction"; -export { convertToLlm } from "./session/messages"; -export { - type BranchSummaryEntry, - buildSessionContext, - type CompactionEntry, - CURRENT_SESSION_VERSION, - type CustomEntry, - type CustomMessageEntry, - type FileEntry, - getLatestCompactionEntry, - type ModeChangeEntry, - type ModelChangeEntry, - migrateSessionEntries, - type NewSessionOptions, - parseSessionEntries, - type SessionContext, - type SessionEntry, - type SessionEntryBase, - type SessionHeader, - type SessionInfo, - SessionManager, - type SessionMessageEntry, - type ThinkingLevelChangeEntry, -} from "./session/session-manager"; -export { runSubprocess } from "./task/executor"; -export type { AgentDefinition, AgentProgress, AgentSource, SingleResult, TaskParams } from "./task/types"; +export * from "./session/compaction"; +export * from "./session/messages"; +export * from "./session/session-manager"; +export * from "./task/executor"; +export type * from "./task/types"; // Tools (detail types and utilities) export * from "./tools"; diff --git a/packages/coding-agent/src/internal-urls/index.ts b/packages/coding-agent/src/internal-urls/index.ts index 22f9aaf63..8dda9c877 100644 --- a/packages/coding-agent/src/internal-urls/index.ts +++ b/packages/coding-agent/src/internal-urls/index.ts @@ -20,19 +20,14 @@ * ``` */ -export { AgentProtocolHandler, type AgentProtocolOptions } from "./agent-protocol"; -export { ArtifactProtocolHandler, type ArtifactProtocolOptions } from "./artifact-protocol"; -export { JobsProtocolHandler, type JobsProtocolOptions } from "./jobs-protocol"; -export { applyQuery, parseQuery, pathToQuery } from "./json-query"; -export { - LocalProtocolHandler, - type LocalProtocolOptions, - resolveLocalRoot, - resolveLocalUrlToPath, -} from "./local-protocol"; -export { MemoryProtocolHandler, type MemoryProtocolOptions, resolveMemoryUrlToPath } from "./memory-protocol"; -export { PiProtocolHandler } from "./pi-protocol"; -export { InternalUrlRouter } from "./router"; -export { RuleProtocolHandler, type RuleProtocolOptions } from "./rule-protocol"; -export { SkillProtocolHandler, type SkillProtocolOptions } from "./skill-protocol"; -export type { InternalResource, InternalUrl, ProtocolHandler } from "./types"; +export * from "./agent-protocol"; +export * from "./artifact-protocol"; +export * from "./jobs-protocol"; +export * from "./json-query"; +export * from "./local-protocol"; +export * from "./memory-protocol"; +export * from "./pi-protocol"; +export * from "./router"; +export * from "./rule-protocol"; +export * from "./skill-protocol"; +export type * from "./types"; diff --git a/packages/coding-agent/src/mcp/index.ts b/packages/coding-agent/src/mcp/index.ts index 7c3da09d9..5e8052821 100644 --- a/packages/coding-agent/src/mcp/index.ts +++ b/packages/coding-agent/src/mcp/index.ts @@ -6,50 +6,24 @@ */ // Client -export { callTool, connectToServer, disconnectServer, listTools, serverSupportsTools } from "./client"; +export * from "./client"; // Config -export type { BrowserFilterResult, ExaFilterResult, LoadMCPConfigsOptions, LoadMCPConfigsResult } from "./config"; -export { - extractExaApiKey, - filterBrowserMCPServers, - filterExaMCPServers, - isBrowserMCPServer, - isExaMCPServer, - loadAllMCPConfigs, - validateServerConfig, -} from "./config"; -export { validateServerName } from "./config-writer"; +export * from "./config"; +export * from "./config-writer"; // JSON-RPC (lightweight HTTP-based MCP calls) -export type { JsonRpcResponse } from "./json-rpc"; export { callMCP, parseSSE } from "./json-rpc"; // Loader (for SDK integration) -export type { MCPToolsLoadOptions, MCPToolsLoadResult } from "./loader"; -export { discoverAndLoadMCPTools } from "./loader"; +export * from "./loader"; // Manager -export type { MCPDiscoverOptions, MCPLoadResult } from "./manager"; -export { createMCPManager, MCPManager } from "./manager"; +export * from "./manager"; // OAuth Discovery -export type { AuthDetectionResult, OAuthEndpoints } from "./oauth-discovery"; -export { analyzeAuthError, detectAuthError, discoverOAuthEndpoints, extractOAuthEndpoints } from "./oauth-discovery"; +export * from "./oauth-discovery"; // Tool bridge -export type { MCPToolDetails } from "./tool-bridge"; -export { createMCPToolName, DeferredMCPTool, MCPTool, parseMCPToolName } from "./tool-bridge"; +export * from "./tool-bridge"; // Tool cache -export { MCPToolCache } from "./tool-cache"; +export * from "./tool-cache"; // Transports -export { createHttpTransport, HttpTransport } from "./transports/http"; -export { createStdioTransport, StdioTransport } from "./transports/stdio"; +export * from "./transports/http"; +export * from "./transports/stdio"; // Types -export type { - MCPConfigFile, - MCPContent, - MCPHttpServerConfig, - MCPServerCapabilities, - MCPServerConfig, - MCPServerConnection, - MCPSseServerConfig, - MCPStdioServerConfig, - MCPToolDefinition, - MCPToolWithServer, - MCPTransport, -} from "./types"; +export type * from "./types"; diff --git a/packages/coding-agent/src/mcp/transports/index.ts b/packages/coding-agent/src/mcp/transports/index.ts index 9b62139fa..e6bc2f034 100644 --- a/packages/coding-agent/src/mcp/transports/index.ts +++ b/packages/coding-agent/src/mcp/transports/index.ts @@ -2,5 +2,5 @@ * MCP transport exports. */ -export { createHttpTransport, HttpTransport } from "./http"; -export { createStdioTransport, StdioTransport } from "./stdio"; +export * from "./http"; +export * from "./stdio"; diff --git a/packages/coding-agent/src/modes/components/extensions/index.ts b/packages/coding-agent/src/modes/components/extensions/index.ts index efd441146..fa48b662b 100644 --- a/packages/coding-agent/src/modes/components/extensions/index.ts +++ b/packages/coding-agent/src/modes/components/extensions/index.ts @@ -2,8 +2,8 @@ * Extension Control Center exports. */ -export { ExtensionDashboard } from "./extension-dashboard"; -export { ExtensionList } from "./extension-list"; -export { InspectorPanel } from "./inspector-panel"; +export * from "./extension-dashboard"; +export * from "./extension-list"; +export * from "./inspector-panel"; export * from "./state-manager"; export * from "./types"; diff --git a/packages/coding-agent/src/modes/components/index.ts b/packages/coding-agent/src/modes/components/index.ts index cd2b08aee..a67fd0576 100644 --- a/packages/coding-agent/src/modes/components/index.ts +++ b/packages/coding-agent/src/modes/components/index.ts @@ -1,41 +1,36 @@ // UI Components barrel export -export { AssistantMessageComponent } from "./assistant-message"; -export { BashExecutionComponent } from "./bash-execution"; -export { BorderedLoader } from "./bordered-loader"; -export { BranchSummaryMessageComponent } from "./branch-summary-message"; -export { CompactionSummaryMessageComponent } from "./compaction-summary-message"; -export { CountdownTimer } from "./countdown-timer"; -export { CustomEditor } from "./custom-editor"; -export { CustomMessageComponent } from "./custom-message"; -export { type RenderDiffOptions, renderDiff } from "./diff"; -export { DynamicBorder } from "./dynamic-border"; -export { FooterComponent } from "./footer"; -export { HookEditorComponent } from "./hook-editor"; -export { HookInputComponent, type HookInputOptions } from "./hook-input"; -export { HookMessageComponent } from "./hook-message"; -export { HookSelectorComponent } from "./hook-selector"; -export { appKey, appKeyHint, editorKey, keyHint, rawKeyHint } from "./keybinding-hints"; -export { LoginDialogComponent } from "./login-dialog"; -export { ModelSelectorComponent } from "./model-selector"; -export { OAuthSelectorComponent } from "./oauth-selector"; -export { QueueModeSelectorComponent } from "./queue-mode-selector"; -export { ReadToolGroupComponent } from "./read-tool-group"; -export { SessionSelectorComponent } from "./session-selector"; -export { - type SettingsCallbacks, - type SettingsRuntimeContext, - SettingsSelectorComponent, - type StatusLinePreviewSettings, -} from "./settings-selector"; -export { ShowImagesSelectorComponent } from "./show-images-selector"; -export { StatusLineComponent } from "./status-line"; -export { ThemeSelectorComponent } from "./theme-selector"; -export { ThinkingSelectorComponent } from "./thinking-selector"; -export { TodoReminderComponent } from "./todo-reminder"; -export { ToolExecutionComponent, type ToolExecutionHandle, type ToolExecutionOptions } from "./tool-execution"; -export { TreeSelectorComponent } from "./tree-selector"; -export { TtsrNotificationComponent } from "./ttsr-notification"; -export { UserMessageComponent } from "./user-message"; -export { UserMessageSelectorComponent } from "./user-message-selector"; -export { truncateToVisualLines, type VisualTruncateResult } from "./visual-truncate"; -export { type LspServerInfo, type RecentSession, WelcomeComponent } from "./welcome"; +export * from "./assistant-message"; +export * from "./bash-execution"; +export * from "./bordered-loader"; +export * from "./branch-summary-message"; +export * from "./compaction-summary-message"; +export * from "./countdown-timer"; +export * from "./custom-editor"; +export * from "./custom-message"; +export * from "./diff"; +export * from "./dynamic-border"; +export * from "./footer"; +export * from "./hook-editor"; +export * from "./hook-input"; +export * from "./hook-message"; +export * from "./hook-selector"; +export * from "./keybinding-hints"; +export * from "./login-dialog"; +export * from "./model-selector"; +export * from "./oauth-selector"; +export * from "./queue-mode-selector"; +export * from "./read-tool-group"; +export * from "./session-selector"; +export * from "./settings-selector"; +export * from "./show-images-selector"; +export * from "./status-line"; +export * from "./theme-selector"; +export * from "./thinking-selector"; +export * from "./todo-reminder"; +export * from "./tool-execution"; +export * from "./tree-selector"; +export * from "./ttsr-notification"; +export * from "./user-message"; +export * from "./user-message-selector"; +export * from "./visual-truncate"; +export * from "./welcome"; diff --git a/packages/coding-agent/src/modes/rpc/rpc-mode.ts b/packages/coding-agent/src/modes/rpc/rpc-mode.ts index 66c75893a..d0009fa11 100644 --- a/packages/coding-agent/src/modes/rpc/rpc-mode.ts +++ b/packages/coding-agent/src/modes/rpc/rpc-mode.ts @@ -23,13 +23,7 @@ import type { } from "./rpc-types"; // Re-export types for consumers -export type { - RpcCommand, - RpcExtensionUIRequest, - RpcExtensionUIResponse, - RpcResponse, - RpcSessionState, -} from "./rpc-types"; +export type * from "./rpc-types"; /** * Run in RPC mode. diff --git a/packages/coding-agent/src/patch/index.ts b/packages/coding-agent/src/patch/index.ts index 2a5eda8c3..fad0a2930 100644 --- a/packages/coding-agent/src/patch/index.ts +++ b/packages/coding-agent/src/patch/index.ts @@ -48,30 +48,14 @@ import { EditMatchError } from "./types"; // Application export { applyPatch, defaultFileSystem, previewPatch } from "./applicator"; // Diff generation -export { - computeEditDiff, - computeHashlineDiff, - computePatchDiff, - generateDiffString, - generateUnifiedDiffString, - replaceText, -} from "./diff"; +export * from "./diff"; // Fuzzy matching -export { DEFAULT_FUZZY_THRESHOLD, findContextLine, findMatch as findEditMatch, findMatch, seekSequence } from "./fuzzy"; +export * from "./fuzzy"; // Hashline -export { - applyHashlineEdits, - computeLineHash, - formatHashLines, - HashlineMismatchError, - parseTag, - streamHashLinesFromLines, - streamHashLinesFromUtf8, - validateLineRef, -} from "./hashline"; +export * from "./hashline"; // Normalization -export { adjustIndentation, detectLineEnding, normalizeToLF, restoreLineEndings, stripBom } from "./normalize"; +export * from "./normalize"; // Parsing export { normalizeCreateContent, normalizeDiff, parseHunks as parseDiffHunks } from "./parser"; export type { EditRenderContext, EditToolDetails } from "./shared"; diff --git a/packages/coding-agent/src/sdk.ts b/packages/coding-agent/src/sdk.ts index 46d05db61..2967ad899 100644 --- a/packages/coding-agent/src/sdk.ts +++ b/packages/coding-agent/src/sdk.ts @@ -205,13 +205,7 @@ export type { PromptTemplate } from "./config/prompt-templates"; export { Settings, type SkillsSettings } from "./config/settings"; export type { CustomCommand, CustomCommandFactory } from "./extensibility/custom-commands/types"; export type { CustomTool, CustomToolFactory } from "./extensibility/custom-tools/types"; -export type { - ExtensionAPI, - ExtensionCommandContext, - ExtensionContext, - ExtensionFactory, - ToolDefinition, -} from "./extensibility/extensions"; +export type * from "./extensibility/extensions"; export type { Skill } from "./extensibility/skills"; export type { FileSlashCommand } from "./extensibility/slash-commands"; export type { MCPManager, MCPServerConfig, MCPServerConnection, MCPToolsLoadResult } from "./mcp"; diff --git a/packages/coding-agent/src/stt/index.ts b/packages/coding-agent/src/stt/index.ts index ffdd6ca86..3a09c10cb 100644 --- a/packages/coding-agent/src/stt/index.ts +++ b/packages/coding-agent/src/stt/index.ts @@ -1,3 +1,3 @@ -export { type DownloadProgress, ensureSTTDependencies } from "./downloader"; -export { checkDependencies, formatDependencyStatus, type STTDependencyStatus } from "./setup"; -export { STTController, type SttState } from "./stt-controller"; +export * from "./downloader"; +export * from "./setup"; +export * from "./stt-controller"; diff --git a/packages/coding-agent/src/tools/index.ts b/packages/coding-agent/src/tools/index.ts index 20d03dad8..59a051705 100644 --- a/packages/coding-agent/src/tools/index.ts +++ b/packages/coding-agent/src/tools/index.ts @@ -38,50 +38,34 @@ import { WriteTool } from "./write"; // Exa MCP tools (22 tools) -export { exaTools } from "../exa"; -export type { ExaRenderDetails, ExaSearchResponse, ExaSearchResult } from "../exa/types"; -export { - type FileDiagnosticsResult, - type FileFormatResult, - getLspStatus, - type LspServerStatus, - LspTool, - type LspToolDetails, - type LspWarmupOptions, - type LspWarmupResult, - warmupLspServers, -} from "../lsp"; -export { EditTool, type EditToolDetails } from "../patch"; +export * from "../exa"; +export type * from "../exa/types"; +export * from "../lsp"; +export * from "../patch"; export * from "../session/streaming-output"; -export { BUNDLED_AGENTS, TaskTool } from "../task"; +export * from "../task"; export * from "../web/search"; -export { AskTool, type AskToolDetails } from "./ask"; -export { AstFindTool, type AstFindToolDetails } from "./ast-find"; -export { AstReplaceTool, type AstReplaceToolDetails } from "./ast-replace"; -export { AwaitTool, type AwaitToolDetails } from "./await-tool"; -export { BashTool, type BashToolDetails, type BashToolInput, type BashToolOptions } from "./bash"; -export { BrowserTool, type BrowserToolDetails } from "./browser"; -export { CalculatorTool, type CalculatorToolDetails } from "./calculator"; -export { CancelJobTool, type CancelJobToolDetails } from "./cancel-job"; -export { type ExitPlanModeDetails, ExitPlanModeTool } from "./exit-plan-mode"; -export { FetchTool, type FetchToolDetails } from "./fetch"; -export { type FindOperations, FindTool, type FindToolDetails, type FindToolInput, type FindToolOptions } from "./find"; -export { setPreferredImageProvider } from "./gemini-image"; -export { GrepTool, type GrepToolDetails, type GrepToolInput } from "./grep"; -export { NotebookTool, type NotebookToolDetails } from "./notebook"; -export { PythonTool, type PythonToolDetails, type PythonToolOptions } from "./python"; -export { ReadTool, type ReadToolDetails, type ReadToolInput } from "./read"; -export { reportFindingTool, type SubmitReviewDetails } from "./review"; -export { loadSshTool, type SSHToolDetails, SshTool } from "./ssh"; -export { SubmitResultTool } from "./submit-result"; -export { - getLatestTodoPhasesFromEntries, - type TodoItem, - type TodoPhase, - TodoWriteTool, - type TodoWriteToolDetails, -} from "./todo-write"; -export { WriteTool, type WriteToolDetails, type WriteToolInput } from "./write"; +export * from "./ask"; +export * from "./ast-find"; +export * from "./ast-replace"; +export * from "./await-tool"; +export * from "./bash"; +export * from "./browser"; +export * from "./calculator"; +export * from "./cancel-job"; +export * from "./exit-plan-mode"; +export * from "./fetch"; +export * from "./find"; +export * from "./gemini-image"; +export * from "./grep"; +export * from "./notebook"; +export * from "./python"; +export * from "./read"; +export * from "./review"; +export * from "./ssh"; +export * from "./submit-result"; +export * from "./todo-write"; +export * from "./write"; /** Tool type (AgentTool from pi-ai) */ export type Tool = AgentTool; diff --git a/packages/coding-agent/test/edit-diff.test.ts b/packages/coding-agent/test/edit-diff.test.ts index b681d36ad..7f5405576 100644 --- a/packages/coding-agent/test/edit-diff.test.ts +++ b/packages/coding-agent/test/edit-diff.test.ts @@ -6,15 +6,15 @@ import { adjustIndentation, computeHashlineDiff, DEFAULT_FUZZY_THRESHOLD, - findEditMatch, + findMatch, } from "@oh-my-pi/pi-coding-agent/patch"; -describe("findEditMatch", () => { +describe("findMatch", () => { describe("exact matching", () => { test("finds exact match", () => { const content = "line1\nline2\nline3"; const target = "line2"; - const result = findEditMatch(content, target, { allowFuzzy: false }); + const result = findMatch(content, target, { allowFuzzy: false }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBe(1); expect(result.match!.startLine).toBe(2); @@ -23,7 +23,7 @@ describe("findEditMatch", () => { test("reports multiple occurrences", () => { const content = "foo\nbar\nfoo"; const target = "foo"; - const result = findEditMatch(content, target, { allowFuzzy: false }); + const result = findMatch(content, target, { allowFuzzy: false }); expect(result.match).toBeUndefined(); expect(result.occurrences).toBe(2); }); @@ -31,7 +31,7 @@ describe("findEditMatch", () => { test("returns empty for no match", () => { const content = "line1\nline2"; const target = "notfound"; - const result = findEditMatch(content, target, { allowFuzzy: false }); + const result = findMatch(content, target, { allowFuzzy: false }); expect(result.match).toBeUndefined(); expect(result.occurrences).toBeUndefined(); }); @@ -41,7 +41,7 @@ describe("findEditMatch", () => { test("matches tabs in file with spaces in target", () => { const content = "\tfoo\n\t\tbar\n\tbaz"; const target = " foo\n bar\n baz"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBeGreaterThanOrEqual(DEFAULT_FUZZY_THRESHOLD); }); @@ -49,7 +49,7 @@ describe("findEditMatch", () => { test("matches spaces in file with tabs in target", () => { const content = " foo\n bar\n baz"; const target = "\tfoo\n\t\tbar\n\tbaz"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBeGreaterThanOrEqual(DEFAULT_FUZZY_THRESHOLD); }); @@ -57,7 +57,7 @@ describe("findEditMatch", () => { test("matches different space counts with same relative structure", () => { const content = " foo\n bar\n baz"; const target = " foo\n bar\n baz"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBeGreaterThanOrEqual(DEFAULT_FUZZY_THRESHOLD); }); @@ -65,7 +65,7 @@ describe("findEditMatch", () => { test("matches single line with different indentation", () => { const content = 'prefix\n\t\t\t"value",\nsuffix'; const target = ' "value",'; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBeGreaterThanOrEqual(DEFAULT_FUZZY_THRESHOLD); }); @@ -75,7 +75,7 @@ describe("findEditMatch", () => { test("matches despite one line with wrong indentation in file", () => { const content = "\t\t\tline1\n\t\t\tline2\n\t\tline3\n\t\t\tline4"; const target = " line1\n line2\n line3\n line4"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBeGreaterThanOrEqual(DEFAULT_FUZZY_THRESHOLD); }); @@ -83,7 +83,7 @@ describe("findEditMatch", () => { test("matches when target has consistent indent but file varies", () => { const content = " a\n b\n c\n d"; const target = " a\n b\n c\n d"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); }); }); @@ -92,7 +92,7 @@ describe("findEditMatch", () => { test("collapses internal whitespace", () => { const content = "foo bar baz"; const target = "foo bar baz"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBeGreaterThanOrEqual(DEFAULT_FUZZY_THRESHOLD); }); @@ -100,7 +100,7 @@ describe("findEditMatch", () => { test("matches with trailing whitespace differences", () => { const content = "line1 \nline2\t"; const target = "line1\nline2"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeDefined(); }); }); @@ -109,13 +109,13 @@ describe("findEditMatch", () => { test("respects custom similarity threshold", () => { const content = "function foo() {}"; const target = "function bar() {}"; - const strictResult = findEditMatch(content, target, { + const strictResult = findMatch(content, target, { allowFuzzy: true, threshold: 0.99, }); expect(strictResult.match).toBeUndefined(); - const lenientResult = findEditMatch(content, target, { + const lenientResult = findMatch(content, target, { allowFuzzy: true, threshold: 0.7, }); @@ -125,7 +125,7 @@ describe("findEditMatch", () => { test("reports fuzzyMatches count when multiple above threshold", () => { const content = " item1\n item2\n item3"; const target = " itemX"; - const result = findEditMatch(content, target, { + const result = findMatch(content, target, { allowFuzzy: true, threshold: 0.7, }); @@ -136,14 +136,14 @@ describe("findEditMatch", () => { describe("edge cases", () => { test("handles empty target", () => { const content = "some content"; - const result = findEditMatch(content, "", { allowFuzzy: true }); + const result = findMatch(content, "", { allowFuzzy: true }); expect(result).toEqual({}); }); test("handles empty lines in content", () => { const content = "line1\n\nline3"; const target = "line1\n\nline3"; - const result = findEditMatch(content, target, { allowFuzzy: false }); + const result = findMatch(content, target, { allowFuzzy: false }); expect(result.match).toBeDefined(); expect(result.match!.confidence).toBe(1); }); @@ -151,7 +151,7 @@ describe("findEditMatch", () => { test("handles target longer than content", () => { const content = "short"; const target = "this is much longer than the content"; - const result = findEditMatch(content, target, { allowFuzzy: true }); + const result = findMatch(content, target, { allowFuzzy: true }); expect(result.match).toBeUndefined(); }); }); diff --git a/packages/natives/src/index.ts b/packages/natives/src/index.ts index 48b87f00a..c1d2f720e 100644 --- a/packages/natives/src/index.ts +++ b/packages/natives/src/index.ts @@ -1,148 +1,14 @@ -/** - * Native utilities powered by N-API. - */ - -// ============================================================================= -// Clipboard -// ============================================================================= - -export { type ClipboardImage, copyToClipboard, readImageFromClipboard } from "./clipboard"; - -// ============================================================================= -// AST (structural search and rewrite) -// ============================================================================= - -export { - type AstFindMatch, - type AstFindOptions, - type AstFindResult, - type AstReplaceChange, - type AstReplaceFileChange, - type AstReplaceOptions, - type AstReplaceResult, - type AstStrictness, - astFind, - astReplace, -} from "./ast"; - -// ============================================================================= -// Grep (ripgrep-based regex search) -// ============================================================================= - -export { - type ContextLine, - type FuzzyFindMatch, - type FuzzyFindOptions, - type FuzzyFindResult, - fuzzyFind, - type GrepMatch, - type GrepOptions, - type GrepResult, - type GrepSummary, - grep, - hasMatch, - searchContent, -} from "./grep"; - -// ============================================================================= -// Glob (file discovery) -// ============================================================================= - -export { - FileType, - type GlobMatch, - type GlobOptions, - type GlobResult, - glob, - invalidateFsScanCache, -} from "./glob"; - -// ============================================================================= -// Image processing (photon-compatible API) -// ============================================================================= - -export { ImageFormat, PhotonImage, SamplingFilter } from "./image"; - -// ============================================================================= -// Text utilities -// ============================================================================= - -export { - Ellipsis, - type ExtractSegmentsResult, - extractSegments, - type SliceWithWidthResult, - sanitizeText, - sliceWithWidth, - truncateToWidth, - visibleWidth, - wrapTextWithAnsi, -} from "./text"; - -// ============================================================================= -// Syntax highlighting -// ============================================================================= - -export { - getSupportedLanguages, - type HighlightColors, - highlightCode, - supportsLanguage, -} from "./highlight"; - -// ============================================================================= -// Keyboard sequence helpers -// ============================================================================= - -export { - type KeyEventType, - matchesKey, - matchesKittySequence, - matchesLegacySequence, - type ParsedKittyResult, - parseKey, - parseKittySequence, -} from "./keys"; - -// ============================================================================= -// HTML to Markdown -// ============================================================================= - -export { type HtmlToMarkdownOptions, htmlToMarkdown } from "./html"; - -// ============================================================================= -// Shell execution (brush-core) -// ============================================================================= - -export { - executeShell, - Shell, - type ShellExecuteOptions, - type ShellExecuteResult, - type ShellOptions, - type ShellRunOptions, - type ShellRunResult, -} from "./shell"; - -// ============================================================================= -// PTY execution -// ============================================================================= - -export { type PtyRunResult, PtySession, type PtyStartOptions } from "./pty"; -// ============================================================================= -// Process management -// ============================================================================= - -export { killTree, listDescendants } from "./ps"; - -// ============================================================================= -// Work profiling -// ============================================================================= - -export { getWorkProfile, type WorkProfile } from "./work"; - -// ============================================================================= -// macOS appearance detection -// ============================================================================= - -export { detectMacOSAppearance, type MacAppearanceObserver, startMacAppearanceObserver } from "./appearance"; +export * from "./appearance"; +export * from "./ast"; +export * from "./clipboard"; +export * from "./glob"; +export * from "./grep"; +export * from "./highlight"; +export * from "./html"; +export * from "./image"; +export * from "./keys"; +export * from "./ps"; +export * from "./pty"; +export * from "./shell"; +export * from "./text"; +export * from "./work"; diff --git a/packages/tui/src/index.ts b/packages/tui/src/index.ts index 0dece19bb..f2917f00d 100644 --- a/packages/tui/src/index.ts +++ b/packages/tui/src/index.ts @@ -1,67 +1,40 @@ // Core TUI interfaces and classes // Autocomplete support -export { - type AutocompleteItem, - type AutocompleteProvider, - CombinedAutocompleteProvider, - type SlashCommand, -} from "./autocomplete"; +export * from "./autocomplete"; // Components -export { Box } from "./components/box"; -export { CancellableLoader } from "./components/cancellable-loader"; -export { Editor, type EditorTheme, type EditorTopBorder } from "./components/editor"; -export { Image, type ImageOptions, type ImageTheme } from "./components/image"; -export { Input } from "./components/input"; -export { Loader } from "./components/loader"; -export { type DefaultTextStyle, Markdown, type MarkdownTheme } from "./components/markdown"; -export { type SelectItem, SelectList, type SelectListTheme } from "./components/select-list"; -export { type SettingItem, SettingsList, type SettingsListTheme } from "./components/settings-list"; -export { Spacer } from "./components/spacer"; -export { type Tab, TabBar, type TabBarTheme } from "./components/tab-bar"; -export { Text } from "./components/text"; -export { TruncatedText } from "./components/truncated-text"; +export * from "./components/box"; +export * from "./components/cancellable-loader"; +export * from "./components/editor"; +export * from "./components/image"; +export * from "./components/input"; +export * from "./components/loader"; +export * from "./components/markdown"; +export * from "./components/select-list"; +export * from "./components/settings-list"; +export * from "./components/spacer"; +export * from "./components/tab-bar"; +export * from "./components/text"; +export * from "./components/truncated-text"; // Editor component interface (for custom editors) -export type { EditorComponent } from "./editor-component"; +export type * from "./editor-component"; // Fuzzy matching -export { type FuzzyMatch, fuzzyFilter, fuzzyMatch } from "./fuzzy"; +export * from "./fuzzy"; // Keybindings -export { - DEFAULT_EDITOR_KEYBINDINGS, - type EditorAction, - type EditorKeybindingsConfig, - EditorKeybindingsManager, - getEditorKeybindings, - setEditorKeybindings, -} from "./keybindings"; +export * from "./keybindings"; // Kitty keyboard protocol helpers -export { - isKeyRelease, - isKeyRepeat, - isKittyProtocolActive, - type KeyId, - matchesKey, - parseKey, - parseKittySequence, - setKittyProtocolActive, -} from "./keys"; +export * from "./keys"; // Mermaid diagram support -export { - extractMermaidBlocks, - type MermaidImage, - type MermaidRenderOptions, - prerenderMermaidBlocks, - renderMermaidToPng, -} from "./mermaid"; +export * from "./mermaid"; // Input buffering for batch splitting -export { StdinBuffer, type StdinBufferEventMap, type StdinBufferOptions } from "./stdin-buffer"; -export type { BoxSymbols, SymbolTheme } from "./symbols"; +export * from "./stdin-buffer"; +export type * from "./symbols"; // Terminal interface and implementations -export { emergencyTerminalRestore, ProcessTerminal, type Terminal, type TerminalAppearance } from "./terminal"; +export * from "./terminal"; // Terminal image support export * from "./terminal-capabilities"; // TTY ID -export { getTerminalId, getTtyPath } from "./ttyid"; -export { type Component, Container, type OverlayHandle, type SizeValue, TUI } from "./tui"; +export * from "./ttyid"; +export * from "./tui"; // Utilities -export { Ellipsis, padding, replaceTabs, truncateToWidth, visibleWidth, wrapTextWithAnsi } from "./utils"; +export * from "./utils"; diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index d5e108d0a..6ad94ed2a 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,4 +1,4 @@ -export * from "./abortable"; +export { abortableSleep, createAbortableStream, once, untilAborted } from "./abortable"; export * from "./async"; export * from "./color"; export * from "./dirs"; @@ -14,7 +14,7 @@ export * as procmgr from "./procmgr"; export { setNativeKillTree } from "./procmgr"; export * as ptree from "./ptree"; export { AbortError, ChildProcess, Exception, NonZeroExitError } from "./ptree"; -export { Snowflake } from "./snowflake"; +export * from "./snowflake"; export * from "./stream"; export * from "./temp"; export * from "./type-guards";