@sunshinelife83/hearth 1.0.0
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/LICENSE +21 -0
- package/README.md +323 -0
- package/bin/hearth-agentd.js +4 -0
- package/bin/hearth.js +4 -0
- package/bin/run-entrypoint.js +20 -0
- package/dist/agent-tools.js +738 -0
- package/dist/app-version.js +16 -0
- package/dist/apply-patch.js +402 -0
- package/dist/artifact-error.js +8 -0
- package/dist/artifact-tools.js +377 -0
- package/dist/cli-workspace.js +36 -0
- package/dist/cli.js +1086 -0
- package/dist/config-migration.js +82 -0
- package/dist/config-schema.js +136 -0
- package/dist/config.js +115 -0
- package/dist/context/context-tools.js +150 -0
- package/dist/context/repo-map.js +102 -0
- package/dist/dashboard/app.js +226 -0
- package/dist/dashboard/index.html +45 -0
- package/dist/dashboard/landing.html +57 -0
- package/dist/dashboard/styles.css +23 -0
- package/dist/dashboard.js +271 -0
- package/dist/db/client.js +29 -0
- package/dist/db/migrations.js +262 -0
- package/dist/db/schema.js +85 -0
- package/dist/device-tokens.js +61 -0
- package/dist/git-worktrees.js +134 -0
- package/dist/git.js +41 -0
- package/dist/incoming-artifacts.js +378 -0
- package/dist/local-agent-acp.js +768 -0
- package/dist/local-agent-adapters.js +20 -0
- package/dist/local-agent-availability.js +92 -0
- package/dist/local-agent-catalog.js +51 -0
- package/dist/local-agent-claude.js +334 -0
- package/dist/local-agent-client.js +519 -0
- package/dist/local-agent-codex.js +532 -0
- package/dist/local-agent-config.js +34 -0
- package/dist/local-agent-daemon-lifecycle.js +195 -0
- package/dist/local-agent-daemon-main.js +86 -0
- package/dist/local-agent-daemon-protocol.js +302 -0
- package/dist/local-agent-daemon.js +407 -0
- package/dist/local-agent-errors.js +378 -0
- package/dist/local-agent-grok.js +202 -0
- package/dist/local-agent-manager.js +715 -0
- package/dist/local-agent-opencode.js +463 -0
- package/dist/local-agent-path.js +24 -0
- package/dist/local-agent-pi-sandbox.js +472 -0
- package/dist/local-agent-pi.js +298 -0
- package/dist/local-agent-presentation.js +104 -0
- package/dist/local-agent-profiles.js +127 -0
- package/dist/local-agent-runtime-pool.js +481 -0
- package/dist/local-agent-runtime.js +1 -0
- package/dist/local-agent-store.js +193 -0
- package/dist/local-agent-targets.js +97 -0
- package/dist/logger.js +97 -0
- package/dist/machine-id.js +35 -0
- package/dist/mcp-modern-server.js +65 -0
- package/dist/oauth-provider.js +331 -0
- package/dist/oauth-store.js +144 -0
- package/dist/onboarding.js +35 -0
- package/dist/orchestration/brief.js +70 -0
- package/dist/orchestration/lanes.js +145 -0
- package/dist/orchestration/result.js +46 -0
- package/dist/orchestration/scope.js +61 -0
- package/dist/pi-tools.js +58 -0
- package/dist/policy/command-policy.js +104 -0
- package/dist/policy/env-allowlist.js +96 -0
- package/dist/policy/sandbox.js +68 -0
- package/dist/policy/workspace-profiles.js +47 -0
- package/dist/process-journal.js +116 -0
- package/dist/process-platform.js +49 -0
- package/dist/process-sessions.js +388 -0
- package/dist/rate-limit.js +77 -0
- package/dist/request-meta.js +9 -0
- package/dist/review-checkpoints.js +349 -0
- package/dist/roots.js +37 -0
- package/dist/server-shutdown.js +12 -0
- package/dist/server.js +980 -0
- package/dist/skills.js +84 -0
- package/dist/snapshot-manager.js +123 -0
- package/dist/stdio-server.js +80 -0
- package/dist/task-store.js +203 -0
- package/dist/task-tools.js +455 -0
- package/dist/tool-surfaces/claude.js +220 -0
- package/dist/tool-surfaces/codex.js +255 -0
- package/dist/tool-surfaces/index.js +15 -0
- package/dist/tool-surfaces/shared.js +228 -0
- package/dist/tool-surfaces/types.js +27 -0
- package/dist/ui/.vite/manifest.json +2544 -0
- package/dist/ui/assets/abap-CLvhMVsD.js +1 -0
- package/dist/ui/assets/actionscript-3--17pq3dv.js +1 -0
- package/dist/ui/assets/ada-C5qYipkI.js +1 -0
- package/dist/ui/assets/andromeeda-vGVdxbeo.js +1 -0
- package/dist/ui/assets/angular-html-DrbO3_Xe.js +1 -0
- package/dist/ui/assets/angular-ts-CmTVzHJx.js +1 -0
- package/dist/ui/assets/apache-U0d_L8uA.js +1 -0
- package/dist/ui/assets/apex-CGTLDQj6.js +1 -0
- package/dist/ui/assets/apl-BOpCpqXf.js +1 -0
- package/dist/ui/assets/applescript-CCn79oCD.js +1 -0
- package/dist/ui/assets/ara-4CJ0cIlV.js +1 -0
- package/dist/ui/assets/asciidoc-DE70LPWp.js +1 -0
- package/dist/ui/assets/asm-Cmm7eHzH.js +1 -0
- package/dist/ui/assets/astro-CxPeBwei.js +1 -0
- package/dist/ui/assets/aurora-x-CDeNXAV0.js +1 -0
- package/dist/ui/assets/awk-BWXHIvNe.js +1 -0
- package/dist/ui/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/dist/ui/assets/ayu-light-C3h-C4tm.js +1 -0
- package/dist/ui/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/dist/ui/assets/ballerina-B7ZEbQpA.js +1 -0
- package/dist/ui/assets/bat-Bo4NYOV-.js +1 -0
- package/dist/ui/assets/beancount-D-usSTwE.js +1 -0
- package/dist/ui/assets/berry-DKpUyyne.js +1 -0
- package/dist/ui/assets/bibtex-Ci_nEsc7.js +1 -0
- package/dist/ui/assets/bicep-CUHmPFLl.js +1 -0
- package/dist/ui/assets/bird2-C2hNVINV.js +1 -0
- package/dist/ui/assets/blade-DtsAAG4P.js +1 -0
- package/dist/ui/assets/bsl-BkkzgIyY.js +1 -0
- package/dist/ui/assets/c-D9hLjNUM.js +1 -0
- package/dist/ui/assets/c3-CnJL0r0V.js +1 -0
- package/dist/ui/assets/cadence-CQ2zXKGN.js +1 -0
- package/dist/ui/assets/cairo-DLTphjLi.js +1 -0
- package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
- package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
- package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
- package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
- package/dist/ui/assets/clarity-SemFz856.js +1 -0
- package/dist/ui/assets/clojure-DqKBuwfJ.js +1 -0
- package/dist/ui/assets/cmake-Bj61d0ZC.js +1 -0
- package/dist/ui/assets/cobol-C1SWlvZm.js +1 -0
- package/dist/ui/assets/codeowners-C8r90Shi.js +1 -0
- package/dist/ui/assets/codeql-oeQT6MSM.js +1 -0
- package/dist/ui/assets/coffee-B71R3v2U.js +1 -0
- package/dist/ui/assets/common-lisp-Cv5bFMCO.js +1 -0
- package/dist/ui/assets/coq-BrsZFFmf.js +1 -0
- package/dist/ui/assets/cpp--5a4c3v4.js +1 -0
- package/dist/ui/assets/crystal-AtqWYtE0.js +1 -0
- package/dist/ui/assets/csharp-Ct8U2NOr.js +1 -0
- package/dist/ui/assets/css-CbqKSHI-.js +1 -0
- package/dist/ui/assets/csv-Dx-8-gkx.js +1 -0
- package/dist/ui/assets/cue-CE9AQfxI.js +1 -0
- package/dist/ui/assets/cypher-ClKdZ_lG.js +1 -0
- package/dist/ui/assets/d-qD-0Kul2.js +1 -0
- package/dist/ui/assets/dark-plus-Cs2F2srj.js +1 -0
- package/dist/ui/assets/dart-DkHntEIa.js +1 -0
- package/dist/ui/assets/dax-BkyTk9wS.js +1 -0
- package/dist/ui/assets/desktop-Dlh5hvp9.js +1 -0
- package/dist/ui/assets/diff-woXpYk--.js +1 -0
- package/dist/ui/assets/docker-IyjqRm3v.js +1 -0
- package/dist/ui/assets/dotenv-_5a1GRtc.js +1 -0
- package/dist/ui/assets/dracula-BHWKrbxM.js +1 -0
- package/dist/ui/assets/dracula-soft-5eyTD99u.js +1 -0
- package/dist/ui/assets/dream-maker-DW3nJb8Q.js +1 -0
- package/dist/ui/assets/edge-BPwY_RrJ.js +1 -0
- package/dist/ui/assets/elixir-DVH2yLJf.js +1 -0
- package/dist/ui/assets/elm-BrleA6gS.js +1 -0
- package/dist/ui/assets/emacs-lisp-C9PiwqqW.js +1 -0
- package/dist/ui/assets/erb-2SHiYe30.js +1 -0
- package/dist/ui/assets/erlang-Cphh6RMH.js +1 -0
- package/dist/ui/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/dist/ui/assets/everforest-light-Df2xbC6M.js +1 -0
- package/dist/ui/assets/fennel-DQxkIbk2.js +1 -0
- package/dist/ui/assets/fish-BJitypiv.js +1 -0
- package/dist/ui/assets/fluent-C03EYrpw.js +1 -0
- package/dist/ui/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
- package/dist/ui/assets/fortran-free-form-CYNrtFtB.js +1 -0
- package/dist/ui/assets/fsharp-D13ZGOAj.js +1 -0
- package/dist/ui/assets/gdresource-C0sCabJj.js +1 -0
- package/dist/ui/assets/gdscript-Cp2uCuqX.js +1 -0
- package/dist/ui/assets/gdshader-CBce3t8t.js +1 -0
- package/dist/ui/assets/genie-CV2tkWYe.js +1 -0
- package/dist/ui/assets/gherkin-DExj1W_8.js +1 -0
- package/dist/ui/assets/git-commit-BSykSTBG.js +1 -0
- package/dist/ui/assets/git-rebase-Bc7atMaV.js +1 -0
- package/dist/ui/assets/github-dark-C-LZuMrd.js +1 -0
- package/dist/ui/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/dist/ui/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/dist/ui/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/dist/ui/assets/github-light-EUqPIrTm.js +1 -0
- package/dist/ui/assets/github-light-default-BXViO-2h.js +1 -0
- package/dist/ui/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/dist/ui/assets/gleam-CSRkHgEL.js +1 -0
- package/dist/ui/assets/glimmer-js-DXeTDPtW.js +1 -0
- package/dist/ui/assets/glimmer-ts-CEOoXHU4.js +1 -0
- package/dist/ui/assets/glsl-5-43-Gsg.js +1 -0
- package/dist/ui/assets/gn-ilITqXS6.js +1 -0
- package/dist/ui/assets/gnuplot-7GGW24-e.js +1 -0
- package/dist/ui/assets/go-BJwz_mda.js +1 -0
- package/dist/ui/assets/graphql-Bk7Ah1KA.js +1 -0
- package/dist/ui/assets/groovy-CacY0gHj.js +1 -0
- package/dist/ui/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/dist/ui/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/dist/ui/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/dist/ui/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/dist/ui/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/dist/ui/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/dist/ui/assets/hack-DUHz4rCJ.js +1 -0
- package/dist/ui/assets/haml-BPCuuTPR.js +1 -0
- package/dist/ui/assets/handlebars-CHxmUsnU.js +1 -0
- package/dist/ui/assets/haskell-D8IpX4py.js +1 -0
- package/dist/ui/assets/haxe-OTjmBuCE.js +1 -0
- package/dist/ui/assets/hcl-Dh228itO.js +1 -0
- package/dist/ui/assets/hjson-CxZEssPk.js +1 -0
- package/dist/ui/assets/hlsl-Cvrh5tZx.js +1 -0
- package/dist/ui/assets/horizon-CE9ld1lL.js +1 -0
- package/dist/ui/assets/horizon-bright-Br1oVSNq.js +1 -0
- package/dist/ui/assets/houston-CsvMBhTu.js +1 -0
- package/dist/ui/assets/html-BBJqizz0.js +1 -0
- package/dist/ui/assets/html-derivative-ShTPCcKN.js +1 -0
- package/dist/ui/assets/http-VFTyziwA.js +1 -0
- package/dist/ui/assets/hurl-B8yxTa4r.js +1 -0
- package/dist/ui/assets/hxml-B0Qn7Nwc.js +1 -0
- package/dist/ui/assets/hy-CZbG8q4J.js +1 -0
- package/dist/ui/assets/imba-DsUTQ-LC.js +1 -0
- package/dist/ui/assets/ini-B5eOa1yu.js +1 -0
- package/dist/ui/assets/java-BZ5DAgJZ.js +1 -0
- package/dist/ui/assets/javascript-C_zuIEaC.js +1 -0
- package/dist/ui/assets/jinja-DWd6xfNr.js +1 -0
- package/dist/ui/assets/jison-BbY63d1V.js +1 -0
- package/dist/ui/assets/json-C4DnajZs.js +1 -0
- package/dist/ui/assets/json5-BR5RXkoi.js +1 -0
- package/dist/ui/assets/jsonc-CYpm1nAK.js +1 -0
- package/dist/ui/assets/jsonl-CmCQp5Yx.js +1 -0
- package/dist/ui/assets/jsonnet-CJTPZ8u_.js +1 -0
- package/dist/ui/assets/jssm-DXw9l8Rf.js +1 -0
- package/dist/ui/assets/jsx-C4AACieZ.js +1 -0
- package/dist/ui/assets/julia-sRu7EFMW.js +1 -0
- package/dist/ui/assets/just-DpZ9Sx1v.js +1 -0
- package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
- package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +1 -0
- package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +1 -0
- package/dist/ui/assets/kdl-CsD5j6eV.js +1 -0
- package/dist/ui/assets/kotlin-DhhofPvG.js +1 -0
- package/dist/ui/assets/kusto-BUv0MjJC.js +1 -0
- package/dist/ui/assets/laserwave-C_8bwKvT.js +1 -0
- package/dist/ui/assets/latex-B6a_uum7.js +1 -0
- package/dist/ui/assets/lean-CewbzKMR.js +1 -0
- package/dist/ui/assets/less-DVTAwKKz.js +1 -0
- package/dist/ui/assets/light-plus-DVQuIRkW.js +1 -0
- package/dist/ui/assets/liquid-B2sVpjjr.js +1 -0
- package/dist/ui/assets/llvm-Cm23YOpf.js +1 -0
- package/dist/ui/assets/log-BNLmms1o.js +1 -0
- package/dist/ui/assets/logo-Cluzi2Zq.js +1 -0
- package/dist/ui/assets/lua-DxJJll61.js +1 -0
- package/dist/ui/assets/luau-CNKltnaQ.js +1 -0
- package/dist/ui/assets/make-Dixweg8N.js +1 -0
- package/dist/ui/assets/markdown-BYOwaDjH.js +1 -0
- package/dist/ui/assets/marko-Dx8mw-Wx.js +1 -0
- package/dist/ui/assets/material-theme-Bm3Qr25_.js +1 -0
- package/dist/ui/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/dist/ui/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/dist/ui/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/dist/ui/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/dist/ui/assets/matlab-D7qyCx1q.js +1 -0
- package/dist/ui/assets/mdc-vNKeXEwR.js +1 -0
- package/dist/ui/assets/mdx-DQZ5AkYe.js +1 -0
- package/dist/ui/assets/mermaid-Bk4SNUv9.js +1 -0
- package/dist/ui/assets/min-dark-BSWPekZh.js +1 -0
- package/dist/ui/assets/min-light-DDpmG2fV.js +1 -0
- package/dist/ui/assets/mipsasm-BMqwQI7S.js +1 -0
- package/dist/ui/assets/mojo-BgCJLMeH.js +1 -0
- package/dist/ui/assets/monokai-CdkpiU2Y.js +1 -0
- package/dist/ui/assets/moonbit-CaWjb8XO.js +1 -0
- package/dist/ui/assets/move-B1IS1UjX.js +1 -0
- package/dist/ui/assets/narrat-_X_XdTYD.js +1 -0
- package/dist/ui/assets/nextflow-Bbiyy34d.js +1 -0
- package/dist/ui/assets/nextflow-groovy-Dc_ddanL.js +1 -0
- package/dist/ui/assets/nginx-DScQAGLT.js +1 -0
- package/dist/ui/assets/night-owl-DhmEMT88.js +1 -0
- package/dist/ui/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/dist/ui/assets/nim-lAJch9uT.js +1 -0
- package/dist/ui/assets/nix-IvuFDN5E.js +1 -0
- package/dist/ui/assets/nord-Cb4Vim4T.js +1 -0
- package/dist/ui/assets/nushell-DcLAeLz5.js +1 -0
- package/dist/ui/assets/objective-c-D1A_Heim.js +1 -0
- package/dist/ui/assets/objective-cpp-BsSzOQcm.js +1 -0
- package/dist/ui/assets/ocaml-O90oeIOV.js +1 -0
- package/dist/ui/assets/odin-B1RWQWA5.js +1 -0
- package/dist/ui/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/dist/ui/assets/one-light-D7Lr4KcI.js +1 -0
- package/dist/ui/assets/openscad-BUDT5pXO.js +1 -0
- package/dist/ui/assets/pascal-4ZHwLPI5.js +1 -0
- package/dist/ui/assets/perl-C_GkVo_E.js +1 -0
- package/dist/ui/assets/php-DziV3K6J.js +1 -0
- package/dist/ui/assets/pierre-dark-CpLgRqie.js +1 -0
- package/dist/ui/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
- package/dist/ui/assets/pierre-dark-soft-kZQmAZld.js +1 -0
- package/dist/ui/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
- package/dist/ui/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
- package/dist/ui/assets/pierre-light-CoaEpmwp.js +1 -0
- package/dist/ui/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
- package/dist/ui/assets/pierre-light-soft-lWLdNTOI.js +1 -0
- package/dist/ui/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
- package/dist/ui/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
- package/dist/ui/assets/pkl-ot-7Btpt.js +1 -0
- package/dist/ui/assets/plastic-DQwYfKfQ.js +1 -0
- package/dist/ui/assets/plsql-DGHpHOYJ.js +1 -0
- package/dist/ui/assets/po-BiJDBrnU.js +1 -0
- package/dist/ui/assets/poimandres-DRFjx7u4.js +1 -0
- package/dist/ui/assets/polar-C7UOKdEL.js +1 -0
- package/dist/ui/assets/postcss-BXeXVLqQ.js +1 -0
- package/dist/ui/assets/powerquery-DNMTfnFr.js +1 -0
- package/dist/ui/assets/powershell-DshXNtvi.js +1 -0
- package/dist/ui/assets/prisma-BsRQq5mF.js +1 -0
- package/dist/ui/assets/prolog-iXnhIJG7.js +1 -0
- package/dist/ui/assets/proto-DB4EqR-F.js +1 -0
- package/dist/ui/assets/pug-z75UIWVK.js +1 -0
- package/dist/ui/assets/puppet-CDv2pdJW.js +1 -0
- package/dist/ui/assets/purescript-9MfHhQsQ.js +1 -0
- package/dist/ui/assets/python-gzcpVVnB.js +1 -0
- package/dist/ui/assets/qml-Cmm4coz1.js +1 -0
- package/dist/ui/assets/qmldir-DCQb3MpD.js +1 -0
- package/dist/ui/assets/qss-Fe1Jh2GI.js +1 -0
- package/dist/ui/assets/r-Brd0axBE.js +1 -0
- package/dist/ui/assets/racket-DcIDlBhZ.js +1 -0
- package/dist/ui/assets/raku-B3gFvitq.js +1 -0
- package/dist/ui/assets/razor-DSbwmoiu.js +1 -0
- package/dist/ui/assets/red-CJ3rzSJv.js +1 -0
- package/dist/ui/assets/reg-CRGYupPL.js +1 -0
- package/dist/ui/assets/regexp-Bs3Uk-pY.js +1 -0
- package/dist/ui/assets/rel-BtDbiS_P.js +1 -0
- package/dist/ui/assets/review-payload-CbwCBKB1.js +1580 -0
- package/dist/ui/assets/riscv-Ckw8ddFX.js +1 -0
- package/dist/ui/assets/ron-VUp2lXgN.js +1 -0
- package/dist/ui/assets/rose-pine-BthvhNj6.js +1 -0
- package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
- package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +1 -0
- package/dist/ui/assets/rosmsg-CAekHB0j.js +1 -0
- package/dist/ui/assets/rst-ChIyKpUC.js +1 -0
- package/dist/ui/assets/ruby-BdAmvOMO.js +1 -0
- package/dist/ui/assets/rust-Cfkwpbl8.js +1 -0
- package/dist/ui/assets/sas-DpXn8hc5.js +1 -0
- package/dist/ui/assets/sass-DXrisJhu.js +1 -0
- package/dist/ui/assets/scala-DKOlJaKm.js +1 -0
- package/dist/ui/assets/scheme-DQCgrYNe.js +1 -0
- package/dist/ui/assets/scss-atX1Uuef.js +1 -0
- package/dist/ui/assets/sdbl-bTVj8UrX.js +1 -0
- package/dist/ui/assets/shaderlab-TOUzSsQk.js +1 -0
- package/dist/ui/assets/shellscript-BqgcAeMK.js +1 -0
- package/dist/ui/assets/shellsession-DfQSMRN5.js +1 -0
- package/dist/ui/assets/slack-dark-DnToyrRv.js +1 -0
- package/dist/ui/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/dist/ui/assets/smalltalk-B16xEiuN.js +1 -0
- package/dist/ui/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/dist/ui/assets/solarized-dark-DV17i1UV.js +1 -0
- package/dist/ui/assets/solarized-light-DSh2HLQt.js +1 -0
- package/dist/ui/assets/solidity-CKzVLygQ.js +1 -0
- package/dist/ui/assets/soy-DzP7zZTB.js +1 -0
- package/dist/ui/assets/sparql-D_iOobhT.js +1 -0
- package/dist/ui/assets/splunk-BC2Px7Mm.js +1 -0
- package/dist/ui/assets/sql-gmaLk66z.js +1 -0
- package/dist/ui/assets/ssh-config-BgfXC-Er.js +1 -0
- package/dist/ui/assets/stata-CJ0YTMcV.js +1 -0
- package/dist/ui/assets/stylus-B6D30XZt.js +1 -0
- package/dist/ui/assets/surrealql-LH7FciQz.js +1 -0
- package/dist/ui/assets/svelte-BME2PU6V.js +1 -0
- package/dist/ui/assets/swift-DonLKvLd.js +1 -0
- package/dist/ui/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/dist/ui/assets/system-verilog-DJ5XKQeo.js +1 -0
- package/dist/ui/assets/systemd-BxMlprV5.js +1 -0
- package/dist/ui/assets/talonscript-CohzipZa.js +1 -0
- package/dist/ui/assets/tasl-DMoTqEGO.js +1 -0
- package/dist/ui/assets/tcl-CZd0xW_V.js +1 -0
- package/dist/ui/assets/templ-DHBNIfYW.js +1 -0
- package/dist/ui/assets/terraform-DswuEJGm.js +1 -0
- package/dist/ui/assets/tex-C8-kPEzO.js +1 -0
- package/dist/ui/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/dist/ui/assets/toml-CcmNWLt0.js +1 -0
- package/dist/ui/assets/ts-tags-CiewV0vR.js +1 -0
- package/dist/ui/assets/tsv-sltzmVWM.js +1 -0
- package/dist/ui/assets/tsx-CUYPqmnq.js +1 -0
- package/dist/ui/assets/turtle-ByJddavk.js +1 -0
- package/dist/ui/assets/twig-BTkvsl0b.js +1 -0
- package/dist/ui/assets/typescript-DDQMaPwj.js +1 -0
- package/dist/ui/assets/typespec-B88KGewJ.js +1 -0
- package/dist/ui/assets/typst-DI99ib-x.js +1 -0
- package/dist/ui/assets/v-DETTlOr0.js +1 -0
- package/dist/ui/assets/vala-zf12oZj6.js +1 -0
- package/dist/ui/assets/vb-Djn5o6TS.js +1 -0
- package/dist/ui/assets/verilog-CiiDBU1e.js +1 -0
- package/dist/ui/assets/vesper-D5bVUKB1.js +1 -0
- package/dist/ui/assets/vhdl-BroJfC0k.js +1 -0
- package/dist/ui/assets/viml-DvXPmvsu.js +1 -0
- package/dist/ui/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/dist/ui/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/dist/ui/assets/vitesse-light-VbXTXTou.js +1 -0
- package/dist/ui/assets/vue-BH5SEWRH.js +1 -0
- package/dist/ui/assets/vue-html-BT7yeYez.js +1 -0
- package/dist/ui/assets/vue-vine-Cs5IN2rs.js +1 -0
- package/dist/ui/assets/vyper-CgoNMtux.js +1 -0
- package/dist/ui/assets/wasm-BnjxR4X6.js +1 -0
- package/dist/ui/assets/wasm-ByWQv1Qj.js +1 -0
- package/dist/ui/assets/wenyan-C8pVoKbM.js +1 -0
- package/dist/ui/assets/wgsl-BsKzXJz4.js +1 -0
- package/dist/ui/assets/wikitext-ClFFjSW2.js +1 -0
- package/dist/ui/assets/wit-DdvCle-K.js +1 -0
- package/dist/ui/assets/wolfram-DLL8P-h_.js +1 -0
- package/dist/ui/assets/workspace-app-B_BnSEHO.css +1 -0
- package/dist/ui/assets/workspace-app-DSFpnrIC.js +115 -0
- package/dist/ui/assets/xml-D3_1BEcO.js +1 -0
- package/dist/ui/assets/xsl-BBOCDn4Y.js +1 -0
- package/dist/ui/assets/yaml-lThBDT45.js +1 -0
- package/dist/ui/assets/zenscript-BnlCZFoB.js +1 -0
- package/dist/ui/assets/zig-CMLA9XwU.js +1 -0
- package/dist/ui/workspace-app.html +15 -0
- package/dist/user-config.js +228 -0
- package/dist/verification.js +74 -0
- package/dist/workspace-store.js +133 -0
- package/dist/workspaces.js +433 -0
- package/docs/adr/devspace-x-implementation-adrs.md +159 -0
- package/docs/agent-profile-schema.md +203 -0
- package/docs/artifact-exchange.md +44 -0
- package/docs/assets/devspace-logo-light.png +0 -0
- package/docs/assets/devspace-screenshot.png +0 -0
- package/docs/assets/v11-review-ui-after.png +0 -0
- package/docs/assets/v11-review-ui-before.png +0 -0
- package/docs/chatgpt-coding-workflow.md +215 -0
- package/docs/configuration.md +217 -0
- package/docs/gotchas.md +294 -0
- package/docs/local-agent-daemon.md +101 -0
- package/docs/security.md +197 -0
- package/docs/setup.md +174 -0
- package/examples/agents/claude-implementer.md +30 -0
- package/examples/agents/codex-explorer.md +27 -0
- package/examples/agents/codex-qa-tester.md +29 -0
- package/examples/agents/codex-worker.md +25 -0
- package/examples/agents/copilot-reviewer.md +25 -0
- package/examples/agents/cursor-agent-worker.md +26 -0
- package/examples/agents/grok-builder.md +10 -0
- package/examples/agents/opencode-explorer.md +27 -0
- package/examples/agents/pi-reviewer.md +27 -0
- package/package.json +102 -0
- package/schema/v1/hearth.schema.json +529 -0
- package/scripts/copy-dashboard.mjs +9 -0
- package/scripts/fix-node-pty-permissions.mjs +22 -0
- package/scripts/generate-config-schema.ts +9 -0
- package/skills/subagents/SKILL.md +57 -0
package/docs/setup.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Setup Guide
|
|
2
|
+
|
|
3
|
+
This guide covers ChatGPT and Coding Agents using Hearth with local projects.
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
- Node `>=22.19 <27`
|
|
8
|
+
- npm
|
|
9
|
+
- Git
|
|
10
|
+
- Bash, including Git Bash or WSL on Windows
|
|
11
|
+
- a public HTTPS URL that forwards to the local Hearth server, only when
|
|
12
|
+
ChatGPT will connect
|
|
13
|
+
|
|
14
|
+
Hearth does not create the public tunnel for you. ChatGPT users need a public
|
|
15
|
+
HTTPS URL forwarding to the local server: their own reverse proxy or tunnel,
|
|
16
|
+
or Hearth's relay-free direct exposure (own domain + TLS, see
|
|
17
|
+
`hearth expose`).
|
|
18
|
+
|
|
19
|
+
## Install And Configure
|
|
20
|
+
|
|
21
|
+
Run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx @sunshinelife83/hearth init
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The setup flow asks one question at a time.
|
|
28
|
+
|
|
29
|
+
First choose where you will use Hearth: ChatGPT, Coding Agents, or both.
|
|
30
|
+
Hearth uses that answer to skip setup that does not apply to you.
|
|
31
|
+
|
|
32
|
+
### Project roots
|
|
33
|
+
|
|
34
|
+
If you selected ChatGPT, choose the project folders it may open through
|
|
35
|
+
Hearth. Keep this narrow.
|
|
36
|
+
|
|
37
|
+
Examples:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
~/personal,~/work
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
/Users/alice/dev,/Users/alice/work
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
C:\Users\alice\dev,C:\Users\alice\work
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
A Coding Agents-only setup skips this question. Direct `hearth agents`
|
|
52
|
+
commands use the current Git project, or the current directory outside a
|
|
53
|
+
repository, with the authority of your local shell. MCP workspace operations
|
|
54
|
+
remain limited to the roots configured for ChatGPT.
|
|
55
|
+
|
|
56
|
+
### Coding Agents
|
|
57
|
+
|
|
58
|
+
Setup detects supported Coding Agents and asks which ones Hearth may use.
|
|
59
|
+
These choices are stored as provider objects under `subagents` in
|
|
60
|
+
`~/.hearth/config.jsonc`.
|
|
61
|
+
|
|
62
|
+
If you selected Coding Agents, setup prints:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx skills add Waishnav/hearth --skill subagents --global
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The Skills CLI asks which installed Coding Agents should receive the skill.
|
|
69
|
+
The skill uses `hearth agents targets`, `run`, `continue`, `show`, and `ls`.
|
|
70
|
+
These commands do not require `hearth serve`.
|
|
71
|
+
|
|
72
|
+
### Connect ChatGPT
|
|
73
|
+
|
|
74
|
+
Setup only asks for a public URL if you selected ChatGPT. Start your tunnel or
|
|
75
|
+
reverse proxy first and point it at:
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
http://127.0.0.1:7176
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Proxy the whole Hearth server from the root path of your tunnel or reverse
|
|
82
|
+
proxy — never mount only `/mcp`. Hearth also serves OAuth discovery and
|
|
83
|
+
authorization routes outside `/mcp`, and a path-scoped mount can strip `/mcp`
|
|
84
|
+
before the request reaches Hearth (arriving as `/` and failing).
|
|
85
|
+
|
|
86
|
+
Enter the public origin without `/mcp`:
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
https://your-tunnel-host.example.com
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Configure the MCP client with the full MCP endpoint:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
https://your-tunnel-host.example.com/mcp
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Protocol compatibility is automatic. Hearth serves MCP 2026-07-28 requests
|
|
99
|
+
directly and handles older 2025-era clients statelessly on the same endpoint;
|
|
100
|
+
there is no client-protocol setting to maintain.
|
|
101
|
+
|
|
102
|
+
A Coding Agents-only setup skips this section.
|
|
103
|
+
|
|
104
|
+
## Start The Server
|
|
105
|
+
|
|
106
|
+
Run:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npx @sunshinelife83/hearth serve
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
If your tunnel URL changes, update the persisted value before starting:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npx @sunshinelife83/hearth config set publicBaseUrl https://hearth.example.com
|
|
116
|
+
npx @sunshinelife83/hearth serve
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Use the origin only — never append `/mcp` to `publicBaseUrl`. The client URL is
|
|
120
|
+
`<origin>/mcp`. `hearth doctor --fix` repairs a saved `/mcp` suffix.
|
|
121
|
+
|
|
122
|
+
## Connect A Host (ChatGPT / Claude / Generic)
|
|
123
|
+
|
|
124
|
+
Run:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npx @sunshinelife83/hearth connect
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
It prints this PC's machine label, public `/mcp` URL, and copy-paste steps per
|
|
131
|
+
host. Use `hearth connect chatgpt|claude|generic` for one host. The dashboard
|
|
132
|
+
Connect tab shows the same. Keep one public URL per PC: OAuth
|
|
133
|
+
tokens are bound to that machine's resource URL and Owner password. The
|
|
134
|
+
machine label is diagnostic only and does not prevent cloning (see
|
|
135
|
+
`docs/security.md`).
|
|
136
|
+
|
|
137
|
+
## Approve The Client
|
|
138
|
+
|
|
139
|
+
When ChatGPT, Claude, or another MCP client connects, Hearth shows an Owner
|
|
140
|
+
password approval page. Enter the Owner password printed during setup.
|
|
141
|
+
|
|
142
|
+
The default config files are:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
~/.hearth/config.jsonc
|
|
146
|
+
~/.hearth/auth.json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Keep `auth.json` private.
|
|
150
|
+
|
|
151
|
+
## Check Your Setup
|
|
152
|
+
|
|
153
|
+
Run:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
npx @sunshinelife83/hearth doctor
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
The doctor command reports the resolved config, Node version, Node ABI, platform,
|
|
160
|
+
Git, Bash, public URL, allowed hosts, and SQLite native dependency status.
|
|
161
|
+
|
|
162
|
+
## Running From A Local Checkout
|
|
163
|
+
|
|
164
|
+
If you are developing Hearth itself instead of using the published package:
|
|
165
|
+
|
|
166
|
+
Local checkout development additionally requires pnpm 11.25.0, the version
|
|
167
|
+
pinned in `package.json`. Install it with `npm install --global pnpm@11.25.0`.
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
pnpm install --frozen-lockfile
|
|
171
|
+
pnpm dev
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The same setup rules apply.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: claude-implementer
|
|
4
|
+
description: Implementation profile for multi-file changes, careful refactors, and failing test repair.
|
|
5
|
+
provider: claude
|
|
6
|
+
model: sonnet
|
|
7
|
+
effort: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Take ownership of the requested implementation while keeping the change narrow.
|
|
11
|
+
Start by locating the smallest set of files that define the behavior, then make
|
|
12
|
+
the change in the existing style.
|
|
13
|
+
|
|
14
|
+
Working rules:
|
|
15
|
+
|
|
16
|
+
- Preserve existing public behavior unless the prompt explicitly asks to change it.
|
|
17
|
+
- Avoid broad rewrites, dependency churn, formatting-only edits, and speculative cleanup.
|
|
18
|
+
- Update or add focused tests when behavior changes.
|
|
19
|
+
- Run the most relevant checks available for the touched area, or explain why they could not run.
|
|
20
|
+
- If the task is ambiguous or blocked by missing context, stop with a clear blocker instead of guessing.
|
|
21
|
+
|
|
22
|
+
Report:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
summary:
|
|
26
|
+
tests_run:
|
|
27
|
+
blockers:
|
|
28
|
+
risks:
|
|
29
|
+
follow_up_needed:
|
|
30
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: codex-explorer
|
|
4
|
+
description: Read-only profile for bounded codebase questions, architecture tracing, and risk discovery.
|
|
5
|
+
provider: codex
|
|
6
|
+
model: gpt-5.4-mini
|
|
7
|
+
effort: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Investigate without editing. Use this profile to answer bounded questions such
|
|
11
|
+
as how a feature works, where a behavior is implemented, what depends on a
|
|
12
|
+
module, or which files are relevant before a change.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Prefer direct evidence from code over broad repository summaries.
|
|
16
|
+
- Cite file paths, symbols, and commands that support the conclusion.
|
|
17
|
+
- Separate confirmed facts from inferences.
|
|
18
|
+
- Call out unknowns that would require running the app, inspecting external state, or asking the user.
|
|
19
|
+
|
|
20
|
+
Report:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
answer:
|
|
24
|
+
evidence:
|
|
25
|
+
relevant_files:
|
|
26
|
+
unknowns:
|
|
27
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: codex-qa-tester
|
|
4
|
+
description: Manual QA profile for browser testing, workflow verification, and regression checks.
|
|
5
|
+
provider: codex
|
|
6
|
+
model: gpt-5.4-mini
|
|
7
|
+
effort: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Verify the requested user workflow from the outside, like a QA pass before
|
|
11
|
+
release. Prefer running the app and using browser tools when the task involves
|
|
12
|
+
UI, navigation, forms, visual states, or end-to-end behavior.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Start from the acceptance criteria in the prompt; turn vague requests into a small checklist.
|
|
16
|
+
- Use the browser to exercise real interactions when a local preview or dev server is available.
|
|
17
|
+
- Cover the main happy path plus at least one realistic edge or failure state.
|
|
18
|
+
- Capture exact reproduction steps for every issue found.
|
|
19
|
+
- Distinguish confirmed failures from untested risks.
|
|
20
|
+
|
|
21
|
+
Report:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
qa_summary:
|
|
25
|
+
checks_run:
|
|
26
|
+
issues_found:
|
|
27
|
+
reproduction_steps:
|
|
28
|
+
untested_risks:
|
|
29
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: codex-worker
|
|
4
|
+
description: Implementation profile for focused coding tasks with clear acceptance criteria.
|
|
5
|
+
provider: codex
|
|
6
|
+
model: gpt-5.4
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Implement the requested change with minimal surface area. Use this profile when
|
|
10
|
+
the prompt already defines the desired behavior or acceptance criteria.
|
|
11
|
+
|
|
12
|
+
- Read nearby code before editing.
|
|
13
|
+
- Match existing project patterns instead of introducing new abstractions.
|
|
14
|
+
- Keep unrelated files, formatting, and dependency metadata untouched.
|
|
15
|
+
- Prefer targeted tests for the changed behavior.
|
|
16
|
+
- Surface build, test, or environment failures exactly; do not summarize them as success.
|
|
17
|
+
|
|
18
|
+
Report:
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
summary:
|
|
22
|
+
tests_run:
|
|
23
|
+
blockers:
|
|
24
|
+
notes:
|
|
25
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: copilot-reviewer
|
|
4
|
+
description: Read-only review profile for bug risk, regressions, and missing test coverage.
|
|
5
|
+
provider: copilot
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Review the requested code path or diff without editing. Prioritize concrete
|
|
9
|
+
bugs, behavior regressions, security issues, and missing tests over style
|
|
10
|
+
preferences.
|
|
11
|
+
|
|
12
|
+
- Do not modify files.
|
|
13
|
+
- Lead with findings ordered by severity.
|
|
14
|
+
- Tie each finding to a specific file, symbol, or behavior.
|
|
15
|
+
- Ignore purely subjective style feedback unless it creates a maintenance risk.
|
|
16
|
+
- If no issue is found, say that clearly and mention any residual test or runtime risk.
|
|
17
|
+
|
|
18
|
+
Report:
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
findings:
|
|
22
|
+
evidence:
|
|
23
|
+
test_gaps:
|
|
24
|
+
residual_risk:
|
|
25
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: cursor-agent-worker
|
|
4
|
+
description: Implementation profile for UI-heavy changes, small refactors, and alternative solution passes.
|
|
5
|
+
provider: cursor
|
|
6
|
+
model: composer-2.5-fast
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Work on the requested change with a bias toward practical, shippable edits. This
|
|
10
|
+
profile is useful for UI polish, small refactors, and trying an alternate
|
|
11
|
+
implementation path.
|
|
12
|
+
|
|
13
|
+
- Keep edits scoped to the requested workflow or component.
|
|
14
|
+
- Preserve existing visual language and interaction patterns.
|
|
15
|
+
- Avoid changing data contracts or public APIs unless the prompt asks for it.
|
|
16
|
+
- Check responsive and empty/error states when touching UI.
|
|
17
|
+
- Report what was verified and what still needs a human look.
|
|
18
|
+
|
|
19
|
+
Report:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
summary:
|
|
23
|
+
verification:
|
|
24
|
+
blockers:
|
|
25
|
+
open_questions:
|
|
26
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grok-builder
|
|
3
|
+
description: Implement a focused change with Grok Build.
|
|
4
|
+
provider: grok
|
|
5
|
+
model: grok-4.5
|
|
6
|
+
effort: low
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Implement the requested change in the current workspace. Inspect the existing
|
|
10
|
+
patterns first, keep the patch focused, and report the verification you ran.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: opencode-explorer
|
|
4
|
+
description: Read-only profile for fast relevant-file discovery and small architecture questions.
|
|
5
|
+
provider: opencode
|
|
6
|
+
model: opencode/deepseek-v4-flash-free
|
|
7
|
+
effort: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Find the answer quickly without editing. Use this profile when the main need is
|
|
11
|
+
to identify relevant files, understand a small code path, or gather enough
|
|
12
|
+
context before implementation.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Search first, then read only the files needed to answer the prompt.
|
|
16
|
+
- Prefer precise file paths and symbols over broad summaries.
|
|
17
|
+
- Keep the response short unless the code path is genuinely complex.
|
|
18
|
+
- State uncertainty when evidence is incomplete.
|
|
19
|
+
|
|
20
|
+
Report:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
answer:
|
|
24
|
+
evidence:
|
|
25
|
+
relevant_files:
|
|
26
|
+
unknowns:
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: hearth-agent/v1
|
|
3
|
+
name: pi-reviewer
|
|
4
|
+
description: Read-only review profile for quick risk checks and targeted implementation questions.
|
|
5
|
+
provider: pi
|
|
6
|
+
model: openai-codex/gpt-5.5
|
|
7
|
+
effort: high
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Review or investigate only the area requested. This profile is best for quick
|
|
11
|
+
risk checks, small diffs, and targeted questions where a concise answer is more
|
|
12
|
+
valuable than a broad audit.
|
|
13
|
+
|
|
14
|
+
- Do not modify files.
|
|
15
|
+
- Focus on actionable issues that could affect correctness, safety, or tests.
|
|
16
|
+
- Cite the specific code evidence for each point.
|
|
17
|
+
- Avoid broad rewrite suggestions unless the current design blocks the requested behavior.
|
|
18
|
+
- Keep low-confidence observations under `unknowns`.
|
|
19
|
+
|
|
20
|
+
Report:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
findings:
|
|
24
|
+
evidence:
|
|
25
|
+
risk_level:
|
|
26
|
+
unknowns:
|
|
27
|
+
```
|
package/package.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sunshinelife83/hearth",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Expose a secure local coding workspace through an MCP server.",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"homepage": "https://github.com/Waishnav/hearth#readme",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/Waishnav/hearth/issues"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/Waishnav/hearth.git"
|
|
13
|
+
},
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"author": "Mounib Bouchareb <mounib.bouchareb16@gmail.com>",
|
|
16
|
+
"type": "module",
|
|
17
|
+
"main": "dist/server.js",
|
|
18
|
+
"bin": {
|
|
19
|
+
"hearth": "bin/hearth.js",
|
|
20
|
+
"hearth-agentd": "bin/hearth-agentd.js"
|
|
21
|
+
},
|
|
22
|
+
"directories": {
|
|
23
|
+
"doc": "docs",
|
|
24
|
+
"example": "examples",
|
|
25
|
+
"test": "test"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"bin",
|
|
29
|
+
"dist",
|
|
30
|
+
"docs",
|
|
31
|
+
"examples",
|
|
32
|
+
"schema",
|
|
33
|
+
"scripts",
|
|
34
|
+
"skills",
|
|
35
|
+
"README.md"
|
|
36
|
+
],
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@agentclientprotocol/sdk": "^1.1.0",
|
|
39
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.200",
|
|
40
|
+
"@anthropic-ai/sandbox-runtime": "0.0.71",
|
|
41
|
+
"@clack/prompts": "^1.5.1",
|
|
42
|
+
"@earendil-works/pi-coding-agent": "^0.80.3",
|
|
43
|
+
"@modelcontextprotocol/ext-apps": "^1.7.2",
|
|
44
|
+
"@modelcontextprotocol/node": "^2.0.0",
|
|
45
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
46
|
+
"@modelcontextprotocol/server": "^2.0.0",
|
|
47
|
+
"@opencode-ai/sdk": "^1.17.13",
|
|
48
|
+
"@pierre/diffs": "^1.3.6",
|
|
49
|
+
"better-result": "^2.10.0",
|
|
50
|
+
"better-sqlite3": "^12.10.0",
|
|
51
|
+
"cross-spawn": "^7.0.6",
|
|
52
|
+
"diff": "^8.0.3",
|
|
53
|
+
"drizzle-orm": "^0.45.2",
|
|
54
|
+
"express": "^5.2.1",
|
|
55
|
+
"jsonc-parser": "^3.3.1",
|
|
56
|
+
"lucide": "^1.24.0",
|
|
57
|
+
"react": "^19.2.6",
|
|
58
|
+
"react-dom": "^19.2.6",
|
|
59
|
+
"semver": "^7.8.4",
|
|
60
|
+
"yaml": "^2.9.0",
|
|
61
|
+
"zod": "^4.4.3"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
65
|
+
"@types/express": "^5.0.6",
|
|
66
|
+
"@types/node": "^25.9.1",
|
|
67
|
+
"@types/react": "^19.2.15",
|
|
68
|
+
"@types/react-dom": "^19.2.3",
|
|
69
|
+
"@types/semver": "^7.7.1",
|
|
70
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
71
|
+
"tsx": "^4.22.3",
|
|
72
|
+
"typescript": "^6.0.3",
|
|
73
|
+
"vite": "^8.0.14"
|
|
74
|
+
},
|
|
75
|
+
"optionalDependencies": {
|
|
76
|
+
"node-pty": "^1.1.0"
|
|
77
|
+
},
|
|
78
|
+
"engines": {
|
|
79
|
+
"node": ">=22.19 <27"
|
|
80
|
+
},
|
|
81
|
+
"publishConfig": {
|
|
82
|
+
"access": "public"
|
|
83
|
+
},
|
|
84
|
+
"overrides": {
|
|
85
|
+
"protobufjs": "7.6.4",
|
|
86
|
+
"ws": "8.21.0",
|
|
87
|
+
"undici": "8.5.0"
|
|
88
|
+
},
|
|
89
|
+
"scripts": {
|
|
90
|
+
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
91
|
+
"build": "pnpm clean && pnpm build:app && pnpm build:dashboard && tsc -p tsconfig.build.json",
|
|
92
|
+
"build:dashboard": "node scripts/copy-dashboard.mjs",
|
|
93
|
+
"build:app": "vite build",
|
|
94
|
+
"dev": "tsx watch --clear-screen=false src/cli.ts serve",
|
|
95
|
+
"postinstall": "node scripts/fix-node-pty-permissions.mjs",
|
|
96
|
+
"schema:config": "tsx scripts/generate-config-schema.ts",
|
|
97
|
+
"start": "node dist/cli.js serve",
|
|
98
|
+
"test": "tsx --test --test-concurrency=1 \"src/**/*.test.ts\"",
|
|
99
|
+
"test:package-install": "tsx --test --test-concurrency=1 \"test/package-install-smoke.test.ts\"",
|
|
100
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
101
|
+
}
|
|
102
|
+
}
|