@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
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import { responseJson } from "../../web/http.js";
|
|
2
|
-
import { sanitizeWorkflowDiagnostics } from "./workflow-persistence.js";
|
|
3
|
-
export function projectWorkflowPendingHumanActionFromToken(token, humanActionOptions) {
|
|
4
|
-
const diagnostics = [];
|
|
5
|
-
const availableActions = token.actions.map((action, index) => {
|
|
6
|
-
const registered = humanActionOptions.find((option) => option.id === action.id);
|
|
7
|
-
if (!registered) {
|
|
8
|
-
diagnostics.push({
|
|
9
|
-
code: "WorkflowGraphError.unknownHumanActionRef",
|
|
10
|
-
message: `Workflow wait token '${token.id}' references human action '${action.id}', but it is not registered in the Workflow Registry.`,
|
|
11
|
-
severity: "error",
|
|
12
|
-
path: `$.waitToken.actions.${index}.id`,
|
|
13
|
-
registryRef: action.id,
|
|
14
|
-
hint: "Resolve waits with registered approve/reject/resume/cancel action refs only.",
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
if (registered && action.kind && action.kind !== registered.kind) {
|
|
18
|
-
diagnostics.push({
|
|
19
|
-
code: "WorkflowGraphError.humanActionKindMismatch",
|
|
20
|
-
message: `Workflow wait token '${token.id}' action '${action.id}' declares kind '${action.kind}', but the registry defines kind '${registered.kind}'.`,
|
|
21
|
-
severity: "error",
|
|
22
|
-
path: `$.waitToken.actions.${index}.kind`,
|
|
23
|
-
registryRef: action.id,
|
|
24
|
-
hint: "Keep wait-token action refs aligned with their registered action definitions.",
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
id: action.id,
|
|
29
|
-
kind: action.kind ?? registered?.kind ?? "unknown",
|
|
30
|
-
displayName: registered?.displayName ?? action.id,
|
|
31
|
-
...(registered?.description ? { description: registered.description } : {}),
|
|
32
|
-
paramsSchema: registered?.paramsSchema ?? null,
|
|
33
|
-
registered: Boolean(registered),
|
|
34
|
-
};
|
|
35
|
-
});
|
|
36
|
-
return {
|
|
37
|
-
waitTokenId: token.id,
|
|
38
|
-
workflowRunId: token.workflowRunId,
|
|
39
|
-
...(token.nodeAttemptId ? { nodeAttemptId: token.nodeAttemptId } : {}),
|
|
40
|
-
...(token.humanNodeId ? { humanNodeId: token.humanNodeId } : {}),
|
|
41
|
-
prompt: token.prompt,
|
|
42
|
-
...(token.schema ? { schema: token.schema } : {}),
|
|
43
|
-
status: "pending",
|
|
44
|
-
payloadRequirements: {
|
|
45
|
-
required: Boolean(token.schema),
|
|
46
|
-
...(token.schema ? { schema: token.schema } : {}),
|
|
47
|
-
description: token.schema
|
|
48
|
-
? "Resume requires a JSON payload that matches this wait token schema."
|
|
49
|
-
: "Approve, reject, resume, and cancel do not require a payload for this wait token.",
|
|
50
|
-
},
|
|
51
|
-
availableActions,
|
|
52
|
-
diagnostics,
|
|
53
|
-
createdAt: token.createdAt,
|
|
54
|
-
...(token.expiresAt ? { expiresAt: token.expiresAt } : {}),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
export function projectWorkflowHumanActionLifecyclePayload(request) {
|
|
58
|
-
const payload = { waitTokenId: request.waitTokenId };
|
|
59
|
-
if (request.actionId)
|
|
60
|
-
payload.actionId = request.actionId;
|
|
61
|
-
if (request.kind)
|
|
62
|
-
payload.kind = request.kind;
|
|
63
|
-
return payload;
|
|
64
|
-
}
|
|
65
|
-
export function projectWorkflowHumanActionSubmittedLifecyclePayload(waitTokenId, action) {
|
|
66
|
-
const payload = {
|
|
67
|
-
waitTokenId,
|
|
68
|
-
kind: action.kind,
|
|
69
|
-
decision: action.kind === "cancel" ? "cancelled" : "resumed",
|
|
70
|
-
};
|
|
71
|
-
if (action.actionId)
|
|
72
|
-
payload.actionId = action.actionId;
|
|
73
|
-
return payload;
|
|
74
|
-
}
|
|
75
|
-
export function normalizeProjectWorkflowHumanActionBody(body) {
|
|
76
|
-
const diagnostics = [];
|
|
77
|
-
const waitTokenId = typeof body.waitTokenId === "string" && body.waitTokenId.trim() ? body.waitTokenId.trim() : undefined;
|
|
78
|
-
const actionId = typeof body.actionId === "string" && body.actionId.trim() ? body.actionId.trim() : undefined;
|
|
79
|
-
const kind = typeof body.kind === "string" && body.kind.trim() ? body.kind.trim() : undefined;
|
|
80
|
-
if (!waitTokenId) {
|
|
81
|
-
diagnostics.push({
|
|
82
|
-
code: "WorkflowRuntimeError.waitTokenIdRequired",
|
|
83
|
-
message: "Human action requests must include a waitTokenId.",
|
|
84
|
-
severity: "error",
|
|
85
|
-
path: "$.waitTokenId",
|
|
86
|
-
hint: "Submit a pending wait token returned by Project workflow inspection.",
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (!actionId && !kind) {
|
|
90
|
-
diagnostics.push({
|
|
91
|
-
code: "WorkflowRuntimeError.humanActionRequired",
|
|
92
|
-
message: "Human action requests must include an actionId or action kind.",
|
|
93
|
-
severity: "error",
|
|
94
|
-
path: "$.actionId",
|
|
95
|
-
hint: "Use one of the wait token's registered approve/reject/resume/cancel actions.",
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
if (body.payload !== undefined && !isJsonValue(body.payload)) {
|
|
99
|
-
diagnostics.push({
|
|
100
|
-
code: "WorkflowRuntimeError.invalidHumanActionPayload",
|
|
101
|
-
message: "Human action payload must be valid JSON data.",
|
|
102
|
-
severity: "error",
|
|
103
|
-
path: "$.payload",
|
|
104
|
-
hint: "Submit a JSON value that matches the wait token payload requirements.",
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
if (!waitTokenId)
|
|
108
|
-
return { diagnostics };
|
|
109
|
-
return {
|
|
110
|
-
request: {
|
|
111
|
-
waitTokenId,
|
|
112
|
-
...(actionId ? { actionId } : {}),
|
|
113
|
-
...(kind ? { kind } : {}),
|
|
114
|
-
...(body.payload !== undefined && isJsonValue(body.payload) ? { payload: body.payload } : {}),
|
|
115
|
-
},
|
|
116
|
-
diagnostics,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
export function validateProjectWorkflowHumanActionRequest(input) {
|
|
120
|
-
const checkedAt = new Date().toISOString();
|
|
121
|
-
const diagnostics = [];
|
|
122
|
-
if (!input.waitToken) {
|
|
123
|
-
diagnostics.push({
|
|
124
|
-
code: "WorkflowRuntimeError.unknownWaitToken",
|
|
125
|
-
message: `Workflow wait token '${input.request.waitTokenId}' does not exist.`,
|
|
126
|
-
severity: "error",
|
|
127
|
-
path: "$.waitTokenId",
|
|
128
|
-
hint: "Refresh the Project run view and submit one of its pending wait tokens.",
|
|
129
|
-
});
|
|
130
|
-
return { diagnostics, httpStatus: 404, checkedAt };
|
|
131
|
-
}
|
|
132
|
-
if (input.waitToken.projectId !== input.projectSession.projectId || input.waitToken.piboSessionId !== input.projectSession.piboSessionId || input.waitToken.workflowRunId !== input.projectSession.workflowRunId) {
|
|
133
|
-
diagnostics.push({
|
|
134
|
-
code: "WorkflowRuntimeError.waitTokenSessionMismatch",
|
|
135
|
-
message: `Workflow wait token '${input.waitToken.id}' does not belong to this Project workflow session.`,
|
|
136
|
-
severity: "error",
|
|
137
|
-
path: "$.waitTokenId",
|
|
138
|
-
registryRef: input.waitToken.id,
|
|
139
|
-
hint: "Use only wait tokens shown in the selected Project run view.",
|
|
140
|
-
});
|
|
141
|
-
return { diagnostics, httpStatus: 403, checkedAt };
|
|
142
|
-
}
|
|
143
|
-
if (input.waitToken.status !== "pending") {
|
|
144
|
-
diagnostics.push({
|
|
145
|
-
code: "WorkflowRuntimeError.waitTokenNotPending",
|
|
146
|
-
message: `Workflow wait token '${input.waitToken.id}' is '${input.waitToken.status}' and cannot accept another human action.`,
|
|
147
|
-
severity: "error",
|
|
148
|
-
path: "$.waitToken.status",
|
|
149
|
-
registryRef: input.waitToken.id,
|
|
150
|
-
hint: "Human wait tokens can only be resolved once while pending.",
|
|
151
|
-
});
|
|
152
|
-
return { diagnostics, httpStatus: 409, checkedAt };
|
|
153
|
-
}
|
|
154
|
-
if (input.waitToken.expiresAt && Date.parse(input.waitToken.expiresAt) <= Date.parse(checkedAt)) {
|
|
155
|
-
diagnostics.push({
|
|
156
|
-
code: "WorkflowRuntimeError.waitTokenExpired",
|
|
157
|
-
message: `Workflow wait token '${input.waitToken.id}' expired at ${input.waitToken.expiresAt}.`,
|
|
158
|
-
severity: "error",
|
|
159
|
-
path: "$.waitToken.expiresAt",
|
|
160
|
-
registryRef: input.waitToken.id,
|
|
161
|
-
hint: "Create a new human wait or handle the timeout before submitting an action.",
|
|
162
|
-
});
|
|
163
|
-
return { diagnostics, httpStatus: 409, checkedAt, expiredAt: input.waitToken.expiresAt };
|
|
164
|
-
}
|
|
165
|
-
const actionRef = input.request.actionId
|
|
166
|
-
? input.waitToken.actions.find((action) => action.id === input.request.actionId)
|
|
167
|
-
: input.waitToken.actions.find((action) => action.kind === input.request.kind);
|
|
168
|
-
if (!actionRef) {
|
|
169
|
-
diagnostics.push({
|
|
170
|
-
code: "WorkflowRuntimeError.humanActionUnavailable",
|
|
171
|
-
message: input.request.actionId
|
|
172
|
-
? `Workflow wait token '${input.waitToken.id}' does not offer human action '${input.request.actionId}'.`
|
|
173
|
-
: `Workflow wait token '${input.waitToken.id}' does not offer a human action of kind '${input.request.kind ?? "<missing>"}'.`,
|
|
174
|
-
severity: "error",
|
|
175
|
-
path: input.request.actionId ? "$.actionId" : "$.kind",
|
|
176
|
-
...(input.request.actionId ? { registryRef: input.request.actionId } : {}),
|
|
177
|
-
hint: "Use one of the wait token's available action refs.",
|
|
178
|
-
});
|
|
179
|
-
return { diagnostics, httpStatus: 422, checkedAt };
|
|
180
|
-
}
|
|
181
|
-
const registered = input.humanActionOptions.find((option) => option.id === actionRef.id);
|
|
182
|
-
if (!registered) {
|
|
183
|
-
diagnostics.push({
|
|
184
|
-
code: "WorkflowGraphError.unknownHumanActionRef",
|
|
185
|
-
message: `Workflow wait token '${input.waitToken.id}' references human action '${actionRef.id}', but it is not registered in the Workflow Registry.`,
|
|
186
|
-
severity: "error",
|
|
187
|
-
path: "$.waitToken.actions",
|
|
188
|
-
registryRef: actionRef.id,
|
|
189
|
-
hint: "Register or select a known approve/reject/resume/cancel human action before accepting it.",
|
|
190
|
-
});
|
|
191
|
-
return { diagnostics, httpStatus: 422, checkedAt, actionRef };
|
|
192
|
-
}
|
|
193
|
-
if (actionRef.kind && actionRef.kind !== registered.kind) {
|
|
194
|
-
diagnostics.push({
|
|
195
|
-
code: "WorkflowGraphError.humanActionKindMismatch",
|
|
196
|
-
message: `Workflow wait token '${input.waitToken.id}' action '${actionRef.id}' declares kind '${actionRef.kind}', but the registry defines kind '${registered.kind}'.`,
|
|
197
|
-
severity: "error",
|
|
198
|
-
path: "$.waitToken.actions",
|
|
199
|
-
registryRef: actionRef.id,
|
|
200
|
-
hint: "Keep wait-token action refs aligned with their registered action definitions.",
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
if (input.request.kind && input.request.kind !== registered.kind) {
|
|
204
|
-
diagnostics.push({
|
|
205
|
-
code: "WorkflowRuntimeError.humanActionKindMismatch",
|
|
206
|
-
message: `Requested human action kind '${input.request.kind}' does not match registered action '${registered.id}' kind '${registered.kind}'.`,
|
|
207
|
-
severity: "error",
|
|
208
|
-
path: "$.kind",
|
|
209
|
-
registryRef: registered.id,
|
|
210
|
-
hint: "Submit the kind returned by the wait token action list.",
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
if (registered.kind === "resume" && input.waitToken.schema) {
|
|
214
|
-
validateWorkflowHumanActionPayloadAgainstSchema(input.request.payload, input.waitToken.schema, "$.payload", diagnostics, {
|
|
215
|
-
registryRef: registered.id,
|
|
216
|
-
waitTokenId: input.waitToken.id,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
return {
|
|
220
|
-
diagnostics,
|
|
221
|
-
httpStatus: diagnostics.length ? 422 : 200,
|
|
222
|
-
checkedAt,
|
|
223
|
-
actionRef,
|
|
224
|
-
actionKind: registered.kind,
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
export function projectWorkflowHumanActionRuntimeDiagnostic(error, waitTokenId) {
|
|
228
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
229
|
-
let code = "WorkflowRuntimeError.humanActionRejected";
|
|
230
|
-
if (/not found/i.test(message))
|
|
231
|
-
code = "WorkflowRuntimeError.unknownWaitToken";
|
|
232
|
-
else if (/does not belong/i.test(message))
|
|
233
|
-
code = "WorkflowRuntimeError.waitTokenSessionMismatch";
|
|
234
|
-
else if (/expired/i.test(message))
|
|
235
|
-
code = "WorkflowRuntimeError.waitTokenExpired";
|
|
236
|
-
else if (/cannot be resolved again|not pending/i.test(message))
|
|
237
|
-
code = "WorkflowRuntimeError.waitTokenNotPending";
|
|
238
|
-
else if (/does not offer/i.test(message))
|
|
239
|
-
code = "WorkflowRuntimeError.humanActionUnavailable";
|
|
240
|
-
return {
|
|
241
|
-
code,
|
|
242
|
-
message,
|
|
243
|
-
severity: "error",
|
|
244
|
-
path: "$.waitTokenId",
|
|
245
|
-
registryRef: waitTokenId,
|
|
246
|
-
hint: "Refresh the Project run view and retry with a currently pending wait token/action ref.",
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
export function projectWorkflowHumanActionDiagnosticResponse(message, diagnostics, status, waitToken, humanActionOptions) {
|
|
250
|
-
return responseJson({
|
|
251
|
-
error: message,
|
|
252
|
-
diagnostics: sanitizeWorkflowDiagnostics(diagnostics),
|
|
253
|
-
...(waitToken?.status === "pending" ? { waitToken: projectWorkflowPendingHumanActionFromToken(waitToken, humanActionOptions) } : {}),
|
|
254
|
-
}, { status });
|
|
255
|
-
}
|
|
256
|
-
function validateWorkflowHumanActionPayloadAgainstSchema(value, schema, path, diagnostics, context) {
|
|
257
|
-
const typeNames = readParamsSchemaTypes(schema.type);
|
|
258
|
-
if (typeNames.length && !typeNames.some((typeName) => workflowParamValueMatchesType(value, typeName))) {
|
|
259
|
-
diagnostics.push({
|
|
260
|
-
code: "WorkflowRuntimeError.invalidHumanActionPayload",
|
|
261
|
-
message: `Resume payload for wait token '${context.waitTokenId}' does not match schema type at '${path}'.`,
|
|
262
|
-
severity: "error",
|
|
263
|
-
path,
|
|
264
|
-
registryRef: context.registryRef,
|
|
265
|
-
hint: "Submit a resume payload matching the wait token schema before the action is accepted.",
|
|
266
|
-
});
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
if (isJsonObject(value)) {
|
|
270
|
-
const required = Array.isArray(schema.required) ? schema.required.filter((entry) => typeof entry === "string") : [];
|
|
271
|
-
for (const requiredKey of required) {
|
|
272
|
-
if (Object.hasOwn(value, requiredKey))
|
|
273
|
-
continue;
|
|
274
|
-
diagnostics.push({
|
|
275
|
-
code: "WorkflowRuntimeError.invalidHumanActionPayload",
|
|
276
|
-
message: `Resume payload for wait token '${context.waitTokenId}' is missing required field '${requiredKey}'.`,
|
|
277
|
-
severity: "error",
|
|
278
|
-
path: workflowParamsChildPath(path, requiredKey),
|
|
279
|
-
registryRef: context.registryRef,
|
|
280
|
-
hint: "Add the required resume payload field before submitting the action.",
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
const properties = isJsonObject(schema.properties) ? schema.properties : {};
|
|
284
|
-
for (const [key, propertyValue] of Object.entries(value)) {
|
|
285
|
-
const propertySchema = properties[key];
|
|
286
|
-
if (isJsonObject(propertySchema)) {
|
|
287
|
-
validateWorkflowHumanActionPayloadAgainstSchema(propertyValue, propertySchema, workflowParamsChildPath(path, key), diagnostics, context);
|
|
288
|
-
}
|
|
289
|
-
else if (schema.additionalProperties === false) {
|
|
290
|
-
diagnostics.push({
|
|
291
|
-
code: "WorkflowRuntimeError.invalidHumanActionPayload",
|
|
292
|
-
message: `Resume payload for wait token '${context.waitTokenId}' includes field '${key}', which is not allowed by the wait token schema.`,
|
|
293
|
-
severity: "error",
|
|
294
|
-
path: workflowParamsChildPath(path, key),
|
|
295
|
-
registryRef: context.registryRef,
|
|
296
|
-
hint: "Remove fields not declared by the wait token payload schema.",
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
if (Array.isArray(value) && isJsonObject(schema.items)) {
|
|
302
|
-
value.forEach((item, index) => validateWorkflowHumanActionPayloadAgainstSchema(item, schema.items, `${path}.${index}`, diagnostics, context));
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
function isJsonValue(value) {
|
|
306
|
-
if (value === null ||
|
|
307
|
-
typeof value === "string" ||
|
|
308
|
-
typeof value === "boolean" ||
|
|
309
|
-
(typeof value === "number" && Number.isFinite(value))) {
|
|
310
|
-
return true;
|
|
311
|
-
}
|
|
312
|
-
if (Array.isArray(value))
|
|
313
|
-
return value.every(isJsonValue);
|
|
314
|
-
if (typeof value === "object")
|
|
315
|
-
return Object.values(value).every(isJsonValue);
|
|
316
|
-
return false;
|
|
317
|
-
}
|
|
318
|
-
function isJsonObject(value) {
|
|
319
|
-
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
320
|
-
}
|
|
321
|
-
function readParamsSchemaTypes(value) {
|
|
322
|
-
if (typeof value === "string")
|
|
323
|
-
return [value];
|
|
324
|
-
if (Array.isArray(value))
|
|
325
|
-
return value.filter((entry) => typeof entry === "string");
|
|
326
|
-
return [];
|
|
327
|
-
}
|
|
328
|
-
function workflowParamValueMatchesType(value, typeName) {
|
|
329
|
-
if (typeName === "string")
|
|
330
|
-
return typeof value === "string";
|
|
331
|
-
if (typeName === "number")
|
|
332
|
-
return typeof value === "number" && Number.isFinite(value);
|
|
333
|
-
if (typeName === "integer")
|
|
334
|
-
return Number.isInteger(value);
|
|
335
|
-
if (typeName === "boolean")
|
|
336
|
-
return typeof value === "boolean";
|
|
337
|
-
if (typeName === "object")
|
|
338
|
-
return isJsonObject(value);
|
|
339
|
-
if (typeName === "array")
|
|
340
|
-
return Array.isArray(value);
|
|
341
|
-
if (typeName === "null")
|
|
342
|
-
return value === null;
|
|
343
|
-
return true;
|
|
344
|
-
}
|
|
345
|
-
function workflowParamsChildPath(path, key) {
|
|
346
|
-
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? `${path}.${key}` : `${path}[${JSON.stringify(key)}]`;
|
|
347
|
-
}
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { isPiboThinkingLevel } from "../../core/thinking.js";
|
|
3
|
-
import { PiboWebHttpError } from "../../web/http.js";
|
|
4
|
-
import { hashWorkflowDefinitionJson, sanitizeWorkflowDiagnostics, } from "./workflow-persistence.js";
|
|
5
|
-
import { workflowVersionPickerOptionFromCatalogRecord, } from "./workflow-catalog.js";
|
|
6
|
-
const PROJECT_WORKFLOW_SESSION_CREATE_FIELDS = new Set([
|
|
7
|
-
"profile",
|
|
8
|
-
"workflowId",
|
|
9
|
-
"workflowVersion",
|
|
10
|
-
"title",
|
|
11
|
-
"inputValues",
|
|
12
|
-
"promptOverrides",
|
|
13
|
-
"model",
|
|
14
|
-
"thinkingLevel",
|
|
15
|
-
"fastMode",
|
|
16
|
-
]);
|
|
17
|
-
const PROJECT_WORKFLOW_SESSION_DISALLOWED_FIELDS = new Map([
|
|
18
|
-
["agentProfileOverrides", "Agent profile overrides are not supported for V2 workflow sessions"],
|
|
19
|
-
["profileOverrides", "Agent profile overrides are not supported for V2 workflow sessions"],
|
|
20
|
-
["profileOverride", "Agent profile overrides are not supported for V2 workflow sessions"],
|
|
21
|
-
["nodeProfileOverrides", "Agent profile overrides are not supported for V2 workflow sessions"],
|
|
22
|
-
["retryLimit", "Retry limit overrides are not supported for V2 workflow sessions"],
|
|
23
|
-
["retryLimits", "Retry limit overrides are not supported for V2 workflow sessions"],
|
|
24
|
-
["maxRetries", "Retry limit overrides are not supported for V2 workflow sessions"],
|
|
25
|
-
["retryCount", "Retry limit overrides are not supported for V2 workflow sessions"],
|
|
26
|
-
["handlerOverrides", "Handler overrides are not supported for V2 workflow sessions"],
|
|
27
|
-
["handlerOverride", "Handler overrides are not supported for V2 workflow sessions"],
|
|
28
|
-
["adapterOverrides", "Adapter overrides are not supported for V2 workflow sessions"],
|
|
29
|
-
["adapterOverride", "Adapter overrides are not supported for V2 workflow sessions"],
|
|
30
|
-
["guardOverrides", "Guard overrides are not supported for V2 workflow sessions"],
|
|
31
|
-
["guardOverride", "Guard overrides are not supported for V2 workflow sessions"],
|
|
32
|
-
["nodeOverrides", "Arbitrary node overrides are not supported for V2 workflow sessions"],
|
|
33
|
-
["overrides", "Arbitrary overrides are not supported for V2 workflow sessions"],
|
|
34
|
-
["options", "Arbitrary options are not supported for V2 workflow sessions"],
|
|
35
|
-
["arbitraryOptions", "Arbitrary options are not supported for V2 workflow sessions"],
|
|
36
|
-
]);
|
|
37
|
-
export function normalizeProjectWorkflowSessionConfiguration(body, definition) {
|
|
38
|
-
assertProjectWorkflowSessionCreateFields(body);
|
|
39
|
-
const inputValues = normalizeProjectWorkflowInputValues(body.inputValues);
|
|
40
|
-
const promptOverrideEligibleNodeIds = workflowPromptOverrideEligibleNodeIds(definition);
|
|
41
|
-
const promptOverrides = normalizeProjectWorkflowPromptOverrides(body.promptOverrides, promptOverrideEligibleNodeIds);
|
|
42
|
-
const model = normalizeWorkflowSessionModel(body.model);
|
|
43
|
-
const thinkingLevel = normalizeThinkingLevel(body.thinkingLevel, "thinkingLevel");
|
|
44
|
-
const fastMode = normalizeOptionalBoolean(body.fastMode, "fastMode");
|
|
45
|
-
return {
|
|
46
|
-
inputValues,
|
|
47
|
-
promptOverrides,
|
|
48
|
-
promptOverrideEligibleNodeIds,
|
|
49
|
-
overrideScopes: {
|
|
50
|
-
promptOverrides: "eligible_agent_node",
|
|
51
|
-
model: "workflow",
|
|
52
|
-
thinkingLevel: "workflow",
|
|
53
|
-
fastMode: "workflow",
|
|
54
|
-
},
|
|
55
|
-
...(model ? { model } : {}),
|
|
56
|
-
...(thinkingLevel ? { thinkingLevel } : {}),
|
|
57
|
-
...(fastMode !== undefined ? { fastMode } : {}),
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export function createProjectWorkflowSessionSnapshot(input) {
|
|
61
|
-
const baseDefinition = cloneJsonObject(input.baseDefinition);
|
|
62
|
-
const effectiveDefinition = applyProjectWorkflowPromptOverrides(baseDefinition, input.configuration.promptOverrides);
|
|
63
|
-
const baseDefinitionHash = hashWorkflowDefinitionJson(baseDefinition);
|
|
64
|
-
const effectiveDefinitionHash = hashWorkflowDefinitionJson(effectiveDefinition);
|
|
65
|
-
const now = new Date().toISOString();
|
|
66
|
-
return {
|
|
67
|
-
id: `wfs_${randomUUID()}`,
|
|
68
|
-
schemaVersion: 1,
|
|
69
|
-
createdAt: now,
|
|
70
|
-
createdBy: input.webSession.authSession.identity.userId,
|
|
71
|
-
projectId: input.project.id,
|
|
72
|
-
piboSessionId: input.session.id,
|
|
73
|
-
workflow: {
|
|
74
|
-
id: input.workflow.id,
|
|
75
|
-
version: input.workflow.version,
|
|
76
|
-
source: input.workflow.source,
|
|
77
|
-
title: input.workflow.title,
|
|
78
|
-
...(input.workflow.description ? { description: input.workflow.description } : {}),
|
|
79
|
-
tags: [...input.workflow.tags],
|
|
80
|
-
baseDefinitionHash,
|
|
81
|
-
effectiveDefinitionHash,
|
|
82
|
-
},
|
|
83
|
-
baseDefinition,
|
|
84
|
-
effectiveDefinition,
|
|
85
|
-
inputValues: cloneJsonObject(input.configuration.inputValues),
|
|
86
|
-
promptOverrides: { ...input.configuration.promptOverrides },
|
|
87
|
-
overridePolicy: {
|
|
88
|
-
promptEligibility: "metadata.sessionOverrides.prompt===true-and-direct-promptTemplate",
|
|
89
|
-
eligiblePromptNodeIds: [...input.configuration.promptOverrideEligibleNodeIds],
|
|
90
|
-
modelScope: input.configuration.overrideScopes.model,
|
|
91
|
-
thinkingLevelScope: input.configuration.overrideScopes.thinkingLevel,
|
|
92
|
-
fastModeScope: input.configuration.overrideScopes.fastMode,
|
|
93
|
-
},
|
|
94
|
-
...(input.configuration.model ? { model: input.configuration.model } : {}),
|
|
95
|
-
...(input.configuration.thinkingLevel ? { thinkingLevel: input.configuration.thinkingLevel } : {}),
|
|
96
|
-
...(input.configuration.fastMode !== undefined ? { fastMode: input.configuration.fastMode } : {}),
|
|
97
|
-
promptAssetPins: [],
|
|
98
|
-
validation: workflowValidationSnapshot(input.validation),
|
|
99
|
-
deletedDefinitionFallback: {
|
|
100
|
-
title: input.workflow.title,
|
|
101
|
-
workflowId: input.workflow.id,
|
|
102
|
-
workflowVersion: input.workflow.version,
|
|
103
|
-
effectiveDefinitionHash,
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
export function workflowVersionFromSnapshot(snapshot) {
|
|
108
|
-
return workflowVersionPickerOptionFromCatalogRecord({
|
|
109
|
-
id: snapshot.workflow.id,
|
|
110
|
-
version: snapshot.workflow.version,
|
|
111
|
-
title: snapshot.workflow.title ?? snapshot.workflow.id,
|
|
112
|
-
...(snapshot.workflow.description ? { description: snapshot.workflow.description } : {}),
|
|
113
|
-
source: snapshot.workflow.source,
|
|
114
|
-
status: "published",
|
|
115
|
-
tags: [...snapshot.workflow.tags],
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
export function createProjectWorkflowRunCurrent(definition) {
|
|
119
|
-
const initialNodeIds = workflowInitialNodeIds(definition);
|
|
120
|
-
return {
|
|
121
|
-
status: "running",
|
|
122
|
-
initialNodeIds,
|
|
123
|
-
...(initialNodeIds.length === 1 ? { nodeId: initialNodeIds[0] } : {}),
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
function assertProjectWorkflowSessionCreateFields(body) {
|
|
127
|
-
if (!body || typeof body !== "object" || Array.isArray(body))
|
|
128
|
-
throw new PiboWebHttpError("Invalid JSON body", 400);
|
|
129
|
-
for (const key of Object.keys(body)) {
|
|
130
|
-
const disallowedMessage = PROJECT_WORKFLOW_SESSION_DISALLOWED_FIELDS.get(key);
|
|
131
|
-
if (disallowedMessage)
|
|
132
|
-
throw new PiboWebHttpError(disallowedMessage, 400);
|
|
133
|
-
if (!PROJECT_WORKFLOW_SESSION_CREATE_FIELDS.has(key)) {
|
|
134
|
-
throw new PiboWebHttpError(`Unsupported workflow session creation field: ${key}`, 400);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
function normalizeProjectWorkflowInputValues(value) {
|
|
139
|
-
if (value === undefined || value === null)
|
|
140
|
-
return {};
|
|
141
|
-
if (!isJsonObject(value))
|
|
142
|
-
throw new PiboWebHttpError("inputValues must be a JSON object", 400);
|
|
143
|
-
return value;
|
|
144
|
-
}
|
|
145
|
-
function normalizeProjectWorkflowPromptOverrides(value, eligibleNodeIds) {
|
|
146
|
-
if (value === undefined || value === null)
|
|
147
|
-
return {};
|
|
148
|
-
if (!isJsonObject(value))
|
|
149
|
-
throw new PiboWebHttpError("promptOverrides must be a JSON object keyed by eligible node id", 400);
|
|
150
|
-
const eligible = new Set(eligibleNodeIds);
|
|
151
|
-
const promptOverrides = {};
|
|
152
|
-
for (const [nodeId, prompt] of Object.entries(value)) {
|
|
153
|
-
if (!nodeId.trim())
|
|
154
|
-
throw new PiboWebHttpError("promptOverrides cannot contain an empty node id", 400);
|
|
155
|
-
if (!eligible.has(nodeId)) {
|
|
156
|
-
throw new PiboWebHttpError(`Node '${nodeId}' is not eligible for prompt overrides in this workflow version`, 400);
|
|
157
|
-
}
|
|
158
|
-
if (typeof prompt !== "string") {
|
|
159
|
-
throw new PiboWebHttpError(`Prompt override for node '${nodeId}' must be a string`, 400);
|
|
160
|
-
}
|
|
161
|
-
promptOverrides[nodeId] = prompt;
|
|
162
|
-
}
|
|
163
|
-
return promptOverrides;
|
|
164
|
-
}
|
|
165
|
-
function normalizeWorkflowSessionModel(value) {
|
|
166
|
-
if (value === undefined || value === null)
|
|
167
|
-
return undefined;
|
|
168
|
-
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
169
|
-
throw new PiboWebHttpError("model must be an object", 400);
|
|
170
|
-
const keys = Object.keys(value);
|
|
171
|
-
const unsupportedKey = keys.find((key) => key !== "provider" && key !== "id");
|
|
172
|
-
if (unsupportedKey)
|
|
173
|
-
throw new PiboWebHttpError(`model contains unsupported field: ${unsupportedKey}`, 400);
|
|
174
|
-
return normalizeModelProfile(value, "model");
|
|
175
|
-
}
|
|
176
|
-
function normalizeOptionalBoolean(value, fieldName) {
|
|
177
|
-
if (value === undefined || value === null)
|
|
178
|
-
return undefined;
|
|
179
|
-
if (typeof value !== "boolean")
|
|
180
|
-
throw new PiboWebHttpError(`${fieldName} must be a boolean`, 400);
|
|
181
|
-
return value;
|
|
182
|
-
}
|
|
183
|
-
function normalizeThinkingLevel(value, fieldName) {
|
|
184
|
-
if (value === undefined || value === null)
|
|
185
|
-
return undefined;
|
|
186
|
-
if (typeof value !== "string" || !isPiboThinkingLevel(value)) {
|
|
187
|
-
throw new PiboWebHttpError(`${fieldName} must be one of off, minimal, low, medium, high, xhigh, max`, 400);
|
|
188
|
-
}
|
|
189
|
-
return value;
|
|
190
|
-
}
|
|
191
|
-
function normalizeModelProfile(value, fieldName) {
|
|
192
|
-
if (value === undefined || value === null)
|
|
193
|
-
return undefined;
|
|
194
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
195
|
-
throw new PiboWebHttpError(`${fieldName} must be an object`, 400);
|
|
196
|
-
}
|
|
197
|
-
const raw = value;
|
|
198
|
-
if (typeof raw.provider !== "string" || typeof raw.id !== "string") {
|
|
199
|
-
throw new PiboWebHttpError(`${fieldName} must include provider and id`, 400);
|
|
200
|
-
}
|
|
201
|
-
const provider = raw.provider.trim();
|
|
202
|
-
const id = raw.id.trim();
|
|
203
|
-
if (!provider || !id) {
|
|
204
|
-
throw new PiboWebHttpError(`${fieldName} must include provider and id`, 400);
|
|
205
|
-
}
|
|
206
|
-
return { provider, id };
|
|
207
|
-
}
|
|
208
|
-
function workflowPromptOverrideEligibleNodeIds(definition) {
|
|
209
|
-
const nodes = definition.nodes;
|
|
210
|
-
if (!isJsonObject(nodes))
|
|
211
|
-
return [];
|
|
212
|
-
return Object.entries(nodes)
|
|
213
|
-
.filter(([, node]) => isWorkflowPromptOverrideEligibleNode(node))
|
|
214
|
-
.map(([nodeId]) => nodeId)
|
|
215
|
-
.sort();
|
|
216
|
-
}
|
|
217
|
-
function isWorkflowPromptOverrideEligibleNode(value) {
|
|
218
|
-
if (!isJsonObject(value))
|
|
219
|
-
return false;
|
|
220
|
-
const metadata = isJsonObject(value.metadata) ? value.metadata : undefined;
|
|
221
|
-
const sessionOverrides = metadata && isJsonObject(metadata.sessionOverrides) ? metadata.sessionOverrides : undefined;
|
|
222
|
-
return value.kind === "agent"
|
|
223
|
-
&& value.runtime === "pibo"
|
|
224
|
-
&& typeof value.promptTemplate === "string"
|
|
225
|
-
&& sessionOverrides?.prompt === true;
|
|
226
|
-
}
|
|
227
|
-
function applyProjectWorkflowPromptOverrides(definition, promptOverrides) {
|
|
228
|
-
const effectiveDefinition = cloneJsonObject(definition);
|
|
229
|
-
const nodes = isJsonObject(effectiveDefinition.nodes) ? effectiveDefinition.nodes : undefined;
|
|
230
|
-
if (!nodes)
|
|
231
|
-
return effectiveDefinition;
|
|
232
|
-
for (const [nodeId, promptTemplate] of Object.entries(promptOverrides)) {
|
|
233
|
-
const node = nodes[nodeId];
|
|
234
|
-
if (isJsonObject(node)) {
|
|
235
|
-
nodes[nodeId] = { ...node, promptTemplate };
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return effectiveDefinition;
|
|
239
|
-
}
|
|
240
|
-
function workflowValidationSnapshot(validation) {
|
|
241
|
-
return {
|
|
242
|
-
...validation.validation,
|
|
243
|
-
validatedAt: validation.validation.checkedAt,
|
|
244
|
-
diagnostics: sanitizeWorkflowDiagnostics(validation.diagnostics),
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
function workflowInitialNodeIds(definition) {
|
|
248
|
-
if (typeof definition.initial === "string" && definition.initial.trim())
|
|
249
|
-
return [definition.initial.trim()];
|
|
250
|
-
if (Array.isArray(definition.initial)) {
|
|
251
|
-
return definition.initial.filter((nodeId) => typeof nodeId === "string" && Boolean(nodeId.trim())).map((nodeId) => nodeId.trim());
|
|
252
|
-
}
|
|
253
|
-
return [];
|
|
254
|
-
}
|
|
255
|
-
function cloneJsonObject(value) {
|
|
256
|
-
return JSON.parse(JSON.stringify(value));
|
|
257
|
-
}
|
|
258
|
-
function isJsonObject(value) {
|
|
259
|
-
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
260
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { completeLogin, getLoginStatus, removeLogin, setApiKey, startLogin } from "../../auth/login-actions.js";
|
|
3
|
-
import { PiboWebHttpError, responseJson } from "../../web/http.js";
|
|
4
|
-
function isJsonObject(value) {
|
|
5
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6
|
-
}
|
|
7
|
-
export function isProviderAuthAction(action) {
|
|
8
|
-
return action === "login.status" || action === "login.start" || action === "login.complete" || action === "login.apikey" || action === "logout";
|
|
9
|
-
}
|
|
10
|
-
export async function executeProviderAuthAction(action, params) {
|
|
11
|
-
const input = isJsonObject(params) ? params : {};
|
|
12
|
-
const provider = typeof input.provider === "string" ? input.provider : undefined;
|
|
13
|
-
if (action === "login.status")
|
|
14
|
-
return { providers: getLoginStatus(provider) };
|
|
15
|
-
if (!provider)
|
|
16
|
-
throw new PiboWebHttpError(`${action} requires params.provider`, 400);
|
|
17
|
-
if (action === "login.start")
|
|
18
|
-
return await startLogin(provider);
|
|
19
|
-
if (action === "login.complete") {
|
|
20
|
-
if (input.code !== undefined && typeof input.code !== "string")
|
|
21
|
-
throw new PiboWebHttpError("login.complete params.code must be a string when provided", 400);
|
|
22
|
-
if (typeof input.state !== "string" || input.state.length === 0)
|
|
23
|
-
throw new PiboWebHttpError("login.complete requires params.state", 400);
|
|
24
|
-
return await completeLogin(provider, input.code, input.state);
|
|
25
|
-
}
|
|
26
|
-
if (action === "login.apikey") {
|
|
27
|
-
if (typeof input.apiKey !== "string" || input.apiKey.length === 0)
|
|
28
|
-
throw new PiboWebHttpError("login.apikey requires params.apiKey", 400);
|
|
29
|
-
return setApiKey(provider, input.apiKey);
|
|
30
|
-
}
|
|
31
|
-
if (action === "logout")
|
|
32
|
-
return removeLogin(provider);
|
|
33
|
-
throw new PiboWebHttpError(`Unsupported provider auth action ${action}`, 400);
|
|
34
|
-
}
|
|
35
|
-
export function providerAuthActionResponse(input) {
|
|
36
|
-
return responseJson({
|
|
37
|
-
type: "execution_result",
|
|
38
|
-
piboSessionId: input.piboSessionId ?? "",
|
|
39
|
-
eventId: randomUUID(),
|
|
40
|
-
action: input.action,
|
|
41
|
-
result: input.result,
|
|
42
|
-
});
|
|
43
|
-
}
|