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.
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
@@ -1,4 +1,4 @@
1
- ![Ultimate PI banner](.github/banner.png)
1
+ ![Ultimate PI banner](https://raw.githubusercontent.com/aryaniyaps/ultimate-pi/main/.github/banner-v2.png)
2
2
 
3
3
  > (Beta) The **ultimate AI coding harness** on top of [**pi.dev**](https://pi.dev).
4
4
 
package/package.json CHANGED
@@ -1,11 +1,19 @@
1
1
  {
2
2
  "name": "ultimate-pi",
3
- "version": "0.1.0",
4
- "description": "Custom pi package starter with caveman and impeccable.style skills",
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.
@@ -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.
Binary file