# Imported Pi runtime symbols What a Pi package gets when it imports from the three Pi runtime packages. The bridge serves every one of them, so a package's own Pi version pins never load and never conflict with the harness. ## `pi-coding-agent` Pi's agent runtime. A migrated package never loads Pi's own copy: `jiti` aliases the specifier to a bridge shim, so the symbols below come from pi2dsh. Most are Pi's own source vendored byte-identical with the commit recorded beside them — same code, same edge cases — because a reimplementation of a pure function is a second behaviour to keep in sync. The rest are the ones that reach for host state (config directories, session storage, the model call inside compaction): those are re-pointed at DSH-owned locations and services, which is exactly where a package's Pi assumptions have to stop. **111 symbols** — 63 same semantics · 46 mapped, difference stated · 2 not available. | Symbol | Status | How it is served | |---|---|---| | `defineTool` | Same semantics | Identity helper, preserved. | | `CONFIG_DIR_NAME` | Mapped, difference stated | The conventional config directory name is preserved, while DSH owns the actual profile layout. | | `DEFAULT_MAX_LINES` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `DEFAULT_MAX_BYTES` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `VERSION` | Mapped, difference stated | Reports a pi2dsh compatibility marker instead of a Pi release version. | | `CURRENT_SESSION_VERSION` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getAgentDir` | Mapped, difference stated | Redirected to an isolated DSH-owned pi2dsh directory instead of Pi global state. | | `getPackageDir` | Mapped, difference stated | Resolves inside the DSH-owned pi2dsh agent directory. | | `formatSize` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `truncateHead` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `truncateTail` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `truncateLine` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `withFileMutationQueue` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `SessionManager` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. Sessions live under the DSH-owned pi2dsh agent directory. | | `parseSessionEntries` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `migrateSessionEntries` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getLatestCompactionEntry` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `sessionEntryToContextMessages` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `buildContextEntries` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `buildSessionContext` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `loadEntriesFromFile` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `findMostRecentSession` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getDefaultSessionDir` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `assertValidSessionId` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `convertToLlm` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `createCustomMessage` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `createBranchSummaryMessage` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `createCompactionSummaryMessage` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `bashExecutionToText` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `estimateTokens` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `calculateContextTokens` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. Pi's Usage-based total (an earlier reimplementation summed message estimates — same name, different meaning — and was replaced). | | `DEFAULT_COMPACTION_SETTINGS` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `serializeConversation` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `shouldCompact` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. The pure threshold check; DSH still owns automatic compaction scheduling. | | `compact` | Mapped, difference stated | Vendored Pi logic; the model call fills Pi's own streamFn injection point with the DSH llm bridge when the caller passes none, so summarization runs on the ONE model path. Without a mounted llm service it fails explicitly. | | `findCutPoint` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `generateSummary` | Mapped, difference stated | Vendored Pi logic; the model call fills Pi's own streamFn injection point with the DSH llm bridge when the caller passes none, so summarization runs on the ONE model path. Without a mounted llm service it fails explicitly. | | `generateSummaryWithUsage` | Mapped, difference stated | Vendored Pi logic; the model call fills Pi's own streamFn injection point with the DSH llm bridge when the caller passes none, so summarization runs on the ONE model path. Without a mounted llm service it fails explicitly. | | `generateBranchSummary` | Mapped, difference stated | Vendored Pi logic; the model call fills Pi's own streamFn injection point with the DSH llm bridge when the caller passes none, so summarization runs on the ONE model path. Without a mounted llm service it fails explicitly. | | `parseFrontmatter` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. Returns Pi's public { frontmatter, body } shape with YAML-parsed values (an earlier reimplementation returned { attributes } with string values and was replaced). | | `stripFrontmatter` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `copyToClipboard` | Mapped, difference stated | Attempts the platform clipboard command (pbcopy/clip/wl-copy/xclip); resolves false when none succeeds. | | `resizeImage` | Mapped, difference stated | Passes images through un-resized; Pi resizes only to save tokens, so content is preserved. | | `convertToPng` | Mapped, difference stated | PNG input passes through; other formats fail explicitly without Pi's wasm codec. | | `getShellConfig` | Mapped, difference stated | Standard shell detection without Pi's managed-bin PATH handling. | | `getBinDir` | Mapped, difference stated | Reports the first PATH segment instead of Pi's managed bin directory. | | `Theme` | Mapped, difference stated | Headless theme: styling calls return their input text unstyled. | | `theme` | Mapped, difference stated | A headless theme singleton; jiti-loaded Pi extensions must not rely on Pi global theme state anyway. | | `initTheme` | Mapped, difference stated | Accepted as a no-op; DSH surfaces own presentation. | | `getSettingsListTheme` | Mapped, difference stated | Returns an unstyled theme with Pi's exact field shape. | | `getSelectListTheme` | Mapped, difference stated | Returns an unstyled theme with Pi's exact field shape. | | `getMarkdownTheme` | Mapped, difference stated | Returns a plain-text headless theme; Pi terminal styling is intentionally discarded. | | `getLanguageFromPath` | Mapped, difference stated | Extension-based language detection covering common languages. | | `highlightCode` | Mapped, difference stated | Splits lines without terminal syntax colors. | | `DynamicBorder` | Same semantics | Headless implementation of Pi's one-line border component; pass an explicit color function as Pi itself recommends. | | `SettingsManager` | Mapped, difference stated | In-memory settings with Pi's getter/setter surface; DSH owns real persisted configuration. | | `InMemorySettingsStorage` | Mapped, difference stated | In-memory storage stub honoring the withLock contract. | | `FileSettingsStorage` | Mapped, difference stated | Alias of the in-memory storage; DSH owns persisted settings. | | `ModelRegistry` | Mapped, difference stated | A local registry container; DSH llm adapters own real model routing. | | `createEventBus` | Same semantics | Pi event-bus semantics: async handler isolation and unsubscribe functions. | | `readStoredCredential` | Mapped, difference stated | Reads Pi-style auth.json from the pi2dsh-owned agent directory; DSH credentials stay authoritative for DSH model calls. | | `parseSkillBlock` | Same semantics | Pi's skill_content block parser, reimplemented over the same wire shape. | | `wrapRegisteredTool` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. The runner argument is used exactly as Pi uses it (createContext + getActiveTools), which the pi2dsh projection provides. | | `ProjectTrustStore` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. The store operates on trust.json under the caller's agentDir — with the redirected getAgentDir convention that is package-visible state inside the DSH-owned pi2dsh directory. The DSH host never consults it; host trust stays a DSH decision (ctx.isProjectTrusted fails closed). | | `DefaultResourceLoader` | Mapped, difference stated | A headless resource loader honoring overrides, with empty discovery sets. | | `DefaultPackageManager` | Not available | Installing packages is owned by the DSH host and its security gates (dsh plugin add/remove behind pnpm's build-script approval). Importing it is flagged at mount time (startup check); constructing it throws a structured PiCapabilityError, and doing so during entry setup marks the package unusable. | | `ModelRuntime` | Not available | Standalone model stacks are owned by the DSH host llm configuration; packages read the ONE directory through ctx.modelRegistry. Importing it is flagged at mount time (startup check); constructing it throws a structured PiCapabilityError, and doing so during entry setup marks the package unusable. | | `createAgentSession` | Mapped, difference stated | Bridged to a genuine DSH child agent through ctx.agents (a Pi model on the options routes the child); compositions without a loop factory fail explicitly. | | `createCodingTools` | Same semantics | Pi's exact tool set composed from the vendored built-in constructors. | | `createReadOnlyTools` | Same semantics | Pi's exact read-only tool set composed from the vendored built-in constructors. | | `createBashTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createReadTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createEditTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createWriteTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createGrepTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createFindTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createLsTool` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createBashToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createReadToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createEditToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createWriteToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createGrepToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createFindToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `createLsToolDefinition` | Same semantics | Pi's built-in tool constructor, vendored byte-identical with its pure-logic closure. | | `isToolCallEventType` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isBashToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isReadToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isEditToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isWriteToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isGrepToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isFindToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `isLsToolResult` | Same semantics | Pi's exact one-line tool-event guard, reimplemented verbatim. | | `loadSkills` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. Real directory discovery with Pi's exact rules; default locations resolve through the redirected getAgentDir, i.e. inside the DSH-owned pi2dsh directory. | | `loadSkillsFromDir` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. Real directory discovery: SKILL.md roots, direct .md children, ignore files, symlink dedup, and Pi's name/description validation. | | `formatSkillsForPrompt` | Same semantics | Pi's skill prompt formatter, vendored with logic unchanged. | | `CustomEditor` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `ToolExecutionComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `FooterComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `BorderedLoader` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `CustomMessageComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `AssistantMessageComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `UserMessageComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `ExtensionSelectorComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `ExtensionInputComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `ExtensionEditorComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `SettingsSelectorComponent` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `renderDiff` | Mapped, difference stated | Plain unified-style diff lines without terminal colors. | | `truncateToVisualLines` | Mapped, difference stated | Visual-line truncation backed by Pi's vendored width math. | | `keyHint` | Mapped, difference stated | Plain-text key hint without theme styling. | | `keyText` | Mapped, difference stated | Plain-text key name without theme styling. | | `rawKeyHint` | Mapped, difference stated | Plain-text key hint without theme styling. | ## `pi-tui` Pi's terminal UI toolkit. DSH renders its own surfaces, so these are headless components with Pi-exact signatures: they construct, accept the same arguments and return plain text instead of drawing. A package that builds a component keeps working; a package whose whole purpose is drawing a terminal overlay is honest about not drawing it. **74 symbols** — 46 same semantics · 28 mapped, difference stated. | Symbol | Status | How it is served | |---|---|---| | `visibleWidth` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `truncateToWidth` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `wrapTextWithAnsi` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `sliceByColumn` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `sliceWithWidth` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `stripTerminalSequences` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getOsc8LinkAtColumn` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `normalizeTerminalOutput` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `extractAnsiCode` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getGraphemeCellRange` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getGraphemeSegmenter` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getWordSegmenter` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `applyBackgroundToLine` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isWhitespaceChar` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isPunctuationChar` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `cjkBreakRegex` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `PUNCTUATION_REGEX` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `fuzzyMatch` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `fuzzyFilter` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `parseKey` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `matchesKey` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isKeyRelease` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isKeyRepeat` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `decodeKittyPrintable` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isKittyProtocolActive` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `setKittyProtocolActive` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `Key` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getKeybindings` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. Bindings only match when a surface feeds terminal input, which DSH does not. | | `setKeybindings` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `KeybindingsManager` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `TUI_KEYBINDINGS` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `parseOsc11BackgroundColor` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `parseTerminalColorSchemeReport` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `renderLatex` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getPngDimensions` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getJpegDimensions` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getGifDimensions` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getWebpDimensions` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getImageDimensions` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `calculateImageRows` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `allocateImageId` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `encodeKitty` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. No DSH surface consumes the escape sequences. | | `encodeITerm2` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. No DSH surface consumes the escape sequences. | | `deleteKittyImage` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. No DSH surface consumes the escape sequences. | | `deleteAllKittyImages` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. No DSH surface consumes the escape sequences. | | `detectCapabilities` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. Headless environments report no image protocol. | | `getCapabilities` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `setCapabilities` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `resetCapabilitiesCache` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `getCellDimensions` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `setCellDimensions` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `hyperlink` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `imageFallback` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `CombinedAutocompleteProvider` | Mapped, difference stated | Vendored byte-identical from Pi, so semantics match Pi exactly. Suggestions surface only if a DSH UI asks for them. | | `Marked` | Same semantics | Re-exported from the same marked dependency Pi uses. | | `CURSOR_MARKER` | Same semantics | Pi's exact APC marker; vendored width math treats it as zero-width. | | `Text` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Spacer` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Container` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Box` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Markdown` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `TruncatedText` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Editor` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. Text editing state works; interactive keyboard flows do not. | | `Input` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. Value state and submit/escape callbacks work; kill-ring editing does not. | | `SelectList` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. Filtering and selection state work; keyboard interaction does not. | | `SettingsList` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. Value updates work; keyboard interaction does not. | | `ScrollView` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `VStack` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `HStack` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Loader` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `CancellableLoader` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. | | `Image` | Mapped, difference stated | Constructible headless component with Pi-exact signatures; renders plain text, never a terminal. Renders a text placeholder; image bytes flow through DSH attachments instead. | | `isFocusable` | Same semantics | Structural check preserved. | | `isViewportTUI` | Mapped, difference stated | Always false: no viewport TUI exists in DSH surfaces. | ## `pi-ai` Pi's model layer. The types and pure helpers are vendored, while everything that would open a socket routes into DSH's llm service instead — there is exactly one model path, and a package cannot reach around it to a direct transport. Providers a package brings itself become real DSH routes through `llm.registerAdapter`. **17 symbols** — 10 same semantics · 7 mapped, difference stated. | Symbol | Status | How it is served | |---|---|---| | `StringEnum` | Same semantics | Preserves Pi flat string-enum JSON Schema generation without loading provider SDKs. | | `registerProvider` | Mapped, difference stated | Recorded in a bridge-local registry; DSH llm adapters own real routing. | | `getProviders` | Mapped, difference stated | Returns the bridge-local registry contents. | | `getProvider` | Mapped, difference stated | Reads the bridge-local registry. | | `getModel` | Mapped, difference stated | Resolves no Pi model objects; DSH owns model routing. | | `getModels` | Mapped, difference stated | Returns an empty list; DSH owns model routing. | | `complete` | Mapped, difference stated | Real model calls through the DSH llm bridge (the host installs it at mount); without a mounted llm service the call fails explicitly. Provider SDKs are never loaded. | | `stream` | Mapped, difference stated | Real streaming model calls through the DSH llm bridge (the host installs it at mount); without a mounted llm service the call fails explicitly. Provider SDKs are never loaded. | | `Type` | Same semantics | Re-exported from the same typebox dependency Pi resolves for extensions. | | `uuidv7` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isContextOverflow` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isRecoverableLength` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `isRetryableAssistantError` | Same semantics | Vendored byte-identical from Pi, so semantics match Pi exactly. | | `contentText` | Same semantics | Pi's text-block joiner, reimplemented with identical semantics. | | `clampThinkingLevel` | Same semantics | Pi's clamping walk over the extended thinking-level ladder. | | `getSupportedThinkingLevels` | Same semantics | Pi's thinkingLevelMap filter, preserved. | | `modelsAreEqual` | Same semantics | Id+provider equality, preserved. | --- Back to the [capability index](README.md).