@pasko70/pibo 1.9.8 → 1.9.9
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 +183 -183
- package/context/codex-base-prompt.md +148 -148
- package/context/compute-worker.md +23 -23
- package/context/pibo-compaction-prompt.md +100 -100
- package/context/pibo-native-tooling.md +18 -18
- package/context/pibo-system-prompt.md +77 -77
- package/docs/README.md +23 -23
- package/docs/ops/install-developer-host.md +112 -112
- package/docs/ops/install-user-host.md +96 -96
- package/docs/ops/upgrade-user-to-developer-host.md +69 -69
- package/docs/ops/vscode-extension-release.md +160 -160
- package/package.json +95 -95
- package/skills/builtin/graphify/SKILL.md +52 -52
- package/skills/builtin/pi-agent-harness/SKILL.md +319 -319
- package/skills/builtin/pi-agent-harness/agents/openai.yaml +4 -4
- package/skills/builtin/pibo-docker-system/SKILL.md +170 -170
- package/skills/builtin/pibo-spec-writing/SKILL.md +330 -330
- package/skills/builtin/prd/SKILL.md +143 -143
- package/skills/builtin/ralph-loop/SKILL.md +359 -359
- package/skills/builtin/ralph-prd-json/SKILL.md +123 -123
- package/skills/builtin/skill-creator/LICENSE.txt +201 -201
- package/skills/builtin/skill-creator/SKILL.md +513 -513
- package/skills/builtin/skill-creator/agents/analyzer.md +274 -274
- package/skills/builtin/skill-creator/agents/comparator.md +202 -202
- package/skills/builtin/skill-creator/agents/grader.md +223 -223
- package/skills/builtin/skill-creator/assets/eval_review.html +146 -146
- package/skills/builtin/skill-creator/eval-viewer/generate_review.py +471 -471
- package/skills/builtin/skill-creator/eval-viewer/viewer.html +1325 -1325
- package/skills/builtin/skill-creator/references/schemas.md +430 -430
- package/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +401 -401
- package/skills/builtin/skill-creator/scripts/generate_report.py +326 -326
- package/skills/builtin/skill-creator/scripts/improve_description.py +247 -247
- package/skills/builtin/skill-creator/scripts/package_skill.py +136 -136
- package/skills/builtin/skill-creator/scripts/quick_validate.py +102 -102
- package/skills/builtin/skill-creator/scripts/run_eval.py +310 -310
- package/skills/builtin/skill-creator/scripts/run_loop.py +328 -328
- package/skills/builtin/skill-creator/scripts/utils.py +47 -47
- package/skills/builtin/web-annotations/SKILL.md +93 -93
- package/src/mcp/LICENSE.mcp-cli +21 -21
- package/dist/api/simple-agent-api.js +0 -136
- package/dist/app-context.js +0 -4
- package/dist/apps/chat/agent-profiles.js +0 -70
- package/dist/apps/chat/agent-store.js +0 -669
- package/dist/apps/chat/chat-api-routes.js +0 -325
- package/dist/apps/chat/chat-capability-routes.js +0 -90
- package/dist/apps/chat/chat-files.js +0 -178
- package/dist/apps/chat/chat-request-normalizers.js +0 -681
- package/dist/apps/chat/chat-settings-routes.js +0 -98
- package/dist/apps/chat/chat-trace-helpers.js +0 -139
- package/dist/apps/chat/chat-user-skill-routes.js +0 -178
- package/dist/apps/chat/cron-api.js +0 -213
- package/dist/apps/chat/data/chat-data-mappers.js +0 -82
- package/dist/apps/chat/data/event-command-service.js +0 -75
- package/dist/apps/chat/data/navigation-query-service.js +0 -11
- package/dist/apps/chat/data/project-service.js +0 -877
- package/dist/apps/chat/data/read-state-service.js +0 -42
- package/dist/apps/chat/data/room-service.js +0 -52
- package/dist/apps/chat/data/session-query-service.js +0 -126
- package/dist/apps/chat/data/timeline-query-service.js +0 -102
- package/dist/apps/chat/event-log.js +0 -1
- package/dist/apps/chat/model-catalog.js +0 -53
- package/dist/apps/chat/output-compactor.js +0 -126
- package/dist/apps/chat/output-event-policy.js +0 -17
- package/dist/apps/chat/project-workflow-human-actions.js +0 -347
- package/dist/apps/chat/project-workflow-sessions.js +0 -260
- package/dist/apps/chat/provider-auth-actions.js +0 -43
- package/dist/apps/chat/ralph-api.js +0 -156
- package/dist/apps/chat/read-model.js +0 -1
- package/dist/apps/chat/rooms.js +0 -1
- package/dist/apps/chat/session-metadata.js +0 -14
- package/dist/apps/chat/static-assets.js +0 -997
- package/dist/apps/chat/stream.js +0 -145
- package/dist/apps/chat/telemetry-retention-service.js +0 -69
- package/dist/apps/chat/trace-v2.js +0 -307
- package/dist/apps/chat/trace.js +0 -572
- package/dist/apps/chat/types/event-store.js +0 -1
- package/dist/apps/chat/types/read-model.js +0 -1
- package/dist/apps/chat/types/rooms.js +0 -36
- package/dist/apps/chat/web-app.js +0 -4605
- package/dist/apps/chat/workflow-catalog.js +0 -572
- package/dist/apps/chat/workflow-edge-compatibility.js +0 -51
- package/dist/apps/chat/workflow-json-schema-validation.js +0 -335
- package/dist/apps/chat/workflow-manual-trigger-runtime.js +0 -232
- package/dist/apps/chat/workflow-persistence-model.js +0 -140
- package/dist/apps/chat/workflow-persistence.js +0 -633
- package/dist/apps/chat/workflow-registered-ref-params.js +0 -130
- package/dist/apps/chat/workflow-registered-ref-pickers.js +0 -179
- package/dist/apps/chat/workflow-registered-ref-validation.js +0 -210
- package/dist/apps/chat/workflow-v2-security-validation.js +0 -93
- package/dist/apps/chat/workflow-validation-helpers.js +0 -114
- package/dist/apps/chat-ui/assets/apl-BxEMbctQ.js +0 -1
- package/dist/apps/chat-ui/assets/asciiarmor-eFjeGRuZ.js +0 -1
- package/dist/apps/chat-ui/assets/asn1-Cfx-0pt9.js +0 -1
- package/dist/apps/chat-ui/assets/asterisk-B5BHTsBr.js +0 -1
- package/dist/apps/chat-ui/assets/brainfuck-CAA2xofr.js +0 -1
- package/dist/apps/chat-ui/assets/clike-BoDCOLzN.js +0 -1
- package/dist/apps/chat-ui/assets/clojure-kVFSWX0o.js +0 -1
- package/dist/apps/chat-ui/assets/cmake-BUPAhezI.js +0 -1
- package/dist/apps/chat-ui/assets/cobol-BfgHZgup.js +0 -1
- package/dist/apps/chat-ui/assets/coffeescript-G1Pe_1AZ.js +0 -1
- package/dist/apps/chat-ui/assets/commonlisp-B3N0CjHn.js +0 -1
- package/dist/apps/chat-ui/assets/crystal-C15ndaGM.js +0 -1
- package/dist/apps/chat-ui/assets/css-BqOeyZOV.js +0 -1
- package/dist/apps/chat-ui/assets/cypher-KjIKv-wW.js +0 -1
- package/dist/apps/chat-ui/assets/d-BlT5AEC-.js +0 -1
- package/dist/apps/chat-ui/assets/diff-oF98tbqj.js +0 -1
- package/dist/apps/chat-ui/assets/dist--55mTWk3.js +0 -1
- package/dist/apps/chat-ui/assets/dist--Sb99Zop.js +0 -11
- package/dist/apps/chat-ui/assets/dist-4VdcCJgh.js +0 -6
- package/dist/apps/chat-ui/assets/dist-BCqTb13C.js +0 -1
- package/dist/apps/chat-ui/assets/dist-BH4dS5wk.js +0 -23
- package/dist/apps/chat-ui/assets/dist-BXmdj7mb.js +0 -9
- package/dist/apps/chat-ui/assets/dist-BZ39rB1W.js +0 -1
- package/dist/apps/chat-ui/assets/dist-BsedZGJo.js +0 -1
- package/dist/apps/chat-ui/assets/dist-C5YJOwhH.js +0 -1
- package/dist/apps/chat-ui/assets/dist-C5oXtFSP.js +0 -1
- package/dist/apps/chat-ui/assets/dist-CDTTlyfG.js +0 -1
- package/dist/apps/chat-ui/assets/dist-CKM5j-iy.js +0 -1
- package/dist/apps/chat-ui/assets/dist-CUp9us2q.js +0 -1
- package/dist/apps/chat-ui/assets/dist-CZ9T4Cly.js +0 -1
- package/dist/apps/chat-ui/assets/dist-CdhJkLlg.js +0 -1
- package/dist/apps/chat-ui/assets/dist-D7FSg1x8.js +0 -1
- package/dist/apps/chat-ui/assets/dist-DSKQpPaz.js +0 -1
- package/dist/apps/chat-ui/assets/dist-Ds5VZTeC.js +0 -2
- package/dist/apps/chat-ui/assets/dist-SVPsM5Oi.js +0 -13
- package/dist/apps/chat-ui/assets/dist-ZN6fdzpB.js +0 -1
- package/dist/apps/chat-ui/assets/dist-Zqt9kNG9.js +0 -1
- package/dist/apps/chat-ui/assets/dist-qwl4CNfF.js +0 -1
- package/dist/apps/chat-ui/assets/dist-tGfufz3b.js +0 -1
- package/dist/apps/chat-ui/assets/dockerfile-CUaqzcqp.js +0 -1
- package/dist/apps/chat-ui/assets/dtd-VCA9yr61.js +0 -1
- package/dist/apps/chat-ui/assets/dylan-O-V5Dw5W.js +0 -1
- package/dist/apps/chat-ui/assets/ebnf-SPmdBkvT.js +0 -1
- package/dist/apps/chat-ui/assets/ecl-ChfCttfI.js +0 -1
- package/dist/apps/chat-ui/assets/eiffel-cB9EbjeN.js +0 -1
- package/dist/apps/chat-ui/assets/elm-BTiVflBU.js +0 -1
- package/dist/apps/chat-ui/assets/erlang-egf0TXFm.js +0 -1
- package/dist/apps/chat-ui/assets/factor-C2tAxNob.js +0 -1
- package/dist/apps/chat-ui/assets/fcl-BiCjh1tj.js +0 -1
- package/dist/apps/chat-ui/assets/forth-C4kDGW6u.js +0 -1
- package/dist/apps/chat-ui/assets/fortran-DzkLaPnd.js +0 -1
- package/dist/apps/chat-ui/assets/gas-DMOxskQF.js +0 -1
- package/dist/apps/chat-ui/assets/gherkin-BPxBpp-k.js +0 -1
- package/dist/apps/chat-ui/assets/groovy-CkEnc0ZY.js +0 -1
- package/dist/apps/chat-ui/assets/haskell-Dadpo9-w.js +0 -1
- package/dist/apps/chat-ui/assets/haxe-CDNZL9MW.js +0 -1
- package/dist/apps/chat-ui/assets/http-jy9Zxxt3.js +0 -1
- package/dist/apps/chat-ui/assets/idl-CGSB6iiy.js +0 -1
- package/dist/apps/chat-ui/assets/index-C0x9nEcf.css +0 -1
- package/dist/apps/chat-ui/assets/index-Gf-Zb-P-.js +0 -173
- package/dist/apps/chat-ui/assets/javascript-DSlzRUd8.js +0 -1
- package/dist/apps/chat-ui/assets/julia-DTiF9v6R.js +0 -1
- package/dist/apps/chat-ui/assets/livescript-Ci8Xxna6.js +0 -1
- package/dist/apps/chat-ui/assets/lua-eVxIrt9t.js +0 -1
- package/dist/apps/chat-ui/assets/mathematica-Da3grj36.js +0 -1
- package/dist/apps/chat-ui/assets/mbox-BWBMSafM.js +0 -1
- package/dist/apps/chat-ui/assets/mirc-CtHu9S1B.js +0 -1
- package/dist/apps/chat-ui/assets/mllike-wTFlPWXS.js +0 -1
- package/dist/apps/chat-ui/assets/modelica-cKbQ0UXu.js +0 -1
- package/dist/apps/chat-ui/assets/mscgen-C5pXQCMK.js +0 -1
- package/dist/apps/chat-ui/assets/mumps-CKBHkOQq.js +0 -1
- package/dist/apps/chat-ui/assets/nginx-B00AiQel.js +0 -1
- package/dist/apps/chat-ui/assets/nsis-SMDwKltR.js +0 -1
- package/dist/apps/chat-ui/assets/ntriples-B_36EBV0.js +0 -1
- package/dist/apps/chat-ui/assets/octave-BXPjzAif.js +0 -1
- package/dist/apps/chat-ui/assets/oz-Dedpat1M.js +0 -1
- package/dist/apps/chat-ui/assets/pascal-CMcUg72K.js +0 -1
- package/dist/apps/chat-ui/assets/perl-DoVTbnzt.js +0 -1
- package/dist/apps/chat-ui/assets/pig-CULXT1YV.js +0 -1
- package/dist/apps/chat-ui/assets/powershell-Cv5Uhf6b.js +0 -1
- package/dist/apps/chat-ui/assets/properties-CQ1C2P-M.js +0 -1
- package/dist/apps/chat-ui/assets/protobuf-SRlvzrl6.js +0 -1
- package/dist/apps/chat-ui/assets/pug-Bo3wfL-f.js +0 -1
- package/dist/apps/chat-ui/assets/puppet-ClSqCGj6.js +0 -1
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-144x144.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-192x192.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-48x48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-512x512.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-72x72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-96x96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/1024.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/114.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/120.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/128.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/144.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/152.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/167.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/180.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/192.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/29.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/50.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/512.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/57.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/58.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/76.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/ios/87.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-24.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-30.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-36.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-44.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-24.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-30.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-36.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-44.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-16.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-20.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-24.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-256.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-30.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-32.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-36.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-40.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-44.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-48.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-60.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-64.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-72.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-80.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-96.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-100.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-125.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-150.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-200.png +0 -0
- package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-400.png +0 -0
- package/dist/apps/chat-ui/assets/python-C2_X1GpX.js +0 -1
- package/dist/apps/chat-ui/assets/q-B_6Gdyzl.js +0 -1
- package/dist/apps/chat-ui/assets/r-BD07NGED.js +0 -1
- package/dist/apps/chat-ui/assets/rolldown-runtime-S-ySWqyJ.js +0 -1
- package/dist/apps/chat-ui/assets/rpm-CRu5Z2Jl.js +0 -1
- package/dist/apps/chat-ui/assets/ruby-dZPnOz8h.js +0 -1
- package/dist/apps/chat-ui/assets/sas-S2t8_sDI.js +0 -1
- package/dist/apps/chat-ui/assets/scheme-WcyFWLW2.js +0 -1
- package/dist/apps/chat-ui/assets/shell-DUelnYSh.js +0 -1
- package/dist/apps/chat-ui/assets/sieve-jDjlVhNh.js +0 -1
- package/dist/apps/chat-ui/assets/simple-mode-CL04yRVp.js +0 -1
- package/dist/apps/chat-ui/assets/smalltalk-ddWDYy10.js +0 -1
- package/dist/apps/chat-ui/assets/solr-C7rQhLuW.js +0 -1
- package/dist/apps/chat-ui/assets/sparql--fPCCgVd.js +0 -1
- package/dist/apps/chat-ui/assets/spreadsheet-DjthqD5G.js +0 -1
- package/dist/apps/chat-ui/assets/sql-D_dieYbr.js +0 -1
- package/dist/apps/chat-ui/assets/stex-rHcFYcA0.js +0 -1
- package/dist/apps/chat-ui/assets/stylus-DxF70RNr.js +0 -1
- package/dist/apps/chat-ui/assets/swift-T0hDoOb-.js +0 -1
- package/dist/apps/chat-ui/assets/tcl-Dlzy1mPk.js +0 -1
- package/dist/apps/chat-ui/assets/textile-Dy5rFZe5.js +0 -1
- package/dist/apps/chat-ui/assets/tiddlywiki-DQP1OymS.js +0 -1
- package/dist/apps/chat-ui/assets/tiki-0vOj3DB2.js +0 -1
- package/dist/apps/chat-ui/assets/toml-DEltN0lI.js +0 -1
- package/dist/apps/chat-ui/assets/troff-CRbBpEqY.js +0 -1
- package/dist/apps/chat-ui/assets/ttcn-M5q1nLKg.js +0 -1
- package/dist/apps/chat-ui/assets/ttcn-cfg-Rmw9NWq9.js +0 -1
- package/dist/apps/chat-ui/assets/turtle-BCDWhJK0.js +0 -1
- package/dist/apps/chat-ui/assets/vb-QQ7LGlOz.js +0 -1
- package/dist/apps/chat-ui/assets/vbscript-BiSEdUzz.js +0 -1
- package/dist/apps/chat-ui/assets/velocity-CzMg5_6w.js +0 -1
- package/dist/apps/chat-ui/assets/verilog-BJOO83gk.js +0 -1
- package/dist/apps/chat-ui/assets/vhdl-ed4zAZAA.js +0 -1
- package/dist/apps/chat-ui/assets/webidl-Ddy6hbV6.js +0 -1
- package/dist/apps/chat-ui/assets/xquery-Bw1zwhh6.js +0 -1
- package/dist/apps/chat-ui/assets/yacas-DZdTXy3s.js +0 -1
- package/dist/apps/chat-ui/assets/z80-DMG02_YV.js +0 -1
- package/dist/apps/chat-ui/index.html +0 -20
- package/dist/apps/chat-ui/manifest.webmanifest +0 -25
- package/dist/apps/chat-ui/sw.js +0 -47
- package/dist/apps/chat-vscode-web/assets/index-B5QK07zO.css +0 -2
- package/dist/apps/chat-vscode-web/assets/index-BAMxIaI_.js +0 -41
- package/dist/apps/chat-vscode-web/index.html +0 -14
- package/dist/apps/cli-ui/InkSessionApp.js +0 -1218
- package/dist/apps/cli-ui/InkTerminalLine.js +0 -53
- package/dist/apps/cli-ui/InkTerminalRow.js +0 -304
- package/dist/apps/cli-ui/InkTerminalView.js +0 -25
- package/dist/apps/cli-ui/cliSessionsCommand.js +0 -232
- package/dist/apps/cli-ui/index.js +0 -8
- package/dist/apps/cli-ui/inkColors.js +0 -67
- package/dist/apps/cli-ui/inkJson.js +0 -244
- package/dist/apps/cli-ui/inkMarkdown.js +0 -127
- package/dist/apps/cli-ui/inkSyntaxHighlighter.js +0 -166
- package/dist/apps/context-files-ui/assets/apl-14BqhLYK.js +0 -1
- package/dist/apps/context-files-ui/assets/asciiarmor-WLvjqI7d.js +0 -1
- package/dist/apps/context-files-ui/assets/asn1-Bg4FbdCg.js +0 -1
- package/dist/apps/context-files-ui/assets/asterisk-B2MO-X4d.js +0 -1
- package/dist/apps/context-files-ui/assets/brainfuck-CV9kufud.js +0 -1
- package/dist/apps/context-files-ui/assets/clike-CjmcUpt6.js +0 -1
- package/dist/apps/context-files-ui/assets/clojure-De3QGfx6.js +0 -1
- package/dist/apps/context-files-ui/assets/cmake-i2VDNaRq.js +0 -1
- package/dist/apps/context-files-ui/assets/cobol-BwO6DF08.js +0 -1
- package/dist/apps/context-files-ui/assets/coffeescript-BtivDvRz.js +0 -1
- package/dist/apps/context-files-ui/assets/commonlisp-DFkEQdLP.js +0 -1
- package/dist/apps/context-files-ui/assets/crystal-CU0NkcVL.js +0 -1
- package/dist/apps/context-files-ui/assets/css-CbMZAQ1W.js +0 -1
- package/dist/apps/context-files-ui/assets/cypher-Dke5QOzv.js +0 -1
- package/dist/apps/context-files-ui/assets/d-TPqSVaHM.js +0 -1
- package/dist/apps/context-files-ui/assets/diff-B365LSoZ.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-B5PTVnox.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-B5ZAfwf5.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-BOiGdrG-.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-BkUONE3N.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-D1KyNDg5.js +0 -13
- package/dist/apps/context-files-ui/assets/dist-DK01b7x4.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-DKoyMSNr.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-DLMjd26T.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-DPG9jOQ-.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-DotDq_kD.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-Dp5AH00p.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-DqYw0LH7.js +0 -2
- package/dist/apps/context-files-ui/assets/dist-QQuDy4KA.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-TF5iO5ML.js +0 -9
- package/dist/apps/context-files-ui/assets/dist-TbjAhles.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-ZsBbt0uY.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-kmsvtHkH.js +0 -1
- package/dist/apps/context-files-ui/assets/dist-vnd7PMu3.js +0 -11
- package/dist/apps/context-files-ui/assets/dockerfile-CJb2sekW.js +0 -1
- package/dist/apps/context-files-ui/assets/dtd-CBMymJ7O.js +0 -1
- package/dist/apps/context-files-ui/assets/dylan-08Azy1NK.js +0 -1
- package/dist/apps/context-files-ui/assets/ebnf-Dkum_1J8.js +0 -1
- package/dist/apps/context-files-ui/assets/ecl-dhxjHL8y.js +0 -1
- package/dist/apps/context-files-ui/assets/eiffel-C446m6dI.js +0 -1
- package/dist/apps/context-files-ui/assets/elm-po1E9de0.js +0 -1
- package/dist/apps/context-files-ui/assets/erlang-BD5LkVkR.js +0 -1
- package/dist/apps/context-files-ui/assets/factor-B2EMQZkP.js +0 -1
- package/dist/apps/context-files-ui/assets/fcl-DkEOamHd.js +0 -1
- package/dist/apps/context-files-ui/assets/forth-dCg2_HVB.js +0 -1
- package/dist/apps/context-files-ui/assets/fortran-3ZpXLFh1.js +0 -1
- package/dist/apps/context-files-ui/assets/gas-DMmxLZRI.js +0 -1
- package/dist/apps/context-files-ui/assets/gherkin-DUSFg2R6.js +0 -1
- package/dist/apps/context-files-ui/assets/groovy-Cmduloe1.js +0 -1
- package/dist/apps/context-files-ui/assets/haskell-Cyr255R9.js +0 -1
- package/dist/apps/context-files-ui/assets/haxe-BJVKtprM.js +0 -1
- package/dist/apps/context-files-ui/assets/http-DszHFpc-.js +0 -1
- package/dist/apps/context-files-ui/assets/idl-Cati9Nrv.js +0 -1
- package/dist/apps/context-files-ui/assets/index-B92tL3Pp.css +0 -1
- package/dist/apps/context-files-ui/assets/index-BhAWD3dv.js +0 -202
- package/dist/apps/context-files-ui/assets/javascript-C5pDVaoP.js +0 -1
- package/dist/apps/context-files-ui/assets/julia-DlqY1cTU.js +0 -1
- package/dist/apps/context-files-ui/assets/livescript-C6p8-2W1.js +0 -1
- package/dist/apps/context-files-ui/assets/lua-BxuTHaF7.js +0 -1
- package/dist/apps/context-files-ui/assets/mathematica-nDHZUMJT.js +0 -1
- package/dist/apps/context-files-ui/assets/mbox-DAaR0Hcz.js +0 -1
- package/dist/apps/context-files-ui/assets/mirc-CCA0FRfl.js +0 -1
- package/dist/apps/context-files-ui/assets/mllike-Cw3Iccsb.js +0 -1
- package/dist/apps/context-files-ui/assets/modelica-Czx80fNR.js +0 -1
- package/dist/apps/context-files-ui/assets/mscgen-BmfuTbzG.js +0 -1
- package/dist/apps/context-files-ui/assets/mumps-Ds_ZaumL.js +0 -1
- package/dist/apps/context-files-ui/assets/nginx-D9M2PQ4U.js +0 -1
- package/dist/apps/context-files-ui/assets/nsis-DOo3SJmd.js +0 -1
- package/dist/apps/context-files-ui/assets/ntriples-DLHGTvHs.js +0 -1
- package/dist/apps/context-files-ui/assets/octave-8jj96JiC.js +0 -1
- package/dist/apps/context-files-ui/assets/oz-BmMq7iC4.js +0 -1
- package/dist/apps/context-files-ui/assets/pascal-BgMr6XpT.js +0 -1
- package/dist/apps/context-files-ui/assets/perl-D6YJObi_.js +0 -1
- package/dist/apps/context-files-ui/assets/pig-nx7uchs8.js +0 -1
- package/dist/apps/context-files-ui/assets/powershell-B4IPkVxR.js +0 -1
- package/dist/apps/context-files-ui/assets/properties-CoavQdLC.js +0 -1
- package/dist/apps/context-files-ui/assets/protobuf-D5EWhcmc.js +0 -1
- package/dist/apps/context-files-ui/assets/pug-QU72BPAa.js +0 -1
- package/dist/apps/context-files-ui/assets/puppet-B_0GFuyD.js +0 -1
- package/dist/apps/context-files-ui/assets/python-Cs7sNzy_.js +0 -1
- package/dist/apps/context-files-ui/assets/q-BIB9pPtI.js +0 -1
- package/dist/apps/context-files-ui/assets/r-CN5s4f3o.js +0 -1
- package/dist/apps/context-files-ui/assets/rpm-Ct_Ck8mQ.js +0 -1
- package/dist/apps/context-files-ui/assets/ruby-BVPradRk.js +0 -1
- package/dist/apps/context-files-ui/assets/sas-DN4j74IF.js +0 -1
- package/dist/apps/context-files-ui/assets/scheme-CvNgHAnh.js +0 -1
- package/dist/apps/context-files-ui/assets/shell-BjiMLAaM.js +0 -1
- package/dist/apps/context-files-ui/assets/sieve-C2U1O5Z4.js +0 -1
- package/dist/apps/context-files-ui/assets/simple-mode-DnMbQuKW.js +0 -1
- package/dist/apps/context-files-ui/assets/smalltalk-DkYwYufV.js +0 -1
- package/dist/apps/context-files-ui/assets/solr-BopnSD-v.js +0 -1
- package/dist/apps/context-files-ui/assets/sparql-Cpg3YQfd.js +0 -1
- package/dist/apps/context-files-ui/assets/spreadsheet-kRxtVt9J.js +0 -1
- package/dist/apps/context-files-ui/assets/sql-DYI2GwJR.js +0 -1
- package/dist/apps/context-files-ui/assets/stex-BCRT8IJ3.js +0 -1
- package/dist/apps/context-files-ui/assets/stylus-CARoeVE9.js +0 -1
- package/dist/apps/context-files-ui/assets/swift-DKNaLAK6.js +0 -1
- package/dist/apps/context-files-ui/assets/tcl-CQyXkgMH.js +0 -1
- package/dist/apps/context-files-ui/assets/textile-Yg_UWn-t.js +0 -1
- package/dist/apps/context-files-ui/assets/tiddlywiki-dqVbkfX4.js +0 -1
- package/dist/apps/context-files-ui/assets/tiki-CC_ic8g0.js +0 -1
- package/dist/apps/context-files-ui/assets/toml-B7gGzVkJ.js +0 -1
- package/dist/apps/context-files-ui/assets/troff-Bq3z6oAu.js +0 -1
- package/dist/apps/context-files-ui/assets/ttcn-GvRgs2AT.js +0 -1
- package/dist/apps/context-files-ui/assets/ttcn-cfg-CGCXz7Vo.js +0 -1
- package/dist/apps/context-files-ui/assets/turtle-CwIpz2yy.js +0 -1
- package/dist/apps/context-files-ui/assets/vb-BmcHUM2C.js +0 -1
- package/dist/apps/context-files-ui/assets/vbscript-Cs9dylre.js +0 -1
- package/dist/apps/context-files-ui/assets/velocity-CBWU0VCy.js +0 -1
- package/dist/apps/context-files-ui/assets/verilog-DVCHmufx.js +0 -1
- package/dist/apps/context-files-ui/assets/vhdl-BGDk4f1d.js +0 -1
- package/dist/apps/context-files-ui/assets/webidl-egXQEWlC.js +0 -1
- package/dist/apps/context-files-ui/assets/xquery-5f0hn7cg.js +0 -1
- package/dist/apps/context-files-ui/assets/yacas-DNs9XkmQ.js +0 -1
- package/dist/apps/context-files-ui/assets/z80-B7Dfb4UO.js +0 -1
- package/dist/apps/context-files-ui/index.html +0 -14
- package/dist/auth/better-auth.js +0 -130
- package/dist/auth/login-actions.js +0 -251
- package/dist/auth/openai-codex-usage.js +0 -147
- package/dist/auth/types.js +0 -14
- package/dist/bin/pibo.js +0 -3
- package/dist/bin/rg.js +0 -15
- package/dist/channels/types.js +0 -1
- package/dist/cli-errors.js +0 -18
- package/dist/cli-session/fakeSessionSource.js +0 -804
- package/dist/cli-session/index.js +0 -3
- package/dist/cli-session/localSessionSource.js +0 -1144
- package/dist/cli-session/sessionSource.js +0 -13
- package/dist/cli.js +0 -491
- package/dist/compute/cli.js +0 -415
- package/dist/compute/docker.js +0 -835
- package/dist/compute/resource-health.js +0 -334
- package/dist/compute/resource-policy.js +0 -98
- package/dist/config/config.js +0 -180
- package/dist/core/base-prompt.js +0 -104
- package/dist/core/codex-compat.js +0 -44
- package/dist/core/compaction-prompt.js +0 -293
- package/dist/core/context-build.js +0 -711
- package/dist/core/context-guard.js +0 -293
- package/dist/core/events.js +0 -1
- package/dist/core/gateway-resource-guard.js +0 -215
- package/dist/core/model-defaults.js +0 -95
- package/dist/core/pibo-home.js +0 -8
- package/dist/core/profiles.js +0 -210
- package/dist/core/provider-recovery.js +0 -64
- package/dist/core/provider-telemetry.js +0 -353
- package/dist/core/routed-session.js +0 -1179
- package/dist/core/runtime-telemetry.js +0 -1059
- package/dist/core/runtime.js +0 -529
- package/dist/core/session-errors.js +0 -76
- package/dist/core/session-model.js +0 -39
- package/dist/core/session-router.js +0 -850
- package/dist/core/skill-expansion.js +0 -43
- package/dist/core/system-prompt-template.js +0 -56
- package/dist/core/telemetry-retention-settings.js +0 -34
- package/dist/core/telemetry-staleness.js +0 -128
- package/dist/core/test-output-compaction.js +0 -145
- package/dist/core/thinking.js +0 -9
- package/dist/core/user-settings.js +0 -84
- package/dist/core/workspace.js +0 -5
- package/dist/core/wsl.js +0 -100
- package/dist/cron/channel.js +0 -28
- package/dist/cron/cli.js +0 -230
- package/dist/cron/plugin.js +0 -11
- package/dist/cron/schedule.js +0 -214
- package/dist/cron/service.js +0 -177
- package/dist/cron/store.js +0 -349
- package/dist/cron/types.js +0 -1
- package/dist/data/cli.js +0 -184
- package/dist/data/event-log.js +0 -106
- package/dist/data/ingest-service.js +0 -389
- package/dist/data/message-store.js +0 -62
- package/dist/data/navigation-store.js +0 -75
- package/dist/data/observation-store.js +0 -46
- package/dist/data/payload-store.js +0 -153
- package/dist/data/pibo-store.js +0 -59
- package/dist/data/schema.js +0 -436
- package/dist/data/session-store.js +0 -63
- package/dist/data/sqlite-schema.js +0 -12
- package/dist/data/telemetry-preview.js +0 -65
- package/dist/data/telemetry-queries.js +0 -212
- package/dist/data/telemetry-retention.js +0 -50
- package/dist/data/telemetry-rows.js +0 -158
- package/dist/data/telemetry-writer.js +0 -114
- package/dist/data/telemetry.js +0 -471
- package/dist/debug/delta-compaction.js +0 -99
- package/dist/debug/detail-format.js +0 -86
- package/dist/debug/events.js +0 -212
- package/dist/debug/failures.js +0 -162
- package/dist/debug/index.js +0 -1296
- package/dist/debug/messages.js +0 -185
- package/dist/debug/next-commands.js +0 -6
- package/dist/debug/payloads.js +0 -123
- package/dist/debug/pty.js +0 -924
- package/dist/debug/session.js +0 -230
- package/dist/debug/sql.js +0 -238
- package/dist/debug/stores.js +0 -54
- package/dist/debug/summary.js +0 -72
- package/dist/debug/telemetry.js +0 -649
- package/dist/debug/tools.js +0 -168
- package/dist/debug/trace-render-check.js +0 -151
- package/dist/debug/trace.js +0 -370
- package/dist/debug/web-artifacts.js +0 -63
- package/dist/debug/web-options.js +0 -313
- package/dist/debug/web-render-analysis.js +0 -310
- package/dist/debug/web-snapshot-browser-scripts.js +0 -303
- package/dist/debug/web-streaming-benchmark-analysis.js +0 -605
- package/dist/debug/web-streaming-browser-library.js +0 -928
- package/dist/debug/web-streaming-browser-scripts.js +0 -242
- package/dist/debug/web-streaming-provider-telemetry.js +0 -194
- package/dist/debug/web-streaming-report.js +0 -493
- package/dist/debug/web-streaming-types.js +0 -1
- package/dist/debug/web.js +0 -574
- package/dist/gateway/backup.js +0 -83
- package/dist/gateway/cli.js +0 -632
- package/dist/gateway/client.js +0 -200
- package/dist/gateway/fallback.js +0 -155
- package/dist/gateway/pidfile.js +0 -130
- package/dist/gateway/protocol.js +0 -62
- package/dist/gateway/request.js +0 -155
- package/dist/gateway/server.js +0 -397
- package/dist/gateway/tool.js +0 -72
- package/dist/gateway/web.js +0 -224
- package/dist/index.js +0 -25
- package/dist/local/client.js +0 -77
- package/dist/local/extension.js +0 -551
- package/dist/local/tui.js +0 -25
- package/dist/mcp/agent-context.js +0 -127
- package/dist/mcp/client.js +0 -332
- package/dist/mcp/commands/call.js +0 -146
- package/dist/mcp/commands/grep.js +0 -145
- package/dist/mcp/commands/info.js +0 -83
- package/dist/mcp/commands/list.js +0 -94
- package/dist/mcp/config-command.js +0 -217
- package/dist/mcp/config.js +0 -473
- package/dist/mcp/daemon-client.js +0 -266
- package/dist/mcp/daemon.js +0 -327
- package/dist/mcp/errors.js +0 -287
- package/dist/mcp/index.js +0 -431
- package/dist/mcp/output.js +0 -226
- package/dist/mcp/python-runtime.js +0 -131
- package/dist/mcp/registry.js +0 -116
- package/dist/mcp/version.js +0 -5
- package/dist/pi-packages/cli.js +0 -92
- package/dist/pi-packages/installer.js +0 -70
- package/dist/pi-packages/metadata.js +0 -231
- package/dist/pi-packages/runtime.js +0 -61
- package/dist/pi-packages/store.js +0 -175
- package/dist/pi-packages/types.js +0 -1
- package/dist/plugins/better-auth.js +0 -11
- package/dist/plugins/builtin.js +0 -478
- package/dist/plugins/chat-custom-agents.js +0 -20
- package/dist/plugins/chat-user-skills.js +0 -41
- package/dist/plugins/chat-vscode-web.js +0 -28
- package/dist/plugins/chat-web.js +0 -11
- package/dist/plugins/codex-compat.js +0 -33
- package/dist/plugins/context-files-store.js +0 -354
- package/dist/plugins/context-files.js +0 -1081
- package/dist/plugins/dev-auth.js +0 -202
- package/dist/plugins/native-tooling.js +0 -15
- package/dist/plugins/registry.js +0 -436
- package/dist/plugins/types.js +0 -1
- package/dist/plugins/web-annotations.js +0 -27
- package/dist/plugins/web.js +0 -11
- package/dist/providers/glm.js +0 -59
- package/dist/providers/minimax.js +0 -70
- package/dist/providers/openai-compat.js +0 -48
- package/dist/providers/openai-gpt56.js +0 -153
- package/dist/ralph/channel.js +0 -8
- package/dist/ralph/cli.js +0 -197
- package/dist/ralph/plugin.js +0 -14
- package/dist/ralph/service.js +0 -317
- package/dist/ralph/stopping.js +0 -151
- package/dist/ralph/store.js +0 -450
- package/dist/ralph/templates.js +0 -200
- package/dist/ralph/types.js +0 -1
- package/dist/reliability/store.js +0 -775
- package/dist/resources/cli.js +0 -135
- package/dist/resources/lifecycle.js +0 -353
- package/dist/resources/reaper-state.js +0 -94
- package/dist/resources/reaper.js +0 -145
- package/dist/runs/registry.js +0 -360
- package/dist/runs/tools.js +0 -185
- package/dist/session-ui/commandCatalog.js +0 -193
- package/dist/session-ui/commandResults.js +0 -95
- package/dist/session-ui/delegation.js +0 -89
- package/dist/session-ui/index.js +0 -8
- package/dist/session-ui/roomSessionViewModel.js +0 -69
- package/dist/session-ui/sessionActivity.js +0 -30
- package/dist/session-ui/statusViewModel.js +0 -127
- package/dist/session-ui/terminalCards.js +0 -210
- package/dist/session-ui/terminalRows.js +0 -1163
- package/dist/session-ui/terminalValue.js +0 -45
- package/dist/sessions/pibo-data-store.js +0 -178
- package/dist/sessions/sqlite-store.js +0 -220
- package/dist/sessions/store.js +0 -132
- package/dist/sessions/workflow-session-kind.js +0 -20
- package/dist/setup/cli.js +0 -619
- package/dist/shared/trace-async-agent-runs.js +0 -127
- package/dist/shared/trace-engine.js +0 -97
- package/dist/shared/trace-event-projection.js +0 -789
- package/dist/shared/trace-live-reducer.js +0 -191
- package/dist/shared/trace-nodes.js +0 -88
- package/dist/shared/trace-order.js +0 -84
- package/dist/shared/trace-page-merge.js +0 -40
- package/dist/shared/trace-patch-nodes.js +0 -83
- package/dist/shared/trace-run-notifications.js +0 -69
- package/dist/shared/trace-subagent-links.js +0 -46
- package/dist/shared/trace-transcript.js +0 -371
- package/dist/shared/trace-types.js +0 -1
- package/dist/signals/aggregate.js +0 -65
- package/dist/signals/events.js +0 -1
- package/dist/signals/projector.js +0 -208
- package/dist/signals/registry.js +0 -554
- package/dist/signals/store.js +0 -1
- package/dist/signals/types.js +0 -1
- package/dist/skills/cli.js +0 -151
- package/dist/subagents/tool.js +0 -63
- package/dist/tools/agent-browser-leases.js +0 -219
- package/dist/tools/agent-browser-wrapper.js +0 -99
- package/dist/tools/browser-pool.js +0 -623
- package/dist/tools/browser-use-cdp.js +0 -259
- package/dist/tools/browser-use-leases.js +0 -516
- package/dist/tools/browser-use-wrapper.js +0 -781
- package/dist/tools/cdp-client.js +0 -189
- package/dist/tools/codex-compat.js +0 -85
- package/dist/tools/codex-image-generation.js +0 -272
- package/dist/tools/desktop-env.js +0 -99
- package/dist/tools/guides.js +0 -563
- package/dist/tools/index.js +0 -1020
- package/dist/tools/linux-virtual-display.js +0 -58
- package/dist/tools/npm-runtime.js +0 -136
- package/dist/tools/python-runtime.js +0 -183
- package/dist/tools/registry.js +0 -237
- package/dist/tools/runtime/index.js +0 -3
- package/dist/tools/runtime/node-backend.js +0 -225
- package/dist/tools/runtime/node-worker-source.js +0 -206
- package/dist/tools/runtime/python-backend.js +0 -227
- package/dist/tools/runtime/python-worker-source.js +0 -178
- package/dist/tools/runtime/registry.js +0 -255
- package/dist/tools/runtime/tool.js +0 -168
- package/dist/tools/runtime/types.js +0 -1
- package/dist/tools/web-search.js +0 -138
- package/dist/user-skills/installer.js +0 -214
- package/dist/user-skills/manager.js +0 -133
- package/dist/user-skills/store.js +0 -267
- package/dist/user-skills/types.js +0 -1
- package/dist/vscode/cli.js +0 -90
- package/dist/vscode/code-cli.js +0 -119
- package/dist/vscode/install.js +0 -177
- package/dist/vscode/status.js +0 -80
- package/dist/vscode/types.js +0 -14
- package/dist/vscode/uninstall.js +0 -49
- package/dist/vscode/vsix-fetcher.js +0 -131
- package/dist/web/auth.js +0 -14
- package/dist/web/channel.js +0 -288
- package/dist/web/http.js +0 -195
- package/dist/web/types.js +0 -1
- package/dist/web-annotations/api.js +0 -348
- package/dist/web-annotations/attachments.js +0 -201
- package/dist/web-annotations/cdp.js +0 -1107
- package/dist/web-annotations/index.js +0 -7
- package/dist/web-annotations/store.js +0 -407
- package/dist/web-annotations/tools.js +0 -350
- package/dist/web-annotations/types.js +0 -34
- package/dist/web-annotations/validation.js +0 -288
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { ensureConfigExists, isHttpServer, loadConfig, } from './config.js';
|
|
3
|
-
import { ErrorCode, formatCliError } from './errors.js';
|
|
4
|
-
export const MCP_SERVER_DESCRIPTION_MAX_LENGTH = 480;
|
|
5
|
-
export const ENABLED_MCP_SERVERS_CONTEXT_PATH = '.pibo/context/enabled-mcp-servers.md';
|
|
6
|
-
export function normalizeMcpServerDescription(value) {
|
|
7
|
-
const description = value.replace(/\s+/g, ' ').trim();
|
|
8
|
-
if (!description) {
|
|
9
|
-
throw new Error(formatCliError({
|
|
10
|
-
code: ErrorCode.CLIENT_ERROR,
|
|
11
|
-
type: 'MCP_DESCRIPTION_REQUIRED',
|
|
12
|
-
message: 'MCP server description is required',
|
|
13
|
-
}));
|
|
14
|
-
}
|
|
15
|
-
if (description.length > MCP_SERVER_DESCRIPTION_MAX_LENGTH) {
|
|
16
|
-
throw new Error(formatCliError({
|
|
17
|
-
code: ErrorCode.CLIENT_ERROR,
|
|
18
|
-
type: 'MCP_DESCRIPTION_TOO_LONG',
|
|
19
|
-
message: `MCP server description must be ${MCP_SERVER_DESCRIPTION_MAX_LENGTH} characters or fewer`,
|
|
20
|
-
}));
|
|
21
|
-
}
|
|
22
|
-
return description;
|
|
23
|
-
}
|
|
24
|
-
export async function listMcpServerInfos(configPath) {
|
|
25
|
-
try {
|
|
26
|
-
const config = await loadConfig(configPath);
|
|
27
|
-
return Object.entries(config.mcpServers).map(([name, server]) => mcpServerInfoFromConfig(name, server));
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
if (error.message.includes('CONFIG_NOT_FOUND'))
|
|
31
|
-
return [];
|
|
32
|
-
throw error;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export async function setMcpServerDescription(serverName, descriptionInput, configPath) {
|
|
36
|
-
const description = normalizeMcpServerDescription(descriptionInput);
|
|
37
|
-
const path = await ensureConfigExists(configPath);
|
|
38
|
-
const config = await readMcpConfig(path);
|
|
39
|
-
const server = config.mcpServers[serverName];
|
|
40
|
-
if (!server) {
|
|
41
|
-
throw new Error(formatCliError({
|
|
42
|
-
code: ErrorCode.CLIENT_ERROR,
|
|
43
|
-
type: 'SERVER_NOT_FOUND',
|
|
44
|
-
message: `Server "${serverName}" not found in config`,
|
|
45
|
-
details: `Available servers: ${Object.keys(config.mcpServers).join(', ') || '(none)'}`,
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
server.pibo = {
|
|
49
|
-
...(server.pibo ?? {}),
|
|
50
|
-
description,
|
|
51
|
-
descriptionSource: 'user',
|
|
52
|
-
};
|
|
53
|
-
await writeFile(path, `${JSON.stringify(config, null, 2)}\n`);
|
|
54
|
-
return mcpServerInfoFromConfig(serverName, server);
|
|
55
|
-
}
|
|
56
|
-
export async function getMcpAgentContextFile(selectedServerNames, configPath) {
|
|
57
|
-
if (selectedServerNames.length === 0)
|
|
58
|
-
return undefined;
|
|
59
|
-
const infos = await listMcpServerInfos(configPath);
|
|
60
|
-
const infosByName = new Map(infos.map((info) => [info.name, info]));
|
|
61
|
-
const selected = selectedServerNames
|
|
62
|
-
.map((name) => infosByName.get(name))
|
|
63
|
-
.filter((info) => Boolean(info?.description));
|
|
64
|
-
if (selected.length === 0)
|
|
65
|
-
return undefined;
|
|
66
|
-
const sections = selected.flatMap((server) => [
|
|
67
|
-
`## ${server.name}`,
|
|
68
|
-
server.description ?? '',
|
|
69
|
-
'',
|
|
70
|
-
`Discover: \`npm run dev -- mcp info ${server.name}\``,
|
|
71
|
-
`Call: \`npm run dev -- mcp call ${server.name} <tool> '<json>'\``,
|
|
72
|
-
'',
|
|
73
|
-
]);
|
|
74
|
-
return {
|
|
75
|
-
path: ENABLED_MCP_SERVERS_CONTEXT_PATH,
|
|
76
|
-
content: [
|
|
77
|
-
'# Enabled MCP Servers',
|
|
78
|
-
'',
|
|
79
|
-
'These MCP servers are enabled for this agent. Use the MCP CLI for discovery and calls.',
|
|
80
|
-
'',
|
|
81
|
-
...sections,
|
|
82
|
-
].join('\n').trimEnd(),
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
async function readMcpConfig(path) {
|
|
86
|
-
const content = await readFile(path, 'utf-8');
|
|
87
|
-
const parsed = JSON.parse(content);
|
|
88
|
-
if (!parsed ||
|
|
89
|
-
typeof parsed !== 'object' ||
|
|
90
|
-
!('mcpServers' in parsed) ||
|
|
91
|
-
typeof parsed.mcpServers !== 'object' ||
|
|
92
|
-
parsed.mcpServers === null) {
|
|
93
|
-
throw new Error(formatCliError({
|
|
94
|
-
code: ErrorCode.CLIENT_ERROR,
|
|
95
|
-
type: 'CONFIG_MISSING_FIELD',
|
|
96
|
-
message: 'Config file missing required "mcpServers" object',
|
|
97
|
-
details: `File: ${path}`,
|
|
98
|
-
}));
|
|
99
|
-
}
|
|
100
|
-
return parsed;
|
|
101
|
-
}
|
|
102
|
-
function mcpServerInfoFromConfig(name, server) {
|
|
103
|
-
const metadata = normalizeMetadata(server.pibo);
|
|
104
|
-
const description = metadata.description;
|
|
105
|
-
return {
|
|
106
|
-
name,
|
|
107
|
-
transport: isHttpServer(server) ? 'http' : 'stdio',
|
|
108
|
-
...(description ? { description } : {}),
|
|
109
|
-
...(metadata.descriptionSource ? { descriptionSource: metadata.descriptionSource } : {}),
|
|
110
|
-
hasDescription: Boolean(description),
|
|
111
|
-
editable: metadata.descriptionSource !== 'registry',
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
function normalizeMetadata(metadata) {
|
|
115
|
-
if (!metadata || typeof metadata !== 'object')
|
|
116
|
-
return {};
|
|
117
|
-
const description = typeof metadata.description === 'string' && metadata.description.trim()
|
|
118
|
-
? metadata.description.trim()
|
|
119
|
-
: undefined;
|
|
120
|
-
const descriptionSource = metadata.descriptionSource === 'registry' || metadata.descriptionSource === 'user'
|
|
121
|
-
? metadata.descriptionSource
|
|
122
|
-
: undefined;
|
|
123
|
-
return {
|
|
124
|
-
...(description ? { description } : {}),
|
|
125
|
-
...(descriptionSource ? { descriptionSource } : {}),
|
|
126
|
-
};
|
|
127
|
-
}
|
package/dist/mcp/client.js
DELETED
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Client - Connection management for MCP servers
|
|
3
|
-
*/
|
|
4
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
5
|
-
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
6
|
-
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
7
|
-
import { debug, filterTools, getConcurrencyLimit, getMaxRetries, getRetryDelayMs, getTimeoutMs, isDaemonEnabled, isHttpServer, isToolAllowed, } from './config.js';
|
|
8
|
-
import { cleanupOrphanedDaemons, getDaemonConnection, } from './daemon-client.js';
|
|
9
|
-
import { VERSION } from './version.js';
|
|
10
|
-
// Re-export config utilities for convenience
|
|
11
|
-
export { debug, getTimeoutMs, getConcurrencyLimit };
|
|
12
|
-
/**
|
|
13
|
-
* Get retry config respecting MCP_TIMEOUT budget
|
|
14
|
-
*/
|
|
15
|
-
function getRetryConfig() {
|
|
16
|
-
const totalBudgetMs = getTimeoutMs();
|
|
17
|
-
const maxRetries = getMaxRetries();
|
|
18
|
-
const baseDelayMs = getRetryDelayMs();
|
|
19
|
-
// Reserve at least 5s for the final attempt
|
|
20
|
-
const retryBudgetMs = Math.max(0, totalBudgetMs - 5000);
|
|
21
|
-
return {
|
|
22
|
-
maxRetries,
|
|
23
|
-
baseDelayMs,
|
|
24
|
-
maxDelayMs: Math.min(10000, retryBudgetMs / 2),
|
|
25
|
-
totalBudgetMs,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Check if an error is transient and worth retrying
|
|
30
|
-
* Uses error codes when available, falls back to message matching
|
|
31
|
-
*/
|
|
32
|
-
export function isTransientError(error) {
|
|
33
|
-
// Check error code first (more reliable than message matching)
|
|
34
|
-
const nodeError = error;
|
|
35
|
-
if (nodeError.code) {
|
|
36
|
-
const transientCodes = [
|
|
37
|
-
'ECONNREFUSED',
|
|
38
|
-
'ECONNRESET',
|
|
39
|
-
'ETIMEDOUT',
|
|
40
|
-
'ENOTFOUND',
|
|
41
|
-
'EPIPE',
|
|
42
|
-
'ENETUNREACH',
|
|
43
|
-
'EHOSTUNREACH',
|
|
44
|
-
'EAI_AGAIN',
|
|
45
|
-
];
|
|
46
|
-
if (transientCodes.includes(nodeError.code)) {
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Fallback to message matching for errors without codes
|
|
51
|
-
const message = error.message;
|
|
52
|
-
// HTTP transient errors - require status code at start or with HTTP context
|
|
53
|
-
// Pattern: "502", "502 Bad Gateway", "HTTP 502", "status 502", "status code 502"
|
|
54
|
-
if (/^(502|503|504|429)\b/.test(message))
|
|
55
|
-
return true;
|
|
56
|
-
if (/\b(http|status(\s+code)?)\s*(502|503|504|429)\b/i.test(message))
|
|
57
|
-
return true;
|
|
58
|
-
if (/\b(502|503|504|429)\s+(bad gateway|service unavailable|gateway timeout|too many requests)/i.test(message))
|
|
59
|
-
return true;
|
|
60
|
-
// Generic network terms - more specific patterns
|
|
61
|
-
if (/network\s*(error|fail|unavailable|timeout)/i.test(message))
|
|
62
|
-
return true;
|
|
63
|
-
if (/connection\s*(reset|refused|timeout)/i.test(message))
|
|
64
|
-
return true;
|
|
65
|
-
if (/\btimeout\b/i.test(message))
|
|
66
|
-
return true;
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Calculate delay with exponential backoff and jitter
|
|
71
|
-
*/
|
|
72
|
-
function calculateDelay(attempt, config) {
|
|
73
|
-
const exponentialDelay = config.baseDelayMs * 2 ** attempt;
|
|
74
|
-
const cappedDelay = Math.min(exponentialDelay, config.maxDelayMs);
|
|
75
|
-
// Add jitter (±25%)
|
|
76
|
-
const jitter = cappedDelay * 0.25 * (Math.random() * 2 - 1);
|
|
77
|
-
return Math.round(cappedDelay + jitter);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Sleep for specified milliseconds
|
|
81
|
-
*/
|
|
82
|
-
function sleep(ms) {
|
|
83
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Execute a function with retry logic for transient failures
|
|
87
|
-
* Respects overall timeout budget from MCP_TIMEOUT
|
|
88
|
-
*/
|
|
89
|
-
async function withRetry(fn, operationName, config = getRetryConfig()) {
|
|
90
|
-
let lastError;
|
|
91
|
-
const startTime = Date.now();
|
|
92
|
-
for (let attempt = 0; attempt <= config.maxRetries; attempt++) {
|
|
93
|
-
// Check if we've exceeded the total timeout budget
|
|
94
|
-
const elapsed = Date.now() - startTime;
|
|
95
|
-
if (elapsed >= config.totalBudgetMs) {
|
|
96
|
-
debug(`${operationName}: timeout budget exhausted after ${elapsed}ms`);
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
try {
|
|
100
|
-
return await fn();
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
lastError = error;
|
|
104
|
-
const remainingBudget = config.totalBudgetMs - (Date.now() - startTime);
|
|
105
|
-
const shouldRetry = attempt < config.maxRetries &&
|
|
106
|
-
isTransientError(lastError) &&
|
|
107
|
-
remainingBudget > 1000; // At least 1s remaining
|
|
108
|
-
if (shouldRetry) {
|
|
109
|
-
const delay = Math.min(calculateDelay(attempt, config), remainingBudget - 1000);
|
|
110
|
-
debug(`${operationName} failed (attempt ${attempt + 1}/${config.maxRetries + 1}): ${lastError.message}. Retrying in ${delay}ms...`);
|
|
111
|
-
await sleep(delay);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
throw lastError;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
throw lastError;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Safely close a connection, logging but not throwing on error
|
|
122
|
-
*/
|
|
123
|
-
export async function safeClose(close) {
|
|
124
|
-
try {
|
|
125
|
-
await close();
|
|
126
|
-
}
|
|
127
|
-
catch (err) {
|
|
128
|
-
debug(`Failed to close connection: ${err.message}`);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Connect to an MCP server with retry logic
|
|
133
|
-
* Captures stderr from stdio servers to include in error messages
|
|
134
|
-
*/
|
|
135
|
-
export async function connectToServer(serverName, config) {
|
|
136
|
-
// Collect stderr for better error messages
|
|
137
|
-
const stderrChunks = [];
|
|
138
|
-
return withRetry(async () => {
|
|
139
|
-
const client = new Client({
|
|
140
|
-
name: 'mcp-cli',
|
|
141
|
-
version: VERSION,
|
|
142
|
-
}, {
|
|
143
|
-
capabilities: {},
|
|
144
|
-
});
|
|
145
|
-
let transport;
|
|
146
|
-
if (isHttpServer(config)) {
|
|
147
|
-
transport = createHttpTransport(config);
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
transport = createStdioTransport(config);
|
|
151
|
-
// Capture stderr for debugging - attach BEFORE connect
|
|
152
|
-
// Always stream stderr immediately so auth prompts are visible
|
|
153
|
-
const stderrStream = transport.stderr;
|
|
154
|
-
if (stderrStream) {
|
|
155
|
-
stderrStream.on('data', (chunk) => {
|
|
156
|
-
const text = chunk.toString();
|
|
157
|
-
stderrChunks.push(text);
|
|
158
|
-
// Always stream stderr immediately so users can see auth prompts
|
|
159
|
-
process.stderr.write(`[${serverName}] ${text}`);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
try {
|
|
164
|
-
await client.connect(transport);
|
|
165
|
-
}
|
|
166
|
-
catch (error) {
|
|
167
|
-
// Enhance error with captured stderr
|
|
168
|
-
const stderrOutput = stderrChunks.join('').trim();
|
|
169
|
-
if (stderrOutput) {
|
|
170
|
-
const err = error;
|
|
171
|
-
err.message = `${err.message}\n\nServer stderr:\n${stderrOutput}`;
|
|
172
|
-
}
|
|
173
|
-
throw error;
|
|
174
|
-
}
|
|
175
|
-
// For successful connections, forward stderr to console
|
|
176
|
-
if (!isHttpServer(config)) {
|
|
177
|
-
const stderrStream = transport.stderr;
|
|
178
|
-
if (stderrStream) {
|
|
179
|
-
stderrStream.on('data', (chunk) => {
|
|
180
|
-
process.stderr.write(chunk);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return {
|
|
185
|
-
client,
|
|
186
|
-
close: async () => {
|
|
187
|
-
await client.close();
|
|
188
|
-
},
|
|
189
|
-
};
|
|
190
|
-
}, `connect to ${serverName}`);
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Create HTTP transport for remote servers
|
|
194
|
-
*/
|
|
195
|
-
function createHttpTransport(config) {
|
|
196
|
-
const url = new URL(config.url);
|
|
197
|
-
return new StreamableHTTPClientTransport(url, {
|
|
198
|
-
requestInit: {
|
|
199
|
-
headers: config.headers,
|
|
200
|
-
},
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Create stdio transport for local servers
|
|
205
|
-
* Uses stderr: 'pipe' to capture server output for debugging
|
|
206
|
-
*/
|
|
207
|
-
function createStdioTransport(config) {
|
|
208
|
-
// Merge process.env with config.env, filtering out undefined values
|
|
209
|
-
const mergedEnv = {};
|
|
210
|
-
for (const [key, value] of Object.entries(process.env)) {
|
|
211
|
-
if (value !== undefined) {
|
|
212
|
-
mergedEnv[key] = value;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
if (config.env) {
|
|
216
|
-
Object.assign(mergedEnv, config.env);
|
|
217
|
-
}
|
|
218
|
-
return new StdioClientTransport({
|
|
219
|
-
command: config.command,
|
|
220
|
-
args: config.args,
|
|
221
|
-
env: mergedEnv,
|
|
222
|
-
cwd: config.cwd,
|
|
223
|
-
stderr: 'pipe', // Capture stderr for better error messages
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* List all tools from a connected client with retry logic
|
|
228
|
-
*/
|
|
229
|
-
export async function listTools(client) {
|
|
230
|
-
return withRetry(async () => {
|
|
231
|
-
const result = await client.listTools();
|
|
232
|
-
return result.tools.map((tool) => ({
|
|
233
|
-
name: tool.name,
|
|
234
|
-
description: tool.description,
|
|
235
|
-
inputSchema: tool.inputSchema,
|
|
236
|
-
}));
|
|
237
|
-
}, 'list tools');
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Get a specific tool by name
|
|
241
|
-
*/
|
|
242
|
-
export async function getTool(client, toolName) {
|
|
243
|
-
const tools = await listTools(client);
|
|
244
|
-
return tools.find((t) => t.name === toolName);
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Call a tool with arguments and retry logic
|
|
248
|
-
*/
|
|
249
|
-
export async function callTool(client, toolName, args) {
|
|
250
|
-
return withRetry(async () => {
|
|
251
|
-
const result = await client.callTool({
|
|
252
|
-
name: toolName,
|
|
253
|
-
arguments: args,
|
|
254
|
-
}, undefined, { timeout: getTimeoutMs() });
|
|
255
|
-
return result;
|
|
256
|
-
}, `call tool ${toolName}`);
|
|
257
|
-
}
|
|
258
|
-
// ============================================================================
|
|
259
|
-
// Unified Connection Interface (Daemon + Direct)
|
|
260
|
-
// ============================================================================
|
|
261
|
-
/**
|
|
262
|
-
* Get a unified connection to an MCP server
|
|
263
|
-
*
|
|
264
|
-
* If daemon mode is enabled (default), tries to use a cached daemon connection.
|
|
265
|
-
* Falls back to direct connection if daemon fails or is disabled.
|
|
266
|
-
*
|
|
267
|
-
* @param serverName - Name of the server from config
|
|
268
|
-
* @param config - Server configuration
|
|
269
|
-
* @returns McpConnection with listTools, callTool, and close methods
|
|
270
|
-
*/
|
|
271
|
-
export async function getConnection(serverName, config) {
|
|
272
|
-
// Clean up any orphaned daemons on first call
|
|
273
|
-
await cleanupOrphanedDaemons();
|
|
274
|
-
// Try daemon connection if enabled
|
|
275
|
-
if (isDaemonEnabled()) {
|
|
276
|
-
try {
|
|
277
|
-
const daemonConn = await getDaemonConnection(serverName, config);
|
|
278
|
-
if (daemonConn) {
|
|
279
|
-
debug(`Using daemon connection for ${serverName}`);
|
|
280
|
-
return {
|
|
281
|
-
async listTools() {
|
|
282
|
-
const data = await daemonConn.listTools();
|
|
283
|
-
const tools = data;
|
|
284
|
-
// Apply tool filtering from config
|
|
285
|
-
return filterTools(tools, config);
|
|
286
|
-
},
|
|
287
|
-
async callTool(toolName, args) {
|
|
288
|
-
// Check if tool is allowed before calling
|
|
289
|
-
if (!isToolAllowed(toolName, config)) {
|
|
290
|
-
throw new Error(`Tool "${toolName}" is disabled by configuration`);
|
|
291
|
-
}
|
|
292
|
-
return daemonConn.callTool(toolName, args);
|
|
293
|
-
},
|
|
294
|
-
async getInstructions() {
|
|
295
|
-
return daemonConn.getInstructions();
|
|
296
|
-
},
|
|
297
|
-
async close() {
|
|
298
|
-
await daemonConn.close();
|
|
299
|
-
},
|
|
300
|
-
isDaemon: true,
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
catch (err) {
|
|
305
|
-
debug(`Daemon connection failed for ${serverName}: ${err.message}, falling back to direct`);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
// Fall back to direct connection
|
|
309
|
-
debug(`Using direct connection for ${serverName}`);
|
|
310
|
-
const { client, close } = await connectToServer(serverName, config);
|
|
311
|
-
return {
|
|
312
|
-
async listTools() {
|
|
313
|
-
const tools = await listTools(client);
|
|
314
|
-
// Apply tool filtering from config
|
|
315
|
-
return filterTools(tools, config);
|
|
316
|
-
},
|
|
317
|
-
async callTool(toolName, args) {
|
|
318
|
-
// Check if tool is allowed before calling
|
|
319
|
-
if (!isToolAllowed(toolName, config)) {
|
|
320
|
-
throw new Error(`Tool "${toolName}" is disabled by configuration`);
|
|
321
|
-
}
|
|
322
|
-
return callTool(client, toolName, args);
|
|
323
|
-
},
|
|
324
|
-
async getInstructions() {
|
|
325
|
-
return client.getInstructions();
|
|
326
|
-
},
|
|
327
|
-
async close() {
|
|
328
|
-
await close();
|
|
329
|
-
},
|
|
330
|
-
isDaemon: false,
|
|
331
|
-
};
|
|
332
|
-
}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Call command - Execute a tool with arguments
|
|
3
|
-
*
|
|
4
|
-
* Output behavior:
|
|
5
|
-
* - Default: Raw text content to stdout (CLI-friendly)
|
|
6
|
-
* - With --json: Full JSON response to stdout
|
|
7
|
-
* - Errors always go to stderr
|
|
8
|
-
*/
|
|
9
|
-
import { getConnection, getTimeoutMs, safeClose, } from '../client.js';
|
|
10
|
-
import { getServerConfig, loadConfig, } from '../config.js';
|
|
11
|
-
import { ErrorCode, formatCliError, invalidJsonArgsError, invalidTargetError, serverConnectionError, toolExecutionError, toolNotFoundError, } from '../errors.js';
|
|
12
|
-
import { formatToolResult } from '../output.js';
|
|
13
|
-
/**
|
|
14
|
-
* Parse target into server and tool name
|
|
15
|
-
*/
|
|
16
|
-
function parseTarget(target) {
|
|
17
|
-
const slashIndex = target.indexOf('/');
|
|
18
|
-
if (slashIndex === -1) {
|
|
19
|
-
throw new Error(formatCliError(invalidTargetError(target)));
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
server: target.substring(0, slashIndex),
|
|
23
|
-
tool: target.substring(slashIndex + 1),
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Parse JSON arguments from string or stdin
|
|
28
|
-
*/
|
|
29
|
-
async function parseArgs(argsString) {
|
|
30
|
-
let jsonString;
|
|
31
|
-
if (argsString) {
|
|
32
|
-
jsonString = argsString;
|
|
33
|
-
}
|
|
34
|
-
else if (!process.stdin.isTTY) {
|
|
35
|
-
// Read from stdin with timeout - use timer cleanup to prevent memory leak
|
|
36
|
-
const timeoutMs = getTimeoutMs();
|
|
37
|
-
const chunks = [];
|
|
38
|
-
let timeoutId;
|
|
39
|
-
const readPromise = (async () => {
|
|
40
|
-
for await (const chunk of process.stdin) {
|
|
41
|
-
chunks.push(chunk);
|
|
42
|
-
}
|
|
43
|
-
return Buffer.concat(chunks).toString('utf-8').trim();
|
|
44
|
-
})();
|
|
45
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
46
|
-
timeoutId = setTimeout(() => reject(new Error(`stdin read timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
47
|
-
});
|
|
48
|
-
try {
|
|
49
|
-
jsonString = await Promise.race([readPromise, timeoutPromise]);
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
if (timeoutId)
|
|
53
|
-
clearTimeout(timeoutId);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// No arguments provided
|
|
58
|
-
return {};
|
|
59
|
-
}
|
|
60
|
-
if (!jsonString) {
|
|
61
|
-
return {};
|
|
62
|
-
}
|
|
63
|
-
try {
|
|
64
|
-
return JSON.parse(jsonString);
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
throw new Error(formatCliError(invalidJsonArgsError(jsonString, e.message)));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Execute the call command
|
|
72
|
-
*/
|
|
73
|
-
export async function callCommand(options) {
|
|
74
|
-
let config;
|
|
75
|
-
try {
|
|
76
|
-
config = await loadConfig(options.configPath);
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
console.error(error.message);
|
|
80
|
-
process.exit(ErrorCode.CLIENT_ERROR);
|
|
81
|
-
}
|
|
82
|
-
let serverName;
|
|
83
|
-
let toolName;
|
|
84
|
-
try {
|
|
85
|
-
const parsed = parseTarget(options.target);
|
|
86
|
-
serverName = parsed.server;
|
|
87
|
-
toolName = parsed.tool;
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
console.error(error.message);
|
|
91
|
-
process.exit(ErrorCode.CLIENT_ERROR);
|
|
92
|
-
}
|
|
93
|
-
let serverConfig;
|
|
94
|
-
try {
|
|
95
|
-
serverConfig = getServerConfig(config, serverName);
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
console.error(error.message);
|
|
99
|
-
process.exit(ErrorCode.CLIENT_ERROR);
|
|
100
|
-
}
|
|
101
|
-
let args;
|
|
102
|
-
try {
|
|
103
|
-
args = await parseArgs(options.args);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
console.error(error.message);
|
|
107
|
-
process.exit(ErrorCode.CLIENT_ERROR);
|
|
108
|
-
}
|
|
109
|
-
let connection;
|
|
110
|
-
try {
|
|
111
|
-
connection = await getConnection(serverName, serverConfig);
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
console.error(formatCliError(serverConnectionError(serverName, error.message)));
|
|
115
|
-
process.exit(ErrorCode.NETWORK_ERROR);
|
|
116
|
-
}
|
|
117
|
-
try {
|
|
118
|
-
const result = await connection.callTool(toolName, args);
|
|
119
|
-
// Extract text content from MCP response for CLI-friendly output
|
|
120
|
-
// Uses formatToolResult which extracts text from MCP content array
|
|
121
|
-
console.log(formatToolResult(result));
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
// Try to get available tools for better error message
|
|
125
|
-
let availableTools;
|
|
126
|
-
try {
|
|
127
|
-
const tools = await connection.listTools();
|
|
128
|
-
availableTools = tools.map((t) => t.name);
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
// Ignore - we'll show error without tool list
|
|
132
|
-
}
|
|
133
|
-
const errMsg = error.message;
|
|
134
|
-
// Check if it's a "tool not found" type error
|
|
135
|
-
if (errMsg.includes('not found') || errMsg.includes('unknown tool')) {
|
|
136
|
-
console.error(formatCliError(toolNotFoundError(toolName, serverName, availableTools)));
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
console.error(formatCliError(toolExecutionError(toolName, serverName, errMsg)));
|
|
140
|
-
}
|
|
141
|
-
process.exit(ErrorCode.SERVER_ERROR);
|
|
142
|
-
}
|
|
143
|
-
finally {
|
|
144
|
-
await safeClose(connection.close);
|
|
145
|
-
}
|
|
146
|
-
}
|