@pasko70/pibo 1.9.7 → 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-BDiYR_k0.js +0 -2
- package/dist/apps/chat-ui/assets/dist-BYMYH5s9.js +0 -11
- 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-BtZRJHYc.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-CKM5j-iy.js +0 -1
- package/dist/apps/chat-ui/assets/dist-CTqkBO4D.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-Ca0Nv2Sb.js +0 -1
- package/dist/apps/chat-ui/assets/dist-D75qd42l.js +0 -1
- package/dist/apps/chat-ui/assets/dist-DALz2b8B.js +0 -1
- package/dist/apps/chat-ui/assets/dist-DSKQpPaz.js +0 -1
- package/dist/apps/chat-ui/assets/dist-Hmv_Gd0d.js +0 -6
- package/dist/apps/chat-ui/assets/dist-JsdMHbep.js +0 -23
- package/dist/apps/chat-ui/assets/dist-MvkOuMpO.js +0 -1
- package/dist/apps/chat-ui/assets/dist-SVPsM5Oi.js +0 -13
- package/dist/apps/chat-ui/assets/dist-WDi-12_5.js +0 -9
- package/dist/apps/chat-ui/assets/dist-Zqt9kNG9.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-BUlHJWKP.js +0 -173
- package/dist/apps/chat-ui/assets/index-C0x9nEcf.css +0 -1
- 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 -205
- 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
package/dist/vscode/status.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `pibo vscode status` — report whether the Pibo VS Code extension is
|
|
3
|
-
* installed, the local VS Code CLI binary, and the cached VSIX artifacts.
|
|
4
|
-
*/
|
|
5
|
-
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
6
|
-
import { homedir } from "node:os";
|
|
7
|
-
import { join } from "node:path";
|
|
8
|
-
import { detectCodeBinary, listInstalledExtensions } from "./code-cli.js";
|
|
9
|
-
import { fetchRelease } from "./vsix-fetcher.js";
|
|
10
|
-
import { DEFAULT_GITHUB_OWNER, DEFAULT_GITHUB_REPO, PIBO_VSCODE_CACHE_DIR, PIBO_VSCODE_EXTENSION_ID, } from "./types.js";
|
|
11
|
-
function getCacheDir(options) {
|
|
12
|
-
if (options.cacheDir)
|
|
13
|
-
return options.cacheDir;
|
|
14
|
-
const base = options.env?.PIBO_HOME ?? join(homedir(), ".pibo");
|
|
15
|
-
return join(base, PIBO_VSCODE_CACHE_DIR, "cache");
|
|
16
|
-
}
|
|
17
|
-
function listCachedReleases(cacheDir, limit) {
|
|
18
|
-
if (!existsSync(cacheDir))
|
|
19
|
-
return [];
|
|
20
|
-
const entries = readdirSync(cacheDir, { withFileTypes: true })
|
|
21
|
-
.filter((entry) => entry.isDirectory() && entry.name !== "node_modules")
|
|
22
|
-
.map((entry) => ({ name: entry.name, mtimeMs: statSync(join(cacheDir, entry.name)).mtimeMs }))
|
|
23
|
-
.sort((a, b) => b.mtimeMs - a.mtimeMs)
|
|
24
|
-
.slice(0, limit)
|
|
25
|
-
.map((entry) => entry.name);
|
|
26
|
-
return entries;
|
|
27
|
-
}
|
|
28
|
-
export async function runStatus(options = {}) {
|
|
29
|
-
const owner = options.owner ?? DEFAULT_GITHUB_OWNER;
|
|
30
|
-
const repo = options.repo ?? DEFAULT_GITHUB_REPO;
|
|
31
|
-
const cacheDir = getCacheDir(options);
|
|
32
|
-
const limit = options.limit ?? 5;
|
|
33
|
-
const detected = detectCodeBinary({ env: options.env });
|
|
34
|
-
let installed = false;
|
|
35
|
-
let version;
|
|
36
|
-
if (detected) {
|
|
37
|
-
try {
|
|
38
|
-
const installedExtensions = await listInstalledExtensions({
|
|
39
|
-
binary: detected.path,
|
|
40
|
-
spawnImpl: options.spawnImpl,
|
|
41
|
-
env: options.env,
|
|
42
|
-
});
|
|
43
|
-
const ours = installedExtensions.find((entry) => entry.id === PIBO_VSCODE_EXTENSION_ID);
|
|
44
|
-
if (ours) {
|
|
45
|
-
installed = true;
|
|
46
|
-
version = ours.version;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// Listing failed; treat as not-installed for status purposes.
|
|
51
|
-
installed = false;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const cachedReleases = listCachedReleases(cacheDir, limit);
|
|
55
|
-
let availableReleases = [];
|
|
56
|
-
try {
|
|
57
|
-
const release = await fetchRelease({ owner, repo, fetchImpl: options.fetchImpl });
|
|
58
|
-
availableReleases = [release.tagName];
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
// Network failure is non-fatal for status.
|
|
62
|
-
}
|
|
63
|
-
return {
|
|
64
|
-
installed,
|
|
65
|
-
version,
|
|
66
|
-
codeBinary: detected?.path,
|
|
67
|
-
vsixCacheDir: cacheDir,
|
|
68
|
-
availableReleases,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
export function formatStatusText(status) {
|
|
72
|
-
const lines = [];
|
|
73
|
-
lines.push(`extension: ${status.installed ? `${PIBO_VSCODE_EXTENSION_ID}@${status.version ?? "?"}` : "not installed"}`);
|
|
74
|
-
lines.push(`code binary: ${status.codeBinary ?? "(not on PATH)"}`);
|
|
75
|
-
lines.push(`vsix cache: ${status.vsixCacheDir}`);
|
|
76
|
-
if (status.availableReleases.length > 0) {
|
|
77
|
-
lines.push(`latest release: ${status.availableReleases[0]}`);
|
|
78
|
-
}
|
|
79
|
-
return lines.join("\n");
|
|
80
|
-
}
|
package/dist/vscode/types.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types and constants for the `pibo vscode` sub-command.
|
|
3
|
-
*
|
|
4
|
-
* The pibo VS Code extension is a thin VS Code client that opens a WebView
|
|
5
|
-
* pointing at the gateway-served chat-vscode-web app. The extension itself
|
|
6
|
-
* ships as a `.vsix` artifact, published to the VS Code Marketplace and
|
|
7
|
-
* mirrored on GitHub Releases.
|
|
8
|
-
*/
|
|
9
|
-
export const PIBO_VSCODE_EXTENSION_PUBLISHER = "pibo";
|
|
10
|
-
export const PIBO_VSCODE_EXTENSION_NAME = "pibo-vscode-ext";
|
|
11
|
-
export const PIBO_VSCODE_EXTENSION_ID = `${PIBO_VSCODE_EXTENSION_PUBLISHER}.${PIBO_VSCODE_EXTENSION_NAME}`;
|
|
12
|
-
export const DEFAULT_GITHUB_OWNER = "Pascapone";
|
|
13
|
-
export const DEFAULT_GITHUB_REPO = "pibo";
|
|
14
|
-
export const PIBO_VSCODE_CACHE_DIR = "vscode";
|
package/dist/vscode/uninstall.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `pibo vscode uninstall` — remove the installed Pibo VS Code extension.
|
|
3
|
-
*/
|
|
4
|
-
import { detectCodeBinary, runCodeCommand } from "./code-cli.js";
|
|
5
|
-
import { PIBO_VSCODE_EXTENSION_ID } from "./types.js";
|
|
6
|
-
const DEFAULT_LOG = (message) => {
|
|
7
|
-
console.log(message);
|
|
8
|
-
};
|
|
9
|
-
const DEFAULT_ERROR = (message) => {
|
|
10
|
-
process.stderr.write(`${message}\n`);
|
|
11
|
-
};
|
|
12
|
-
export async function runUninstall(options = {}) {
|
|
13
|
-
const log = options.log ?? DEFAULT_LOG;
|
|
14
|
-
const errorLog = options.error ?? DEFAULT_ERROR;
|
|
15
|
-
const detected = detectCodeBinary({ env: options.env });
|
|
16
|
-
if (!detected) {
|
|
17
|
-
errorLog(`No VS Code CLI found on PATH.`);
|
|
18
|
-
return { status: "failed", reason: "no-code-cli" };
|
|
19
|
-
}
|
|
20
|
-
log(`Uninstalling ${PIBO_VSCODE_EXTENSION_ID} via ${detected.path}…`);
|
|
21
|
-
let result;
|
|
22
|
-
try {
|
|
23
|
-
result = await runCodeCommand({
|
|
24
|
-
binary: detected.path,
|
|
25
|
-
args: ["--uninstall-extension", PIBO_VSCODE_EXTENSION_ID],
|
|
26
|
-
spawnImpl: options.spawnImpl,
|
|
27
|
-
env: options.env,
|
|
28
|
-
timeoutMs: 60_000,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
catch (spawnError) {
|
|
32
|
-
const reason = spawnError instanceof Error ? spawnError.message : String(spawnError);
|
|
33
|
-
errorLog(`Failed to invoke ${detected.binary}: ${reason}`);
|
|
34
|
-
return { status: "failed", reason, codeBinary: detected.path };
|
|
35
|
-
}
|
|
36
|
-
if (result.exitCode !== 0) {
|
|
37
|
-
const stderr = result.stderr || result.stdout;
|
|
38
|
-
// VS Code returns a non-zero exit when the extension is not installed; treat that as "not-installed".
|
|
39
|
-
if (/not found|not installed|Cannot find extension/i.test(stderr)) {
|
|
40
|
-
log(`${PIBO_VSCODE_EXTENSION_ID} was not installed.`);
|
|
41
|
-
return { status: "not-installed", codeBinary: detected.path };
|
|
42
|
-
}
|
|
43
|
-
const reason = `code --uninstall-extension exited with code ${result.exitCode}: ${stderr}`;
|
|
44
|
-
errorLog(reason);
|
|
45
|
-
return { status: "failed", reason, codeBinary: detected.path };
|
|
46
|
-
}
|
|
47
|
-
log(`Uninstalled ${PIBO_VSCODE_EXTENSION_ID}`);
|
|
48
|
-
return { status: "uninstalled", codeBinary: detected.path };
|
|
49
|
-
}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GitHub Releases interaction for the Pibo VS Code extension.
|
|
3
|
-
*
|
|
4
|
-
* `pibo vscode install` defaults to fetching the latest VSIX asset from a
|
|
5
|
-
* GitHub Release. The fetch path is pure-functional so the install command
|
|
6
|
-
* can inject a mocked fetch and a mocked spawn in tests.
|
|
7
|
-
*/
|
|
8
|
-
export class VsixFetchError extends Error {
|
|
9
|
-
cause;
|
|
10
|
-
constructor(message, options) {
|
|
11
|
-
super(message);
|
|
12
|
-
this.name = "VsixFetchError";
|
|
13
|
-
if (options?.cause !== undefined)
|
|
14
|
-
this.cause = options.cause;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
const VSIX_ASSET_PATTERN = /\.vsix$/i;
|
|
18
|
-
export function isVsixAsset(asset) {
|
|
19
|
-
return VSIX_ASSET_PATTERN.test(asset.name);
|
|
20
|
-
}
|
|
21
|
-
export function findVsixAsset(release) {
|
|
22
|
-
return release.assets.find(isVsixAsset);
|
|
23
|
-
}
|
|
24
|
-
const GITHUB_API_ROOT = "https://api.github.com";
|
|
25
|
-
function buildReleaseUrl(owner, repo, tagName) {
|
|
26
|
-
const base = `${GITHUB_API_ROOT}/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/releases`;
|
|
27
|
-
if (tagName)
|
|
28
|
-
return `${base}/tags/${encodeURIComponent(tagName)}`;
|
|
29
|
-
return `${base}/latest`;
|
|
30
|
-
}
|
|
31
|
-
function parseRelease(payload) {
|
|
32
|
-
if (typeof payload !== "object" || payload === null) {
|
|
33
|
-
throw new VsixFetchError("GitHub Releases payload is not an object");
|
|
34
|
-
}
|
|
35
|
-
const record = payload;
|
|
36
|
-
const tagName = record.tag_name;
|
|
37
|
-
const name = record.name;
|
|
38
|
-
const publishedAt = record.published_at;
|
|
39
|
-
const htmlUrl = record.html_url;
|
|
40
|
-
const rawAssets = record.assets;
|
|
41
|
-
if (typeof tagName !== "string" || typeof name !== "string" || typeof publishedAt !== "string" || typeof htmlUrl !== "string") {
|
|
42
|
-
throw new VsixFetchError("GitHub Releases payload is missing required string fields");
|
|
43
|
-
}
|
|
44
|
-
if (!Array.isArray(rawAssets)) {
|
|
45
|
-
throw new VsixFetchError("GitHub Releases payload is missing assets array");
|
|
46
|
-
}
|
|
47
|
-
const assets = [];
|
|
48
|
-
for (const raw of rawAssets) {
|
|
49
|
-
if (typeof raw !== "object" || raw === null)
|
|
50
|
-
continue;
|
|
51
|
-
const r = raw;
|
|
52
|
-
if (typeof r.name === "string" &&
|
|
53
|
-
typeof r.browser_download_url === "string" &&
|
|
54
|
-
typeof r.size === "number" &&
|
|
55
|
-
typeof r.content_type === "string") {
|
|
56
|
-
assets.push({
|
|
57
|
-
name: r.name,
|
|
58
|
-
browserDownloadUrl: r.browser_download_url,
|
|
59
|
-
size: r.size,
|
|
60
|
-
contentType: r.content_type,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return { tagName, name, publishedAt, htmlUrl, assets };
|
|
65
|
-
}
|
|
66
|
-
export async function fetchRelease(options) {
|
|
67
|
-
const fetchImpl = options.fetchImpl ?? fetch;
|
|
68
|
-
const url = buildReleaseUrl(options.owner, options.repo, options.tagName);
|
|
69
|
-
let response;
|
|
70
|
-
try {
|
|
71
|
-
response = await fetchImpl(url, {
|
|
72
|
-
headers: { accept: "application/vnd.github+json", "user-agent": "pibo-cli" },
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
throw new VsixFetchError(`Failed to call GitHub Releases API at ${url}`, { cause: error });
|
|
77
|
-
}
|
|
78
|
-
if (response.status === 404) {
|
|
79
|
-
throw new VsixFetchError(options.tagName
|
|
80
|
-
? `GitHub release ${options.owner}/${options.repo}@${options.tagName} not found`
|
|
81
|
-
: `GitHub repository ${options.owner}/${options.repo} has no published releases`);
|
|
82
|
-
}
|
|
83
|
-
if (!response.ok) {
|
|
84
|
-
throw new VsixFetchError(`GitHub Releases API returned HTTP ${response.status}`);
|
|
85
|
-
}
|
|
86
|
-
let payload;
|
|
87
|
-
try {
|
|
88
|
-
payload = await response.json();
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
throw new VsixFetchError("GitHub Releases response was not valid JSON", { cause: error });
|
|
92
|
-
}
|
|
93
|
-
return parseRelease(payload);
|
|
94
|
-
}
|
|
95
|
-
export async function downloadVsixAsset(options) {
|
|
96
|
-
const fetchImpl = options.fetchImpl ?? fetch;
|
|
97
|
-
const maxBytes = options.maxBytes ?? 64 * 1024 * 1024; // 64 MiB
|
|
98
|
-
let response;
|
|
99
|
-
try {
|
|
100
|
-
response = await fetchImpl(options.url, { headers: { "user-agent": "pibo-cli" } });
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
throw new VsixFetchError(`Failed to download VSIX from ${options.url}`, { cause: error });
|
|
104
|
-
}
|
|
105
|
-
if (!response.ok) {
|
|
106
|
-
throw new VsixFetchError(`VSIX download returned HTTP ${response.status}`);
|
|
107
|
-
}
|
|
108
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
109
|
-
if (arrayBuffer.byteLength > maxBytes) {
|
|
110
|
-
throw new VsixFetchError(`VSIX download is ${arrayBuffer.byteLength} bytes, exceeding limit of ${maxBytes} bytes`);
|
|
111
|
-
}
|
|
112
|
-
return Buffer.from(arrayBuffer);
|
|
113
|
-
}
|
|
114
|
-
export async function fetchLatestVsix(options) {
|
|
115
|
-
const release = await fetchRelease({
|
|
116
|
-
owner: options.owner,
|
|
117
|
-
repo: options.repo,
|
|
118
|
-
tagName: options.tagName,
|
|
119
|
-
fetchImpl: options.fetchImpl,
|
|
120
|
-
});
|
|
121
|
-
const asset = findVsixAsset(release);
|
|
122
|
-
if (!asset) {
|
|
123
|
-
throw new VsixFetchError(`Release ${release.tagName} has no .vsix asset`);
|
|
124
|
-
}
|
|
125
|
-
const bytes = await downloadVsixAsset({
|
|
126
|
-
url: asset.browserDownloadUrl,
|
|
127
|
-
maxBytes: options.maxBytes,
|
|
128
|
-
fetchImpl: options.fetchImpl,
|
|
129
|
-
});
|
|
130
|
-
return { tagName: release.tagName, asset, bytes };
|
|
131
|
-
}
|
package/dist/web/auth.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { createUnauthenticatedError } from "../auth/types.js";
|
|
2
|
-
import { PIBO_APP_CONTEXT } from "../app-context.js";
|
|
3
|
-
export async function getWebAuthSession(context, request) {
|
|
4
|
-
return context.auth?.getSession(request.headers);
|
|
5
|
-
}
|
|
6
|
-
export async function requireWebSession(context, request) {
|
|
7
|
-
const authSession = await getWebAuthSession(context, request);
|
|
8
|
-
if (!authSession)
|
|
9
|
-
throw createUnauthenticatedError();
|
|
10
|
-
return {
|
|
11
|
-
authSession,
|
|
12
|
-
appContext: PIBO_APP_CONTEXT,
|
|
13
|
-
};
|
|
14
|
-
}
|
package/dist/web/channel.js
DELETED
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import { createServer } from "node:http";
|
|
2
|
-
import { PiboAuthError } from "../auth/types.js";
|
|
3
|
-
import { handleSimpleAgentApiRequest } from "../api/simple-agent-api.js";
|
|
4
|
-
import { requireWebSession } from "./auth.js";
|
|
5
|
-
import { PiboWebHttpError, nodeRequestToWebRequest, responseHtml, responseJson, sendWebResponse } from "./http.js";
|
|
6
|
-
export const DEFAULT_WEB_CHANNEL_HOST = "127.0.0.1";
|
|
7
|
-
export const DEFAULT_WEB_CHANNEL_PORT = 4788;
|
|
8
|
-
export const WEB_CHANNEL_NAME = "web-host";
|
|
9
|
-
/**
|
|
10
|
-
* Internal header that carries the TCP socket peer address from the web host
|
|
11
|
-
* channel to the auth plugin. This is one of three independent safety layers
|
|
12
|
-
* for the local auth service (see `docs/specs/capabilities/web-auth-and-same-origin-host.md`
|
|
13
|
-
* REQ-010). The header is added on the request side by the channel and MUST
|
|
14
|
-
* be stripped from any response by `sendWebResponse` so it never reaches the
|
|
15
|
-
* browser.
|
|
16
|
-
*/
|
|
17
|
-
export const SOCKET_PEER_HEADER = "x-pibo-socket-peer";
|
|
18
|
-
function redirect(location) {
|
|
19
|
-
return new Response(null, {
|
|
20
|
-
status: 302,
|
|
21
|
-
headers: { location },
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
function matchPrefix(pathname, prefix) {
|
|
25
|
-
return pathname === prefix || pathname.startsWith(`${prefix}/`);
|
|
26
|
-
}
|
|
27
|
-
function notFound() {
|
|
28
|
-
return responseJson({ error: "Not found" }, { status: 404 });
|
|
29
|
-
}
|
|
30
|
-
function createAppContext(channelContext) {
|
|
31
|
-
return {
|
|
32
|
-
channelContext,
|
|
33
|
-
requireSession(input) {
|
|
34
|
-
return requireWebSession(channelContext, input.request);
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function firstHeaderValue(value) {
|
|
39
|
-
const raw = Array.isArray(value) ? value[0] : value;
|
|
40
|
-
return raw?.split(",")[0]?.trim() || undefined;
|
|
41
|
-
}
|
|
42
|
-
function isLoopbackAddress(address) {
|
|
43
|
-
return address === "::1" || address === "127.0.0.1" || address?.startsWith("127.") === true || address?.startsWith("::ffff:127.") === true;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Return a new Request that includes the TCP socket peer address in the
|
|
47
|
-
* `x-pibo-socket-peer` header. The body is preserved via the request body
|
|
48
|
-
* stream consumed into a buffer because the original Request is not cloneable
|
|
49
|
-
* once the body has been read.
|
|
50
|
-
*/
|
|
51
|
-
function withSocketPeerHeader(request, peerAddress) {
|
|
52
|
-
const headers = new Headers(request.headers);
|
|
53
|
-
if (peerAddress)
|
|
54
|
-
headers.set(SOCKET_PEER_HEADER, peerAddress);
|
|
55
|
-
return new Request(request.url, {
|
|
56
|
-
method: request.method,
|
|
57
|
-
headers,
|
|
58
|
-
body: request.body,
|
|
59
|
-
duplex: "half",
|
|
60
|
-
redirect: request.redirect,
|
|
61
|
-
signal: request.signal,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Strip the internal socket peer header from a Response so it never reaches
|
|
66
|
-
* the browser. Auth plugins that accidentally echo the header will not leak
|
|
67
|
-
* the TCP peer information to the client.
|
|
68
|
-
*/
|
|
69
|
-
export function stripSocketPeerHeaderFromResponse(response) {
|
|
70
|
-
if (!response.headers.has(SOCKET_PEER_HEADER))
|
|
71
|
-
return response;
|
|
72
|
-
const headers = new Headers(response.headers);
|
|
73
|
-
headers.delete(SOCKET_PEER_HEADER);
|
|
74
|
-
return new Response(response.body, {
|
|
75
|
-
status: response.status,
|
|
76
|
-
statusText: response.statusText,
|
|
77
|
-
headers,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
function createRequestBaseURL(nodeRequest, host, port) {
|
|
81
|
-
if (isLoopbackAddress(nodeRequest.socket.remoteAddress)) {
|
|
82
|
-
const forwardedHost = firstHeaderValue(nodeRequest.headers["x-forwarded-host"]);
|
|
83
|
-
const forwardedProto = firstHeaderValue(nodeRequest.headers["x-forwarded-proto"]);
|
|
84
|
-
if (forwardedHost && (forwardedProto === "http" || forwardedProto === "https")) {
|
|
85
|
-
return `${forwardedProto}://${forwardedHost}`;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return `http://${nodeRequest.headers.host ?? `${host}:${port}`}`;
|
|
89
|
-
}
|
|
90
|
-
function isActiveRunStatus(status) {
|
|
91
|
-
return typeof status === "string" && ["queued", "starting", "running", "streaming", "waiting", "blocked", "retrying", "compacting", "pausing"].includes(status);
|
|
92
|
-
}
|
|
93
|
-
function isActiveRunSnapshotStatus(status) {
|
|
94
|
-
return typeof status === "string" && (status === "queued" || status === "running");
|
|
95
|
-
}
|
|
96
|
-
function gatewayMode(options) {
|
|
97
|
-
if (process.env.PIBO_FALLBACK_MODE === "1")
|
|
98
|
-
return "fallback";
|
|
99
|
-
return options.gatewayMode ?? "unknown";
|
|
100
|
-
}
|
|
101
|
-
function collectActiveRuns(channelContext) {
|
|
102
|
-
const directRuns = channelContext.listRuns?.({ includeConsumed: true, includeDetached: true });
|
|
103
|
-
if (directRuns)
|
|
104
|
-
return directRuns.filter((run) => isActiveRunSnapshotStatus(run.status));
|
|
105
|
-
const sessions = channelContext.listSessions?.() ?? [];
|
|
106
|
-
const runs = [];
|
|
107
|
-
const seen = new Set();
|
|
108
|
-
for (const session of sessions) {
|
|
109
|
-
const snapshot = channelContext.snapshotSignalTree?.(session.id);
|
|
110
|
-
const snapshotObject = snapshot && typeof snapshot === "object" ? snapshot : undefined;
|
|
111
|
-
const rawSessions = snapshotObject?.sessions;
|
|
112
|
-
const sessionSnapshots = Array.isArray(rawSessions) ? rawSessions : rawSessions && typeof rawSessions === "object" ? Object.values(rawSessions) : [];
|
|
113
|
-
for (const item of sessionSnapshots) {
|
|
114
|
-
if (!item || typeof item !== "object")
|
|
115
|
-
continue;
|
|
116
|
-
const activeRuns = item.activeRuns;
|
|
117
|
-
if (!Array.isArray(activeRuns))
|
|
118
|
-
continue;
|
|
119
|
-
for (const run of activeRuns) {
|
|
120
|
-
if (!run || typeof run !== "object")
|
|
121
|
-
continue;
|
|
122
|
-
const runId = String(run.runId ?? "");
|
|
123
|
-
const status = run.status;
|
|
124
|
-
if (!isActiveRunStatus(status))
|
|
125
|
-
continue;
|
|
126
|
-
const key = runId || JSON.stringify(run);
|
|
127
|
-
if (seen.has(key))
|
|
128
|
-
continue;
|
|
129
|
-
seen.add(key);
|
|
130
|
-
runs.push(run);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return runs;
|
|
135
|
-
}
|
|
136
|
-
function createGatewayRuntimeStatuses(channelContext) {
|
|
137
|
-
const statuses = channelContext.listSessionRuntimeStatuses?.() ?? [];
|
|
138
|
-
return statuses.map((status) => {
|
|
139
|
-
try {
|
|
140
|
-
const snapshot = channelContext.snapshotSignalSession?.(status.piboSessionId);
|
|
141
|
-
const activeTelemetry = snapshot?.sessions[status.piboSessionId]?.activeTelemetry;
|
|
142
|
-
return activeTelemetry ? { ...status, activeTelemetry } : status;
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
return status;
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
function createGatewayStatusResponse(channelContext, options) {
|
|
150
|
-
const mode = gatewayMode(options);
|
|
151
|
-
return responseJson({
|
|
152
|
-
status: "ok",
|
|
153
|
-
mode,
|
|
154
|
-
health: { status: "ok", mode },
|
|
155
|
-
runtimeStatuses: createGatewayRuntimeStatuses(channelContext),
|
|
156
|
-
activeRuns: collectActiveRuns(channelContext),
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
function createCanonicalRedirect(request, canonicalBaseURL) {
|
|
160
|
-
if (!canonicalBaseURL || (request.method !== "GET" && request.method !== "HEAD"))
|
|
161
|
-
return undefined;
|
|
162
|
-
const url = new URL(request.url);
|
|
163
|
-
const canonical = new URL(canonicalBaseURL);
|
|
164
|
-
if (url.origin === canonical.origin)
|
|
165
|
-
return undefined;
|
|
166
|
-
if (url.pathname !== "/" && !matchPrefix(url.pathname, "/apps") && !matchPrefix(url.pathname, "/api/auth")) {
|
|
167
|
-
return undefined;
|
|
168
|
-
}
|
|
169
|
-
return redirect(new URL(`${url.pathname}${url.search}`, canonical.origin).toString());
|
|
170
|
-
}
|
|
171
|
-
export function createWebHostChannel(options = {}) {
|
|
172
|
-
const host = options.host ?? DEFAULT_WEB_CHANNEL_HOST;
|
|
173
|
-
const port = options.port ?? DEFAULT_WEB_CHANNEL_PORT;
|
|
174
|
-
let server;
|
|
175
|
-
let context;
|
|
176
|
-
const requireContext = () => {
|
|
177
|
-
if (!context)
|
|
178
|
-
throw new Error("Web channel is not started");
|
|
179
|
-
return context;
|
|
180
|
-
};
|
|
181
|
-
const handleAuthRequest = async (request) => {
|
|
182
|
-
const auth = requireContext().auth;
|
|
183
|
-
if (!auth?.handleRequest) {
|
|
184
|
-
return responseJson({ error: "Auth service does not expose HTTP routes" }, { status: 500 });
|
|
185
|
-
}
|
|
186
|
-
return auth.handleRequest(request);
|
|
187
|
-
};
|
|
188
|
-
const handleRequest = async (nodeRequest, nodeResponse) => {
|
|
189
|
-
try {
|
|
190
|
-
const baseURL = createRequestBaseURL(nodeRequest, host, port);
|
|
191
|
-
const baseRequest = await nodeRequestToWebRequest(nodeRequest, baseURL);
|
|
192
|
-
// Inject the TCP socket peer into every request so the local auth
|
|
193
|
-
// plugin can apply the same loopback predicate from `getSession`
|
|
194
|
-
// regardless of whether the call came from a browser cookie, the
|
|
195
|
-
// VS Code extension, or a CLI script. The header is stripped from
|
|
196
|
-
// any outgoing response by `stripSocketPeerHeaderFromResponse`.
|
|
197
|
-
const request = withSocketPeerHeader(baseRequest, nodeRequest.socket.remoteAddress);
|
|
198
|
-
const url = new URL(request.url);
|
|
199
|
-
const canonicalRedirect = createCanonicalRedirect(request, options.canonicalBaseURL);
|
|
200
|
-
if (canonicalRedirect) {
|
|
201
|
-
await sendWebResponse(nodeResponse, canonicalRedirect);
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
if (url.pathname === "/health") {
|
|
205
|
-
await sendWebResponse(nodeResponse, responseJson({
|
|
206
|
-
status: "ok",
|
|
207
|
-
mode: process.env.PIBO_FALLBACK_MODE === "1" ? "fallback" : "main",
|
|
208
|
-
}));
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
if (url.pathname === "/gateway/status") {
|
|
212
|
-
await sendWebResponse(nodeResponse, createGatewayStatusResponse(requireContext(), options));
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
if (url.pathname.startsWith("/api/auth/")) {
|
|
216
|
-
const authResponse = stripSocketPeerHeaderFromResponse(await handleAuthRequest(request));
|
|
217
|
-
await sendWebResponse(nodeResponse, authResponse);
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
const ctx = requireContext();
|
|
221
|
-
const simpleApiResponse = await handleSimpleAgentApiRequest(request, ctx);
|
|
222
|
-
if (simpleApiResponse) {
|
|
223
|
-
await sendWebResponse(nodeResponse, simpleApiResponse);
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
const apps = ctx.getWebApps();
|
|
227
|
-
const app = apps.find((candidate) => matchPrefix(url.pathname, candidate.mountPath) || matchPrefix(url.pathname, candidate.apiPrefix));
|
|
228
|
-
if (app) {
|
|
229
|
-
const response = await app.handleRequest(request, createAppContext(ctx));
|
|
230
|
-
await sendWebResponse(nodeResponse, response ?? notFound());
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
if (url.pathname === "/" && apps[0]) {
|
|
234
|
-
await sendWebResponse(nodeResponse, redirect(apps[0].mountPath));
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
if (url.pathname === "/") {
|
|
238
|
-
await sendWebResponse(nodeResponse, responseHtml("<!doctype html><title>Pibo</title><p>No web apps registered.</p>"));
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
await sendWebResponse(nodeResponse, notFound());
|
|
242
|
-
}
|
|
243
|
-
catch (error) {
|
|
244
|
-
const status = error instanceof PiboAuthError || error instanceof PiboWebHttpError ? error.statusCode : 500;
|
|
245
|
-
await sendWebResponse(nodeResponse, responseJson({ error: error instanceof Error ? error.message : String(error) }, { status }));
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
return {
|
|
249
|
-
name: WEB_CHANNEL_NAME,
|
|
250
|
-
kind: "web",
|
|
251
|
-
description: "Same-origin HTTP host for pibo web apps and auth routes.",
|
|
252
|
-
auth: { mode: "required" },
|
|
253
|
-
async start(channelContext) {
|
|
254
|
-
if (server)
|
|
255
|
-
return;
|
|
256
|
-
context = channelContext;
|
|
257
|
-
server = createServer((request, response) => {
|
|
258
|
-
void handleRequest(request, response);
|
|
259
|
-
});
|
|
260
|
-
await new Promise((resolve, reject) => {
|
|
261
|
-
server.once("error", reject);
|
|
262
|
-
server.listen(port, host, () => {
|
|
263
|
-
server.off("error", reject);
|
|
264
|
-
resolve();
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
const address = this.getAddress();
|
|
268
|
-
if (address && options.announce !== false) {
|
|
269
|
-
console.error(`pibo web host listening on http://${address.host}:${address.port}`);
|
|
270
|
-
}
|
|
271
|
-
},
|
|
272
|
-
async stop() {
|
|
273
|
-
context = undefined;
|
|
274
|
-
if (server) {
|
|
275
|
-
await new Promise((resolve, reject) => {
|
|
276
|
-
server.close((error) => (error ? reject(error) : resolve()));
|
|
277
|
-
});
|
|
278
|
-
server = undefined;
|
|
279
|
-
}
|
|
280
|
-
},
|
|
281
|
-
getAddress() {
|
|
282
|
-
const address = server?.address();
|
|
283
|
-
if (!address || typeof address === "string")
|
|
284
|
-
return undefined;
|
|
285
|
-
return { host: address.address, port: address.port };
|
|
286
|
-
},
|
|
287
|
-
};
|
|
288
|
-
}
|