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 +17 -0
- package/LICENSE +1 -1
- package/README.md +249 -242
- package/SECURITY.md +20 -0
- package/package.json +5 -4
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
package/README.md
CHANGED
|
@@ -1,242 +1,249 @@
|
|
|
1
|
-
# Pi AutoTalk
|
|
2
|
-
|
|
3
|
-
[](https://github.com/eiei114/pi-autotalk/actions/workflows/ci.yml)
|
|
4
|
-
[](https://github.com/eiei114/pi-autotalk/actions/workflows/auto-release.yml)
|
|
5
|
-
[](https://github.com/eiei114/pi-autotalk/actions/workflows/publish.yml)
|
|
6
|
-
[](https://www.npmjs.com/package/pi-autotalk)
|
|
7
|
-
[](https://www.npmjs.com/package/pi-autotalk)
|
|
8
|
-
[](LICENSE)
|
|
9
|
-
[](https://pi.dev/packages)
|
|
10
|
-
[](docs/release.md)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
| `/autotalk:
|
|
45
|
-
| `/autotalk:
|
|
46
|
-
| `/autotalk:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
/autotalk:
|
|
172
|
-
/autotalk:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
| `
|
|
181
|
-
| `
|
|
182
|
-
| `
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
npm
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
1
|
+
# Pi AutoTalk
|
|
2
|
+
|
|
3
|
+
[](https://github.com/eiei114/pi-autotalk/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/eiei114/pi-autotalk/actions/workflows/auto-release.yml)
|
|
5
|
+
[](https://github.com/eiei114/pi-autotalk/actions/workflows/publish.yml)
|
|
6
|
+
[](https://www.npmjs.com/package/pi-autotalk)
|
|
7
|
+
[](https://www.npmjs.com/package/pi-autotalk)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://pi.dev/packages)
|
|
10
|
+
[](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
|
+
"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": "
|
|
52
|
-
"@types/node": "^
|
|
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
|
}
|