pi-autotalk 0.1.7 → 0.1.9
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 +80 -70
- package/README.md +11 -8
- package/extensions/index.ts +15 -6
- package/lib/autotalk.ts +14 -5
- package/package.json +56 -56
package/CHANGELOG.md
CHANGED
|
@@ -1,70 +1,80 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
### Changed
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
### Changed
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
## [0.1.
|
|
51
|
-
|
|
52
|
-
### Fixed
|
|
53
|
-
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.8 - 2026-09-27
|
|
4
|
+
|
|
5
|
+
- chore: periodic patch bump after 7+ days without npm publish
|
|
6
|
+
|
|
7
|
+
## Unreleased
|
|
8
|
+
|
|
9
|
+
## [0.1.9] - 2026-09-30
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Update `@earendil-works/pi-*` dependencies to `0.99.1`.
|
|
14
|
+
|
|
15
|
+
## [0.1.7] - 2026-08-22
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Merge the 2026-08-22 managed OSS dependency and maintenance PR batch.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Add Buy Me a Coffee sponsor button to README and native GitHub funding link via `.github/FUNDING.yml`.
|
|
24
|
+
|
|
25
|
+
All notable changes to this project will be documented in this file.
|
|
26
|
+
|
|
27
|
+
This project follows semantic versioning.
|
|
28
|
+
|
|
29
|
+
## [0.1.6] - 2026-08-04
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- Bump package version for the Discord release webhook verification.
|
|
34
|
+
|
|
35
|
+
## [0.1.5] - 2026-07-21
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- Bump package version to `0.1.5` for the patch release.
|
|
40
|
+
|
|
41
|
+
## [0.1.4] - 2026-07-04
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- Publish pipeline: removed `registry-url` from `setup-node` in `.github/workflows/publish.yml`
|
|
46
|
+
so `npm publish --provenance` uses the OIDC token for both provenance signing and HTTP
|
|
47
|
+
authentication. Previously `NODE_AUTH_TOKEN` (set to GITHUB_TOKEN by setup-node) took
|
|
48
|
+
precedence, causing `E404 PUT` even when npm Trusted Publisher was correctly configured.
|
|
49
|
+
|
|
50
|
+
## [0.1.3] - 2026-06-18
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
|
|
54
|
+
- Release pipeline recovery: `publish.yml` now runs `npm publish --provenance` so npm Trusted Publishing (GitHub Actions OIDC) authenticates correctly. Without provenance, auto-release could create tags and GitHub Releases while npm publish failed with `E404`.
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
|
|
58
|
+
- Maintainer release docs (`docs/release.md`, README) now point maintainers at the post-release verification checklist for GitHub release state and npm `latest` after every version bump.
|
|
59
|
+
|
|
60
|
+
## [0.1.2] - 2026-06-06
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- Auto-release workflow was added in 0.1.1 but version never changed in that commit, preventing npm publish. This release bumps the version so auto-release triggers and publishes to npm.
|
|
65
|
+
|
|
66
|
+
## [0.1.1] - 2026-06-03
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
|
|
70
|
+
- Removed stale template docs (`examples.md`, `github-template.md`, `repository-settings.md`, `template-checklist.md`, `typescript.md`) that referenced non-existent files and commands.
|
|
71
|
+
- Updated README Package contents to reflect remaining docs.
|
|
72
|
+
|
|
73
|
+
## [0.1.0] - 2025-06-01
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- Initial pi-autotalk MVP: timed AutoTalk brainstorming from the editor input.
|
|
78
|
+
- Commands: `/autotalk:on`, `/autotalk:off`, `/autotalk:mode`, `/autotalk:settings`.
|
|
79
|
+
- Settings persistence and validation.
|
|
80
|
+
- CI and npm Trusted Publishing workflow.
|
package/README.md
CHANGED
|
@@ -135,22 +135,19 @@ pi install git:github.com/eiei114/pi-autotalk
|
|
|
135
135
|
|
|
136
136
|
### Local development install
|
|
137
137
|
|
|
138
|
-
Clone or
|
|
139
|
-
|
|
140
|
-
```text
|
|
141
|
-
C:/Users/Keisu/Projects/OSS/pi-autotalk
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
Then add it to a project `.pi/settings.json`:
|
|
138
|
+
Clone this repository next to your Pi project (or anywhere on disk), then add a
|
|
139
|
+
relative path to that checkout in your project `.pi/settings.json`:
|
|
145
140
|
|
|
146
141
|
```json
|
|
147
142
|
{
|
|
148
143
|
"packages": [
|
|
149
|
-
"
|
|
144
|
+
"../pi-autotalk"
|
|
150
145
|
]
|
|
151
146
|
}
|
|
152
147
|
```
|
|
153
148
|
|
|
149
|
+
Adjust the relative path to match where you cloned the repo.
|
|
150
|
+
|
|
154
151
|
After editing settings, reload Pi:
|
|
155
152
|
|
|
156
153
|
```text
|
|
@@ -201,6 +198,12 @@ On pull requests, CI also runs `npm run version:check` to validate optional vers
|
|
|
201
198
|
BASE_REF=origin/main npm run version:check
|
|
202
199
|
```
|
|
203
200
|
|
|
201
|
+
On PowerShell:
|
|
202
|
+
|
|
203
|
+
```powershell
|
|
204
|
+
$env:BASE_REF = "origin/main"; npm run version:check
|
|
205
|
+
```
|
|
206
|
+
|
|
204
207
|
## Security and privacy
|
|
205
208
|
|
|
206
209
|
AutoTalk intentionally sends editor contents to the active Pi agent. Treat it like an auto-submit feature.
|
package/extensions/index.ts
CHANGED
|
@@ -5,9 +5,11 @@ import type {
|
|
|
5
5
|
} from "@earendil-works/pi-coding-agent";
|
|
6
6
|
import {
|
|
7
7
|
DEFAULT_SETTINGS,
|
|
8
|
+
DELIVERY_MODE_OPTIONS,
|
|
8
9
|
formatEmptyPrompt,
|
|
9
10
|
formatThoughtMemo,
|
|
10
11
|
IDLE_BEFORE_SEND_MS,
|
|
12
|
+
isDeliveryMode,
|
|
11
13
|
loadSettings,
|
|
12
14
|
normalizeInterval,
|
|
13
15
|
saveSettings,
|
|
@@ -132,6 +134,13 @@ export default function (pi: ExtensionAPI) {
|
|
|
132
134
|
return false;
|
|
133
135
|
}
|
|
134
136
|
|
|
137
|
+
async function promptDeliveryMode(
|
|
138
|
+
ctx: ExtensionCommandContext,
|
|
139
|
+
): Promise<DeliveryMode | undefined> {
|
|
140
|
+
const choice = await ctx.ui.select("AutoTalk delivery mode:", [...DELIVERY_MODE_OPTIONS]);
|
|
141
|
+
return isDeliveryMode(choice) ? choice : undefined;
|
|
142
|
+
}
|
|
143
|
+
|
|
135
144
|
function enable(ctx: ExtensionCommandContext): void {
|
|
136
145
|
if (!requireUi(ctx)) return;
|
|
137
146
|
|
|
@@ -150,10 +159,10 @@ export default function (pi: ExtensionAPI) {
|
|
|
150
159
|
async function setMode(ctx: ExtensionCommandContext): Promise<void> {
|
|
151
160
|
if (!requireUi(ctx)) return;
|
|
152
161
|
|
|
153
|
-
const
|
|
154
|
-
if (
|
|
162
|
+
const deliveryMode = await promptDeliveryMode(ctx);
|
|
163
|
+
if (!deliveryMode) return;
|
|
155
164
|
|
|
156
|
-
settings = { ...settings, deliveryMode
|
|
165
|
+
settings = { ...settings, deliveryMode };
|
|
157
166
|
await saveSettings(settings);
|
|
158
167
|
updateStatus(ctx);
|
|
159
168
|
}
|
|
@@ -173,10 +182,10 @@ export default function (pi: ExtensionAPI) {
|
|
|
173
182
|
return;
|
|
174
183
|
}
|
|
175
184
|
|
|
176
|
-
const
|
|
177
|
-
if (
|
|
185
|
+
const deliveryMode = await promptDeliveryMode(ctx);
|
|
186
|
+
if (!deliveryMode) return;
|
|
178
187
|
|
|
179
|
-
settings = { intervalSec, deliveryMode
|
|
188
|
+
settings = { intervalSec, deliveryMode };
|
|
180
189
|
await saveSettings(settings);
|
|
181
190
|
|
|
182
191
|
if (enabled) startTimers(ctx);
|
package/lib/autotalk.ts
CHANGED
|
@@ -4,6 +4,9 @@ import { dirname, join } from "node:path";
|
|
|
4
4
|
|
|
5
5
|
export type DeliveryMode = "followUp" | "steer";
|
|
6
6
|
|
|
7
|
+
export const DELIVERY_MODE_OPTIONS: readonly DeliveryMode[] = ["followUp", "steer"];
|
|
8
|
+
export const AUTOTALK_PREFIX = "[AutoTalk]";
|
|
9
|
+
|
|
7
10
|
export interface AutoTalkSettings {
|
|
8
11
|
intervalSec: number;
|
|
9
12
|
deliveryMode: DeliveryMode;
|
|
@@ -74,19 +77,25 @@ export async function saveSettings(
|
|
|
74
77
|
`, "utf8");
|
|
75
78
|
}
|
|
76
79
|
|
|
80
|
+
/** Prefixes AutoTalk prompt bodies with the shared `[AutoTalk]` tag line. */
|
|
81
|
+
export function withAutoTalkPrefix(body: string): string {
|
|
82
|
+
return `${AUTOTALK_PREFIX}
|
|
83
|
+
${body}`;
|
|
84
|
+
}
|
|
85
|
+
|
|
77
86
|
/** Wraps editor text in the AutoTalk thought-memo prompt sent to the agent. */
|
|
78
87
|
export function formatThoughtMemo(text: string): string {
|
|
79
|
-
return `
|
|
80
|
-
This is an automatically sent user thought memo.
|
|
88
|
+
return withAutoTalkPrefix(`This is an automatically sent user thought memo.
|
|
81
89
|
Expand the ideas, organize the key points, and ask one follow-up question.
|
|
82
90
|
Unless explicitly requested, do not edit files, run commands, or send external messages.
|
|
83
91
|
|
|
84
92
|
--- Thought memo ---
|
|
85
|
-
${text}
|
|
93
|
+
${text}`);
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
/** Returns the one-shot empty-editor continuation prompt. */
|
|
89
97
|
export function formatEmptyPrompt(): string {
|
|
90
|
-
return
|
|
91
|
-
The editor is empty. From the conversation so far, ask one question to think about next
|
|
98
|
+
return withAutoTalkPrefix(
|
|
99
|
+
"The editor is empty. From the conversation so far, ask one question to think about next.",
|
|
100
|
+
);
|
|
92
101
|
}
|
package/package.json
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "pi-autotalk",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "A Pi extension for timed AutoTalk brainstorming from the editor input.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"author": "eiei114",
|
|
8
|
-
"keywords": [
|
|
9
|
-
"pi-package",
|
|
10
|
-
"pi",
|
|
11
|
-
"pi-extension",
|
|
12
|
-
"autotalk",
|
|
13
|
-
"brainstorming",
|
|
14
|
-
"typescript"
|
|
15
|
-
],
|
|
16
|
-
"repository": {
|
|
17
|
-
"type": "git",
|
|
18
|
-
"url": "git+https://github.com/eiei114/pi-autotalk.git"
|
|
19
|
-
},
|
|
20
|
-
"bugs": {
|
|
21
|
-
"url": "https://github.com/eiei114/pi-autotalk/issues"
|
|
22
|
-
},
|
|
23
|
-
"homepage": "https://github.com/eiei114/pi-autotalk#readme",
|
|
24
|
-
"files": [
|
|
25
|
-
"extensions/",
|
|
26
|
-
"lib/",
|
|
27
|
-
"docs/",
|
|
28
|
-
"README.md",
|
|
29
|
-
"LICENSE",
|
|
30
|
-
"CHANGELOG.md",
|
|
31
|
-
"SECURITY.md"
|
|
32
|
-
],
|
|
33
|
-
"scripts": {
|
|
34
|
-
"typecheck": "tsc --noEmit",
|
|
35
|
-
"test": "node --test tests/*.test.mjs",
|
|
36
|
-
"ci": "npm run typecheck && npm test && npm run pack:check",
|
|
37
|
-
"pack:check": "npm pack --dry-run",
|
|
38
|
-
"version:check": "node scripts/check-version-bump.mjs"
|
|
39
|
-
},
|
|
40
|
-
"pi": {
|
|
41
|
-
"extensions": [
|
|
42
|
-
"./extensions"
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
"publishConfig": {
|
|
46
|
-
"access": "public"
|
|
47
|
-
},
|
|
48
|
-
"peerDependencies": {
|
|
49
|
-
"@earendil-works/pi-coding-agent": "*"
|
|
50
|
-
},
|
|
51
|
-
"devDependencies": {
|
|
52
|
-
"@earendil-works/pi-coding-agent": "^0.
|
|
53
|
-
"@types/node": "^26.0.1",
|
|
54
|
-
"typescript": "^7.0.2"
|
|
55
|
-
}
|
|
56
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "pi-autotalk",
|
|
3
|
+
"version": "0.1.9",
|
|
4
|
+
"description": "A Pi extension for timed AutoTalk brainstorming from the editor input.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "eiei114",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"pi-package",
|
|
10
|
+
"pi",
|
|
11
|
+
"pi-extension",
|
|
12
|
+
"autotalk",
|
|
13
|
+
"brainstorming",
|
|
14
|
+
"typescript"
|
|
15
|
+
],
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/eiei114/pi-autotalk.git"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/eiei114/pi-autotalk/issues"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/eiei114/pi-autotalk#readme",
|
|
24
|
+
"files": [
|
|
25
|
+
"extensions/",
|
|
26
|
+
"lib/",
|
|
27
|
+
"docs/",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"CHANGELOG.md",
|
|
31
|
+
"SECURITY.md"
|
|
32
|
+
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"typecheck": "tsc --noEmit",
|
|
35
|
+
"test": "node --test tests/*.test.mjs",
|
|
36
|
+
"ci": "npm run typecheck && npm test && npm run pack:check",
|
|
37
|
+
"pack:check": "npm pack --dry-run",
|
|
38
|
+
"version:check": "node scripts/check-version-bump.mjs"
|
|
39
|
+
},
|
|
40
|
+
"pi": {
|
|
41
|
+
"extensions": [
|
|
42
|
+
"./extensions"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"@earendil-works/pi-coding-agent": "*"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@earendil-works/pi-coding-agent": "^0.99.1",
|
|
53
|
+
"@types/node": "^26.0.1",
|
|
54
|
+
"typescript": "^7.0.2"
|
|
55
|
+
}
|
|
56
|
+
}
|