Add pi-tool-display (compact tool rendering, adaptive diffs) + pi-lsp-extension (LSP diagnostics/hover/definitions) — vendored from npm 0.5.0 / 1.3.0

This commit is contained in:
2026-08-05 07:07:51 +10:00
parent b13022a6fd
commit 41cc33d141
92 changed files with 27025 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
const TOOL_DISPLAY_API_KEY = Symbol.for("pi-tool-display.api.v1");
const TOOL_DISPLAY_PENDING_DECORATIONS_KEY = Symbol.for("pi-tool-display.pendingDecorations.v1");
export function getToolDisplayApi() {
const api = globalThis[TOOL_DISPLAY_API_KEY];
if (api?.version !== 1 || typeof api.decorateTool !== "function") {
return undefined;
}
return api;
}
export function queueToolDisplayDecoration(tool, adapter) {
const existing = globalThis[TOOL_DISPLAY_PENDING_DECORATIONS_KEY];
const queue = Array.isArray(existing) ? existing : [];
queue.push({ tool, adapter });
globalThis[TOOL_DISPLAY_PENDING_DECORATIONS_KEY] = queue;
}
export function decorateToolForDisplay(tool, adapter, options = {}) {
const api = getToolDisplayApi();
if (!api) {
queueToolDisplayDecoration(tool, adapter);
return tool;
}
try {
return api.decorateTool(tool, adapter);
} catch (error) {
if (options.suppressDecorateErrors) {
return tool;
}
throw error;
}
}
export function decorateMcpToolForDisplay(tool) {
return decorateToolForDisplay(tool, { kind: "mcp", overrideExistingRenderers: true });
}