pi-superwhisper-paste 0.1.14 → 0.1.16
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/CHANGELOG.md +127 -115
- package/README.md +88 -22
- package/package.json +1 -1
- package/docs/github-template.md +0 -43
- package/docs/repository-settings.md +0 -40
- package/docs/typescript.md +0 -75
package/CHANGELOG.md
CHANGED
|
@@ -1,115 +1,127 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
This project follows semantic versioning.
|
|
6
|
-
|
|
7
|
-
## [0.1.
|
|
8
|
-
|
|
9
|
-
### Changed
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
## [0.1.
|
|
14
|
-
|
|
15
|
-
###
|
|
16
|
-
|
|
17
|
-
- Remove `
|
|
18
|
-
|
|
19
|
-
## [0.1.
|
|
20
|
-
|
|
21
|
-
### Changed
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
## [0.1.
|
|
26
|
-
|
|
27
|
-
### Fixed
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
## [0.1.
|
|
45
|
-
|
|
46
|
-
### Fixed
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
### Fixed
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
## [0.1.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
## [0.1.
|
|
110
|
-
|
|
111
|
-
### Added
|
|
112
|
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
This project follows semantic versioning.
|
|
6
|
+
|
|
7
|
+
## [0.1.16] - 2026-06-27
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Align README with the current Pi extension template structure while preserving Windows install guidance and behavior notes.
|
|
12
|
+
|
|
13
|
+
## [0.1.15] - 2026-06-05
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Remove stale template-maintenance docs (`github-template.md`, `repository-settings.md`, `typescript.md`) from the published package.
|
|
18
|
+
|
|
19
|
+
## [0.1.14] - 2026-06-05
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Re-add `Code` / `Cursor` host processes to the clipboard-owner denylist so editor-hosted clipboard updates are blocked again during debugging.
|
|
24
|
+
|
|
25
|
+
## [0.1.13] - 2026-06-05
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Remove `Code.exe` / `Cursor.exe` from the terminal-owner denylist so editor-hosted Superwhisper clipboard updates are not blocked just because Pi is running inside Code/Cursor.
|
|
30
|
+
|
|
31
|
+
## [0.1.12] - 2026-06-05
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- Add an explicit `v0.1.12` marker to the status text so stale package loads are visible during live debugging.
|
|
36
|
+
|
|
37
|
+
## [0.1.11] - 2026-06-05
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Broaden the terminal clipboard-owner denylist with `OpenConsole` / explicit `.exe` variants.
|
|
42
|
+
- Surface the last clipboard decision in the Pi status text (`blocked ...`, `... via ...`) so real-machine owner mismatches can be diagnosed quickly.
|
|
43
|
+
|
|
44
|
+
## [0.1.10] - 2026-06-05
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Fix the Windows PowerShell clipboard-owner probe script so the owner-aware bridge works in real Pi sessions instead of failing on multiline `Add-Type` syntax.
|
|
49
|
+
|
|
50
|
+
## [0.1.9] - 2026-06-05
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- Replace the strict Superwhisper owner allowlist with a terminal-owner denylist so unknown Superwhisper owner names still auto-paste while terminal/CLI clipboard owners stay blocked.
|
|
55
|
+
|
|
56
|
+
## [0.1.8] - 2026-06-05
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- Filter clipboard updates by clipboard-owner process so Pi auto-pastes only when the clipboard owner looks like Superwhisper.
|
|
61
|
+
- Keep local terminal copy suppression as a fallback for forwarded copy shortcuts while blocking mouse/right-click terminal copies via owner filtering.
|
|
62
|
+
|
|
63
|
+
## [0.1.7] - 2026-06-05
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- Suppress auto-paste for a short window after local terminal copy shortcuts so copying inside the active CLI no longer pastes into Pi.
|
|
68
|
+
- Refresh the clipboard baseline after local copy intent so the bridge keeps waiting for the next Superwhisper clipboard update.
|
|
69
|
+
|
|
70
|
+
## [0.1.6] - 2026-06-04
|
|
71
|
+
|
|
72
|
+
### Changed
|
|
73
|
+
|
|
74
|
+
- Added `version:check` PR guard support: package script + `scripts/check-version-bump.mjs`.
|
|
75
|
+
- Added CI verification that publishable changes must bump `package.json` and update `CHANGELOG.md` in the same PR.
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
|
|
79
|
+
- Truncate clipboard text in PowerShell before writing stdout so huge clipboards no longer exceed Node `maxBuffer` on extension load.
|
|
80
|
+
- Treat clipboard read failures (including `maxBuffer`) as empty reads so `session_start` never surfaces as an extension error.
|
|
81
|
+
|
|
82
|
+
## [0.1.5] - 2026-06-03
|
|
83
|
+
|
|
84
|
+
## [0.1.4] - 2026-06-03
|
|
85
|
+
|
|
86
|
+
### Changed
|
|
87
|
+
|
|
88
|
+
- Clarify that `pi-superwhisper-paste` is the Windows clipboard-based package.
|
|
89
|
+
- Point users to `@superwhisper/pi` only for the official deeplink/macOS flow.
|
|
90
|
+
- Update npm package metadata to match the revived Windows-focused positioning.
|
|
91
|
+
|
|
92
|
+
## [0.1.3] - 2026-06-03
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- Mark the package as archived in README and `package.json` description.
|
|
97
|
+
- Point new installs to the official Superwhisper Pi extension: `pi install npm:@superwhisper/pi`.
|
|
98
|
+
|
|
99
|
+
## [0.1.2] - 2026-06-01
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
|
|
103
|
+
- Register `/sw-paste:on` and `/sw-paste:off` as Pi slash commands so they appear in command autocomplete.
|
|
104
|
+
|
|
105
|
+
### Changed
|
|
106
|
+
|
|
107
|
+
- Clarify that the Superwhisper paste controls are slash-autocomplete commands.
|
|
108
|
+
|
|
109
|
+
## [0.1.1] - 2026-05-31
|
|
110
|
+
|
|
111
|
+
### Added
|
|
112
|
+
|
|
113
|
+
- Add automatic GitHub release creation for version bumps on `main`.
|
|
114
|
+
- Add manual and release-published npm publish entrypoints for Trusted Publishing.
|
|
115
|
+
|
|
116
|
+
### Changed
|
|
117
|
+
|
|
118
|
+
- Align CI and publish workflows with the maintained Pi OSS release pattern.
|
|
119
|
+
- Skip npm publish when the exact package version is already published.
|
|
120
|
+
|
|
121
|
+
## [0.1.0] - YYYY-MM-DD
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
|
|
125
|
+
- Initial Superwhisper paste bridge extension for Pi on Windows.
|
|
126
|
+
- Default-on clipboard watcher with `/sw-paste:on` and `/sw-paste:off` controls.
|
|
127
|
+
- CI and npm Trusted Publishing workflow from the Pi extension template.
|
package/README.md
CHANGED
|
@@ -1,21 +1,64 @@
|
|
|
1
1
|
# Pi Superwhisper Paste
|
|
2
2
|
|
|
3
|
-
> Windows-focused Pi bridge for Superwhisper clipboard input.
|
|
4
|
-
>
|
|
5
|
-
> The official Superwhisper Pi package (`@superwhisper/pi`) targets the deeplink/macOS flow. If you need the clipboard-based Windows workaround, use this package.
|
|
6
|
-
|
|
7
3
|
[](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/ci.yml)
|
|
8
4
|
[](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/publish.yml)
|
|
9
5
|
[](https://www.npmjs.com/package/pi-superwhisper-paste)
|
|
6
|
+
[](https://www.npmjs.com/package/pi-superwhisper-paste)
|
|
10
7
|
[](LICENSE)
|
|
8
|
+
[](https://pi.dev/packages)
|
|
9
|
+
[](docs/release.md)
|
|
10
|
+
|
|
11
|
+
> Windows-focused Pi bridge that pastes Superwhisper clipboard output into Pi's TUI editor.
|
|
12
|
+
|
|
13
|
+
## What this is
|
|
14
|
+
|
|
15
|
+
Superwhisper can paste dictated text into normal Windows apps, but terminal TUIs can be a rough edge. In the original case, dictation worked in Notepad and PowerShell, and Typeless worked in Pi, but Superwhisper's automatic paste did not reliably reach Pi's TUI editor without a manual `Ctrl+V`.
|
|
16
|
+
|
|
17
|
+
This package bridges that gap from the Pi side: it watches the Windows clipboard, detects new Superwhisper output, and inserts it into the active Pi editor with Pi's extension API.
|
|
18
|
+
|
|
19
|
+
The official Superwhisper Pi package (`@superwhisper/pi`) targets the deeplink/macOS flow. If you need the clipboard-based Windows workaround, use this package.
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- Default-on after the extension loads on Windows.
|
|
24
|
+
- Slash commands: `/sw-paste:on` and `/sw-paste:off`.
|
|
25
|
+
- Windows clipboard polling with active-tab gating.
|
|
26
|
+
- Brief copy-suppression window so local terminal copy actions do not get auto-pasted back into Pi.
|
|
27
|
+
- Clipboard-owner filtering so terminal/CLI-owned clipboard updates stay blocked by default.
|
|
28
|
+
|
|
29
|
+
## Install
|
|
11
30
|
|
|
12
|
-
|
|
31
|
+
Install the published npm package with Pi:
|
|
13
32
|
|
|
14
33
|
```bash
|
|
15
34
|
pi install npm:pi-superwhisper-paste
|
|
16
35
|
```
|
|
17
36
|
|
|
18
|
-
|
|
37
|
+
Pin a specific version when you want reproducible installs:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pi install npm:pi-superwhisper-paste@0.1.16
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Install into the current project instead of your user Pi settings:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pi install npm:pi-superwhisper-paste -l
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Or install from GitHub:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pi install git:github.com/eiei114/pi-superwhisper-paste
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Try it without permanently installing:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pi -e npm:pi-superwhisper-paste
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Official Superwhisper package
|
|
19
62
|
|
|
20
63
|
If you are using the official Superwhisper Pi integration instead:
|
|
21
64
|
|
|
@@ -25,40 +68,63 @@ pi install npm:@superwhisper/pi
|
|
|
25
68
|
|
|
26
69
|
Docs: https://superwhisper.com/pi
|
|
27
70
|
|
|
28
|
-
##
|
|
71
|
+
## Quick start
|
|
29
72
|
|
|
30
|
-
|
|
73
|
+
After install, start Pi and dictate with Superwhisper. New Superwhisper clipboard output should auto-paste into the active Pi editor when the bridge is on.
|
|
31
74
|
|
|
32
|
-
|
|
75
|
+
Toggle the bridge at runtime:
|
|
33
76
|
|
|
34
|
-
|
|
77
|
+
```txt
|
|
78
|
+
/sw-paste:off
|
|
79
|
+
/sw-paste:on
|
|
80
|
+
```
|
|
35
81
|
|
|
36
|
-
|
|
82
|
+
Try this package locally from a clone:
|
|
37
83
|
|
|
38
84
|
```bash
|
|
39
|
-
pi
|
|
85
|
+
pi -e .
|
|
40
86
|
```
|
|
41
87
|
|
|
42
|
-
|
|
88
|
+
## Package contents
|
|
89
|
+
|
|
90
|
+
| Path | Purpose |
|
|
91
|
+
|---|---|
|
|
92
|
+
| `extensions/index.ts` | Pi TypeScript extension entrypoint |
|
|
93
|
+
| `docs/examples.md` | Usage examples |
|
|
94
|
+
| `docs/release.md` | Trusted Publishing release flow |
|
|
95
|
+
| `docs/template-checklist.md` | Maintainer template checklist |
|
|
96
|
+
| `CHANGELOG.md` | Version history |
|
|
97
|
+
| `LICENSE` | MIT license |
|
|
98
|
+
|
|
99
|
+
## Development
|
|
43
100
|
|
|
44
101
|
```bash
|
|
45
|
-
|
|
102
|
+
npm install
|
|
103
|
+
npm run ci
|
|
46
104
|
```
|
|
47
105
|
|
|
48
|
-
##
|
|
106
|
+
## Release
|
|
49
107
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
108
|
+
This package is set up for npm Trusted Publishing, so no `NPM_TOKEN` is required.
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npm version patch
|
|
112
|
+
git push
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
See [`docs/release.md`](docs/release.md) for setup details.
|
|
116
|
+
|
|
117
|
+
## Security
|
|
118
|
+
|
|
119
|
+
Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
|
|
55
120
|
|
|
56
|
-
|
|
121
|
+
For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
|
|
57
122
|
|
|
58
123
|
## Links
|
|
59
124
|
|
|
60
|
-
-
|
|
125
|
+
- npm: https://www.npmjs.com/package/pi-superwhisper-paste
|
|
61
126
|
- GitHub: https://github.com/eiei114/pi-superwhisper-paste
|
|
127
|
+
- Issues: https://github.com/eiei114/pi-superwhisper-paste/issues
|
|
62
128
|
- Official Superwhisper Pi package: https://superwhisper.com/pi — `@superwhisper/pi` on npm (`pi install npm:@superwhisper/pi`)
|
|
63
129
|
|
|
64
130
|
## License
|
package/package.json
CHANGED
package/docs/github-template.md
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# GitHub Template Repository
|
|
2
|
-
|
|
3
|
-
Enable template mode on the source repository:
|
|
4
|
-
|
|
5
|
-
```txt
|
|
6
|
-
GitHub repo → Settings → General → Template repository
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Create a public repository from the template:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
gh repo create OWNER/new-pi-extension \
|
|
13
|
-
--public \
|
|
14
|
-
--template OWNER/pi-extension-template \
|
|
15
|
-
--clone
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Create a private repository from the template:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
gh repo create OWNER/new-pi-extension \
|
|
22
|
-
--private \
|
|
23
|
-
--template OWNER/pi-extension-template \
|
|
24
|
-
--clone
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Include all branches if needed:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
gh repo create OWNER/new-pi-extension \
|
|
31
|
-
--public \
|
|
32
|
-
--template OWNER/pi-extension-template \
|
|
33
|
-
--include-all-branches \
|
|
34
|
-
--clone
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
After creation:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
cd new-pi-extension
|
|
41
|
-
npm install
|
|
42
|
-
npm run ci
|
|
43
|
-
```
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Repository Settings
|
|
2
|
-
|
|
3
|
-
Use this file after creating a real repository from the template.
|
|
4
|
-
|
|
5
|
-
## GitHub About
|
|
6
|
-
|
|
7
|
-
Suggested fields:
|
|
8
|
-
|
|
9
|
-
- Description: Bridge Superwhisper clipboard dictation into the Pi TUI editor on Windows.
|
|
10
|
-
- Website: npm package URL or project docs URL
|
|
11
|
-
- Topics:
|
|
12
|
-
- `pi`
|
|
13
|
-
- `pi-package`
|
|
14
|
-
- `pi-extension`
|
|
15
|
-
- `superwhisper`
|
|
16
|
-
- `clipboard`
|
|
17
|
-
- `windows`
|
|
18
|
-
- `typescript`
|
|
19
|
-
|
|
20
|
-
## Template mode
|
|
21
|
-
|
|
22
|
-
This repository is a concrete package, not a template. Do not enable template mode unless it is intentionally turned into a reusable starter.
|
|
23
|
-
|
|
24
|
-
## Branch protection
|
|
25
|
-
|
|
26
|
-
Recommended for public packages:
|
|
27
|
-
|
|
28
|
-
- Require pull request before merging
|
|
29
|
-
- Require status checks to pass
|
|
30
|
-
- Require `CI` workflow
|
|
31
|
-
- Block force pushes on the default branch
|
|
32
|
-
|
|
33
|
-
## npm package page
|
|
34
|
-
|
|
35
|
-
After first publish:
|
|
36
|
-
|
|
37
|
-
- Confirm README renders correctly
|
|
38
|
-
- Confirm package provenance appears
|
|
39
|
-
- Confirm package contents are intentional
|
|
40
|
-
- Add npm URL to GitHub About and README
|
package/docs/typescript.md
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# TypeScript Guide
|
|
2
|
-
|
|
3
|
-
This is a TypeScript-first Pi package template.
|
|
4
|
-
|
|
5
|
-
## Layout
|
|
6
|
-
|
|
7
|
-
```txt
|
|
8
|
-
extensions/*.ts Pi extension entrypoints
|
|
9
|
-
lib/*.ts Shared TypeScript helpers
|
|
10
|
-
skills/*/SKILL.md Agent Skills
|
|
11
|
-
prompts/*.md Prompt templates
|
|
12
|
-
themes/*.json Themes
|
|
13
|
-
tests/*.test.mjs Smoke tests
|
|
14
|
-
tests/*.test.ts Optional TypeScript tests if you add a TS test runner
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Pi loads TypeScript extensions directly, so no build step is required for normal use.
|
|
18
|
-
|
|
19
|
-
## Strict mode
|
|
20
|
-
|
|
21
|
-
`tsconfig.json` keeps `strict: true`. Prefer fixing types over loosening compiler options.
|
|
22
|
-
|
|
23
|
-
## Extension entrypoints
|
|
24
|
-
|
|
25
|
-
Two entrypoint styles are shown:
|
|
26
|
-
|
|
27
|
-
- `extensions/hello.ts`: single-file extension
|
|
28
|
-
- `extensions/index.ts`: index-style extension that imports shared code from `lib/`
|
|
29
|
-
|
|
30
|
-
For larger packages, keep entrypoints thin and put reusable logic in `lib/`.
|
|
31
|
-
|
|
32
|
-
## TypeBox schemas
|
|
33
|
-
|
|
34
|
-
Use TypeBox schemas for custom tool parameters.
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
import { Type } from "typebox";
|
|
38
|
-
|
|
39
|
-
const parameters = Type.Object({
|
|
40
|
-
name: Type.String({ description: "Name to greet" }),
|
|
41
|
-
});
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## String enums
|
|
45
|
-
|
|
46
|
-
For string choices, use the local `StringEnum` helper from `lib/schema.ts`.
|
|
47
|
-
|
|
48
|
-
```ts
|
|
49
|
-
import { StringEnum } from "../lib/schema.ts";
|
|
50
|
-
|
|
51
|
-
const mode = StringEnum(["short", "friendly"], {
|
|
52
|
-
description: "Greeting style",
|
|
53
|
-
});
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
This emits a JSON Schema `enum`, which is friendlier to model providers than a union of string literals.
|
|
57
|
-
|
|
58
|
-
## Runtime dependencies vs peer dependencies
|
|
59
|
-
|
|
60
|
-
Pi bundles core packages for extension authors. Keep Pi-provided packages as `peerDependencies` and also install them as `devDependencies` for local typechecking.
|
|
61
|
-
|
|
62
|
-
Use `peerDependencies` for:
|
|
63
|
-
|
|
64
|
-
- `@earendil-works/pi-coding-agent`
|
|
65
|
-
- `@earendil-works/pi-ai`
|
|
66
|
-
- `@earendil-works/pi-tui`
|
|
67
|
-
- `typebox`
|
|
68
|
-
|
|
69
|
-
Use `dependencies` for runtime packages your extension imports that Pi does not provide.
|
|
70
|
-
|
|
71
|
-
Use `devDependencies` for local-only tools such as TypeScript, test runners, and linters.
|
|
72
|
-
|
|
73
|
-
## Package contents
|
|
74
|
-
|
|
75
|
-
Control npm package contents with `package.json` `files`. Prefer this over `.npmignore` so the published package stays explicit.
|