pi-kot 0.1.19 → 0.1.21
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/README.md +253 -17
- package/package.json +8 -60
- package/bin/pi-kot.mjs +0 -148
- package/dist/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/client/assets/index-B6Hxrz4s.js +0 -448
- package/dist/client/assets/index-B6Hxrz4s.js.map +0 -1
- package/dist/client/assets/index-BPImbgFg.css +0 -1
- package/dist/client/index.html +0 -14
- package/dist/server/ask-user-question/envelope.d.ts +0 -11
- package/dist/server/ask-user-question/envelope.d.ts.map +0 -1
- package/dist/server/ask-user-question/envelope.js +0 -41
- package/dist/server/ask-user-question/envelope.js.map +0 -1
- package/dist/server/ask-user-question/plan-mode-question-tool.d.ts +0 -26
- package/dist/server/ask-user-question/plan-mode-question-tool.d.ts.map +0 -1
- package/dist/server/ask-user-question/plan-mode-question-tool.js +0 -273
- package/dist/server/ask-user-question/plan-mode-question-tool.js.map +0 -1
- package/dist/server/ask-user-question/prompt-strings.d.ts +0 -4
- package/dist/server/ask-user-question/prompt-strings.d.ts.map +0 -1
- package/dist/server/ask-user-question/prompt-strings.js +0 -18
- package/dist/server/ask-user-question/prompt-strings.js.map +0 -1
- package/dist/server/ask-user-question/registry.d.ts +0 -39
- package/dist/server/ask-user-question/registry.d.ts.map +0 -1
- package/dist/server/ask-user-question/registry.js +0 -124
- package/dist/server/ask-user-question/registry.js.map +0 -1
- package/dist/server/ask-user-question/tool.d.ts +0 -4
- package/dist/server/ask-user-question/tool.d.ts.map +0 -1
- package/dist/server/ask-user-question/tool.js +0 -68
- package/dist/server/ask-user-question/tool.js.map +0 -1
- package/dist/server/ask-user-question/types.d.ts +0 -50
- package/dist/server/ask-user-question/types.d.ts.map +0 -1
- package/dist/server/ask-user-question/types.js +0 -7
- package/dist/server/ask-user-question/types.js.map +0 -1
- package/dist/server/ask-user-question/validate.d.ts +0 -3
- package/dist/server/ask-user-question/validate.d.ts.map +0 -1
- package/dist/server/ask-user-question/validate.js +0 -67
- package/dist/server/ask-user-question/validate.js.map +0 -1
- package/dist/server/compaction-continuation.d.ts +0 -113
- package/dist/server/compaction-continuation.d.ts.map +0 -1
- package/dist/server/compaction-continuation.js +0 -65
- package/dist/server/compaction-continuation.js.map +0 -1
- package/dist/server/compaction-history.d.ts +0 -62
- package/dist/server/compaction-history.d.ts.map +0 -1
- package/dist/server/compaction-history.js +0 -180
- package/dist/server/compaction-history.js.map +0 -1
- package/dist/server/config-manager.d.ts +0 -97
- package/dist/server/config-manager.d.ts.map +0 -1
- package/dist/server/config-manager.js +0 -352
- package/dist/server/config-manager.js.map +0 -1
- package/dist/server/config.d.ts +0 -24
- package/dist/server/config.d.ts.map +0 -1
- package/dist/server/config.js +0 -67
- package/dist/server/config.js.map +0 -1
- package/dist/server/extension-manager.d.ts +0 -116
- package/dist/server/extension-manager.d.ts.map +0 -1
- package/dist/server/extension-manager.js +0 -586
- package/dist/server/extension-manager.js.map +0 -1
- package/dist/server/extension-ui-bridge.d.ts +0 -35
- package/dist/server/extension-ui-bridge.d.ts.map +0 -1
- package/dist/server/extension-ui-bridge.js +0 -228
- package/dist/server/extension-ui-bridge.js.map +0 -1
- package/dist/server/extensions-discovery.d.ts +0 -26
- package/dist/server/extensions-discovery.d.ts.map +0 -1
- package/dist/server/extensions-discovery.js +0 -107
- package/dist/server/extensions-discovery.js.map +0 -1
- package/dist/server/file-manager.d.ts +0 -79
- package/dist/server/file-manager.d.ts.map +0 -1
- package/dist/server/file-manager.js +0 -535
- package/dist/server/file-manager.js.map +0 -1
- package/dist/server/file-references.d.ts +0 -5
- package/dist/server/file-references.d.ts.map +0 -1
- package/dist/server/file-references.js +0 -249
- package/dist/server/file-references.js.map +0 -1
- package/dist/server/file-searcher.d.ts +0 -29
- package/dist/server/file-searcher.d.ts.map +0 -1
- package/dist/server/file-searcher.js +0 -318
- package/dist/server/file-searcher.js.map +0 -1
- package/dist/server/git-clone.d.ts +0 -56
- package/dist/server/git-clone.d.ts.map +0 -1
- package/dist/server/git-clone.js +0 -173
- package/dist/server/git-clone.js.map +0 -1
- package/dist/server/git-hunk-stager.d.ts +0 -56
- package/dist/server/git-hunk-stager.d.ts.map +0 -1
- package/dist/server/git-hunk-stager.js +0 -137
- package/dist/server/git-hunk-stager.js.map +0 -1
- package/dist/server/git-runner.d.ts +0 -346
- package/dist/server/git-runner.d.ts.map +0 -1
- package/dist/server/git-runner.js +0 -884
- package/dist/server/git-runner.js.map +0 -1
- package/dist/server/index.d.ts +0 -22
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -262
- package/dist/server/index.js.map +0 -1
- package/dist/server/lifecycle-notifications.d.ts +0 -28
- package/dist/server/lifecycle-notifications.d.ts.map +0 -1
- package/dist/server/lifecycle-notifications.js +0 -38
- package/dist/server/lifecycle-notifications.js.map +0 -1
- package/dist/server/mcp/config.d.ts +0 -23
- package/dist/server/mcp/config.d.ts.map +0 -1
- package/dist/server/mcp/config.js +0 -139
- package/dist/server/mcp/config.js.map +0 -1
- package/dist/server/mcp/manager.d.ts +0 -40
- package/dist/server/mcp/manager.d.ts.map +0 -1
- package/dist/server/mcp/manager.js +0 -435
- package/dist/server/mcp/manager.js.map +0 -1
- package/dist/server/mcp/stdio-trust.d.ts +0 -5
- package/dist/server/mcp/stdio-trust.d.ts.map +0 -1
- package/dist/server/mcp/stdio-trust.js +0 -78
- package/dist/server/mcp/stdio-trust.js.map +0 -1
- package/dist/server/mcp/tool-bridge.d.ts +0 -33
- package/dist/server/mcp/tool-bridge.d.ts.map +0 -1
- package/dist/server/mcp/tool-bridge.js +0 -138
- package/dist/server/mcp/tool-bridge.js.map +0 -1
- package/dist/server/orchestration/config.d.ts +0 -5
- package/dist/server/orchestration/config.d.ts.map +0 -1
- package/dist/server/orchestration/config.js +0 -35
- package/dist/server/orchestration/config.js.map +0 -1
- package/dist/server/orchestration/event-bridge.d.ts +0 -32
- package/dist/server/orchestration/event-bridge.d.ts.map +0 -1
- package/dist/server/orchestration/event-bridge.js +0 -110
- package/dist/server/orchestration/event-bridge.js.map +0 -1
- package/dist/server/orchestration/inbox.d.ts +0 -9
- package/dist/server/orchestration/inbox.d.ts.map +0 -1
- package/dist/server/orchestration/inbox.js +0 -186
- package/dist/server/orchestration/inbox.js.map +0 -1
- package/dist/server/orchestration/init.d.ts +0 -2
- package/dist/server/orchestration/init.d.ts.map +0 -1
- package/dist/server/orchestration/init.js +0 -22
- package/dist/server/orchestration/init.js.map +0 -1
- package/dist/server/orchestration/store.d.ts +0 -33
- package/dist/server/orchestration/store.d.ts.map +0 -1
- package/dist/server/orchestration/store.js +0 -331
- package/dist/server/orchestration/store.js.map +0 -1
- package/dist/server/orchestration/tools.d.ts +0 -15
- package/dist/server/orchestration/tools.d.ts.map +0 -1
- package/dist/server/orchestration/tools.js +0 -621
- package/dist/server/orchestration/tools.js.map +0 -1
- package/dist/server/orchestration/types.d.ts +0 -68
- package/dist/server/orchestration/types.d.ts.map +0 -1
- package/dist/server/orchestration/types.js +0 -43
- package/dist/server/orchestration/types.js.map +0 -1
- package/dist/server/orchestration/worker-lifecycle.d.ts +0 -15
- package/dist/server/orchestration/worker-lifecycle.d.ts.map +0 -1
- package/dist/server/orchestration/worker-lifecycle.js +0 -45
- package/dist/server/orchestration/worker-lifecycle.js.map +0 -1
- package/dist/server/project-manager.d.ts +0 -25
- package/dist/server/project-manager.d.ts.map +0 -1
- package/dist/server/project-manager.js +0 -157
- package/dist/server/project-manager.js.map +0 -1
- package/dist/server/pty-manager.d.ts +0 -54
- package/dist/server/pty-manager.d.ts.map +0 -1
- package/dist/server/pty-manager.js +0 -220
- package/dist/server/pty-manager.js.map +0 -1
- package/dist/server/routes/_schemas.d.ts +0 -16
- package/dist/server/routes/_schemas.d.ts.map +0 -1
- package/dist/server/routes/_schemas.js +0 -12
- package/dist/server/routes/_schemas.js.map +0 -1
- package/dist/server/routes/ask-user-question.d.ts +0 -3
- package/dist/server/routes/ask-user-question.d.ts.map +0 -1
- package/dist/server/routes/ask-user-question.js +0 -105
- package/dist/server/routes/ask-user-question.js.map +0 -1
- package/dist/server/routes/auth.d.ts +0 -8
- package/dist/server/routes/auth.d.ts.map +0 -1
- package/dist/server/routes/auth.js +0 -225
- package/dist/server/routes/auth.js.map +0 -1
- package/dist/server/routes/config.d.ts +0 -3
- package/dist/server/routes/config.d.ts.map +0 -1
- package/dist/server/routes/config.js +0 -568
- package/dist/server/routes/config.js.map +0 -1
- package/dist/server/routes/control.d.ts +0 -3
- package/dist/server/routes/control.d.ts.map +0 -1
- package/dist/server/routes/control.js +0 -365
- package/dist/server/routes/control.js.map +0 -1
- package/dist/server/routes/exec.d.ts +0 -3
- package/dist/server/routes/exec.d.ts.map +0 -1
- package/dist/server/routes/exec.js +0 -426
- package/dist/server/routes/exec.js.map +0 -1
- package/dist/server/routes/extension-commands.d.ts +0 -22
- package/dist/server/routes/extension-commands.d.ts.map +0 -1
- package/dist/server/routes/extension-commands.js +0 -178
- package/dist/server/routes/extension-commands.js.map +0 -1
- package/dist/server/routes/extensions.d.ts +0 -8
- package/dist/server/routes/extensions.d.ts.map +0 -1
- package/dist/server/routes/extensions.js +0 -414
- package/dist/server/routes/extensions.js.map +0 -1
- package/dist/server/routes/files.d.ts +0 -3
- package/dist/server/routes/files.d.ts.map +0 -1
- package/dist/server/routes/files.js +0 -835
- package/dist/server/routes/files.js.map +0 -1
- package/dist/server/routes/git.d.ts +0 -3
- package/dist/server/routes/git.d.ts.map +0 -1
- package/dist/server/routes/git.js +0 -1058
- package/dist/server/routes/git.js.map +0 -1
- package/dist/server/routes/mcp.d.ts +0 -3
- package/dist/server/routes/mcp.d.ts.map +0 -1
- package/dist/server/routes/mcp.js +0 -403
- package/dist/server/routes/mcp.js.map +0 -1
- package/dist/server/routes/orchestration.d.ts +0 -3
- package/dist/server/routes/orchestration.d.ts.map +0 -1
- package/dist/server/routes/orchestration.js +0 -251
- package/dist/server/routes/orchestration.js.map +0 -1
- package/dist/server/routes/projects.d.ts +0 -3
- package/dist/server/routes/projects.d.ts.map +0 -1
- package/dist/server/routes/projects.js +0 -421
- package/dist/server/routes/projects.js.map +0 -1
- package/dist/server/routes/prompt.d.ts +0 -3
- package/dist/server/routes/prompt.d.ts.map +0 -1
- package/dist/server/routes/prompt.js +0 -311
- package/dist/server/routes/prompt.js.map +0 -1
- package/dist/server/routes/session-extensions.d.ts +0 -11
- package/dist/server/routes/session-extensions.d.ts.map +0 -1
- package/dist/server/routes/session-extensions.js +0 -171
- package/dist/server/routes/session-extensions.js.map +0 -1
- package/dist/server/routes/sessions.d.ts +0 -3
- package/dist/server/routes/sessions.d.ts.map +0 -1
- package/dist/server/routes/sessions.js +0 -706
- package/dist/server/routes/sessions.js.map +0 -1
- package/dist/server/routes/skills.d.ts +0 -14
- package/dist/server/routes/skills.d.ts.map +0 -1
- package/dist/server/routes/skills.js +0 -448
- package/dist/server/routes/skills.js.map +0 -1
- package/dist/server/routes/stream.d.ts +0 -3
- package/dist/server/routes/stream.d.ts.map +0 -1
- package/dist/server/routes/stream.js +0 -112
- package/dist/server/routes/stream.js.map +0 -1
- package/dist/server/routes/terminal.d.ts +0 -28
- package/dist/server/routes/terminal.d.ts.map +0 -1
- package/dist/server/routes/terminal.js +0 -211
- package/dist/server/routes/terminal.js.map +0 -1
- package/dist/server/routes/tunnel.d.ts +0 -13
- package/dist/server/routes/tunnel.d.ts.map +0 -1
- package/dist/server/routes/tunnel.js +0 -231
- package/dist/server/routes/tunnel.js.map +0 -1
- package/dist/server/session-registry.d.ts +0 -164
- package/dist/server/session-registry.d.ts.map +0 -1
- package/dist/server/session-registry.js +0 -754
- package/dist/server/session-registry.js.map +0 -1
- package/dist/server/skill-overrides.d.ts +0 -47
- package/dist/server/skill-overrides.d.ts.map +0 -1
- package/dist/server/skill-overrides.js +0 -178
- package/dist/server/skill-overrides.js.map +0 -1
- package/dist/server/sse-bridge.d.ts +0 -31
- package/dist/server/sse-bridge.d.ts.map +0 -1
- package/dist/server/sse-bridge.js +0 -158
- package/dist/server/sse-bridge.js.map +0 -1
- package/dist/server/tool-overrides.d.ts +0 -39
- package/dist/server/tool-overrides.d.ts.map +0 -1
- package/dist/server/tool-overrides.js +0 -121
- package/dist/server/tool-overrides.js.map +0 -1
- package/dist/server/tunnel/executable-search.d.ts +0 -45
- package/dist/server/tunnel/executable-search.d.ts.map +0 -1
- package/dist/server/tunnel/executable-search.js +0 -150
- package/dist/server/tunnel/executable-search.js.map +0 -1
- package/dist/server/tunnel/install-help.d.ts +0 -19
- package/dist/server/tunnel/install-help.d.ts.map +0 -1
- package/dist/server/tunnel/install-help.js +0 -47
- package/dist/server/tunnel/install-help.js.map +0 -1
- package/dist/server/tunnel/providers/ngrok.d.ts +0 -34
- package/dist/server/tunnel/providers/ngrok.d.ts.map +0 -1
- package/dist/server/tunnel/providers/ngrok.js +0 -464
- package/dist/server/tunnel/providers/ngrok.js.map +0 -1
- package/dist/server/tunnel/registry.d.ts +0 -15
- package/dist/server/tunnel/registry.d.ts.map +0 -1
- package/dist/server/tunnel/registry.js +0 -58
- package/dist/server/tunnel/registry.js.map +0 -1
- package/dist/server/tunnel/service.d.ts +0 -15
- package/dist/server/tunnel/service.d.ts.map +0 -1
- package/dist/server/tunnel/service.js +0 -158
- package/dist/server/tunnel/service.js.map +0 -1
- package/dist/server/tunnel/types.d.ts +0 -166
- package/dist/server/tunnel/types.d.ts.map +0 -1
- package/dist/server/tunnel/types.js +0 -217
- package/dist/server/tunnel/types.js.map +0 -1
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { Type } from "typebox";
|
|
2
|
-
export function bridgeMcpTool(opts) {
|
|
3
|
-
const prefixedName = `${opts.serverName}__${opts.toolName}`;
|
|
4
|
-
const description = opts.description.length > 0
|
|
5
|
-
? opts.description
|
|
6
|
-
: `MCP tool '${opts.toolName}' from server '${opts.serverName}'.`;
|
|
7
|
-
return {
|
|
8
|
-
name: prefixedName,
|
|
9
|
-
label: `MCP: ${opts.serverName}/${opts.toolName}`,
|
|
10
|
-
description,
|
|
11
|
-
parameters: Type.Unsafe(opts.inputSchema),
|
|
12
|
-
async execute(_toolCallId, params, signal) {
|
|
13
|
-
const client = opts.getClient();
|
|
14
|
-
if (client === undefined) {
|
|
15
|
-
return {
|
|
16
|
-
content: [{ type: "text", text: `MCP server '${opts.serverName}' is not connected.` }],
|
|
17
|
-
details: undefined,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
const res = await callMcpTool(client, opts.toolName, params, signal);
|
|
22
|
-
return mcpResultToAgentResult(res);
|
|
23
|
-
}
|
|
24
|
-
catch (err) {
|
|
25
|
-
if (!isAbortError(err) &&
|
|
26
|
-
isStaleMcpSessionError(err) &&
|
|
27
|
-
opts.recoverStaleSession !== undefined) {
|
|
28
|
-
const recovered = await opts.recoverStaleSession().catch(() => false);
|
|
29
|
-
const retryClient = opts.getClient();
|
|
30
|
-
if (recovered && retryClient !== undefined) {
|
|
31
|
-
try {
|
|
32
|
-
const retryRes = await callMcpTool(retryClient, opts.toolName, params, signal);
|
|
33
|
-
return mcpResultToAgentResult(retryRes);
|
|
34
|
-
}
|
|
35
|
-
catch (retryErr) {
|
|
36
|
-
return errorResult(`MCP tool '${prefixedName}' threw after reconnect: ${errorMessage(retryErr)}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return errorResult(`MCP tool '${prefixedName}' threw: ${errorMessage(err)}`);
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
async function callMcpTool(client, toolName, params, signal) {
|
|
46
|
-
return await client.callTool({
|
|
47
|
-
name: toolName,
|
|
48
|
-
arguments: params ?? {},
|
|
49
|
-
}, undefined, signal !== undefined ? { signal } : undefined);
|
|
50
|
-
}
|
|
51
|
-
function errorResult(message) {
|
|
52
|
-
return {
|
|
53
|
-
content: [{ type: "text", text: message }],
|
|
54
|
-
details: undefined,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
function errorMessage(err) {
|
|
58
|
-
return err instanceof Error ? err.message : String(err);
|
|
59
|
-
}
|
|
60
|
-
function isAbortError(err) {
|
|
61
|
-
return err instanceof Error && (err.name === "AbortError" || err.message.includes("aborted"));
|
|
62
|
-
}
|
|
63
|
-
function isStaleMcpSessionError(err) {
|
|
64
|
-
const maybe = err;
|
|
65
|
-
const code = maybe.code ?? maybe.error?.code;
|
|
66
|
-
const message = String(maybe.message ?? maybe.error?.message ?? err).toLowerCase();
|
|
67
|
-
const hasStaleMessage = message.includes("session not found") || message.includes("sesstion not found");
|
|
68
|
-
return hasStaleMessage && (code === undefined || code === -32600 || message.includes("-32600"));
|
|
69
|
-
}
|
|
70
|
-
export function mcpResultToAgentResult(res) {
|
|
71
|
-
const r = (res ?? {});
|
|
72
|
-
const isError = r.isError === true;
|
|
73
|
-
const content = [];
|
|
74
|
-
const blocks = Array.isArray(r.content) ? r.content : [];
|
|
75
|
-
for (const block of blocks) {
|
|
76
|
-
if (block.type === "text" && typeof block.text === "string") {
|
|
77
|
-
content.push({ type: "text", text: block.text });
|
|
78
|
-
}
|
|
79
|
-
else if (block.type === "image" &&
|
|
80
|
-
typeof block.data === "string" &&
|
|
81
|
-
typeof block.mimeType === "string") {
|
|
82
|
-
content.push({ type: "image", data: block.data, mimeType: block.mimeType });
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
content.push({
|
|
86
|
-
type: "text",
|
|
87
|
-
text: `[${String(block.type ?? "unknown")}] ${JSON.stringify(block)}`,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
if (content.length === 0) {
|
|
92
|
-
content.push({ type: "text", text: isError ? "[error] (no detail)" : "(empty result)" });
|
|
93
|
-
}
|
|
94
|
-
if (isError && content[0]?.type === "text") {
|
|
95
|
-
content[0] = { type: "text", text: `[error] ${content[0].text}` };
|
|
96
|
-
}
|
|
97
|
-
return { content, details: r.structuredContent ?? null };
|
|
98
|
-
}
|
|
99
|
-
export const MCP_TEXT_CAP_CHARS = 30_000;
|
|
100
|
-
export function capTextContent(blocks) {
|
|
101
|
-
let totalText = 0;
|
|
102
|
-
for (const b of blocks) {
|
|
103
|
-
if (b.type === "text")
|
|
104
|
-
totalText += b.text.length;
|
|
105
|
-
}
|
|
106
|
-
if (totalText <= MCP_TEXT_CAP_CHARS)
|
|
107
|
-
return blocks;
|
|
108
|
-
const flat = blocks
|
|
109
|
-
.filter((b) => b.type === "text")
|
|
110
|
-
.map((b) => b.text)
|
|
111
|
-
.join("\n\n");
|
|
112
|
-
const headLen = Math.floor(MCP_TEXT_CAP_CHARS * 0.6);
|
|
113
|
-
const tailLen = MCP_TEXT_CAP_CHARS - headLen;
|
|
114
|
-
const head = flat.slice(0, headLen);
|
|
115
|
-
const tail = flat.slice(flat.length - tailLen);
|
|
116
|
-
const omitted = flat.length - headLen - tailLen;
|
|
117
|
-
const warning = `MCP_RESULT_TRUNCATED: ${omitted.toLocaleString()} characters ` +
|
|
118
|
-
`(~${Math.round(omitted / 4).toLocaleString()} tokens) were omitted from the middle of this tool result. ` +
|
|
119
|
-
`Do not assume the missing content was irrelevant. Next step: call the MCP tool again with a smaller scope, ` +
|
|
120
|
-
`narrower filter, or pagination to inspect the omitted content.\n\n`;
|
|
121
|
-
const marker = `\n\n[--- MCP_RESULT_TRUNCATED: omitted middle content. Use a smaller scope, narrower filter, ` +
|
|
122
|
-
`or pagination to inspect it. ---]\n\n`;
|
|
123
|
-
const truncatedText = warning + head + marker + tail;
|
|
124
|
-
const out = [];
|
|
125
|
-
let textInjected = false;
|
|
126
|
-
for (const b of blocks) {
|
|
127
|
-
if (b.type === "text") {
|
|
128
|
-
if (!textInjected) {
|
|
129
|
-
out.push({ type: "text", text: truncatedText });
|
|
130
|
-
textInjected = true;
|
|
131
|
-
}
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
out.push(b);
|
|
135
|
-
}
|
|
136
|
-
return out;
|
|
137
|
-
}
|
|
138
|
-
//# sourceMappingURL=tool-bridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../../src/mcp/tool-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function isOrchestrationEnabled(): boolean;
|
|
2
|
-
export declare function maxWorkersPerSupervisor(): number;
|
|
3
|
-
export declare function isOrchestrationAvailable(): boolean;
|
|
4
|
-
export declare function availableReason(): string;
|
|
5
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/orchestration/config.ts"],"names":[],"mappings":"AASA,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAGD,wBAAgB,eAAe,IAAI,MAAM,CAUxC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime config for the orchestration feature.
|
|
3
|
-
*
|
|
4
|
-
* Enabled by default with an instance-level disable switch + tunable
|
|
5
|
-
* limits. MINIMAL_UI is a HARD gate (checked separately in routes +
|
|
6
|
-
* tool registration).
|
|
7
|
-
*/
|
|
8
|
-
import { config } from "../config.js";
|
|
9
|
-
export function isOrchestrationEnabled() {
|
|
10
|
-
if (config.minimalUi)
|
|
11
|
-
return false;
|
|
12
|
-
return config.orchestrationEnabled;
|
|
13
|
-
}
|
|
14
|
-
export function maxWorkersPerSupervisor() {
|
|
15
|
-
return Math.max(1, Math.min(config.orchestrationMaxWorkersPerSupervisor, 100));
|
|
16
|
-
}
|
|
17
|
-
export function isOrchestrationAvailable() {
|
|
18
|
-
return config.orchestrationEnabled && !config.minimalUi;
|
|
19
|
-
}
|
|
20
|
-
let _disabledReason;
|
|
21
|
-
export function availableReason() {
|
|
22
|
-
if (_disabledReason !== undefined)
|
|
23
|
-
return _disabledReason;
|
|
24
|
-
if (config.minimalUi) {
|
|
25
|
-
_disabledReason = "Orchestration is disabled under MINIMAL_UI mode.";
|
|
26
|
-
}
|
|
27
|
-
else if (!config.orchestrationEnabled) {
|
|
28
|
-
_disabledReason = "Orchestration is disabled by operator config.";
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
_disabledReason = "available";
|
|
32
|
-
}
|
|
33
|
-
return _disabledReason;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/orchestration/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,sBAAsB;IACpC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,MAAM,CAAC,oBAAoB,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,MAAM,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,IAAI,eAAmC,CAAC;AACxC,MAAM,UAAU,eAAe;IAC7B,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAC1D,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,eAAe,GAAG,kDAAkD,CAAC;IACvE,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACxC,eAAe,GAAG,+CAA+C,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,WAAW,CAAC;IAChC,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bridges forge-side worker events into supervisor notifications/history.
|
|
3
|
-
*
|
|
4
|
-
* Four event sources feed worker lifecycle updates:
|
|
5
|
-
* AgentSession events (per-session subscribe in session-registry):
|
|
6
|
-
* - `agent_start` → record open turn state only
|
|
7
|
-
* - `agent_end` → `worker.ended` (with final error info)
|
|
8
|
-
* ask-user-question registry:
|
|
9
|
-
* - `ask_user_question` → `worker.ask_user` + awaiting_question state
|
|
10
|
-
* processManager:
|
|
11
|
-
* - `process_alert` → intentionally NOT bridged (too noisy)
|
|
12
|
-
* session-registry lifecycle (sessions DELETE route):
|
|
13
|
-
* - hot delete → `worker.deleted`
|
|
14
|
-
*/
|
|
15
|
-
import type { AgentSession, AgentSessionEvent } from "@earendil-works/pi-coding-agent";
|
|
16
|
-
export declare function bridgeWorkerAgentEvent(meta: {
|
|
17
|
-
sessionId: string;
|
|
18
|
-
session: AgentSession;
|
|
19
|
-
}, event: AgentSessionEvent): Promise<void>;
|
|
20
|
-
export declare function bridgeWorkerAskUserQuestion(sessionId: string, questions: readonly {
|
|
21
|
-
header?: string;
|
|
22
|
-
question?: string;
|
|
23
|
-
}[], requestId: string): Promise<void>;
|
|
24
|
-
export declare function bridgeWorkerExecutionStopped(sessionId: string, meta: {
|
|
25
|
-
wasLive: boolean;
|
|
26
|
-
reason: "deleted" | "killed" | "disposed" | "aborted";
|
|
27
|
-
}): Promise<void>;
|
|
28
|
-
export declare function bridgeWorkerDeleted(sessionId: string, meta: {
|
|
29
|
-
wasLive: boolean;
|
|
30
|
-
reason?: "deleted" | "killed" | "disposed" | "aborted";
|
|
31
|
-
}): Promise<void>;
|
|
32
|
-
//# sourceMappingURL=event-bridge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-bridge.d.ts","sourceRoot":"","sources":["../../src/orchestration/event-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAoCvF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,EAClD,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAC5D,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;CAAE,GAChF,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;CAAE,GACjF,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { bridgeWorkerEvent } from "./inbox.js";
|
|
2
|
-
import { getWorkerRecord, updateWorkerLifecycle } from "./store.js";
|
|
3
|
-
function findLastAssistant(messages) {
|
|
4
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
5
|
-
const m = messages[i];
|
|
6
|
-
if (m?.role !== "assistant")
|
|
7
|
-
continue;
|
|
8
|
-
const a = m;
|
|
9
|
-
const text = extractAssistantText(a.content);
|
|
10
|
-
const out = {};
|
|
11
|
-
if (a.stopReason !== undefined)
|
|
12
|
-
out.stopReason = a.stopReason;
|
|
13
|
-
if (a.errorMessage !== undefined)
|
|
14
|
-
out.errorMessage = a.errorMessage;
|
|
15
|
-
if (text !== undefined)
|
|
16
|
-
out.text = text;
|
|
17
|
-
return out;
|
|
18
|
-
}
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
function extractAssistantText(content) {
|
|
22
|
-
if (!Array.isArray(content))
|
|
23
|
-
return undefined;
|
|
24
|
-
const parts = [];
|
|
25
|
-
for (const c of content) {
|
|
26
|
-
const o = c;
|
|
27
|
-
if (o.type === "text" && typeof o.text === "string")
|
|
28
|
-
parts.push(o.text);
|
|
29
|
-
}
|
|
30
|
-
if (parts.length === 0)
|
|
31
|
-
return undefined;
|
|
32
|
-
return parts.join("\n");
|
|
33
|
-
}
|
|
34
|
-
export async function bridgeWorkerAgentEvent(meta, event) {
|
|
35
|
-
const e = event;
|
|
36
|
-
const now = new Date().toISOString();
|
|
37
|
-
if (e.type === "agent_start") {
|
|
38
|
-
await updateWorkerLifecycle(meta.sessionId, {
|
|
39
|
-
state: "running",
|
|
40
|
-
turnOpen: true,
|
|
41
|
-
lastStateAt: now,
|
|
42
|
-
lastAgentStartAt: now,
|
|
43
|
-
stopReason: null,
|
|
44
|
-
errorMessage: null,
|
|
45
|
-
});
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (e.type !== "agent_end")
|
|
49
|
-
return;
|
|
50
|
-
const messages = meta.session.messages;
|
|
51
|
-
const lastAssistant = findLastAssistant(messages);
|
|
52
|
-
const errorMessage = meta.session.errorMessage ??
|
|
53
|
-
lastAssistant?.errorMessage;
|
|
54
|
-
const hasError = typeof errorMessage === "string" && errorMessage.length > 0;
|
|
55
|
-
await updateWorkerLifecycle(meta.sessionId, {
|
|
56
|
-
state: hasError ? "errored" : "ended",
|
|
57
|
-
turnOpen: false,
|
|
58
|
-
lastStateAt: now,
|
|
59
|
-
lastAgentEndAt: now,
|
|
60
|
-
stopReason: lastAssistant?.stopReason ?? null,
|
|
61
|
-
errorMessage: errorMessage ?? null,
|
|
62
|
-
});
|
|
63
|
-
await bridgeWorkerEvent(meta.sessionId, "worker.ended", {
|
|
64
|
-
stopReason: lastAssistant?.stopReason ?? null,
|
|
65
|
-
errorMessage: errorMessage ?? null,
|
|
66
|
-
assistantText: lastAssistant?.text ?? null,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
export async function bridgeWorkerAskUserQuestion(sessionId, questions, requestId) {
|
|
70
|
-
await updateWorkerLifecycle(sessionId, {
|
|
71
|
-
state: "awaiting_question",
|
|
72
|
-
lastStateAt: new Date().toISOString(),
|
|
73
|
-
});
|
|
74
|
-
await bridgeWorkerEvent(sessionId, "worker.ask_user", {
|
|
75
|
-
requestId,
|
|
76
|
-
questionCount: questions.length,
|
|
77
|
-
firstQuestionHeader: questions[0]?.header ?? null,
|
|
78
|
-
firstQuestionText: questions[0]?.question ?? null,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
export async function bridgeWorkerExecutionStopped(sessionId, meta) {
|
|
82
|
-
const rec = await getWorkerRecord(sessionId);
|
|
83
|
-
if (rec?.turnOpen !== true)
|
|
84
|
-
return;
|
|
85
|
-
await updateWorkerLifecycle(sessionId, {
|
|
86
|
-
state: "stopped",
|
|
87
|
-
turnOpen: false,
|
|
88
|
-
lastStateAt: new Date().toISOString(),
|
|
89
|
-
stopReason: meta.reason,
|
|
90
|
-
});
|
|
91
|
-
await bridgeWorkerEvent(sessionId, "worker.execution_stopped_without_agent_end", {
|
|
92
|
-
reason: meta.reason,
|
|
93
|
-
wasLive: meta.wasLive,
|
|
94
|
-
lastAgentStartAt: rec.lastAgentStartAt ?? null,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
export async function bridgeWorkerDeleted(sessionId, meta) {
|
|
98
|
-
const reason = meta.reason ?? "deleted";
|
|
99
|
-
await bridgeWorkerExecutionStopped(sessionId, { wasLive: meta.wasLive, reason });
|
|
100
|
-
await updateWorkerLifecycle(sessionId, {
|
|
101
|
-
state: "deleted",
|
|
102
|
-
turnOpen: false,
|
|
103
|
-
lastStateAt: new Date().toISOString(),
|
|
104
|
-
stopReason: reason,
|
|
105
|
-
});
|
|
106
|
-
await bridgeWorkerEvent(sessionId, "worker.deleted", {
|
|
107
|
-
wasLive: meta.wasLive,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=event-bridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-bridge.js","sourceRoot":"","sources":["../../src/orchestration/event-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { InboxEventType, InboxItem } from "./types.js";
|
|
2
|
-
export declare const ORCHESTRATION_WAKE_PREFIX = "[orchestration]";
|
|
3
|
-
export declare const ORCHESTRATION_NOTIFY_TYPE = "orchestration-notify";
|
|
4
|
-
export declare function shouldTriggerWorkerTurn(type: InboxEventType): boolean;
|
|
5
|
-
export declare function bridgeWorkerEvent(workerId: string, type: InboxEventType, data: Record<string, unknown>): Promise<InboxItem | undefined>;
|
|
6
|
-
export declare function notifySupervisorIdle(supervisorId: string): Promise<void>;
|
|
7
|
-
export declare function notifySupervisorDisposed(supervisorId: string): void;
|
|
8
|
-
export declare function drainInbox(supervisorId: string): Promise<InboxItem[]>;
|
|
9
|
-
//# sourceMappingURL=inbox.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/orchestration/inbox.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgB5D,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAC3D,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAErE;AAyID,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAmBhC;AAED,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAsB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAE3E"}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worker notification surface — the bridge between worker events and
|
|
3
|
-
* supervisor custom messages. The persisted inbox store remains as UI
|
|
4
|
-
* history/audit data.
|
|
5
|
-
*
|
|
6
|
-
* Delivery policy:
|
|
7
|
-
* - If the supervisor is active, every worker update is delivered as
|
|
8
|
-
* `steer` so it can enter the current run at the next model step.
|
|
9
|
-
* - If the supervisor is idle, every update except delete/unregister
|
|
10
|
-
* starts a new turn; delete/unregister only appends a visible card.
|
|
11
|
-
*/
|
|
12
|
-
import { sendCustomLifecycleMessage } from "../lifecycle-notifications.js";
|
|
13
|
-
import { getSession } from "../session-registry.js";
|
|
14
|
-
import { enqueueInboxItem, getSupervisorIdForWorker, readPendingInbox } from "./store.js";
|
|
15
|
-
const wakeCounters = new Map();
|
|
16
|
-
function nextWakeCounter(supervisorId) {
|
|
17
|
-
const n = (wakeCounters.get(supervisorId) ?? 0) + 1;
|
|
18
|
-
wakeCounters.set(supervisorId, n);
|
|
19
|
-
return n;
|
|
20
|
-
}
|
|
21
|
-
function logInbox(level, payload) {
|
|
22
|
-
process.stderr.write(`${JSON.stringify({ level, time: new Date().toISOString(), ...payload })}\n`);
|
|
23
|
-
}
|
|
24
|
-
export const ORCHESTRATION_WAKE_PREFIX = "[orchestration]";
|
|
25
|
-
export const ORCHESTRATION_NOTIFY_TYPE = "orchestration-notify";
|
|
26
|
-
export function shouldTriggerWorkerTurn(type) {
|
|
27
|
-
return type !== "worker.deleted";
|
|
28
|
-
}
|
|
29
|
-
function workerStateForInboxType(type) {
|
|
30
|
-
if (type === "worker.ended")
|
|
31
|
-
return "ended";
|
|
32
|
-
if (type === "worker.execution_stopped_without_agent_end")
|
|
33
|
-
return "failed";
|
|
34
|
-
if (type === "worker.deleted")
|
|
35
|
-
return "deleted";
|
|
36
|
-
if (type === "worker.ask_user")
|
|
37
|
-
return "awaiting_question";
|
|
38
|
-
if (type === "worker.process_alert")
|
|
39
|
-
return "process_alert";
|
|
40
|
-
return type.replace(/^worker\./, "");
|
|
41
|
-
}
|
|
42
|
-
function buildNotificationText(type, workerId, data) {
|
|
43
|
-
const state = workerStateForInboxType(type);
|
|
44
|
-
const lines = [`Worker ${workerId} reported ${state}.`];
|
|
45
|
-
const detail = summarizeWorkerEventData(type, data);
|
|
46
|
-
if (detail !== "")
|
|
47
|
-
lines.push(detail);
|
|
48
|
-
return lines.join("\n\n");
|
|
49
|
-
}
|
|
50
|
-
function summarizeWorkerEventData(type, data) {
|
|
51
|
-
if (type === "worker.ended") {
|
|
52
|
-
const stop = typeof data.stopReason === "string" ? data.stopReason : "unknown";
|
|
53
|
-
const err = typeof data.errorMessage === "string" && data.errorMessage.length > 0
|
|
54
|
-
? data.errorMessage
|
|
55
|
-
: "";
|
|
56
|
-
const text = typeof data.assistantText === "string" && data.assistantText.length > 0
|
|
57
|
-
? data.assistantText
|
|
58
|
-
: "";
|
|
59
|
-
const parts = [`stopReason: ${stop}`];
|
|
60
|
-
if (err !== "")
|
|
61
|
-
parts.push(`errorMessage:\n${err}`);
|
|
62
|
-
if (text !== "")
|
|
63
|
-
parts.push(`finalMessage:\n${text}`);
|
|
64
|
-
return parts.join("\n\n");
|
|
65
|
-
}
|
|
66
|
-
if (type === "worker.ask_user") {
|
|
67
|
-
const count = typeof data.questionCount === "number" ? data.questionCount : 1;
|
|
68
|
-
const header = typeof data.firstQuestionHeader === "string" ? data.firstQuestionHeader : "";
|
|
69
|
-
const text = typeof data.firstQuestionText === "string" ? data.firstQuestionText : "";
|
|
70
|
-
return [
|
|
71
|
-
`questionCount: ${count}`,
|
|
72
|
-
header !== "" ? `firstQuestionHeader: ${header}` : "",
|
|
73
|
-
text !== "" ? `firstQuestionText:\n${text}` : "",
|
|
74
|
-
]
|
|
75
|
-
.filter((part) => part !== "")
|
|
76
|
-
.join("\n\n");
|
|
77
|
-
}
|
|
78
|
-
if (type === "worker.execution_stopped_without_agent_end") {
|
|
79
|
-
const reason = typeof data.reason === "string" ? data.reason : "stopped";
|
|
80
|
-
const lastStart = typeof data.lastAgentStartAt === "string" ? data.lastAgentStartAt : "";
|
|
81
|
-
return `reason: ${reason}${lastStart !== "" ? `\nlastAgentStartAt: ${lastStart}` : ""}`;
|
|
82
|
-
}
|
|
83
|
-
if (type === "worker.deleted") {
|
|
84
|
-
return `wasLive: ${data.wasLive === true ? "true" : "false"}`;
|
|
85
|
-
}
|
|
86
|
-
try {
|
|
87
|
-
return JSON.stringify(data, null, 2);
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
return "";
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async function tryWakeSupervisor(supervisorId, event) {
|
|
94
|
-
const live = getSession(supervisorId);
|
|
95
|
-
if (live === undefined)
|
|
96
|
-
return false;
|
|
97
|
-
const pendingItems = await readPendingInbox(supervisorId);
|
|
98
|
-
const pending = pendingItems.length;
|
|
99
|
-
const fallbackItem = pendingItems.find((it) => shouldTriggerWorkerTurn(it.type)) ?? pendingItems[0];
|
|
100
|
-
const effectiveEvent = event ??
|
|
101
|
-
(fallbackItem === undefined
|
|
102
|
-
? undefined
|
|
103
|
-
: {
|
|
104
|
-
type: fallbackItem.type,
|
|
105
|
-
workerId: fallbackItem.workerId,
|
|
106
|
-
itemId: fallbackItem.id,
|
|
107
|
-
data: fallbackItem.data,
|
|
108
|
-
});
|
|
109
|
-
if (effectiveEvent === undefined)
|
|
110
|
-
return false;
|
|
111
|
-
const triggerTurn = shouldTriggerWorkerTurn(effectiveEvent.type);
|
|
112
|
-
const seq = nextWakeCounter(supervisorId);
|
|
113
|
-
const type = effectiveEvent.type;
|
|
114
|
-
const workerId = effectiveEvent.workerId;
|
|
115
|
-
const text = buildNotificationText(type, workerId, effectiveEvent.data);
|
|
116
|
-
sendCustomLifecycleMessage(live.session, {
|
|
117
|
-
customType: ORCHESTRATION_NOTIFY_TYPE,
|
|
118
|
-
content: text,
|
|
119
|
-
display: true,
|
|
120
|
-
details: {
|
|
121
|
-
source: "orchestration",
|
|
122
|
-
state: workerStateForInboxType(type),
|
|
123
|
-
eventType: type,
|
|
124
|
-
workerId,
|
|
125
|
-
inboxItemId: effectiveEvent.itemId,
|
|
126
|
-
pendingCount: pending,
|
|
127
|
-
data: effectiveEvent.data,
|
|
128
|
-
},
|
|
129
|
-
}, {
|
|
130
|
-
triggerTurn,
|
|
131
|
-
dedupe: { detailKey: "inboxItemId", detailValue: effectiveEvent.itemId },
|
|
132
|
-
onError: (err) => {
|
|
133
|
-
logInbox("warn", {
|
|
134
|
-
msg: "orchestration-wake-failed",
|
|
135
|
-
supervisorId,
|
|
136
|
-
workerId,
|
|
137
|
-
type,
|
|
138
|
-
pending,
|
|
139
|
-
seq,
|
|
140
|
-
triggerTurn,
|
|
141
|
-
err: err instanceof Error ? err.message : String(err),
|
|
142
|
-
});
|
|
143
|
-
},
|
|
144
|
-
});
|
|
145
|
-
logInbox("info", {
|
|
146
|
-
msg: "orchestration-wake-delivered",
|
|
147
|
-
supervisorId,
|
|
148
|
-
workerId,
|
|
149
|
-
type,
|
|
150
|
-
pending,
|
|
151
|
-
seq,
|
|
152
|
-
triggerTurn,
|
|
153
|
-
});
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
export async function bridgeWorkerEvent(workerId, type, data) {
|
|
157
|
-
const supervisorId = await getSupervisorIdForWorker(workerId);
|
|
158
|
-
if (supervisorId === undefined)
|
|
159
|
-
return undefined;
|
|
160
|
-
const item = await enqueueInboxItem(supervisorId, {
|
|
161
|
-
type,
|
|
162
|
-
workerId,
|
|
163
|
-
occurredAt: new Date().toISOString(),
|
|
164
|
-
data,
|
|
165
|
-
delivered: true,
|
|
166
|
-
});
|
|
167
|
-
logInbox("info", {
|
|
168
|
-
msg: "orchestration-inbox-enqueued",
|
|
169
|
-
supervisorId,
|
|
170
|
-
workerId,
|
|
171
|
-
type,
|
|
172
|
-
itemId: item.id,
|
|
173
|
-
});
|
|
174
|
-
void tryWakeSupervisor(supervisorId, { type, workerId, itemId: item.id, data });
|
|
175
|
-
return item;
|
|
176
|
-
}
|
|
177
|
-
export async function notifySupervisorIdle(supervisorId) {
|
|
178
|
-
void tryWakeSupervisor(supervisorId);
|
|
179
|
-
}
|
|
180
|
-
export function notifySupervisorDisposed(supervisorId) {
|
|
181
|
-
wakeCounters.delete(supervisorId);
|
|
182
|
-
}
|
|
183
|
-
export async function drainInbox(supervisorId) {
|
|
184
|
-
return readPendingInbox(supervisorId, { markDelivered: true });
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=inbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/orchestration/inbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/orchestration/init.ts"],"names":[],"mappings":"AAeA,wBAAgB,sCAAsC,IAAI,MAAM,IAAI,CAKnE"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Boot-time wiring of the orchestration event bridge to the
|
|
3
|
-
* forge-native singleton event channels (ask-user-question).
|
|
4
|
-
*
|
|
5
|
-
* Per-AgentSession events (agent_start, agent_end) are dispatched
|
|
6
|
-
* from inside session-registry — those need the LiveSession context
|
|
7
|
-
* at construction time. session-registry also calls
|
|
8
|
-
* `notifySupervisorIdle` on supervisor agent_end.
|
|
9
|
-
*
|
|
10
|
-
* The DELETE-side `worker.deleted` event is fired from the sessions
|
|
11
|
-
* DELETE route.
|
|
12
|
-
*/
|
|
13
|
-
import { subscribe as subscribeAskQuestions } from "../ask-user-question/registry.js";
|
|
14
|
-
import { bridgeWorkerAskUserQuestion } from "./event-bridge.js";
|
|
15
|
-
export function initOrchestrationAskUserQuestionBridge() {
|
|
16
|
-
return subscribeAskQuestions((event) => {
|
|
17
|
-
if (event.type !== "ask_user_question")
|
|
18
|
-
return;
|
|
19
|
-
void bridgeWorkerAskUserQuestion(event.sessionId, event.questions, event.requestId);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/orchestration/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,UAAU,sCAAsC;IACpD,OAAO,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAAE,OAAO;QAC/C,KAAK,2BAA2B,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { type InboxItem, type OrchestrationStore, type SupervisorRecord, type WorkerRecord } from "./types.js";
|
|
2
|
-
export declare function readStore(): Promise<OrchestrationStore>;
|
|
3
|
-
export declare class OrchestrationError extends Error {
|
|
4
|
-
readonly code: string;
|
|
5
|
-
constructor(code: string, message: string);
|
|
6
|
-
}
|
|
7
|
-
export declare function enableSupervisor(sessionId: string): Promise<SupervisorRecord>;
|
|
8
|
-
export declare function disableSupervisor(sessionId: string): Promise<void>;
|
|
9
|
-
export declare function registerWorker(opts: {
|
|
10
|
-
supervisorId: string;
|
|
11
|
-
workerId: string;
|
|
12
|
-
spawnedFrom?: {
|
|
13
|
-
sessionId: string;
|
|
14
|
-
mode: "fresh" | "summary";
|
|
15
|
-
};
|
|
16
|
-
}): Promise<void>;
|
|
17
|
-
export declare function unregisterWorker(workerId: string): Promise<void>;
|
|
18
|
-
export declare function getSupervisorIdForWorker(workerId: string): Promise<string | undefined>;
|
|
19
|
-
export declare function isSupervisor(sessionId: string): Promise<boolean>;
|
|
20
|
-
export declare function isWorker(sessionId: string): Promise<boolean>;
|
|
21
|
-
export declare function getWorkerIds(supervisorId: string): Promise<string[]>;
|
|
22
|
-
export declare function getWorkerRecord(workerId: string): Promise<WorkerRecord | undefined>;
|
|
23
|
-
export declare function updateWorkerLifecycle(workerId: string, patch: Partial<Pick<WorkerRecord, "state" | "turnOpen" | "lastStateAt" | "lastAgentStartAt" | "lastAgentEndAt" | "stopReason" | "errorMessage">>): Promise<WorkerRecord | undefined>;
|
|
24
|
-
export declare function enqueueInboxItem(supervisorId: string, item: Omit<InboxItem, "id" | "delivered"> & {
|
|
25
|
-
delivered?: boolean;
|
|
26
|
-
}): Promise<InboxItem>;
|
|
27
|
-
export declare function readPendingInbox(supervisorId: string, opts?: {
|
|
28
|
-
markDelivered?: boolean;
|
|
29
|
-
}): Promise<InboxItem[]>;
|
|
30
|
-
export declare function readAllInbox(supervisorId: string): Promise<InboxItem[]>;
|
|
31
|
-
export declare function pendingInboxCount(supervisorId: string): Promise<number>;
|
|
32
|
-
export declare function clearInbox(supervisorId: string): Promise<void>;
|
|
33
|
-
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/orchestration/store.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,SAAS,EAKd,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAyGpB,wBAAsB,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAE7D;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,YAAY,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAIxC;CACF;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmBnF;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC;CAChE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChB;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtE;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG5F;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAED,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlE;AAED,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG1E;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAGzF;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,CACZ,IAAI,CACF,YAAY,EACV,OAAO,GACP,UAAU,GACV,aAAa,GACb,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,cAAc,CACjB,CACF,GACA,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CASnC;AAmDD,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAClE,OAAO,CAAC,SAAS,CAAC,CAepB;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,OAAO,CAAC,SAAS,EAAE,CAAC,CAYtB;AAED,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAI7E;AAED,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7E;AAED,wBAAsB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE"}
|