Skip to content

fix: remove Smithery SDK and CLI from project#143

Open
glassBead-tc wants to merge 3 commits intomainfrom
fix/remove-smithery
Open

fix: remove Smithery SDK and CLI from project#143
glassBead-tc wants to merge 3 commits intomainfrom
fix/remove-smithery

Conversation

@glassBead-tc
Copy link
Copy Markdown
Member

Summary

  • Removes @smithery/sdk (dependency) and @smithery/cli (devDependency)
  • Removes build:smithery and start:smithery scripts
  • Replaces the dev script (which called smithery dev) with tsx src/index.ts
  • Cleans up .smithery/, smithery.yaml, and smithery-docs/ entries from .gitignore, .npmignore, and .dockerignore
  • Removes the @smithery/sdk assumption entry from specs/continual-improvement/07-assumption-registry.md

No source files imported from @smithery/sdk, so there are no code changes beyond the build config.

🤖 Generated with Claude Code

glassBead-tc and others added 3 commits March 7, 2026 04:37
- Remove @smithery/sdk from dependencies
- Remove @smithery/cli from devDependencies
- Remove build:smithery and start:smithery scripts
- Replace dev script (smithery dev) with tsx src/index.ts
- Remove .smithery/, smithery.yaml, smithery-docs/ from ignore files
- Remove @smithery/sdk assumption from spec 07

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 7, 2026

Greptile Summary

This PR removes the Smithery SDK and CLI from the project and migrates the package manager from npm to pnpm across all CI workflows, documentation, and source files. As a side-effect, the distribution strategy shifts from npm-installable (npm install -g) to a source-checkout model only — the Publish to NPM step is removed from the publish workflow and all install instructions are updated accordingly.

Key changes:

  • @smithery/sdk (runtime dep) and @smithery/cli (devDep) removed from package.json; packageManager: "pnpm@9.15.4" field added
  • All 9 GitHub Actions workflows migrated from npm ci to pnpm install --frozen-lockfile (with pnpm/action-setup@v4 added to each)
  • dev script replaced from smithery dev to pnpm embed && tsx src/index.ts — note that this drops the hot-reload capability that Smithery's dev server provided; the # Development with hot reload comment in README.md is now misleading
  • package-lock.json deleted in favour of the pre-existing pnpm-lock.yaml
  • NPM publish removed from publish-mcp.yml without being mentioned in the PR description — this is a significant distribution strategy change worth noting explicitly
  • docs/docs-for-humans/index.md updates the "Get Started" snippet to use pnpm clone + build, but still shows the bare thoughtbox command which won't resolve in PATH from a local checkout; llms-install.md correctly uses node /absolute/path/to/dist/index.js and should be the reference pattern
  • .smithery/, smithery.yaml, and smithery-docs/ removed from .gitignore, .npmignore, and .dockerignore

Confidence Score: 4/5

  • Safe to merge with minor documentation fixes — no source logic is broken and CI workflows are consistent, but the docs/docs-for-humans/index.md thoughtbox command will confuse users following the new install flow.
  • The npm→pnpm migration is thorough and consistent across all 9 CI workflows and source files. The Smithery removal is clean with no remaining import references. The main concerns are documentation accuracy: the bare thoughtbox command in index.md won't work after a local clone, and the "hot reload" comment in README.md is no longer accurate. Neither issue breaks builds or runtime behavior — they only affect developer/user experience.
  • docs/docs-for-humans/index.md — the thoughtbox bare command after the new clone+build instructions won't resolve from a local checkout.

Important Files Changed

Filename Overview
package.json Removes @smithery/sdk from dependencies and @smithery/cli from devDependencies; adds packageManager: "pnpm@9.15.4"; replaces dev script with pnpm embed && tsx src/index.ts; removes build:smithery and start:smithery scripts. Changes are clean and complete.
.github/workflows/publish-mcp.yml Removes the Publish to NPM step (including NPM_TOKEN secret usage and registry-url config) and updates the release body to reflect MCP Registry-only distribution. This is a significant distribution strategy change not explicitly mentioned in the PR description, but all related documentation has been updated consistently.
docs/docs-for-humans/index.md Replaces global npm install -g with a local clone + build workflow, but leaves the thoughtbox bare command (and THOUGHTBOX_TRANSPORT=http thoughtbox) unchanged — these commands won't work from a local checkout without adding node_modules/.bin to PATH or using pnpm exec thoughtbox / node dist/index.js.
README.md All npm commands updated to pnpm; "Development with hot reload" comment is now inaccurate since the new dev script (tsx src/index.ts) lacks a watch/hot-reload mechanism.
src/notebook/execution.ts installDependencies correctly updated from npm install to pnpm install; executeTypeScript retains npx tsx which is consistent with existing behavior and works correctly after pnpm install.
.github/workflows/verify-assumptions.yml Install step correctly migrated to pnpm install --frozen-lockfile, but the verify step still uses npx tsx instead of the pnpm-consistent pnpm exec tsx — a minor stylistic inconsistency that doesn't break functionality.
package-lock.json Deleted as expected when migrating from npm to pnpm; replaced by pnpm-lock.yaml which is already present in the repository.
llms-install.md Correctly updated: replaces npx -y @kastalien-research/thoughtbox with node /absolute/path/to/thoughtbox/dist/index.js across all three MCP client configurations (Cline, Claude Desktop, VS Code); matches the new source-checkout distribution model.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Push tag to main] --> B[publish-mcp.yml triggered]
    B --> C[Setup pnpm + Node 22]
    C --> D[pnpm install --frozen-lockfile]
    D --> E[pnpm check:cycles]
    E --> F[pnpm build]
    F --> G[Extract version from tag]
    G --> H{Version in package.json\nmatches tag?}
    H -- No --> I[❌ Fail: version mismatch]
    H -- Yes --> J[Install mcp-publisher binary]
    J --> K[Publish to MCP Registry]
    K --> L[Create GitHub Release\nMCP Registry only]

    subgraph REMOVED ["❌ Removed Steps"]
        M[npm publish --access public]
        N[NPM_TOKEN secret]
        O[registry-url config]
    end

    style REMOVED fill:#ffcccc,stroke:#cc0000
    style I fill:#ffcccc,stroke:#cc0000
    style L fill:#ccffcc,stroke:#009900
Loading

Comments Outside Diff (1)

  1. docs/docs-for-humans/index.md, line 99-103 (link)

    thoughtbox command unavailable after local clone

    After replacing npm install -g @kastalien-research/thoughtbox with a local clone + build workflow, the thoughtbox binary is no longer in the system PATH. Running thoughtbox (or THOUGHTBOX_TRANSPORT=http thoughtbox) will fail unless the user adds ./node_modules/.bin to PATH or uses pnpm exec thoughtbox.

    llms-install.md correctly handles this by instructing users to configure the MCP client with node /absolute/path/to/thoughtbox/dist/index.js — the same approach should be reflected here.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: docs/docs-for-humans/index.md
    Line: 99-103
    
    Comment:
    **`thoughtbox` command unavailable after local clone**
    
    After replacing `npm install -g @kastalien-research/thoughtbox` with a local clone + build workflow, the `thoughtbox` binary is no longer in the system `PATH`. Running `thoughtbox` (or `THOUGHTBOX_TRANSPORT=http thoughtbox`) will fail unless the user adds `./node_modules/.bin` to `PATH` or uses `pnpm exec thoughtbox`.
    
    `llms-install.md` correctly handles this by instructing users to configure the MCP client with `node /absolute/path/to/thoughtbox/dist/index.js` — the same approach should be reflected here.
    
    
    
    How can I resolve this? If you propose a fix, please make it concise.

Last reviewed commit: a1cc393

Comment thread README.md
npm run build
npm run dev # Development with hot reload
pnpm install
pnpm build
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hot reload comment no longer accurate

The dev script was changed from smithery dev (which provided hot reload) to pnpm embed && tsx src/index.ts. The tsx command in this form does not provide hot reload — that would require tsx watch src/index.ts. The inline comment # Development with hot reload is now misleading.

Suggested change
pnpm build
pnpm dev # Development server (no hot reload; use tsx watch for file watching)
Prompt To Fix With AI
This is a comment left during a code review.
Path: README.md
Line: 192

Comment:
**Hot reload comment no longer accurate**

The `dev` script was changed from `smithery dev` (which provided hot reload) to `pnpm embed && tsx src/index.ts`. The `tsx` command in this form does not provide hot reload — that would require `tsx watch src/index.ts`. The inline comment `# Development with hot reload` is now misleading.

```suggestion
pnpm dev      # Development server (no hot reload; use tsx watch for file watching)
```

How can I resolve this? If you propose a fix, please make it concise.

- uses: pnpm/action-setup@v4
with:
version: 9.15.4

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent package manager invocation

Every other workflow in this PR was updated from npm to pnpm, but this step still uses npx tsx to run the verify-assumptions script. While this works (pnpm populates node_modules/.bin/ so npx can find tsx), it's inconsistent with the rest of the codebase migration.

Suggested change
- run: pnpm exec tsx scripts/utils/verify-assumptions.ts
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/verify-assumptions.yml
Line: 21

Comment:
**Inconsistent package manager invocation**

Every other workflow in this PR was updated from `npm` to `pnpm`, but this step still uses `npx tsx` to run the verify-assumptions script. While this works (pnpm populates `node_modules/.bin/` so npx can find `tsx`), it's inconsistent with the rest of the codebase migration.

```suggestion
      - run: pnpm exec tsx scripts/utils/verify-assumptions.ts
```

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented Mar 7, 2026

🤖 Augment PR Summary

Summary: Removes Smithery tooling and standardizes Thoughtbox around pnpm + source-based distribution.

Changes:

  • Removed @smithery/sdk and @smithery/cli, plus Smithery-specific scripts and ignore entries.
  • Declared pnpm@9.15.4 as the package manager and added pnpm-lock.yaml.
  • Updated GitHub Actions workflows to set up pnpm, use pnpm caching, and run CI commands via pnpm.
  • Adjusted the release workflow to publish to the MCP Registry only (removed npm publish step and updated release notes).
  • Updated README/specs/docs to reference pnpm commands and source checkout installation.
  • Notebook dependency installation now runs pnpm install instead of npm install.

Technical Notes: This makes pnpm availability a broader assumption (CI, dev, and notebook runtime), so it’s important that docs and automation consistently reflect how the CLI/server should be invoked from a source checkout.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 4 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread package.json
"build:local": "npm run embed && tsc && shx cp -r src/resources dist/ && shx cp -r templates dist/ && shx cp src/observatory/ui/*.html dist/observatory/ui/ && shx chmod +x dist/*.js",
"build:smithery": "npm run embed && smithery build",
"embed": "pnpm embed-templates && pnpm embed-loops",
"dev": "pnpm embed && tsx src/index.ts",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dev script runs tsx src/index.ts without watch mode, so it won’t hot-reload as implied by the docs. Consider aligning the script behavior and the README so local dev instructions aren’t misleading.

Severity: medium

Other Locations
  • README.md:193

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Comment thread src/notebook/execution.ts
options: ExecutionOptions
): Promise<ExecutionResult> {
return executeCommand("npm", ["install"], options);
return executeCommand("pnpm", ["install"], options);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

installDependencies() now spawns pnpm, which may not exist in default Node environments (npm is bundled, pnpm typically isn’t). If notebooks are expected to work out-of-the-box, consider ensuring pnpm is provisioned or surfacing a clearer “pnpm not found” error.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

npm install
npm run build
pnpm install
pnpm build
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The install section now describes running from a source checkout, but later examples still assume thoughtbox is already on $PATH (no install/link step is described). This can leave users unable to start the server after pnpm build unless they discover node dist/index.js/linking on their own.

Severity: medium

Other Locations
  • docs/docs-for-humans/index.md:100

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

validation:
type: automated
test: { command: "npm run typecheck", expect_exit: 0 }
test: { command: "pnpm typecheck", expect_exit: 0 }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This acceptance gate now calls pnpm typecheck, but the root package.json doesn’t define a typecheck script, so this command will fail if executed. If this is intended to be automated validation, the command and available scripts should match.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a1cc393186

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread package-lock.json Outdated
@@ -1,9475 +0,0 @@
{
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep npm lockfile when Docker build still uses npm ci

Removing package-lock.json breaks image builds because the project Dockerfile still runs npm ci in both stages (RUN npm ci and RUN npm ci --omit=dev --ignore-scripts). In this state, npm ci fails with EUSAGE (can only install with an existing package-lock.json or npm-shrinkwrap.json), so any standard docker build from this commit will fail before the app is built.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant