@agimon-ai/po-config 0.0.0-alpha.0
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/LICENSE +21 -0
- package/README.md +170 -0
- package/dist/agentPluginMcp.cjs +322 -0
- package/dist/agentPluginMcp.cjs.map +1 -0
- package/dist/agentPluginMcp.d.mts +38 -0
- package/dist/agentPluginMcp.d.mts.map +1 -0
- package/dist/agentPluginMcp.mjs +318 -0
- package/dist/agentPluginMcp.mjs.map +1 -0
- package/dist/apiContracts.cjs +203 -0
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/apiContracts.d.mts +53 -0
- package/dist/apiContracts.d.mts.map +1 -0
- package/dist/apiContracts.mjs +198 -0
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/atomicJson-1W0WhuFF.mjs +44 -0
- package/dist/atomicJson-1W0WhuFF.mjs.map +1 -0
- package/dist/atomicJson-Dt2z_DXl.cjs +52 -0
- package/dist/atomicJson-Dt2z_DXl.cjs.map +1 -0
- package/dist/atomicJson.cjs +3 -0
- package/dist/atomicJson.d.mts +2 -0
- package/dist/atomicJson.mjs +2 -0
- package/dist/config-BUw5kHsx.cjs +219 -0
- package/dist/config-BUw5kHsx.cjs.map +1 -0
- package/dist/config-CKA07FxG.mjs +162 -0
- package/dist/config-CKA07FxG.mjs.map +1 -0
- package/dist/config-Cm3EV1jp.d.mts +320 -0
- package/dist/config-Cm3EV1jp.d.mts.map +1 -0
- package/dist/config-NSHRd6na.mjs +2 -0
- package/dist/config-zZz80Mh5.cjs +1 -0
- package/dist/config.cjs +24 -0
- package/dist/config.d.mts +3 -0
- package/dist/config.mjs +3 -0
- package/dist/configPolicy--TNX7feH.mjs +718 -0
- package/dist/configPolicy--TNX7feH.mjs.map +1 -0
- package/dist/configPolicy-DmsZEp0t.cjs +795 -0
- package/dist/configPolicy-DmsZEp0t.cjs.map +1 -0
- package/dist/configSchema.cjs +0 -0
- package/dist/configSchema.d.mts +2 -0
- package/dist/configSchema.mjs +1 -0
- package/dist/configWriter-BTuinLjs.cjs +150 -0
- package/dist/configWriter-BTuinLjs.cjs.map +1 -0
- package/dist/configWriter-BgkGaLrf.mjs +130 -0
- package/dist/configWriter-BgkGaLrf.mjs.map +1 -0
- package/dist/configWriter.cjs +5 -0
- package/dist/configWriter.d.mts +2 -0
- package/dist/configWriter.mjs +2 -0
- package/dist/domains-CBYkuxs5.cjs +727 -0
- package/dist/domains-CBYkuxs5.cjs.map +1 -0
- package/dist/domains-DZOu9vYM.mjs +633 -0
- package/dist/domains-DZOu9vYM.mjs.map +1 -0
- package/dist/domains.cjs +19 -0
- package/dist/domains.d.mts +3 -0
- package/dist/domains.mjs +3 -0
- package/dist/extensions/mcp-ui.mjs +101 -0
- package/dist/extensions/mcp-ui.mjs.map +1 -0
- package/dist/extensions/mcp.cjs +171 -0
- package/dist/extensions/mcp.cjs.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 +166 -0
- package/dist/extensions/mcp.mjs.map +1 -0
- package/dist/extensions/server.cjs +504 -0
- package/dist/extensions/server.cjs.map +1 -0
- package/dist/extensions/server.d.mts +5 -0
- package/dist/extensions/server.d.mts.map +1 -0
- package/dist/extensions/server.mjs +499 -0
- package/dist/extensions/server.mjs.map +1 -0
- package/dist/harnessState-CCyBeutB.cjs +188 -0
- package/dist/harnessState-CCyBeutB.cjs.map +1 -0
- package/dist/harnessState-Dn_S7fB9.mjs +163 -0
- package/dist/harnessState-Dn_S7fB9.mjs.map +1 -0
- package/dist/harnessState.cjs +6 -0
- package/dist/harnessState.d.mts +2 -0
- package/dist/harnessState.mjs +2 -0
- package/dist/harnessStore-CJSxdSkV.cjs +343 -0
- package/dist/harnessStore-CJSxdSkV.cjs.map +1 -0
- package/dist/harnessStore-CltwLB7M.mjs +262 -0
- package/dist/harnessStore-CltwLB7M.mjs.map +1 -0
- package/dist/harnessStore.cjs +15 -0
- package/dist/harnessStore.d.mts +2 -0
- package/dist/harnessStore.mjs +2 -0
- package/dist/index-BAaTySaM.d.mts +35 -0
- package/dist/index-BAaTySaM.d.mts.map +1 -0
- package/dist/index-BT29GZx5.d.mts +142 -0
- package/dist/index-BT29GZx5.d.mts.map +1 -0
- package/dist/index-B_lp0W3U.d.mts +114 -0
- package/dist/index-B_lp0W3U.d.mts.map +1 -0
- package/dist/index-C6GaYjq-.d.mts +6 -0
- package/dist/index-C6GaYjq-.d.mts.map +1 -0
- package/dist/index-CIQrKS1A.d.mts +50 -0
- package/dist/index-CIQrKS1A.d.mts.map +1 -0
- package/dist/index-CRcoVYXz.d.mts +39 -0
- package/dist/index-CRcoVYXz.d.mts.map +1 -0
- package/dist/index-CVlciCJF.d.mts +40 -0
- package/dist/index-CVlciCJF.d.mts.map +1 -0
- package/dist/index-CeOk2kqs.d.mts +118 -0
- package/dist/index-CeOk2kqs.d.mts.map +1 -0
- package/dist/index-Ch7ptOkW.d.mts +54 -0
- package/dist/index-Ch7ptOkW.d.mts.map +1 -0
- package/dist/index-Cvdt-Y-i.d.mts +66 -0
- package/dist/index-Cvdt-Y-i.d.mts.map +1 -0
- package/dist/index-DJpG-I9K.d.mts +122 -0
- package/dist/index-DJpG-I9K.d.mts.map +1 -0
- package/dist/index-DNk4q0Qm.d.mts +81 -0
- package/dist/index-DNk4q0Qm.d.mts.map +1 -0
- package/dist/index.cjs +121 -0
- package/dist/index.d.mts +15 -0
- package/dist/index.mjs +15 -0
- package/dist/init-C_9nyp3-.cjs +448 -0
- package/dist/init-C_9nyp3-.cjs.map +1 -0
- package/dist/init-DJ6wm-dr.mjs +415 -0
- package/dist/init-DJ6wm-dr.mjs.map +1 -0
- package/dist/init.cjs +7 -0
- package/dist/init.d.mts +2 -0
- package/dist/init.mjs +2 -0
- package/dist/layeredConfig-B922ibgn.mjs +67 -0
- package/dist/layeredConfig-B922ibgn.mjs.map +1 -0
- package/dist/layeredConfig-DdI5ysUf.cjs +94 -0
- package/dist/layeredConfig-DdI5ysUf.cjs.map +1 -0
- package/dist/layeredConfig.cjs +6 -0
- package/dist/layeredConfig.d.mts +2 -0
- package/dist/layeredConfig.mjs +2 -0
- package/dist/majorModes-CmPLEpMT.mjs +333 -0
- package/dist/majorModes-CmPLEpMT.mjs.map +1 -0
- package/dist/majorModes-DPhVMuhT.cjs +383 -0
- package/dist/majorModes-DPhVMuhT.cjs.map +1 -0
- package/dist/majorModes.cjs +10 -0
- package/dist/majorModes.d.mts +2 -0
- package/dist/majorModes.mjs +2 -0
- package/dist/piConfig-Bx26HMb_.d.mts +33 -0
- package/dist/piConfig-Bx26HMb_.d.mts.map +1 -0
- package/dist/piConfig-CCBdZXQr.cjs +260 -0
- package/dist/piConfig-CCBdZXQr.cjs.map +1 -0
- package/dist/piConfig-qGyCbcVj.mjs +197 -0
- package/dist/piConfig-qGyCbcVj.mjs.map +1 -0
- package/dist/piConfig.cjs +12 -0
- package/dist/piConfig.d.mts +2 -0
- package/dist/piConfig.mjs +2 -0
- package/dist/piContext.cjs +18 -0
- package/dist/piContext.d.mts +3 -0
- package/dist/piContext.mjs +2 -0
- package/dist/profiles-CTrUCmIh.d.mts +27 -0
- package/dist/profiles-CTrUCmIh.d.mts.map +1 -0
- package/dist/profiles-DnF9DBpd.cjs +552 -0
- package/dist/profiles-DnF9DBpd.cjs.map +1 -0
- package/dist/profiles-fujQKrS0.mjs +483 -0
- package/dist/profiles-fujQKrS0.mjs.map +1 -0
- package/dist/profiles.cjs +13 -0
- package/dist/profiles.d.mts +25 -0
- package/dist/profiles.d.mts.map +1 -0
- package/dist/profiles.mjs +2 -0
- package/dist/rolldown-runtime-VH7oDXx4.cjs +28 -0
- package/dist/selectionSwitch.cjs +70 -0
- package/dist/selectionSwitch.cjs.map +1 -0
- package/dist/selectionSwitch.d.mts +30 -0
- package/dist/selectionSwitch.d.mts.map +1 -0
- package/dist/selectionSwitch.mjs +64 -0
- package/dist/selectionSwitch.mjs.map +1 -0
- package/dist/sessionConfig-Boh4Fdje.cjs +342 -0
- package/dist/sessionConfig-Boh4Fdje.cjs.map +1 -0
- package/dist/sessionConfig-CtLoc-lO.mjs +240 -0
- package/dist/sessionConfig-CtLoc-lO.mjs.map +1 -0
- package/dist/types.cjs +9 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.mjs +2 -0
- package/llms.txt +12 -0
- package/package.json +206 -0
- package/src/prompts/po-author-config/SKILL.md +26 -0
- package/src/prompts/po-author-config/agents/openai.yaml +4 -0
- package/src/prompts/po-author-config/references/config-contract.md +201 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { defineMcpPlugin, defineMcpSkill, defineMcpTool } from "@agimon-ai/po-core/mcpFacet";
|
|
2
|
+
import { readPackageResource } from "@agimon-ai/po-core/serverFacet";
|
|
3
|
+
import { Type } from "typebox";
|
|
4
|
+
//#region src/extensions/workspaces/sessions/(backend)/skill/po-author-config.mcp.ts
|
|
5
|
+
var po_author_config_mcp_default = defineMcpSkill({
|
|
6
|
+
name: "po-author-config",
|
|
7
|
+
description: "Configure Po runtime settings, source precedence, and typed session configuration. Use for config.yaml, the doom/config Cordis service, immutable context snapshots, or shared selection transition state. Do not use for defining modes.yaml, domains.yaml, or profiles.yaml.",
|
|
8
|
+
read: () => readPackageResource(import.meta.url, "src/prompts/po-author-config/SKILL.md")
|
|
9
|
+
});
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/schemas/mcpContextTools.ts
|
|
12
|
+
const loadContextParameters = Type.Object({}, { additionalProperties: false });
|
|
13
|
+
const renameThreadParameters = Type.Object({ title: Type.String({
|
|
14
|
+
minLength: 1,
|
|
15
|
+
maxLength: 256
|
|
16
|
+
}) }, { additionalProperties: false });
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/schemas/mcpSessionView.ts
|
|
19
|
+
const sessionViewSchema = Type.Object({
|
|
20
|
+
sessionId: Type.String(),
|
|
21
|
+
revision: Type.Integer({ minimum: 0 }),
|
|
22
|
+
repositoryName: Type.String(),
|
|
23
|
+
profile: Type.Union([Type.String(), Type.Null()]),
|
|
24
|
+
majorMode: Type.String(),
|
|
25
|
+
domains: Type.Array(Type.String()),
|
|
26
|
+
layers: Type.Array(Type.String()),
|
|
27
|
+
minorModes: Type.Array(Type.String())
|
|
28
|
+
}, { additionalProperties: false });
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/services/mcpContextTools/index.ts
|
|
31
|
+
function createLoadContextTool(context) {
|
|
32
|
+
return {
|
|
33
|
+
name: "load_context",
|
|
34
|
+
label: "Load context",
|
|
35
|
+
description: "Call at the beginning of a session, and after changing profile or modes, to load repository instructions and current session context.",
|
|
36
|
+
parameters: loadContextParameters,
|
|
37
|
+
annotations: {
|
|
38
|
+
readOnlyHint: true,
|
|
39
|
+
destructiveHint: false,
|
|
40
|
+
openWorldHint: false
|
|
41
|
+
},
|
|
42
|
+
async execute() {
|
|
43
|
+
const snapshot = context.loadContext();
|
|
44
|
+
return {
|
|
45
|
+
content: [{
|
|
46
|
+
type: "text",
|
|
47
|
+
text: JSON.stringify(snapshot)
|
|
48
|
+
}],
|
|
49
|
+
structuredContent: { ...snapshot }
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function createRenameThreadTool(context) {
|
|
55
|
+
return {
|
|
56
|
+
name: "rename_thread",
|
|
57
|
+
label: "Rename thread",
|
|
58
|
+
description: "Rename the current Po conversation so its purpose is clear in the workspace session list.",
|
|
59
|
+
parameters: renameThreadParameters,
|
|
60
|
+
annotations: {
|
|
61
|
+
readOnlyHint: false,
|
|
62
|
+
destructiveHint: false,
|
|
63
|
+
openWorldHint: false
|
|
64
|
+
},
|
|
65
|
+
async execute(_toolCallId, { title }) {
|
|
66
|
+
const next = title.trim();
|
|
67
|
+
if (!next) throw new Error("Thread title cannot be empty.");
|
|
68
|
+
if (context.execution.session.setName === void 0) throw new Error("Session rename is unavailable.");
|
|
69
|
+
await context.execution.session.setName(next);
|
|
70
|
+
return { content: [{
|
|
71
|
+
type: "text",
|
|
72
|
+
text: `Renamed thread to "${next}".`
|
|
73
|
+
}] };
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function createShowSessionTool(context) {
|
|
78
|
+
return {
|
|
79
|
+
name: "show_session",
|
|
80
|
+
label: "Show session",
|
|
81
|
+
description: "Show or refresh a read-only summary of the current Po session. Does not load repository instructions.",
|
|
82
|
+
parameters: loadContextParameters,
|
|
83
|
+
outputSchema: { ...sessionViewSchema },
|
|
84
|
+
annotations: {
|
|
85
|
+
readOnlyHint: true,
|
|
86
|
+
destructiveHint: false,
|
|
87
|
+
openWorldHint: false
|
|
88
|
+
},
|
|
89
|
+
_meta: {
|
|
90
|
+
ui: { visibility: ["model", "app"] },
|
|
91
|
+
"openai/toolInvocation/invoking": "Loading session",
|
|
92
|
+
"openai/toolInvocation/invoked": "Session ready"
|
|
93
|
+
},
|
|
94
|
+
async execute() {
|
|
95
|
+
const snapshot = context.loadContext();
|
|
96
|
+
const view = {
|
|
97
|
+
sessionId: snapshot.session.id,
|
|
98
|
+
revision: snapshot.session.revision,
|
|
99
|
+
repositoryName: snapshot.repository.root.replaceAll("\\", "/").split("/").filter(Boolean).at(-1) ?? "Repository",
|
|
100
|
+
profile: snapshot.selection.profile,
|
|
101
|
+
majorMode: snapshot.selection.majorMode,
|
|
102
|
+
domains: [...snapshot.selection.domains],
|
|
103
|
+
layers: [...snapshot.selection.activeLayers],
|
|
104
|
+
minorModes: [...snapshot.selection.minorModes ?? []]
|
|
105
|
+
};
|
|
106
|
+
return {
|
|
107
|
+
content: [{
|
|
108
|
+
type: "text",
|
|
109
|
+
text: [
|
|
110
|
+
`Po session: ${view.sessionId} (revision ${view.revision})`,
|
|
111
|
+
`Repository: ${view.repositoryName}`,
|
|
112
|
+
`Profile: ${view.profile ?? "Default"}`,
|
|
113
|
+
`Major mode: ${view.majorMode}`,
|
|
114
|
+
`Domains: ${view.domains.join(", ") || "None"}`,
|
|
115
|
+
`Layers: ${view.layers.join(", ") || "None"}`,
|
|
116
|
+
`Minor modes: ${view.minorModes.join(", ") || "None"}`
|
|
117
|
+
].join("\n")
|
|
118
|
+
}],
|
|
119
|
+
structuredContent: { ...view },
|
|
120
|
+
_meta: { widgetType: "session" }
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/load_context.mcp.ts
|
|
127
|
+
var load_context_mcp_default = defineMcpTool((context) => createLoadContextTool(context));
|
|
128
|
+
//#endregion
|
|
129
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/rename_thread.mcp.ts
|
|
130
|
+
var rename_thread_mcp_default = defineMcpTool((context) => createRenameThreadTool(context));
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/extensions/workspaces/sessions/(backend)/tool/show_session.mcp.ts
|
|
133
|
+
var show_session_mcp_default = defineMcpTool((context) => createShowSessionTool(context));
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region generated/mcp.ts
|
|
136
|
+
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
137
|
+
const via = (identity, value) => value === void 0 ? void 0 : {
|
|
138
|
+
...identity,
|
|
139
|
+
...value
|
|
140
|
+
};
|
|
141
|
+
const withWidget = (key, value) => value === void 0 ? value : {
|
|
142
|
+
...value,
|
|
143
|
+
_meta: {
|
|
144
|
+
...value._meta,
|
|
145
|
+
["po/widget"]: key
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const mcp = defineMcpPlugin({
|
|
149
|
+
name: "@agimon-ai/po-config",
|
|
150
|
+
session: (context) => ({
|
|
151
|
+
get skills() {
|
|
152
|
+
return [at(po_author_config_mcp_default, context)];
|
|
153
|
+
},
|
|
154
|
+
get tools() {
|
|
155
|
+
return [
|
|
156
|
+
withWidget("@agimon-ai/po-config/load_context", via({ name: "load_context" }, at(load_context_mcp_default, context))),
|
|
157
|
+
withWidget("@agimon-ai/po-config/rename_thread", via({ name: "rename_thread" }, at(rename_thread_mcp_default, context))),
|
|
158
|
+
withWidget("@agimon-ai/po-config/show_session", via({ name: "show_session" }, at(show_session_mcp_default, context)))
|
|
159
|
+
];
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
});
|
|
163
|
+
//#endregion
|
|
164
|
+
export { mcp as default, mcp };
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=mcp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.mjs","names":["skillPoAuthorConfig","toolLoadContext","toolRenameThread","toolShowSession"],"sources":["../../src/extensions/workspaces/sessions/(backend)/skill/po-author-config.mcp.ts","../../src/schemas/mcpContextTools.ts","../../src/schemas/mcpSessionView.ts","../../src/services/mcpContextTools/index.ts","../../src/extensions/workspaces/sessions/(backend)/tool/load_context.mcp.ts","../../src/extensions/workspaces/sessions/(backend)/tool/rename_thread.mcp.ts","../../src/extensions/workspaces/sessions/(backend)/tool/show_session.mcp.ts","../../generated/mcp.ts"],"sourcesContent":["import { defineMcpSkill } from '@agimon-ai/po-core/mcpFacet';\nimport { readPackageResource } from '@agimon-ai/po-core/serverFacet';\n\nexport default defineMcpSkill({\n name: 'po-author-config',\n description:\n 'Configure Po runtime settings, source precedence, and typed session configuration. Use for config.yaml, the doom/config Cordis service, immutable context snapshots, or shared selection transition state. Do not use for defining modes.yaml, domains.yaml, or profiles.yaml.',\n read: () => readPackageResource(import.meta.url, 'src/prompts/po-author-config/SKILL.md'),\n});\n","import { Type } from 'typebox';\n\nexport const loadContextParameters = Type.Object({}, { additionalProperties: false });\nexport const renameThreadParameters = Type.Object(\n { title: Type.String({ minLength: 1, maxLength: 256 }) },\n { additionalProperties: false },\n);\n","import { Type } from 'typebox';\n\nexport const sessionViewSchema = Type.Object(\n {\n sessionId: Type.String(),\n revision: Type.Integer({ minimum: 0 }),\n repositoryName: Type.String(),\n profile: Type.Union([Type.String(), Type.Null()]),\n majorMode: Type.String(),\n domains: Type.Array(Type.String()),\n layers: Type.Array(Type.String()),\n minorModes: Type.Array(Type.String()),\n },\n { additionalProperties: false },\n);\n","import type { DoomHeadlessTool } from '@agimon-ai/po-core/headless';\nimport type { DoomMcpPluginContext } from '@agimon-ai/po-core/mcpFacet';\n\nimport { loadContextParameters, renameThreadParameters } from '../../schemas/mcpContextTools';\nimport { sessionViewSchema } from '../../schemas/mcpSessionView';\nimport type { SessionView } from '../../types/sessionView';\n\nexport function createLoadContextTool(context: DoomMcpPluginContext): DoomHeadlessTool<typeof loadContextParameters> {\n return {\n // web-plugin-tool-renderers: ignore load_context (remote MCP only)\n name: 'load_context',\n label: 'Load context',\n description:\n 'Call at the beginning of a session, and after changing profile or modes, to load repository instructions and current session context.',\n parameters: loadContextParameters,\n annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },\n async execute() {\n const snapshot = context.loadContext();\n return { content: [{ type: 'text', text: JSON.stringify(snapshot) }], structuredContent: { ...snapshot } };\n },\n };\n}\n\nexport function createRenameThreadTool(context: DoomMcpPluginContext): DoomHeadlessTool<typeof renameThreadParameters> {\n return {\n // web-plugin-tool-renderers: ignore rename_thread (remote MCP only)\n name: 'rename_thread',\n label: 'Rename thread',\n description: 'Rename the current Po conversation so its purpose is clear in the workspace session list.',\n parameters: renameThreadParameters,\n annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },\n async execute(_toolCallId, { title }) {\n const next = title.trim();\n if (!next) throw new Error('Thread title cannot be empty.');\n if (context.execution.session.setName === undefined) throw new Error('Session rename is unavailable.');\n await context.execution.session.setName(next);\n return { content: [{ type: 'text', text: `Renamed thread to \"${next}\".` }] };\n },\n };\n}\n\nexport function createShowSessionTool(context: DoomMcpPluginContext): DoomHeadlessTool<typeof loadContextParameters> {\n return {\n // web-plugin-tool-renderers: ignore show_session (remote MCP only)\n name: 'show_session',\n label: 'Show session',\n description:\n 'Show or refresh a read-only summary of the current Po session. Does not load repository instructions.',\n parameters: loadContextParameters,\n outputSchema: { ...sessionViewSchema },\n annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },\n _meta: {\n ui: { visibility: ['model', 'app'] },\n 'openai/toolInvocation/invoking': 'Loading session',\n 'openai/toolInvocation/invoked': 'Session ready',\n },\n async execute() {\n const snapshot = context.loadContext();\n const view: SessionView = {\n sessionId: snapshot.session.id,\n revision: snapshot.session.revision,\n repositoryName:\n snapshot.repository.root.replaceAll('\\\\', '/').split('/').filter(Boolean).at(-1) ?? 'Repository',\n profile: snapshot.selection.profile,\n majorMode: snapshot.selection.majorMode,\n domains: [...snapshot.selection.domains],\n layers: [...snapshot.selection.activeLayers],\n minorModes: [...(snapshot.selection.minorModes ?? [])],\n };\n const text = [\n `Po session: ${view.sessionId} (revision ${view.revision})`,\n `Repository: ${view.repositoryName}`,\n `Profile: ${view.profile ?? 'Default'}`,\n `Major mode: ${view.majorMode}`,\n `Domains: ${view.domains.join(', ') || 'None'}`,\n `Layers: ${view.layers.join(', ') || 'None'}`,\n `Minor modes: ${view.minorModes.join(', ') || 'None'}`,\n ].join('\\n');\n return { content: [{ type: 'text', text }], structuredContent: { ...view }, _meta: { widgetType: 'session' } };\n },\n };\n}\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/po-core/mcpFacet';\n\nimport { createLoadContextTool } from '../../../../../services/mcpContextTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => createLoadContextTool(context));\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/po-core/mcpFacet';\n\nimport { createRenameThreadTool } from '../../../../../services/mcpContextTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => createRenameThreadTool(context));\n","import { defineMcpTool, type DoomMcpPluginContext } from '@agimon-ai/po-core/mcpFacet';\n\nimport { createShowSessionTool } from '../../../../../services/mcpContextTools';\n\nexport default defineMcpTool((context: DoomMcpPluginContext) => createShowSessionTool(context));\n","// Generated by @agimon-ai/po-build. Do not edit by hand.\nimport { defineMcpPlugin, type DoomMcpSessionPlugin } from '@agimon-ai/po-core/mcpFacet';\n\nimport skillPoAuthorConfig from '../src/extensions/workspaces/sessions/(backend)/skill/po-author-config.mcp';\nimport toolLoadContext from '../src/extensions/workspaces/sessions/(backend)/tool/load_context.mcp';\nimport toolRenameThread from '../src/extensions/workspaces/sessions/(backend)/tool/rename_thread.mcp';\nimport toolShowSession from '../src/extensions/workspaces/sessions/(backend)/tool/show_session.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 =>\n (value === undefined ? undefined : { ...identity, ...(value as object) }) as T;\n\nconst withWidget = <T>(key: string, value: T): T => value === undefined ? value : ({\n ...value, _meta: { ...(value as { _meta?: object })._meta, [\"po/widget\"]: key },\n});\n\nexport const mcp = defineMcpPlugin({\n name: '@agimon-ai/po-config',\n session: (context) => ({\n get skills(): DoomMcpSessionPlugin['skills'] { return [at(skillPoAuthorConfig, context)]; },\n get tools(): DoomMcpSessionPlugin['tools'] { return [withWidget(\"@agimon-ai/po-config/load_context\", via({ name: 'load_context' }, at(toolLoadContext, context))), withWidget(\"@agimon-ai/po-config/rename_thread\", via({ name: 'rename_thread' }, at(toolRenameThread, context))), withWidget(\"@agimon-ai/po-config/show_session\", via({ name: 'show_session' }, at(toolShowSession, context)))]; },\n }) satisfies DoomMcpSessionPlugin,\n});\n\nexport default mcp;\n"],"mappings":"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"}
|