@agimon-ai/doompi-mcp 0.0.1-alpha.77 → 0.0.1-alpha.78
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/mcp.cjs +52 -0
- package/dist/extensions/mcp.cjs.map +1 -0
- package/dist/extensions/mcp.d.cts +5 -0
- package/dist/extensions/mcp.d.cts.map +1 -0
- package/dist/extensions/mcp.d.mts +5 -0
- package/dist/extensions/mcp.d.mts.map +1 -0
- package/dist/extensions/mcp.mjs +47 -0
- package/dist/extensions/mcp.mjs.map +1 -0
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.cjs +5 -3
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.cjs.map +1 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.mjs +3 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.mjs.map +1 -1
- package/dist/src/services/mcpHeadlessTools/index.cjs +14 -0
- package/dist/src/services/mcpHeadlessTools/index.cjs.map +1 -0
- package/dist/src/services/mcpHeadlessTools/index.mjs +13 -0
- package/dist/src/services/mcpHeadlessTools/index.mjs.map +1 -0
- package/package.json +16 -8
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
let _agimon_ai_doompi_core_mcp_facet = require("@agimon-ai/doompi-core/mcp-facet");
|
|
6
|
+
let _agimon_ai_doompi_core_server_facet = require("@agimon-ai/doompi-core/server-facet");
|
|
7
|
+
//#region src/extensions/workspaces/sessions/(backend)/skill/doompi-use-mcp.mcp.ts
|
|
8
|
+
var doompi_use_mcp_mcp_default = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpSkill)({
|
|
9
|
+
name: "doompi-use-mcp",
|
|
10
|
+
description: "Use Doom Pi MCP to inspect domain-scoped servers, authenticate, reload configuration, and troubleshoot tool availability.",
|
|
11
|
+
read: () => (0, _agimon_ai_doompi_core_server_facet.readPackageResource)(require("url").pathToFileURL(__filename).href, "src/prompts/doompi-use-mcp/SKILL.md")
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/services/mcpHeadlessTools/index.ts
|
|
15
|
+
const MCP_HEADLESS_TOOLS_SERVICE = "doom/mcp-headless-tools";
|
|
16
|
+
function bindMcpHeadlessTool(context, name) {
|
|
17
|
+
const tool = context.services.get(MCP_HEADLESS_TOOLS_SERVICE)?.get(name);
|
|
18
|
+
if (!tool) throw new Error(`MCP tool is unavailable: ${name}`);
|
|
19
|
+
return {
|
|
20
|
+
...tool,
|
|
21
|
+
execute(toolCallId, parameters, signal, onUpdate) {
|
|
22
|
+
const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);
|
|
23
|
+
return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/mcp_use.mcp.ts
|
|
29
|
+
var mcp_use_mcp_default = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpTool)((context) => bindMcpHeadlessTool(context, "mcp_use"));
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region generated/mcp.ts
|
|
32
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
33
|
+
const via = (identity, value) => ({
|
|
34
|
+
...identity,
|
|
35
|
+
...value
|
|
36
|
+
});
|
|
37
|
+
const mcp = (0, _agimon_ai_doompi_core_mcp_facet.defineMcpPlugin)({
|
|
38
|
+
name: "@agimon-ai/doompi-mcp",
|
|
39
|
+
session: (context) => ({
|
|
40
|
+
get skills() {
|
|
41
|
+
return [at(doompi_use_mcp_mcp_default, context)];
|
|
42
|
+
},
|
|
43
|
+
get tools() {
|
|
44
|
+
return [via({ name: "mcp_use" }, at(mcp_use_mcp_default, context))];
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
//#endregion
|
|
49
|
+
exports.default = mcp;
|
|
50
|
+
exports.mcp = mcp;
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=mcp.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.cjs","names":["defineMcpSkill","readPackageResource","defineMcpTool","defineMcpPlugin","skillDoompiUseMcp","toolMcpUse"],"sources":["../../src/extensions/workspaces/sessions/(backend)/skill/doompi-use-mcp.mcp.ts","../../src/services/mcpHeadlessTools/index.ts","../../src/extensions/workspaces/sessions/(backend)/tool/mcp_use.mcp.ts","../../generated/mcp.ts"],"sourcesContent":["import { defineMcpSkill } from '@agimon-ai/doompi-core/mcp-facet';\nimport { readPackageResource } from '@agimon-ai/doompi-core/server-facet';\n\nexport default defineMcpSkill({\n name: 'doompi-use-mcp',\n description:\n 'Use Doom Pi MCP to inspect domain-scoped servers, authenticate, reload configuration, and troubleshoot tool availability.',\n read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-use-mcp/SKILL.md'),\n});\n","import type { DoomHeadlessTool } from '@agimon-ai/doompi-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\nimport type { Context } from '@deepseek-ai/cordis';\n\nexport const MCP_HEADLESS_TOOLS_SERVICE = 'doom/mcp-headless-tools';\n\nexport interface McpHeadlessToolCatalog {\n get(name: string): DoomHeadlessTool | undefined;\n}\n\nexport function mountMcpHeadlessTools(tools: readonly DoomHeadlessTool[]) {\n return (context: Context): void => {\n context.plugin((providerContext) => {\n providerContext.provide(MCP_HEADLESS_TOOLS_SERVICE, {\n get: (name) => tools.find((tool) => tool.name === name),\n } satisfies McpHeadlessToolCatalog);\n });\n };\n}\n\nexport function bindMcpHeadlessTool(context: DoomMcpPluginContext, name: string): DoomHeadlessTool {\n const tool = context.services.get<McpHeadlessToolCatalog>(MCP_HEADLESS_TOOLS_SERVICE)?.get(name);\n if (!tool) throw new Error(`MCP tool is unavailable: ${name}`);\n return {\n ...tool,\n execute(toolCallId, parameters, signal, onUpdate) {\n const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);\n return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);\n },\n };\n}\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpHeadlessTool } from '../../../../../services/mcpHeadlessTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpHeadlessTool(context, 'mcp_use'));\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineMcpPlugin, type DoomMcpSessionPlugin } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport skillDoompiUseMcp from '../src/extensions/workspaces/sessions/(backend)/skill/doompi-use-mcp.mcp';\nimport toolMcpUse from '../src/extensions/workspaces/sessions/(backend)/tool/mcp_use.mcp';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const mcp = defineMcpPlugin({\n name: '@agimon-ai/doompi-mcp',\n session: (context) => ({\n get skills(): DoomMcpSessionPlugin['skills'] { return [at(skillDoompiUseMcp, context)]; },\n get tools(): DoomMcpSessionPlugin['tools'] { return [via({ name: 'mcp_use' }, at(toolMcpUse, context))]; },\n }) satisfies DoomMcpSessionPlugin,\n});\n\nexport default mcp;\n"],"mappings":";;;;;;;AAGA,IAAA,8BAAA,GAAeA,iCAAAA,eAAAA,CAAe;CAC5B,MAAM;CACN,aACE;CACF,aAAA,GAAYC,oCAAAA,oBAAAA,CAAAA,QAAAA,KAAAA,CAAAA,CAAAA,cAAAA,UAAAA,CAAAA,CAAAA,MAAqC,qCAAqC;AACxF,CAAC;;;ACJD,MAAa,6BAA6B;AAgB1C,SAAgB,oBAAoB,SAA+B,MAAgC;CACjG,MAAM,OAAO,QAAQ,SAAS,IAA4B,0BAA0B,CAAC,EAAE,IAAI,IAAI;CAC/F,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,4BAA4B,MAAM;CAC7D,OAAO;EACL,GAAG;EACH,QAAQ,YAAY,YAAY,QAAQ,UAAU;GAChD,MAAM,kBAAkB,YAAY,IAAI,CAAC,QAAQ,QAAQ,UAAU,QAAQ,MAAM,CAAC;GAClF,OAAO,KAAK,QAAQ,YAAY,YAAY,iBAAiB,UAAU,QAAQ,SAAS;EAC1F;CACF;AACF;;;AC1BA,IAAA,uBAAA,GAAeC,iCAAAA,cAAAA,EAAe,YAAkC,oBAAoB,SAAS,SAAS,CAAC;;;ACGvG,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,OAAA,GAAMC,iCAAAA,gBAAAA,CAAgB;CACjC,MAAM;CACN,UAAU,aAAa;EACrB,IAAI,SAAyC;GAAE,OAAO,CAAC,GAAGC,4BAAmB,OAAO,CAAC;EAAG;EACxF,IAAI,QAAuC;GAAE,OAAO,CAAC,IAAI,EAAE,MAAM,UAAU,GAAG,GAAGC,qBAAY,OAAO,CAAC,CAAC;EAAG;CAC3G;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.cts","names":[],"sources":["../../generated/mcp.ts"],"mappings":";qBAWa,gDAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.mts","names":[],"sources":["../../generated/mcp.ts"],"mappings":";qBAWa,gDAAG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { defineMcpPlugin, defineMcpSkill, defineMcpTool } from "@agimon-ai/doompi-core/mcp-facet";
|
|
2
|
+
import { readPackageResource } from "@agimon-ai/doompi-core/server-facet";
|
|
3
|
+
//#region src/extensions/workspaces/sessions/(backend)/skill/doompi-use-mcp.mcp.ts
|
|
4
|
+
var doompi_use_mcp_mcp_default = defineMcpSkill({
|
|
5
|
+
name: "doompi-use-mcp",
|
|
6
|
+
description: "Use Doom Pi MCP to inspect domain-scoped servers, authenticate, reload configuration, and troubleshoot tool availability.",
|
|
7
|
+
read: () => readPackageResource(import.meta.url, "src/prompts/doompi-use-mcp/SKILL.md")
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/services/mcpHeadlessTools/index.ts
|
|
11
|
+
const MCP_HEADLESS_TOOLS_SERVICE = "doom/mcp-headless-tools";
|
|
12
|
+
function bindMcpHeadlessTool(context, name) {
|
|
13
|
+
const tool = context.services.get(MCP_HEADLESS_TOOLS_SERVICE)?.get(name);
|
|
14
|
+
if (!tool) throw new Error(`MCP tool is unavailable: ${name}`);
|
|
15
|
+
return {
|
|
16
|
+
...tool,
|
|
17
|
+
execute(toolCallId, parameters, signal, onUpdate) {
|
|
18
|
+
const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);
|
|
19
|
+
return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/mcp_use.mcp.ts
|
|
25
|
+
var mcp_use_mcp_default = defineMcpTool((context) => bindMcpHeadlessTool(context, "mcp_use"));
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region generated/mcp.ts
|
|
28
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
29
|
+
const via = (identity, value) => ({
|
|
30
|
+
...identity,
|
|
31
|
+
...value
|
|
32
|
+
});
|
|
33
|
+
const mcp = defineMcpPlugin({
|
|
34
|
+
name: "@agimon-ai/doompi-mcp",
|
|
35
|
+
session: (context) => ({
|
|
36
|
+
get skills() {
|
|
37
|
+
return [at(doompi_use_mcp_mcp_default, context)];
|
|
38
|
+
},
|
|
39
|
+
get tools() {
|
|
40
|
+
return [via({ name: "mcp_use" }, at(mcp_use_mcp_default, context))];
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
//#endregion
|
|
45
|
+
export { mcp as default, mcp };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=mcp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.mjs","names":["skillDoompiUseMcp","toolMcpUse"],"sources":["../../src/extensions/workspaces/sessions/(backend)/skill/doompi-use-mcp.mcp.ts","../../src/services/mcpHeadlessTools/index.ts","../../src/extensions/workspaces/sessions/(backend)/tool/mcp_use.mcp.ts","../../generated/mcp.ts"],"sourcesContent":["import { defineMcpSkill } from '@agimon-ai/doompi-core/mcp-facet';\nimport { readPackageResource } from '@agimon-ai/doompi-core/server-facet';\n\nexport default defineMcpSkill({\n name: 'doompi-use-mcp',\n description:\n 'Use Doom Pi MCP to inspect domain-scoped servers, authenticate, reload configuration, and troubleshoot tool availability.',\n read: () => readPackageResource(import.meta.url, 'src/prompts/doompi-use-mcp/SKILL.md'),\n});\n","import type { DoomHeadlessTool } from '@agimon-ai/doompi-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\nimport type { Context } from '@deepseek-ai/cordis';\n\nexport const MCP_HEADLESS_TOOLS_SERVICE = 'doom/mcp-headless-tools';\n\nexport interface McpHeadlessToolCatalog {\n get(name: string): DoomHeadlessTool | undefined;\n}\n\nexport function mountMcpHeadlessTools(tools: readonly DoomHeadlessTool[]) {\n return (context: Context): void => {\n context.plugin((providerContext) => {\n providerContext.provide(MCP_HEADLESS_TOOLS_SERVICE, {\n get: (name) => tools.find((tool) => tool.name === name),\n } satisfies McpHeadlessToolCatalog);\n });\n };\n}\n\nexport function bindMcpHeadlessTool(context: DoomMcpPluginContext, name: string): DoomHeadlessTool {\n const tool = context.services.get<McpHeadlessToolCatalog>(MCP_HEADLESS_TOOLS_SERVICE)?.get(name);\n if (!tool) throw new Error(`MCP tool is unavailable: ${name}`);\n return {\n ...tool,\n execute(toolCallId, parameters, signal, onUpdate) {\n const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);\n return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);\n },\n };\n}\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport { bindMcpHeadlessTool } from '../../../../../services/mcpHeadlessTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => bindMcpHeadlessTool(context, 'mcp_use'));\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { defineMcpPlugin, type DoomMcpSessionPlugin } from '@agimon-ai/doompi-core/mcp-facet';\n\nimport skillDoompiUseMcp from '../src/extensions/workspaces/sessions/(backend)/skill/doompi-use-mcp.mcp';\nimport toolMcpUse from '../src/extensions/workspaces/sessions/(backend)/tool/mcp_use.mcp';\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const mcp = defineMcpPlugin({\n name: '@agimon-ai/doompi-mcp',\n session: (context) => ({\n get skills(): DoomMcpSessionPlugin['skills'] { return [at(skillDoompiUseMcp, context)]; },\n get tools(): DoomMcpSessionPlugin['tools'] { return [via({ name: 'mcp_use' }, at(toolMcpUse, context))]; },\n }) satisfies DoomMcpSessionPlugin,\n});\n\nexport default mcp;\n"],"mappings":";;;AAGA,IAAA,6BAAe,eAAe;CAC5B,MAAM;CACN,aACE;CACF,YAAY,oBAAoB,YAAY,KAAK,qCAAqC;AACxF,CAAC;;;ACJD,MAAa,6BAA6B;AAgB1C,SAAgB,oBAAoB,SAA+B,MAAgC;CACjG,MAAM,OAAO,QAAQ,SAAS,IAA4B,0BAA0B,CAAC,EAAE,IAAI,IAAI;CAC/F,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,4BAA4B,MAAM;CAC7D,OAAO;EACL,GAAG;EACH,QAAQ,YAAY,YAAY,QAAQ,UAAU;GAChD,MAAM,kBAAkB,YAAY,IAAI,CAAC,QAAQ,QAAQ,UAAU,QAAQ,MAAM,CAAC;GAClF,OAAO,KAAK,QAAQ,YAAY,YAAY,iBAAiB,UAAU,QAAQ,SAAS;EAC1F;CACF;AACF;;;AC1BA,IAAA,sBAAe,eAAe,YAAkC,oBAAoB,SAAS,SAAS,CAAC;;;ACGvG,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,MAAM,gBAAgB;CACjC,MAAM;CACN,UAAU,aAAa;EACrB,IAAI,SAAyC;GAAE,OAAO,CAAC,GAAGA,4BAAmB,OAAO,CAAC;EAAG;EACxF,IAAI,QAAuC;GAAE,OAAO,CAAC,IAAI,EAAE,MAAM,UAAU,GAAG,GAAGC,qBAAY,OAAO,CAAC,CAAC;EAAG;CAC3G;AACF,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
const require_index = require("../../../../../services/
|
|
1
|
+
const require_index = require("../../../../../services/mcpHeadlessTools/index.cjs");
|
|
2
|
+
const require_index$1 = require("../../../../../services/serverRuntime/index.cjs");
|
|
2
3
|
//#region src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.ts
|
|
3
4
|
const createMcpServerRoot = () => {
|
|
4
|
-
const runtime = require_index.createMcpServerRuntime();
|
|
5
|
+
const runtime = require_index$1.createMcpServerRuntime();
|
|
5
6
|
return {
|
|
6
7
|
value: runtime,
|
|
7
|
-
activities: runtime.activities
|
|
8
|
+
activities: runtime.activities,
|
|
9
|
+
services: [require_index.mountMcpHeadlessTools(runtime.tools)]
|
|
8
10
|
};
|
|
9
11
|
};
|
|
10
12
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverRoot.cjs","names":["createMcpServerRuntime"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.ts"],"sourcesContent":["import { createMcpServerRuntime } from '../../../../../services/serverRuntime';\nexport const createMcpServerRoot = () => {\n const runtime = createMcpServerRuntime();\n return { value: runtime, activities: runtime.activities };\n};\nexport type McpServerScope = Awaited<ReturnType<typeof createMcpServerRoot>>['value'];\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"serverRoot.cjs","names":["createMcpServerRuntime","mountMcpHeadlessTools"],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.ts"],"sourcesContent":["import { mountMcpHeadlessTools } from '../../../../../services/mcpHeadlessTools';\nimport { createMcpServerRuntime } from '../../../../../services/serverRuntime';\nexport const createMcpServerRoot = () => {\n const runtime = createMcpServerRuntime();\n return { value: runtime, activities: runtime.activities, services: [mountMcpHeadlessTools(runtime.tools)] };\n};\nexport type McpServerScope = Awaited<ReturnType<typeof createMcpServerRoot>>['value'];\n"],"mappings":";;;AAEA,MAAa,4BAA4B;CACvC,MAAM,UAAUA,gBAAAA,uBAAuB;CACvC,OAAO;EAAE,OAAO;EAAS,YAAY,QAAQ;EAAY,UAAU,CAACC,cAAAA,sBAAsB,QAAQ,KAAK,CAAC;CAAE;AAC5G"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { mountMcpHeadlessTools } from "../../../../../services/mcpHeadlessTools/index.mjs";
|
|
1
2
|
import { createMcpServerRuntime } from "../../../../../services/serverRuntime/index.mjs";
|
|
2
3
|
//#region src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.ts
|
|
3
4
|
const createMcpServerRoot = () => {
|
|
4
5
|
const runtime = createMcpServerRuntime();
|
|
5
6
|
return {
|
|
6
7
|
value: runtime,
|
|
7
|
-
activities: runtime.activities
|
|
8
|
+
activities: runtime.activities,
|
|
9
|
+
services: [mountMcpHeadlessTools(runtime.tools)]
|
|
8
10
|
};
|
|
9
11
|
};
|
|
10
12
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverRoot.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.ts"],"sourcesContent":["import { createMcpServerRuntime } from '../../../../../services/serverRuntime';\nexport const createMcpServerRoot = () => {\n const runtime = createMcpServerRuntime();\n return { value: runtime, activities: runtime.activities };\n};\nexport type McpServerScope = Awaited<ReturnType<typeof createMcpServerRoot>>['value'];\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"serverRoot.mjs","names":[],"sources":["../../../../../../../src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.ts"],"sourcesContent":["import { mountMcpHeadlessTools } from '../../../../../services/mcpHeadlessTools';\nimport { createMcpServerRuntime } from '../../../../../services/serverRuntime';\nexport const createMcpServerRoot = () => {\n const runtime = createMcpServerRuntime();\n return { value: runtime, activities: runtime.activities, services: [mountMcpHeadlessTools(runtime.tools)] };\n};\nexport type McpServerScope = Awaited<ReturnType<typeof createMcpServerRoot>>['value'];\n"],"mappings":";;;AAEA,MAAa,4BAA4B;CACvC,MAAM,UAAU,uBAAuB;CACvC,OAAO;EAAE,OAAO;EAAS,YAAY,QAAQ;EAAY,UAAU,CAAC,sBAAsB,QAAQ,KAAK,CAAC;CAAE;AAC5G"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/services/mcpHeadlessTools/index.ts
|
|
2
|
+
const MCP_HEADLESS_TOOLS_SERVICE = "doom/mcp-headless-tools";
|
|
3
|
+
function mountMcpHeadlessTools(tools) {
|
|
4
|
+
return (context) => {
|
|
5
|
+
context.plugin((providerContext) => {
|
|
6
|
+
providerContext.provide(MCP_HEADLESS_TOOLS_SERVICE, { get: (name) => tools.find((tool) => tool.name === name) });
|
|
7
|
+
});
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.MCP_HEADLESS_TOOLS_SERVICE = MCP_HEADLESS_TOOLS_SERVICE;
|
|
12
|
+
exports.mountMcpHeadlessTools = mountMcpHeadlessTools;
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":[],"sources":["../../../../src/services/mcpHeadlessTools/index.ts"],"sourcesContent":["import type { DoomHeadlessTool } from '@agimon-ai/doompi-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\nimport type { Context } from '@deepseek-ai/cordis';\n\nexport const MCP_HEADLESS_TOOLS_SERVICE = 'doom/mcp-headless-tools';\n\nexport interface McpHeadlessToolCatalog {\n get(name: string): DoomHeadlessTool | undefined;\n}\n\nexport function mountMcpHeadlessTools(tools: readonly DoomHeadlessTool[]) {\n return (context: Context): void => {\n context.plugin((providerContext) => {\n providerContext.provide(MCP_HEADLESS_TOOLS_SERVICE, {\n get: (name) => tools.find((tool) => tool.name === name),\n } satisfies McpHeadlessToolCatalog);\n });\n };\n}\n\nexport function bindMcpHeadlessTool(context: DoomMcpPluginContext, name: string): DoomHeadlessTool {\n const tool = context.services.get<McpHeadlessToolCatalog>(MCP_HEADLESS_TOOLS_SERVICE)?.get(name);\n if (!tool) throw new Error(`MCP tool is unavailable: ${name}`);\n return {\n ...tool,\n execute(toolCallId, parameters, signal, onUpdate) {\n const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);\n return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);\n },\n };\n}\n"],"mappings":";AAIA,MAAa,6BAA6B;AAM1C,SAAgB,sBAAsB,OAAoC;CACxE,QAAQ,YAA2B;EACjC,QAAQ,QAAQ,oBAAoB;GAClC,gBAAgB,QAAQ,4BAA4B,EAClD,MAAM,SAAS,MAAM,MAAM,SAAS,KAAK,SAAS,IAAI,EACxD,CAAkC;EACpC,CAAC;CACH;AACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/services/mcpHeadlessTools/index.ts
|
|
2
|
+
const MCP_HEADLESS_TOOLS_SERVICE = "doom/mcp-headless-tools";
|
|
3
|
+
function mountMcpHeadlessTools(tools) {
|
|
4
|
+
return (context) => {
|
|
5
|
+
context.plugin((providerContext) => {
|
|
6
|
+
providerContext.provide(MCP_HEADLESS_TOOLS_SERVICE, { get: (name) => tools.find((tool) => tool.name === name) });
|
|
7
|
+
});
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { MCP_HEADLESS_TOOLS_SERVICE, mountMcpHeadlessTools };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/services/mcpHeadlessTools/index.ts"],"sourcesContent":["import type { DoomHeadlessTool } from '@agimon-ai/doompi-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/doompi-core/mcp-facet';\nimport type { Context } from '@deepseek-ai/cordis';\n\nexport const MCP_HEADLESS_TOOLS_SERVICE = 'doom/mcp-headless-tools';\n\nexport interface McpHeadlessToolCatalog {\n get(name: string): DoomHeadlessTool | undefined;\n}\n\nexport function mountMcpHeadlessTools(tools: readonly DoomHeadlessTool[]) {\n return (context: Context): void => {\n context.plugin((providerContext) => {\n providerContext.provide(MCP_HEADLESS_TOOLS_SERVICE, {\n get: (name) => tools.find((tool) => tool.name === name),\n } satisfies McpHeadlessToolCatalog);\n });\n };\n}\n\nexport function bindMcpHeadlessTool(context: DoomMcpPluginContext, name: string): DoomHeadlessTool {\n const tool = context.services.get<McpHeadlessToolCatalog>(MCP_HEADLESS_TOOLS_SERVICE)?.get(name);\n if (!tool) throw new Error(`MCP tool is unavailable: ${name}`);\n return {\n ...tool,\n execute(toolCallId, parameters, signal, onUpdate) {\n const executionSignal = AbortSignal.any([context.signal, signal ?? context.signal]);\n return tool.execute(toolCallId, parameters, executionSignal, onUpdate, context.execution);\n },\n };\n}\n"],"mappings":";AAIA,MAAa,6BAA6B;AAM1C,SAAgB,sBAAsB,OAAoC;CACxE,QAAQ,YAA2B;EACjC,QAAQ,QAAQ,oBAAoB;GAClC,gBAAgB,QAAQ,4BAA4B,EAClD,MAAM,SAAS,MAAM,MAAM,SAAS,KAAK,SAAS,IAAI,EACxD,CAAkC;EACpC,CAAC;CACH;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/doompi-mcp",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.78",
|
|
4
4
|
"description": "Domain-aware MCP server selection and access boundaries for Pi sessions composed with DoomPi.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -73,11 +73,11 @@
|
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@agimon-ai/doompi-config": "0.0.1-alpha.
|
|
77
|
-
"@agimon-ai/doompi-core": "0.0.1-alpha.
|
|
78
|
-
"@agimon-ai/doompi-ui": "0.0.1-alpha.
|
|
79
|
-
"@agimon-ai/doompi-web-components": "0.0.1-alpha.
|
|
80
|
-
"@agimon-ai/doompi-web-security": "0.0.1-alpha.
|
|
76
|
+
"@agimon-ai/doompi-config": "0.0.1-alpha.76",
|
|
77
|
+
"@agimon-ai/doompi-core": "0.0.1-alpha.77",
|
|
78
|
+
"@agimon-ai/doompi-ui": "0.0.1-alpha.77",
|
|
79
|
+
"@agimon-ai/doompi-web-components": "0.0.1-alpha.35",
|
|
80
|
+
"@agimon-ai/doompi-web-security": "0.0.1-alpha.37",
|
|
81
81
|
"@agimon-ai/mcp-proxy": "0.31.25",
|
|
82
82
|
"@deepseek-ai/cordis": "4.0.2",
|
|
83
83
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"yaml": "2.9.0"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@agimon-ai/doompi-build": "0.0.1-alpha.
|
|
90
|
+
"@agimon-ai/doompi-build": "0.0.1-alpha.6",
|
|
91
91
|
"@earendil-works/pi-coding-agent": "0.85.1",
|
|
92
92
|
"@earendil-works/pi-tui": "0.85.1",
|
|
93
93
|
"@tanstack/react-store": "0.11.1",
|
|
@@ -116,6 +116,13 @@
|
|
|
116
116
|
"engines": {
|
|
117
117
|
"node": ">=22.19.0"
|
|
118
118
|
},
|
|
119
|
+
"doompiMcp": {
|
|
120
|
+
"entry": "./generated/mcp.ts",
|
|
121
|
+
"dist": "./dist/extensions/mcp.mjs",
|
|
122
|
+
"scopes": [
|
|
123
|
+
"session"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
119
126
|
"doompiServer": {
|
|
120
127
|
"entry": "./generated/server.ts",
|
|
121
128
|
"dist": "./dist/extensions/server.mjs",
|
|
@@ -144,7 +151,8 @@
|
|
|
144
151
|
]
|
|
145
152
|
},
|
|
146
153
|
"scripts": {
|
|
147
|
-
"build": "tsdown",
|
|
154
|
+
"build": "tsdown && tsdown --config tsdown.mcp.config.ts",
|
|
155
|
+
"build:mcp": "tsdown --config tsdown.mcp.config.ts",
|
|
148
156
|
"test": "vitest --run",
|
|
149
157
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.web.json",
|
|
150
158
|
"lint": "oxlint . && oxfmt . --check",
|