pi-autotalk 0.1.7 → 0.1.8

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,70 +1,74 @@
1
- # Changelog
2
-
3
- ## Unreleased
4
-
5
- ## [0.1.7] - 2026-08-22
6
-
7
- ### Changed
8
-
9
- - Merge the 2026-08-22 managed OSS dependency and maintenance PR batch.
10
-
11
- ### Changed
12
-
13
- - Add Buy Me a Coffee sponsor button to README and native GitHub funding link via `.github/FUNDING.yml`.
14
-
15
- All notable changes to this project will be documented in this file.
16
-
17
- This project follows semantic versioning.
18
-
19
- ## [0.1.6] - 2026-08-04
20
-
21
- ### Changed
22
-
23
- - Bump package version for the Discord release webhook verification.
24
-
25
- ## [0.1.5] - 2026-07-21
26
-
27
- ### Changed
28
-
29
- - Bump package version to `0.1.5` for the patch release.
30
-
31
- ## [0.1.4] - 2026-07-04
32
-
33
- ### Fixed
34
-
35
- - Publish pipeline: removed `registry-url` from `setup-node` in `.github/workflows/publish.yml`
36
- so `npm publish --provenance` uses the OIDC token for both provenance signing and HTTP
37
- authentication. Previously `NODE_AUTH_TOKEN` (set to GITHUB_TOKEN by setup-node) took
38
- precedence, causing `E404 PUT` even when npm Trusted Publisher was correctly configured.
39
-
40
- ## [0.1.3] - 2026-06-18
41
-
42
- ### Fixed
43
-
44
- - 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`.
45
-
46
- ### Changed
47
-
48
- - 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.
49
-
50
- ## [0.1.2] - 2026-06-06
51
-
52
- ### Fixed
53
-
54
- - 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.
55
-
56
- ## [0.1.1] - 2026-06-03
57
-
58
- ### Changed
59
-
60
- - Removed stale template docs (`examples.md`, `github-template.md`, `repository-settings.md`, `template-checklist.md`, `typescript.md`) that referenced non-existent files and commands.
61
- - Updated README Package contents to reflect remaining docs.
62
-
63
- ## [0.1.0] - 2025-06-01
64
-
65
- ### Added
66
-
67
- - Initial pi-autotalk MVP: timed AutoTalk brainstorming from the editor input.
68
- - Commands: `/autotalk:on`, `/autotalk:off`, `/autotalk:mode`, `/autotalk:settings`.
69
- - Settings persistence and validation.
70
- - CI and npm Trusted Publishing workflow.
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.7] - 2026-08-22
10
+
11
+ ### Changed
12
+
13
+ - Merge the 2026-08-22 managed OSS dependency and maintenance PR batch.
14
+
15
+ ### Changed
16
+
17
+ - Add Buy Me a Coffee sponsor button to README and native GitHub funding link via `.github/FUNDING.yml`.
18
+
19
+ All notable changes to this project will be documented in this file.
20
+
21
+ This project follows semantic versioning.
22
+
23
+ ## [0.1.6] - 2026-08-04
24
+
25
+ ### Changed
26
+
27
+ - Bump package version for the Discord release webhook verification.
28
+
29
+ ## [0.1.5] - 2026-07-21
30
+
31
+ ### Changed
32
+
33
+ - Bump package version to `0.1.5` for the patch release.
34
+
35
+ ## [0.1.4] - 2026-07-04
36
+
37
+ ### Fixed
38
+
39
+ - Publish pipeline: removed `registry-url` from `setup-node` in `.github/workflows/publish.yml`
40
+ so `npm publish --provenance` uses the OIDC token for both provenance signing and HTTP
41
+ authentication. Previously `NODE_AUTH_TOKEN` (set to GITHUB_TOKEN by setup-node) took
42
+ precedence, causing `E404 PUT` even when npm Trusted Publisher was correctly configured.
43
+
44
+ ## [0.1.3] - 2026-06-18
45
+
46
+ ### Fixed
47
+
48
+ - 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`.
49
+
50
+ ### Changed
51
+
52
+ - 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.
53
+
54
+ ## [0.1.2] - 2026-06-06
55
+
56
+ ### Fixed
57
+
58
+ - 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.
59
+
60
+ ## [0.1.1] - 2026-06-03
61
+
62
+ ### Changed
63
+
64
+ - Removed stale template docs (`examples.md`, `github-template.md`, `repository-settings.md`, `template-checklist.md`, `typescript.md`) that referenced non-existent files and commands.
65
+ - Updated README Package contents to reflect remaining docs.
66
+
67
+ ## [0.1.0] - 2025-06-01
68
+
69
+ ### Added
70
+
71
+ - Initial pi-autotalk MVP: timed AutoTalk brainstorming from the editor input.
72
+ - Commands: `/autotalk:on`, `/autotalk:off`, `/autotalk:mode`, `/autotalk:settings`.
73
+ - Settings persistence and validation.
74
+ - 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 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`:
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
- "..\\..\\..\\OSS\\pi-autotalk"
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.
@@ -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 choice = await ctx.ui.select("AutoTalk delivery mode:", ["followUp", "steer"]);
154
- if (choice !== "followUp" && choice !== "steer") return;
162
+ const deliveryMode = await promptDeliveryMode(ctx);
163
+ if (!deliveryMode) return;
155
164
 
156
- settings = { ...settings, deliveryMode: choice as 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 mode = await ctx.ui.select("AutoTalk delivery mode:", ["followUp", "steer"]);
177
- if (mode !== "followUp" && mode !== "steer") return;
185
+ const deliveryMode = await promptDeliveryMode(ctx);
186
+ if (!deliveryMode) return;
178
187
 
179
- settings = { intervalSec, deliveryMode: mode as 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 `[AutoTalk]
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 `[AutoTalk]
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.7",
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.84.1",
53
- "@types/node": "^26.0.1",
54
- "typescript": "^7.0.2"
55
- }
56
- }
1
+ {
2
+ "name": "pi-autotalk",
3
+ "version": "0.1.8",
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.84.1",
53
+ "@types/node": "^26.0.1",
54
+ "typescript": "^7.0.2"
55
+ }
56
+ }