pi-autotalk 0.1.3 → 0.1.5

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,9 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ### Changed
6
+
7
+ - Bump package version to `0.1.5` for the next patch release.
8
+
9
+ - Add Buy Me a Coffee sponsor button to README and native GitHub funding link via `.github/FUNDING.yml`.
10
+
3
11
  All notable changes to this project will be documented in this file.
4
12
 
5
13
  This project follows semantic versioning.
6
14
 
15
+ ## [0.1.4] - 2026-07-04
16
+
17
+ ### Fixed
18
+
19
+ - Publish pipeline: removed `registry-url` from `setup-node` in `.github/workflows/publish.yml`
20
+ so `npm publish --provenance` uses the OIDC token for both provenance signing and HTTP
21
+ authentication. Previously `NODE_AUTH_TOKEN` (set to GITHUB_TOKEN by setup-node) took
22
+ precedence, causing `E404 PUT` even when npm Trusted Publisher was correctly configured.
23
+
7
24
  ## [0.1.3] - 2026-06-18
8
25
 
9
26
  ### Fixed
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 YOUR_NAME
3
+ Copyright (c) 2026 eiei114
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,242 +1,249 @@
1
- # Pi AutoTalk
2
-
3
- [![CI](https://github.com/eiei114/pi-autotalk/actions/workflows/ci.yml/badge.svg)](https://github.com/eiei114/pi-autotalk/actions/workflows/ci.yml)
4
- [![Auto Release](https://github.com/eiei114/pi-autotalk/actions/workflows/auto-release.yml/badge.svg)](https://github.com/eiei114/pi-autotalk/actions/workflows/auto-release.yml)
5
- [![Publish](https://github.com/eiei114/pi-autotalk/actions/workflows/publish.yml/badge.svg)](https://github.com/eiei114/pi-autotalk/actions/workflows/publish.yml)
6
- [![npm version](https://img.shields.io/npm/v/pi-autotalk.svg)](https://www.npmjs.com/package/pi-autotalk)
7
- [![npm downloads](https://img.shields.io/npm/dm/pi-autotalk.svg)](https://www.npmjs.com/package/pi-autotalk)
8
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
- [![Pi package](https://img.shields.io/badge/pi-package-purple.svg)](https://pi.dev/packages)
10
- [![Trusted Publishing](https://img.shields.io/badge/npm-Trusted%20Publishing-blue.svg)](docs/release.md)
11
-
12
- > Timed AutoTalk for Pi: periodically send your editor thoughts to the agent for brainstorming.
13
-
14
- Pi AutoTalk turns Pi's interactive editor into a lightweight thinking buffer. Turn it on, type rough notes or mutterings into the editor, and Pi periodically sends them back to the agent as an AutoTalk thought memo.
15
-
16
- Status: **MVP implemented and locally dogfooded**. AutoTalk is always off by default and only runs after `/autotalk:on`.
17
-
18
- ## Why
19
-
20
- Sometimes you do not want to craft a polished prompt. You want to think out loud, let the agent react, and keep moving. AutoTalk is for that mode:
21
-
22
- - brainstorming while typing fragments
23
- - talking through an idea before it becomes a task
24
- - keeping momentum without repeatedly pressing submit
25
- - asking Pi to reflect on your current train of thought
26
-
27
- ## What it does
28
-
29
- When enabled, AutoTalk:
30
-
31
- 1. watches the interactive editor buffer;
32
- 2. waits until you have stopped typing for a short moment;
33
- 3. sends the full buffer on an interval;
34
- 4. wraps it in an `[AutoTalk]` thought-memo prefix;
35
- 5. clears the editor only if the text has not changed since it was read.
36
-
37
- It is deliberately conservative. Slash commands are protected, enabled state is not persisted, and AutoTalk messages tell the agent not to edit files, run commands, or send external requests unless explicitly asked.
38
-
39
- ## Commands
40
-
41
- | Command | Purpose |
42
- |---|---|
43
- | `/autotalk:on` | Start timed sending. Does not immediately send existing editor text. |
44
- | `/autotalk:off` | Stop timed sending and clear AutoTalk footer status. |
45
- | `/autotalk:mode` | Select busy-agent delivery mode: `followUp` or `steer`. |
46
- | `/autotalk:settings` | Configure interval seconds and delivery mode. |
47
-
48
- ## Behavior details
49
-
50
- ### Sending interval
51
-
52
- - Default: `10` seconds.
53
- - Allowed range: `5` to `120` seconds.
54
- - Settings UI rejects non-integers and out-of-range values.
55
-
56
- ### Typing guard
57
-
58
- AutoTalk skips a tick if the editor changed within the last 2 seconds. This avoids sending half-typed fragments at the exact moment you are still writing.
59
-
60
- ### Slash-command guard
61
-
62
- If the editor starts with `/`, AutoTalk pauses for that tick and does not clear the editor. This prevents commands like `/autotalk:off`, `/reload`, or `/model` from being auto-sent as thought memos.
63
-
64
- ### Safe clearing
65
-
66
- After sending a non-empty buffer, AutoTalk clears the editor only if the editor still exactly matches the text that was sent. If you type more while a send is happening, the new text is preserved.
67
-
68
- ### Empty prompt
69
-
70
- If the editor is empty, AutoTalk sends a one-shot continuation prompt:
71
-
72
- ```text
73
- [AutoTalk]
74
- The editor is empty. From the conversation so far, ask one question to think about next.
75
- ```
76
-
77
- That empty prompt is sent only once. It resets after a real non-empty thought memo is sent.
78
-
79
- ### Busy-agent delivery modes
80
-
81
- When the agent is already responding:
82
-
83
- - `followUp` queues the thought memo after the current work finishes.
84
- - `steer` sends it as steering input for the current stream.
85
-
86
- Use `followUp` for orderly logs. Use `steer` for live brainstorming and course correction.
87
-
88
- ## AutoTalk message format
89
-
90
- Non-empty editor text is sent like this:
91
-
92
- ```text
93
- [AutoTalk]
94
- This is an automatically sent user thought memo.
95
- Expand the ideas, organize the key points, and ask one follow-up question.
96
- Unless explicitly requested, do not edit files, run commands, or send external messages.
97
-
98
- --- Thought memo ---
99
- {editor text}
100
- ```
101
-
102
- ## Settings persistence
103
-
104
- AutoTalk persists interval and delivery mode globally at:
105
-
106
- ```text
107
- ~/.pi/agent/extensions/autotalk/settings.json
108
- ```
109
-
110
- Example:
111
-
112
- ```json
113
- {
114
- "intervalSec": 10,
115
- "deliveryMode": "followUp"
116
- }
117
- ```
118
-
119
- The enabled/disabled state is **never persisted**. Every Pi session starts with AutoTalk off.
120
-
121
- ## Install
122
-
123
- ### From npm
124
-
125
- ```bash
126
- pi install npm:pi-autotalk
127
- ```
128
-
129
- ### From GitHub
130
-
131
- ```bash
132
- pi install git:github.com/eiei114/pi-autotalk
133
- ```
134
-
135
- ### Local development install
136
-
137
- Clone or keep the repo under:
138
-
139
- ```text
140
- C:/Users/Keisu/Projects/OSS/pi-autotalk
141
- ```
142
-
143
- Then add it to a project `.pi/settings.json`:
144
-
145
- ```json
146
- {
147
- "packages": [
148
- "..\\..\\..\\OSS\\pi-autotalk"
149
- ]
150
- }
151
- ```
152
-
153
- After editing settings, reload Pi:
154
-
155
- ```text
156
- /reload
157
- ```
158
-
159
- ## Quick start
160
-
161
- ```text
162
- /autotalk:on
163
- ```
164
-
165
- Type a thought into the editor and stop typing. After the configured interval, Pi will receive it as an AutoTalk thought memo.
166
-
167
- Useful commands:
168
-
169
- ```text
170
- /autotalk:settings
171
- /autotalk:mode
172
- /autotalk:off
173
- ```
174
-
175
- ## Package contents
176
-
177
- | Path | Purpose |
178
- |---|---|
179
- | `extensions/index.ts` | Pi extension entrypoint and command/timer wiring. |
180
- | `lib/autotalk.ts` | Settings validation, persistence, and message formatting helpers. |
181
- | `tests/` | Node test suite for package metadata, formatting, settings, and registration. |
182
- | `docs/` | Release and publishing docs. |
183
-
184
- ## Development
185
-
186
- ```bash
187
- npm install
188
- npm run ci
189
- ```
190
-
191
- `npm run ci` runs:
192
-
193
- 1. `tsc --noEmit`
194
- 2. `node --test tests/*.test.mjs`
195
- 3. `npm pack --dry-run`
196
-
197
- ## Security and privacy
198
-
199
- AutoTalk intentionally sends editor contents to the active Pi agent. Treat it like an auto-submit feature.
200
-
201
- Safety choices in the MVP:
202
-
203
- - starts disabled on every launch;
204
- - requires explicit `/autotalk:on`;
205
- - never persists enabled state;
206
- - pauses while the editor begins with `/`;
207
- - does not clear the editor if new text appeared during send;
208
- - frames messages as thought memos, not direct execution requests;
209
- - asks the agent not to edit files, run commands, or send external requests unless explicitly requested.
210
-
211
- Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
212
-
213
- For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
214
-
215
- ## Release
216
-
217
- This package uses npm Trusted Publishing (OIDC). No `NPM_TOKEN` is required.
218
-
219
- On merge to `main` with a `package.json` version bump, `.github/workflows/auto-release.yml` creates the `v*` tag and GitHub release, then dispatches `.github/workflows/publish.yml` to publish to npm.
220
-
221
- Maintainer flow:
222
-
223
- ```bash
224
- npm version patch # or minor/major — updates package.json, package-lock.json (if present), creates a git commit and tag by default
225
- git push origin main
226
- ```
227
-
228
- You can also bump `version` in `package.json` in a PR; after merge, auto-release handles tagging and publish.
229
-
230
- After merge, run the [post-release verification checklist](docs/release.md#post-release-verification-checklist) in `docs/release.md` to confirm the GitHub tag/release, Publish Package workflow, and npm `latest` all match the new version. A green auto-release run alone is not proof npm received the package.
231
-
232
- See [`docs/release.md`](docs/release.md) for setup, recovery, and verification details.
233
-
234
- ## Links
235
-
236
- - npm: https://www.npmjs.com/package/pi-autotalk
237
- - GitHub: https://github.com/eiei114/pi-autotalk
238
- - Issues: https://github.com/eiei114/pi-autotalk/issues
239
-
240
- ## License
241
-
242
- MIT
1
+ # Pi AutoTalk
2
+
3
+ [![CI](https://github.com/eiei114/pi-autotalk/actions/workflows/ci.yml/badge.svg)](https://github.com/eiei114/pi-autotalk/actions/workflows/ci.yml)
4
+ [![Auto Release](https://github.com/eiei114/pi-autotalk/actions/workflows/auto-release.yml/badge.svg)](https://github.com/eiei114/pi-autotalk/actions/workflows/auto-release.yml)
5
+ [![Publish](https://github.com/eiei114/pi-autotalk/actions/workflows/publish.yml/badge.svg)](https://github.com/eiei114/pi-autotalk/actions/workflows/publish.yml)
6
+ [![npm version](https://img.shields.io/npm/v/pi-autotalk.svg)](https://www.npmjs.com/package/pi-autotalk)
7
+ [![npm downloads](https://img.shields.io/npm/dm/pi-autotalk.svg)](https://www.npmjs.com/package/pi-autotalk)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
+ [![Pi package](https://img.shields.io/badge/pi-package-purple.svg)](https://pi.dev/packages)
10
+ [![Trusted Publishing](https://img.shields.io/badge/npm-Trusted%20Publishing-blue.svg)](docs/release.md)
11
+ <a href="https://buymeacoffee.com/ekawano114m"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" width="217" height="60"></a>
12
+
13
+ > Timed AutoTalk for Pi: periodically send your editor thoughts to the agent for brainstorming.
14
+
15
+ Pi AutoTalk turns Pi's interactive editor into a lightweight thinking buffer. Turn it on, type rough notes or mutterings into the editor, and Pi periodically sends them back to the agent as an AutoTalk thought memo.
16
+
17
+ Status: **MVP implemented and locally dogfooded**. AutoTalk is always off by default and only runs after `/autotalk:on`.
18
+
19
+ ## Why
20
+
21
+ Sometimes you do not want to craft a polished prompt. You want to think out loud, let the agent react, and keep moving. AutoTalk is for that mode:
22
+
23
+ - brainstorming while typing fragments
24
+ - talking through an idea before it becomes a task
25
+ - keeping momentum without repeatedly pressing submit
26
+ - asking Pi to reflect on your current train of thought
27
+
28
+ ## What it does
29
+
30
+ When enabled, AutoTalk:
31
+
32
+ 1. watches the interactive editor buffer;
33
+ 2. waits until you have stopped typing for a short moment;
34
+ 3. sends the full buffer on an interval;
35
+ 4. wraps it in an `[AutoTalk]` thought-memo prefix;
36
+ 5. clears the editor only if the text has not changed since it was read.
37
+
38
+ It is deliberately conservative. Slash commands are protected, enabled state is not persisted, and AutoTalk messages tell the agent not to edit files, run commands, or send external requests unless explicitly asked.
39
+
40
+ ## Commands
41
+
42
+ | Command | Purpose |
43
+ |---|---|
44
+ | `/autotalk:on` | Start timed sending. Does not immediately send existing editor text. |
45
+ | `/autotalk:off` | Stop timed sending and clear AutoTalk footer status. |
46
+ | `/autotalk:mode` | Select busy-agent delivery mode: `followUp` or `steer`. |
47
+ | `/autotalk:settings` | Configure interval seconds and delivery mode. |
48
+
49
+ ## Behavior details
50
+
51
+ ### Sending interval
52
+
53
+ - Default: `10` seconds.
54
+ - Allowed range: `5` to `120` seconds.
55
+ - Settings UI rejects non-integers and out-of-range values.
56
+
57
+ ### Typing guard
58
+
59
+ AutoTalk skips a tick if the editor changed within the last 2 seconds. This avoids sending half-typed fragments at the exact moment you are still writing.
60
+
61
+ ### Slash-command guard
62
+
63
+ If the editor starts with `/`, AutoTalk pauses for that tick and does not clear the editor. This prevents commands like `/autotalk:off`, `/reload`, or `/model` from being auto-sent as thought memos.
64
+
65
+ ### Safe clearing
66
+
67
+ After sending a non-empty buffer, AutoTalk clears the editor only if the editor still exactly matches the text that was sent. If you type more while a send is happening, the new text is preserved.
68
+
69
+ ### Empty prompt
70
+
71
+ If the editor is empty, AutoTalk sends a one-shot continuation prompt:
72
+
73
+ ```text
74
+ [AutoTalk]
75
+ The editor is empty. From the conversation so far, ask one question to think about next.
76
+ ```
77
+
78
+ That empty prompt is sent only once. It resets after a real non-empty thought memo is sent.
79
+
80
+ ### Busy-agent delivery modes
81
+
82
+ When the agent is already responding:
83
+
84
+ - `followUp` queues the thought memo after the current work finishes.
85
+ - `steer` sends it as steering input for the current stream.
86
+
87
+ Use `followUp` for orderly logs. Use `steer` for live brainstorming and course correction.
88
+
89
+ ## AutoTalk message format
90
+
91
+ Non-empty editor text is sent like this:
92
+
93
+ ```text
94
+ [AutoTalk]
95
+ This is an automatically sent user thought memo.
96
+ Expand the ideas, organize the key points, and ask one follow-up question.
97
+ Unless explicitly requested, do not edit files, run commands, or send external messages.
98
+
99
+ --- Thought memo ---
100
+ {editor text}
101
+ ```
102
+
103
+ ## Settings persistence
104
+
105
+ AutoTalk persists interval and delivery mode globally at:
106
+
107
+ ```text
108
+ ~/.pi/agent/extensions/autotalk/settings.json
109
+ ```
110
+
111
+ Example:
112
+
113
+ ```json
114
+ {
115
+ "intervalSec": 10,
116
+ "deliveryMode": "followUp"
117
+ }
118
+ ```
119
+
120
+ The enabled/disabled state is **never persisted**. Every Pi session starts with AutoTalk off.
121
+
122
+ ## Install
123
+
124
+ ### From npm
125
+
126
+ ```bash
127
+ pi install npm:pi-autotalk
128
+ ```
129
+
130
+ ### From GitHub
131
+
132
+ ```bash
133
+ pi install git:github.com/eiei114/pi-autotalk
134
+ ```
135
+
136
+ ### Local development install
137
+
138
+ Clone or keep the repo under:
139
+
140
+ ```text
141
+ C:/Users/Keisu/Projects/OSS/pi-autotalk
142
+ ```
143
+
144
+ Then add it to a project `.pi/settings.json`:
145
+
146
+ ```json
147
+ {
148
+ "packages": [
149
+ "..\\..\\..\\OSS\\pi-autotalk"
150
+ ]
151
+ }
152
+ ```
153
+
154
+ After editing settings, reload Pi:
155
+
156
+ ```text
157
+ /reload
158
+ ```
159
+
160
+ ## Quick start
161
+
162
+ ```text
163
+ /autotalk:on
164
+ ```
165
+
166
+ Type a thought into the editor and stop typing. After the configured interval, Pi will receive it as an AutoTalk thought memo.
167
+
168
+ Useful commands:
169
+
170
+ ```text
171
+ /autotalk:settings
172
+ /autotalk:mode
173
+ /autotalk:off
174
+ ```
175
+
176
+ ## Package contents
177
+
178
+ | Path | Purpose |
179
+ |---|---|
180
+ | `extensions/index.ts` | Pi extension entrypoint and command/timer wiring. |
181
+ | `lib/autotalk.ts` | Settings validation, persistence, and message formatting helpers. |
182
+ | `tests/` | Node test suite for package metadata, formatting, settings, and registration. |
183
+ | `docs/` | Release and publishing docs. |
184
+
185
+ ## Development
186
+
187
+ ```bash
188
+ npm install
189
+ npm run ci
190
+ ```
191
+
192
+ `npm run ci` runs:
193
+
194
+ 1. `tsc --noEmit`
195
+ 2. `node --test tests/*.test.mjs`
196
+ 3. `npm pack --dry-run`
197
+
198
+ On pull requests, CI also runs `npm run version:check` to validate optional version bumps (semver must increase; `CHANGELOG.md` is required when the version changes). Before opening a PR that bumps `package.json#version`, run:
199
+
200
+ ```bash
201
+ BASE_REF=origin/main npm run version:check
202
+ ```
203
+
204
+ ## Security and privacy
205
+
206
+ AutoTalk intentionally sends editor contents to the active Pi agent. Treat it like an auto-submit feature.
207
+
208
+ Safety choices in the MVP:
209
+
210
+ - starts disabled on every launch;
211
+ - requires explicit `/autotalk:on`;
212
+ - never persists enabled state;
213
+ - pauses while the editor begins with `/`;
214
+ - does not clear the editor if new text appeared during send;
215
+ - frames messages as thought memos, not direct execution requests;
216
+ - asks the agent not to edit files, run commands, or send external requests unless explicitly requested.
217
+
218
+ Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
219
+
220
+ For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
221
+
222
+ ## Release
223
+
224
+ This package uses npm Trusted Publishing (OIDC). No `NPM_TOKEN` is required.
225
+
226
+ On merge to `main` with a `package.json` version bump, `.github/workflows/auto-release.yml` creates the `v*` tag and GitHub release, then dispatches `.github/workflows/publish.yml` to publish to npm.
227
+
228
+ Maintainer flow:
229
+
230
+ ```bash
231
+ npm version patch # or minor/major — updates package.json, package-lock.json (if present), creates a git commit and tag by default
232
+ git push origin main
233
+ ```
234
+
235
+ You can also bump `version` in `package.json` in a PR; after merge, auto-release handles tagging and publish.
236
+
237
+ After merge, run the [post-release verification checklist](docs/release.md#post-release-verification-checklist) in `docs/release.md` to confirm the GitHub tag/release, Publish Package workflow, and npm `latest` all match the new version. A green auto-release run alone is not proof npm received the package.
238
+
239
+ See [`docs/release.md`](docs/release.md) for setup, recovery, and verification details.
240
+
241
+ ## Links
242
+
243
+ - npm: https://www.npmjs.com/package/pi-autotalk
244
+ - GitHub: https://github.com/eiei114/pi-autotalk
245
+ - Issues: https://github.com/eiei114/pi-autotalk/issues
246
+
247
+ ## License
248
+
249
+ MIT
package/SECURITY.md ADDED
@@ -0,0 +1,20 @@
1
+ # Security Policy
2
+
3
+ ## Supported versions
4
+
5
+ Only the latest published version receives security fixes.
6
+
7
+ ## Reporting a vulnerability
8
+
9
+ Open a private security advisory on GitHub, or contact the maintainer by the preferred channel listed in the repository profile.
10
+
11
+ Please include:
12
+
13
+ - Affected version
14
+ - Impact
15
+ - Reproduction steps
16
+ - Suggested fix, if known
17
+
18
+ ## Pi package security note
19
+
20
+ Pi packages can execute code with local user permissions. Review installed packages and avoid running untrusted extensions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-autotalk",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "A Pi extension for timed AutoTalk brainstorming from the editor input.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -27,7 +27,8 @@
27
27
  "docs/",
28
28
  "README.md",
29
29
  "LICENSE",
30
- "CHANGELOG.md"
30
+ "CHANGELOG.md",
31
+ "SECURITY.md"
31
32
  ],
32
33
  "scripts": {
33
34
  "typecheck": "tsc --noEmit",
@@ -48,8 +49,8 @@
48
49
  "@earendil-works/pi-coding-agent": "*"
49
50
  },
50
51
  "devDependencies": {
51
- "@earendil-works/pi-coding-agent": "latest",
52
- "@types/node": "^25.9.1",
52
+ "@earendil-works/pi-coding-agent": "^0.80.3",
53
+ "@types/node": "^26.0.1",
53
54
  "typescript": "^6.0.3"
54
55
  }
55
56
  }