ultimate-pi 0.1.0 → 0.1.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/.github/banner-v2.png +0 -0
- package/.github/workflows/publish-npm.yml +32 -0
- package/README.md +1 -1
- package/package.json +11 -3
- package/wiki/README.md +9 -0
- package/wiki/decisions/0005-automate-npm-publish-with-github-actions.md +27 -0
- package/wiki/decisions/0006-switch-to-npm-trusted-publishing.md +26 -0
- package/wiki/decisions/0007-use-absolute-banner-url-for-npm-readme-rendering.md +26 -0
- package/wiki/decisions/0008-rename-banner-asset-for-cache-busting.md +26 -0
- package/wiki/decisions/0009-force-oidc-path-by-clearing-node-auth-token-in-publish-step.md +25 -0
- package/wiki/decisions/0010-simplify-setup-node-for-npm-trusted-publishing.md +26 -0
- package/wiki/decisions/0011-add-noop-workflow-change-to-force-fresh-publish-run.md +25 -0
- package/wiki/decisions/0012-align-workflow-runtime-with-npm-trusted-publishing-requirements.md +26 -0
- package/wiki/decisions/0013-add-package-repository-url-for-provenance-validation.md +25 -0
- package/.github/banner.png +0 -0
|
Binary file
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Publish to npm
|
|
2
|
+
run-name: Publish npm from ${{ github.ref_name }}
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- 'v*'
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
publish:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
id-token: write
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Setup Node.js
|
|
21
|
+
uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: '22.14.0'
|
|
24
|
+
|
|
25
|
+
- name: Ensure npm trusted publishing minimum version
|
|
26
|
+
run: |
|
|
27
|
+
npm i -g npm@^11.5.1
|
|
28
|
+
node -v
|
|
29
|
+
npm -v
|
|
30
|
+
|
|
31
|
+
- name: Publish package
|
|
32
|
+
run: npm publish --provenance --access public
|
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultimate-pi",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Custom pi package starter
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Custom pi package starter",
|
|
5
5
|
"keywords": [
|
|
6
|
-
"pi-package"
|
|
6
|
+
"pi-package",
|
|
7
|
+
"pi-mono",
|
|
8
|
+
"pi",
|
|
9
|
+
"ai-harness",
|
|
10
|
+
"coding-agent"
|
|
7
11
|
],
|
|
8
12
|
"license": "MIT",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/aryaniyaps/ultimate-pi"
|
|
16
|
+
},
|
|
9
17
|
"pi": {
|
|
10
18
|
"extensions": [
|
|
11
19
|
"./extensions"
|
package/wiki/README.md
CHANGED
|
@@ -8,3 +8,12 @@ Track architecture and implementation decisions for this repo.
|
|
|
8
8
|
- [0002 - Add project banner to README](decisions/0002-add-project-banner-to-readme.md)
|
|
9
9
|
- [0003 - Remove redundant README title heading when banner already contains title](decisions/0003-remove-redundant-readme-title-heading.md)
|
|
10
10
|
- [0004 - Publish package to npm as ultimate-pi](decisions/0004-publish-package-to-npm-as-ultimate-pi.md)
|
|
11
|
+
- [0005 - Automate npm publish with GitHub Actions](decisions/0005-automate-npm-publish-with-github-actions.md)
|
|
12
|
+
- [0006 - Switch npm automation to Trusted Publishing (OIDC)](decisions/0006-switch-to-npm-trusted-publishing.md)
|
|
13
|
+
- [0007 - Use absolute banner URL for npm README rendering](decisions/0007-use-absolute-banner-url-for-npm-readme-rendering.md)
|
|
14
|
+
- [0008 - Rename banner asset for cache-busting on npm README](decisions/0008-rename-banner-asset-for-cache-busting.md)
|
|
15
|
+
- [0009 - Force OIDC path by clearing NODE_AUTH_TOKEN in publish step](decisions/0009-force-oidc-path-by-clearing-node-auth-token-in-publish-step.md)
|
|
16
|
+
- [0010 - Simplify setup-node for npm Trusted Publishing](decisions/0010-simplify-setup-node-for-npm-trusted-publishing.md)
|
|
17
|
+
- [0011 - Add noop workflow change to force fresh publish run](decisions/0011-add-noop-workflow-change-to-force-fresh-publish-run.md)
|
|
18
|
+
- [0012 - Align workflow runtime with npm Trusted Publishing requirements](decisions/0012-align-workflow-runtime-with-npm-trusted-publishing-requirements.md)
|
|
19
|
+
- [0013 - Add package repository URL for provenance validation](decisions/0013-add-package-repository-url-for-provenance-validation.md)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 0005 - Automate npm publish with GitHub Actions
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
User requested automated package publishing through GitHub Actions.
|
|
8
|
+
Repository currently has no workflow files.
|
|
9
|
+
Package already prepared for npm publish as ultimate-pi.
|
|
10
|
+
|
|
11
|
+
## Alternatives
|
|
12
|
+
1. Keep manual local npm publish only.
|
|
13
|
+
2. Publish on every push to main.
|
|
14
|
+
3. Publish on version tags with optional manual trigger.
|
|
15
|
+
|
|
16
|
+
## Chosen option
|
|
17
|
+
Create a GitHub Actions workflow that publishes to npm on tags matching v* and supports manual dispatch.
|
|
18
|
+
|
|
19
|
+
## Rationale
|
|
20
|
+
- Safe release gate with explicit version tags.
|
|
21
|
+
- Standard npm automation pattern.
|
|
22
|
+
- Keeps accidental publishes low risk.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
- Maintainer must create npm token and store as NPM_TOKEN secret.
|
|
26
|
+
- Release process must include tag creation.
|
|
27
|
+
- Version in package.json must be bumped before tagging.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 0006 - Switch npm automation to Trusted Publishing (OIDC)
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
User flagged npm warning: token-based automation has security risks.
|
|
8
|
+
Current workflow uses NPM_TOKEN secret for publish.
|
|
9
|
+
|
|
10
|
+
## Alternatives
|
|
11
|
+
1. Keep automation token secret (NPM_TOKEN).
|
|
12
|
+
2. Publish manually from local machine only.
|
|
13
|
+
3. Use npm Trusted Publishing with GitHub OIDC.
|
|
14
|
+
|
|
15
|
+
## Chosen option
|
|
16
|
+
Use npm Trusted Publishing. Remove token auth from workflow. Grant id-token permission and publish with provenance.
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
- Eliminates long-lived npm secret in GitHub.
|
|
20
|
+
- Aligns with npm security guidance for CI/CD.
|
|
21
|
+
- Produces provenance attestations for supply-chain trust.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
- Must configure Trusted Publisher in npm package settings.
|
|
25
|
+
- Publish only works from linked repo/workflow context.
|
|
26
|
+
- Workflow must run on supported GitHub-hosted runner.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 0007 - Use absolute banner URL for npm README rendering
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
README banner currently uses repository-relative path .github/banner.png.
|
|
8
|
+
GitHub renders relative image paths in repository context.
|
|
9
|
+
npm README rendering does not reliably resolve repository-relative image paths.
|
|
10
|
+
|
|
11
|
+
## Alternatives
|
|
12
|
+
1. Keep relative image path.
|
|
13
|
+
2. Remove banner image from README.
|
|
14
|
+
3. Use absolute raw GitHub URL to banner asset.
|
|
15
|
+
|
|
16
|
+
## Chosen option
|
|
17
|
+
Replace README banner image path with absolute raw.githubusercontent.com URL.
|
|
18
|
+
|
|
19
|
+
## Rationale
|
|
20
|
+
- Works in npm package page rendering.
|
|
21
|
+
- Still works in GitHub README rendering.
|
|
22
|
+
- Minimal one-line README diff.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
- URL tied to repository path/branch (main).
|
|
26
|
+
- Banner breaks if file path or default branch changes.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 0008 - Rename banner asset for cache-busting on npm README
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
Banner image update is not reflected on npm package page.
|
|
8
|
+
README already uses absolute raw.githubusercontent URL.
|
|
9
|
+
Likely cause is CDN/browser cache on unchanged asset path.
|
|
10
|
+
|
|
11
|
+
## Alternatives
|
|
12
|
+
1. Keep same filename and wait for cache expiry.
|
|
13
|
+
2. Add query parameter to image URL.
|
|
14
|
+
3. Rename banner file and update README URL.
|
|
15
|
+
|
|
16
|
+
## Chosen option
|
|
17
|
+
Rename banner file path from .github/banner.png to .github/banner-v2.png and update README reference.
|
|
18
|
+
|
|
19
|
+
## Rationale
|
|
20
|
+
- New path forces cache miss immediately.
|
|
21
|
+
- Minimal, safe change.
|
|
22
|
+
- Works in GitHub and npm renderers.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
- Any external links to old filename break.
|
|
26
|
+
- Future banner refreshes should use versioned filenames.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 0009 - Force OIDC path by clearing NODE_AUTH_TOKEN in publish step
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
GitHub Actions publish job failed with npm E404 on PUT for ultimate-pi@0.1.2.
|
|
8
|
+
Job log shows NODE_AUTH_TOKEN present during publish step, which can force token auth path instead of Trusted Publishing OIDC.
|
|
9
|
+
|
|
10
|
+
## Alternatives
|
|
11
|
+
1. Keep workflow unchanged and only reconfigure npm settings.
|
|
12
|
+
2. Revert fully to long-lived NPM_TOKEN secret.
|
|
13
|
+
3. Keep Trusted Publishing and explicitly clear NODE_AUTH_TOKEN in publish step.
|
|
14
|
+
|
|
15
|
+
## Chosen option
|
|
16
|
+
Use Trusted Publishing and set NODE_AUTH_TOKEN to empty string for publish step.
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
- Prevents accidental fallback to stale/unauthorized token auth.
|
|
20
|
+
- Preserves secure OIDC-based publish flow.
|
|
21
|
+
- Minimal surgical workflow diff.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
- Requires npm Trusted Publisher to be correctly configured.
|
|
25
|
+
- Any desired token-based publish would need explicit workflow change.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 0010 - Simplify setup-node for npm Trusted Publishing
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
Publish run still fails with ENEEDAUTH after Trusted Publisher setup.
|
|
8
|
+
Current workflow sets npm registry-url and explicitly sets NODE_AUTH_TOKEN empty.
|
|
9
|
+
This may keep npm on token-based auth path and bypass OIDC exchange.
|
|
10
|
+
|
|
11
|
+
## Alternatives
|
|
12
|
+
1. Keep current workflow and retry only.
|
|
13
|
+
2. Re-introduce npm token secret.
|
|
14
|
+
3. Remove registry auth shaping and let npm Trusted Publishing OIDC path run naturally.
|
|
15
|
+
|
|
16
|
+
## Chosen option
|
|
17
|
+
Use setup-node with node-version only. Remove registry-url and NODE_AUTH_TOKEN override.
|
|
18
|
+
|
|
19
|
+
## Rationale
|
|
20
|
+
- Avoids writing auth-specific npmrc configuration for token path.
|
|
21
|
+
- Aligns with minimal OIDC trusted publishing examples.
|
|
22
|
+
- Smallest workflow diff.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
- Requires npm Trusted Publisher config to be correct.
|
|
26
|
+
- If Trusted Publishing unavailable, publish will fail until fallback token flow is re-added.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 0011 - Add noop workflow change to force fresh publish run
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
User requested a fresh commit and publish attempt because rerun signal looked stale.
|
|
8
|
+
Current publish workflow logic already targeted for Trusted Publishing.
|
|
9
|
+
|
|
10
|
+
## Alternatives
|
|
11
|
+
1. Keep rerunning same workflow execution.
|
|
12
|
+
2. Make a functional workflow change.
|
|
13
|
+
3. Make a minimal non-functional workflow change and trigger new run from new commit.
|
|
14
|
+
|
|
15
|
+
## Chosen option
|
|
16
|
+
Add a non-functional workflow metadata field (run-name) and push a new commit.
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
- Produces clean new run context tied to fresh commit SHA.
|
|
20
|
+
- Avoids unnecessary behavior changes.
|
|
21
|
+
- Smallest viable diff.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
- No runtime behavior change expected.
|
|
25
|
+
- Still depends on npm auth configuration correctness.
|
package/wiki/decisions/0012-align-workflow-runtime-with-npm-trusted-publishing-requirements.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# 0012 - Align workflow runtime with npm Trusted Publishing requirements
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
Publish workflow still fails authentication.
|
|
8
|
+
Trusted publisher mapping is already verified by user.
|
|
9
|
+
Remaining common causes include runtime mismatch: npm 11.5.1+ and Node 22.14+.
|
|
10
|
+
|
|
11
|
+
## Alternatives
|
|
12
|
+
1. Keep current Node 20 workflow.
|
|
13
|
+
2. Switch to token-based publish only.
|
|
14
|
+
3. Upgrade workflow runtime to Node 22.14+, ensure npm 11.5.1+, keep OIDC permissions.
|
|
15
|
+
|
|
16
|
+
## Chosen option
|
|
17
|
+
Upgrade workflow to Node 22.14.0 and add npm upgrade/verification step before publish.
|
|
18
|
+
|
|
19
|
+
## Rationale
|
|
20
|
+
- Directly addresses documented Trusted Publishing runtime requirements.
|
|
21
|
+
- Keeps secure OIDC model intact.
|
|
22
|
+
- Minimal focused diff in workflow only.
|
|
23
|
+
|
|
24
|
+
## Consequences
|
|
25
|
+
- Slightly longer workflow run due npm update step.
|
|
26
|
+
- Future runtime bumps may be needed when npm guidance changes.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 0013 - Add package repository URL for provenance validation
|
|
2
|
+
|
|
3
|
+
- Date: 2026-04-25
|
|
4
|
+
- Status: Accepted
|
|
5
|
+
|
|
6
|
+
## Context
|
|
7
|
+
Trusted publishing auth now passes, but publish fails with npm E422 provenance validation.
|
|
8
|
+
Error states package.json repository.url is empty and must match https://github.com/aryaniyaps/ultimate-pi.
|
|
9
|
+
|
|
10
|
+
## Alternatives
|
|
11
|
+
1. Disable provenance flag in publish command.
|
|
12
|
+
2. Keep failing publish and document manual workaround.
|
|
13
|
+
3. Add exact repository URL metadata in package.json to satisfy provenance validation.
|
|
14
|
+
|
|
15
|
+
## Chosen option
|
|
16
|
+
Add package.json repository metadata with URL https://github.com/aryaniyaps/ultimate-pi.
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
- Fixes current hard failure from npm provenance verifier.
|
|
20
|
+
- Keeps secure --provenance publish mode.
|
|
21
|
+
- Minimal metadata-only package diff.
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
- Repository URL must stay accurate.
|
|
25
|
+
- If repo moves, metadata must be updated before next publish.
|
package/.github/banner.png
DELETED
|
Binary file
|