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,352 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Config Manager — wraps SDK config files (auth.json, settings.json, models.json).
|
|
3
|
-
*
|
|
4
|
-
* Ported from a reference config-manager
|
|
5
|
-
* Simplified for pi-kot: no prompt/skill/tool overrides, no export/import.
|
|
6
|
-
*/
|
|
7
|
-
import { readFile, writeFile, rename, unlink, mkdir } from "node:fs/promises";
|
|
8
|
-
import { join, dirname } from "node:path";
|
|
9
|
-
import { randomUUID } from "node:crypto";
|
|
10
|
-
import { getSupportedThinkingLevels } from "@earendil-works/pi-ai";
|
|
11
|
-
import { AuthStorage, SettingsManager, ModelRegistry, } from "@earendil-works/pi-coding-agent";
|
|
12
|
-
import { config } from "./config.js";
|
|
13
|
-
/**
|
|
14
|
-
* Probe a provider endpoint to test connectivity, detect API type,
|
|
15
|
-
* and fetch available models.
|
|
16
|
-
*/
|
|
17
|
-
export async function probeProvider(req) {
|
|
18
|
-
const baseUrl = req.baseUrl.replace(/\/+$/, "");
|
|
19
|
-
// Build headers
|
|
20
|
-
const headers = {
|
|
21
|
-
...(req.headers ?? {}),
|
|
22
|
-
};
|
|
23
|
-
if (req.apiKey) {
|
|
24
|
-
headers["Authorization"] = `Bearer ${req.apiKey}`;
|
|
25
|
-
}
|
|
26
|
-
// Detect API type if not provided
|
|
27
|
-
const urlLower = baseUrl.toLowerCase();
|
|
28
|
-
const apiType = req.apiType ??
|
|
29
|
-
(urlLower.includes("anthropic")
|
|
30
|
-
? "anthropic-messages"
|
|
31
|
-
: urlLower.includes("google")
|
|
32
|
-
? "google-generative-ai"
|
|
33
|
-
: "openai-completions");
|
|
34
|
-
// Try to fetch models — different endpoints per API type
|
|
35
|
-
let modelsEndpoint;
|
|
36
|
-
if (apiType === "google-generative-ai") {
|
|
37
|
-
// Google uses /v1beta/models or /v1/models
|
|
38
|
-
modelsEndpoint = baseUrl.endsWith("/v1beta") || baseUrl.endsWith("/v1")
|
|
39
|
-
? `${baseUrl}/models`
|
|
40
|
-
: `${baseUrl}/v1beta/models`;
|
|
41
|
-
}
|
|
42
|
-
else if (apiType === "anthropic-messages") {
|
|
43
|
-
// Anthropic doesn't have a public models endpoint — try common patterns
|
|
44
|
-
modelsEndpoint = `${baseUrl}/models`;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
// OpenAI-compatible: /v1/models or /models
|
|
48
|
-
modelsEndpoint = baseUrl.endsWith("/v1")
|
|
49
|
-
? `${baseUrl}/models`
|
|
50
|
-
: `${baseUrl}/v1/models`;
|
|
51
|
-
}
|
|
52
|
-
// First test basic connectivity
|
|
53
|
-
try {
|
|
54
|
-
const controller = new AbortController();
|
|
55
|
-
const timeout = setTimeout(() => controller.abort(), 10000);
|
|
56
|
-
const res = await fetch(modelsEndpoint, {
|
|
57
|
-
method: "GET",
|
|
58
|
-
headers,
|
|
59
|
-
signal: controller.signal,
|
|
60
|
-
});
|
|
61
|
-
clearTimeout(timeout);
|
|
62
|
-
if (!res.ok) {
|
|
63
|
-
return {
|
|
64
|
-
reachable: false,
|
|
65
|
-
error: `HTTP ${res.status}: ${res.statusText}. Tried ${modelsEndpoint}`,
|
|
66
|
-
detectedApiType: apiType,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
const body = (await res.json());
|
|
70
|
-
// Parse models from response
|
|
71
|
-
let models = [];
|
|
72
|
-
if (Array.isArray(body.data)) {
|
|
73
|
-
// OpenAI-compatible { data: [{ id, ... }] }
|
|
74
|
-
models = body.data.map((m) => ({
|
|
75
|
-
id: String(m.id ?? ""),
|
|
76
|
-
name: String(m.name ?? m.id ?? ""),
|
|
77
|
-
}));
|
|
78
|
-
}
|
|
79
|
-
else if (Array.isArray(body.models)) {
|
|
80
|
-
// Google-style { models: [{ name, ... }] }
|
|
81
|
-
models = body.models.map((m) => {
|
|
82
|
-
const name = String(m.name ?? "");
|
|
83
|
-
const shortId = name.includes("/") ? name.split("/").pop() ?? name : name;
|
|
84
|
-
return { id: shortId, name };
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
// Filter out empty ids
|
|
88
|
-
models = models.filter((m) => m.id.length > 0);
|
|
89
|
-
// Derive a suggested provider name from the hostname
|
|
90
|
-
let suggestedName;
|
|
91
|
-
try {
|
|
92
|
-
const hostname = new URL(baseUrl).hostname;
|
|
93
|
-
suggestedName = hostname
|
|
94
|
-
.replace(/^api[.-]/, "")
|
|
95
|
-
.replace(/[.-]api$/, "")
|
|
96
|
-
.replace(/\./g, "-")
|
|
97
|
-
.replace(/[^a-zA-Z0-9_-]/g, "")
|
|
98
|
-
.toLowerCase()
|
|
99
|
-
.slice(0, 24) || "custom";
|
|
100
|
-
}
|
|
101
|
-
catch {
|
|
102
|
-
suggestedName = "custom";
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
reachable: true,
|
|
106
|
-
detectedApiType: apiType,
|
|
107
|
-
models,
|
|
108
|
-
suggestedName,
|
|
109
|
-
rawResponse: models.length > 0 ? undefined : body,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
114
|
-
return {
|
|
115
|
-
reachable: false,
|
|
116
|
-
error: `Connection failed: ${message}`,
|
|
117
|
-
detectedApiType: apiType,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Add or update a custom provider in models.json.
|
|
123
|
-
*/
|
|
124
|
-
export async function addCustomProvider(providerName, config) {
|
|
125
|
-
const current = await readModelsJsonRaw();
|
|
126
|
-
current.providers[providerName] = config;
|
|
127
|
-
await writeModelsJson(current);
|
|
128
|
-
return { providers: current.providers };
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Remove a custom provider from models.json.
|
|
132
|
-
*/
|
|
133
|
-
export async function removeCustomProvider(providerName) {
|
|
134
|
-
const current = await readModelsJsonRaw();
|
|
135
|
-
delete current.providers[providerName];
|
|
136
|
-
await writeModelsJson(current);
|
|
137
|
-
return { providers: current.providers };
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Read models.json raw (without redaction).
|
|
141
|
-
*/
|
|
142
|
-
async function readModelsJsonRaw() {
|
|
143
|
-
try {
|
|
144
|
-
const raw = await readFile(MODELS_PATH, "utf-8");
|
|
145
|
-
return JSON.parse(raw);
|
|
146
|
-
}
|
|
147
|
-
catch (err) {
|
|
148
|
-
if (err.code === "ENOENT") {
|
|
149
|
-
return { providers: {} };
|
|
150
|
-
}
|
|
151
|
-
throw err;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// ── Paths ─────────────────────────────────────────────────────────────────
|
|
155
|
-
const PI_CONFIG_DIR = config.piConfigDir;
|
|
156
|
-
const AUTH_PATH = join(PI_CONFIG_DIR, "auth.json");
|
|
157
|
-
const MODELS_PATH = join(PI_CONFIG_DIR, "models.json");
|
|
158
|
-
// ── Errors ─────────────────────────────────────────────────────────────────
|
|
159
|
-
export class AuthProviderNotFoundError extends Error {
|
|
160
|
-
constructor(provider) {
|
|
161
|
-
super(`Auth provider "${provider}" not found`);
|
|
162
|
-
this.name = "AuthProviderNotFoundError";
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
export function readAuthSummary() {
|
|
166
|
-
const store = AuthStorage.create(AUTH_PATH);
|
|
167
|
-
const providers = {};
|
|
168
|
-
for (const name of store.list()) {
|
|
169
|
-
providers[name] = {
|
|
170
|
-
configured: store.has(name),
|
|
171
|
-
source: "stored",
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
return { providers };
|
|
175
|
-
}
|
|
176
|
-
export function writeApiKey(provider, apiKey) {
|
|
177
|
-
const store = AuthStorage.create(AUTH_PATH);
|
|
178
|
-
store.set(provider, { type: "api_key", key: apiKey });
|
|
179
|
-
}
|
|
180
|
-
export function removeApiKey(provider) {
|
|
181
|
-
const store = AuthStorage.create(AUTH_PATH);
|
|
182
|
-
if (!store.has(provider)) {
|
|
183
|
-
throw new AuthProviderNotFoundError(provider);
|
|
184
|
-
}
|
|
185
|
-
store.remove(provider);
|
|
186
|
-
}
|
|
187
|
-
// ── Settings (settings.json) ──────────────────────────────────────────────
|
|
188
|
-
export function readSettings() {
|
|
189
|
-
const mgr = SettingsManager.create(PI_CONFIG_DIR);
|
|
190
|
-
return mgr.getGlobalSettings();
|
|
191
|
-
}
|
|
192
|
-
export function updateSettings(patch) {
|
|
193
|
-
const mgr = SettingsManager.create(PI_CONFIG_DIR);
|
|
194
|
-
// Apply overrides for the fields that have individual setters
|
|
195
|
-
if (patch.defaultProvider !== undefined && patch.defaultProvider !== null) {
|
|
196
|
-
mgr.setDefaultProvider(String(patch.defaultProvider));
|
|
197
|
-
}
|
|
198
|
-
if (patch.defaultModel !== undefined && patch.defaultModel !== null) {
|
|
199
|
-
mgr.setDefaultModel(String(patch.defaultModel));
|
|
200
|
-
}
|
|
201
|
-
if (patch.defaultThinkingLevel !== undefined && patch.defaultThinkingLevel !== null) {
|
|
202
|
-
mgr.setDefaultThinkingLevel(patch.defaultThinkingLevel);
|
|
203
|
-
}
|
|
204
|
-
if (patch.skills !== undefined) {
|
|
205
|
-
mgr.setSkillPaths(patch.skills === null ? [] : patch.skills);
|
|
206
|
-
}
|
|
207
|
-
if (patch.enableSkillCommands !== undefined) {
|
|
208
|
-
mgr.setEnableSkillCommands(patch.enableSkillCommands === null ? false : Boolean(patch.enableSkillCommands));
|
|
209
|
-
}
|
|
210
|
-
mgr.flush();
|
|
211
|
-
// Handle orchestrator model fields (not managed by SDK SettingsManager)
|
|
212
|
-
const raw = mgr.getGlobalSettings();
|
|
213
|
-
if (patch.orchProvider !== undefined) {
|
|
214
|
-
raw.orchProvider = patch.orchProvider === null ? undefined : String(patch.orchProvider);
|
|
215
|
-
}
|
|
216
|
-
if (patch.orchModel !== undefined) {
|
|
217
|
-
raw.orchModel = patch.orchModel === null ? undefined : String(patch.orchModel);
|
|
218
|
-
}
|
|
219
|
-
// Write back to persist the extra fields
|
|
220
|
-
writeSettings(raw).catch(() => undefined);
|
|
221
|
-
return raw;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Read models.json, redacting secret fields (apiKey, apiKeyCommand).
|
|
225
|
-
*/
|
|
226
|
-
export async function readModelsJsonRedacted() {
|
|
227
|
-
try {
|
|
228
|
-
const raw = await readFile(MODELS_PATH, "utf-8");
|
|
229
|
-
const parsed = JSON.parse(raw);
|
|
230
|
-
// Redact secrets in every provider config
|
|
231
|
-
const redacted = { providers: {} };
|
|
232
|
-
for (const [key, val] of Object.entries(parsed.providers ?? {})) {
|
|
233
|
-
if (typeof val === "object" && val !== null) {
|
|
234
|
-
const v = val;
|
|
235
|
-
const redactedVal = {};
|
|
236
|
-
for (const [k, vv] of Object.entries(v)) {
|
|
237
|
-
if ((k === "apiKey" || k === "apiKeyCommand") && vv !== undefined) {
|
|
238
|
-
redactedVal[k] = "***REDACTED***";
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
redactedVal[k] = vv;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
redacted.providers[key] = redactedVal;
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
redacted.providers[key] = val;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
return redacted;
|
|
251
|
-
}
|
|
252
|
-
catch (err) {
|
|
253
|
-
if (err.code === "ENOENT") {
|
|
254
|
-
return { providers: {} };
|
|
255
|
-
}
|
|
256
|
-
throw err;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
export async function writeModelsJson(data) {
|
|
260
|
-
await mkdir(dirname(MODELS_PATH), { recursive: true });
|
|
261
|
-
await writeFile(MODELS_PATH, JSON.stringify(data, null, 2), "utf-8");
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Atomic JSON write (tmp + rename) for config files.
|
|
265
|
-
* Pattern: crash-safe writes, no partial writes.
|
|
266
|
-
*/
|
|
267
|
-
async function atomicWriteJson(path, data) {
|
|
268
|
-
await mkdir(dirname(path), { recursive: true });
|
|
269
|
-
const tmp = `${path}.${randomUUID()}.tmp`;
|
|
270
|
-
await writeFile(tmp, JSON.stringify(data, null, 2), "utf8");
|
|
271
|
-
try {
|
|
272
|
-
await rename(tmp, path);
|
|
273
|
-
}
|
|
274
|
-
catch (err) {
|
|
275
|
-
await unlink(tmp).catch(() => undefined);
|
|
276
|
-
throw err;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Write settings.json atomically. Used by the per-session setModel route
|
|
281
|
-
* to restore the global default after the SDK mutates it as a side effect
|
|
282
|
-
* of session.setModel().
|
|
283
|
-
* Pattern from reference writeSettings().
|
|
284
|
-
*/
|
|
285
|
-
export async function writeSettings(settings) {
|
|
286
|
-
const SETTINGS_FILE = join(PI_CONFIG_DIR, "settings.json");
|
|
287
|
-
await atomicWriteJson(SETTINGS_FILE, settings);
|
|
288
|
-
}
|
|
289
|
-
// ── Enabled Models (settings.json → enabledModels) ─────────────────────────
|
|
290
|
-
/**
|
|
291
|
-
* Read the enabledModels array from settings via the SDK SettingsManager.
|
|
292
|
-
* Returns undefined when no scoping is active (all models visible).
|
|
293
|
-
*/
|
|
294
|
-
export function readEnabledModels() {
|
|
295
|
-
const mgr = SettingsManager.create(PI_CONFIG_DIR);
|
|
296
|
-
return mgr.getEnabledModels();
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Persist the enabledModels array to settings. Pass undefined or null
|
|
300
|
-
* to disable scoping (all models visible).
|
|
301
|
-
*/
|
|
302
|
-
export function writeEnabledModels(patterns) {
|
|
303
|
-
const mgr = SettingsManager.create(PI_CONFIG_DIR);
|
|
304
|
-
mgr.setEnabledModels(patterns === null || patterns === undefined ? undefined : patterns);
|
|
305
|
-
}
|
|
306
|
-
// ── Live providers listing (from SDK ModelRegistry) ──────────────────────
|
|
307
|
-
function buildModelDetail(m, registry) {
|
|
308
|
-
const supportedThinkingLevels = (() => {
|
|
309
|
-
try {
|
|
310
|
-
return getSupportedThinkingLevels(m);
|
|
311
|
-
}
|
|
312
|
-
catch {
|
|
313
|
-
return [];
|
|
314
|
-
}
|
|
315
|
-
})();
|
|
316
|
-
return {
|
|
317
|
-
id: m.id,
|
|
318
|
-
name: m.name,
|
|
319
|
-
contextWindow: m.contextWindow,
|
|
320
|
-
maxTokens: m.maxTokens,
|
|
321
|
-
reasoning: m.reasoning,
|
|
322
|
-
input: m.input,
|
|
323
|
-
hasAuth: registry.hasConfiguredAuth(m),
|
|
324
|
-
supportedThinkingLevels,
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
export function liveProvidersListing(opts) {
|
|
328
|
-
const store = AuthStorage.create(AUTH_PATH);
|
|
329
|
-
const registry = ModelRegistry.create(store, MODELS_PATH);
|
|
330
|
-
let all = registry.getAll();
|
|
331
|
-
console.log("[config] total models:", all.length);
|
|
332
|
-
// Filter to enabled models when scoped mode is on
|
|
333
|
-
if (opts?.scoped === true) {
|
|
334
|
-
const enabled = readEnabledModels();
|
|
335
|
-
if (enabled !== undefined && enabled.length > 0) {
|
|
336
|
-
// enabledModels are stored as "provider/modelId" patterns
|
|
337
|
-
all = all.filter((m) => enabled.includes(`${m.provider}/${m.id}`));
|
|
338
|
-
console.log("[config] scoped models:", all.length);
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
const grouped = new Map();
|
|
342
|
-
for (const m of all) {
|
|
343
|
-
let entry = grouped.get(m.provider);
|
|
344
|
-
if (entry === undefined) {
|
|
345
|
-
entry = { provider: m.provider, models: [] };
|
|
346
|
-
grouped.set(m.provider, entry);
|
|
347
|
-
}
|
|
348
|
-
entry.models.push(buildModelDetail(m, registry));
|
|
349
|
-
}
|
|
350
|
-
return { providers: Array.from(grouped.values()) };
|
|
351
|
-
}
|
|
352
|
-
//# sourceMappingURL=config-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/server/config.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export declare const config: Readonly<{
|
|
2
|
-
readonly port: number;
|
|
3
|
-
readonly host: string;
|
|
4
|
-
readonly logLevel: string;
|
|
5
|
-
readonly isTest: boolean;
|
|
6
|
-
readonly trustProxy: boolean;
|
|
7
|
-
readonly workspacePath: string;
|
|
8
|
-
readonly piConfigDir: string;
|
|
9
|
-
readonly forgeDataDir: string;
|
|
10
|
-
readonly sessionDir: string;
|
|
11
|
-
readonly mcpConfigFile: string;
|
|
12
|
-
readonly mcpStdioTrustFile: string;
|
|
13
|
-
readonly toolOverridesFile: string;
|
|
14
|
-
readonly skillOverridesFile: string;
|
|
15
|
-
readonly uiPassword: string | undefined;
|
|
16
|
-
readonly apiKey: string | undefined;
|
|
17
|
-
readonly clientDistPath: string;
|
|
18
|
-
readonly serveClient: boolean;
|
|
19
|
-
readonly corsOrigin: string | true;
|
|
20
|
-
readonly orchestrationEnabled: boolean;
|
|
21
|
-
readonly orchestrationMaxWorkersPerSupervisor: number;
|
|
22
|
-
readonly minimalUi: boolean;
|
|
23
|
-
}>;
|
|
24
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAsDA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;EA8BR,CAAC"}
|
package/dist/server/config.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { homedir } from "node:os";
|
|
2
|
-
import { dirname, join, resolve } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
function readEnv(key) {
|
|
5
|
-
const v = process.env[key];
|
|
6
|
-
return v === undefined || v === "" ? undefined : v;
|
|
7
|
-
}
|
|
8
|
-
function readInt(key, fallback) {
|
|
9
|
-
const v = readEnv(key);
|
|
10
|
-
if (v === undefined)
|
|
11
|
-
return fallback;
|
|
12
|
-
const n = Number.parseInt(v, 10);
|
|
13
|
-
if (!Number.isFinite(n) || n < 0 || String(n) !== v.trim()) {
|
|
14
|
-
throw new Error(`config: ${key} must be a non-negative integer (got ${v})`);
|
|
15
|
-
}
|
|
16
|
-
return n;
|
|
17
|
-
}
|
|
18
|
-
function readBool(key, fallback) {
|
|
19
|
-
const v = readEnv(key)?.toLowerCase();
|
|
20
|
-
if (v === undefined)
|
|
21
|
-
return fallback;
|
|
22
|
-
return ["1", "true", "yes", "on"].includes(v);
|
|
23
|
-
}
|
|
24
|
-
function modeSuffix() {
|
|
25
|
-
const mode = readEnv("PIKOT_MODE") ?? "";
|
|
26
|
-
return mode === "dev" ? "-dev" : "";
|
|
27
|
-
}
|
|
28
|
-
const HOME = homedir();
|
|
29
|
-
if (HOME === "/" || HOME === "") {
|
|
30
|
-
throw new Error("config: os.homedir() returned empty path. " +
|
|
31
|
-
"Set HOME / USERPROFILE to a real user account.");
|
|
32
|
-
}
|
|
33
|
-
const SUFFIX = modeSuffix();
|
|
34
|
-
const WORKSPACE_PATH = resolve(readEnv("WORKSPACE_PATH") ?? resolve(HOME, `.pi-kot${SUFFIX}`, "workspace", "default"));
|
|
35
|
-
const SESSION_DIR = resolve(readEnv("SESSION_DIR") ?? resolve(HOME, `.pi-kot${SUFFIX}`, "sessions"));
|
|
36
|
-
const FORGE_DATA_DIR = resolve(readEnv("FORGE_DATA_DIR") ?? resolve(HOME, `.pi-kot${SUFFIX}`));
|
|
37
|
-
/** Path to built client dist (Vite output). Resolved relative to server dist/ */
|
|
38
|
-
const CLIENT_DIST_PATH = resolve(readEnv("CLIENT_DIST_PATH") ??
|
|
39
|
-
join(dirname(fileURLToPath(import.meta.url)), "..", "..", "client", "dist"));
|
|
40
|
-
export const config = Object.freeze({
|
|
41
|
-
port: readInt("PORT", 3333),
|
|
42
|
-
host: readEnv("HOST") ?? "0.0.0.0",
|
|
43
|
-
logLevel: readEnv("LOG_LEVEL") ?? "info",
|
|
44
|
-
isTest: (readEnv("NODE_ENV") ?? "") === "test",
|
|
45
|
-
trustProxy: readBool("TRUST_PROXY", false),
|
|
46
|
-
workspacePath: WORKSPACE_PATH,
|
|
47
|
-
piConfigDir: resolve(readEnv("PI_CONFIG_DIR") ?? resolve(HOME, ".pi", `agent${SUFFIX}`)),
|
|
48
|
-
forgeDataDir: FORGE_DATA_DIR,
|
|
49
|
-
sessionDir: SESSION_DIR,
|
|
50
|
-
mcpConfigFile: resolve(readEnv("MCP_CONFIG_FILE") ?? resolve(FORGE_DATA_DIR, "mcp.json")),
|
|
51
|
-
mcpStdioTrustFile: resolve(readEnv("MCP_STDIO_TRUST_FILE") ?? resolve(FORGE_DATA_DIR, "mcp-stdio-trust.json")),
|
|
52
|
-
toolOverridesFile: resolve(readEnv("TOOL_OVERRIDES_FILE") ?? resolve(FORGE_DATA_DIR, "tool-overrides.json")),
|
|
53
|
-
skillOverridesFile: resolve(readEnv("SKILL_OVERRIDES_FILE") ?? resolve(FORGE_DATA_DIR, "skill-overrides.json")),
|
|
54
|
-
// Auth
|
|
55
|
-
uiPassword: readEnv("UI_PASSWORD"),
|
|
56
|
-
apiKey: readEnv("API_KEY"),
|
|
57
|
-
// Static client (production)
|
|
58
|
-
clientDistPath: CLIENT_DIST_PATH,
|
|
59
|
-
serveClient: readBool("SERVE_CLIENT", true),
|
|
60
|
-
// CORS
|
|
61
|
-
corsOrigin: readEnv("CORS_ORIGIN") ?? true,
|
|
62
|
-
// Orchestration
|
|
63
|
-
orchestrationEnabled: readBool("ORCHESTRATION_ENABLED", true),
|
|
64
|
-
orchestrationMaxWorkersPerSupervisor: readInt("ORCHESTRATION_MAX_WORKERS", 8),
|
|
65
|
-
minimalUi: readBool("MINIMAL_UI", false),
|
|
66
|
-
});
|
|
67
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extension manager — runtime discovery + install for pi.dev extensions.
|
|
3
|
-
* Scans ~/.pi/agent/ for installed extensions, agents, and packages,
|
|
4
|
-
* and exposes a curated recommendation catalog optimised for pi-kot.
|
|
5
|
-
*
|
|
6
|
-
* Architecture: extension dynamic detection pattern:
|
|
7
|
-
* detect → activate — UI features light up based on what's installed.
|
|
8
|
-
*
|
|
9
|
-
* Update checking:
|
|
10
|
-
* checkExtensionUpdates() compares installed vs. npm registry latest.
|
|
11
|
-
* updateExtension() runs npm install to upgrade to latest.
|
|
12
|
-
*/
|
|
13
|
-
export interface DiscoveredExtension {
|
|
14
|
-
/** Package / extension name */
|
|
15
|
-
name: string;
|
|
16
|
-
/** Where it was found: 'extensions_dir' | 'agents_dir' | 'package' | 'builtin' */
|
|
17
|
-
source: "extensions_dir" | "agents_dir" | "package" | "builtin";
|
|
18
|
-
/** Human description */
|
|
19
|
-
description: string;
|
|
20
|
-
/** Version string if available */
|
|
21
|
-
version?: string;
|
|
22
|
-
/** Original package identifier (e.g. "npm:@ayulab/pi-rewind"). Only set for package source. */
|
|
23
|
-
package?: string;
|
|
24
|
-
/** The agent type definitions this extension provides (e.g. scout, planner) */
|
|
25
|
-
agentTypes?: string[];
|
|
26
|
-
/** What UI features this extension enables */
|
|
27
|
-
enablesFeatures?: string[];
|
|
28
|
-
}
|
|
29
|
-
export interface RecommendedExtension {
|
|
30
|
-
id: string;
|
|
31
|
-
name: string;
|
|
32
|
-
description: string;
|
|
33
|
-
/** npm package name (including npm: prefix for pi) */
|
|
34
|
-
package: string;
|
|
35
|
-
/** Category for grouping in UI */
|
|
36
|
-
category: "orchestration" | "tools" | "ui" | "integration" | "productivity";
|
|
37
|
-
/** Whether this extension is already installed */
|
|
38
|
-
installed: boolean;
|
|
39
|
-
/** True when this extension has been tested and verified to work with pi-kot */
|
|
40
|
-
verified?: boolean;
|
|
41
|
-
/** What agent types this extension provides */
|
|
42
|
-
providesAgentTypes?: string[];
|
|
43
|
-
/** What UI features this enables */
|
|
44
|
-
enablesFeatures?: string[];
|
|
45
|
-
/** Icon emoji */
|
|
46
|
-
icon: string;
|
|
47
|
-
}
|
|
48
|
-
export interface ExtensionsResponse {
|
|
49
|
-
/** Extensions currently detected in the pi agent directory */
|
|
50
|
-
detected: DiscoveredExtension[];
|
|
51
|
-
/** Curated recommendations optimised for pi-kot */
|
|
52
|
-
recommended: RecommendedExtension[];
|
|
53
|
-
/** Agent definitions found (scout, planner, etc.) */
|
|
54
|
-
agents: AgentDef[];
|
|
55
|
-
}
|
|
56
|
-
export interface AgentDef {
|
|
57
|
-
name: string;
|
|
58
|
-
description: string;
|
|
59
|
-
model?: string;
|
|
60
|
-
tools?: string[];
|
|
61
|
-
source: "file" | "builtin";
|
|
62
|
-
}
|
|
63
|
-
export declare function discoverExtensions(): Promise<ExtensionsResponse>;
|
|
64
|
-
export declare function uninstallExtension(packageName: string): Promise<{
|
|
65
|
-
success: boolean;
|
|
66
|
-
error?: string;
|
|
67
|
-
}>;
|
|
68
|
-
export declare function installExtension(packageName: string): Promise<{
|
|
69
|
-
success: boolean;
|
|
70
|
-
error?: string;
|
|
71
|
-
}>;
|
|
72
|
-
export interface ExtensionUpdateInfo {
|
|
73
|
-
/** npm package name (without npm: prefix) */
|
|
74
|
-
package: string;
|
|
75
|
-
/** Display name */
|
|
76
|
-
name: string;
|
|
77
|
-
/** Currently installed version from node_modules/package.json */
|
|
78
|
-
installed: string | undefined;
|
|
79
|
-
/** Latest version available on npm registry */
|
|
80
|
-
latest: string | undefined;
|
|
81
|
-
/** Whether a newer version is available */
|
|
82
|
-
updateAvailable: boolean;
|
|
83
|
-
}
|
|
84
|
-
/** Clear the update cache so the next `checkExtensionUpdates()` hits npm fresh. */
|
|
85
|
-
export declare function clearExtensionCache(): void;
|
|
86
|
-
/**
|
|
87
|
-
* Check for updates on all installed npm packages.
|
|
88
|
-
* Reads installed versions from node_modules, then fetches latest
|
|
89
|
-
* from registry.npmjs.org. Results are cached for 60 seconds.
|
|
90
|
-
*/
|
|
91
|
-
export declare function checkExtensionUpdates(): Promise<ExtensionUpdateInfo[]>;
|
|
92
|
-
/**
|
|
93
|
-
* Manual install — accepts any pi install spec through the SDK config path
|
|
94
|
-
* (settings.json + npm install). No CLI dependency.
|
|
95
|
-
*
|
|
96
|
-
* Supported formats:
|
|
97
|
-
* npm:package-name → npm install
|
|
98
|
-
* git:github.com/user/repo → npm install via git URL
|
|
99
|
-
* pi install <spec> → strips prefix first (user typed the full command)
|
|
100
|
-
*/
|
|
101
|
-
export declare function installManualExtension(installSpec: string): Promise<{
|
|
102
|
-
success: boolean;
|
|
103
|
-
error?: string;
|
|
104
|
-
}>;
|
|
105
|
-
/**
|
|
106
|
-
* Update an installed extension to the latest version via npm install.
|
|
107
|
-
* Equivalent to re-running the install but without touching settings.json
|
|
108
|
-
* (since it's already in the packages list).
|
|
109
|
-
*/
|
|
110
|
-
export declare function updateExtension(packageName: string): Promise<{
|
|
111
|
-
success: boolean;
|
|
112
|
-
error?: string;
|
|
113
|
-
}>;
|
|
114
|
-
/** Built-in agent definitions (builtin defaults like pi-subagents examples) */
|
|
115
|
-
export declare const builtinAgentDefs: AgentDef[];
|
|
116
|
-
//# sourceMappingURL=extension-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension-manager.d.ts","sourceRoot":"","sources":["../src/extension-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAChE,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,QAAQ,EAAE,eAAe,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,cAAc,CAAC;IAC5E,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,mDAAmD;IACnD,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,qDAAqD;IACrD,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAqOD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAqDtE;AAED,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C/C;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC/C;AAID,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,2CAA2C;IAC3C,eAAe,EAAE,OAAO,CAAC;CAC1B;AAQD,mFAAmF;AACnF,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA6D5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C/C;AAsED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB/C;AAED,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EA6BtC,CAAC"}
|