@agimon-ai/doompi-ui 0.0.1-alpha.26 → 0.0.1-alpha.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/dist/_virtual/_rolldown/runtime.cjs +0 -1
- package/dist/adapters/pi/extension.cjs +0 -2
- package/dist/adapters/pi/extension.cjs.map +0 -1
- package/dist/adapters/pi/extension.d.cts +0 -8
- package/dist/adapters/pi/extension.d.cts.map +0 -1
- package/dist/adapters/pi/extension.d.mts +0 -8
- package/dist/adapters/pi/extension.d.mts.map +0 -1
- package/dist/adapters/pi/extension.mjs +0 -2
- package/dist/adapters/pi/extension.mjs.map +0 -1
- package/dist/adapters/pi/extensionName.cjs +0 -2
- package/dist/adapters/pi/extensionName.cjs.map +0 -1
- package/dist/adapters/pi/extensionName.d.cts +0 -16
- package/dist/adapters/pi/extensionName.d.cts.map +0 -1
- package/dist/adapters/pi/extensionName.d.mts +0 -16
- package/dist/adapters/pi/extensionName.d.mts.map +0 -1
- package/dist/adapters/pi/extensionName.mjs +0 -2
- package/dist/adapters/pi/extensionName.mjs.map +0 -1
- package/dist/adapters/pi/toolOverrides.cjs +0 -2
- package/dist/adapters/pi/toolOverrides.cjs.map +0 -1
- package/dist/adapters/pi/toolOverrides.mjs +0 -2
- package/dist/adapters/pi/toolOverrides.mjs.map +0 -1
- package/dist/adapters/telemetry/logSinkTelemetry.cjs +0 -2
- package/dist/adapters/telemetry/logSinkTelemetry.cjs.map +0 -1
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts +0 -29
- package/dist/adapters/telemetry/logSinkTelemetry.d.cts.map +0 -1
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts +0 -29
- package/dist/adapters/telemetry/logSinkTelemetry.d.mts.map +0 -1
- package/dist/adapters/telemetry/logSinkTelemetry.mjs +0 -2
- package/dist/adapters/telemetry/logSinkTelemetry.mjs.map +0 -1
- package/dist/components/configOverlay.cjs +0 -1
- package/dist/components/configOverlay.d.cts +0 -2
- package/dist/components/configOverlay.d.mts +0 -2
- package/dist/components/configOverlay.mjs +0 -1
- package/dist/components/doomEditor.cjs +0 -1
- package/dist/components/doomEditor.d.cts +0 -2
- package/dist/components/doomEditor.d.mts +0 -2
- package/dist/components/doomEditor.mjs +0 -1
- package/dist/components/doomFooter.cjs +0 -1
- package/dist/components/doomFooter.d.cts +0 -2
- package/dist/components/doomFooter.d.mts +0 -2
- package/dist/components/doomFooter.mjs +0 -1
- package/dist/components/doomHeader.cjs +0 -1
- package/dist/components/doomHeader.d.cts +0 -2
- package/dist/components/doomHeader.d.mts +0 -2
- package/dist/components/doomHeader.mjs +0 -1
- package/dist/components/doomOverlay.cjs +0 -1
- package/dist/components/doomOverlay.d.cts +0 -2
- package/dist/components/doomOverlay.d.mts +0 -2
- package/dist/components/doomOverlay.mjs +0 -1
- package/dist/components/leaderHints.cjs +0 -1
- package/dist/components/leaderHints.d.cts +0 -2
- package/dist/components/leaderHints.d.mts +0 -2
- package/dist/components/leaderHints.mjs +0 -1
- package/dist/components/matrixPicker.cjs +0 -1
- package/dist/components/matrixPicker.d.cts +0 -2
- package/dist/components/matrixPicker.d.mts +0 -2
- package/dist/components/matrixPicker.mjs +0 -1
- package/dist/components/toolsOverlay.cjs +0 -1
- package/dist/components/toolsOverlay.d.cts +0 -2
- package/dist/components/toolsOverlay.d.mts +0 -2
- package/dist/components/toolsOverlay.mjs +0 -1
- package/dist/config.cjs +0 -1
- package/dist/config.d.cts +0 -2
- package/dist/config.d.mts +0 -2
- package/dist/config.mjs +0 -1
- package/dist/extension.cjs +0 -1
- package/dist/extension.d.cts +0 -2
- package/dist/extension.d.mts +0 -2
- package/dist/extension.mjs +0 -1
- package/dist/extensionName.cjs +0 -1
- package/dist/extensionName.d.cts +0 -2
- package/dist/extensionName.d.mts +0 -2
- package/dist/extensionName.mjs +0 -1
- package/dist/extensions/pi.cjs +0 -2
- package/dist/extensions/pi.cjs.map +0 -1
- package/dist/extensions/pi.d.cts +0 -2
- package/dist/extensions/pi.d.mts +0 -2
- package/dist/extensions/pi.mjs +0 -2
- package/dist/extensions/pi.mjs.map +0 -1
- package/dist/footer.cjs +0 -1
- package/dist/footer.d.cts +0 -2
- package/dist/footer.d.mts +0 -2
- package/dist/footer.mjs +0 -1
- package/dist/harnessMetadata.cjs +0 -1
- package/dist/harnessMetadata.d.cts +0 -2
- package/dist/harnessMetadata.d.mts +0 -2
- package/dist/harnessMetadata.mjs +0 -1
- package/dist/index.cjs +0 -1
- package/dist/index.d.cts +0 -15
- package/dist/index.d.mts +0 -15
- package/dist/index.mjs +0 -1
- package/dist/leader.cjs +0 -0
- package/dist/leader.d.cts +0 -2
- package/dist/leader.d.mts +0 -2
- package/dist/leader.mjs +0 -1
- package/dist/leaderRegistry.cjs +0 -1
- package/dist/leaderRegistry.d.cts +0 -2
- package/dist/leaderRegistry.d.mts +0 -2
- package/dist/leaderRegistry.mjs +0 -1
- package/dist/logSinkTelemetry.cjs +0 -1
- package/dist/logSinkTelemetry.d.cts +0 -2
- package/dist/logSinkTelemetry.d.mts +0 -2
- package/dist/logSinkTelemetry.mjs +0 -1
- package/dist/rendering.cjs +0 -1
- package/dist/rendering.d.cts +0 -2
- package/dist/rendering.d.mts +0 -2
- package/dist/rendering.mjs +0 -1
- package/dist/services/hub/uiHub.cjs +0 -2
- package/dist/services/hub/uiHub.cjs.map +0 -1
- package/dist/services/hub/uiHub.mjs +0 -2
- package/dist/services/hub/uiHub.mjs.map +0 -1
- package/dist/services/leader/leaderRegistry.cjs +0 -2
- package/dist/services/leader/leaderRegistry.cjs.map +0 -1
- package/dist/services/leader/leaderRegistry.d.cts +0 -58
- package/dist/services/leader/leaderRegistry.d.cts.map +0 -1
- package/dist/services/leader/leaderRegistry.d.mts +0 -58
- package/dist/services/leader/leaderRegistry.d.mts.map +0 -1
- package/dist/services/leader/leaderRegistry.mjs +0 -2
- package/dist/services/leader/leaderRegistry.mjs.map +0 -1
- package/dist/services/state/uiState.cjs +0 -2
- package/dist/services/state/uiState.cjs.map +0 -1
- package/dist/services/state/uiState.d.cts +0 -38
- package/dist/services/state/uiState.d.cts.map +0 -1
- package/dist/services/state/uiState.d.mts +0 -38
- package/dist/services/state/uiState.d.mts.map +0 -1
- package/dist/services/state/uiState.mjs +0 -2
- package/dist/services/state/uiState.mjs.map +0 -1
- package/dist/services/tools/toolInventory.cjs +0 -2
- package/dist/services/tools/toolInventory.cjs.map +0 -1
- package/dist/services/tools/toolInventory.d.cts +0 -51
- package/dist/services/tools/toolInventory.d.cts.map +0 -1
- package/dist/services/tools/toolInventory.d.mts +0 -51
- package/dist/services/tools/toolInventory.d.mts.map +0 -1
- package/dist/services/tools/toolInventory.mjs +0 -2
- package/dist/services/tools/toolInventory.mjs.map +0 -1
- package/dist/skills.cjs +0 -1
- package/dist/skills.d.cts +0 -2
- package/dist/skills.d.mts +0 -2
- package/dist/skills.mjs +0 -1
- package/dist/theme.cjs +0 -1
- package/dist/theme.d.cts +0 -2
- package/dist/theme.d.mts +0 -2
- package/dist/theme.mjs +0 -1
- package/dist/toolChrome.cjs +0 -1
- package/dist/toolChrome.d.cts +0 -2
- package/dist/toolChrome.d.mts +0 -2
- package/dist/toolChrome.mjs +0 -1
- package/dist/toolInventory.cjs +0 -1
- package/dist/toolInventory.d.cts +0 -2
- package/dist/toolInventory.d.mts +0 -2
- package/dist/toolInventory.mjs +0 -1
- package/dist/tui/builtinToolRender.cjs +0 -14
- package/dist/tui/builtinToolRender.cjs.map +0 -1
- package/dist/tui/builtinToolRender.mjs +0 -14
- package/dist/tui/builtinToolRender.mjs.map +0 -1
- package/dist/tui/codeGutter.cjs +0 -2
- package/dist/tui/codeGutter.cjs.map +0 -1
- package/dist/tui/codeGutter.mjs +0 -2
- package/dist/tui/codeGutter.mjs.map +0 -1
- package/dist/tui/configOverlay.cjs +0 -0
- package/dist/tui/configOverlay.cjs.map +0 -1
- package/dist/tui/configOverlay.d.cts +0 -72
- package/dist/tui/configOverlay.d.cts.map +0 -1
- package/dist/tui/configOverlay.d.mts +0 -72
- package/dist/tui/configOverlay.d.mts.map +0 -1
- package/dist/tui/configOverlay.mjs +0 -0
- package/dist/tui/configOverlay.mjs.map +0 -1
- package/dist/tui/diffRender.cjs +0 -4
- package/dist/tui/diffRender.cjs.map +0 -1
- package/dist/tui/diffRender.mjs +0 -4
- package/dist/tui/diffRender.mjs.map +0 -1
- package/dist/tui/doomEditor.cjs +0 -2
- package/dist/tui/doomEditor.cjs.map +0 -1
- package/dist/tui/doomEditor.d.cts +0 -63
- package/dist/tui/doomEditor.d.cts.map +0 -1
- package/dist/tui/doomEditor.d.mts +0 -63
- package/dist/tui/doomEditor.d.mts.map +0 -1
- package/dist/tui/doomEditor.mjs +0 -2
- package/dist/tui/doomEditor.mjs.map +0 -1
- package/dist/tui/doomFooter.cjs +0 -2
- package/dist/tui/doomFooter.cjs.map +0 -1
- package/dist/tui/doomFooter.d.cts +0 -45
- package/dist/tui/doomFooter.d.cts.map +0 -1
- package/dist/tui/doomFooter.d.mts +0 -45
- package/dist/tui/doomFooter.d.mts.map +0 -1
- package/dist/tui/doomFooter.mjs +0 -2
- package/dist/tui/doomFooter.mjs.map +0 -1
- package/dist/tui/doomHeader.cjs +0 -2
- package/dist/tui/doomHeader.cjs.map +0 -1
- package/dist/tui/doomHeader.d.cts +0 -34
- package/dist/tui/doomHeader.d.cts.map +0 -1
- package/dist/tui/doomHeader.d.mts +0 -34
- package/dist/tui/doomHeader.d.mts.map +0 -1
- package/dist/tui/doomHeader.mjs +0 -2
- package/dist/tui/doomHeader.mjs.map +0 -1
- package/dist/tui/doomOverlay.cjs +0 -2
- package/dist/tui/doomOverlay.cjs.map +0 -1
- package/dist/tui/doomOverlay.d.cts +0 -84
- package/dist/tui/doomOverlay.d.cts.map +0 -1
- package/dist/tui/doomOverlay.d.mts +0 -84
- package/dist/tui/doomOverlay.d.mts.map +0 -1
- package/dist/tui/doomOverlay.mjs +0 -2
- package/dist/tui/doomOverlay.mjs.map +0 -1
- package/dist/tui/leaderHints.cjs +0 -2
- package/dist/tui/leaderHints.cjs.map +0 -1
- package/dist/tui/leaderHints.d.cts +0 -36
- package/dist/tui/leaderHints.d.cts.map +0 -1
- package/dist/tui/leaderHints.d.mts +0 -36
- package/dist/tui/leaderHints.d.mts.map +0 -1
- package/dist/tui/leaderHints.mjs +0 -2
- package/dist/tui/leaderHints.mjs.map +0 -1
- package/dist/tui/matrixPicker.cjs +0 -2
- package/dist/tui/matrixPicker.cjs.map +0 -1
- package/dist/tui/matrixPicker.d.cts +0 -54
- package/dist/tui/matrixPicker.d.cts.map +0 -1
- package/dist/tui/matrixPicker.d.mts +0 -54
- package/dist/tui/matrixPicker.d.mts.map +0 -1
- package/dist/tui/matrixPicker.mjs +0 -2
- package/dist/tui/matrixPicker.mjs.map +0 -1
- package/dist/tui/rendering.cjs +0 -2
- package/dist/tui/rendering.cjs.map +0 -1
- package/dist/tui/rendering.d.cts +0 -16
- package/dist/tui/rendering.d.cts.map +0 -1
- package/dist/tui/rendering.d.mts +0 -16
- package/dist/tui/rendering.d.mts.map +0 -1
- package/dist/tui/rendering.mjs +0 -2
- package/dist/tui/rendering.mjs.map +0 -1
- package/dist/tui/theme.cjs +0 -2
- package/dist/tui/theme.cjs.map +0 -1
- package/dist/tui/theme.d.cts +0 -103
- package/dist/tui/theme.d.cts.map +0 -1
- package/dist/tui/theme.d.mts +0 -103
- package/dist/tui/theme.d.mts.map +0 -1
- package/dist/tui/theme.mjs +0 -2
- package/dist/tui/theme.mjs.map +0 -1
- package/dist/tui/toolChrome.cjs +0 -2
- package/dist/tui/toolChrome.cjs.map +0 -1
- package/dist/tui/toolChrome.d.cts +0 -30
- package/dist/tui/toolChrome.d.cts.map +0 -1
- package/dist/tui/toolChrome.d.mts +0 -30
- package/dist/tui/toolChrome.d.mts.map +0 -1
- package/dist/tui/toolChrome.mjs +0 -2
- package/dist/tui/toolChrome.mjs.map +0 -1
- package/dist/tui/toolsOverlay.cjs +0 -2
- package/dist/tui/toolsOverlay.cjs.map +0 -1
- package/dist/tui/toolsOverlay.d.cts +0 -29
- package/dist/tui/toolsOverlay.d.cts.map +0 -1
- package/dist/tui/toolsOverlay.d.mts +0 -29
- package/dist/tui/toolsOverlay.d.mts.map +0 -1
- package/dist/tui/toolsOverlay.mjs +0 -2
- package/dist/tui/toolsOverlay.mjs.map +0 -1
- package/dist/types/harnessMetadata.cjs +0 -2
- package/dist/types/harnessMetadata.cjs.map +0 -1
- package/dist/types/harnessMetadata.d.cts +0 -21
- package/dist/types/harnessMetadata.d.cts.map +0 -1
- package/dist/types/harnessMetadata.d.mts +0 -21
- package/dist/types/harnessMetadata.d.mts.map +0 -1
- package/dist/types/harnessMetadata.mjs +0 -2
- package/dist/types/harnessMetadata.mjs.map +0 -1
- package/dist/uiState.cjs +0 -1
- package/dist/uiState.d.cts +0 -2
- package/dist/uiState.d.mts +0 -2
- package/dist/uiState.mjs +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi-ui",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.27",
|
|
4
4
|
"description": "Leader-key menus, themes, and TUI components for DoomPi and Pi extensions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -155,8 +155,8 @@
|
|
|
155
155
|
"dependencies": {
|
|
156
156
|
"@deepseek-ai/cordis": "4.0.1",
|
|
157
157
|
"yaml": "2.9.0",
|
|
158
|
-
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.
|
|
159
|
-
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.
|
|
158
|
+
"@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.27",
|
|
159
|
+
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.27"
|
|
160
160
|
},
|
|
161
161
|
"devDependencies": {
|
|
162
162
|
"@earendil-works/pi-coding-agent": "0.84.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));exports.__toESM=s;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../services/leader/leaderRegistry.cjs"),n=require("../../services/hub/uiHub.cjs"),r=require("../../services/state/uiState.cjs"),i=require("../../services/tools/toolInventory.cjs"),a=require("../../tui/configOverlay.cjs"),o=require("../../tui/doomEditor.cjs"),s=require("../../tui/doomFooter.cjs"),c=require("../../tui/doomHeader.cjs"),l=require("../../tui/leaderHints.cjs");require("../../tui/theme.cjs");const u=require("../../tui/toolsOverlay.cjs"),d=require("../telemetry/logSinkTelemetry.cjs"),f=require("./extensionName.cjs"),p=require("./toolOverrides.cjs");let m=require("node:path");m=e.__toESM(m,1);let h=require("@agimon-ai/doompi-extension-contracts/cordis-host"),g=require("@agimon-ai/doompi-extension-contracts/mcp-status"),_=require("@agimon-ai/doompi-extension-contracts/mode"),v=require("@agimon-ai/doompi-extension-contracts/ui-hub");const y=`doom-pi-leader`,b=`belowEditor`,x=`warning`,S=`doom-pi`,C=new Set([`hotkeys`]),w=`@agimon-ai/doompi-ui`;function T(e,t){let n=e.trim().replace(/\s+/g,` `);if(!n)return;let r=n.slice(0,64).trimEnd();return`${S} · ${r} · ${m.default.basename(t)||t}`}function E(e,{pi:h,telemetry:E}){p.registerBuiltinToolUi(h,process.cwd());let D=new r.DoomUiState,O=new t.DoomLeaderRegistry,k=new Set,A,j,M=0,N=!1,P=()=>(0,g.readDoomMcpStatus)(e)?.getSnapshot().servers;h.registerCommand(`tools`,{description:`Browse the tools available in this session`,handler:async(e,t)=>{let n=P(),r=i.buildToolSources({tools:h.getAllTools(),activeTools:h.getActiveTools(),...n?{mcpServers:n}:{},resolveExtensionName:f.extensionName,resolveExtensionToolSource:e=>f.extensionToolSource(h,e)});await u.openToolsOverlay(t,r)}}),h.registerCommand(`config`,{description:`Browse and change the settings extensions contribute`,handler:async(e,t)=>{await a.openConfigOverlay(t,I.config)}});let F=e=>{for(let t of e){let e=t.bindingId?` (${t.bindingId})`:``,n=`Leader contribution from ${t.source}${e}: ${t.message}`;k.has(n)||(k.add(n),E.recordWarning(d.UI_EVENT.leaderContributionRejected,t.message,{"leader.source":t.source,...t.bindingId?{"leader.binding.id":t.bindingId}:{}}),j?.mode===`tui`&&j.ui.notify(n,x))}},I=n.createDoomUiHub({leaderRegistry:O,reportDiagnostics:F});e.provide(v.DOOM_UI_HUB_SERVICE,I),e.inject([_.DOOM_MINOR_MODE_CATALOG_SERVICE],e=>{let t=(0,_.createMinorModeCatalogClient)((0,_.requireMinorModeCatalog)(e)),n=()=>D.setModes(r.projectMinorModeRecords(t.list())),i=t.subscribe(n);return n(),()=>{i(),D.setModes([])}}),h.on(`session_start`,(e,t)=>{j=t,I.setContext(t);let n=++M;if(F(O.flush()),N=t.sessionManager.getEntries().some(e=>e.type===`message`),t.mode!==`tui`)return;for(let e of k)t.ui.notify(e,x);let r=process.env.DOOMPI_THEME||`doom-pi-dark`,i=t.ui.setTheme(r);i.success||(t.ui.notify(`Could not apply Doom Pi theme: ${i.error}`,x),E.recordWarning(d.UI_EVENT.themeApplyFailed,i.error??`Unknown theme error`,{"ui.theme":r})),t.ui.setTitle(`${S} · ${m.default.basename(t.cwd)||t.cwd} · pi/coding`),t.ui.setHeader((e,n)=>new c.DoomHeader(n,t.cwd,void 0,t,()=>e.terminal.rows)),t.ui.setFooter((e,n,r)=>(A=r,new s.DoomFooter(e,n,t,r,I.footer,D))),t.ui.setEditorComponent((e,r,i)=>new o.DoomEditor(e,r,i,D,e=>{if(!e.active){t.ui.setWidget(y,void 0,{placement:b});return}t.ui.setWidget(y,(n,r)=>new l.LeaderHints(r,e,t,A,D.getModes()),{placement:b})},void 0,t.ui.theme,{registry:O,isCommandAvailable:e=>C.has(e)||h.getCommands().some(t=>t.name===e),onLeaderAction:(e,r)=>{if(j!==t||M!==n){t.ui.notify(`Leader action ${r} is unavailable.`,x);return}I.invokeLeaderAction(e,r)},onUnavailableCommand:e=>{E.recordWarning(d.UI_EVENT.leaderCommandUnavailable,`Leader command /${e} is unavailable.`,{"ui.kind":`command`}),t.ui.notify(`Leader command /${e} is unavailable.`,x)},onUnavailableAction:e=>{E.recordWarning(d.UI_EVENT.leaderActionUnavailable,`Leader action ${e} is unavailable.`,{"ui.kind":`action`}),t.ui.notify(`Leader action ${e} is unavailable.`,x)}})),E.recordEvent(d.UI_EVENT.shellInstalled,{"ui.theme":r,"ui.theme.applied":i.success,"ui.leader.group.count":O.getGroup([])?.options.length??0})}),h.on(`input`,(e,t)=>{if(t.mode!==`tui`||e.source!==`interactive`||N)return;N=!0;let n=T(e.text,t.cwd);n&&t.ui.setTitle(n)}),e.effect(()=>async()=>{let e=j;++M,j=void 0,I.setContext(void 0),A=void 0,I.dispose(),D.reset(),e?.mode===`tui`&&e.ui.setWidget(y,void 0,{placement:b}),await E.shutdown()},w)}async function D(e,t=d.createUiTelemetry()){let n=await(0,h.connectDoomCordisHost)(e,w),r=n.root.plugin(E,{pi:e,telemetry:t});try{await r}catch(e){try{await r.dispose()}finally{await n.dispose()}throw e}let i;e.on(`session_shutdown`,()=>i??=(async()=>{try{await r.dispose()}finally{await n.dispose()}})())}exports.doomPiUiExtension=D;
|
|
2
|
-
//# sourceMappingURL=extension.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.cjs","names":["path","DoomUiState","DoomLeaderRegistry","readDoomMcpStatus","buildToolSources","extensionName","extensionToolSource","openToolsOverlay","openConfigOverlay","UI_EVENT","createDoomUiHub","DOOM_UI_HUB_SERVICE","DOOM_MINOR_MODE_CATALOG_SERVICE","createMinorModeCatalogClient","requireMinorModeCatalog","projectMinorModeRecords","DoomHeader","DoomFooter","DoomEditor","LeaderHints","createUiTelemetry","connectDoomCordisHost"],"sources":["../../../src/adapters/pi/extension.ts"],"sourcesContent":["import path from 'node:path';\nimport { connectDoomCordisHost } from '@agimon-ai/doompi-extension-contracts/cordis-host';\nimport { readDoomMcpStatus } from '@agimon-ai/doompi-extension-contracts/mcp-status';\nimport {\n DOOM_MINOR_MODE_CATALOG_SERVICE,\n createMinorModeCatalogClient,\n requireMinorModeCatalog,\n} from '@agimon-ai/doompi-extension-contracts/mode';\nimport { DOOM_UI_HUB_SERVICE } from '@agimon-ai/doompi-extension-contracts/ui-hub';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI, ExtensionContext, ReadonlyFooterDataProvider } from '@earendil-works/pi-coding-agent';\nimport { type DoomLeaderDiagnostic, DoomLeaderRegistry } from '../../services/leader/leaderRegistry.ts';\nimport { createDoomUiHub } from '../../services/hub/uiHub.ts';\nimport { DoomUiState, type LeaderSnapshot, projectMinorModeRecords } from '../../services/state/uiState.ts';\nimport { buildToolSources, type McpServerStatus } from '../../services/tools/toolInventory.ts';\nimport { openConfigOverlay } from '../../tui/configOverlay.ts';\nimport { DoomEditor } from '../../tui/doomEditor.ts';\nimport { DoomFooter } from '../../tui/doomFooter.ts';\nimport { DoomHeader } from '../../tui/doomHeader.ts';\nimport { LeaderHints } from '../../tui/leaderHints.ts';\nimport { DEFAULT_THEME_NAME } from '../../tui/theme.ts';\nimport { openToolsOverlay } from '../../tui/toolsOverlay.ts';\nimport { createUiTelemetry, UI_EVENT, type UiTelemetry } from '../telemetry/logSinkTelemetry.ts';\nimport { extensionName, extensionToolSource } from './extensionName.ts';\nimport { registerBuiltinToolUi } from './toolOverrides.ts';\n\nconst LEADER_WIDGET_KEY = 'doom-pi-leader';\nconst TUI_MODE = 'tui';\nconst WIDGET_PLACEMENT = 'belowEditor';\nconst WARNING_STYLE = 'warning';\nconst THEME_ENVIRONMENT_KEY = 'DOOMPI_THEME';\nconst HOTKEYS_COMMAND = 'hotkeys';\nconst TOOLS_COMMAND = 'tools';\nconst CONFIG_COMMAND = 'config';\nconst SESSION_START_EVENT = 'session_start';\nconst SESSION_MESSAGE_ENTRY = 'message';\nconst INPUT_EVENT = 'input';\nconst INTERACTIVE_INPUT_SOURCE = 'interactive';\nconst SESSION_SHUTDOWN_EVENT = 'session_shutdown';\nconst TITLE_MESSAGE_MAX_LENGTH = 64;\nconst TITLE_PREFIX = 'doom-pi';\nconst BUILTIN_LEADER_COMMANDS = new Set([HOTKEYS_COMMAND]);\nconst PACKAGE_SOURCE = '@agimon-ai/doompi-ui';\n\nfunction createMessageTitle(message: string, cwd: string): string | undefined {\n const normalizedMessage = message.trim().replace(/\\s+/g, ' ');\n if (!normalizedMessage) return undefined;\n const messageTitle = normalizedMessage.slice(0, TITLE_MESSAGE_MAX_LENGTH).trimEnd();\n return `${TITLE_PREFIX} · ${messageTitle} · ${path.basename(cwd) || cwd}`;\n}\n\ninterface UiPluginOptions {\n readonly pi: ExtensionAPI;\n readonly telemetry: UiTelemetry;\n}\n\nfunction doomPiUiPlugin(cordis: Context, { pi, telemetry }: UiPluginOptions): void {\n registerBuiltinToolUi(pi, process.cwd());\n const uiState = new DoomUiState();\n const leaderRegistry = new DoomLeaderRegistry();\n const pendingDiagnostics = new Set<string>();\n let footerData: ReadonlyFooterDataProvider | undefined;\n let activeContext: ExtensionContext | undefined;\n let sessionGeneration = 0;\n let hasSessionMessage = false;\n\n /**\n * Asks the MCP extension what it is currently connected to.\n *\n * No answer is a normal session: `--no-mcp` leaves nobody providing the query,\n * and the panel simply lists MCP tools under the extension that registered them.\n */\n const readMcpServers = (): readonly McpServerStatus[] | undefined => readDoomMcpStatus(cordis)?.getSnapshot().servers;\n\n pi.registerCommand(TOOLS_COMMAND, {\n description: 'Browse the tools available in this session',\n handler: async (_args, ctx) => {\n // Read at open time so a reconnected server or a plan-mode tool swap shows\n // up without restarting the session.\n const mcpServers = readMcpServers();\n const sources = buildToolSources({\n tools: pi.getAllTools(),\n activeTools: pi.getActiveTools(),\n ...(mcpServers ? { mcpServers } : {}),\n resolveExtensionName: extensionName,\n resolveExtensionToolSource: (toolName) => extensionToolSource(pi, toolName),\n });\n await openToolsOverlay(ctx, sources);\n },\n });\n\n pi.registerCommand(CONFIG_COMMAND, {\n description: 'Browse and change the settings extensions contribute',\n handler: async (_args, ctx) => {\n // The registry is passed live rather than snapshotted: a contributor can be\n // fetching or installing something while the panel is open, and that\n // progress is meant to land in it.\n await openConfigOverlay(ctx, hub.config);\n },\n });\n\n const reportDiagnostics = (diagnostics: readonly DoomLeaderDiagnostic[]): void => {\n for (const diagnostic of diagnostics) {\n const binding = diagnostic.bindingId ? ` (${diagnostic.bindingId})` : '';\n const message = `Leader contribution from ${diagnostic.source}${binding}: ${diagnostic.message}`;\n if (pendingDiagnostics.has(message)) continue;\n pendingDiagnostics.add(message);\n // A rejected contribution silently drops another extension's keybindings,\n // and the notice below only reaches a run that has a TUI attached.\n void telemetry.recordWarning(UI_EVENT.leaderContributionRejected, diagnostic.message, {\n 'leader.source': diagnostic.source,\n ...(diagnostic.bindingId ? { 'leader.binding.id': diagnostic.bindingId } : {}),\n });\n if (activeContext?.mode === TUI_MODE) activeContext.ui.notify(message, WARNING_STYLE);\n }\n };\n\n const hub = createDoomUiHub({ leaderRegistry, reportDiagnostics });\n cordis.provide(DOOM_UI_HUB_SERVICE, hub);\n cordis.inject([DOOM_MINOR_MODE_CATALOG_SERVICE], (modeContext) => {\n const catalog = createMinorModeCatalogClient(requireMinorModeCatalog(modeContext));\n const update = (): void => uiState.setModes(projectMinorModeRecords(catalog.list()));\n const dispose = catalog.subscribe(update);\n update();\n return () => {\n dispose();\n uiState.setModes([]);\n };\n });\n\n pi.on(SESSION_START_EVENT, (_event, ctx) => {\n activeContext = ctx;\n hub.setContext(ctx);\n const activeGeneration = ++sessionGeneration;\n reportDiagnostics(leaderRegistry.flush());\n hasSessionMessage = ctx.sessionManager.getEntries().some((entry) => entry.type === SESSION_MESSAGE_ENTRY);\n if (ctx.mode !== TUI_MODE) return;\n for (const message of pendingDiagnostics) ctx.ui.notify(message, WARNING_STYLE);\n\n const themeName = process.env[THEME_ENVIRONMENT_KEY] || DEFAULT_THEME_NAME;\n const themeResult = ctx.ui.setTheme(themeName);\n if (!themeResult.success) {\n ctx.ui.notify(`Could not apply Doom Pi theme: ${themeResult.error}`, WARNING_STYLE);\n void telemetry.recordWarning(UI_EVENT.themeApplyFailed, themeResult.error ?? 'Unknown theme error', {\n 'ui.theme': themeName,\n });\n }\n\n ctx.ui.setTitle(`${TITLE_PREFIX} · ${path.basename(ctx.cwd) || ctx.cwd} · pi/coding`);\n ctx.ui.setHeader((tui, theme) => new DoomHeader(theme, ctx.cwd, undefined, ctx, () => tui.terminal.rows));\n ctx.ui.setFooter((tui, theme, data) => {\n footerData = data;\n return new DoomFooter(tui, theme, ctx, data, hub.footer, uiState);\n });\n ctx.ui.setEditorComponent(\n (tui, editorTheme, keybindings) =>\n new DoomEditor(\n tui,\n editorTheme,\n keybindings,\n uiState,\n (snapshot: LeaderSnapshot) => {\n if (!snapshot.active) {\n ctx.ui.setWidget(LEADER_WIDGET_KEY, undefined, { placement: WIDGET_PLACEMENT });\n return;\n }\n ctx.ui.setWidget(\n LEADER_WIDGET_KEY,\n (_widgetTui, widgetTheme) => new LeaderHints(widgetTheme, snapshot, ctx, footerData, uiState.getModes()),\n { placement: WIDGET_PLACEMENT },\n );\n },\n undefined,\n ctx.ui.theme,\n {\n registry: leaderRegistry,\n isCommandAvailable: (commandName) =>\n BUILTIN_LEADER_COMMANDS.has(commandName) ||\n pi.getCommands().some((command) => command.name === commandName),\n onLeaderAction: (source, action) => {\n if (activeContext !== ctx || sessionGeneration !== activeGeneration) {\n ctx.ui.notify(`Leader action ${action} is unavailable.`, WARNING_STYLE);\n return;\n }\n hub.invokeLeaderAction(source, action);\n },\n onUnavailableCommand: (commandName) => {\n void telemetry.recordWarning(\n UI_EVENT.leaderCommandUnavailable,\n `Leader command /${commandName} is unavailable.`,\n { 'ui.kind': 'command' },\n );\n ctx.ui.notify(`Leader command /${commandName} is unavailable.`, WARNING_STYLE);\n },\n onUnavailableAction: (action) => {\n void telemetry.recordWarning(\n UI_EVENT.leaderActionUnavailable,\n `Leader action ${action} is unavailable.`,\n {\n 'ui.kind': 'action',\n },\n );\n ctx.ui.notify(`Leader action ${action} is unavailable.`, WARNING_STYLE);\n },\n },\n ),\n );\n\n void telemetry.recordEvent(UI_EVENT.shellInstalled, {\n 'ui.theme': themeName,\n 'ui.theme.applied': themeResult.success,\n 'ui.leader.group.count': leaderRegistry.getGroup([])?.options.length ?? 0,\n });\n });\n\n pi.on(INPUT_EVENT, (event, ctx) => {\n if (ctx.mode !== TUI_MODE || event.source !== INTERACTIVE_INPUT_SOURCE || hasSessionMessage) return;\n hasSessionMessage = true;\n const title = createMessageTitle(event.text, ctx.cwd);\n if (title) ctx.ui.setTitle(title);\n });\n\n cordis.effect(\n () => async () => {\n const context = activeContext;\n ++sessionGeneration;\n activeContext = undefined;\n hub.setContext(undefined);\n footerData = undefined;\n hub.dispose();\n uiState.reset();\n if (context?.mode === TUI_MODE) {\n context.ui.setWidget(LEADER_WIDGET_KEY, undefined, { placement: WIDGET_PLACEMENT });\n }\n await telemetry.shutdown();\n },\n PACKAGE_SOURCE,\n );\n}\n\n/** The package's standard Pi factory, mounted under the session Cordis host. */\nexport async function doomPiUiExtension(pi: ExtensionAPI, telemetry: UiTelemetry = createUiTelemetry()): Promise<void> {\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const fiber = connection.root.plugin(doomPiUiPlugin, { pi, telemetry });\n try {\n await fiber;\n } catch (error) {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n throw error;\n }\n\n let disposal: Promise<void> | undefined;\n pi.on(\n SESSION_SHUTDOWN_EVENT,\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { UiTelemetry } from "../telemetry/logSinkTelemetry.cjs";
|
|
2
|
-
import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
3
|
-
//#region src/adapters/pi/extension.d.ts
|
|
4
|
-
/** The package's standard Pi factory, mounted under the session Cordis host. */
|
|
5
|
-
declare function doomPiUiExtension(pi: ExtensionAPI, telemetry?: UiTelemetry): Promise<void>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { doomPiUiExtension };
|
|
8
|
-
//# sourceMappingURL=extension.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.cts","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"mappings":";;;;iBAiPsB,kBAAkB,IAAI,cAAc,YAAW,cAAoC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { UiTelemetry } from "../telemetry/logSinkTelemetry.mjs";
|
|
2
|
-
import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
3
|
-
//#region src/adapters/pi/extension.d.ts
|
|
4
|
-
/** The package's standard Pi factory, mounted under the session Cordis host. */
|
|
5
|
-
declare function doomPiUiExtension(pi: ExtensionAPI, telemetry?: UiTelemetry): Promise<void>;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { doomPiUiExtension };
|
|
8
|
-
//# sourceMappingURL=extension.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.mts","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"mappings":";;;;iBAiPsB,kBAAkB,IAAI,cAAc,YAAW,cAAoC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{DoomLeaderRegistry as e}from"../../services/leader/leaderRegistry.mjs";import{createDoomUiHub as t}from"../../services/hub/uiHub.mjs";import{DoomUiState as n,projectMinorModeRecords as r}from"../../services/state/uiState.mjs";import{buildToolSources as i}from"../../services/tools/toolInventory.mjs";import{openConfigOverlay as a}from"../../tui/configOverlay.mjs";import{DoomEditor as o}from"../../tui/doomEditor.mjs";import{DoomFooter as s}from"../../tui/doomFooter.mjs";import{DoomHeader as c}from"../../tui/doomHeader.mjs";import{LeaderHints as l}from"../../tui/leaderHints.mjs";import"../../tui/theme.mjs";import{openToolsOverlay as u}from"../../tui/toolsOverlay.mjs";import{UI_EVENT as d,createUiTelemetry as f}from"../telemetry/logSinkTelemetry.mjs";import{extensionName as p,extensionToolSource as m}from"./extensionName.mjs";import{registerBuiltinToolUi as h}from"./toolOverrides.mjs";import g from"node:path";import{connectDoomCordisHost as _}from"@agimon-ai/doompi-extension-contracts/cordis-host";import{readDoomMcpStatus as v}from"@agimon-ai/doompi-extension-contracts/mcp-status";import{DOOM_MINOR_MODE_CATALOG_SERVICE as y,createMinorModeCatalogClient as b,requireMinorModeCatalog as x}from"@agimon-ai/doompi-extension-contracts/mode";import{DOOM_UI_HUB_SERVICE as S}from"@agimon-ai/doompi-extension-contracts/ui-hub";const C=`doom-pi-leader`,w=`belowEditor`,T=`warning`,E=`doom-pi`,D=new Set([`hotkeys`]),O=`@agimon-ai/doompi-ui`;function k(e,t){let n=e.trim().replace(/\s+/g,` `);if(!n)return;let r=n.slice(0,64).trimEnd();return`${E} · ${r} · ${g.basename(t)||t}`}function A(f,{pi:_,telemetry:A}){h(_,process.cwd());let j=new n,M=new e,N=new Set,P,F,I=0,L=!1,R=()=>v(f)?.getSnapshot().servers;_.registerCommand(`tools`,{description:`Browse the tools available in this session`,handler:async(e,t)=>{let n=R(),r=i({tools:_.getAllTools(),activeTools:_.getActiveTools(),...n?{mcpServers:n}:{},resolveExtensionName:p,resolveExtensionToolSource:e=>m(_,e)});await u(t,r)}}),_.registerCommand(`config`,{description:`Browse and change the settings extensions contribute`,handler:async(e,t)=>{await a(t,B.config)}});let z=e=>{for(let t of e){let e=t.bindingId?` (${t.bindingId})`:``,n=`Leader contribution from ${t.source}${e}: ${t.message}`;N.has(n)||(N.add(n),A.recordWarning(d.leaderContributionRejected,t.message,{"leader.source":t.source,...t.bindingId?{"leader.binding.id":t.bindingId}:{}}),F?.mode===`tui`&&F.ui.notify(n,T))}},B=t({leaderRegistry:M,reportDiagnostics:z});f.provide(S,B),f.inject([y],e=>{let t=b(x(e)),n=()=>j.setModes(r(t.list())),i=t.subscribe(n);return n(),()=>{i(),j.setModes([])}}),_.on(`session_start`,(e,t)=>{F=t,B.setContext(t);let n=++I;if(z(M.flush()),L=t.sessionManager.getEntries().some(e=>e.type===`message`),t.mode!==`tui`)return;for(let e of N)t.ui.notify(e,T);let r=process.env.DOOMPI_THEME||`doom-pi-dark`,i=t.ui.setTheme(r);i.success||(t.ui.notify(`Could not apply Doom Pi theme: ${i.error}`,T),A.recordWarning(d.themeApplyFailed,i.error??`Unknown theme error`,{"ui.theme":r})),t.ui.setTitle(`${E} · ${g.basename(t.cwd)||t.cwd} · pi/coding`),t.ui.setHeader((e,n)=>new c(n,t.cwd,void 0,t,()=>e.terminal.rows)),t.ui.setFooter((e,n,r)=>(P=r,new s(e,n,t,r,B.footer,j))),t.ui.setEditorComponent((e,r,i)=>new o(e,r,i,j,e=>{if(!e.active){t.ui.setWidget(C,void 0,{placement:w});return}t.ui.setWidget(C,(n,r)=>new l(r,e,t,P,j.getModes()),{placement:w})},void 0,t.ui.theme,{registry:M,isCommandAvailable:e=>D.has(e)||_.getCommands().some(t=>t.name===e),onLeaderAction:(e,r)=>{if(F!==t||I!==n){t.ui.notify(`Leader action ${r} is unavailable.`,T);return}B.invokeLeaderAction(e,r)},onUnavailableCommand:e=>{A.recordWarning(d.leaderCommandUnavailable,`Leader command /${e} is unavailable.`,{"ui.kind":`command`}),t.ui.notify(`Leader command /${e} is unavailable.`,T)},onUnavailableAction:e=>{A.recordWarning(d.leaderActionUnavailable,`Leader action ${e} is unavailable.`,{"ui.kind":`action`}),t.ui.notify(`Leader action ${e} is unavailable.`,T)}})),A.recordEvent(d.shellInstalled,{"ui.theme":r,"ui.theme.applied":i.success,"ui.leader.group.count":M.getGroup([])?.options.length??0})}),_.on(`input`,(e,t)=>{if(t.mode!==`tui`||e.source!==`interactive`||L)return;L=!0;let n=k(e.text,t.cwd);n&&t.ui.setTitle(n)}),f.effect(()=>async()=>{let e=F;++I,F=void 0,B.setContext(void 0),P=void 0,B.dispose(),j.reset(),e?.mode===`tui`&&e.ui.setWidget(C,void 0,{placement:w}),await A.shutdown()},O)}async function j(e,t=f()){let n=await _(e,O),r=n.root.plugin(A,{pi:e,telemetry:t});try{await r}catch(e){try{await r.dispose()}finally{await n.dispose()}throw e}let i;e.on(`session_shutdown`,()=>i??=(async()=>{try{await r.dispose()}finally{await n.dispose()}})())}export{j as doomPiUiExtension};
|
|
2
|
-
//# sourceMappingURL=extension.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension.mjs","names":[],"sources":["../../../src/adapters/pi/extension.ts"],"sourcesContent":["import path from 'node:path';\nimport { connectDoomCordisHost } from '@agimon-ai/doompi-extension-contracts/cordis-host';\nimport { readDoomMcpStatus } from '@agimon-ai/doompi-extension-contracts/mcp-status';\nimport {\n DOOM_MINOR_MODE_CATALOG_SERVICE,\n createMinorModeCatalogClient,\n requireMinorModeCatalog,\n} from '@agimon-ai/doompi-extension-contracts/mode';\nimport { DOOM_UI_HUB_SERVICE } from '@agimon-ai/doompi-extension-contracts/ui-hub';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { ExtensionAPI, ExtensionContext, ReadonlyFooterDataProvider } from '@earendil-works/pi-coding-agent';\nimport { type DoomLeaderDiagnostic, DoomLeaderRegistry } from '../../services/leader/leaderRegistry.ts';\nimport { createDoomUiHub } from '../../services/hub/uiHub.ts';\nimport { DoomUiState, type LeaderSnapshot, projectMinorModeRecords } from '../../services/state/uiState.ts';\nimport { buildToolSources, type McpServerStatus } from '../../services/tools/toolInventory.ts';\nimport { openConfigOverlay } from '../../tui/configOverlay.ts';\nimport { DoomEditor } from '../../tui/doomEditor.ts';\nimport { DoomFooter } from '../../tui/doomFooter.ts';\nimport { DoomHeader } from '../../tui/doomHeader.ts';\nimport { LeaderHints } from '../../tui/leaderHints.ts';\nimport { DEFAULT_THEME_NAME } from '../../tui/theme.ts';\nimport { openToolsOverlay } from '../../tui/toolsOverlay.ts';\nimport { createUiTelemetry, UI_EVENT, type UiTelemetry } from '../telemetry/logSinkTelemetry.ts';\nimport { extensionName, extensionToolSource } from './extensionName.ts';\nimport { registerBuiltinToolUi } from './toolOverrides.ts';\n\nconst LEADER_WIDGET_KEY = 'doom-pi-leader';\nconst TUI_MODE = 'tui';\nconst WIDGET_PLACEMENT = 'belowEditor';\nconst WARNING_STYLE = 'warning';\nconst THEME_ENVIRONMENT_KEY = 'DOOMPI_THEME';\nconst HOTKEYS_COMMAND = 'hotkeys';\nconst TOOLS_COMMAND = 'tools';\nconst CONFIG_COMMAND = 'config';\nconst SESSION_START_EVENT = 'session_start';\nconst SESSION_MESSAGE_ENTRY = 'message';\nconst INPUT_EVENT = 'input';\nconst INTERACTIVE_INPUT_SOURCE = 'interactive';\nconst SESSION_SHUTDOWN_EVENT = 'session_shutdown';\nconst TITLE_MESSAGE_MAX_LENGTH = 64;\nconst TITLE_PREFIX = 'doom-pi';\nconst BUILTIN_LEADER_COMMANDS = new Set([HOTKEYS_COMMAND]);\nconst PACKAGE_SOURCE = '@agimon-ai/doompi-ui';\n\nfunction createMessageTitle(message: string, cwd: string): string | undefined {\n const normalizedMessage = message.trim().replace(/\\s+/g, ' ');\n if (!normalizedMessage) return undefined;\n const messageTitle = normalizedMessage.slice(0, TITLE_MESSAGE_MAX_LENGTH).trimEnd();\n return `${TITLE_PREFIX} · ${messageTitle} · ${path.basename(cwd) || cwd}`;\n}\n\ninterface UiPluginOptions {\n readonly pi: ExtensionAPI;\n readonly telemetry: UiTelemetry;\n}\n\nfunction doomPiUiPlugin(cordis: Context, { pi, telemetry }: UiPluginOptions): void {\n registerBuiltinToolUi(pi, process.cwd());\n const uiState = new DoomUiState();\n const leaderRegistry = new DoomLeaderRegistry();\n const pendingDiagnostics = new Set<string>();\n let footerData: ReadonlyFooterDataProvider | undefined;\n let activeContext: ExtensionContext | undefined;\n let sessionGeneration = 0;\n let hasSessionMessage = false;\n\n /**\n * Asks the MCP extension what it is currently connected to.\n *\n * No answer is a normal session: `--no-mcp` leaves nobody providing the query,\n * and the panel simply lists MCP tools under the extension that registered them.\n */\n const readMcpServers = (): readonly McpServerStatus[] | undefined => readDoomMcpStatus(cordis)?.getSnapshot().servers;\n\n pi.registerCommand(TOOLS_COMMAND, {\n description: 'Browse the tools available in this session',\n handler: async (_args, ctx) => {\n // Read at open time so a reconnected server or a plan-mode tool swap shows\n // up without restarting the session.\n const mcpServers = readMcpServers();\n const sources = buildToolSources({\n tools: pi.getAllTools(),\n activeTools: pi.getActiveTools(),\n ...(mcpServers ? { mcpServers } : {}),\n resolveExtensionName: extensionName,\n resolveExtensionToolSource: (toolName) => extensionToolSource(pi, toolName),\n });\n await openToolsOverlay(ctx, sources);\n },\n });\n\n pi.registerCommand(CONFIG_COMMAND, {\n description: 'Browse and change the settings extensions contribute',\n handler: async (_args, ctx) => {\n // The registry is passed live rather than snapshotted: a contributor can be\n // fetching or installing something while the panel is open, and that\n // progress is meant to land in it.\n await openConfigOverlay(ctx, hub.config);\n },\n });\n\n const reportDiagnostics = (diagnostics: readonly DoomLeaderDiagnostic[]): void => {\n for (const diagnostic of diagnostics) {\n const binding = diagnostic.bindingId ? ` (${diagnostic.bindingId})` : '';\n const message = `Leader contribution from ${diagnostic.source}${binding}: ${diagnostic.message}`;\n if (pendingDiagnostics.has(message)) continue;\n pendingDiagnostics.add(message);\n // A rejected contribution silently drops another extension's keybindings,\n // and the notice below only reaches a run that has a TUI attached.\n void telemetry.recordWarning(UI_EVENT.leaderContributionRejected, diagnostic.message, {\n 'leader.source': diagnostic.source,\n ...(diagnostic.bindingId ? { 'leader.binding.id': diagnostic.bindingId } : {}),\n });\n if (activeContext?.mode === TUI_MODE) activeContext.ui.notify(message, WARNING_STYLE);\n }\n };\n\n const hub = createDoomUiHub({ leaderRegistry, reportDiagnostics });\n cordis.provide(DOOM_UI_HUB_SERVICE, hub);\n cordis.inject([DOOM_MINOR_MODE_CATALOG_SERVICE], (modeContext) => {\n const catalog = createMinorModeCatalogClient(requireMinorModeCatalog(modeContext));\n const update = (): void => uiState.setModes(projectMinorModeRecords(catalog.list()));\n const dispose = catalog.subscribe(update);\n update();\n return () => {\n dispose();\n uiState.setModes([]);\n };\n });\n\n pi.on(SESSION_START_EVENT, (_event, ctx) => {\n activeContext = ctx;\n hub.setContext(ctx);\n const activeGeneration = ++sessionGeneration;\n reportDiagnostics(leaderRegistry.flush());\n hasSessionMessage = ctx.sessionManager.getEntries().some((entry) => entry.type === SESSION_MESSAGE_ENTRY);\n if (ctx.mode !== TUI_MODE) return;\n for (const message of pendingDiagnostics) ctx.ui.notify(message, WARNING_STYLE);\n\n const themeName = process.env[THEME_ENVIRONMENT_KEY] || DEFAULT_THEME_NAME;\n const themeResult = ctx.ui.setTheme(themeName);\n if (!themeResult.success) {\n ctx.ui.notify(`Could not apply Doom Pi theme: ${themeResult.error}`, WARNING_STYLE);\n void telemetry.recordWarning(UI_EVENT.themeApplyFailed, themeResult.error ?? 'Unknown theme error', {\n 'ui.theme': themeName,\n });\n }\n\n ctx.ui.setTitle(`${TITLE_PREFIX} · ${path.basename(ctx.cwd) || ctx.cwd} · pi/coding`);\n ctx.ui.setHeader((tui, theme) => new DoomHeader(theme, ctx.cwd, undefined, ctx, () => tui.terminal.rows));\n ctx.ui.setFooter((tui, theme, data) => {\n footerData = data;\n return new DoomFooter(tui, theme, ctx, data, hub.footer, uiState);\n });\n ctx.ui.setEditorComponent(\n (tui, editorTheme, keybindings) =>\n new DoomEditor(\n tui,\n editorTheme,\n keybindings,\n uiState,\n (snapshot: LeaderSnapshot) => {\n if (!snapshot.active) {\n ctx.ui.setWidget(LEADER_WIDGET_KEY, undefined, { placement: WIDGET_PLACEMENT });\n return;\n }\n ctx.ui.setWidget(\n LEADER_WIDGET_KEY,\n (_widgetTui, widgetTheme) => new LeaderHints(widgetTheme, snapshot, ctx, footerData, uiState.getModes()),\n { placement: WIDGET_PLACEMENT },\n );\n },\n undefined,\n ctx.ui.theme,\n {\n registry: leaderRegistry,\n isCommandAvailable: (commandName) =>\n BUILTIN_LEADER_COMMANDS.has(commandName) ||\n pi.getCommands().some((command) => command.name === commandName),\n onLeaderAction: (source, action) => {\n if (activeContext !== ctx || sessionGeneration !== activeGeneration) {\n ctx.ui.notify(`Leader action ${action} is unavailable.`, WARNING_STYLE);\n return;\n }\n hub.invokeLeaderAction(source, action);\n },\n onUnavailableCommand: (commandName) => {\n void telemetry.recordWarning(\n UI_EVENT.leaderCommandUnavailable,\n `Leader command /${commandName} is unavailable.`,\n { 'ui.kind': 'command' },\n );\n ctx.ui.notify(`Leader command /${commandName} is unavailable.`, WARNING_STYLE);\n },\n onUnavailableAction: (action) => {\n void telemetry.recordWarning(\n UI_EVENT.leaderActionUnavailable,\n `Leader action ${action} is unavailable.`,\n {\n 'ui.kind': 'action',\n },\n );\n ctx.ui.notify(`Leader action ${action} is unavailable.`, WARNING_STYLE);\n },\n },\n ),\n );\n\n void telemetry.recordEvent(UI_EVENT.shellInstalled, {\n 'ui.theme': themeName,\n 'ui.theme.applied': themeResult.success,\n 'ui.leader.group.count': leaderRegistry.getGroup([])?.options.length ?? 0,\n });\n });\n\n pi.on(INPUT_EVENT, (event, ctx) => {\n if (ctx.mode !== TUI_MODE || event.source !== INTERACTIVE_INPUT_SOURCE || hasSessionMessage) return;\n hasSessionMessage = true;\n const title = createMessageTitle(event.text, ctx.cwd);\n if (title) ctx.ui.setTitle(title);\n });\n\n cordis.effect(\n () => async () => {\n const context = activeContext;\n ++sessionGeneration;\n activeContext = undefined;\n hub.setContext(undefined);\n footerData = undefined;\n hub.dispose();\n uiState.reset();\n if (context?.mode === TUI_MODE) {\n context.ui.setWidget(LEADER_WIDGET_KEY, undefined, { placement: WIDGET_PLACEMENT });\n }\n await telemetry.shutdown();\n },\n PACKAGE_SOURCE,\n );\n}\n\n/** The package's standard Pi factory, mounted under the session Cordis host. */\nexport async function doomPiUiExtension(pi: ExtensionAPI, telemetry: UiTelemetry = createUiTelemetry()): Promise<void> {\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const fiber = connection.root.plugin(doomPiUiPlugin, { pi, telemetry });\n try {\n await fiber;\n } catch (error) {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n throw error;\n }\n\n let disposal: Promise<void> | undefined;\n pi.on(\n SESSION_SHUTDOWN_EVENT,\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../../_virtual/_rolldown/runtime.cjs");let t=require("node:path");t=e.__toESM(t,1);let n=require("node:fs");n=e.__toESM(n,1);const r=new Map,i=`__doompiExtensionToolSources__`;function a(e){let t=e,n=t[i];if(n)return n;let r=new Map;return Object.defineProperty(t,i,{configurable:!1,enumerable:!1,value:r,writable:!1}),r}function o(e,t){let n=Reflect.get(e,t,e);return typeof n==`function`?n.bind(e):n}function s(e,t){return new Proxy(e,{get(e,n){return n===`registerTool`?n=>{e.registerTool(n),a(e).set(n.name,Object.freeze({entryPath:t}))}:o(e,n)}})}function c(e,t){return a(e).get(t)?.entryPath}function l(e){let r=e;for(;;){try{let e=JSON.parse(n.default.readFileSync(t.default.join(r,`package.json`),`utf8`));if(typeof e.name==`string`&&e.name.length>0)return e.name}catch{}let e=t.default.dirname(r);if(e===r)return;r=e}}function u(e){let n=r.get(e);if(n!==void 0)return n;let i=l(t.default.dirname(e)),a=i?i.split(`/`).pop()??i:t.default.basename(e,t.default.extname(e));return r.set(e,a),a}exports.extensionName=u,exports.extensionToolSource=c,exports.withExtensionSource=s;
|
|
2
|
-
//# sourceMappingURL=extensionName.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensionName.cjs","names":["fs","path"],"sources":["../../../src/adapters/pi/extensionName.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\n\n/**\n * Display name for an extension that Pi could not attribute to a package.\n *\n * Pi stamps every `--extension <path>` argument with the literal source `cli`,\n * and doom-pi launches all of its extensions that way, so the only surviving\n * identity is the entry path. The nearest `package.json` above it names the\n * package that registered the tools.\n */\n\n/** Results are stable for the life of a session, and every source hits the same few dirs. */\nconst cache = new Map<string, string>();\nconst TOOL_SOURCE_REGISTRY_KEY = '__doompiExtensionToolSources__' as const;\n\ntype RegisteredTool = Parameters<ExtensionAPI['registerTool']>[0];\ninterface ToolSourceMetadata {\n readonly entryPath: string;\n}\ntype RegistryHost = ExtensionAPI & { [TOOL_SOURCE_REGISTRY_KEY]?: Map<string, ToolSourceMetadata> };\n\n/** Session-local provenance attached to Pi's API rather than process-global state. */\nfunction toolSourceRegistry(pi: ExtensionAPI): Map<string, ToolSourceMetadata> {\n const host = pi as RegistryHost;\n const existing = host[TOOL_SOURCE_REGISTRY_KEY];\n if (existing) return existing;\n const registry = new Map<string, ToolSourceMetadata>();\n Object.defineProperty(host, TOOL_SOURCE_REGISTRY_KEY, {\n configurable: false,\n enumerable: false,\n value: registry,\n writable: false,\n });\n return registry;\n}\n\nfunction boundValue(target: object, property: PropertyKey): unknown {\n const value = Reflect.get(target, property, target);\n return typeof value === 'function' ? value.bind(target) : value;\n}\n\n/**\n * Gives one composed extension a Pi API that remembers which tools it registers.\n *\n * Pi attributes every factory inside a compiled Doom bundle to the outer bundle.\n * The compiler still knows each original entry path, so it calls factories through\n * this boundary and preserves that identity before the information is lost.\n */\nexport function withExtensionSource(pi: ExtensionAPI, entryPath: string): ExtensionAPI {\n return new Proxy(pi, {\n get(target, property) {\n if (property !== 'registerTool') return boundValue(target, property);\n return (tool: RegisteredTool): void => {\n target.registerTool(tool);\n toolSourceRegistry(target).set(tool.name, Object.freeze({ entryPath }));\n };\n },\n });\n}\n\n/** Original extension entry that registered a tool inside a composed bundle. */\nexport function extensionToolSource(pi: ExtensionAPI, toolName: string): string | undefined {\n return toolSourceRegistry(pi).get(toolName)?.entryPath;\n}\n\nfunction packageName(directory: string): string | undefined {\n let current = directory;\n for (;;) {\n try {\n const manifest = JSON.parse(fs.readFileSync(path.join(current, 'package.json'), 'utf8')) as { name?: unknown };\n if (typeof manifest.name === 'string' && manifest.name.length > 0) return manifest.name;\n } catch {\n // No manifest here, or an unreadable one; keep walking up.\n }\n const parent = path.dirname(current);\n if (parent === current) return undefined;\n current = parent;\n }\n}\n\nexport function extensionName(entryPath: string): string {\n const cached = cache.get(entryPath);\n if (cached !== undefined) return cached;\n const name = packageName(path.dirname(entryPath));\n // `@agimon-ai/doompi-task` reads as `doom-task`; the scope is noise in a tree.\n const resolved = name ? (name.split('/').pop() ?? name) : path.basename(entryPath, path.extname(entryPath));\n cache.set(entryPath, resolved);\n return resolved;\n}\n"],"mappings":"8IAcA,MAAM,EAAQ,IAAI,IACZ,EAA2B,iCASjC,SAAS,EAAmB,EAAmD,CAC7E,IAAM,EAAO,EACP,EAAW,EAAK,GACtB,GAAI,EAAU,OAAO,EACrB,IAAM,EAAW,IAAI,IAOrB,OANA,OAAO,eAAe,EAAM,EAA0B,CACpD,aAAc,GACd,WAAY,GACZ,MAAO,EACP,SAAU,EACZ,CAAC,EACM,CACT,CAEA,SAAS,EAAW,EAAgB,EAAgC,CAClE,IAAM,EAAQ,QAAQ,IAAI,EAAQ,EAAU,CAAM,EAClD,OAAO,OAAO,GAAU,WAAa,EAAM,KAAK,CAAM,EAAI,CAC5D,CASA,SAAgB,EAAoB,EAAkB,EAAiC,CACrF,OAAO,IAAI,MAAM,EAAI,CACnB,IAAI,EAAQ,EAAU,CAEpB,OADI,IAAa,eACT,GAA+B,CACrC,EAAO,aAAa,CAAI,EACxB,EAAmB,CAAM,CAAC,CAAC,IAAI,EAAK,KAAM,OAAO,OAAO,CAAE,WAAU,CAAC,CAAC,CACxE,EAJwC,EAAW,EAAQ,CAAQ,CAKrE,CACF,CAAC,CACH,CAGA,SAAgB,EAAoB,EAAkB,EAAsC,CAC1F,OAAO,EAAmB,CAAE,CAAC,CAAC,IAAI,CAAQ,CAAC,EAAE,SAC/C,CAEA,SAAS,EAAY,EAAuC,CAC1D,IAAI,EAAU,EACd,OAAS,CACP,GAAI,CACF,IAAM,EAAW,KAAK,MAAMA,EAAAA,QAAG,aAAaC,EAAAA,QAAK,KAAK,EAAS,cAAc,EAAG,MAAM,CAAC,EACvF,GAAI,OAAO,EAAS,MAAS,UAAY,EAAS,KAAK,OAAS,EAAG,OAAO,EAAS,IACrF,MAAQ,CAER,CACA,IAAM,EAASA,EAAAA,QAAK,QAAQ,CAAO,EACnC,GAAI,IAAW,EAAS,OACxB,EAAU,CACZ,CACF,CAEA,SAAgB,EAAc,EAA2B,CACvD,IAAM,EAAS,EAAM,IAAI,CAAS,EAClC,GAAI,IAAW,IAAA,GAAW,OAAO,EACjC,IAAM,EAAO,EAAYA,EAAAA,QAAK,QAAQ,CAAS,CAAC,EAE1C,EAAW,EAAQ,EAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAK,EAAQA,EAAAA,QAAK,SAAS,EAAWA,EAAAA,QAAK,QAAQ,CAAS,CAAC,EAE1G,OADA,EAAM,IAAI,EAAW,CAAQ,EACtB,CACT"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
-
//#region src/adapters/pi/extensionName.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* Gives one composed extension a Pi API that remembers which tools it registers.
|
|
5
|
-
*
|
|
6
|
-
* Pi attributes every factory inside a compiled Doom bundle to the outer bundle.
|
|
7
|
-
* The compiler still knows each original entry path, so it calls factories through
|
|
8
|
-
* this boundary and preserves that identity before the information is lost.
|
|
9
|
-
*/
|
|
10
|
-
declare function withExtensionSource(pi: ExtensionAPI, entryPath: string): ExtensionAPI;
|
|
11
|
-
/** Original extension entry that registered a tool inside a composed bundle. */
|
|
12
|
-
declare function extensionToolSource(pi: ExtensionAPI, toolName: string): string | undefined;
|
|
13
|
-
declare function extensionName(entryPath: string): string;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { extensionName, extensionToolSource, withExtensionSource };
|
|
16
|
-
//# sourceMappingURL=extensionName.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensionName.d.cts","names":[],"sources":["../../../src/adapters/pi/extensionName.ts"],"mappings":";;;;;;;;;iBAkDgB,oBAAoB,IAAI,cAAc,oBAAoB;;iBAa1D,oBAAoB,IAAI,cAAc;iBAmBtC,cAAc"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
-
//#region src/adapters/pi/extensionName.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* Gives one composed extension a Pi API that remembers which tools it registers.
|
|
5
|
-
*
|
|
6
|
-
* Pi attributes every factory inside a compiled Doom bundle to the outer bundle.
|
|
7
|
-
* The compiler still knows each original entry path, so it calls factories through
|
|
8
|
-
* this boundary and preserves that identity before the information is lost.
|
|
9
|
-
*/
|
|
10
|
-
declare function withExtensionSource(pi: ExtensionAPI, entryPath: string): ExtensionAPI;
|
|
11
|
-
/** Original extension entry that registered a tool inside a composed bundle. */
|
|
12
|
-
declare function extensionToolSource(pi: ExtensionAPI, toolName: string): string | undefined;
|
|
13
|
-
declare function extensionName(entryPath: string): string;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { extensionName, extensionToolSource, withExtensionSource };
|
|
16
|
-
//# sourceMappingURL=extensionName.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensionName.d.mts","names":[],"sources":["../../../src/adapters/pi/extensionName.ts"],"mappings":";;;;;;;;;iBAkDgB,oBAAoB,IAAI,cAAc,oBAAoB;;iBAa1D,oBAAoB,IAAI,cAAc;iBAmBtC,cAAc"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e from"node:path";import t from"node:fs";const n=new Map,r=`__doompiExtensionToolSources__`;function i(e){let t=e,n=t[r];if(n)return n;let i=new Map;return Object.defineProperty(t,r,{configurable:!1,enumerable:!1,value:i,writable:!1}),i}function a(e,t){let n=Reflect.get(e,t,e);return typeof n==`function`?n.bind(e):n}function o(e,t){return new Proxy(e,{get(e,n){return n===`registerTool`?n=>{e.registerTool(n),i(e).set(n.name,Object.freeze({entryPath:t}))}:a(e,n)}})}function s(e,t){return i(e).get(t)?.entryPath}function c(n){let r=n;for(;;){try{let n=JSON.parse(t.readFileSync(e.join(r,`package.json`),`utf8`));if(typeof n.name==`string`&&n.name.length>0)return n.name}catch{}let n=e.dirname(r);if(n===r)return;r=n}}function l(t){let r=n.get(t);if(r!==void 0)return r;let i=c(e.dirname(t)),a=i?i.split(`/`).pop()??i:e.basename(t,e.extname(t));return n.set(t,a),a}export{l as extensionName,s as extensionToolSource,o as withExtensionSource};
|
|
2
|
-
//# sourceMappingURL=extensionName.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensionName.mjs","names":[],"sources":["../../../src/adapters/pi/extensionName.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\n\n/**\n * Display name for an extension that Pi could not attribute to a package.\n *\n * Pi stamps every `--extension <path>` argument with the literal source `cli`,\n * and doom-pi launches all of its extensions that way, so the only surviving\n * identity is the entry path. The nearest `package.json` above it names the\n * package that registered the tools.\n */\n\n/** Results are stable for the life of a session, and every source hits the same few dirs. */\nconst cache = new Map<string, string>();\nconst TOOL_SOURCE_REGISTRY_KEY = '__doompiExtensionToolSources__' as const;\n\ntype RegisteredTool = Parameters<ExtensionAPI['registerTool']>[0];\ninterface ToolSourceMetadata {\n readonly entryPath: string;\n}\ntype RegistryHost = ExtensionAPI & { [TOOL_SOURCE_REGISTRY_KEY]?: Map<string, ToolSourceMetadata> };\n\n/** Session-local provenance attached to Pi's API rather than process-global state. */\nfunction toolSourceRegistry(pi: ExtensionAPI): Map<string, ToolSourceMetadata> {\n const host = pi as RegistryHost;\n const existing = host[TOOL_SOURCE_REGISTRY_KEY];\n if (existing) return existing;\n const registry = new Map<string, ToolSourceMetadata>();\n Object.defineProperty(host, TOOL_SOURCE_REGISTRY_KEY, {\n configurable: false,\n enumerable: false,\n value: registry,\n writable: false,\n });\n return registry;\n}\n\nfunction boundValue(target: object, property: PropertyKey): unknown {\n const value = Reflect.get(target, property, target);\n return typeof value === 'function' ? value.bind(target) : value;\n}\n\n/**\n * Gives one composed extension a Pi API that remembers which tools it registers.\n *\n * Pi attributes every factory inside a compiled Doom bundle to the outer bundle.\n * The compiler still knows each original entry path, so it calls factories through\n * this boundary and preserves that identity before the information is lost.\n */\nexport function withExtensionSource(pi: ExtensionAPI, entryPath: string): ExtensionAPI {\n return new Proxy(pi, {\n get(target, property) {\n if (property !== 'registerTool') return boundValue(target, property);\n return (tool: RegisteredTool): void => {\n target.registerTool(tool);\n toolSourceRegistry(target).set(tool.name, Object.freeze({ entryPath }));\n };\n },\n });\n}\n\n/** Original extension entry that registered a tool inside a composed bundle. */\nexport function extensionToolSource(pi: ExtensionAPI, toolName: string): string | undefined {\n return toolSourceRegistry(pi).get(toolName)?.entryPath;\n}\n\nfunction packageName(directory: string): string | undefined {\n let current = directory;\n for (;;) {\n try {\n const manifest = JSON.parse(fs.readFileSync(path.join(current, 'package.json'), 'utf8')) as { name?: unknown };\n if (typeof manifest.name === 'string' && manifest.name.length > 0) return manifest.name;\n } catch {\n // No manifest here, or an unreadable one; keep walking up.\n }\n const parent = path.dirname(current);\n if (parent === current) return undefined;\n current = parent;\n }\n}\n\nexport function extensionName(entryPath: string): string {\n const cached = cache.get(entryPath);\n if (cached !== undefined) return cached;\n const name = packageName(path.dirname(entryPath));\n // `@agimon-ai/doompi-task` reads as `doom-task`; the scope is noise in a tree.\n const resolved = name ? (name.split('/').pop() ?? name) : path.basename(entryPath, path.extname(entryPath));\n cache.set(entryPath, resolved);\n return resolved;\n}\n"],"mappings":"gDAcA,MAAM,EAAQ,IAAI,IACZ,EAA2B,iCASjC,SAAS,EAAmB,EAAmD,CAC7E,IAAM,EAAO,EACP,EAAW,EAAK,GACtB,GAAI,EAAU,OAAO,EACrB,IAAM,EAAW,IAAI,IAOrB,OANA,OAAO,eAAe,EAAM,EAA0B,CACpD,aAAc,GACd,WAAY,GACZ,MAAO,EACP,SAAU,EACZ,CAAC,EACM,CACT,CAEA,SAAS,EAAW,EAAgB,EAAgC,CAClE,IAAM,EAAQ,QAAQ,IAAI,EAAQ,EAAU,CAAM,EAClD,OAAO,OAAO,GAAU,WAAa,EAAM,KAAK,CAAM,EAAI,CAC5D,CASA,SAAgB,EAAoB,EAAkB,EAAiC,CACrF,OAAO,IAAI,MAAM,EAAI,CACnB,IAAI,EAAQ,EAAU,CAEpB,OADI,IAAa,eACT,GAA+B,CACrC,EAAO,aAAa,CAAI,EACxB,EAAmB,CAAM,CAAC,CAAC,IAAI,EAAK,KAAM,OAAO,OAAO,CAAE,WAAU,CAAC,CAAC,CACxE,EAJwC,EAAW,EAAQ,CAAQ,CAKrE,CACF,CAAC,CACH,CAGA,SAAgB,EAAoB,EAAkB,EAAsC,CAC1F,OAAO,EAAmB,CAAE,CAAC,CAAC,IAAI,CAAQ,CAAC,EAAE,SAC/C,CAEA,SAAS,EAAY,EAAuC,CAC1D,IAAI,EAAU,EACd,OAAS,CACP,GAAI,CACF,IAAM,EAAW,KAAK,MAAM,EAAG,aAAa,EAAK,KAAK,EAAS,cAAc,EAAG,MAAM,CAAC,EACvF,GAAI,OAAO,EAAS,MAAS,UAAY,EAAS,KAAK,OAAS,EAAG,OAAO,EAAS,IACrF,MAAQ,CAER,CACA,IAAM,EAAS,EAAK,QAAQ,CAAO,EACnC,GAAI,IAAW,EAAS,OACxB,EAAU,CACZ,CACF,CAEA,SAAgB,EAAc,EAA2B,CACvD,IAAM,EAAS,EAAM,IAAI,CAAS,EAClC,GAAI,IAAW,IAAA,GAAW,OAAO,EACjC,IAAM,EAAO,EAAY,EAAK,QAAQ,CAAS,CAAC,EAE1C,EAAW,EAAQ,EAAK,MAAM,GAAG,CAAC,CAAC,IAAI,GAAK,EAAQ,EAAK,SAAS,EAAW,EAAK,QAAQ,CAAS,CAAC,EAE1G,OADA,EAAM,IAAI,EAAW,CAAQ,EACtB,CACT"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../../tui/builtinToolRender.cjs");let t=require("@earendil-works/pi-coding-agent");function n(n,r){let i=(0,t.createReadToolDefinition)(r);n.registerTool({...i,renderShell:`self`,renderCall:(t,n)=>e.renderReadCall(t,n),renderResult:(t,n,r,i)=>{let a=e.renderReadResult(i.args,t,{expanded:n.expanded,isError:i.isError},r);return e.frameBuiltinResult(a,r,i.lastComponent)}});let a=(0,t.createEditToolDefinition)(r);n.registerTool({...a,renderShell:`self`,renderCall:(t,n)=>e.renderEditCall(t,n),renderResult:(t,n,r,i)=>{let a=e.renderEditResult(i.args,t,{expanded:n.expanded,isError:i.isError},r);return e.frameBuiltinResult(a,r,i.lastComponent)}});let o=(0,t.createWriteToolDefinition)(r),s=o.renderResult;n.registerTool({...o,renderShell:`self`,renderCall:(t,n,r)=>e.renderWriteCall(t,n,{expanded:r.expanded,argsStreaming:r.argsComplete===!1&&r.isPartial}),renderResult:(t,n,r,i)=>{let a=s(t,n,r,{...i,lastComponent:e.previousBuiltinResult(i.lastComponent)});return e.frameBuiltinResult(a,r,i.lastComponent)}});let c=(0,t.createGrepToolDefinition)(r),l=c.renderResult;n.registerTool({...c,renderShell:`self`,renderCall:(t,n)=>e.renderGrepCall(t,n),renderResult:(t,n,r,i)=>{let a=l(t,n,r,{...i,lastComponent:e.previousBuiltinResult(i.lastComponent)});return e.frameBuiltinResult(a,r,i.lastComponent)}});let u=(0,t.createFindToolDefinition)(r),d=u.renderResult;n.registerTool({...u,renderShell:`self`,renderCall:(t,n)=>e.renderFindCall(t,n),renderResult:(t,n,r,i)=>{let a=d(t,n,r,{...i,lastComponent:e.previousBuiltinResult(i.lastComponent)});return e.frameBuiltinResult(a,r,i.lastComponent)}});let f=(0,t.createLsToolDefinition)(r),p=f.renderResult;n.registerTool({...f,renderShell:`self`,renderCall:(t,n)=>e.renderLsCall(t,n),renderResult:(t,n,r,i)=>{let a=p(t,n,r,{...i,lastComponent:e.previousBuiltinResult(i.lastComponent)});return e.frameBuiltinResult(a,r,i.lastComponent)}})}exports.registerBuiltinToolUi=n;
|
|
2
|
-
//# sourceMappingURL=toolOverrides.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolOverrides.cjs","names":["createReadToolDefinition","renderReadCall","renderReadResult","frameBuiltinResult","createEditToolDefinition","renderEditCall","renderEditResult","createWriteToolDefinition","renderWriteCall","previousBuiltinResult","createGrepToolDefinition","renderGrepCall","createFindToolDefinition","renderFindCall","createLsToolDefinition","renderLsCall"],"sources":["../../../src/adapters/pi/toolOverrides.ts"],"sourcesContent":["import {\n createEditToolDefinition,\n createFindToolDefinition,\n createGrepToolDefinition,\n createLsToolDefinition,\n createReadToolDefinition,\n createWriteToolDefinition,\n type ExtensionAPI,\n} from '@earendil-works/pi-coding-agent';\nimport {\n frameBuiltinResult,\n previousBuiltinResult,\n renderEditCall,\n renderEditResult,\n renderFindCall,\n renderGrepCall,\n renderLsCall,\n renderReadCall,\n renderReadResult,\n renderWriteCall,\n} from '../../tui/builtinToolRender.ts';\n\n/**\n * Keep Pi's native schemas, prompt metadata, execution, and result formatting;\n * replace only the broad status-background shell and call heading.\n */\nexport function registerBuiltinToolUi(pi: ExtensionAPI, cwd: string): void {\n const read = createReadToolDefinition(cwd);\n pi.registerTool({\n ...read,\n renderShell: 'self',\n renderCall: (args, theme) => renderReadCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = renderReadResult(\n context.args,\n result,\n { expanded: options.expanded, isError: context.isError },\n theme,\n );\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const edit = createEditToolDefinition(cwd);\n pi.registerTool({\n ...edit,\n renderShell: 'self',\n renderCall: (args, theme) => renderEditCall(args, theme),\n // Doom bands the diff on the background and keeps syntax highlighting on\n // the foreground, which Pi's foreground-only diff renderer cannot express.\n renderResult: (result, options, theme, context) => {\n const content = renderEditResult(\n context.args,\n result,\n { expanded: options.expanded, isError: context.isError },\n theme,\n );\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const write = createWriteToolDefinition(cwd);\n const writeResult = write.renderResult!;\n pi.registerTool({\n ...write,\n renderShell: 'self',\n renderCall: (args, theme, context) =>\n renderWriteCall(args, theme, {\n expanded: context.expanded,\n // Restored completed rows may not mark args complete, but their result is no longer partial.\n argsStreaming: context.argsComplete === false && context.isPartial,\n }),\n renderResult: (result, options, theme, context) => {\n const content = writeResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const grep = createGrepToolDefinition(cwd);\n const grepResult = grep.renderResult!;\n pi.registerTool({\n ...grep,\n renderShell: 'self',\n renderCall: (args, theme) => renderGrepCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = grepResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const find = createFindToolDefinition(cwd);\n const findResult = find.renderResult!;\n pi.registerTool({\n ...find,\n renderShell: 'self',\n renderCall: (args, theme) => renderFindCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = findResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const ls = createLsToolDefinition(cwd);\n const lsResult = ls.renderResult!;\n pi.registerTool({\n ...ls,\n renderShell: 'self',\n renderCall: (args, theme) => renderLsCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = lsResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n}\n"],"mappings":"oGA0BA,SAAgB,EAAsB,EAAkB,EAAmB,CACzE,IAAM,GAAA,EAAOA,EAAAA,yBAAAA,CAAyB,CAAG,EACzC,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAUC,EAAAA,eAAe,EAAM,CAAK,EACvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAUC,EAAAA,iBACd,EAAQ,KACR,EACA,CAAE,SAAU,EAAQ,SAAU,QAAS,EAAQ,OAAQ,EACvD,CACF,EACA,OAAOC,EAAAA,mBAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,GAAA,EAAOC,EAAAA,yBAAAA,CAAyB,CAAG,EACzC,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAUC,EAAAA,eAAe,EAAM,CAAK,EAGvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAUC,EAAAA,iBACd,EAAQ,KACR,EACA,CAAE,SAAU,EAAQ,SAAU,QAAS,EAAQ,OAAQ,EACvD,CACF,EACA,OAAOH,EAAAA,mBAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,GAAA,EAAQI,EAAAA,0BAAAA,CAA0B,CAAG,EACrC,EAAc,EAAM,aAC1B,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,EAAO,IACxBC,EAAAA,gBAAgB,EAAM,EAAO,CAC3B,SAAU,EAAQ,SAElB,cAAe,EAAQ,eAAiB,IAAS,EAAQ,SAC3D,CAAC,EACH,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAY,EAAQ,EAAS,EAAO,CAClD,GAAG,EACH,cAAeC,EAAAA,sBAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAON,EAAAA,mBAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,GAAA,EAAOO,EAAAA,yBAAAA,CAAyB,CAAG,EACnC,EAAa,EAAK,aACxB,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAUC,EAAAA,eAAe,EAAM,CAAK,EACvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAW,EAAQ,EAAS,EAAO,CACjD,GAAG,EACH,cAAeF,EAAAA,sBAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAON,EAAAA,mBAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,GAAA,EAAOS,EAAAA,yBAAAA,CAAyB,CAAG,EACnC,EAAa,EAAK,aACxB,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAUC,EAAAA,eAAe,EAAM,CAAK,EACvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAW,EAAQ,EAAS,EAAO,CACjD,GAAG,EACH,cAAeJ,EAAAA,sBAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAON,EAAAA,mBAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,GAAA,EAAKW,EAAAA,uBAAAA,CAAuB,CAAG,EAC/B,EAAW,EAAG,aACpB,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAUC,EAAAA,aAAa,EAAM,CAAK,EACrD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAS,EAAQ,EAAS,EAAO,CAC/C,GAAG,EACH,cAAeN,EAAAA,sBAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAON,EAAAA,mBAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,CACH"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{frameBuiltinResult as e,previousBuiltinResult as t,renderEditCall as n,renderEditResult as r,renderFindCall as i,renderGrepCall as a,renderLsCall as o,renderReadCall as s,renderReadResult as c,renderWriteCall as l}from"../../tui/builtinToolRender.mjs";import{createEditToolDefinition as u,createFindToolDefinition as d,createGrepToolDefinition as f,createLsToolDefinition as p,createReadToolDefinition as m,createWriteToolDefinition as h}from"@earendil-works/pi-coding-agent";function g(g,_){let v=m(_);g.registerTool({...v,renderShell:`self`,renderCall:(e,t)=>s(e,t),renderResult:(t,n,r,i)=>{let a=c(i.args,t,{expanded:n.expanded,isError:i.isError},r);return e(a,r,i.lastComponent)}});let y=u(_);g.registerTool({...y,renderShell:`self`,renderCall:(e,t)=>n(e,t),renderResult:(t,n,i,a)=>{let o=r(a.args,t,{expanded:n.expanded,isError:a.isError},i);return e(o,i,a.lastComponent)}});let b=h(_),x=b.renderResult;g.registerTool({...b,renderShell:`self`,renderCall:(e,t,n)=>l(e,t,{expanded:n.expanded,argsStreaming:n.argsComplete===!1&&n.isPartial}),renderResult:(n,r,i,a)=>{let o=x(n,r,i,{...a,lastComponent:t(a.lastComponent)});return e(o,i,a.lastComponent)}});let S=f(_),C=S.renderResult;g.registerTool({...S,renderShell:`self`,renderCall:(e,t)=>a(e,t),renderResult:(n,r,i,a)=>{let o=C(n,r,i,{...a,lastComponent:t(a.lastComponent)});return e(o,i,a.lastComponent)}});let w=d(_),T=w.renderResult;g.registerTool({...w,renderShell:`self`,renderCall:(e,t)=>i(e,t),renderResult:(n,r,i,a)=>{let o=T(n,r,i,{...a,lastComponent:t(a.lastComponent)});return e(o,i,a.lastComponent)}});let E=p(_),D=E.renderResult;g.registerTool({...E,renderShell:`self`,renderCall:(e,t)=>o(e,t),renderResult:(n,r,i,a)=>{let o=D(n,r,i,{...a,lastComponent:t(a.lastComponent)});return e(o,i,a.lastComponent)}})}export{g as registerBuiltinToolUi};
|
|
2
|
-
//# sourceMappingURL=toolOverrides.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolOverrides.mjs","names":[],"sources":["../../../src/adapters/pi/toolOverrides.ts"],"sourcesContent":["import {\n createEditToolDefinition,\n createFindToolDefinition,\n createGrepToolDefinition,\n createLsToolDefinition,\n createReadToolDefinition,\n createWriteToolDefinition,\n type ExtensionAPI,\n} from '@earendil-works/pi-coding-agent';\nimport {\n frameBuiltinResult,\n previousBuiltinResult,\n renderEditCall,\n renderEditResult,\n renderFindCall,\n renderGrepCall,\n renderLsCall,\n renderReadCall,\n renderReadResult,\n renderWriteCall,\n} from '../../tui/builtinToolRender.ts';\n\n/**\n * Keep Pi's native schemas, prompt metadata, execution, and result formatting;\n * replace only the broad status-background shell and call heading.\n */\nexport function registerBuiltinToolUi(pi: ExtensionAPI, cwd: string): void {\n const read = createReadToolDefinition(cwd);\n pi.registerTool({\n ...read,\n renderShell: 'self',\n renderCall: (args, theme) => renderReadCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = renderReadResult(\n context.args,\n result,\n { expanded: options.expanded, isError: context.isError },\n theme,\n );\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const edit = createEditToolDefinition(cwd);\n pi.registerTool({\n ...edit,\n renderShell: 'self',\n renderCall: (args, theme) => renderEditCall(args, theme),\n // Doom bands the diff on the background and keeps syntax highlighting on\n // the foreground, which Pi's foreground-only diff renderer cannot express.\n renderResult: (result, options, theme, context) => {\n const content = renderEditResult(\n context.args,\n result,\n { expanded: options.expanded, isError: context.isError },\n theme,\n );\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const write = createWriteToolDefinition(cwd);\n const writeResult = write.renderResult!;\n pi.registerTool({\n ...write,\n renderShell: 'self',\n renderCall: (args, theme, context) =>\n renderWriteCall(args, theme, {\n expanded: context.expanded,\n // Restored completed rows may not mark args complete, but their result is no longer partial.\n argsStreaming: context.argsComplete === false && context.isPartial,\n }),\n renderResult: (result, options, theme, context) => {\n const content = writeResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const grep = createGrepToolDefinition(cwd);\n const grepResult = grep.renderResult!;\n pi.registerTool({\n ...grep,\n renderShell: 'self',\n renderCall: (args, theme) => renderGrepCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = grepResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const find = createFindToolDefinition(cwd);\n const findResult = find.renderResult!;\n pi.registerTool({\n ...find,\n renderShell: 'self',\n renderCall: (args, theme) => renderFindCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = findResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n\n const ls = createLsToolDefinition(cwd);\n const lsResult = ls.renderResult!;\n pi.registerTool({\n ...ls,\n renderShell: 'self',\n renderCall: (args, theme) => renderLsCall(args, theme),\n renderResult: (result, options, theme, context) => {\n const content = lsResult(result, options, theme, {\n ...context,\n lastComponent: previousBuiltinResult(context.lastComponent),\n });\n return frameBuiltinResult(content, theme, context.lastComponent);\n },\n });\n}\n"],"mappings":"meA0BA,SAAgB,EAAsB,EAAkB,EAAmB,CACzE,IAAM,EAAO,EAAyB,CAAG,EACzC,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAU,EAAe,EAAM,CAAK,EACvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EACd,EAAQ,KACR,EACA,CAAE,SAAU,EAAQ,SAAU,QAAS,EAAQ,OAAQ,EACvD,CACF,EACA,OAAO,EAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,EAAO,EAAyB,CAAG,EACzC,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAU,EAAe,EAAM,CAAK,EAGvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EACd,EAAQ,KACR,EACA,CAAE,SAAU,EAAQ,SAAU,QAAS,EAAQ,OAAQ,EACvD,CACF,EACA,OAAO,EAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,EAAQ,EAA0B,CAAG,EACrC,EAAc,EAAM,aAC1B,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,EAAO,IACxB,EAAgB,EAAM,EAAO,CAC3B,SAAU,EAAQ,SAElB,cAAe,EAAQ,eAAiB,IAAS,EAAQ,SAC3D,CAAC,EACH,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAY,EAAQ,EAAS,EAAO,CAClD,GAAG,EACH,cAAe,EAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAO,EAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,EAAO,EAAyB,CAAG,EACnC,EAAa,EAAK,aACxB,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAU,EAAe,EAAM,CAAK,EACvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAW,EAAQ,EAAS,EAAO,CACjD,GAAG,EACH,cAAe,EAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAO,EAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,EAAO,EAAyB,CAAG,EACnC,EAAa,EAAK,aACxB,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAU,EAAe,EAAM,CAAK,EACvD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAW,EAAQ,EAAS,EAAO,CACjD,GAAG,EACH,cAAe,EAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAO,EAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,EAED,IAAM,EAAK,EAAuB,CAAG,EAC/B,EAAW,EAAG,aACpB,EAAG,aAAa,CACd,GAAG,EACH,YAAa,OACb,YAAa,EAAM,IAAU,EAAa,EAAM,CAAK,EACrD,cAAe,EAAQ,EAAS,EAAO,IAAY,CACjD,IAAM,EAAU,EAAS,EAAQ,EAAS,EAAO,CAC/C,GAAG,EACH,cAAe,EAAsB,EAAQ,aAAa,CAC5D,CAAC,EACD,OAAO,EAAmB,EAAS,EAAO,EAAQ,aAAa,CACjE,CACF,CAAC,CACH"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
let e=require("@agimon-ai/doompi-telemetry");const t={leaderContributionRejected:`doom_pi_ui.leader_contribution_rejected`,leaderCommandUnavailable:`doom_pi_ui.leader_command_unavailable`,leaderActionUnavailable:`doom_pi_ui.leader_action_unavailable`,themeApplyFailed:`doom_pi_ui.theme_apply_failed`,shellInstalled:`doom_pi_ui.shell_installed`};function n(t={}){let n=(0,e.createDoomTelemetry)({serviceName:`doom-pi-ui`,packageName:`@agimon-ai/doompi-ui`,cwd:t.cwd,workspaceRoot:t.workspaceRoot,env:t.env,telemetryFactory:t.telemetryFactory,warn:t.warn,enableLogs:!0,enableTraces:!0});return{recordError:(e,t,r)=>n.recordError(e,t,r),recordWarning:(e,t,r)=>n.recordWarning(e,t,r),recordEvent:(e,t)=>n.recordEvent(e,t),flush:()=>n.flush(),shutdown:()=>n.shutdown()}}exports.UI_EVENT=t,exports.createUiTelemetry=n;
|
|
2
|
-
//# sourceMappingURL=logSinkTelemetry.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.cjs","names":["createDoomTelemetry"],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"sourcesContent":["import { createDoomTelemetry, type DoomTelemetry, type DoomTelemetryOptions } from '@agimon-ai/doompi-telemetry';\n\nconst SERVICE_NAME = 'doom-pi-ui';\nconst PACKAGE_NAME = '@agimon-ai/doompi-ui';\n\nexport const UI_EVENT = {\n leaderContributionRejected: 'doom_pi_ui.leader_contribution_rejected',\n leaderCommandUnavailable: 'doom_pi_ui.leader_command_unavailable',\n leaderActionUnavailable: 'doom_pi_ui.leader_action_unavailable',\n themeApplyFailed: 'doom_pi_ui.theme_apply_failed',\n shellInstalled: 'doom_pi_ui.shell_installed',\n} as const;\n\nexport type UiEventName = (typeof UI_EVENT)[keyof typeof UI_EVENT];\nexport type UiEventAttributes = Record<string, string | number | boolean>;\n\nexport interface UiTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n}\n\nexport interface UiTelemetry {\n recordError(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;\n recordWarning(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;\n recordEvent(event: UiEventName, attributes?: UiEventAttributes): Promise<void>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createUiTelemetry(options: UiTelemetryOptions = {}): UiTelemetry {\n const telemetry: DoomTelemetry = createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n });\n return {\n recordError: (event, error, attributes) => telemetry.recordError(event, error, attributes),\n recordWarning: (event, error, attributes) => telemetry.recordWarning(event, error, attributes),\n recordEvent: (event, attributes) => telemetry.recordEvent(event, attributes),\n flush: () => telemetry.flush(),\n shutdown: () => telemetry.shutdown(),\n };\n}\n"],"mappings":"6CAEA,MAGa,EAAW,CACtB,2BAA4B,0CAC5B,yBAA0B,wCAC1B,wBAAyB,uCACzB,iBAAkB,gCAClB,eAAgB,4BAClB,EAqBA,SAAgB,EAAkB,EAA8B,CAAC,EAAgB,CAC/E,IAAM,GAAA,EAA2BA,EAAAA,oBAAAA,CAAoB,CACnD,YAAa,aACb,YAAa,uBACb,IAAK,EAAQ,IACb,cAAe,EAAQ,cACvB,IAAK,EAAQ,IACb,iBAAkB,EAAQ,iBAC1B,KAAM,EAAQ,KACd,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,MAAO,CACL,aAAc,EAAO,EAAO,IAAe,EAAU,YAAY,EAAO,EAAO,CAAU,EACzF,eAAgB,EAAO,EAAO,IAAe,EAAU,cAAc,EAAO,EAAO,CAAU,EAC7F,aAAc,EAAO,IAAe,EAAU,YAAY,EAAO,CAAU,EAC3E,UAAa,EAAU,MAAM,EAC7B,aAAgB,EAAU,SAAS,CACrC,CACF"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { DoomTelemetryOptions } from "@agimon-ai/doompi-telemetry";
|
|
2
|
-
//#region src/adapters/telemetry/logSinkTelemetry.d.ts
|
|
3
|
-
declare const UI_EVENT: {
|
|
4
|
-
readonly leaderContributionRejected: "doom_pi_ui.leader_contribution_rejected";
|
|
5
|
-
readonly leaderCommandUnavailable: "doom_pi_ui.leader_command_unavailable";
|
|
6
|
-
readonly leaderActionUnavailable: "doom_pi_ui.leader_action_unavailable";
|
|
7
|
-
readonly themeApplyFailed: "doom_pi_ui.theme_apply_failed";
|
|
8
|
-
readonly shellInstalled: "doom_pi_ui.shell_installed";
|
|
9
|
-
};
|
|
10
|
-
type UiEventName = (typeof UI_EVENT)[keyof typeof UI_EVENT];
|
|
11
|
-
type UiEventAttributes = Record<string, string | number | boolean>;
|
|
12
|
-
interface UiTelemetryOptions {
|
|
13
|
-
cwd?: string;
|
|
14
|
-
workspaceRoot?: string;
|
|
15
|
-
env?: NodeJS.ProcessEnv;
|
|
16
|
-
telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;
|
|
17
|
-
warn?: (message: string) => void;
|
|
18
|
-
}
|
|
19
|
-
interface UiTelemetry {
|
|
20
|
-
recordError(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;
|
|
21
|
-
recordWarning(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;
|
|
22
|
-
recordEvent(event: UiEventName, attributes?: UiEventAttributes): Promise<void>;
|
|
23
|
-
flush(): Promise<void>;
|
|
24
|
-
shutdown(): Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
declare function createUiTelemetry(options?: UiTelemetryOptions): UiTelemetry;
|
|
27
|
-
//#endregion
|
|
28
|
-
export { UI_EVENT, UiEventAttributes, UiEventName, UiTelemetry, UiTelemetryOptions, createUiTelemetry };
|
|
29
|
-
//# sourceMappingURL=logSinkTelemetry.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.d.cts","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"mappings":";;cAKa;;;;;;;KAQD,sBAAsB,uBAAuB;KAC7C,oBAAoB;UAEf;EACf;EACA;EACA,MAAM,OAAO;EACb,mBAAmB,YAAY;EAC/B,QAAQ;;UAGO;EACf,YAAY,OAAO,aAAa,gBAAgB,aAAa,oBAAoB;EACjF,cAAc,OAAO,aAAa,gBAAgB,aAAa,oBAAoB;EACnF,YAAY,OAAO,aAAa,aAAa,oBAAoB;EACjE,SAAS;EACT,YAAY;;iBAGE,kBAAkB,UAAS,qBAA0B"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { DoomTelemetryOptions } from "@agimon-ai/doompi-telemetry";
|
|
2
|
-
//#region src/adapters/telemetry/logSinkTelemetry.d.ts
|
|
3
|
-
declare const UI_EVENT: {
|
|
4
|
-
readonly leaderContributionRejected: "doom_pi_ui.leader_contribution_rejected";
|
|
5
|
-
readonly leaderCommandUnavailable: "doom_pi_ui.leader_command_unavailable";
|
|
6
|
-
readonly leaderActionUnavailable: "doom_pi_ui.leader_action_unavailable";
|
|
7
|
-
readonly themeApplyFailed: "doom_pi_ui.theme_apply_failed";
|
|
8
|
-
readonly shellInstalled: "doom_pi_ui.shell_installed";
|
|
9
|
-
};
|
|
10
|
-
type UiEventName = (typeof UI_EVENT)[keyof typeof UI_EVENT];
|
|
11
|
-
type UiEventAttributes = Record<string, string | number | boolean>;
|
|
12
|
-
interface UiTelemetryOptions {
|
|
13
|
-
cwd?: string;
|
|
14
|
-
workspaceRoot?: string;
|
|
15
|
-
env?: NodeJS.ProcessEnv;
|
|
16
|
-
telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;
|
|
17
|
-
warn?: (message: string) => void;
|
|
18
|
-
}
|
|
19
|
-
interface UiTelemetry {
|
|
20
|
-
recordError(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;
|
|
21
|
-
recordWarning(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;
|
|
22
|
-
recordEvent(event: UiEventName, attributes?: UiEventAttributes): Promise<void>;
|
|
23
|
-
flush(): Promise<void>;
|
|
24
|
-
shutdown(): Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
declare function createUiTelemetry(options?: UiTelemetryOptions): UiTelemetry;
|
|
27
|
-
//#endregion
|
|
28
|
-
export { UI_EVENT, UiEventAttributes, UiEventName, UiTelemetry, UiTelemetryOptions, createUiTelemetry };
|
|
29
|
-
//# sourceMappingURL=logSinkTelemetry.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.d.mts","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"mappings":";;cAKa;;;;;;;KAQD,sBAAsB,uBAAuB;KAC7C,oBAAoB;UAEf;EACf;EACA;EACA,MAAM,OAAO;EACb,mBAAmB,YAAY;EAC/B,QAAQ;;UAGO;EACf,YAAY,OAAO,aAAa,gBAAgB,aAAa,oBAAoB;EACjF,cAAc,OAAO,aAAa,gBAAgB,aAAa,oBAAoB;EACnF,YAAY,OAAO,aAAa,aAAa,oBAAoB;EACjE,SAAS;EACT,YAAY;;iBAGE,kBAAkB,UAAS,qBAA0B"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createDoomTelemetry as e}from"@agimon-ai/doompi-telemetry";const t={leaderContributionRejected:`doom_pi_ui.leader_contribution_rejected`,leaderCommandUnavailable:`doom_pi_ui.leader_command_unavailable`,leaderActionUnavailable:`doom_pi_ui.leader_action_unavailable`,themeApplyFailed:`doom_pi_ui.theme_apply_failed`,shellInstalled:`doom_pi_ui.shell_installed`};function n(t={}){let n=e({serviceName:`doom-pi-ui`,packageName:`@agimon-ai/doompi-ui`,cwd:t.cwd,workspaceRoot:t.workspaceRoot,env:t.env,telemetryFactory:t.telemetryFactory,warn:t.warn,enableLogs:!0,enableTraces:!0});return{recordError:(e,t,r)=>n.recordError(e,t,r),recordWarning:(e,t,r)=>n.recordWarning(e,t,r),recordEvent:(e,t)=>n.recordEvent(e,t),flush:()=>n.flush(),shutdown:()=>n.shutdown()}}export{t as UI_EVENT,n as createUiTelemetry};
|
|
2
|
-
//# sourceMappingURL=logSinkTelemetry.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logSinkTelemetry.mjs","names":[],"sources":["../../../src/adapters/telemetry/logSinkTelemetry.ts"],"sourcesContent":["import { createDoomTelemetry, type DoomTelemetry, type DoomTelemetryOptions } from '@agimon-ai/doompi-telemetry';\n\nconst SERVICE_NAME = 'doom-pi-ui';\nconst PACKAGE_NAME = '@agimon-ai/doompi-ui';\n\nexport const UI_EVENT = {\n leaderContributionRejected: 'doom_pi_ui.leader_contribution_rejected',\n leaderCommandUnavailable: 'doom_pi_ui.leader_command_unavailable',\n leaderActionUnavailable: 'doom_pi_ui.leader_action_unavailable',\n themeApplyFailed: 'doom_pi_ui.theme_apply_failed',\n shellInstalled: 'doom_pi_ui.shell_installed',\n} as const;\n\nexport type UiEventName = (typeof UI_EVENT)[keyof typeof UI_EVENT];\nexport type UiEventAttributes = Record<string, string | number | boolean>;\n\nexport interface UiTelemetryOptions {\n cwd?: string;\n workspaceRoot?: string;\n env?: NodeJS.ProcessEnv;\n telemetryFactory?: NonNullable<DoomTelemetryOptions['telemetryFactory']>;\n warn?: (message: string) => void;\n}\n\nexport interface UiTelemetry {\n recordError(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;\n recordWarning(event: UiEventName, error: unknown, attributes?: UiEventAttributes): Promise<void>;\n recordEvent(event: UiEventName, attributes?: UiEventAttributes): Promise<void>;\n flush(): Promise<void>;\n shutdown(): Promise<void>;\n}\n\nexport function createUiTelemetry(options: UiTelemetryOptions = {}): UiTelemetry {\n const telemetry: DoomTelemetry = createDoomTelemetry({\n serviceName: SERVICE_NAME,\n packageName: PACKAGE_NAME,\n cwd: options.cwd,\n workspaceRoot: options.workspaceRoot,\n env: options.env,\n telemetryFactory: options.telemetryFactory,\n warn: options.warn,\n enableLogs: true,\n enableTraces: true,\n });\n return {\n recordError: (event, error, attributes) => telemetry.recordError(event, error, attributes),\n recordWarning: (event, error, attributes) => telemetry.recordWarning(event, error, attributes),\n recordEvent: (event, attributes) => telemetry.recordEvent(event, attributes),\n flush: () => telemetry.flush(),\n shutdown: () => telemetry.shutdown(),\n };\n}\n"],"mappings":"kEAEA,MAGa,EAAW,CACtB,2BAA4B,0CAC5B,yBAA0B,wCAC1B,wBAAyB,uCACzB,iBAAkB,gCAClB,eAAgB,4BAClB,EAqBA,SAAgB,EAAkB,EAA8B,CAAC,EAAgB,CAC/E,IAAM,EAA2B,EAAoB,CACnD,YAAa,aACb,YAAa,uBACb,IAAK,EAAQ,IACb,cAAe,EAAQ,cACvB,IAAK,EAAQ,IACb,iBAAkB,EAAQ,iBAC1B,KAAM,EAAQ,KACd,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,MAAO,CACL,aAAc,EAAO,EAAO,IAAe,EAAU,YAAY,EAAO,EAAO,CAAU,EACzF,eAAgB,EAAO,EAAO,IAAe,EAAU,cAAc,EAAO,EAAO,CAAU,EAC7F,aAAc,EAAO,IAAe,EAAU,YAAY,EAAO,CAAU,EAC3E,UAAa,EAAU,MAAM,EAC7B,aAAgB,EAAU,SAAS,CACrC,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/configOverlay.cjs");exports.ConfigOverlayComponent=e.ConfigOverlayComponent,exports.openConfigOverlay=e.openConfigOverlay;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ConfigOverlayComponent as e,openConfigOverlay as t}from"../tui/configOverlay.mjs";export{e as ConfigOverlayComponent,t as openConfigOverlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/doomEditor.cjs");exports.DoomEditor=e.DoomEditor;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{DoomEditor as e}from"../tui/doomEditor.mjs";export{e as DoomEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/doomFooter.cjs");exports.DoomFooter=e.DoomFooter;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{DoomFooter as e}from"../tui/doomFooter.mjs";export{e as DoomFooter};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/doomHeader.cjs");exports.DoomHeader=e.DoomHeader;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{DoomHeader as e}from"../tui/doomHeader.mjs";export{e as DoomHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/doomOverlay.cjs");exports.DOOM_FULLSCREEN_UI_OPTIONS=e.DOOM_FULLSCREEN_UI_OPTIONS,exports.DOOM_NAVIGATION_KEYS=e.DOOM_NAVIGATION_KEYS,exports.DOOM_OVERLAY_ACCENT=e.DOOM_OVERLAY_ACCENT,exports.DoomOverlay=e.DoomOverlay;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, DoomOverlayChrome, DoomOverlayTui } from "../tui/doomOverlay.cjs";
|
|
2
|
-
export { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, type DoomOverlayChrome, type DoomOverlayTui };
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, DoomOverlayChrome, DoomOverlayTui } from "../tui/doomOverlay.mjs";
|
|
2
|
-
export { DOOM_FULLSCREEN_UI_OPTIONS, DOOM_NAVIGATION_KEYS, DOOM_OVERLAY_ACCENT, DoomOverlay, type DoomOverlayChrome, type DoomOverlayTui };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{DOOM_FULLSCREEN_UI_OPTIONS as e,DOOM_NAVIGATION_KEYS as t,DOOM_OVERLAY_ACCENT as n,DoomOverlay as r}from"../tui/doomOverlay.mjs";export{e as DOOM_FULLSCREEN_UI_OPTIONS,t as DOOM_NAVIGATION_KEYS,n as DOOM_OVERLAY_ACCENT,r as DoomOverlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/leaderHints.cjs");exports.LeaderHints=e.LeaderHints;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{LeaderHints as e}from"../tui/leaderHints.mjs";export{e as LeaderHints};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/matrixPicker.cjs");exports.MatrixPickerComponent=e.MatrixPickerComponent,exports.markItems=e.markItems,exports.toggleValue=e.toggleValue,exports.visibleValues=e.visibleValues;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{MatrixPickerComponent as e,markItems as t,toggleValue as n,visibleValues as r}from"../tui/matrixPicker.mjs";export{e as MatrixPickerComponent,t as markItems,n as toggleValue,r as visibleValues};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../tui/toolsOverlay.cjs");exports.ToolsOverlayComponent=e.ToolsOverlayComponent,exports.openToolsOverlay=e.openToolsOverlay;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ToolsOverlayComponent as e,openToolsOverlay as t}from"../tui/toolsOverlay.mjs";export{e as ToolsOverlayComponent,t as openToolsOverlay};
|
package/dist/config.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@agimon-ai/doompi-extension-contracts/config");Object.defineProperty(exports,"CONFIG_ACTION",{enumerable:!0,get:function(){return e.CONFIG_ACTION}}),Object.defineProperty(exports,"ConfigActionSchema",{enumerable:!0,get:function(){return e.ConfigActionSchema}}),Object.defineProperty(exports,"ConfigChoiceSchema",{enumerable:!0,get:function(){return e.ConfigChoiceSchema}}),Object.defineProperty(exports,"ConfigFieldKindSchema",{enumerable:!0,get:function(){return e.ConfigFieldKindSchema}}),Object.defineProperty(exports,"ConfigFieldSchema",{enumerable:!0,get:function(){return e.ConfigFieldSchema}}),Object.defineProperty(exports,"ConfigProgressSchema",{enumerable:!0,get:function(){return e.ConfigProgressSchema}}),Object.defineProperty(exports,"ConfigSectionSchema",{enumerable:!0,get:function(){return e.ConfigSectionSchema}}),Object.defineProperty(exports,"ConfigSourceSchema",{enumerable:!0,get:function(){return e.ConfigSourceSchema}}),Object.defineProperty(exports,"ConfigStatusSchema",{enumerable:!0,get:function(){return e.ConfigStatusSchema}}),Object.defineProperty(exports,"ConfigStepSchema",{enumerable:!0,get:function(){return e.ConfigStepSchema}});
|
package/dist/config.d.cts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { CONFIG_ACTION, ConfigAction, ConfigActionSchema, ConfigChoice, ConfigChoiceSchema, ConfigField, ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, ConfigProgress, ConfigProgressSchema, ConfigSection, ConfigSectionSchema, ConfigSnapshot, ConfigSourceRef, ConfigSourceSchema, ConfigStatus, ConfigStatusSchema, ConfigStep, ConfigStepSchema, DoomConfigActionInput, DoomConfigContributionHandle, DoomConfigContributionOptions, DoomConfigInvocation, DoomConfigSectionView, DoomExtensionContext } from "@agimon-ai/doompi-extension-contracts/config";
|
|
2
|
-
export { CONFIG_ACTION, type ConfigAction, ConfigActionSchema, type ConfigChoice, ConfigChoiceSchema, type ConfigField, type ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, type ConfigProgress, ConfigProgressSchema, type ConfigSection, ConfigSectionSchema, type ConfigSnapshot, type ConfigSourceRef, ConfigSourceSchema, type ConfigStatus, ConfigStatusSchema, type ConfigStep, ConfigStepSchema, type DoomConfigActionInput, type DoomConfigContributionHandle, type DoomConfigContributionOptions, type DoomConfigInvocation, type DoomConfigSectionView, type DoomExtensionContext };
|
package/dist/config.d.mts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { CONFIG_ACTION, ConfigAction, ConfigActionSchema, ConfigChoice, ConfigChoiceSchema, ConfigField, ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, ConfigProgress, ConfigProgressSchema, ConfigSection, ConfigSectionSchema, ConfigSnapshot, ConfigSourceRef, ConfigSourceSchema, ConfigStatus, ConfigStatusSchema, ConfigStep, ConfigStepSchema, DoomConfigActionInput, DoomConfigContributionHandle, DoomConfigContributionOptions, DoomConfigInvocation, DoomConfigSectionView, DoomExtensionContext } from "@agimon-ai/doompi-extension-contracts/config";
|
|
2
|
-
export { CONFIG_ACTION, type ConfigAction, ConfigActionSchema, type ConfigChoice, ConfigChoiceSchema, type ConfigField, type ConfigFieldKind, ConfigFieldKindSchema, ConfigFieldSchema, type ConfigProgress, ConfigProgressSchema, type ConfigSection, ConfigSectionSchema, type ConfigSnapshot, type ConfigSourceRef, ConfigSourceSchema, type ConfigStatus, ConfigStatusSchema, type ConfigStep, ConfigStepSchema, type DoomConfigActionInput, type DoomConfigContributionHandle, type DoomConfigContributionOptions, type DoomConfigInvocation, type DoomConfigSectionView, type DoomExtensionContext };
|
package/dist/config.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{CONFIG_ACTION as e,ConfigActionSchema as t,ConfigChoiceSchema as n,ConfigFieldKindSchema as r,ConfigFieldSchema as i,ConfigProgressSchema as a,ConfigSectionSchema as o,ConfigSourceSchema as s,ConfigStatusSchema as c,ConfigStepSchema as l}from"@agimon-ai/doompi-extension-contracts/config";export{e as CONFIG_ACTION,t as ConfigActionSchema,n as ConfigChoiceSchema,r as ConfigFieldKindSchema,i as ConfigFieldSchema,a as ConfigProgressSchema,o as ConfigSectionSchema,s as ConfigSourceSchema,c as ConfigStatusSchema,l as ConfigStepSchema};
|
package/dist/extension.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters/pi/extension.cjs");exports.doomPiUiExtension=e.doomPiUiExtension;
|
package/dist/extension.d.cts
DELETED
package/dist/extension.d.mts
DELETED
package/dist/extension.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{doomPiUiExtension as e}from"./adapters/pi/extension.mjs";export{e as doomPiUiExtension};
|
package/dist/extensionName.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./adapters/pi/extensionName.cjs");exports.extensionName=e.extensionName,exports.extensionToolSource=e.extensionToolSource,exports.withExtensionSource=e.withExtensionSource;
|
package/dist/extensionName.d.cts
DELETED
package/dist/extensionName.d.mts
DELETED