pi-model-fallback 0.1.0 → 0.3.2

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,38 +1,61 @@
1
- # Changelog
1
+ # Changelog
2
+
3
+ ## Unreleased
2
4
 
3
- All notable changes to this project will be documented in this file.
5
+ - Add Buy Me a Coffee sponsor button to README and native GitHub funding link via `.github/FUNDING.yml`.
4
6
 
5
- This project follows semantic versioning.
6
-
7
- ## [0.1.3] - 2026-06-19
8
-
9
- ### Changed
10
-
11
- - CONTRIBUTING now reminds maintainers to run `npm pack --dry-run` after changing which `docs/` files ship in the package.
7
+ ## [0.3.2] - 2026-07-04
12
8
 
13
9
  ### Fixed
14
10
 
15
- - README License section no longer ends with a literal `\n` placeholder.
16
-
17
- ## [0.1.2] - 2026-06-04
18
-
19
- ### Changed
20
-
21
- - README and `docs/template-checklist.md` now follow the Pi OSS minimal-docs policy: `docs/` is optional, with explicit post-generation cleanup for template bootstrap docs.
22
- - Template bootstrap docs (`github-template.md`, `repository-settings.md`, `typescript.md`) are labeled for delete-or-merge after setup.
23
-
24
- ## [0.1.1] - 2026-06-01
25
-
26
- ### Changed
27
-
28
- - Publish workflow now supports npm publishing on merged package version bumps in addition to tags, releases, and manual dispatch.
29
- - Publish workflow now installs a current npm CLI so npm Trusted Publishing OIDC is supported.
30
- - CI and publish workflow commands no longer include literal trailing `\\n` text.
31
-
32
- ## [0.1.0] - YYYY-MM-DD
33
-
34
- ### Added
35
-
36
- - Initial Pi package template.
37
- - Example extension, Agent Skill, prompt, and theme.
38
- - CI and npm Trusted Publishing workflow.
11
+ - Publish only from release refs, print Node/npm versions, and publish with `--provenance --access public` so npm Trusted Publishing uses the same known-good path as `pi-spotify-widget`.
12
+ - Release instructions now use `npm version patch --no-git-tag-version` so local tags do not race the auto-release workflow.
13
+
14
+ ## 0.3.0
15
+
16
+ - Use `agent_start` for persistent preselect; `session_start` was not a Pi extension event.
17
+ - Persist fallback state from assistant error messages on `turn_end`, covering provider SDK errors that do not emit `after_provider_response`.
18
+
19
+ ## 0.2.0
20
+
21
+ - Add persistent failover state. A matching provider failure now writes `model-fallback/state.json`, and future sessions preselect the fallback model before the first provider call until the cooldown expires.
22
+ - Parse retry/reset headers when available; otherwise default 429 cooldown to 72h and 5xx cooldown to 10m.
23
+ - `/model-fallback:reset` now clears persistent state.
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.3] - 2026-06-19
30
+
31
+ ### Changed
32
+
33
+ - CONTRIBUTING now reminds maintainers to run `npm pack --dry-run` after changing which `docs/` files ship in the package.
34
+
35
+ ### Fixed
36
+
37
+ - README License section no longer ends with a literal `\n` placeholder.
38
+
39
+ ## [0.1.2] - 2026-06-04
40
+
41
+ ### Changed
42
+
43
+ - README and `docs/template-checklist.md` now follow the Pi OSS minimal-docs policy: `docs/` is optional, with explicit post-generation cleanup for template bootstrap docs.
44
+ - Template bootstrap docs (`github-template.md`, `repository-settings.md`, `typescript.md`) are labeled for delete-or-merge after setup.
45
+
46
+ ## [0.1.1] - 2026-06-01
47
+
48
+ ### Changed
49
+
50
+ - Publish workflow now supports npm publishing on merged package version bumps in addition to tags, releases, and manual dispatch.
51
+ - Publish workflow now installs a current npm CLI so npm Trusted Publishing OIDC is supported.
52
+ - CI and publish workflow commands no longer include literal trailing `\\n` text.
53
+
54
+ ## [0.1.0] - YYYY-MM-DD
55
+
56
+ ### Added
57
+
58
+ - Initial Pi package template.
59
+ - Example extension, Agent Skill, prompt, and theme.
60
+ - CI and npm Trusted Publishing workflow.
61
+
package/README.md CHANGED
@@ -1,163 +1,164 @@
1
- # PACKAGE_DISPLAY_NAME
2
-
3
- [![CI](https://github.com/OWNER/REPO/actions/workflows/ci.yml/badge.svg)](https://github.com/OWNER/REPO/actions/workflows/ci.yml)
4
- [![Publish](https://github.com/OWNER/REPO/actions/workflows/publish.yml/badge.svg)](https://github.com/OWNER/REPO/actions/workflows/publish.yml)
5
- [![npm version](https://img.shields.io/npm/v/PACKAGE_NAME.svg)](https://www.npmjs.com/package/PACKAGE_NAME)
6
- [![npm downloads](https://img.shields.io/npm/dm/PACKAGE_NAME.svg)](https://www.npmjs.com/package/PACKAGE_NAME)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
- [![Pi package](https://img.shields.io/badge/pi-package-purple.svg)](https://pi.dev/packages)
9
- [![Trusted Publishing](https://img.shields.io/badge/npm-Trusted%20Publishing-blue.svg)](docs/release.md)
10
-
11
- > One-line pitch for this TypeScript-first Pi package.
12
-
13
- ## What this is
14
-
15
- Briefly explain what this TypeScript-first package adds to Pi and who should use it.
16
-
17
- ## Features
18
-
19
- - Feature 1
20
- - Feature 2
21
- - Feature 3
22
-
23
- ## Install
24
-
25
- Install the published npm package with Pi:
26
-
27
- ```bash
28
- pi install npm:PACKAGE_NAME
29
- ```
30
-
31
- Replace `PACKAGE_NAME` with the exact `name` from `package.json`.
32
- For a scoped npm package, keep the `npm:` prefix:
33
-
34
- ```bash
35
- pi install npm:@your-scope/your-pi-package
36
- ```
37
-
38
- Pin a specific version when you want reproducible installs:
39
-
40
- ```bash
41
- pi install npm:PACKAGE_NAME@0.1.0
42
- ```
43
-
44
- Install into the current project instead of your user Pi settings:
45
-
46
- ```bash
47
- pi install npm:PACKAGE_NAME -l
48
- ```
49
-
50
- Or install from GitHub:
51
-
52
- ```bash
53
- pi install git:github.com/OWNER/REPO
54
- ```
55
-
56
- Try it without permanently installing:
57
-
58
- ```bash
59
- pi -e npm:PACKAGE_NAME
60
- ```
61
-
62
- ## Quick start
63
-
64
- Try this package locally:
65
-
66
- ```bash
67
- pi -e .
68
- ```
69
-
70
- Then run:
71
-
72
- ```txt
73
- /your-command
74
- ```
75
-
76
- ## Package contents
77
-
78
- | Path | Purpose |
79
- |---|---|
80
- | `extensions/` | Pi TypeScript extension entrypoints (`*.ts` and `index.ts`) |
81
- | `lib/` | Shared TypeScript helpers |
82
- | `skills/` | Agent Skills |
83
- | `prompts/` | Prompt templates |
84
- | `themes/` | Pi themes |
85
- | `docs/` | Optional supporting docs (usage, examples, release, ADRs) |
86
-
87
- ## Development
88
-
89
- ```bash
90
- npm install
91
- npm run ci
92
- ```
93
-
94
- ## Development flow
95
-
96
- Use this default flow when building a new Pi extension OSS project from this template:
97
-
98
- 1. Create the Vault project notes under `4_Project/<ProjectName>/`.
99
- 2. Add `CONTEXT.md`, `README.md`, `ROADMAP.md`, `Docs/`, `Issues/`, and `Progress/`.
100
- 3. Write the PRD in `4_Project/<ProjectName>/Docs/`.
101
- 4. Split approved tracer-bullet issues into `4_Project/<ProjectName>/Issues/`.
102
- 5. Implement in the OSS repo.
103
- 6. Run `npm run ci`, `npm test`, and `npm pack --dry-run`.
104
- 7. Release with Trusted Publishing.
105
- 8. Save release notes and follow-up decisions back to the Vault project.
106
-
107
- Short version:
108
-
109
- ```txt
110
- Vault notes -> PRD -> Issues -> implement -> ci/check -> release -> save learnings
111
- ```
112
-
113
- ## Release
114
-
115
- This package is set up for npm Trusted Publishing, so no `NPM_TOKEN` is required.
116
-
117
- ```bash
118
- npm version patch
119
- git push
120
- ```
121
-
122
- See [`docs/release.md`](docs/release.md) for setup details.
123
-
124
- ## Docs
125
-
126
- `docs/` is optional supporting documentation, not a fixed six-file set. README stays the GitHub/npm entrypoint; add `docs/*.md` only when they help users or maintainers.
127
-
128
- After creating a repository from this template:
129
-
130
- 1. Follow [`docs/template-checklist.md`](docs/template-checklist.md) for setup.
131
- 2. Run the **post-generation docs cleanup** in that checklist: delete or merge template bootstrap docs that no longer add project value.
132
-
133
- Useful docs to keep when they add value:
134
-
135
- - [`docs/examples.md`](docs/examples.md) — examples for extensions, skills, prompts, and themes
136
- - [`docs/release.md`](docs/release.md) — Trusted Publishing details (README Release summarizes the flow)
137
- - `docs/usage.md` — create when usage does not fit in README
138
-
139
- Optional maintainer guidance (not a public-user navigation target in mature repos):
140
-
141
- - [`docs/template-checklist.md`](docs/template-checklist.md)
142
-
143
- Template bootstrap docs to delete or merge after setup unless they still teach something project-specific:
144
-
145
- - `docs/github-template.md`
146
- - `docs/repository-settings.md`
147
- - `docs/typescript.md`
148
-
149
- ## Security
150
-
151
- Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
152
-
153
- For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
154
-
155
- ## Links
156
-
157
- - npm: https://www.npmjs.com/package/PACKAGE_NAME
158
- - GitHub: https://github.com/OWNER/REPO
159
- - Issues: https://github.com/OWNER/REPO/issues
160
-
161
- ## License
162
-
163
- MIT
1
+ # PACKAGE_DISPLAY_NAME
2
+
3
+ [![CI](https://github.com/OWNER/REPO/actions/workflows/ci.yml/badge.svg)](https://github.com/OWNER/REPO/actions/workflows/ci.yml)
4
+ [![Publish](https://github.com/OWNER/REPO/actions/workflows/publish.yml/badge.svg)](https://github.com/OWNER/REPO/actions/workflows/publish.yml)
5
+ [![npm version](https://img.shields.io/npm/v/PACKAGE_NAME.svg)](https://www.npmjs.com/package/PACKAGE_NAME)
6
+ [![npm downloads](https://img.shields.io/npm/dm/PACKAGE_NAME.svg)](https://www.npmjs.com/package/PACKAGE_NAME)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
+ [![Pi package](https://img.shields.io/badge/pi-package-purple.svg)](https://pi.dev/packages)
9
+ [![Trusted Publishing](https://img.shields.io/badge/npm-Trusted%20Publishing-blue.svg)](docs/release.md)
10
+ <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>
11
+
12
+ > One-line pitch for this TypeScript-first Pi package.
13
+
14
+ ## What this is
15
+
16
+ Briefly explain what this TypeScript-first package adds to Pi and who should use it.
17
+
18
+ ## Features
19
+
20
+ - Feature 1
21
+ - Feature 2
22
+ - Feature 3
23
+
24
+ ## Install
25
+
26
+ Install the published npm package with Pi:
27
+
28
+ ```bash
29
+ pi install npm:PACKAGE_NAME
30
+ ```
31
+
32
+ Replace `PACKAGE_NAME` with the exact `name` from `package.json`.
33
+ For a scoped npm package, keep the `npm:` prefix:
34
+
35
+ ```bash
36
+ pi install npm:@your-scope/your-pi-package
37
+ ```
38
+
39
+ Pin a specific version when you want reproducible installs:
40
+
41
+ ```bash
42
+ pi install npm:PACKAGE_NAME@0.1.0
43
+ ```
44
+
45
+ Install into the current project instead of your user Pi settings:
46
+
47
+ ```bash
48
+ pi install npm:PACKAGE_NAME -l
49
+ ```
50
+
51
+ Or install from GitHub:
52
+
53
+ ```bash
54
+ pi install git:github.com/OWNER/REPO
55
+ ```
56
+
57
+ Try it without permanently installing:
58
+
59
+ ```bash
60
+ pi -e npm:PACKAGE_NAME
61
+ ```
62
+
63
+ ## Quick start
64
+
65
+ Try this package locally:
66
+
67
+ ```bash
68
+ pi -e .
69
+ ```
70
+
71
+ Then run:
72
+
73
+ ```txt
74
+ /your-command
75
+ ```
76
+
77
+ ## Package contents
78
+
79
+ | Path | Purpose |
80
+ |---|---|
81
+ | `extensions/` | Pi TypeScript extension entrypoints (`*.ts` and `index.ts`) |
82
+ | `lib/` | Shared TypeScript helpers |
83
+ | `skills/` | Agent Skills |
84
+ | `prompts/` | Prompt templates |
85
+ | `themes/` | Pi themes |
86
+ | `docs/` | Optional supporting docs (usage, examples, release, ADRs) |
87
+
88
+ ## Development
89
+
90
+ ```bash
91
+ npm install
92
+ npm run ci
93
+ ```
94
+
95
+ ## Development flow
96
+
97
+ Use this default flow when building a new Pi extension OSS project from this template:
98
+
99
+ 1. Create the Vault project notes under `4_Project/<ProjectName>/`.
100
+ 2. Add `CONTEXT.md`, `README.md`, `ROADMAP.md`, `Docs/`, `Issues/`, and `Progress/`.
101
+ 3. Write the PRD in `4_Project/<ProjectName>/Docs/`.
102
+ 4. Split approved tracer-bullet issues into `4_Project/<ProjectName>/Issues/`.
103
+ 5. Implement in the OSS repo.
104
+ 6. Run `npm run ci`, `npm test`, and `npm pack --dry-run`.
105
+ 7. Release with Trusted Publishing.
106
+ 8. Save release notes and follow-up decisions back to the Vault project.
107
+
108
+ Short version:
109
+
110
+ ```txt
111
+ Vault notes -> PRD -> Issues -> implement -> ci/check -> release -> save learnings
112
+ ```
113
+
114
+ ## Release
115
+
116
+ This package is set up for npm Trusted Publishing, so no `NPM_TOKEN` is required.
117
+
118
+ ```bash
119
+ npm version patch
120
+ git push
121
+ ```
122
+
123
+ See [`docs/release.md`](docs/release.md) for setup details.
124
+
125
+ ## Docs
126
+
127
+ `docs/` is optional supporting documentation, not a fixed six-file set. README stays the GitHub/npm entrypoint; add `docs/*.md` only when they help users or maintainers.
128
+
129
+ After creating a repository from this template:
130
+
131
+ 1. Follow [`docs/template-checklist.md`](docs/template-checklist.md) for setup.
132
+ 2. Run the **post-generation docs cleanup** in that checklist: delete or merge template bootstrap docs that no longer add project value.
133
+
134
+ Useful docs to keep when they add value:
135
+
136
+ - [`docs/examples.md`](docs/examples.md) — examples for extensions, skills, prompts, and themes
137
+ - [`docs/release.md`](docs/release.md) — Trusted Publishing details (README Release summarizes the flow)
138
+ - `docs/usage.md` — create when usage does not fit in README
139
+
140
+ Optional maintainer guidance (not a public-user navigation target in mature repos):
141
+
142
+ - [`docs/template-checklist.md`](docs/template-checklist.md)
143
+
144
+ Template bootstrap docs to delete or merge after setup unless they still teach something project-specific:
145
+
146
+ - `docs/github-template.md`
147
+ - `docs/repository-settings.md`
148
+ - `docs/typescript.md`
149
+
150
+ ## Security
151
+
152
+ Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
153
+
154
+ For vulnerability reporting, see [`SECURITY.md`](SECURITY.md).
155
+
156
+ ## Links
157
+
158
+ - npm: https://www.npmjs.com/package/PACKAGE_NAME
159
+ - GitHub: https://github.com/OWNER/REPO
160
+ - Issues: https://github.com/OWNER/REPO/issues
161
+
162
+ ## License
163
+
164
+ MIT