@agimon-ai/doompi 0.0.1-alpha.87 → 0.0.1-alpha.88
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/dist/extensions/terminalChildSession.cjs +2 -1
- package/dist/extensions/terminalChildSession.cjs.map +1 -1
- package/dist/extensions/terminalChildSession.d.mts.map +1 -1
- package/dist/extensions/terminalChildSession.mjs +3 -2
- package/dist/extensions/terminalChildSession.mjs.map +1 -1
- package/package.json +14 -14
|
@@ -36,7 +36,8 @@ function terminalChildSessionPlugin(cordis, models, sessionsRoot) {
|
|
|
36
36
|
sessionsRoot,
|
|
37
37
|
models,
|
|
38
38
|
providers: () => registeredProviders(extensionContext.modelRegistry),
|
|
39
|
-
defaultModel: () => extensionContext.model
|
|
39
|
+
defaultModel: () => extensionContext.model,
|
|
40
|
+
mcpTool: () => sessionContext.get(_agimon_ai_doompi_core_childSession.DOOM_CHILD_SESSION_MCP_TOOL_SERVICE)
|
|
40
41
|
});
|
|
41
42
|
sessionContext.provide(_agimon_ai_doompi_core_childSession.DOOM_CHILD_SESSION_SERVICE, childSessions.get());
|
|
42
43
|
sessionContext.effect(() => () => childSessions.close(), `${PACKAGE_SOURCE}/lifetime`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalChildSession.cjs","names":["DOOM_CORDIS_SESSION_SERVICE","createTerminalPiChildSessionServiceProvider","DOOM_CHILD_SESSION_SERVICE","getAgentDir","ModelRuntime","path","connectDoomCordisHost"],"sources":["../../src/extensions/terminalChildSession.ts"],"sourcesContent":["import path from 'node:path';\n\nimport {
|
|
1
|
+
{"version":3,"file":"terminalChildSession.cjs","names":["DOOM_CORDIS_SESSION_SERVICE","createTerminalPiChildSessionServiceProvider","DOOM_CHILD_SESSION_MCP_TOOL_SERVICE","DOOM_CHILD_SESSION_SERVICE","getAgentDir","ModelRuntime","path","connectDoomCordisHost"],"sources":["../../src/extensions/terminalChildSession.ts"],"sourcesContent":["import path from 'node:path';\n\nimport {\n DOOM_CHILD_SESSION_SERVICE,\n DOOM_CHILD_SESSION_MCP_TOOL_SERVICE,\n type DoomChildSessionTool,\n} from '@agimon-ai/doompi-core/childSession';\nimport {\n connectDoomCordisHost,\n DOOM_CORDIS_SESSION_SERVICE,\n type DoomCordisSessionService,\n} from '@agimon-ai/doompi-core/cordisHost';\nimport { createTerminalPiChildSessionServiceProvider } from '@agimon-ai/doompi-core/terminalPiChildSessionService';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { Provider } from '@earendil-works/pi-ai';\nimport { getAgentDir, ModelRuntime, type ExtensionAPI, type ModelRegistry } from '@earendil-works/pi-coding-agent';\n\nconst PACKAGE_SOURCE = '@agimon-ai/doompi/terminal-child-session';\n\n/**\n * Collect the providers registered in this process by Pi extensions.\n *\n * The child ModelRuntime is built from auth.json and models.json, so it only\n * knows providers that exist on disk. A custom provider contributed through\n * `pi.registerProvider()` lives solely in the host registry, and its stream\n * closures cannot be reconstructed from a file. Reading the live registry per\n * spawn keeps late registrations visible.\n */\nfunction registeredProviders(registry: ModelRegistry): readonly Provider[] {\n const providers: Provider[] = [];\n for (const id of registry.getRegisteredProviderIds()) {\n const provider = registry.getRegisteredNativeProvider(id) ?? registry.getProvider(id);\n if (provider !== undefined) providers.push(provider);\n }\n return providers;\n}\n\nfunction terminalChildSessionPlugin(cordis: Context, models: ModelRuntime, sessionsRoot: string): void {\n cordis.inject([DOOM_CORDIS_SESSION_SERVICE], (sessionContext) => {\n const session = sessionContext.get(DOOM_CORDIS_SESSION_SERVICE) as DoomCordisSessionService;\n const extensionContext = session.context;\n const childSessions = createTerminalPiChildSessionServiceProvider({\n cwd: extensionContext.cwd,\n sessionsRoot,\n models,\n providers: () => registeredProviders(extensionContext.modelRegistry),\n defaultModel: () => extensionContext.model,\n mcpTool: () => sessionContext.get(DOOM_CHILD_SESSION_MCP_TOOL_SERVICE) as DoomChildSessionTool | undefined,\n });\n sessionContext.provide(DOOM_CHILD_SESSION_SERVICE, childSessions.get());\n sessionContext.effect(() => () => childSessions.close(), `${PACKAGE_SOURCE}/lifetime`);\n });\n}\n\n/** Bind terminal Pi child ownership inside the core Cordis composition, before feature packages consume it. */\nexport async function terminalChildSessionExtension(pi: ExtensionAPI): Promise<void> {\n const agentDir = getAgentDir();\n const models = await ModelRuntime.create({\n authPath: path.join(agentDir, 'auth.json'),\n modelsPath: path.join(agentDir, 'models.json'),\n refreshOnCreate: false,\n });\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const sessionsRoot = path.join(agentDir, 'sessions');\n const fiber = connection.root.plugin((cordis) => terminalChildSessionPlugin(cordis, models, sessionsRoot));\n let disposal: Promise<void> | undefined;\n pi.on(\n 'session_shutdown',\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n try {\n await fiber;\n } catch (error) {\n await fiber.dispose();\n await connection.dispose();\n throw error;\n }\n}\n\nexport default terminalChildSessionExtension;\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,iBAAiB;;;;;;;;;;AAWvB,SAAS,oBAAoB,UAA8C;CACzE,MAAM,YAAwB,CAAC;CAC/B,KAAK,MAAM,MAAM,SAAS,yBAAyB,GAAG;EACpD,MAAM,WAAW,SAAS,4BAA4B,EAAE,KAAK,SAAS,YAAY,EAAE;EACpF,IAAI,aAAa,KAAA,GAAW,UAAU,KAAK,QAAQ;CACrD;CACA,OAAO;AACT;AAEA,SAAS,2BAA2B,QAAiB,QAAsB,cAA4B;CACrG,OAAO,OAAO,CAACA,kCAAAA,2BAA2B,IAAI,mBAAmB;EAE/D,MAAM,mBADU,eAAe,IAAIA,kCAAAA,2BACJ,CAAC,CAAC;EACjC,MAAM,iBAAA,GAAgBC,qDAAAA,4CAAAA,CAA4C;GAChE,KAAK,iBAAiB;GACtB;GACA;GACA,iBAAiB,oBAAoB,iBAAiB,aAAa;GACnE,oBAAoB,iBAAiB;GACrC,eAAe,eAAe,IAAIC,oCAAAA,mCAAmC;EACvE,CAAC;EACD,eAAe,QAAQC,oCAAAA,4BAA4B,cAAc,IAAI,CAAC;EACtE,eAAe,mBAAmB,cAAc,MAAM,GAAG,GAAG,eAAe,UAAU;CACvF,CAAC;AACH;;AAGA,eAAsB,8BAA8B,IAAiC;CACnF,MAAM,YAAA,GAAWC,gCAAAA,YAAAA,CAAY;CAC7B,MAAM,SAAS,MAAMC,gCAAAA,aAAa,OAAO;EACvC,UAAUC,UAAAA,QAAK,KAAK,UAAU,WAAW;EACzC,YAAYA,UAAAA,QAAK,KAAK,UAAU,aAAa;EAC7C,iBAAiB;CACnB,CAAC;CACD,MAAM,aAAa,OAAA,GAAMC,kCAAAA,sBAAAA,CAAsB,IAAI,cAAc;CACjE,MAAM,eAAeD,UAAAA,QAAK,KAAK,UAAU,UAAU;CACnD,MAAM,QAAQ,WAAW,KAAK,QAAQ,WAAW,2BAA2B,QAAQ,QAAQ,YAAY,CAAC;CACzG,IAAI;CACJ,GAAG,GACD,0BAEG,cAAc,YAAY;EACzB,IAAI;GACF,MAAM,MAAM,QAAQ;EACtB,UAAU;GACR,MAAM,WAAW,QAAQ;EAC3B;CACF,EAAA,CAAG,CACP;CACA,IAAI;EACF,MAAM;CACR,SAAS,OAAO;EACd,MAAM,MAAM,QAAQ;EACpB,MAAM,WAAW,QAAQ;EACzB,MAAM;CACR;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalChildSession.d.mts","names":[],"sources":["../../src/extensions/terminalChildSession.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"terminalChildSession.d.mts","names":[],"sources":["../../src/extensions/terminalChildSession.ts"],"mappings":";;;wBAuDsB,8BAA8B,IAAI,eAAe"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { ModelRuntime, getAgentDir } from "@earendil-works/pi-coding-agent";
|
|
3
3
|
import { DOOM_CORDIS_SESSION_SERVICE, connectDoomCordisHost } from "@agimon-ai/doompi-core/cordisHost";
|
|
4
|
-
import { DOOM_CHILD_SESSION_SERVICE } from "@agimon-ai/doompi-core/childSession";
|
|
4
|
+
import { DOOM_CHILD_SESSION_MCP_TOOL_SERVICE, DOOM_CHILD_SESSION_SERVICE } from "@agimon-ai/doompi-core/childSession";
|
|
5
5
|
import { createTerminalPiChildSessionServiceProvider } from "@agimon-ai/doompi-core/terminalPiChildSessionService";
|
|
6
6
|
//#region src/extensions/terminalChildSession.ts
|
|
7
7
|
const PACKAGE_SOURCE = "@agimon-ai/doompi/terminal-child-session";
|
|
@@ -30,7 +30,8 @@ function terminalChildSessionPlugin(cordis, models, sessionsRoot) {
|
|
|
30
30
|
sessionsRoot,
|
|
31
31
|
models,
|
|
32
32
|
providers: () => registeredProviders(extensionContext.modelRegistry),
|
|
33
|
-
defaultModel: () => extensionContext.model
|
|
33
|
+
defaultModel: () => extensionContext.model,
|
|
34
|
+
mcpTool: () => sessionContext.get(DOOM_CHILD_SESSION_MCP_TOOL_SERVICE)
|
|
34
35
|
});
|
|
35
36
|
sessionContext.provide(DOOM_CHILD_SESSION_SERVICE, childSessions.get());
|
|
36
37
|
sessionContext.effect(() => () => childSessions.close(), `${PACKAGE_SOURCE}/lifetime`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalChildSession.mjs","names":[],"sources":["../../src/extensions/terminalChildSession.ts"],"sourcesContent":["import path from 'node:path';\n\nimport {
|
|
1
|
+
{"version":3,"file":"terminalChildSession.mjs","names":[],"sources":["../../src/extensions/terminalChildSession.ts"],"sourcesContent":["import path from 'node:path';\n\nimport {\n DOOM_CHILD_SESSION_SERVICE,\n DOOM_CHILD_SESSION_MCP_TOOL_SERVICE,\n type DoomChildSessionTool,\n} from '@agimon-ai/doompi-core/childSession';\nimport {\n connectDoomCordisHost,\n DOOM_CORDIS_SESSION_SERVICE,\n type DoomCordisSessionService,\n} from '@agimon-ai/doompi-core/cordisHost';\nimport { createTerminalPiChildSessionServiceProvider } from '@agimon-ai/doompi-core/terminalPiChildSessionService';\nimport type { Context } from '@deepseek-ai/cordis';\nimport type { Provider } from '@earendil-works/pi-ai';\nimport { getAgentDir, ModelRuntime, type ExtensionAPI, type ModelRegistry } from '@earendil-works/pi-coding-agent';\n\nconst PACKAGE_SOURCE = '@agimon-ai/doompi/terminal-child-session';\n\n/**\n * Collect the providers registered in this process by Pi extensions.\n *\n * The child ModelRuntime is built from auth.json and models.json, so it only\n * knows providers that exist on disk. A custom provider contributed through\n * `pi.registerProvider()` lives solely in the host registry, and its stream\n * closures cannot be reconstructed from a file. Reading the live registry per\n * spawn keeps late registrations visible.\n */\nfunction registeredProviders(registry: ModelRegistry): readonly Provider[] {\n const providers: Provider[] = [];\n for (const id of registry.getRegisteredProviderIds()) {\n const provider = registry.getRegisteredNativeProvider(id) ?? registry.getProvider(id);\n if (provider !== undefined) providers.push(provider);\n }\n return providers;\n}\n\nfunction terminalChildSessionPlugin(cordis: Context, models: ModelRuntime, sessionsRoot: string): void {\n cordis.inject([DOOM_CORDIS_SESSION_SERVICE], (sessionContext) => {\n const session = sessionContext.get(DOOM_CORDIS_SESSION_SERVICE) as DoomCordisSessionService;\n const extensionContext = session.context;\n const childSessions = createTerminalPiChildSessionServiceProvider({\n cwd: extensionContext.cwd,\n sessionsRoot,\n models,\n providers: () => registeredProviders(extensionContext.modelRegistry),\n defaultModel: () => extensionContext.model,\n mcpTool: () => sessionContext.get(DOOM_CHILD_SESSION_MCP_TOOL_SERVICE) as DoomChildSessionTool | undefined,\n });\n sessionContext.provide(DOOM_CHILD_SESSION_SERVICE, childSessions.get());\n sessionContext.effect(() => () => childSessions.close(), `${PACKAGE_SOURCE}/lifetime`);\n });\n}\n\n/** Bind terminal Pi child ownership inside the core Cordis composition, before feature packages consume it. */\nexport async function terminalChildSessionExtension(pi: ExtensionAPI): Promise<void> {\n const agentDir = getAgentDir();\n const models = await ModelRuntime.create({\n authPath: path.join(agentDir, 'auth.json'),\n modelsPath: path.join(agentDir, 'models.json'),\n refreshOnCreate: false,\n });\n const connection = await connectDoomCordisHost(pi, PACKAGE_SOURCE);\n const sessionsRoot = path.join(agentDir, 'sessions');\n const fiber = connection.root.plugin((cordis) => terminalChildSessionPlugin(cordis, models, sessionsRoot));\n let disposal: Promise<void> | undefined;\n pi.on(\n 'session_shutdown',\n () =>\n (disposal ??= (async () => {\n try {\n await fiber.dispose();\n } finally {\n await connection.dispose();\n }\n })()),\n );\n try {\n await fiber;\n } catch (error) {\n await fiber.dispose();\n await connection.dispose();\n throw error;\n }\n}\n\nexport default terminalChildSessionExtension;\n"],"mappings":";;;;;;AAiBA,MAAM,iBAAiB;;;;;;;;;;AAWvB,SAAS,oBAAoB,UAA8C;CACzE,MAAM,YAAwB,CAAC;CAC/B,KAAK,MAAM,MAAM,SAAS,yBAAyB,GAAG;EACpD,MAAM,WAAW,SAAS,4BAA4B,EAAE,KAAK,SAAS,YAAY,EAAE;EACpF,IAAI,aAAa,KAAA,GAAW,UAAU,KAAK,QAAQ;CACrD;CACA,OAAO;AACT;AAEA,SAAS,2BAA2B,QAAiB,QAAsB,cAA4B;CACrG,OAAO,OAAO,CAAC,2BAA2B,IAAI,mBAAmB;EAE/D,MAAM,mBADU,eAAe,IAAI,2BACJ,CAAC,CAAC;EACjC,MAAM,gBAAgB,4CAA4C;GAChE,KAAK,iBAAiB;GACtB;GACA;GACA,iBAAiB,oBAAoB,iBAAiB,aAAa;GACnE,oBAAoB,iBAAiB;GACrC,eAAe,eAAe,IAAI,mCAAmC;EACvE,CAAC;EACD,eAAe,QAAQ,4BAA4B,cAAc,IAAI,CAAC;EACtE,eAAe,mBAAmB,cAAc,MAAM,GAAG,GAAG,eAAe,UAAU;CACvF,CAAC;AACH;;AAGA,eAAsB,8BAA8B,IAAiC;CACnF,MAAM,WAAW,YAAY;CAC7B,MAAM,SAAS,MAAM,aAAa,OAAO;EACvC,UAAU,KAAK,KAAK,UAAU,WAAW;EACzC,YAAY,KAAK,KAAK,UAAU,aAAa;EAC7C,iBAAiB;CACnB,CAAC;CACD,MAAM,aAAa,MAAM,sBAAsB,IAAI,cAAc;CACjE,MAAM,eAAe,KAAK,KAAK,UAAU,UAAU;CACnD,MAAM,QAAQ,WAAW,KAAK,QAAQ,WAAW,2BAA2B,QAAQ,QAAQ,YAAY,CAAC;CACzG,IAAI;CACJ,GAAG,GACD,0BAEG,cAAc,YAAY;EACzB,IAAI;GACF,MAAM,MAAM,QAAQ;EACtB,UAAU;GACR,MAAM,WAAW,QAAQ;EAC3B;CACF,EAAA,CAAG,CACP;CACA,IAAI;EACF,MAAM;CACR,SAAS,OAAO;EACd,MAAM,MAAM,QAAQ;EACpB,MAAM,WAAW,QAAQ;EACzB,MAAM;CACR;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.88",
|
|
4
4
|
"description": "Opinionated, composable Pi distribution for scoped agent tools, skills, MCP servers, and developer workflows.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -277,19 +277,19 @@
|
|
|
277
277
|
"registry": "https://registry.npmjs.org/"
|
|
278
278
|
},
|
|
279
279
|
"dependencies": {
|
|
280
|
-
"@agimon-ai/doompi-autostop": "0.0.1-alpha.
|
|
281
|
-
"@agimon-ai/doompi-cache": "0.0.1-alpha.
|
|
282
|
-
"@agimon-ai/doompi-config": "0.0.1-alpha.
|
|
283
|
-
"@agimon-ai/doompi-core": "0.0.1-alpha.
|
|
284
|
-
"@agimon-ai/doompi-domain": "0.0.1-alpha.
|
|
285
|
-
"@agimon-ai/doompi-major-mode": "0.0.1-alpha.
|
|
286
|
-
"@agimon-ai/doompi-minor-mode": "0.0.1-alpha.
|
|
287
|
-
"@agimon-ai/doompi-notification": "0.0.1-alpha.
|
|
288
|
-
"@agimon-ai/doompi-profile": "0.0.1-alpha.
|
|
289
|
-
"@agimon-ai/doompi-session": "0.0.1-alpha.
|
|
290
|
-
"@agimon-ai/doompi-skill": "0.0.1-alpha.
|
|
280
|
+
"@agimon-ai/doompi-autostop": "0.0.1-alpha.62",
|
|
281
|
+
"@agimon-ai/doompi-cache": "0.0.1-alpha.51",
|
|
282
|
+
"@agimon-ai/doompi-config": "0.0.1-alpha.84",
|
|
283
|
+
"@agimon-ai/doompi-core": "0.0.1-alpha.85",
|
|
284
|
+
"@agimon-ai/doompi-domain": "0.0.1-alpha.63",
|
|
285
|
+
"@agimon-ai/doompi-major-mode": "0.0.1-alpha.63",
|
|
286
|
+
"@agimon-ai/doompi-minor-mode": "0.0.1-alpha.85",
|
|
287
|
+
"@agimon-ai/doompi-notification": "0.0.1-alpha.62",
|
|
288
|
+
"@agimon-ai/doompi-profile": "0.0.1-alpha.63",
|
|
289
|
+
"@agimon-ai/doompi-session": "0.0.1-alpha.9",
|
|
290
|
+
"@agimon-ai/doompi-skill": "0.0.1-alpha.63",
|
|
291
291
|
"@agimon-ai/doompi-telemetry": "0.0.1-alpha.80",
|
|
292
|
-
"@agimon-ai/doompi-ui": "0.0.1-alpha.
|
|
292
|
+
"@agimon-ai/doompi-ui": "0.0.1-alpha.85",
|
|
293
293
|
"@agimon-ai/doompi-web-security": "0.0.1-alpha.43",
|
|
294
294
|
"@deepseek-ai/cordis": "4.0.2",
|
|
295
295
|
"@earendil-works/chord": "0.87.1",
|
|
@@ -315,7 +315,7 @@
|
|
|
315
315
|
"yaml": "2.9.1"
|
|
316
316
|
},
|
|
317
317
|
"devDependencies": {
|
|
318
|
-
"@agimon-ai/doompi-runner": "0.0.1-alpha.
|
|
318
|
+
"@agimon-ai/doompi-runner": "0.0.1-alpha.85",
|
|
319
319
|
"@agimon-ai/vibe-lint-plugin-doom-cli": "0.0.1-alpha.15",
|
|
320
320
|
"@earendil-works/pi-ai": "0.87.1",
|
|
321
321
|
"@earendil-works/pi-client": "0.87.1",
|