@herbertgao/pi-extensions 2026.8.2 → 2026.8.4
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 +50 -2
- package/examples/pi-footer.json +275 -0
- package/node_modules/@herbertgao/pi-cc-extensions/README.en.md +6 -8
- package/node_modules/@herbertgao/pi-cc-extensions/README.md +5 -7
- package/node_modules/@herbertgao/pi-cc-extensions/assets/readme/hero.en.svg +101 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/config.ts +1 -17
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/panel.ts +5 -3
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/{utils/agent-summary.ts → feature/agent-summary/core.ts} +37 -35
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{agent-summary.ts → agent-summary/index.ts} +2 -6
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{session-reference.ts → reference/index.ts} +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{agent-autocomplete.ts → reference/subagent.ts} +19 -9
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{pi-startup-header.ts → shell/startup-header.ts} +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{working-message.ts → shell/working-message.ts} +5 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/index.ts +32 -28
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/compact-mode.ts +379 -85
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/default-mode.ts +727 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/index.ts +65 -775
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/{feature → renderer}/markdown-enhance.ts +35 -31
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{mouse-hover.ts → mouse/hover.ts} +5 -5
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{mouse-interaction.ts → mouse/interaction.ts} +34 -35
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{mouse-layout.ts → mouse/layout.ts} +5 -21
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{mouse-packets.ts → mouse/packets.ts} +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{mouse-scroll.ts → mouse/scroll.ts} +48 -37
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/ansi-utils.ts +56 -1
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/diff-renderer.ts +2 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/line-width-safety.ts +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool/diff/write-display-utils.ts +12 -0
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/write-execution.ts +1 -2
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-grouping.ts → tool/grouping.ts} +18 -8
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-result.ts → tool/result.ts} +4 -13
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/utils/fullscreen-detect.ts +0 -27
- package/node_modules/@herbertgao/pi-cc-extensions/package.json +3 -3
- package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +6 -0
- package/node_modules/@herbertgao/pi-subagents/package.json +2 -2
- package/node_modules/@herbertgao/pi-subagents/src/agent-manager.ts +1 -0
- package/node_modules/@herbertgao/pi-subagents/src/agent-runner.ts +3 -1
- package/node_modules/@herbertgao/pi-subagents/src/index.ts +33 -35
- package/node_modules/@herbertgao/pi-subagents/src/nested-tools.ts +26 -35
- package/node_modules/@herbertgao/pi-subagents/src/prompts.ts +15 -1
- package/node_modules/pi-footer/CHANGELOG.md +145 -0
- package/node_modules/pi-footer/LICENSE +21 -0
- package/node_modules/pi-footer/README.md +354 -0
- package/node_modules/pi-footer/package.json +68 -0
- package/node_modules/pi-footer/src/cache.ts +106 -0
- package/node_modules/pi-footer/src/colors.ts +237 -0
- package/node_modules/pi-footer/src/config.ts +202 -0
- package/node_modules/pi-footer/src/event-widgets.ts +41 -0
- package/node_modules/pi-footer/src/extension-statuses.ts +102 -0
- package/node_modules/pi-footer/src/git.ts +135 -0
- package/node_modules/pi-footer/src/index.ts +268 -0
- package/node_modules/pi-footer/src/metrics.ts +141 -0
- package/node_modules/pi-footer/src/presets.ts +383 -0
- package/node_modules/pi-footer/src/render.ts +114 -0
- package/node_modules/pi-footer/src/separators.ts +52 -0
- package/node_modules/pi-footer/src/types.ts +122 -0
- package/node_modules/pi-footer/src/ui/color-level-confirm.ts +22 -0
- package/node_modules/pi-footer/src/ui/color-options.ts +195 -0
- package/node_modules/pi-footer/src/ui/config-lifecycle.ts +61 -0
- package/node_modules/pi-footer/src/ui/edit-colors.ts +13 -0
- package/node_modules/pi-footer/src/ui/events.ts +35 -0
- package/node_modules/pi-footer/src/ui/extension-status-picker.ts +60 -0
- package/node_modules/pi-footer/src/ui/extension-statuses.ts +73 -0
- package/node_modules/pi-footer/src/ui/fields.ts +252 -0
- package/node_modules/pi-footer/src/ui/global-menu.ts +126 -0
- package/node_modules/pi-footer/src/ui/helpers.ts +44 -0
- package/node_modules/pi-footer/src/ui/layout.ts +17 -0
- package/node_modules/pi-footer/src/ui/line-list.ts +19 -0
- package/node_modules/pi-footer/src/ui/model.ts +64 -0
- package/node_modules/pi-footer/src/ui/navigation.ts +29 -0
- package/node_modules/pi-footer/src/ui/option-edit.ts +93 -0
- package/node_modules/pi-footer/src/ui/overlay-render.ts +103 -0
- package/node_modules/pi-footer/src/ui/screen-context.ts +18 -0
- package/node_modules/pi-footer/src/ui/screen-controller.ts +27 -0
- package/node_modules/pi-footer/src/ui/screen-render.ts +32 -0
- package/node_modules/pi-footer/src/ui/screen-state.ts +20 -0
- package/node_modules/pi-footer/src/ui/screen.ts +243 -0
- package/node_modules/pi-footer/src/ui/screens/add-widget.ts +92 -0
- package/node_modules/pi-footer/src/ui/screens/confirm-exit.ts +52 -0
- package/node_modules/pi-footer/src/ui/screens/controller.ts +12 -0
- package/node_modules/pi-footer/src/ui/screens/edit-colors.ts +68 -0
- package/node_modules/pi-footer/src/ui/screens/edit-widget.ts +115 -0
- package/node_modules/pi-footer/src/ui/screens/extension-status-row.ts +61 -0
- package/node_modules/pi-footer/src/ui/screens/global.ts +75 -0
- package/node_modules/pi-footer/src/ui/screens/line-list.ts +108 -0
- package/node_modules/pi-footer/src/ui/screens/main.ts +99 -0
- package/node_modules/pi-footer/src/ui/screens/terminal.ts +121 -0
- package/node_modules/pi-footer/src/ui/screens/widget-list.ts +154 -0
- package/node_modules/pi-footer/src/ui/terminal-menu.ts +32 -0
- package/node_modules/pi-footer/src/ui/theme.ts +48 -0
- package/node_modules/pi-footer/src/ui/title-bar.ts +100 -0
- package/node_modules/pi-footer/src/ui/widget-actions.ts +76 -0
- package/node_modules/pi-footer/src/ui.ts +66 -0
- package/node_modules/pi-footer/src/widgets/context.ts +28 -0
- package/node_modules/pi-footer/src/widgets/core/active-tools.ts +17 -0
- package/node_modules/pi-footer/src/widgets/core/context-window.ts +24 -0
- package/node_modules/pi-footer/src/widgets/core/cwd-basename.ts +19 -0
- package/node_modules/pi-footer/src/widgets/core/cwd.ts +108 -0
- package/node_modules/pi-footer/src/widgets/core/event.ts +34 -0
- package/node_modules/pi-footer/src/widgets/core/external-status.ts +102 -0
- package/node_modules/pi-footer/src/widgets/core/model-provider.ts +20 -0
- package/node_modules/pi-footer/src/widgets/core/model.ts +35 -0
- package/node_modules/pi-footer/src/widgets/core/provider.ts +17 -0
- package/node_modules/pi-footer/src/widgets/core/session-name.ts +17 -0
- package/node_modules/pi-footer/src/widgets/core/text-verbosity.ts +17 -0
- package/node_modules/pi-footer/src/widgets/core/thinking-level.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/ahead-behind.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/branch.ts +81 -0
- package/node_modules/pi-footer/src/widgets/git/clean.ts +19 -0
- package/node_modules/pi-footer/src/widgets/git/deletions.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/diff.ts +38 -0
- package/node_modules/pi-footer/src/widgets/git/insertions.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/remote.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/root.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/sha.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/staged.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/status.ts +19 -0
- package/node_modules/pi-footer/src/widgets/git/unstaged.ts +17 -0
- package/node_modules/pi-footer/src/widgets/git/untracked.ts +17 -0
- package/node_modules/pi-footer/src/widgets/instance.ts +118 -0
- package/node_modules/pi-footer/src/widgets/layout/custom-text.ts +18 -0
- package/node_modules/pi-footer/src/widgets/layout/flex-separator.ts +32 -0
- package/node_modules/pi-footer/src/widgets/layout/separator.ts +57 -0
- package/node_modules/pi-footer/src/widgets/layout/spacer.ts +31 -0
- package/node_modules/pi-footer/src/widgets/options.ts +122 -0
- package/node_modules/pi-footer/src/widgets/project/runtime.ts +361 -0
- package/node_modules/pi-footer/src/widgets/registry.ts +223 -0
- package/node_modules/pi-footer/src/widgets/session/assistant-messages.ts +17 -0
- package/node_modules/pi-footer/src/widgets/session/compactions.ts +17 -0
- package/node_modules/pi-footer/src/widgets/session/elapsed.ts +18 -0
- package/node_modules/pi-footer/src/widgets/session/last-activity.ts +18 -0
- package/node_modules/pi-footer/src/widgets/session/messages.ts +19 -0
- package/node_modules/pi-footer/src/widgets/session/session-id.ts +17 -0
- package/node_modules/pi-footer/src/widgets/session/session-start.ts +18 -0
- package/node_modules/pi-footer/src/widgets/session/tool-results.ts +17 -0
- package/node_modules/pi-footer/src/widgets/session/total-messages.ts +19 -0
- package/node_modules/pi-footer/src/widgets/session/total-time.ts +18 -0
- package/node_modules/pi-footer/src/widgets/session/user-messages.ts +17 -0
- package/node_modules/pi-footer/src/widgets/store.ts +26 -0
- package/node_modules/pi-footer/src/widgets/tokens/cache-hit-rate.ts +55 -0
- package/node_modules/pi-footer/src/widgets/tokens/cache-read.ts +18 -0
- package/node_modules/pi-footer/src/widgets/tokens/cache-write.ts +18 -0
- package/node_modules/pi-footer/src/widgets/tokens/context-bar.ts +108 -0
- package/node_modules/pi-footer/src/widgets/tokens/context-length.ts +26 -0
- package/node_modules/pi-footer/src/widgets/tokens/context-remaining.ts +29 -0
- package/node_modules/pi-footer/src/widgets/tokens/context.ts +29 -0
- package/node_modules/pi-footer/src/widgets/tokens/cost.ts +51 -0
- package/node_modules/pi-footer/src/widgets/tokens/input-speed.ts +25 -0
- package/node_modules/pi-footer/src/widgets/tokens/input-tokens.ts +18 -0
- package/node_modules/pi-footer/src/widgets/tokens/output-speed.ts +25 -0
- package/node_modules/pi-footer/src/widgets/tokens/output-tokens.ts +18 -0
- package/node_modules/pi-footer/src/widgets/tokens/tokens.ts +20 -0
- package/node_modules/pi-footer/src/widgets/tokens/total-speed.ts +25 -0
- package/node_modules/pi-footer/src/widgets/tokens/total-tokens.ts +18 -0
- package/node_modules/pi-footer/src/widgets/types.ts +181 -0
- package/node_modules/pi-footer/src/widgets/utils/colors.ts +11 -0
- package/node_modules/pi-footer/src/widgets/utils/context.ts +112 -0
- package/node_modules/pi-footer/src/widgets/utils/session.ts +19 -0
- package/node_modules/pi-footer/src/widgets/utils/token-format.ts +78 -0
- package/node_modules/pi-mcp-adapter/CHANGELOG.md +19 -0
- package/node_modules/pi-mcp-adapter/README.md +19 -4
- package/node_modules/pi-mcp-adapter/agent-dir.ts +40 -0
- package/node_modules/pi-mcp-adapter/commands.ts +12 -2
- package/node_modules/pi-mcp-adapter/direct-tools.ts +6 -8
- package/node_modules/pi-mcp-adapter/index.ts +15 -3
- package/node_modules/pi-mcp-adapter/mcp-auth-flow.ts +87 -4
- package/node_modules/pi-mcp-adapter/mcp-callback-server.ts +138 -61
- package/node_modules/pi-mcp-adapter/mcp-oauth-provider.ts +43 -4
- package/node_modules/pi-mcp-adapter/oauth.ts +48 -0
- package/node_modules/pi-mcp-adapter/package.json +8 -2
- package/node_modules/pi-mcp-adapter/proxy-modes.ts +8 -10
- package/node_modules/pi-mcp-adapter/tool-registrar.ts +187 -3
- package/node_modules/pi-mcp-adapter/types.ts +2 -0
- package/node_modules/pi-web-access/CHANGELOG.md +45 -0
- package/node_modules/pi-web-access/README.md +104 -29
- package/node_modules/pi-web-access/bocha.ts +221 -0
- package/node_modules/pi-web-access/curator-page.ts +113 -12
- package/node_modules/pi-web-access/curator-server.ts +56 -20
- package/node_modules/pi-web-access/datalab-pdf-extract.ts +568 -0
- package/node_modules/pi-web-access/duckduckgo.ts +123 -0
- package/node_modules/pi-web-access/extract.ts +288 -143
- package/node_modules/pi-web-access/feature-config.ts +29 -0
- package/node_modules/pi-web-access/gemini-api.ts +4 -0
- package/node_modules/pi-web-access/gemini-search.ts +45 -12
- package/node_modules/pi-web-access/gemini-web.ts +68 -3
- package/node_modules/pi-web-access/index.ts +160 -71
- package/node_modules/pi-web-access/jina-search.ts +284 -0
- package/node_modules/pi-web-access/kagi.ts +12 -12
- package/node_modules/pi-web-access/openai-search.ts +12 -2
- package/node_modules/pi-web-access/package.json +4 -3
- package/node_modules/pi-web-access/pdf-extract.ts +327 -228
- package/node_modules/pi-web-access/storage.ts +440 -2
- package/node_modules/pi-web-access/summary-model-scope.ts +1 -1
- package/node_modules/pi-web-access/summary-review.ts +4 -2
- package/node_modules/pi-web-access/video-extract.ts +10 -8
- package/node_modules/pi-web-access/xai-search.ts +12 -2
- package/node_modules/pi-web-access/youtube-extract.ts +2 -1
- package/node_modules/remote-pi/LICENSE +21 -0
- package/node_modules/remote-pi/README.md +675 -0
- package/node_modules/remote-pi/dist/actions/handlers.d.ts +122 -0
- package/node_modules/remote-pi/dist/actions/handlers.js +160 -0
- package/node_modules/remote-pi/dist/actions/handlers.js.map +1 -0
- package/node_modules/remote-pi/dist/actions/registry.d.ts +39 -0
- package/node_modules/remote-pi/dist/actions/registry.js +58 -0
- package/node_modules/remote-pi/dist/actions/registry.js.map +1 -0
- package/node_modules/remote-pi/dist/bin/supervisord.d.ts +2 -0
- package/node_modules/remote-pi/dist/bin/supervisord.js +86 -0
- package/node_modules/remote-pi/dist/bin/supervisord.js.map +1 -0
- package/node_modules/remote-pi/dist/commands/builtin_mirror.d.ts +58 -0
- package/node_modules/remote-pi/dist/commands/builtin_mirror.js +71 -0
- package/node_modules/remote-pi/dist/commands/builtin_mirror.js.map +1 -0
- package/node_modules/remote-pi/dist/commands/list_commands.d.ts +60 -0
- package/node_modules/remote-pi/dist/commands/list_commands.js +73 -0
- package/node_modules/remote-pi/dist/commands/list_commands.js.map +1 -0
- package/node_modules/remote-pi/dist/config.d.ts +62 -0
- package/node_modules/remote-pi/dist/config.js +115 -0
- package/node_modules/remote-pi/dist/config.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/client.d.ts +20 -0
- package/node_modules/remote-pi/dist/daemon/client.js +131 -0
- package/node_modules/remote-pi/dist/daemon/client.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/control_protocol.d.ts +176 -0
- package/node_modules/remote-pi/dist/daemon/control_protocol.js +63 -0
- package/node_modules/remote-pi/dist/daemon/control_protocol.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/cron_log.d.ts +45 -0
- package/node_modules/remote-pi/dist/daemon/cron_log.js +72 -0
- package/node_modules/remote-pi/dist/daemon/cron_log.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/cron_registry.d.ts +80 -0
- package/node_modules/remote-pi/dist/daemon/cron_registry.js +194 -0
- package/node_modules/remote-pi/dist/daemon/cron_registry.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/id.d.ts +24 -0
- package/node_modules/remote-pi/dist/daemon/id.js +36 -0
- package/node_modules/remote-pi/dist/daemon/id.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/install.d.ts +170 -0
- package/node_modules/remote-pi/dist/daemon/install.js +547 -0
- package/node_modules/remote-pi/dist/daemon/install.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/registry.d.ts +63 -0
- package/node_modules/remote-pi/dist/daemon/registry.js +153 -0
- package/node_modules/remote-pi/dist/daemon/registry.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/rpc_child.d.ts +194 -0
- package/node_modules/remote-pi/dist/daemon/rpc_child.js +389 -0
- package/node_modules/remote-pi/dist/daemon/rpc_child.js.map +1 -0
- package/node_modules/remote-pi/dist/daemon/supervisor.d.ts +93 -0
- package/node_modules/remote-pi/dist/daemon/supervisor.js +596 -0
- package/node_modules/remote-pi/dist/daemon/supervisor.js.map +1 -0
- package/node_modules/remote-pi/dist/extension_ui_bridge.d.ts +26 -0
- package/node_modules/remote-pi/dist/extension_ui_bridge.js +341 -0
- package/node_modules/remote-pi/dist/extension_ui_bridge.js.map +1 -0
- package/node_modules/remote-pi/dist/index.d.ts +213 -0
- package/node_modules/remote-pi/dist/index.js +4996 -0
- package/node_modules/remote-pi/dist/index.js.map +1 -0
- package/node_modules/remote-pi/dist/mcp/mesh_result.d.ts +10 -0
- package/node_modules/remote-pi/dist/mcp/mesh_result.js +42 -0
- package/node_modules/remote-pi/dist/mcp/mesh_result.js.map +1 -0
- package/node_modules/remote-pi/dist/mcp/mesh_server.d.ts +16 -0
- package/node_modules/remote-pi/dist/mcp/mesh_server.js +327 -0
- package/node_modules/remote-pi/dist/mcp/mesh_server.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/canonical.d.ts +30 -0
- package/node_modules/remote-pi/dist/mesh/canonical.js +61 -0
- package/node_modules/remote-pi/dist/mesh/canonical.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/client.d.ts +18 -0
- package/node_modules/remote-pi/dist/mesh/client.js +125 -0
- package/node_modules/remote-pi/dist/mesh/client.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/encoding.d.ts +38 -0
- package/node_modules/remote-pi/dist/mesh/encoding.js +216 -0
- package/node_modules/remote-pi/dist/mesh/encoding.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/self_revoke.d.ts +73 -0
- package/node_modules/remote-pi/dist/mesh/self_revoke.js +401 -0
- package/node_modules/remote-pi/dist/mesh/self_revoke.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/siblings.d.ts +49 -0
- package/node_modules/remote-pi/dist/mesh/siblings.js +159 -0
- package/node_modules/remote-pi/dist/mesh/siblings.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/types.d.ts +34 -0
- package/node_modules/remote-pi/dist/mesh/types.js +11 -0
- package/node_modules/remote-pi/dist/mesh/types.js.map +1 -0
- package/node_modules/remote-pi/dist/mesh/verify.d.ts +17 -0
- package/node_modules/remote-pi/dist/mesh/verify.js +86 -0
- package/node_modules/remote-pi/dist/mesh/verify.js.map +1 -0
- package/node_modules/remote-pi/dist/pairing/crypto.d.ts +8 -0
- package/node_modules/remote-pi/dist/pairing/crypto.js +22 -0
- package/node_modules/remote-pi/dist/pairing/crypto.js.map +1 -0
- package/node_modules/remote-pi/dist/pairing/handshake.d.ts +28 -0
- package/node_modules/remote-pi/dist/pairing/handshake.js +113 -0
- package/node_modules/remote-pi/dist/pairing/handshake.js.map +1 -0
- package/node_modules/remote-pi/dist/pairing/noise-sha256.d.ts +16 -0
- package/node_modules/remote-pi/dist/pairing/noise-sha256.js +103 -0
- package/node_modules/remote-pi/dist/pairing/noise-sha256.js.map +1 -0
- package/node_modules/remote-pi/dist/pairing/qr.d.ts +59 -0
- package/node_modules/remote-pi/dist/pairing/qr.js +125 -0
- package/node_modules/remote-pi/dist/pairing/qr.js.map +1 -0
- package/node_modules/remote-pi/dist/pairing/storage.d.ts +120 -0
- package/node_modules/remote-pi/dist/pairing/storage.js +604 -0
- package/node_modules/remote-pi/dist/pairing/storage.js.map +1 -0
- package/node_modules/remote-pi/dist/protocol/codec.d.ts +7 -0
- package/node_modules/remote-pi/dist/protocol/codec.js +49 -0
- package/node_modules/remote-pi/dist/protocol/codec.js.map +1 -0
- package/node_modules/remote-pi/dist/protocol/types.d.ts +393 -0
- package/node_modules/remote-pi/dist/protocol/types.js +2 -0
- package/node_modules/remote-pi/dist/protocol/types.js.map +1 -0
- package/node_modules/remote-pi/dist/rooms.d.ts +29 -0
- package/node_modules/remote-pi/dist/rooms.js +57 -0
- package/node_modules/remote-pi/dist/rooms.js.map +1 -0
- package/node_modules/remote-pi/dist/session/address.d.ts +49 -0
- package/node_modules/remote-pi/dist/session/address.js +58 -0
- package/node_modules/remote-pi/dist/session/address.js.map +1 -0
- package/node_modules/remote-pi/dist/session/agent_bridge.d.ts +55 -0
- package/node_modules/remote-pi/dist/session/agent_bridge.js +146 -0
- package/node_modules/remote-pi/dist/session/agent_bridge.js.map +1 -0
- package/node_modules/remote-pi/dist/session/bridge.d.ts +37 -0
- package/node_modules/remote-pi/dist/session/bridge.js +130 -0
- package/node_modules/remote-pi/dist/session/bridge.js.map +1 -0
- package/node_modules/remote-pi/dist/session/broker.d.ts +189 -0
- package/node_modules/remote-pi/dist/session/broker.js +507 -0
- package/node_modules/remote-pi/dist/session/broker.js.map +1 -0
- package/node_modules/remote-pi/dist/session/broker_remote.d.ts +74 -0
- package/node_modules/remote-pi/dist/session/broker_remote.js +583 -0
- package/node_modules/remote-pi/dist/session/broker_remote.js.map +1 -0
- package/node_modules/remote-pi/dist/session/cwd_lock.d.ts +33 -0
- package/node_modules/remote-pi/dist/session/cwd_lock.js +126 -0
- package/node_modules/remote-pi/dist/session/cwd_lock.js.map +1 -0
- package/node_modules/remote-pi/dist/session/envelope.d.ts +33 -0
- package/node_modules/remote-pi/dist/session/envelope.js +117 -0
- package/node_modules/remote-pi/dist/session/envelope.js.map +1 -0
- package/node_modules/remote-pi/dist/session/global_config.d.ts +33 -0
- package/node_modules/remote-pi/dist/session/global_config.js +73 -0
- package/node_modules/remote-pi/dist/session/global_config.js.map +1 -0
- package/node_modules/remote-pi/dist/session/ipc.d.ts +27 -0
- package/node_modules/remote-pi/dist/session/ipc.js +22 -0
- package/node_modules/remote-pi/dist/session/ipc.js.map +1 -0
- package/node_modules/remote-pi/dist/session/leader_election.d.ts +32 -0
- package/node_modules/remote-pi/dist/session/leader_election.js +106 -0
- package/node_modules/remote-pi/dist/session/leader_election.js.map +1 -0
- package/node_modules/remote-pi/dist/session/local_config.d.ts +55 -0
- package/node_modules/remote-pi/dist/session/local_config.js +157 -0
- package/node_modules/remote-pi/dist/session/local_config.js.map +1 -0
- package/node_modules/remote-pi/dist/session/mesh_message.d.ts +20 -0
- package/node_modules/remote-pi/dist/session/mesh_message.js +28 -0
- package/node_modules/remote-pi/dist/session/mesh_message.js.map +1 -0
- package/node_modules/remote-pi/dist/session/mesh_node.d.ts +116 -0
- package/node_modules/remote-pi/dist/session/mesh_node.js +573 -0
- package/node_modules/remote-pi/dist/session/mesh_node.js.map +1 -0
- package/node_modules/remote-pi/dist/session/peer.d.ts +139 -0
- package/node_modules/remote-pi/dist/session/peer.js +451 -0
- package/node_modules/remote-pi/dist/session/peer.js.map +1 -0
- package/node_modules/remote-pi/dist/session/peer_inventory.d.ts +13 -0
- package/node_modules/remote-pi/dist/session/peer_inventory.js +48 -0
- package/node_modules/remote-pi/dist/session/peer_inventory.js.map +1 -0
- package/node_modules/remote-pi/dist/session/peer_limits.d.ts +9 -0
- package/node_modules/remote-pi/dist/session/peer_limits.js +21 -0
- package/node_modules/remote-pi/dist/session/peer_limits.js.map +1 -0
- package/node_modules/remote-pi/dist/session/setup_wizard.d.ts +39 -0
- package/node_modules/remote-pi/dist/session/setup_wizard.js +63 -0
- package/node_modules/remote-pi/dist/session/setup_wizard.js.map +1 -0
- package/node_modules/remote-pi/dist/session/tool_gate.d.ts +5 -0
- package/node_modules/remote-pi/dist/session/tool_gate.js +11 -0
- package/node_modules/remote-pi/dist/session/tool_gate.js.map +1 -0
- package/node_modules/remote-pi/dist/session/tools.d.ts +24 -0
- package/node_modules/remote-pi/dist/session/tools.js +252 -0
- package/node_modules/remote-pi/dist/session/tools.js.map +1 -0
- package/node_modules/remote-pi/dist/session/wizard.d.ts +13 -0
- package/node_modules/remote-pi/dist/session/wizard.js +20 -0
- package/node_modules/remote-pi/dist/session/wizard.js.map +1 -0
- package/node_modules/remote-pi/dist/settings.d.ts +15 -0
- package/node_modules/remote-pi/dist/settings.js +52 -0
- package/node_modules/remote-pi/dist/settings.js.map +1 -0
- package/node_modules/remote-pi/dist/transport/peer_channel.d.ts +37 -0
- package/node_modules/remote-pi/dist/transport/peer_channel.js +98 -0
- package/node_modules/remote-pi/dist/transport/peer_channel.js.map +1 -0
- package/node_modules/remote-pi/dist/transport/pi_forward_client.d.ts +29 -0
- package/node_modules/remote-pi/dist/transport/pi_forward_client.js +62 -0
- package/node_modules/remote-pi/dist/transport/pi_forward_client.js.map +1 -0
- package/node_modules/remote-pi/dist/transport/relay_client.d.ts +91 -0
- package/node_modules/remote-pi/dist/transport/relay_client.js +206 -0
- package/node_modules/remote-pi/dist/transport/relay_client.js.map +1 -0
- package/node_modules/remote-pi/dist/ui/footer.d.ts +32 -0
- package/node_modules/remote-pi/dist/ui/footer.js +34 -0
- package/node_modules/remote-pi/dist/ui/footer.js.map +1 -0
- package/node_modules/remote-pi/docs/daemon.md +289 -0
- package/node_modules/remote-pi/package.json +88 -0
- package/node_modules/remote-pi/service-templates/launchd.plist.template +35 -0
- package/node_modules/remote-pi/service-templates/systemd.service.template +19 -0
- package/node_modules/remote-pi/service-templates/task-launcher.vbs.template +10 -0
- package/node_modules/remote-pi/service-templates/task-scheduler.xml.template +38 -0
- package/node_modules/remote-pi/skills/agent-network/SKILL.md +310 -0
- package/package.json +25 -10
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/tool-diff/write-display-utils.ts +0 -29
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{session-reference-core.ts → reference/session.ts} +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/{pi-aliases.ts → shell/aliases.ts} +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/ATTRIBUTION.md +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/diff-presentation.ts +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/index.ts +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/render-utils.ts +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/shiki-highlight.ts +0 -0
- /package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/{tool-diff → tool/diff}/types.ts +0 -0
package/README.md
CHANGED
|
@@ -14,15 +14,63 @@ The package bundles 11 active `@herbertgao/*` child packages, including `@herber
|
|
|
14
14
|
- `@juicesharp/rpiv-ask-user-question@2.4.0`
|
|
15
15
|
- `@narumitw/pi-btw@0.50.0`
|
|
16
16
|
- `@pi-plugins/fast-mode@0.1.9`
|
|
17
|
-
- `pi-mcp-adapter@2.
|
|
17
|
+
- `pi-mcp-adapter@2.23.0`
|
|
18
|
+
- `pi-footer@0.5.1`
|
|
18
19
|
- `pi-lens@3.8.74`
|
|
19
|
-
- `pi-web-access@0.
|
|
20
|
+
- `pi-web-access@0.22.0`
|
|
21
|
+
- `remote-pi@0.7.0`
|
|
20
22
|
- `@czottmann/pi-automode@1.11.0`
|
|
21
23
|
|
|
22
24
|
Pi loads their extensions and skills through `node_modules/` paths inside one package root. The upstream companions are pinned and bundled, not forked or renamed.
|
|
23
25
|
|
|
26
|
+
If `pi-footer` was installed separately before upgrading to an aggregate release that includes it, remove the standalone source shown by `pi list` so only the bundled copy loads. For the pinned standalone install used while preparing this integration:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pi remove npm:pi-footer@0.5.1
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Recommended footer
|
|
33
|
+
|
|
34
|
+
`pi-footer` is enabled by the aggregate. To use the recommended compact layout for MCP, Auto mode, LSP, Ponytail, Remote Pi, and Subagents, copy the bundled example to Pi's user config directory:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
agent_dir="${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}"
|
|
38
|
+
mkdir -p "$agent_dir/extensions"
|
|
39
|
+
cp "$agent_dir/npm/node_modules/@herbertgao/pi-extensions/examples/pi-footer.json" \
|
|
40
|
+
"$agent_dir/extensions/pi-footer.json"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The same copy is linked here as [`examples/pi-footer.json`](examples/pi-footer.json). The example preserves the native path, Git branch, session, token/context, model, and thinking information. It uses a gray `•` separator and shows Remote Pi/Subagents only when those extensions publish status. Restart Pi or run `/reload` after copying. Existing config is intentionally never overwritten automatically.
|
|
44
|
+
|
|
45
|
+
For the intended compact status text, merge these optional companion settings into existing files rather than replacing the files:
|
|
46
|
+
|
|
47
|
+
```jsonc
|
|
48
|
+
// ~/.pi/agent/mcp.json
|
|
49
|
+
{
|
|
50
|
+
"settings": {
|
|
51
|
+
"mcpFooterStatus": "compact",
|
|
52
|
+
"showStatusIcon": false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// ~/.pi-lens/config.json
|
|
57
|
+
{
|
|
58
|
+
"widget": {
|
|
59
|
+
"visible": false
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The copy command replaces an existing `pi-footer.json`; review or back it up first. Only one footer-replacement extension should be enabled at a time. Use `/footer` for interactive changes.
|
|
65
|
+
|
|
24
66
|
Pi 0.84.1 or newer should use native `fullscreen` TUI mode. The deprecated `@herbertgao/pi-fixed-editor` legacy package is intentionally not bundled.
|
|
25
67
|
|
|
68
|
+
### Remote Pi trust boundary
|
|
69
|
+
|
|
70
|
+
Configure `REMOTE_PI_RELAY` to a private relay, preferably reachable only through Tailscale or another private network, **before** first running `/remote-pi`. TLS/Tailscale protects traffic in transit but the relay process can read routed content; `remote-pi@0.7.0` is not end-to-end encrypted.
|
|
71
|
+
|
|
72
|
+
Known accepted `0.7.0` limitations: pairing URI/token data is persisted in Pi session data and may enter model context during its short validity window; local broker/supervisor IPC trusts processes running as the same OS user; cancelling first-time setup can retain its cwd lock until Pi exits. Do not use the public relay or run untrusted local processes if those boundaries are unacceptable.
|
|
73
|
+
|
|
26
74
|
See the [repository README](https://github.com/HerbertGao/pi-extensions#readme) for the complete package list and provenance.
|
|
27
75
|
|
|
28
76
|
## License
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"enabled": true,
|
|
4
|
+
"preset": "pi-footer",
|
|
5
|
+
"lines": [
|
|
6
|
+
[
|
|
7
|
+
{
|
|
8
|
+
"id": "core-cwd",
|
|
9
|
+
"type": "cwd",
|
|
10
|
+
"enabled": true,
|
|
11
|
+
"options": {
|
|
12
|
+
"raw": true,
|
|
13
|
+
"fg": "pi:dim",
|
|
14
|
+
"cwdDisplayStyle": "full-home"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "core-branch",
|
|
19
|
+
"type": "git-branch",
|
|
20
|
+
"enabled": true,
|
|
21
|
+
"options": {
|
|
22
|
+
"raw": true,
|
|
23
|
+
"fg": "pi:dim",
|
|
24
|
+
"hideWhenEmpty": true,
|
|
25
|
+
"gitBranchDisplayStyle": "round-brackets"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "core-session",
|
|
30
|
+
"type": "session-name",
|
|
31
|
+
"enabled": true,
|
|
32
|
+
"options": {
|
|
33
|
+
"raw": true,
|
|
34
|
+
"fg": "pi:dim",
|
|
35
|
+
"hideWhenEmpty": true
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
[
|
|
40
|
+
{
|
|
41
|
+
"id": "core-tokens",
|
|
42
|
+
"type": "tokens",
|
|
43
|
+
"enabled": true,
|
|
44
|
+
"options": {
|
|
45
|
+
"raw": true,
|
|
46
|
+
"fg": "pi:dim",
|
|
47
|
+
"tokenFormatStyle": "compact"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "core-cache-read",
|
|
52
|
+
"type": "cache-read",
|
|
53
|
+
"enabled": true,
|
|
54
|
+
"options": {
|
|
55
|
+
"icon": "R",
|
|
56
|
+
"fg": "pi:dim",
|
|
57
|
+
"tokenFormatStyle": "compact",
|
|
58
|
+
"hideWhenZero": true
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "core-cache-write",
|
|
63
|
+
"type": "cache-write",
|
|
64
|
+
"enabled": true,
|
|
65
|
+
"options": {
|
|
66
|
+
"icon": "W",
|
|
67
|
+
"fg": "pi:dim",
|
|
68
|
+
"tokenFormatStyle": "compact",
|
|
69
|
+
"hideWhenZero": true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "core-cache-hit",
|
|
74
|
+
"type": "cache-hit-rate",
|
|
75
|
+
"enabled": true,
|
|
76
|
+
"options": {
|
|
77
|
+
"icon": "CH",
|
|
78
|
+
"fg": "pi:dim",
|
|
79
|
+
"hideWhenZero": true,
|
|
80
|
+
"cacheHitSource": "turn"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "core-cost",
|
|
85
|
+
"type": "cost",
|
|
86
|
+
"enabled": true,
|
|
87
|
+
"options": {
|
|
88
|
+
"raw": true,
|
|
89
|
+
"fg": "pi:dim",
|
|
90
|
+
"costFormatStyle": "compact",
|
|
91
|
+
"showSubscription": true
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "core-context",
|
|
96
|
+
"type": "context",
|
|
97
|
+
"enabled": true,
|
|
98
|
+
"options": {
|
|
99
|
+
"raw": true,
|
|
100
|
+
"fg": "pi:dim",
|
|
101
|
+
"contextConditionalColors": true,
|
|
102
|
+
"warningFg": "pi:warning",
|
|
103
|
+
"dangerFg": "pi:error"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": "core-context-slash",
|
|
108
|
+
"type": "separator",
|
|
109
|
+
"enabled": true,
|
|
110
|
+
"options": {
|
|
111
|
+
"separator": "custom",
|
|
112
|
+
"text": "/",
|
|
113
|
+
"fg": "pi:dim"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "core-context-window",
|
|
118
|
+
"type": "context-window",
|
|
119
|
+
"enabled": true,
|
|
120
|
+
"options": {
|
|
121
|
+
"raw": true,
|
|
122
|
+
"fg": "pi:dim",
|
|
123
|
+
"contextConditionalColors": true,
|
|
124
|
+
"warningFg": "pi:warning",
|
|
125
|
+
"dangerFg": "pi:error",
|
|
126
|
+
"tokenFormatStyle": "compact"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "core-flex",
|
|
131
|
+
"type": "flex-separator",
|
|
132
|
+
"enabled": true,
|
|
133
|
+
"options": {}
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "core-model",
|
|
137
|
+
"type": "model",
|
|
138
|
+
"enabled": true,
|
|
139
|
+
"options": {
|
|
140
|
+
"raw": true,
|
|
141
|
+
"fg": "pi:dim"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "core-thinking",
|
|
146
|
+
"type": "thinking-level",
|
|
147
|
+
"enabled": true,
|
|
148
|
+
"options": {
|
|
149
|
+
"raw": true,
|
|
150
|
+
"fg": "pi:dim",
|
|
151
|
+
"hideWhenEmpty": true
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
[
|
|
156
|
+
{
|
|
157
|
+
"id": "status-mcp",
|
|
158
|
+
"type": "external-status",
|
|
159
|
+
"enabled": true,
|
|
160
|
+
"options": {
|
|
161
|
+
"externalStatusKey": "mcp",
|
|
162
|
+
"icon": "🔌 ",
|
|
163
|
+
"hideWhenEmpty": true
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "status-auto",
|
|
168
|
+
"type": "external-status",
|
|
169
|
+
"enabled": true,
|
|
170
|
+
"options": {
|
|
171
|
+
"externalStatusKey": "pi-automode",
|
|
172
|
+
"icon": "🤖 Auto ",
|
|
173
|
+
"trimValue": 2,
|
|
174
|
+
"preserveTrimStyles": true,
|
|
175
|
+
"hideWhenEmpty": true
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
[
|
|
180
|
+
{
|
|
181
|
+
"id": "status-lsp",
|
|
182
|
+
"type": "external-status",
|
|
183
|
+
"enabled": true,
|
|
184
|
+
"options": {
|
|
185
|
+
"externalStatusKey": "pi-lens-lsp",
|
|
186
|
+
"icon": "🧩 LSP ",
|
|
187
|
+
"trimValue": 4,
|
|
188
|
+
"preserveTrimStyles": true,
|
|
189
|
+
"hideWhenEmpty": true
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "status-ponytail",
|
|
194
|
+
"type": "external-status",
|
|
195
|
+
"enabled": true,
|
|
196
|
+
"options": {
|
|
197
|
+
"externalStatusKey": "ponytail",
|
|
198
|
+
"trimValue": 2,
|
|
199
|
+
"preserveTrimStyles": false,
|
|
200
|
+
"hideWhenEmpty": true
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
[
|
|
205
|
+
{
|
|
206
|
+
"id": "status-remote-session",
|
|
207
|
+
"type": "external-status",
|
|
208
|
+
"enabled": true,
|
|
209
|
+
"options": {
|
|
210
|
+
"externalStatusKey": "remote-pi:session",
|
|
211
|
+
"hideWhenEmpty": true
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "status-remote-relay",
|
|
216
|
+
"type": "external-status",
|
|
217
|
+
"enabled": true,
|
|
218
|
+
"options": {
|
|
219
|
+
"externalStatusKey": "remote-pi:relay",
|
|
220
|
+
"hideWhenEmpty": true
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"id": "status-remote-peer",
|
|
225
|
+
"type": "external-status",
|
|
226
|
+
"enabled": true,
|
|
227
|
+
"options": {
|
|
228
|
+
"externalStatusKey": "remote-pi:peer-active",
|
|
229
|
+
"hideWhenEmpty": true
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "status-subagents",
|
|
234
|
+
"type": "external-status",
|
|
235
|
+
"enabled": true,
|
|
236
|
+
"options": {
|
|
237
|
+
"externalStatusKey": "subagents",
|
|
238
|
+
"icon": "👥 ",
|
|
239
|
+
"hideWhenEmpty": true
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
],
|
|
244
|
+
"separator": "dot",
|
|
245
|
+
"separatorFg": "brightBlack",
|
|
246
|
+
"separatorBg": "default",
|
|
247
|
+
"iconMode": "text",
|
|
248
|
+
"minimalist": false,
|
|
249
|
+
"terminal": {
|
|
250
|
+
"widthMode": "full",
|
|
251
|
+
"colorLevel": "ansi256"
|
|
252
|
+
},
|
|
253
|
+
"extensionStatusRow": {
|
|
254
|
+
"hiddenKeys": [
|
|
255
|
+
"mcp",
|
|
256
|
+
"pi-automode",
|
|
257
|
+
"pi-lens-lsp",
|
|
258
|
+
"ponytail",
|
|
259
|
+
"remote-pi:peer-active",
|
|
260
|
+
"remote-pi:relay",
|
|
261
|
+
"remote-pi:session",
|
|
262
|
+
"subagents"
|
|
263
|
+
],
|
|
264
|
+
"knownKeys": [
|
|
265
|
+
"mcp",
|
|
266
|
+
"pi-automode",
|
|
267
|
+
"pi-lens-lsp",
|
|
268
|
+
"ponytail",
|
|
269
|
+
"remote-pi:peer-active",
|
|
270
|
+
"remote-pi:relay",
|
|
271
|
+
"remote-pi:session",
|
|
272
|
+
"subagents"
|
|
273
|
+
]
|
|
274
|
+
}
|
|
275
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="./assets/readme/hero.svg" width="100%" alt="pi-cc-extensions: a productivity extension suite for Pi">
|
|
2
|
+
<img src="./assets/readme/hero.en.svg" width="100%" alt="pi-cc-extensions: a productivity extension suite for Pi">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
|
-
Claude Code-style output
|
|
13
|
+
Claude Code-style TUI output with some personal touches and handy utilities.
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
@@ -37,11 +37,11 @@ Run `/reload` after installation.
|
|
|
37
37
|
|
|
38
38
|
| Feature | Description | Entry point |
|
|
39
39
|
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
|
|
40
|
-
| Claude Code
|
|
41
|
-
| Fullscreen
|
|
40
|
+
| Claude Code Output | Tool summaries, expand/collapse, rich edit/write diffs, and `on` / `compact` / `off` modes | `/ccstyle` |
|
|
41
|
+
| Fullscreen mode | Tool card/group click-to-toggle, previews, hover highlight, and a back-to-bottom button | `TUIMODE=fullscreen` or `--tui-mode fullscreen` |
|
|
42
42
|
| Settings panel | `Style / Diff / Thinking / Feature` tabs: startup header toggle and wheel step | `/ccstyle` |
|
|
43
43
|
| Context inspection | Usage breakdown and previews for the system prompt, tools, skills, and messages | `/context` |
|
|
44
|
-
| Session references | Search and inject effective context from previous Sessions or existing SubAgents |
|
|
44
|
+
| Session/Subagent references | Search and inject effective context from previous Sessions or existing SubAgents | `@` |
|
|
45
45
|
| Theme | Bundled CC Dark and CC Light themes | `/theme` |
|
|
46
46
|
|
|
47
47
|
## Configuration
|
|
@@ -74,8 +74,6 @@ bun run typecheck
|
|
|
74
74
|
./test.bat # or pi -e .
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
Run `/reload` after changing extensions.
|
|
78
|
-
|
|
79
77
|
## Compatibility
|
|
80
78
|
|
|
81
79
|
- Node.js `>=22.19.0`, Pi `^0.84.0` (loaded through `pi.extensions` and `pi.themes` in the root `package.json`)
|
|
@@ -96,4 +94,4 @@ Run `/reload` after changing extensions.
|
|
|
96
94
|
## Credits
|
|
97
95
|
|
|
98
96
|
- Derived from [`minuque/pi-cc-extensions`](https://github.com/minuque/pi-cc-extensions) under the MIT license.
|
|
99
|
-
- Rich diffs are adapted from [`MasuRii/pi-tool-display`](https://github.com/MasuRii/pi-tool-display) (MIT). See [`extensions/tool
|
|
97
|
+
- Rich diffs are adapted from [`MasuRii/pi-tool-display`](https://github.com/MasuRii/pi-tool-display) (MIT). See [`extensions/renderer/tool/diff/ATTRIBUTION.md`](./extensions/renderer/tool/diff/ATTRIBUTION.md).
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
|
-
类 Claude Code TUI
|
|
13
|
+
类 Claude Code TUI 输出风格,并融入了一些个人喜好,和一些实用小功能。
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
16
|
<p align="center">
|
|
@@ -37,11 +37,11 @@ pi install npm:@herbertgao/pi-cc-extensions
|
|
|
37
37
|
|
|
38
38
|
| 功能 | 说明 | 入口 |
|
|
39
39
|
| ---------------------- | ---------------------------------------------------------------------------------------------------------- | ------------- |
|
|
40
|
-
| Claude Code
|
|
41
|
-
| Fullscreen
|
|
40
|
+
| Claude Code UI | 工具摘要、折叠展开、rich edit/write diff,以及 `on` / `compact` / `off` 三种模式 | `/ccstyle` |
|
|
41
|
+
| Fullscreen mode | 工具卡/group 点击展开与收起、预览、hover 高亮、回到底部按钮 | `TUIMODE=fullscreen` 或 `--tui-mode fullscreen` |
|
|
42
42
|
| 配置面板 | `Style / Diff / Thinking / Feature` 四页签,含启动头开关与滚轮步进 | `/ccstyle` |
|
|
43
43
|
| 上下文检查 | 查看上下文占用,并预览 System prompt、Tools、Skills 和消息内容 | `/context` |
|
|
44
|
-
| Session 引用 | 搜索并注入历史 Session 或现有 SubAgent 的有效上下文 |
|
|
44
|
+
| Session/Subagent 引用 | 搜索并注入历史 Session 或现有 SubAgent 的有效上下文 | `@` |
|
|
45
45
|
| 主题 | 随包提供内置 CC Dark、CC Light 主题 | `/theme` |
|
|
46
46
|
|
|
47
47
|
## 配置
|
|
@@ -74,8 +74,6 @@ bun run typecheck
|
|
|
74
74
|
./test.bat # or pi -e .
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
修改扩展后执行 `/reload`。
|
|
78
|
-
|
|
79
77
|
## 兼容性
|
|
80
78
|
|
|
81
79
|
- Node.js `>=22.19.0`,Pi `^0.84.0`(通过根目录 `package.json` 的 `pi.extensions` 和 `pi.themes` 加载)
|
|
@@ -96,4 +94,4 @@ bun run typecheck
|
|
|
96
94
|
## 致谢
|
|
97
95
|
|
|
98
96
|
- 基于 MIT 许可的 [`minuque/pi-cc-extensions`](https://github.com/minuque/pi-cc-extensions) 衍生维护。
|
|
99
|
-
- Rich diff 改编自 [`MasuRii/pi-tool-display`](https://github.com/MasuRii/pi-tool-display)(MIT);详见 [`extensions/tool
|
|
97
|
+
- Rich diff 改编自 [`MasuRii/pi-tool-display`](https://github.com/MasuRii/pi-tool-display)(MIT);详见 [`extensions/renderer/tool/diff/ATTRIBUTION.md`](./extensions/renderer/tool/diff/ATTRIBUTION.md)。
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="400" viewBox="0 0 1200 400" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">pi-cc-extensions
|
|
3
|
+
</title>
|
|
4
|
+
<desc id="desc">The Claude and Pi brand marks together connect three extension capabilities: Claude Code-style output, context inspection, and historical Session references.
|
|
5
|
+
</desc>
|
|
6
|
+
<defs>
|
|
7
|
+
<linearGradient id="panel" x1="0" y1="0" x2="1" y2="1">
|
|
8
|
+
<stop offset="0" stop-color="#0D131B"/>
|
|
9
|
+
<stop offset="1" stop-color="#090D12"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
</defs>
|
|
12
|
+
<rect width="1200" height="400" rx="28" fill="url(#panel)"/>
|
|
13
|
+
<rect x="1" y="1" width="1198" height="398" rx="27" fill="none" stroke="#263241" stroke-width="2"/>
|
|
14
|
+
<g id="title-block" transform="translate(64 58)" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', sans-serif">
|
|
15
|
+
<g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="16" font-weight="600" letter-spacing="1.4">
|
|
16
|
+
<text x="0" y="0" fill="#66E3C4">PI EXTENSION
|
|
17
|
+
</text>
|
|
18
|
+
</g>
|
|
19
|
+
<text x="0" y="82" fill="#F4F7FA" font-size="54" font-weight="750" letter-spacing="-1.5">pi-cc-extensions
|
|
20
|
+
</text>
|
|
21
|
+
<text x="0" y="130" fill="#B8C3CF" font-size="23">Make Pi work like Claude Code 🙃
|
|
22
|
+
</text>
|
|
23
|
+
<g transform="translate(0 180)" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="17">
|
|
24
|
+
<rect width="488" height="58" rx="12" fill="#111923" stroke="#2B3948"/>
|
|
25
|
+
<text x="20" y="36" fill="#66E3C4">›
|
|
26
|
+
</text>
|
|
27
|
+
<text x="44" y="36" fill="#F4F7FA">/ccstyle
|
|
28
|
+
</text>
|
|
29
|
+
<text x="155" y="36" fill="#536172">·
|
|
30
|
+
</text>
|
|
31
|
+
<text x="178" y="36" fill="#7CC7FF">/context
|
|
32
|
+
</text>
|
|
33
|
+
<text x="292" y="36" fill="#536172">·
|
|
34
|
+
</text>
|
|
35
|
+
<text x="315" y="36" fill="#F2C879">@session:
|
|
36
|
+
</text>
|
|
37
|
+
<rect x="411" y="22" width="9" height="20" rx="2" fill="#66E3C4"/>
|
|
38
|
+
</g>
|
|
39
|
+
<g transform="translate(0 282)" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="15">
|
|
40
|
+
<circle cx="6" cy="-5" r="6" fill="#66E3C4"/>
|
|
41
|
+
<text x="22" y="0" fill="#8B9AAD">3 EXTENSIONS
|
|
42
|
+
</text>
|
|
43
|
+
<text x="160" y="0" fill="#3B4857">•
|
|
44
|
+
</text>
|
|
45
|
+
<text x="183" y="0" fill="#8B9AAD">TYPESCRIPT
|
|
46
|
+
</text>
|
|
47
|
+
<text x="303" y="0" fill="#3B4857">•
|
|
48
|
+
</text>
|
|
49
|
+
<text x="326" y="0" fill="#8B9AAD">NODE ≥ 22.19
|
|
50
|
+
</text>
|
|
51
|
+
</g>
|
|
52
|
+
</g>
|
|
53
|
+
<g id="extension-map" transform="translate(662 48)" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', sans-serif">
|
|
54
|
+
<g id="claude-pi-mark" transform="translate(0 0)">
|
|
55
|
+
<!-- Official Claude starburst vector; source: Anthropic Claude brand mark. -->
|
|
56
|
+
<path transform="translate(2 2) scale(.34)" fill="#D97757" d="m19.6 66.5 19.7-11 .3-1-.3-.5h-1l-3.3-.2-11.2-.3L14 53l-9.5-.5-2.4-.5L0 49l.2-1.5 2-1.3 2.9.2 6.3.5 9.5.6 6.9.4L38 49.1h1.6l.2-.7-.5-.4-.4-.4L29 41l-10.6-7-5.6-4.1-3-2-1.5-2-.6-4.2 2.7-3 3.7.3.9.2 3.7 2.9 8 6.1L37 36l1.5 1.2.6-.4.1-.3-.7-1.1L33 25l-6-10.4-2.7-4.3-.7-2.6c-.3-1-.4-2-.4-3l3-4.2L28 0l4.2.6L33.8 2l2.6 6 4.1 9.3L47 29.9l2 3.8 1 3.4.3 1h.7v-.5l.5-7.2 1-8.7 1-11.2.3-3.2 1.6-3.8 3-2L61 2.6l2 2.9-.3 1.8-1.1 7.7L59 27.1l-1.5 8.2h.9l1-1.1 4.1-5.4 6.9-8.6 3-3.5L77 13l2.3-1.8h4.3l3.1 4.7-1.4 4.9-4.4 5.6-3.7 4.7-5.3 7.1-3.2 5.7.3.4h.7l12-2.6 6.4-1.1 7.6-1.3 3.5 1.6.4 1.6-1.4 3.4-8.2 2-9.6 2-14.3 3.3-.2.1.2.3 6.4.6 2.8.2h6.8l12.6 1 3.3 2 1.9 2.7-.3 2-5.1 2.6-6.8-1.6-16-3.8-5.4-1.3h-.8v.4l4.6 4.5 8.3 7.5L89 80.1l.5 2.4-1.3 2-1.4-.2-9.2-7-3.6-3-8-6.8h-.5v.7l1.8 2.7 9.8 14.7.5 4.5-.7 1.4-2.6 1-2.7-.6-5.8-8-6-9-4.7-8.2-.5.4-2.9 30.2-1.3 1.5-3 1.2-2.5-2-1.4-3 1.4-6.2 1.6-8 1.3-6.4 1.2-7.9.7-2.6v-.2H49L43 72l-9 12.3-7.2 7.6-1.7.7-3-1.5.3-2.8L24 86l10-12.8 6-7.9 4-4.6-.1-.5h-.3L17.2 77.4l-4.7.6-2-2 .2-3 1-1 8-5.5Z"/>
|
|
57
|
+
<path d="M50 3V35" stroke="#3A4857" stroke-width="2"/>
|
|
58
|
+
<!-- Official Pi logo vectors; source: https://pi.dev/logo-auto.svg -->
|
|
59
|
+
<g transform="translate(52 -5) scale(.06)" fill="#F4F7FA">
|
|
60
|
+
<path fill-rule="evenodd" d="M165.29 165.29H517.36V400H400V517.36H282.65V634.72H165.29ZM282.65 282.65V400H400V282.65Z"/>
|
|
61
|
+
<path d="M517.36 400H634.72V634.72H517.36Z"/>
|
|
62
|
+
</g>
|
|
63
|
+
<text x="104" y="15" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="15" font-weight="700" letter-spacing=".8">CLAUDE CODE UX
|
|
64
|
+
</text>
|
|
65
|
+
<text x="104" y="34" fill="#7F8D9C" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="13" letter-spacing="1.2">FOR PI
|
|
66
|
+
</text>
|
|
67
|
+
</g>
|
|
68
|
+
<g transform="translate(0 52)">
|
|
69
|
+
<rect width="474" height="82" rx="14" fill="#101821" stroke="#2C3A48"/>
|
|
70
|
+
<rect width="5" height="82" rx="2.5" fill="#66E3C4"/>
|
|
71
|
+
<text x="26" y="32" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18" font-weight="700">/ccstyle
|
|
72
|
+
</text>
|
|
73
|
+
<text x="26" y="59" fill="#8B9AAD" font-size="16">Tool summaries · Diffs · Status bar
|
|
74
|
+
</text>
|
|
75
|
+
<circle cx="438" cy="29" r="9" fill="#66E3C4" opacity=".18"/>
|
|
76
|
+
<path d="M434 29l3 3 6-7" fill="none" stroke="#66E3C4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
77
|
+
</g>
|
|
78
|
+
<g transform="translate(0 144)">
|
|
79
|
+
<rect width="474" height="82" rx="14" fill="#101821" stroke="#2C3A48"/>
|
|
80
|
+
<rect width="5" height="82" rx="2.5" fill="#7CC7FF"/>
|
|
81
|
+
<text x="26" y="32" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18" font-weight="700">/context
|
|
82
|
+
</text>
|
|
83
|
+
<text x="26" y="59" fill="#8B9AAD" font-size="16">Usage breakdown · Injected content preview
|
|
84
|
+
</text>
|
|
85
|
+
<g transform="translate(416 23)">
|
|
86
|
+
<rect width="42" height="14" rx="7" fill="#1C2B38"/>
|
|
87
|
+
<rect width="27" height="14" rx="7" fill="#7CC7FF"/>
|
|
88
|
+
</g>
|
|
89
|
+
</g>
|
|
90
|
+
<g transform="translate(0 236)">
|
|
91
|
+
<rect width="474" height="82" rx="14" fill="#101821" stroke="#2C3A48"/>
|
|
92
|
+
<rect width="5" height="82" rx="2.5" fill="#F2C879"/>
|
|
93
|
+
<text x="26" y="32" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18" font-weight="700">@session:
|
|
94
|
+
</text>
|
|
95
|
+
<text x="26" y="59" fill="#8B9AAD" font-size="16">History completion · Cross-session references
|
|
96
|
+
</text>
|
|
97
|
+
<text x="431" y="40" fill="#F2C879" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="26">@
|
|
98
|
+
</text>
|
|
99
|
+
</g>
|
|
100
|
+
</g>
|
|
101
|
+
</svg>
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
type DiffIndicatorMode,
|
|
5
5
|
type DiffViewMode,
|
|
6
6
|
type ToolDisplayConfig,
|
|
7
|
-
} from "../renderer/tool
|
|
7
|
+
} from "../renderer/tool/diff/index.ts";
|
|
8
8
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
9
9
|
import { homedir } from "node:os";
|
|
10
10
|
import { join } from "node:path";
|
|
@@ -86,22 +86,6 @@ export function pickPositiveNumber(value: unknown, fallback: number, min = 1): n
|
|
|
86
86
|
return Number.isFinite(n) ? Math.max(min, n) : fallback;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
export function nearestPreset(value: number, presets: readonly string[]): string {
|
|
90
|
-
const numeric = presets.map((p) => Number(p));
|
|
91
|
-
let best = presets[0] ?? String(value);
|
|
92
|
-
let bestDist = Number.POSITIVE_INFINITY;
|
|
93
|
-
for (let i = 0; i < numeric.length; i++) {
|
|
94
|
-
const dist = Math.abs((numeric[i] ?? 0) - value);
|
|
95
|
-
if (dist < bestDist) {
|
|
96
|
-
bestDist = dist;
|
|
97
|
-
best = presets[i] ?? best;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// Prefer exact match when value is already a preset.
|
|
101
|
-
const exact = presets.find((p) => Number(p) === value);
|
|
102
|
-
return exact ?? best;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
89
|
export function normalizeConfig(input: unknown): Config {
|
|
106
90
|
const source = (input && typeof input === "object" ? input : {}) as Record<string, unknown>;
|
|
107
91
|
const mode = source.mode;
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
import { getSettingsListTheme } from "@earendil-works/pi-coding-agent";
|
|
8
8
|
import { Input, SettingsList, matchesKey, truncateToWidth } from "@earendil-works/pi-tui";
|
|
9
9
|
import type { CompactThinkingController } from "../feature/compact-thinking.ts";
|
|
10
|
-
import { applyStartupHeader } from "../feature/
|
|
11
|
-
import type { ToolGroupingHooks } from "../renderer/tool
|
|
12
|
-
import type { DiffIndicatorMode, DiffViewMode } from "../renderer/tool
|
|
10
|
+
import { applyStartupHeader } from "../feature/shell/startup-header.ts";
|
|
11
|
+
import type { ToolGroupingHooks } from "../renderer/tool/grouping.ts";
|
|
12
|
+
import type { DiffIndicatorMode, DiffViewMode } from "../renderer/tool/diff/index.ts";
|
|
13
13
|
import {
|
|
14
14
|
config,
|
|
15
15
|
DEFAULT_CONFIG,
|
|
@@ -553,4 +553,6 @@ export async function showCcstylePanel(
|
|
|
553
553
|
},
|
|
554
554
|
};
|
|
555
555
|
});
|
|
556
|
+
// 面板卸下后主 transcript 重新挂载;再刷一次,吃掉打开期间扫树失败的切换。
|
|
557
|
+
hooks.refreshCurrentTranscript(ctx, toolGrouping);
|
|
556
558
|
}
|