@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
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
visibleWidth,
|
|
7
7
|
type Component,
|
|
8
8
|
} from "@earendil-works/pi-tui";
|
|
9
|
-
import { TOOL_LOADING_INTERVAL_MS, toolLoadingIcon } from "
|
|
10
|
-
import { sanitizeToolResultText } from "
|
|
11
|
-
import { showMoreHintText } from "
|
|
9
|
+
import { TOOL_LOADING_INTERVAL_MS, toolLoadingIcon } from "../../utils/tool-loading-icon.ts";
|
|
10
|
+
import { sanitizeToolResultText } from "../../utils/tool-result-sanitize.ts";
|
|
11
|
+
import { showMoreHintText } from "../show-more-hint.ts";
|
|
12
12
|
|
|
13
13
|
const PATCH_KEY = Symbol.for("pi.ccstyle.tool-grouping-patch");
|
|
14
14
|
const PARENT_KEY = Symbol.for("pi.ccstyle.tool-grouping-parent");
|
|
@@ -101,7 +101,7 @@ function stripLeadingStatusIcon(line: string): string {
|
|
|
101
101
|
);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
function stripBackgroundAnsi(line: string): string {
|
|
104
|
+
export function stripBackgroundAnsi(line: string): string {
|
|
105
105
|
return line.replace(/\x1b\[(?:4[0-9]|10[0-7]|48(?:(?:;|:)[0-9]+)+|49)m/g, "");
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -126,15 +126,25 @@ function stripLeadingSpaces(line: string, count: number): string {
|
|
|
126
126
|
return ansi + line.slice(offset);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
/** 生成一行铺满 width 的 slot 背景行;bgAnsiOverride 可替换背景 ANSI(用于提亮等)。 */
|
|
130
|
+
export function paddedBackgroundRow(
|
|
131
|
+
theme: any,
|
|
132
|
+
slot: string,
|
|
133
|
+
content: string,
|
|
134
|
+
width: number,
|
|
135
|
+
bgAnsiOverride?: string,
|
|
136
|
+
): string {
|
|
130
137
|
const innerWidth = Math.max(0, width - 2);
|
|
131
138
|
const clipped = truncateToWidth(stripBackgroundAnsi(content), innerWidth, "");
|
|
132
139
|
const row = ` ${clipped}${" ".repeat(Math.max(0, innerWidth - visibleWidth(clipped)))} `;
|
|
133
|
-
if (typeof theme?.bg !== "function") return row;
|
|
134
140
|
const bgAnsi =
|
|
135
|
-
|
|
141
|
+
bgAnsiOverride ||
|
|
142
|
+
(typeof theme?.bg === "function"
|
|
143
|
+
? theme.getBgAnsi?.(slot) || theme.bg(slot, "").match(/^\x1b\[[0-?]*[ -/]*[@-~]/)?.[0] || ""
|
|
144
|
+
: "");
|
|
136
145
|
const stable = bgAnsi ? row.replace(/\x1b\[(?:0)?m/g, (reset) => reset + bgAnsi) : row;
|
|
137
|
-
return theme.bg(slot, stable);
|
|
146
|
+
if (!bgAnsi) return typeof theme?.bg === "function" ? theme.bg(slot, stable) : row;
|
|
147
|
+
return `${bgAnsi}${stable}\x1b[49m`;
|
|
138
148
|
}
|
|
139
149
|
|
|
140
150
|
function oneLine(value: unknown, max = 96): string {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Text, truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@earendil-works/pi-tui";
|
|
2
2
|
import { inspect } from "node:util";
|
|
3
|
-
import { config } from "
|
|
4
|
-
import { showMoreHintText } from "
|
|
5
|
-
import { TOOL_LOADING_INTERVAL_MS, toolLoadingIcon } from "
|
|
6
|
-
import { sanitizeToolResultText } from "
|
|
3
|
+
import { config } from "../../config/config.ts";
|
|
4
|
+
import { showMoreHintText } from "../show-more-hint.ts";
|
|
5
|
+
import { TOOL_LOADING_INTERVAL_MS, toolLoadingIcon } from "../../utils/tool-loading-icon.ts";
|
|
6
|
+
import { sanitizeToolResultText } from "../../utils/tool-result-sanitize.ts";
|
|
7
7
|
|
|
8
8
|
const TOOL_VIEWPORT_WIDTH_RATIO = 0.8;
|
|
9
9
|
|
|
@@ -677,15 +677,6 @@ export function renderExpandedToolResult(
|
|
|
677
677
|
return new Text(theme.fg(color, renderCollapsedToolResult("Done")), 0, 0);
|
|
678
678
|
}
|
|
679
679
|
|
|
680
|
-
export function formatExpandHint(lineCount: number): string {
|
|
681
|
-
return ` (${lineCount} more line${lineCount === 1 ? "" : "s"} / click)`;
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
function expandHint(theme: any, lineCount: number, hovered = false): string {
|
|
685
|
-
// Keep interaction guidance neutral; it should not inherit success/error
|
|
686
|
-
// coloring from the tool result surrounding it.
|
|
687
|
-
return theme.fg(hovered ? "text" : "muted", formatExpandHint(lineCount));
|
|
688
|
-
}
|
|
689
680
|
const toolViewMarker = (id: number, section: ToolIoSection) =>
|
|
690
681
|
`_cc:v${id}:${section === "input" ? "i" : "o"}`;
|
|
691
682
|
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
// fullscreen 模式探测:官方 fullscreen TUI(TuiAltScreen)由官方独占布局,
|
|
2
|
-
// 插件渲染层应让位。检测方式是瞬时 setWidget 拿 tui 实例检查 mode。
|
|
3
|
-
const PROBE_KEY = "cc-fullscreen-probe";
|
|
4
|
-
|
|
5
1
|
/**
|
|
6
2
|
* 官方 0.84+ 的 tui 引用是惰性 Proxy(createInteractiveTuiReference):
|
|
7
3
|
* 函数属性每次 get 都返回新包装,执行时才解析到当前实现。
|
|
@@ -13,26 +9,3 @@ export function isLazyProxyTui(tui: any): boolean {
|
|
|
13
9
|
const probe = tui.requestRender;
|
|
14
10
|
return typeof probe === "function" && probe !== tui.requestRender;
|
|
15
11
|
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* 探测当前会话的 TUI 是否运行在官方 fullscreen 模式。
|
|
19
|
-
* 无 setWidget 的环境(测试 mock)视为 regular。
|
|
20
|
-
*/
|
|
21
|
-
export function isFullscreenUi(ctx: { ui?: any }): boolean {
|
|
22
|
-
if (typeof ctx?.ui?.setWidget !== "function") return false;
|
|
23
|
-
let fullscreen = false;
|
|
24
|
-
try {
|
|
25
|
-
ctx.ui.setWidget(PROBE_KEY, (tui: any) => {
|
|
26
|
-
fullscreen = tui?.mode === "fullscreen";
|
|
27
|
-
return { render: () => 0, invalidate() {} };
|
|
28
|
-
});
|
|
29
|
-
} catch {
|
|
30
|
-
// 探测失败按 regular 处理,避免误伤
|
|
31
|
-
}
|
|
32
|
-
try {
|
|
33
|
-
ctx.ui.setWidget(PROBE_KEY, undefined);
|
|
34
|
-
} catch {
|
|
35
|
-
// 忽略
|
|
36
|
-
}
|
|
37
|
-
return fullscreen;
|
|
38
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herbertgao/pi-cc-extensions",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.53",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A Pi productivity suite with Claude Code-style UI, context inspection, and agent/session references",
|
|
6
6
|
"type": "module",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
},
|
|
70
70
|
"x-upstream": {
|
|
71
71
|
"package": "pi-cc-extensions",
|
|
72
|
-
"version": "0.8.
|
|
72
|
+
"version": "0.8.54",
|
|
73
73
|
"repository": "https://github.com/minuque/pi-cc-extensions",
|
|
74
|
-
"commit": "
|
|
74
|
+
"commit": "8372ecaff7f079ab4452db47328c3238620a4885"
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.15.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#27](https://github.com/HerbertGao/pi-extensions/pull/27) [`32bb76c`](https://github.com/HerbertGao/pi-extensions/commit/32bb76c117971de27db9c2b521d19df3ba9ea322) Thanks [@HerbertGao](https://github.com/HerbertGao)! - Keep worktree-isolated agents inside their copy, preserve real Agent tool startup errors, and render unknown or failed Agent results without misleading completion status.
|
|
8
|
+
|
|
3
9
|
## 0.15.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herbertgao/pi-subagents",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.3",
|
|
4
4
|
"description": "Claude Code-style autonomous subagents for Pi, with HerbertGao-maintained UI extensions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -66,6 +66,6 @@
|
|
|
66
66
|
"package": "@tintinweb/pi-subagents",
|
|
67
67
|
"version": "0.15.0",
|
|
68
68
|
"repository": "https://github.com/tintinweb/pi-subagents",
|
|
69
|
-
"commit": "
|
|
69
|
+
"commit": "c83dd82"
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -321,6 +321,7 @@ export class AgentManager {
|
|
|
321
321
|
// stay undefined otherwise so plain worktree runs keep resolving config
|
|
322
322
|
// (incl. relative extension paths and memory) inside the worktree copy.
|
|
323
323
|
cwd: worktreeCwd ?? customCwd,
|
|
324
|
+
worktreeBase: worktreeCwd ? baseCwd : undefined,
|
|
324
325
|
configCwd:
|
|
325
326
|
options.configCwd ?? (customCwd !== undefined ? ctx.cwd : undefined),
|
|
326
327
|
signal: record.abortController!.signal,
|
|
@@ -414,6 +414,8 @@ export interface RunOptions {
|
|
|
414
414
|
thinkingLevel?: ThinkingLevel
|
|
415
415
|
/** Override working directory (e.g. for worktree isolation). */
|
|
416
416
|
cwd?: string
|
|
417
|
+
/** Original checkout path when cwd is an isolated worktree copy. */
|
|
418
|
+
worktreeBase?: string
|
|
417
419
|
/**
|
|
418
420
|
* Where .pi config is discovered (project extensions, skills, pi settings,
|
|
419
421
|
* agent memory). Default: same as the working directory. The manager sets
|
|
@@ -602,7 +604,7 @@ export async function runAgent(
|
|
|
602
604
|
const parentSystemPrompt = ctx.getSystemPrompt()
|
|
603
605
|
|
|
604
606
|
// Build prompt extras (memory, skill preloading)
|
|
605
|
-
const extras: PromptExtras = {}
|
|
607
|
+
const extras: PromptExtras = { worktreeBase: options.worktreeBase }
|
|
606
608
|
|
|
607
609
|
// Resolve extensions/skills: isolated overrides to false
|
|
608
610
|
const extensions = options.isolated ? false : config.extensions
|
|
@@ -1241,12 +1241,12 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
1241
1241
|
)
|
|
1242
1242
|
},
|
|
1243
1243
|
|
|
1244
|
-
renderResult(result, { expanded, isPartial }, theme) {
|
|
1244
|
+
renderResult(result, { expanded, isPartial }, theme, renderContext) {
|
|
1245
|
+
const resultText =
|
|
1246
|
+
result.content[0]?.type === "text" ? result.content[0].text : ""
|
|
1245
1247
|
const details = result.details as AgentDetails | undefined
|
|
1246
|
-
if (!details) {
|
|
1247
|
-
|
|
1248
|
-
result.content[0]?.type === "text" ? result.content[0].text : ""
|
|
1249
|
-
return new Text(text, 0, 0)
|
|
1248
|
+
if (renderContext?.isError || !details?.status) {
|
|
1249
|
+
return new Text(resultText, 0, 0)
|
|
1250
1250
|
}
|
|
1251
1251
|
|
|
1252
1252
|
// Helper: build "haiku · thinking: high · ↻5≤30 · 3 tool uses · 33.8k tokens" stats string
|
|
@@ -1301,8 +1301,6 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
1301
1301
|
line += " " + theme.fg("dim", "·") + " " + theme.fg("dim", duration)
|
|
1302
1302
|
|
|
1303
1303
|
if (expanded) {
|
|
1304
|
-
const resultText =
|
|
1305
|
-
result.content[0]?.type === "text" ? result.content[0].text : ""
|
|
1306
1304
|
if (resultText) {
|
|
1307
1305
|
const lines = resultText.split("\n").slice(0, 50)
|
|
1308
1306
|
for (const l of lines) {
|
|
@@ -1332,6 +1330,10 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
1332
1330
|
return new Text(line, 0, 0)
|
|
1333
1331
|
}
|
|
1334
1332
|
|
|
1333
|
+
if (details.status !== "error" && details.status !== "aborted") {
|
|
1334
|
+
return new Text(resultText, 0, 0)
|
|
1335
|
+
}
|
|
1336
|
+
|
|
1335
1337
|
// ---- Error / Aborted (hard max_turns) ----
|
|
1336
1338
|
const s = stats(details)
|
|
1337
1339
|
let line = theme.fg("error", "✗") + (s ? " " + s : "")
|
|
@@ -1598,23 +1600,22 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
1598
1600
|
}
|
|
1599
1601
|
}
|
|
1600
1602
|
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
}
|
|
1603
|
+
// A throw here means the agent never started. Let it out: Pi marks a
|
|
1604
|
+
// tool call failed only when execute throws, while a returned message
|
|
1605
|
+
// reads to the model as a subagent that ran and reported this.
|
|
1606
|
+
id = manager.spawn(pi, ctx, subagentType, params.prompt, {
|
|
1607
|
+
description: params.description,
|
|
1608
|
+
model,
|
|
1609
|
+
maxTurns: effectiveMaxTurns,
|
|
1610
|
+
isolated,
|
|
1611
|
+
inheritContext,
|
|
1612
|
+
thinkingLevel: thinking,
|
|
1613
|
+
isBackground: true,
|
|
1614
|
+
isolation,
|
|
1615
|
+
invocation: agentInvocation,
|
|
1616
|
+
rootSessionId: ctx.sessionManager.getSessionId(),
|
|
1617
|
+
...bgCallbacks,
|
|
1618
|
+
})
|
|
1618
1619
|
|
|
1619
1620
|
// Set output file + join mode synchronously after spawn, before the
|
|
1620
1621
|
// event loop yields — onSessionCreated is async so this is safe.
|
|
@@ -1774,18 +1775,15 @@ Terse command-style prompts produce shallow, generic work.
|
|
|
1774
1775
|
},
|
|
1775
1776
|
)
|
|
1776
1777
|
record = fgResult.record
|
|
1777
|
-
}
|
|
1778
|
+
} finally {
|
|
1779
|
+
// A startup throw propagates as a failed tool call without leaving
|
|
1780
|
+
// the spinner running or a finished agent in the widget.
|
|
1778
1781
|
clearInterval(spinnerInterval)
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
// Clean up foreground agent from widget
|
|
1785
|
-
if (fgId) {
|
|
1786
|
-
agentActivity.delete(fgId)
|
|
1787
|
-
widget.markFinished(fgId)
|
|
1788
|
-
fleet.onAgentFinished(fgId)
|
|
1782
|
+
if (fgId) {
|
|
1783
|
+
agentActivity.delete(fgId)
|
|
1784
|
+
widget.markFinished(fgId)
|
|
1785
|
+
fleet.onAgentFinished(fgId)
|
|
1786
|
+
}
|
|
1789
1787
|
}
|
|
1790
1788
|
|
|
1791
1789
|
// Get final token count
|
|
@@ -399,47 +399,38 @@ export function createNestedSubagentTools(
|
|
|
399
399
|
// one earlier would silently give a grandchild the wrong worktree base, the
|
|
400
400
|
// wrong conversation under inherit_context, and the wrong inherited model.
|
|
401
401
|
//
|
|
402
|
-
//
|
|
403
|
-
//
|
|
404
|
-
//
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
const id = context.manager.spawn(
|
|
408
|
-
context.pi,
|
|
409
|
-
ctx,
|
|
410
|
-
resolvedType,
|
|
411
|
-
params.prompt,
|
|
412
|
-
{
|
|
413
|
-
...options,
|
|
414
|
-
isBackground: true,
|
|
415
|
-
},
|
|
416
|
-
)
|
|
417
|
-
// Synchronous, before the event loop yields — onSessionCreated fires
|
|
418
|
-
// asynchronously inside runAgent, so the file is attached in time.
|
|
419
|
-
attachTranscript(id)
|
|
420
|
-
return textResult(
|
|
421
|
-
`Nested agent started in background. Agent ID: ${id}`,
|
|
422
|
-
)
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
const { record } = await context.manager.spawnAndWait(
|
|
402
|
+
// Startup throws mean no child ran. Let them propagate so Pi marks the
|
|
403
|
+
// nested Agent tool call failed instead of presenting the message as a
|
|
404
|
+
// successful child result.
|
|
405
|
+
if (invocation.runInBackground) {
|
|
406
|
+
const id = context.manager.spawn(
|
|
426
407
|
context.pi,
|
|
427
408
|
ctx,
|
|
428
409
|
resolvedType,
|
|
429
410
|
params.prompt,
|
|
430
|
-
{
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
formatRecord(record, "inline"),
|
|
435
|
-
record.status === "error",
|
|
436
|
-
)
|
|
437
|
-
} catch (err) {
|
|
438
|
-
return textResult(
|
|
439
|
-
err instanceof Error ? err.message : String(err),
|
|
440
|
-
true,
|
|
411
|
+
{
|
|
412
|
+
...options,
|
|
413
|
+
isBackground: true,
|
|
414
|
+
},
|
|
441
415
|
)
|
|
416
|
+
// Synchronous, before the event loop yields — onSessionCreated fires
|
|
417
|
+
// asynchronously inside runAgent, so the file is attached in time.
|
|
418
|
+
attachTranscript(id)
|
|
419
|
+
return textResult(`Nested agent started in background. Agent ID: ${id}`)
|
|
442
420
|
}
|
|
421
|
+
|
|
422
|
+
const { record } = await context.manager.spawnAndWait(
|
|
423
|
+
context.pi,
|
|
424
|
+
ctx,
|
|
425
|
+
resolvedType,
|
|
426
|
+
params.prompt,
|
|
427
|
+
{ ...options, signal },
|
|
428
|
+
attachTranscript,
|
|
429
|
+
)
|
|
430
|
+
return textResult(
|
|
431
|
+
formatRecord(record, "inline"),
|
|
432
|
+
record.status === "error",
|
|
433
|
+
)
|
|
443
434
|
},
|
|
444
435
|
})
|
|
445
436
|
|
|
@@ -10,6 +10,8 @@ export interface PromptExtras {
|
|
|
10
10
|
memoryBlock?: string
|
|
11
11
|
/** Preloaded skill contents to inject. */
|
|
12
12
|
skillBlocks?: { name: string; content: string }[]
|
|
13
|
+
/** Original checkout path when cwd is an isolated worktree copy. */
|
|
14
|
+
worktreeBase?: string
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
/**
|
|
@@ -55,6 +57,12 @@ Platform: ${env.platform}`
|
|
|
55
57
|
}
|
|
56
58
|
const extrasSuffix =
|
|
57
59
|
extraSections.length > 0 ? "\n\n" + extraSections.join("\n") : ""
|
|
60
|
+
const worktreeSection = extras?.worktreeBase
|
|
61
|
+
? `\n\n<worktree_isolation>
|
|
62
|
+
Your working directory is an isolated git worktree copy of ${extras.worktreeBase}.
|
|
63
|
+
Work only inside it — never in ${extras.worktreeBase}, even if other instructions name that path as your working directory.
|
|
64
|
+
</worktree_isolation>`
|
|
65
|
+
: ""
|
|
58
66
|
|
|
59
67
|
if (config.promptMode === "append") {
|
|
60
68
|
const identity = parentSystemPrompt || genericBase
|
|
@@ -88,6 +96,7 @@ You are operating as a sub-agent invoked to handle a specific task.
|
|
|
88
96
|
"\n\n" +
|
|
89
97
|
activeAgentTag +
|
|
90
98
|
envBlock +
|
|
99
|
+
worktreeSection +
|
|
91
100
|
customSection +
|
|
92
101
|
extrasSuffix
|
|
93
102
|
)
|
|
@@ -100,7 +109,12 @@ You have been invoked to handle a specific task autonomously.
|
|
|
100
109
|
${envBlock}`
|
|
101
110
|
|
|
102
111
|
return (
|
|
103
|
-
activeAgentTag +
|
|
112
|
+
activeAgentTag +
|
|
113
|
+
replaceHeader +
|
|
114
|
+
worktreeSection +
|
|
115
|
+
"\n\n" +
|
|
116
|
+
config.systemPrompt +
|
|
117
|
+
extrasSuffix
|
|
104
118
|
)
|
|
105
119
|
}
|
|
106
120
|
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.5.1](https://github.com/wobondar/pi-footer/compare/v0.5.0...v0.5.1) (2026-08-02)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Dependencies
|
|
7
|
+
|
|
8
|
+
* **deps-dev:** bump oxfmt from 0.59.0 to 0.60.0 ([#59](https://github.com/wobondar/pi-footer/issues/59)) ([0efe7d7](https://github.com/wobondar/pi-footer/commit/0efe7d7ab686ddbe1e5c0999522e91d9fe6f85c0))
|
|
9
|
+
* **deps-dev:** bump oxfmt from 0.60.0 to 0.61.0 ([#65](https://github.com/wobondar/pi-footer/issues/65)) ([a97e9c5](https://github.com/wobondar/pi-footer/commit/a97e9c59d242aa163880f1deb4c92e077a45003e))
|
|
10
|
+
* **deps-dev:** bump oxlint from 1.74.0 to 1.75.0 ([#61](https://github.com/wobondar/pi-footer/issues/61)) ([ad8721b](https://github.com/wobondar/pi-footer/commit/ad8721b2d55a38037457730dfa19e8ea1d164474))
|
|
11
|
+
* **deps-dev:** bump oxlint from 1.75.0 to 1.76.0 ([#64](https://github.com/wobondar/pi-footer/issues/64)) ([9fa9d68](https://github.com/wobondar/pi-footer/commit/9fa9d68b1f98c16ba3589815e5fc0a398baedcfd))
|
|
12
|
+
* **deps-dev:** bump oxlint-tsgolint from 0.25.0 to 7.0.2001 ([#60](https://github.com/wobondar/pi-footer/issues/60)) ([893f562](https://github.com/wobondar/pi-footer/commit/893f5629eef911285dda7d2c90e3dca59ed5f9a8))
|
|
13
|
+
* **deps-dev:** bump postcss from 8.5.17 to 8.5.23 ([#62](https://github.com/wobondar/pi-footer/issues/62)) ([a1cc8dd](https://github.com/wobondar/pi-footer/commit/a1cc8dd9719f55d46db35af8520de219fc49bc3c))
|
|
14
|
+
* **deps-dev:** bump typescript from 6.0.3 to 7.0.2 ([#50](https://github.com/wobondar/pi-footer/issues/50)) ([d4f6dff](https://github.com/wobondar/pi-footer/commit/d4f6dff394bb3f77c7c4abd488ab0bd6783678d7))
|
|
15
|
+
* **deps:** bump @earendil-works/pi-coding-agent from 0.80.3 to 0.83.0 ([#67](https://github.com/wobondar/pi-footer/issues/67)) ([126d938](https://github.com/wobondar/pi-footer/commit/126d938e9c211caee59d16c39abe5a8cd53d22a7))
|
|
16
|
+
* **deps:** bump chalk from 5.6.2 to 6.0.0 ([#63](https://github.com/wobondar/pi-footer/issues/63)) ([fe399b8](https://github.com/wobondar/pi-footer/commit/fe399b86d97b48bc6f391345ddc77b5419033efb))
|
|
17
|
+
|
|
18
|
+
## [0.5.0](https://github.com/wobondar/pi-footer/compare/v0.4.2...v0.5.0) (2026-07-23)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* add cache hit rate widget ([#57](https://github.com/wobondar/pi-footer/issues/57)) ([edce7d2](https://github.com/wobondar/pi-footer/commit/edce7d29f0ae48ddde4ff9cf3247f0a6dbd82676))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Dependencies
|
|
27
|
+
|
|
28
|
+
* **deps-dev:** bump @vitest/coverage-v8 from 4.1.9 to 4.1.10 ([#48](https://github.com/wobondar/pi-footer/issues/48)) ([66236c0](https://github.com/wobondar/pi-footer/commit/66236c04ac8c13da532bc38878751d64a10881a7))
|
|
29
|
+
* **deps-dev:** bump oxfmt from 0.57.0 to 0.58.0 ([#49](https://github.com/wobondar/pi-footer/issues/49)) ([d0d0ebb](https://github.com/wobondar/pi-footer/commit/d0d0ebbcd5540275fb3d9580004419393588599e))
|
|
30
|
+
* **deps-dev:** bump oxfmt from 0.58.0 to 0.59.0 ([#55](https://github.com/wobondar/pi-footer/issues/55)) ([71bc5cf](https://github.com/wobondar/pi-footer/commit/71bc5cf53955fa4f077b0593d966bc95fb27b971))
|
|
31
|
+
* **deps-dev:** bump oxlint from 1.72.0 to 1.73.0 ([#52](https://github.com/wobondar/pi-footer/issues/52)) ([5ce5632](https://github.com/wobondar/pi-footer/commit/5ce56329002c7854e4c527e38c095bfd0232c29e))
|
|
32
|
+
* **deps-dev:** bump oxlint from 1.73.0 to 1.74.0 ([#54](https://github.com/wobondar/pi-footer/issues/54)) ([6ccfccd](https://github.com/wobondar/pi-footer/commit/6ccfccd6272fdb1f8dbf405c88de04832d24f6e0))
|
|
33
|
+
* **deps-dev:** bump oxlint-tsgolint from 0.24.0 to 0.25.0 ([#56](https://github.com/wobondar/pi-footer/issues/56)) ([a138fc8](https://github.com/wobondar/pi-footer/commit/a138fc8e794c649134a6bbae1c85d32abf6898be))
|
|
34
|
+
* **deps-dev:** bump vitest from 4.1.9 to 4.1.10 ([#51](https://github.com/wobondar/pi-footer/issues/51)) ([6408e67](https://github.com/wobondar/pi-footer/commit/6408e6769cc07cc8f33661eba24583330be87ab9))
|
|
35
|
+
* **deps:** bump actions/setup-node from 6 to 7 ([#53](https://github.com/wobondar/pi-footer/issues/53)) ([bee2dfb](https://github.com/wobondar/pi-footer/commit/bee2dfbbd97ade2f3266503fb7db70e1dbdebaf8))
|
|
36
|
+
|
|
37
|
+
## [0.4.2](https://github.com/wobondar/pi-footer/compare/v0.4.1...v0.4.2) (2026-07-01)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Dependencies
|
|
41
|
+
|
|
42
|
+
* **deps-dev:** bump @types/node from 25.9.1 to 26.0.0 ([#39](https://github.com/wobondar/pi-footer/issues/39)) ([fc53522](https://github.com/wobondar/pi-footer/commit/fc53522b3fa0a528b201bd8baa0e8d6039cde11c))
|
|
43
|
+
* **deps-dev:** bump @types/node from 26.0.0 to 26.1.0 ([#42](https://github.com/wobondar/pi-footer/issues/42)) ([1ef23c8](https://github.com/wobondar/pi-footer/commit/1ef23c849166e5fc0163d4bd5541f29890a8a0fc))
|
|
44
|
+
* **deps-dev:** bump @vitest/coverage-v8 from 4.1.8 to 4.1.9 ([#41](https://github.com/wobondar/pi-footer/issues/41)) ([d660601](https://github.com/wobondar/pi-footer/commit/d660601e3d83ca0c0074d6b170d131ed62c73a48))
|
|
45
|
+
* **deps-dev:** bump oxfmt from 0.53.0 to 0.54.0 ([#32](https://github.com/wobondar/pi-footer/issues/32)) ([89d4bdb](https://github.com/wobondar/pi-footer/commit/89d4bdbfa21965843f9b6e18953963b0bf5d33d6))
|
|
46
|
+
* **deps-dev:** bump oxfmt from 0.54.0 to 0.55.0 ([#37](https://github.com/wobondar/pi-footer/issues/37)) ([5aaa074](https://github.com/wobondar/pi-footer/commit/5aaa0746608a88e6393c44c30ddcf289d27eedfe))
|
|
47
|
+
* **deps-dev:** bump oxfmt from 0.55.0 to 0.57.0 ([#45](https://github.com/wobondar/pi-footer/issues/45)) ([d4733d5](https://github.com/wobondar/pi-footer/commit/d4733d5e3533ac7d05509fd523af9052ac04bc40))
|
|
48
|
+
* **deps-dev:** bump oxlint from 1.68.0 to 1.69.0 ([#33](https://github.com/wobondar/pi-footer/issues/33)) ([f31d05f](https://github.com/wobondar/pi-footer/commit/f31d05f50c663328b483e3e05286ed9739c833de))
|
|
49
|
+
* **deps-dev:** bump oxlint from 1.69.0 to 1.70.0 ([#40](https://github.com/wobondar/pi-footer/issues/40)) ([405b880](https://github.com/wobondar/pi-footer/commit/405b880960684e5021cc3ea85de1396ad28d9c3b))
|
|
50
|
+
* **deps-dev:** bump oxlint from 1.70.0 to 1.72.0 ([#43](https://github.com/wobondar/pi-footer/issues/43)) ([6ef9cc5](https://github.com/wobondar/pi-footer/commit/6ef9cc5894b82406abbc8f4e6ad91f4607f15714))
|
|
51
|
+
* **deps-dev:** bump oxlint-tsgolint from 0.23.0 to 0.24.0 ([#44](https://github.com/wobondar/pi-footer/issues/44)) ([a75ad99](https://github.com/wobondar/pi-footer/commit/a75ad998f87f46ea2e624fcf698a202c0eb82a3d))
|
|
52
|
+
* **deps-dev:** bump vitest from 4.1.8 to 4.1.9 ([#38](https://github.com/wobondar/pi-footer/issues/38)) ([c47b551](https://github.com/wobondar/pi-footer/commit/c47b551f99bd50765537ab122f7b48576c05123a))
|
|
53
|
+
* **deps:** bump @earendil-works/pi-coding-agent and related pkgs to 0.80.3 ([#46](https://github.com/wobondar/pi-footer/issues/46)) ([62f4aef](https://github.com/wobondar/pi-footer/commit/62f4aefead342afec04b3150979039c7cf0e98e8))
|
|
54
|
+
* **deps:** bump @earendil-works/pi-coding-agent from 0.74.0 to 0.79.8 ([#35](https://github.com/wobondar/pi-footer/issues/35)) ([e8ac663](https://github.com/wobondar/pi-footer/commit/e8ac663bad29ad9195dce2da8189d6e61b8e1e9d))
|
|
55
|
+
* **deps:** bump actions/checkout from 6 to 7 ([#36](https://github.com/wobondar/pi-footer/issues/36)) ([3aad8f4](https://github.com/wobondar/pi-footer/commit/3aad8f40598c4ba6cdbc79155f7f3d7f26f84323))
|
|
56
|
+
|
|
57
|
+
## [0.4.1](https://github.com/wobondar/pi-footer/compare/v0.4.0...v0.4.1) (2026-06-11)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Bug Fixes
|
|
61
|
+
|
|
62
|
+
* **ci:** merge smoke jobs, add PR trigger with trimmed matrix ([#31](https://github.com/wobondar/pi-footer/issues/31)) ([e1911a2](https://github.com/wobondar/pi-footer/commit/e1911a286aae2e913fa54a6ec8efc20de5a6a208))
|
|
63
|
+
* refactor widget context and simplify clone settings ([#30](https://github.com/wobondar/pi-footer/issues/30)) ([6ce2973](https://github.com/wobondar/pi-footer/commit/6ce2973dbbc0294ddfec5cac0bd9a468c942c09f))
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Dependencies
|
|
67
|
+
|
|
68
|
+
* **deps-dev:** bump @vitest/coverage-v8 from 4.1.7 to 4.1.8 ([#25](https://github.com/wobondar/pi-footer/issues/25)) ([61fb783](https://github.com/wobondar/pi-footer/commit/61fb783d42fd3552db818864548bcfc506263e8b))
|
|
69
|
+
* **deps-dev:** bump oxfmt from 0.52.0 to 0.53.0 ([#24](https://github.com/wobondar/pi-footer/issues/24)) ([9b36f14](https://github.com/wobondar/pi-footer/commit/9b36f148ad5b7d6261a92c59721853e404c15493))
|
|
70
|
+
* **deps-dev:** bump oxlint from 1.67.0 to 1.68.0 ([#26](https://github.com/wobondar/pi-footer/issues/26)) ([0817eb9](https://github.com/wobondar/pi-footer/commit/0817eb9d8fb80c87fba726fa372135c5ba568875))
|
|
71
|
+
* **deps-dev:** bump vitest from 4.1.7 to 4.1.8 ([#27](https://github.com/wobondar/pi-footer/issues/27)) ([ea1d50c](https://github.com/wobondar/pi-footer/commit/ea1d50c64e7710333240d1a9cf182a17e312c032))
|
|
72
|
+
|
|
73
|
+
## [0.4.0](https://github.com/wobondar/pi-footer/compare/v0.3.0...v0.4.0) (2026-06-04)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
### Features
|
|
77
|
+
|
|
78
|
+
* widget containers and modular widget registry ([#23](https://github.com/wobondar/pi-footer/issues/23)) ([8f9e4bb](https://github.com/wobondar/pi-footer/commit/8f9e4bb66b75a2c70621390d1bddcf1a0bbc1edc))
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Bug Fixes
|
|
82
|
+
|
|
83
|
+
* enable manual triggering of release workflow ([0c1f8d8](https://github.com/wobondar/pi-footer/commit/0c1f8d84e41f4224a6e0dc131ab665610dd489ca))
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
### Dependencies
|
|
87
|
+
|
|
88
|
+
* **deps-dev:** bump @types/node from 25.6.2 to 25.8.0 ([#9](https://github.com/wobondar/pi-footer/issues/9)) ([aed1f36](https://github.com/wobondar/pi-footer/commit/aed1f36746ee78d05500a6266ffb67a943cbbf1c))
|
|
89
|
+
* **deps-dev:** bump @types/node from 25.8.0 to 25.9.1 ([#12](https://github.com/wobondar/pi-footer/issues/12)) ([935a1f4](https://github.com/wobondar/pi-footer/commit/935a1f4f2f630c29ab662ea12a0a5c14d1e3460a))
|
|
90
|
+
* **deps-dev:** bump @vitest/coverage-v8 from 4.1.5 to 4.1.6 ([#10](https://github.com/wobondar/pi-footer/issues/10)) ([38f988c](https://github.com/wobondar/pi-footer/commit/38f988c476dc41116f5880c5d6a64fdb82c19258))
|
|
91
|
+
* **deps-dev:** bump @vitest/coverage-v8 from 4.1.6 to 4.1.7 ([#17](https://github.com/wobondar/pi-footer/issues/17)) ([55cb502](https://github.com/wobondar/pi-footer/commit/55cb5023a084fb42bebce5bb48399e51ac246a46))
|
|
92
|
+
* **deps-dev:** bump oxfmt from 0.48.0 to 0.50.0 ([#7](https://github.com/wobondar/pi-footer/issues/7)) ([e0f7d89](https://github.com/wobondar/pi-footer/commit/e0f7d89b9bee8dd3b5a7a935b9e9dc1e4e55cfb1))
|
|
93
|
+
* **deps-dev:** bump oxfmt from 0.50.0 to 0.51.0 ([#13](https://github.com/wobondar/pi-footer/issues/13)) ([1de1845](https://github.com/wobondar/pi-footer/commit/1de184546fa60af0ee03477d02f0f1ce2be59d80))
|
|
94
|
+
* **deps-dev:** bump oxfmt from 0.51.0 to 0.52.0 ([#21](https://github.com/wobondar/pi-footer/issues/21)) ([9fa53f2](https://github.com/wobondar/pi-footer/commit/9fa53f28403f5f85b84714e7411c77a55ae17f02))
|
|
95
|
+
* **deps-dev:** bump oxlint from 1.63.0 to 1.65.0 ([#8](https://github.com/wobondar/pi-footer/issues/8)) ([e3d6c2e](https://github.com/wobondar/pi-footer/commit/e3d6c2ef81dea916edf09191b6ac369992bc1179))
|
|
96
|
+
* **deps-dev:** bump oxlint from 1.65.0 to 1.66.0 ([#16](https://github.com/wobondar/pi-footer/issues/16)) ([1dc7296](https://github.com/wobondar/pi-footer/commit/1dc72966836b5c64d9e7913eac16514a8fa12bde))
|
|
97
|
+
* **deps-dev:** bump oxlint from 1.66.0 to 1.67.0 ([#22](https://github.com/wobondar/pi-footer/issues/22)) ([5910539](https://github.com/wobondar/pi-footer/commit/5910539484e313455b982d7b0df82a1096ba6838))
|
|
98
|
+
* **deps-dev:** bump oxlint-tsgolint from 0.22.1 to 0.23.0 ([#14](https://github.com/wobondar/pi-footer/issues/14)) ([0178315](https://github.com/wobondar/pi-footer/commit/0178315dac50583b92d2da17524428292dc4f12f))
|
|
99
|
+
* **deps-dev:** bump vitest from 4.1.6 to 4.1.7 ([#15](https://github.com/wobondar/pi-footer/issues/15)) ([f06570a](https://github.com/wobondar/pi-footer/commit/f06570a17ee4acd59bbe3530bb7510cedc4685b0))
|
|
100
|
+
* **deps:** bump protobufjs from 7.5.7 to 7.6.1 ([#18](https://github.com/wobondar/pi-footer/issues/18)) ([cbd496b](https://github.com/wobondar/pi-footer/commit/cbd496b7a61e9fcfc888ad97bf591d6c187297ca))
|
|
101
|
+
* **deps:** bump ws from 8.20.0 to 8.21.0 ([#19](https://github.com/wobondar/pi-footer/issues/19)) ([3ff5247](https://github.com/wobondar/pi-footer/commit/3ff52474e84a54aa3823a7d0be162e4993426f52))
|
|
102
|
+
|
|
103
|
+
## [0.3.0](https://github.com/wobondar/pi-footer/compare/v0.2.1...v0.3.0) (2026-05-10)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
### Features
|
|
107
|
+
|
|
108
|
+
* enhance git info caching ([3963e69](https://github.com/wobondar/pi-footer/commit/3963e69286f95514df212acae69470d4d9fea00a))
|
|
109
|
+
|
|
110
|
+
## [0.2.1](https://github.com/wobondar/pi-footer/compare/v0.2.0...v0.2.1) (2026-05-10)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
### Bug Fixes
|
|
114
|
+
|
|
115
|
+
* update image links to use raw GitHub URLs ([804c8c2](https://github.com/wobondar/pi-footer/commit/804c8c2a91224604dd4177eb6b9ea0e9ff9b0af7))
|
|
116
|
+
|
|
117
|
+
## [0.2.0](https://github.com/wobondar/pi-footer/compare/v0.1.0...v0.2.0) (2026-05-10)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
### Features
|
|
121
|
+
|
|
122
|
+
* rebrand to pi-footer due to npm similarity with existing package ([cceba8c](https://github.com/wobondar/pi-footer/commit/cceba8ce838d7f4fc4b2653d5bfeea4f39eb19f2))
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
### Bug Fixes
|
|
126
|
+
|
|
127
|
+
* enable npm publish with provenance ([39e3709](https://github.com/wobondar/pi-footer/commit/39e3709c769a7911b4c1fb0ea79759e67e55b29c))
|
|
128
|
+
|
|
129
|
+
## [0.1.0](https://github.com/wobondar/pi-footer/compare/v0.0.1...v0.1.0) (2026-05-09)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
### Features
|
|
133
|
+
|
|
134
|
+
* initial extension ([8998c7b](https://github.com/wobondar/pi-footer/commit/8998c7b44dc6b91b069a46a265d2e5466f3d41fe))
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
### Bug Fixes
|
|
138
|
+
|
|
139
|
+
* embed video ([02f0668](https://github.com/wobondar/pi-footer/commit/02f0668bb75eed7a343454c277e83d92b65533f9))
|
|
140
|
+
* replace video embed with tag ([e79d2c4](https://github.com/wobondar/pi-footer/commit/e79d2c45b80be96321d5ecd2de67e7d14e0f16fc))
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
### Dependencies
|
|
144
|
+
|
|
145
|
+
* **deps-dev:** bump oxfmt from 0.47.0 to 0.48.0 ([#2](https://github.com/wobondar/pi-footer/issues/2)) ([d82e354](https://github.com/wobondar/pi-footer/commit/d82e3548ee6a839867ec066fd3dc4088da436769))
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 wobondar
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|