pi-spotify-widget 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 +16 -0
- package/README.md +5 -4
- package/docs/examples.md +22 -23
- package/package.json +6 -5
- package/docs/template-checklist.md +0 -85
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## [0.1.9] - 2026-08-04
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Bump package version for the Discord release webhook verification.
|
|
10
|
+
|
|
11
|
+
## [0.1.8] - 2026-07-20
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Align README release command with `npm version patch --no-git-tag-version` so tagging stays with `auto-release.yml`.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Add `version:check` PR guard and align CI bootstrap with the Pi extension template.
|
|
20
|
+
|
|
5
21
|
## [0.1.7] - 2026-07-04
|
|
6
22
|
|
|
7
23
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
# pi-spotify-widget
|
|
2
|
+
|
|
3
|
+
[](https://discord.gg/4945dXZVW5)
|
|
2
4
|
|
|
3
5
|
[](https://github.com/eiei114/pi-spotify-widget/actions/workflows/ci.yml)
|
|
4
6
|
[](https://github.com/eiei114/pi-spotify-widget/actions/workflows/publish.yml)
|
|
@@ -130,7 +132,7 @@ Then run:
|
|
|
130
132
|
| `extensions/` | Pi TypeScript extension entrypoints (`index.ts`) |
|
|
131
133
|
| `lib/` | Spotify auth, API client, widget render |
|
|
132
134
|
| `skills/` | `spotify-playback` Agent Skill |
|
|
133
|
-
| `docs/` | Release
|
|
135
|
+
| `docs/` | Release and examples |
|
|
134
136
|
|
|
135
137
|
## Development
|
|
136
138
|
|
|
@@ -149,7 +151,7 @@ Before tagging, confirm `npm run ci` and `npm pack --dry-run` pass locally.
|
|
|
149
151
|
This package is set up for npm Trusted Publishing, so no `NPM_TOKEN` is required.
|
|
150
152
|
|
|
151
153
|
```bash
|
|
152
|
-
npm version patch
|
|
154
|
+
npm version patch --no-git-tag-version
|
|
153
155
|
git push
|
|
154
156
|
```
|
|
155
157
|
|
|
@@ -161,7 +163,6 @@ See [`docs/release.md`](docs/release.md) for setup details.
|
|
|
161
163
|
|
|
162
164
|
- [`docs/examples.md`](docs/examples.md)
|
|
163
165
|
- [`docs/release.md`](docs/release.md)
|
|
164
|
-
- [`docs/template-checklist.md`](docs/template-checklist.md) — maintainer setup checklist
|
|
165
166
|
|
|
166
167
|
## Security
|
|
167
168
|
|
|
@@ -181,4 +182,4 @@ Review extensions before installing third-party packages. For vulnerability repo
|
|
|
181
182
|
|
|
182
183
|
## License
|
|
183
184
|
|
|
184
|
-
MIT
|
|
185
|
+
MIT
|
package/docs/examples.md
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
# Examples
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Pi Spotify Widget shows Now Playing in the prompt editor widget and exposes playback commands.
|
|
4
4
|
|
|
5
5
|
## Extension
|
|
6
6
|
|
|
7
|
-
`extensions/
|
|
7
|
+
`extensions/index.ts` registers:
|
|
8
8
|
|
|
9
|
-
- `/
|
|
10
|
-
-
|
|
9
|
+
- `/spotify:login`, `/spotify:status`, `/spotify:logout`
|
|
10
|
+
- `/spotify:refresh`, `/spotify:prev`, `/spotify:next`, `/spotify:pause`, `/spotify:play`
|
|
11
|
+
- `/spotify:help`, `/spotify:share`, `/spotify:play-uri`
|
|
12
|
+
- a prompt-editor widget with track, artist, and playback state
|
|
11
13
|
|
|
12
|
-
Try it
|
|
14
|
+
Try it locally:
|
|
13
15
|
|
|
14
16
|
```bash
|
|
15
17
|
pi -e .
|
|
@@ -18,32 +20,29 @@ pi -e .
|
|
|
18
20
|
Then run:
|
|
19
21
|
|
|
20
22
|
```txt
|
|
21
|
-
/
|
|
23
|
+
/spotify:login
|
|
24
|
+
/spotify:status
|
|
25
|
+
/spotify:refresh
|
|
26
|
+
/spotify:next
|
|
27
|
+
/spotify:share
|
|
22
28
|
```
|
|
23
29
|
|
|
24
30
|
## Agent Skill
|
|
25
31
|
|
|
26
|
-
`skills/
|
|
27
|
-
|
|
28
|
-
Replace it with your real workflow instructions.
|
|
32
|
+
`skills/spotify-playback/SKILL.md` maps natural-language playback and share intents to the commands above.
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
Replace or extend it when you add new playback workflows.
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
## OAuth setup
|
|
33
37
|
|
|
34
|
-
|
|
38
|
+
Each user supplies a Spotify Developer app Client ID (PKCE; no Client Secret required).
|
|
35
39
|
|
|
36
|
-
|
|
40
|
+
Redirect URI: `http://127.0.0.1:8888/callback`
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
`extensions/index.ts` registers:
|
|
42
|
+
Optional environment variable before starting Pi:
|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
The tool demonstrates:
|
|
44
|
+
```bash
|
|
45
|
+
export PI_SPOTIFY_CLIENT_ID="your_client_id_here"
|
|
46
|
+
```
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
- a string enum schema via `StringEnum`
|
|
49
|
-
- shared logic imported from `lib/greeting.ts`
|
|
48
|
+
Tokens are stored locally under `~/.pi/agent/` and are not exposed in `/spotify:status` output.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-spotify-widget",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Lightweight Spotify Now Playing widget for Pi Coding Agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"test": "node --test tests/*.test.mjs",
|
|
34
34
|
"ci": "npm run typecheck && npm test && npm run pack:check",
|
|
35
|
-
"pack:check": "npm pack --dry-run"
|
|
35
|
+
"pack:check": "npm pack --dry-run",
|
|
36
|
+
"version:check": "node scripts/check-version-bump.mjs"
|
|
36
37
|
},
|
|
37
38
|
"pi": {
|
|
38
39
|
"extensions": [
|
|
@@ -52,11 +53,11 @@
|
|
|
52
53
|
"typebox": "*"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
|
-
"@earendil-works/pi-ai": "
|
|
56
|
-
"@earendil-works/pi-coding-agent": "
|
|
56
|
+
"@earendil-works/pi-ai": "^0.82.1",
|
|
57
|
+
"@earendil-works/pi-coding-agent": "^0.82.1",
|
|
57
58
|
"@earendil-works/pi-tui": "latest",
|
|
58
59
|
"typebox": "latest",
|
|
59
|
-
"@types/node": "^
|
|
60
|
+
"@types/node": "^26.0.0",
|
|
60
61
|
"typescript": "^6.0.3"
|
|
61
62
|
}
|
|
62
63
|
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Template Setup Checklist
|
|
2
|
-
|
|
3
|
-
このテンプレートから新しい Pi 拡張OSSを作った後に埋めること。
|
|
4
|
-
|
|
5
|
-
## Repository
|
|
6
|
-
|
|
7
|
-
- [ ] GitHub repository name を決める
|
|
8
|
-
- [ ] GitHub About 欄を書く
|
|
9
|
-
- [ ] GitHub topics を設定する
|
|
10
|
-
- [ ] `pi`
|
|
11
|
-
- [ ] `pi-package`
|
|
12
|
-
- [ ] `agent-skill`
|
|
13
|
-
- [ ] `typescript`
|
|
14
|
-
- [ ] GitHub Settingsで `Template repository` をONにする
|
|
15
|
-
- [ ] Repository URL を `package.json` に反映する
|
|
16
|
-
- [ ] README の `OWNER/REPO` を実リポジトリに置き換える
|
|
17
|
-
|
|
18
|
-
## Package metadata
|
|
19
|
-
|
|
20
|
-
- [ ] `package.json` の `name` を変更する
|
|
21
|
-
- [ ] `description` を書く
|
|
22
|
-
- [ ] `author` を入れる
|
|
23
|
-
- [ ] `repository.url` を埋める
|
|
24
|
-
- [ ] `bugs.url` を埋める
|
|
25
|
-
- [ ] `homepage` を埋める
|
|
26
|
-
- [ ] `keywords` を見直す
|
|
27
|
-
- [ ] `LICENSE` の年・名前を更新する
|
|
28
|
-
|
|
29
|
-
## README placeholders
|
|
30
|
-
|
|
31
|
-
- [ ] `PACKAGE_DISPLAY_NAME` を置き換える
|
|
32
|
-
- [ ] `PACKAGE_NAME` を置き換える
|
|
33
|
-
- [ ] `OWNER/REPO` を置き換える
|
|
34
|
-
- [ ] one-line pitch を書く
|
|
35
|
-
- [ ] feature list を書く
|
|
36
|
-
- [ ] quick start command を実コマンドにする
|
|
37
|
-
- [ ] npm URL を確認する
|
|
38
|
-
- [ ] GitHub URL を確認する
|
|
39
|
-
|
|
40
|
-
## Pi package manifest
|
|
41
|
-
|
|
42
|
-
- [ ] `pi.extensions` に公開する拡張だけを残す
|
|
43
|
-
- [ ] `pi.skills` に公開する skill だけを残す
|
|
44
|
-
- [ ] 不要なら `prompts/` を消す
|
|
45
|
-
- [ ] 不要なら `themes/` を消す
|
|
46
|
-
- [ ] サンプル名を実名に変える
|
|
47
|
-
|
|
48
|
-
## TypeScript
|
|
49
|
-
|
|
50
|
-
- [ ] `extensions/index.ts` を実装に合わせて更新する
|
|
51
|
-
- [ ] `extensions/hello.ts` が不要なら削除する
|
|
52
|
-
- [ ] 共通ロジックを `lib/` に切り出す
|
|
53
|
-
- [ ] `strict: true` を維持する
|
|
54
|
-
- [ ] custom tool parameters は TypeBox schema で定義する
|
|
55
|
-
- [ ] string choices は `StringEnum` helper を使う
|
|
56
|
-
- [ ] runtime dependency は `dependencies`、Pi提供packageは `peerDependencies` に置く
|
|
57
|
-
- [ ] `package.json.files` に公開対象だけを入れる
|
|
58
|
-
|
|
59
|
-
## GitHub Template repo
|
|
60
|
-
|
|
61
|
-
- [ ] `gh repo create --template OWNER/pi-extension-template` で作成できることを確認する
|
|
62
|
-
- [ ] public/privateどちらの作成例もdocsに載せる
|
|
63
|
-
|
|
64
|
-
## CI / Release
|
|
65
|
-
|
|
66
|
-
- [ ] `npm run ci` が通る
|
|
67
|
-
- [ ] `npm pack --dry-run` が通る
|
|
68
|
-
- [ ] npm Trusted Publishing を設定する
|
|
69
|
-
- [ ] `NPM_TOKEN` を使っていないことを確認する
|
|
70
|
-
- [ ] tag publish が動くことを初回リリースで確認する
|
|
71
|
-
|
|
72
|
-
## npm page
|
|
73
|
-
|
|
74
|
-
- [ ] npm package URL を README に追加する
|
|
75
|
-
- [ ] npm description が適切に表示されるか確認する
|
|
76
|
-
- [ ] provenance が付いているか確認する
|
|
77
|
-
- [ ] 不要なファイルが package に含まれていないか確認する
|
|
78
|
-
|
|
79
|
-
## Before first release
|
|
80
|
-
|
|
81
|
-
- [ ] サンプルコードを実機 Pi でロードする
|
|
82
|
-
- [ ] `pi install git:github.com/OWNER/REPO` を試す
|
|
83
|
-
- [ ] `pi -e .` を試す
|
|
84
|
-
- [ ] README のコマンドがコピペで動くか確認する
|
|
85
|
-
- [ ] CHANGELOG に `0.1.0` を書く
|