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 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.14] - 2026-06-05
8
-
9
- ### Changed
10
-
11
- - Re-add `Code` / `Cursor` host processes to the clipboard-owner denylist so editor-hosted clipboard updates are blocked again during debugging.
12
-
13
- ## [0.1.13] - 2026-06-05
14
-
15
- ### Fixed
16
-
17
- - 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.
18
-
19
- ## [0.1.12] - 2026-06-05
20
-
21
- ### Changed
22
-
23
- - Add an explicit `v0.1.12` marker to the status text so stale package loads are visible during live debugging.
24
-
25
- ## [0.1.11] - 2026-06-05
26
-
27
- ### Fixed
28
-
29
- - Broaden the terminal clipboard-owner denylist with `OpenConsole` / explicit `.exe` variants.
30
- - Surface the last clipboard decision in the Pi status text (`blocked ...`, `... via ...`) so real-machine owner mismatches can be diagnosed quickly.
31
-
32
- ## [0.1.10] - 2026-06-05
33
-
34
- ### Fixed
35
-
36
- - 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.
37
-
38
- ## [0.1.9] - 2026-06-05
39
-
40
- ### Fixed
41
-
42
- - 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.
43
-
44
- ## [0.1.8] - 2026-06-05
45
-
46
- ### Fixed
47
-
48
- - Filter clipboard updates by clipboard-owner process so Pi auto-pastes only when the clipboard owner looks like Superwhisper.
49
- - Keep local terminal copy suppression as a fallback for forwarded copy shortcuts while blocking mouse/right-click terminal copies via owner filtering.
50
-
51
- ## [0.1.7] - 2026-06-05
52
-
53
- ### Fixed
54
-
55
- - Suppress auto-paste for a short window after local terminal copy shortcuts so copying inside the active CLI no longer pastes into Pi.
56
- - Refresh the clipboard baseline after local copy intent so the bridge keeps waiting for the next Superwhisper clipboard update.
57
-
58
- ## [0.1.6] - 2026-06-04
59
-
60
- ### Changed
61
-
62
- - Added `version:check` PR guard support: package script + `scripts/check-version-bump.mjs`.
63
- - Added CI verification that publishable changes must bump `package.json` and update `CHANGELOG.md` in the same PR.
64
-
65
- ### Fixed
66
-
67
- - Truncate clipboard text in PowerShell before writing stdout so huge clipboards no longer exceed Node `maxBuffer` on extension load.
68
- - Treat clipboard read failures (including `maxBuffer`) as empty reads so `session_start` never surfaces as an extension error.
69
-
70
- ## [0.1.5] - 2026-06-03
71
-
72
- ## [0.1.4] - 2026-06-03
73
-
74
- ### Changed
75
-
76
- - Clarify that `pi-superwhisper-paste` is the Windows clipboard-based package.
77
- - Point users to `@superwhisper/pi` only for the official deeplink/macOS flow.
78
- - Update npm package metadata to match the revived Windows-focused positioning.
79
-
80
- ## [0.1.3] - 2026-06-03
81
-
82
- ### Changed
83
-
84
- - Mark the package as archived in README and `package.json` description.
85
- - Point new installs to the official Superwhisper Pi extension: `pi install npm:@superwhisper/pi`.
86
-
87
- ## [0.1.2] - 2026-06-01
88
-
89
- ### Fixed
90
-
91
- - Register `/sw-paste:on` and `/sw-paste:off` as Pi slash commands so they appear in command autocomplete.
92
-
93
- ### Changed
94
-
95
- - Clarify that the Superwhisper paste controls are slash-autocomplete commands.
96
-
97
- ## [0.1.1] - 2026-05-31
98
-
99
- ### Added
100
-
101
- - Add automatic GitHub release creation for version bumps on `main`.
102
- - Add manual and release-published npm publish entrypoints for Trusted Publishing.
103
-
104
- ### Changed
105
-
106
- - Align CI and publish workflows with the maintained Pi OSS release pattern.
107
- - Skip npm publish when the exact package version is already published.
108
-
109
- ## [0.1.0] - YYYY-MM-DD
110
-
111
- ### Added
112
-
113
- - Initial Superwhisper paste bridge extension for Pi on Windows.
114
- - Default-on clipboard watcher with `/sw-paste:on` and `/sw-paste:off` controls.
115
- - CI and npm Trusted Publishing workflow from the Pi extension template.
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
  [![CI](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/ci.yml/badge.svg)](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/ci.yml)
8
4
  [![Publish](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/publish.yml/badge.svg)](https://github.com/eiei114/pi-superwhisper-paste/actions/workflows/publish.yml)
9
5
  [![npm version](https://img.shields.io/npm/v/pi-superwhisper-paste.svg)](https://www.npmjs.com/package/pi-superwhisper-paste)
6
+ [![npm downloads](https://img.shields.io/npm/dm/pi-superwhisper-paste.svg)](https://www.npmjs.com/package/pi-superwhisper-paste)
10
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
+ [![Pi package](https://img.shields.io/badge/pi-package-purple.svg)](https://pi.dev/packages)
9
+ [![Trusted Publishing](https://img.shields.io/badge/npm-Trusted%20Publishing-blue.svg)](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
- ## Recommended install on Windows
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
- ## Official package
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
- ## Why this package exists
71
+ ## Quick start
29
72
 
30
- 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`.
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
- 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.
75
+ Toggle the bridge at runtime:
33
76
 
34
- ## Install
77
+ ```txt
78
+ /sw-paste:off
79
+ /sw-paste:on
80
+ ```
35
81
 
36
- From npm:
82
+ Try this package locally from a clone:
37
83
 
38
84
  ```bash
39
- pi install npm:pi-superwhisper-paste
85
+ pi -e .
40
86
  ```
41
87
 
42
- From GitHub:
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
- pi install git:github.com/eiei114/pi-superwhisper-paste
102
+ npm install
103
+ npm run ci
46
104
  ```
47
105
 
48
- ## Current behavior
106
+ ## Release
49
107
 
50
- - Default-on after the extension loads.
51
- - Slash commands: `/sw-paste:on` and `/sw-paste:off`.
52
- - Windows clipboard polling with active-tab gating.
53
- - Brief copy-suppression window so local terminal copy actions do not get auto-pasted back into Pi.
54
- - Clipboard-owner filtering so terminal/CLI-owned clipboard updates stay blocked by default.
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
- See [CHANGELOG.md](CHANGELOG.md) for version history.
121
+ For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
57
122
 
58
123
  ## Links
59
124
 
60
- - Windows package: https://www.npmjs.com/package/pi-superwhisper-paste
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-superwhisper-paste",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "Superwhisper clipboard bridge for Pi on Windows.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -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
@@ -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.