feat(npm): newt-agent npm installer — @gilamonster shim (newt + newt-mcp-server) [draft]#1222
Draft
hartsock wants to merge 2 commits into
Draft
feat(npm): newt-agent npm installer — @gilamonster shim (newt + newt-mcp-server) [draft]#1222hartsock wants to merge 2 commits into
hartsock wants to merge 2 commits into
Conversation
…gilamonster Port of the scrybe reference shim (newt-agent#1221): deliver the newt and newt-mcp-server Rust binaries to npm users the uv/esbuild way, with a name-derived resolver so ONE generic resolver serves every @gilamonster/<bin>. npm/: - newt/, newt-mcp-server/ @gilamonster/<bin> shims. bin/run.cjs + lib/binary.cjs are generic — each derives its binary + platform packages from its own name. - newt-agent/ unscoped umbrella -> newt - scripts/ build-platform-package.mjs (generic) + sync-versions.mjs - test/resolve.test.mjs node:test: manifest + resolver + happy-path exec (5/5) - platforms.json 3 targets matching build-binaries (darwin-arm64, linux-x64, win32-x64) - .gitignore re-include *.cjs/*.mjs/package.json (repo root ignores them) The release.yml build-npm + publish-npm-meta jobs (OIDC, tag-only) are held as a separate patch — a workflow-scoped push is needed for .github/workflows/. See PR. DRAFT. Co-Authored-By: Claude Opus 4.8 (gnuc agent) <noreply@anthropic.com>
hartsock
added a commit
that referenced
this pull request
Jul 17, 2026
* gh skill: draft PRs are a hard stop — never merge, never un-draft WHAT: Add an explicit rule to the gh bundled skill's Pull Requests section — a draft PR is a 'do NOT merge yet' signal; never merge it and never mark it ready (gh pr ready) unless a human names that PR by number. A blanket 'merge on green' / 'merge my PRs' instruction must skip drafts and say so, never promote them. Includes the isDraft check commands. WHY: A 'merge on green' sweep nearly promoted a deliberately-drafted PR (#1222, held for a release gate). Draft is the mechanism authors use to keep exactly that from happening; the skill must encode that drafts are untouchable so the accident can't recur. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * ROADMAP: npm installer = Step 11.4, first npm release is 0.8.0 (PR #1222 held in draft) WHAT: Record the npm installer (@gilamonster shim, PR #1222) as roadmap Step 11.4 with an explicit release decision: the first npm publish ships with 0.8.0, not before. Note that PR #1222 is kept in draft AS the hold mechanism and links it so the intent survives even if branch feat/npm-shim is closed/deleted by accident. WHY: The 'hold npm until 0.8.0' intent was not written down anywhere — it lived only as the draft state of a PR, which evaporates if the branch is closed. The roadmap is the durable home for a release-gating decision. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: hartsock <hartsock@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports the scrybe reference shim so npm users can
npm i -g newt-agent(→newt) ornpm i -g @gilamonster/newt-mcp-server— no Rust toolchain, no pip. Draft: direction is settled; remaining polish is checklisted below.What's here
npm/— a name-derived shim: one genericbin/run.cjs+lib/binary.cjsserves every@gilamonster/<bin>because each derives its binary name + platform-package names from its own package name.newt/→@gilamonster/newt,newt-mcp-server/→@gilamonster/newt-mcp-server,newt-agent/→ unscoped umbrella (npm i -g newt-agent).scripts/build-platform-package.mjs(generic wrap) +sync-versions.mjs(exact version pins).test/resolve.test.mjs— node:test, 5/5, including a real resolve+exec happy-path.platforms.json— 3 targets matchingbuild-binaries(darwin-arm64, linux-x64, win32-x64)..gitignore— re-includes*.cjs/*.mjs/package.json(the repo root blanket-ignores them to stay JS-free).release.ymljobs — held back (not in this branch yet).build-npm(per-platform: build → wrap → publish) +publish-npm-meta(shims + umbrella), OIDC, tag-only, idempotent publish. See Release wiring below.⚙️ Release wiring — needs a workflow-scoped push
The
release.ymlchanges are written and validated but not in this branch: the agent's push credential lacks GitHub'sworkflowscope, which is required to modify.github/workflows/. The change is sitting in the working tree of the local checkout — a maintainer completes it with:(Also saved as a patch at
scratchpad/release-npm-jobs.patch— 119 lines — if the working-tree copy is gone.)Scope decisions — please sanity-check
newt+newt-mcp-serveronly — the two binariesbuild-binariesactually produces (-p newt-agent -p newt-mcp-server). The reserved@gilamonster/newt-mcp-dataand@gilamonster/newt-provider-openainames are not shipped here; wire them in once those binaries are added to the release build.release.yml), so these jobs use OIDC (id-token: write+ npm ≥ 11.5.1).@gilamonstergranular token and drop them.Verified locally
npm test→ 5/5 (manifest integrity · name-derived resolver · resolve+exec happy-path).release.ymlYAML parses.Remaining before ready-for-review
test-npmjob inci.yml(+ pre-push hook parity)build-binariesartifacts instead of rebuilding the binariesdarwin-x64/linux-arm64ifbuild-binariesgains themnewt-mcp-data/newt-provider-openaiif/when shippableRef: newt-agent#1221 · reference impl: hartsock/scrybe#151
🤖 Generated with Claude Code