@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/tools/cdp-client.js
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_CDP_URL = "http://127.0.0.1:56663";
|
|
2
|
-
export const DEFAULT_CDP_TIMEOUT_MS = 2_500;
|
|
3
|
-
export class CdpClient {
|
|
4
|
-
webSocketUrl;
|
|
5
|
-
nextId = 0;
|
|
6
|
-
pending = new Map();
|
|
7
|
-
socket;
|
|
8
|
-
constructor(webSocketUrl) {
|
|
9
|
-
this.webSocketUrl = webSocketUrl;
|
|
10
|
-
}
|
|
11
|
-
connect(timeoutMs = 3_000) {
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
const socket = new WebSocket(this.webSocketUrl);
|
|
14
|
-
this.socket = socket;
|
|
15
|
-
let settled = false;
|
|
16
|
-
const timer = setTimeout(() => fail(new Error("Timed out connecting to CDP target")), timeoutMs);
|
|
17
|
-
const settle = () => {
|
|
18
|
-
if (settled)
|
|
19
|
-
return false;
|
|
20
|
-
settled = true;
|
|
21
|
-
clearTimeout(timer);
|
|
22
|
-
return true;
|
|
23
|
-
};
|
|
24
|
-
const succeed = () => {
|
|
25
|
-
if (settle())
|
|
26
|
-
resolve();
|
|
27
|
-
};
|
|
28
|
-
const fail = (error) => {
|
|
29
|
-
if (settle())
|
|
30
|
-
reject(error);
|
|
31
|
-
};
|
|
32
|
-
socket.addEventListener("open", succeed);
|
|
33
|
-
socket.addEventListener("message", (event) => this.handleMessage(String(event.data)));
|
|
34
|
-
socket.addEventListener("error", () => fail(new Error(`CDP WebSocket error connecting to ${this.webSocketUrl}`)));
|
|
35
|
-
socket.addEventListener("close", () => {
|
|
36
|
-
for (const [id, pending] of this.pending) {
|
|
37
|
-
clearTimeout(pending.timer);
|
|
38
|
-
pending.reject(new Error("CDP target closed"));
|
|
39
|
-
this.pending.delete(id);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
send(method, params, timeoutMs = 10_000) {
|
|
45
|
-
if (!this.socket || this.socket.readyState !== WebSocket.OPEN)
|
|
46
|
-
throw new Error("CDP target is not connected");
|
|
47
|
-
const id = ++this.nextId;
|
|
48
|
-
const payload = params ? { id, method, params } : { id, method };
|
|
49
|
-
const promise = new Promise((resolve, reject) => {
|
|
50
|
-
const timer = setTimeout(() => {
|
|
51
|
-
this.pending.delete(id);
|
|
52
|
-
reject(new Error(`Timed out waiting for CDP method ${method}`));
|
|
53
|
-
}, timeoutMs);
|
|
54
|
-
this.pending.set(id, { resolve, reject, timer });
|
|
55
|
-
});
|
|
56
|
-
this.socket.send(JSON.stringify(payload));
|
|
57
|
-
return promise;
|
|
58
|
-
}
|
|
59
|
-
async evaluate(expression, timeoutMs = 10_000) {
|
|
60
|
-
const response = await this.send("Runtime.evaluate", {
|
|
61
|
-
expression,
|
|
62
|
-
awaitPromise: true,
|
|
63
|
-
returnByValue: true,
|
|
64
|
-
userGesture: true,
|
|
65
|
-
}, timeoutMs);
|
|
66
|
-
if (response.exceptionDetails)
|
|
67
|
-
throw new Error(`Browser evaluation failed: ${JSON.stringify(response.exceptionDetails)}`);
|
|
68
|
-
return response.result?.value;
|
|
69
|
-
}
|
|
70
|
-
close() {
|
|
71
|
-
try {
|
|
72
|
-
this.socket?.close();
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
// ignore close races
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
handleMessage(raw) {
|
|
79
|
-
let message;
|
|
80
|
-
try {
|
|
81
|
-
message = JSON.parse(raw);
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (typeof message.id !== "number")
|
|
87
|
-
return;
|
|
88
|
-
const pending = this.pending.get(message.id);
|
|
89
|
-
if (!pending)
|
|
90
|
-
return;
|
|
91
|
-
clearTimeout(pending.timer);
|
|
92
|
-
this.pending.delete(message.id);
|
|
93
|
-
if (message.error) {
|
|
94
|
-
pending.reject(new Error(message.error.message ?? JSON.stringify(message.error)));
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
pending.resolve(message.result);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
export function normalizeCdpUrlSync(value) {
|
|
101
|
-
return value.replace(/\/+$/, "");
|
|
102
|
-
}
|
|
103
|
-
export async function fetchWithTimeout(url, timeoutMs, init = {}) {
|
|
104
|
-
const controller = new AbortController();
|
|
105
|
-
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
106
|
-
try {
|
|
107
|
-
return await fetch(url, { ...init, signal: controller.signal });
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
111
|
-
throw new Error(`Failed to fetch ${url}: ${reason}`);
|
|
112
|
-
}
|
|
113
|
-
finally {
|
|
114
|
-
clearTimeout(timeout);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
export async function listCdpTargets(options = {}) {
|
|
118
|
-
const cdpUrl = normalizeCdpUrlSync(options.cdpUrl ?? DEFAULT_CDP_URL);
|
|
119
|
-
try {
|
|
120
|
-
const response = await fetchWithTimeout(`${cdpUrl}/json/list`, options.timeoutMs ?? DEFAULT_CDP_TIMEOUT_MS);
|
|
121
|
-
if (!response.ok) {
|
|
122
|
-
throw new Error(`Chrome target discovery responded with HTTP ${response.status} ${response.statusText}`);
|
|
123
|
-
}
|
|
124
|
-
const payload = await response.json();
|
|
125
|
-
if (!Array.isArray(payload))
|
|
126
|
-
throw new Error("Chrome target discovery returned invalid JSON");
|
|
127
|
-
return payload.map(normalizeCdpTarget);
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
if (error instanceof Error && error.message.startsWith("Failed to fetch")) {
|
|
131
|
-
throw new Error(`CDP endpoint ${cdpUrl} is unreachable. Is Chrome running with remote debugging? (${error.message})`);
|
|
132
|
-
}
|
|
133
|
-
throw error;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
export async function openCdpTarget(url, options = {}) {
|
|
137
|
-
const cdpUrl = normalizeCdpUrlSync(options.cdpUrl ?? DEFAULT_CDP_URL);
|
|
138
|
-
const timeoutMs = options.timeoutMs ?? DEFAULT_CDP_TIMEOUT_MS;
|
|
139
|
-
const endpoint = `${cdpUrl}/json/new?${encodeURIComponent(url)}`;
|
|
140
|
-
try {
|
|
141
|
-
let response = await fetchWithTimeout(endpoint, timeoutMs, { method: "PUT" });
|
|
142
|
-
if (response.status === 404 || response.status === 405) {
|
|
143
|
-
response = await fetchWithTimeout(endpoint, timeoutMs);
|
|
144
|
-
}
|
|
145
|
-
if (!response.ok)
|
|
146
|
-
throw new Error(`Chrome target creation responded with HTTP ${response.status} ${response.statusText}`);
|
|
147
|
-
const payload = await response.json();
|
|
148
|
-
return normalizeCdpTarget(payload);
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
if (error instanceof Error && error.message.startsWith("Failed to fetch")) {
|
|
152
|
-
throw new Error(`CDP endpoint ${cdpUrl} is unreachable. Is Chrome running with remote debugging? (${error.message})`);
|
|
153
|
-
}
|
|
154
|
-
throw error;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
export function findCdpTarget(targets, targetIdOrUrl) {
|
|
158
|
-
return targets.find((target) => target.id === targetIdOrUrl || target.url === targetIdOrUrl || target.title === targetIdOrUrl || target.webSocketDebuggerUrl === targetIdOrUrl);
|
|
159
|
-
}
|
|
160
|
-
export async function connectCdpTarget(target, timeoutMs = 3_000) {
|
|
161
|
-
if (!target.webSocketDebuggerUrl)
|
|
162
|
-
throw new Error(`CDP target ${target.id || target.url} is not attachable (no webSocketDebuggerUrl)`);
|
|
163
|
-
const client = new CdpClient(target.webSocketDebuggerUrl);
|
|
164
|
-
try {
|
|
165
|
-
await client.connect(timeoutMs);
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
169
|
-
throw new Error(`Failed to connect to CDP target ${target.id || target.url}: ${reason}`);
|
|
170
|
-
}
|
|
171
|
-
return client;
|
|
172
|
-
}
|
|
173
|
-
function normalizeCdpTarget(target) {
|
|
174
|
-
const record = target && typeof target === "object" && !Array.isArray(target) ? target : {};
|
|
175
|
-
return {
|
|
176
|
-
id: stringValue(record.id),
|
|
177
|
-
type: stringValue(record.type),
|
|
178
|
-
title: stringValue(record.title),
|
|
179
|
-
url: stringValue(record.url),
|
|
180
|
-
webSocketDebuggerUrl: optionalStringValue(record.webSocketDebuggerUrl),
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
function stringValue(value) {
|
|
184
|
-
return typeof value === "string" ? value : "";
|
|
185
|
-
}
|
|
186
|
-
function optionalStringValue(value) {
|
|
187
|
-
const text = stringValue(value);
|
|
188
|
-
return text || undefined;
|
|
189
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
|
-
import { extname, isAbsolute, resolve } from "node:path";
|
|
4
|
-
import { StringEnum, Type } from "@earendil-works/pi-ai";
|
|
5
|
-
import { defineTool } from "@earendil-works/pi-coding-agent";
|
|
6
|
-
function resolveCwd(baseCwd, workdir) {
|
|
7
|
-
if (!workdir || workdir.trim().length === 0)
|
|
8
|
-
return baseCwd;
|
|
9
|
-
return isAbsolute(workdir) ? workdir : resolve(baseCwd, workdir);
|
|
10
|
-
}
|
|
11
|
-
function mimeTypeForPath(path) {
|
|
12
|
-
switch (extname(path).toLowerCase()) {
|
|
13
|
-
case ".jpg":
|
|
14
|
-
case ".jpeg":
|
|
15
|
-
return "image/jpeg";
|
|
16
|
-
case ".webp":
|
|
17
|
-
return "image/webp";
|
|
18
|
-
case ".gif":
|
|
19
|
-
return "image/gif";
|
|
20
|
-
default:
|
|
21
|
-
return "image/png";
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export function createCodexCompatToolDefinitions() {
|
|
25
|
-
const applyPatch = defineTool({
|
|
26
|
-
name: "apply_patch",
|
|
27
|
-
label: "Apply Patch",
|
|
28
|
-
description: "Applies a Codex-style patch to files in the workspace.",
|
|
29
|
-
promptSnippet: "Use apply_patch for manual file edits by passing the complete patch text.",
|
|
30
|
-
executionMode: "sequential",
|
|
31
|
-
parameters: Type.Object({
|
|
32
|
-
patch: Type.String({ description: "Patch text starting with *** Begin Patch and ending with *** End Patch." }),
|
|
33
|
-
workdir: Type.Optional(Type.String({ description: "Working directory. Defaults to the runtime cwd." })),
|
|
34
|
-
}),
|
|
35
|
-
async execute(_toolCallId, params, signal, _onUpdate, ctx) {
|
|
36
|
-
const cwd = resolveCwd(ctx.cwd, params.workdir);
|
|
37
|
-
const result = await new Promise((resolveApply, reject) => {
|
|
38
|
-
const child = spawn("apply_patch", [], { cwd, env: process.env, stdio: "pipe" });
|
|
39
|
-
let output = "";
|
|
40
|
-
const abort = () => child.kill("SIGTERM");
|
|
41
|
-
signal?.addEventListener("abort", abort, { once: true });
|
|
42
|
-
child.stdout.on("data", (chunk) => {
|
|
43
|
-
output += String(chunk);
|
|
44
|
-
});
|
|
45
|
-
child.stderr.on("data", (chunk) => {
|
|
46
|
-
output += String(chunk);
|
|
47
|
-
});
|
|
48
|
-
child.once("error", reject);
|
|
49
|
-
child.once("close", (exitCode) => {
|
|
50
|
-
signal?.removeEventListener("abort", abort);
|
|
51
|
-
resolveApply({ exitCode, output });
|
|
52
|
-
});
|
|
53
|
-
child.stdin.end(params.patch);
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
content: [{ type: "text", text: result.output }],
|
|
57
|
-
details: { exitCode: result.exitCode, cwd },
|
|
58
|
-
isError: result.exitCode !== 0,
|
|
59
|
-
};
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
const viewImage = defineTool({
|
|
63
|
-
name: "view_image",
|
|
64
|
-
label: "View Image",
|
|
65
|
-
description: "Reads a local image file and returns it as an inline image result.",
|
|
66
|
-
promptSnippet: "Use view_image to inspect a local image path when visual details matter.",
|
|
67
|
-
executionMode: "parallel",
|
|
68
|
-
parameters: Type.Object({
|
|
69
|
-
path: Type.String({ description: "Local filesystem path to an image file." }),
|
|
70
|
-
detail: Type.Optional(StringEnum(["original"], { description: "Use original resolution when set." })),
|
|
71
|
-
}),
|
|
72
|
-
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
73
|
-
const path = resolveCwd(ctx.cwd, params.path);
|
|
74
|
-
const data = await readFile(path);
|
|
75
|
-
return {
|
|
76
|
-
content: [{ type: "image", data: data.toString("base64"), mimeType: mimeTypeForPath(path) }],
|
|
77
|
-
details: { path, detail: params.detail },
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
return [
|
|
82
|
-
applyPatch,
|
|
83
|
-
viewImage,
|
|
84
|
-
];
|
|
85
|
-
}
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
-
import { platform, release, arch } from "node:os";
|
|
3
|
-
import { dirname, extname, isAbsolute, join, resolve } from "node:path";
|
|
4
|
-
import { AuthStorage } from "@earendil-works/pi-coding-agent";
|
|
5
|
-
import { Type } from "@earendil-works/pi-ai";
|
|
6
|
-
import { defineTool } from "@earendil-works/pi-coding-agent";
|
|
7
|
-
import { getPiboHome } from "../core/pibo-home.js";
|
|
8
|
-
const OPENAI_CODEX_PROVIDER = "openai-codex";
|
|
9
|
-
const DEFAULT_CODEX_BACKEND_BASE_URL = "https://chatgpt.com/backend-api";
|
|
10
|
-
const CODEX_IMAGE_MODEL = "gpt-image-2";
|
|
11
|
-
const MAX_EDIT_IMAGES = 5;
|
|
12
|
-
const OPENAI_JWT_CLAIM_PATH = "https://api.openai.com/auth";
|
|
13
|
-
function trimTrailingSlashes(value) {
|
|
14
|
-
return value.replace(/\/+$/, "");
|
|
15
|
-
}
|
|
16
|
-
export function resolveCodexImageUrl(operation, baseUrl) {
|
|
17
|
-
const raw = baseUrl && baseUrl.trim().length > 0 ? baseUrl : DEFAULT_CODEX_BACKEND_BASE_URL;
|
|
18
|
-
let normalized = trimTrailingSlashes(raw.trim());
|
|
19
|
-
if (normalized.endsWith("/codex/responses"))
|
|
20
|
-
normalized = normalized.slice(0, -"/responses".length);
|
|
21
|
-
if (!normalized.endsWith("/codex"))
|
|
22
|
-
normalized = `${normalized}/codex`;
|
|
23
|
-
return `${normalized}/images/${operation}`;
|
|
24
|
-
}
|
|
25
|
-
function decodeJwtPayload(token) {
|
|
26
|
-
try {
|
|
27
|
-
const payload = token.split(".")[1];
|
|
28
|
-
if (!payload)
|
|
29
|
-
return undefined;
|
|
30
|
-
const normalized = payload.replace(/-/g, "+").replace(/_/g, "/");
|
|
31
|
-
const padded = normalized.padEnd(Math.ceil(normalized.length / 4) * 4, "=");
|
|
32
|
-
const parsed = JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
|
|
33
|
-
return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : undefined;
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function getOpenAiAccountId(accessToken, storedAccountId) {
|
|
40
|
-
if (typeof storedAccountId === "string" && storedAccountId.trim().length > 0)
|
|
41
|
-
return storedAccountId;
|
|
42
|
-
const payload = decodeJwtPayload(accessToken);
|
|
43
|
-
const auth = payload?.[OPENAI_JWT_CLAIM_PATH];
|
|
44
|
-
if (!auth || typeof auth !== "object" || Array.isArray(auth))
|
|
45
|
-
return undefined;
|
|
46
|
-
const accountId = auth.chatgpt_account_id;
|
|
47
|
-
return typeof accountId === "string" && accountId.trim().length > 0 ? accountId : undefined;
|
|
48
|
-
}
|
|
49
|
-
async function getCodexImageAuth() {
|
|
50
|
-
const authStorage = AuthStorage.create();
|
|
51
|
-
const credential = authStorage.get(OPENAI_CODEX_PROVIDER);
|
|
52
|
-
if (credential?.type !== "oauth") {
|
|
53
|
-
throw new Error("codex_image_generation requires ChatGPT/Codex OAuth login for provider openai-codex. Use the existing OpenAI Codex login flow; API keys are not supported for this tool.");
|
|
54
|
-
}
|
|
55
|
-
const accessToken = await authStorage.getApiKey(OPENAI_CODEX_PROVIDER, { includeFallback: false });
|
|
56
|
-
if (!accessToken) {
|
|
57
|
-
throw new Error("codex_image_generation could not load a ChatGPT/Codex OAuth access token for provider openai-codex. Please log in again with the OpenAI Codex login flow.");
|
|
58
|
-
}
|
|
59
|
-
const accountId = getOpenAiAccountId(accessToken, credential.accountId);
|
|
60
|
-
if (!accountId) {
|
|
61
|
-
throw new Error("codex_image_generation could not resolve the ChatGPT account id from the openai-codex OAuth credential. Please log in again with the OpenAI Codex login flow.");
|
|
62
|
-
}
|
|
63
|
-
return { accessToken, accountId };
|
|
64
|
-
}
|
|
65
|
-
function mimeTypeForPath(path) {
|
|
66
|
-
switch (extname(path).toLowerCase()) {
|
|
67
|
-
case ".jpg":
|
|
68
|
-
case ".jpeg":
|
|
69
|
-
return "image/jpeg";
|
|
70
|
-
case ".webp":
|
|
71
|
-
return "image/webp";
|
|
72
|
-
case ".gif":
|
|
73
|
-
return "image/gif";
|
|
74
|
-
default:
|
|
75
|
-
return "image/png";
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function resolveCwd(baseCwd, path) {
|
|
79
|
-
return isAbsolute(path) ? path : resolve(baseCwd, path);
|
|
80
|
-
}
|
|
81
|
-
function isImageContent(value) {
|
|
82
|
-
return Boolean(value)
|
|
83
|
-
&& typeof value === "object"
|
|
84
|
-
&& value.type === "image"
|
|
85
|
-
&& typeof value.data === "string"
|
|
86
|
-
&& typeof value.mimeType === "string";
|
|
87
|
-
}
|
|
88
|
-
function imageContentToDataUrl(image) {
|
|
89
|
-
if (image.data.startsWith("data:"))
|
|
90
|
-
return image.data;
|
|
91
|
-
return `data:${image.mimeType};base64,${image.data}`;
|
|
92
|
-
}
|
|
93
|
-
async function imageFileToDataUrl(cwd, path) {
|
|
94
|
-
const resolved = resolveCwd(cwd, path);
|
|
95
|
-
const data = await readFile(resolved);
|
|
96
|
-
return `data:${mimeTypeForPath(resolved)};base64,${data.toString("base64")}`;
|
|
97
|
-
}
|
|
98
|
-
function contentFromSessionEntry(entry) {
|
|
99
|
-
if (!entry || typeof entry !== "object")
|
|
100
|
-
return undefined;
|
|
101
|
-
const record = entry;
|
|
102
|
-
if (record.type === "message") {
|
|
103
|
-
const message = record.message;
|
|
104
|
-
return message && typeof message === "object" ? message.content : undefined;
|
|
105
|
-
}
|
|
106
|
-
if (record.type === "custom_message")
|
|
107
|
-
return record.content;
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
110
|
-
function recentImagesFromSessionEntries(entries, count) {
|
|
111
|
-
const images = [];
|
|
112
|
-
for (const entry of [...entries].reverse()) {
|
|
113
|
-
const content = contentFromSessionEntry(entry);
|
|
114
|
-
if (!Array.isArray(content))
|
|
115
|
-
continue;
|
|
116
|
-
for (const item of [...content].reverse()) {
|
|
117
|
-
if (!isImageContent(item))
|
|
118
|
-
continue;
|
|
119
|
-
images.push(imageContentToDataUrl(item));
|
|
120
|
-
if (images.length === count)
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
if (images.length === count)
|
|
124
|
-
break;
|
|
125
|
-
}
|
|
126
|
-
images.reverse();
|
|
127
|
-
return images.map((image_url) => ({ image_url }));
|
|
128
|
-
}
|
|
129
|
-
function validateImageArgs(params) {
|
|
130
|
-
if (params.prompt.trim().length === 0)
|
|
131
|
-
throw new Error("`prompt` must not be empty.");
|
|
132
|
-
const pathCount = params.referenced_image_paths?.length ?? 0;
|
|
133
|
-
if (pathCount > MAX_EDIT_IMAGES)
|
|
134
|
-
throw new Error(`\`referenced_image_paths\` must contain at most ${MAX_EDIT_IMAGES} paths.`);
|
|
135
|
-
if (pathCount > 0 && params.num_last_images_to_include !== undefined) {
|
|
136
|
-
throw new Error("Provide only one of `referenced_image_paths` or `num_last_images_to_include`.");
|
|
137
|
-
}
|
|
138
|
-
if (params.num_last_images_to_include !== undefined) {
|
|
139
|
-
if (!Number.isInteger(params.num_last_images_to_include) || params.num_last_images_to_include < 1 || params.num_last_images_to_include > MAX_EDIT_IMAGES) {
|
|
140
|
-
throw new Error(`\`num_last_images_to_include\` must be an integer between 1 and ${MAX_EDIT_IMAGES}.`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
function sanitizePathPart(value) {
|
|
145
|
-
return value.replace(/[^a-zA-Z0-9._-]+/g, "_").replace(/^_+|_+$/g, "").slice(0, 120) || "unknown";
|
|
146
|
-
}
|
|
147
|
-
function artifactPath(sessionId, toolCallId) {
|
|
148
|
-
const safeSessionId = sanitizePathPart(sessionId?.trim() || "local");
|
|
149
|
-
const safeToolCallId = sanitizePathPart(toolCallId || `image_${Date.now()}`);
|
|
150
|
-
const artifactId = `${safeSessionId}/${safeToolCallId}.png`;
|
|
151
|
-
return {
|
|
152
|
-
artifactId,
|
|
153
|
-
savedPath: join(getPiboHome(), "generated_images", safeSessionId, `${safeToolCallId}.png`),
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
async function saveGeneratedImage(sessionId, toolCallId, b64Json) {
|
|
157
|
-
const target = artifactPath(sessionId, toolCallId);
|
|
158
|
-
await mkdir(dirname(target.savedPath), { recursive: true });
|
|
159
|
-
await writeFile(target.savedPath, Buffer.from(b64Json.trim(), "base64"));
|
|
160
|
-
return target;
|
|
161
|
-
}
|
|
162
|
-
function truncateErrorBody(text) {
|
|
163
|
-
const compact = text.replace(/\s+/g, " ").trim();
|
|
164
|
-
return compact.length > 1000 ? `${compact.slice(0, 1000)}…` : compact;
|
|
165
|
-
}
|
|
166
|
-
async function postCodexImageRequest(operation, body, auth, signal, baseUrl) {
|
|
167
|
-
const url = resolveCodexImageUrl(operation, baseUrl);
|
|
168
|
-
const response = await fetch(url, {
|
|
169
|
-
method: "POST",
|
|
170
|
-
signal,
|
|
171
|
-
headers: {
|
|
172
|
-
Authorization: `Bearer ${auth.accessToken}`,
|
|
173
|
-
"chatgpt-account-id": auth.accountId,
|
|
174
|
-
originator: "pi",
|
|
175
|
-
"User-Agent": `pibo (${platform()} ${release()}; ${arch()})`,
|
|
176
|
-
Accept: "application/json",
|
|
177
|
-
"Content-Type": "application/json",
|
|
178
|
-
},
|
|
179
|
-
body: JSON.stringify(body),
|
|
180
|
-
});
|
|
181
|
-
if (!response.ok) {
|
|
182
|
-
const text = await response.text().catch(() => "");
|
|
183
|
-
throw new Error(`Codex image ${operation} request failed: ${response.status}${text ? ` ${truncateErrorBody(text)}` : ""}`);
|
|
184
|
-
}
|
|
185
|
-
return await response.json();
|
|
186
|
-
}
|
|
187
|
-
function firstImageB64(response) {
|
|
188
|
-
const b64 = response.data?.[0]?.b64_json;
|
|
189
|
-
if (!b64 || typeof b64 !== "string")
|
|
190
|
-
throw new Error("Codex image generation returned no image data.");
|
|
191
|
-
return b64;
|
|
192
|
-
}
|
|
193
|
-
function createRequest(prompt, images) {
|
|
194
|
-
return {
|
|
195
|
-
...(images && images.length > 0 ? { images } : {}),
|
|
196
|
-
prompt,
|
|
197
|
-
background: "auto",
|
|
198
|
-
model: CODEX_IMAGE_MODEL,
|
|
199
|
-
quality: "auto",
|
|
200
|
-
size: "auto",
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
async function collectEditImages(params, cwd, sessionEntries) {
|
|
204
|
-
const paths = params.referenced_image_paths ?? [];
|
|
205
|
-
if (paths.length > 0) {
|
|
206
|
-
return await Promise.all(paths.map(async (path) => ({ image_url: await imageFileToDataUrl(cwd, path) })));
|
|
207
|
-
}
|
|
208
|
-
if (params.num_last_images_to_include !== undefined) {
|
|
209
|
-
const images = recentImagesFromSessionEntries(sessionEntries, params.num_last_images_to_include);
|
|
210
|
-
if (images.length !== params.num_last_images_to_include) {
|
|
211
|
-
throw new Error(`Requested the last ${params.num_last_images_to_include} conversation images, but only ${images.length} were available.`);
|
|
212
|
-
}
|
|
213
|
-
return images;
|
|
214
|
-
}
|
|
215
|
-
return [];
|
|
216
|
-
}
|
|
217
|
-
export function createCodexImageGenerationToolDefinition(context = {}, options = {}) {
|
|
218
|
-
return defineTool({
|
|
219
|
-
name: "codex_image_generation",
|
|
220
|
-
label: "Codex Image Generation",
|
|
221
|
-
description: "Generates or edits images through the ChatGPT/Codex backend API using openai-codex OAuth entitlement. Does not use the public OpenAI Images API.",
|
|
222
|
-
promptSnippet: "Use codex_image_generation to create an image from a prompt, or to edit referenced/recent images with the Codex/ChatGPT image backend.",
|
|
223
|
-
promptGuidelines: [
|
|
224
|
-
"Use codex_image_generation for image generation and image edits when the user asks for pictures, visual variants, or edits to existing images.",
|
|
225
|
-
"For edits, pass either referenced_image_paths for local image files or num_last_images_to_include for recent conversation images, but not both.",
|
|
226
|
-
],
|
|
227
|
-
executionMode: "sequential",
|
|
228
|
-
parameters: Type.Object({
|
|
229
|
-
prompt: Type.String({ description: "Image generation/editing prompt. Be specific about the desired final image." }),
|
|
230
|
-
referenced_image_paths: Type.Optional(Type.Array(Type.String({ description: "Local filesystem image path to edit." }), { description: `Optional local image paths to edit. At most ${MAX_EDIT_IMAGES}.` })),
|
|
231
|
-
num_last_images_to_include: Type.Optional(Type.Number({ description: `Use the last N conversation images as edit references. Must be between 1 and ${MAX_EDIT_IMAGES}.` })),
|
|
232
|
-
}),
|
|
233
|
-
async execute(toolCallId, params, signal, _onUpdate, ctx) {
|
|
234
|
-
validateImageArgs(params);
|
|
235
|
-
const images = await collectEditImages(params, ctx.cwd, ctx.sessionManager.getBranch());
|
|
236
|
-
const operation = images.length > 0 ? "edit" : "generate";
|
|
237
|
-
const endpoint = operation === "edit" ? "edits" : "generations";
|
|
238
|
-
const auth = await getCodexImageAuth();
|
|
239
|
-
const response = await postCodexImageRequest(endpoint, createRequest(params.prompt, images), auth, signal, options.baseUrl);
|
|
240
|
-
const result = firstImageB64(response);
|
|
241
|
-
const saved = await saveGeneratedImage(context.piboSessionId, toolCallId, result);
|
|
242
|
-
const details = {
|
|
243
|
-
provider: OPENAI_CODEX_PROVIDER,
|
|
244
|
-
api: "codex-chatgpt-images",
|
|
245
|
-
operation,
|
|
246
|
-
model: CODEX_IMAGE_MODEL,
|
|
247
|
-
savedPath: saved.savedPath,
|
|
248
|
-
artifactId: saved.artifactId,
|
|
249
|
-
referencedImageCount: images.length,
|
|
250
|
-
endpoint,
|
|
251
|
-
created: response.created,
|
|
252
|
-
background: response.background,
|
|
253
|
-
quality: response.quality,
|
|
254
|
-
size: response.size,
|
|
255
|
-
};
|
|
256
|
-
return {
|
|
257
|
-
content: [
|
|
258
|
-
{ type: "image", data: result, mimeType: "image/png" },
|
|
259
|
-
{ type: "text", text: `Generated image saved to ${saved.savedPath}` },
|
|
260
|
-
],
|
|
261
|
-
details,
|
|
262
|
-
};
|
|
263
|
-
},
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
export function createCodexImageGenerationToolProfile() {
|
|
267
|
-
return {
|
|
268
|
-
name: "codex_image_generation",
|
|
269
|
-
description: "Generate and edit images through the ChatGPT/Codex backend API using openai-codex OAuth.",
|
|
270
|
-
createDefinition: createCodexImageGenerationToolDefinition,
|
|
271
|
-
};
|
|
272
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { existsSync, readdirSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
export function hasDesktopDisplay(desktop) {
|
|
4
|
-
return Boolean(desktop.display || desktop.waylandDisplay);
|
|
5
|
-
}
|
|
6
|
-
function getRuntimeDir() {
|
|
7
|
-
if (process.env.XDG_RUNTIME_DIR)
|
|
8
|
-
return process.env.XDG_RUNTIME_DIR;
|
|
9
|
-
if (typeof process.getuid !== 'function')
|
|
10
|
-
return undefined;
|
|
11
|
-
return `/run/user/${process.getuid()}`;
|
|
12
|
-
}
|
|
13
|
-
function findXDisplay() {
|
|
14
|
-
if (process.env.DISPLAY)
|
|
15
|
-
return process.env.DISPLAY;
|
|
16
|
-
if (!existsSync('/tmp/.X11-unix/X0'))
|
|
17
|
-
return undefined;
|
|
18
|
-
return ':0';
|
|
19
|
-
}
|
|
20
|
-
function findWaylandDisplay(runtimeDir) {
|
|
21
|
-
if (process.env.WAYLAND_DISPLAY)
|
|
22
|
-
return process.env.WAYLAND_DISPLAY;
|
|
23
|
-
if (!runtimeDir)
|
|
24
|
-
return undefined;
|
|
25
|
-
if (existsSync(join(runtimeDir, 'wayland-0')))
|
|
26
|
-
return 'wayland-0';
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
function findXauthority(runtimeDir) {
|
|
30
|
-
if (process.env.XAUTHORITY)
|
|
31
|
-
return process.env.XAUTHORITY;
|
|
32
|
-
if (!runtimeDir || !existsSync(runtimeDir))
|
|
33
|
-
return undefined;
|
|
34
|
-
let authFile;
|
|
35
|
-
try {
|
|
36
|
-
authFile = readdirSync(runtimeDir).find((name) => name.startsWith('.mutter-Xwaylandauth.'));
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
return authFile ? join(runtimeDir, authFile) : undefined;
|
|
42
|
-
}
|
|
43
|
-
export function detectDesktopEnv() {
|
|
44
|
-
if (process.platform !== 'linux')
|
|
45
|
-
return {};
|
|
46
|
-
const xdgRuntimeDir = getRuntimeDir();
|
|
47
|
-
const display = findXDisplay();
|
|
48
|
-
const waylandDisplay = findWaylandDisplay(xdgRuntimeDir);
|
|
49
|
-
const xauthority = findXauthority(xdgRuntimeDir);
|
|
50
|
-
const dbusPath = xdgRuntimeDir ? join(xdgRuntimeDir, 'bus') : undefined;
|
|
51
|
-
const dbusSessionBusAddress = process.env.DBUS_SESSION_BUS_ADDRESS ??
|
|
52
|
-
(dbusPath && existsSync(dbusPath) ? `unix:path=${dbusPath}` : undefined);
|
|
53
|
-
return {
|
|
54
|
-
display,
|
|
55
|
-
waylandDisplay,
|
|
56
|
-
xauthority,
|
|
57
|
-
xdgRuntimeDir,
|
|
58
|
-
dbusSessionBusAddress,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
export function getDesktopProcessEnv() {
|
|
62
|
-
const desktop = detectDesktopEnv();
|
|
63
|
-
const env = {};
|
|
64
|
-
if (desktop.display)
|
|
65
|
-
env.DISPLAY = desktop.display;
|
|
66
|
-
if (desktop.waylandDisplay)
|
|
67
|
-
env.WAYLAND_DISPLAY = desktop.waylandDisplay;
|
|
68
|
-
if (desktop.xauthority)
|
|
69
|
-
env.XAUTHORITY = desktop.xauthority;
|
|
70
|
-
if (desktop.xdgRuntimeDir)
|
|
71
|
-
env.XDG_RUNTIME_DIR = desktop.xdgRuntimeDir;
|
|
72
|
-
if (desktop.dbusSessionBusAddress)
|
|
73
|
-
env.DBUS_SESSION_BUS_ADDRESS = desktop.dbusSessionBusAddress;
|
|
74
|
-
return env;
|
|
75
|
-
}
|
|
76
|
-
export function printDesktopEnvStatus(indent = ' ') {
|
|
77
|
-
const desktop = detectDesktopEnv();
|
|
78
|
-
if (hasDesktopDisplay(desktop)) {
|
|
79
|
-
const parts = [
|
|
80
|
-
desktop.display ? `DISPLAY=${desktop.display}` : undefined,
|
|
81
|
-
desktop.waylandDisplay ? `WAYLAND_DISPLAY=${desktop.waylandDisplay}` : undefined,
|
|
82
|
-
desktop.xauthority ? `XAUTHORITY=${desktop.xauthority}` : undefined,
|
|
83
|
-
].filter(Boolean);
|
|
84
|
-
console.log(`${indent}desktop: detected (${parts.join(', ')})`);
|
|
85
|
-
console.log(`${indent}headed browser: available after applying pibo tools env`);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
console.log(`${indent}desktop: not detected`);
|
|
89
|
-
console.log(`${indent}warning: headed browser mode is unavailable; use headless mode or start a desktop display first.`);
|
|
90
|
-
}
|
|
91
|
-
export function printLinuxVirtualDisplayHint(indent = ' ') {
|
|
92
|
-
if (process.platform !== 'linux')
|
|
93
|
-
return;
|
|
94
|
-
console.log(`${indent}linux headed browser hint:`);
|
|
95
|
-
console.log(`${indent} Install a virtual X display if this host has no desktop session.`);
|
|
96
|
-
console.log(`${indent} Ubuntu/Debian: sudo apt update && sudo apt install -y xvfb xauth x11-xserver-utils`);
|
|
97
|
-
console.log(`${indent} Start one display: Xvfb :0 -screen 0 1920x1080x24 -ac -nolisten tcp`);
|
|
98
|
-
console.log(`${indent} Then export DISPLAY=:0 before running browser-use.`);
|
|
99
|
-
}
|