Skip to content

Conversation

@lachlancollins
Copy link
Member

@lachlancollins lachlancollins commented Dec 27, 2025

🎯 Changes

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm run test:pr.

🚀 Release Impact

  • This change affects published code, and I have generated a changeset.

Summary by CodeRabbit

  • Chores
    • Updated dev/peer dependency declarations across multiple TypeScript packages for improved compatibility.
    • Moved and consolidated dependency sections to standardize package manifests and tooling behavior.
    • Added or adjusted package publish metadata to ensure correct files are included.
    • Tweaked workspace manifest entries to refine dependency-ignore rules.

✏️ Tip: You can customize this high-level summary in your review settings.

@lachlancollins lachlancollins requested a review from a team December 27, 2025 23:37
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 27, 2025

📝 Walkthrough

Walkthrough

Updated multiple package.json manifests across examples and packages: dependency reclassifications (peer ↔ dev), added workspace dev refs for @tanstack/ai, added/removed peerDependencies, added "files" entries, and bumped several toolkit/plugin versions.

Changes

Cohort / File(s) Summary
Example Vite plugin
examples/ts-vue-chat/package.json
Bumped devDependency @vitejs/plugin-vue from ^5.2.3 to ^6.0.2.
Core AI packages (peer/dev reshuffle)
packages/typescript/ai-anthropic/package.json, packages/typescript/ai-gemini/package.json, packages/typescript/ai-ollama/package.json, packages/typescript/ai-openai/package.json
Reordered dependency blocks; added @tanstack/ai as workspace:* in devDependencies; moved or updated zod between peer/dev in some packages; consolidated dev entries (vite, coverage tooling).
React packages & UI
packages/typescript/ai-react/package.json, packages/typescript/ai-react-ui/package.json, packages/typescript/react-ai-devtools/package.json
Added/updated peerDependencies for @tanstack/ai, react, and types; added @tanstack/ai to devDependencies; bumped React and @types/react in devDependencies; added files:["dist"] to ai-react-ui.
Vue packages & UI
packages/typescript/ai-vue/package.json, packages/typescript/ai-vue-ui/package.json
Removed top-level peerDependencies in ai-vue and added @tanstack/ai dev ref; moved @vitejs/plugin-vue from peerDependencies to devDependencies and added vue to devDependencies in ai-vue-ui; added files:["src","dist"]/["src","dist"] as indicated.
Solid packages & DevTools
packages/typescript/ai-solid/package.json, packages/typescript/ai-solid-ui/package.json, packages/typescript/solid-ai-devtools/package.json
Added @tanstack/ai and solid-js peerDependencies where applicable; moved some framework deps to devDependencies; added files field to ai-solid-ui; added solid-js to devDependencies and peerDependencies in devtools.
Svelte adapter
packages/typescript/ai-svelte/package.json
Moved svelte from dependencies to peerDependencies (^5.0.0) and added @tanstack/ai as a devDependency (workspace:*).
Misc packaging config
knip.json
Added workspace entry for packages/typescript/ai-react-ui with ignoreDependencies: ["react-dom"]; removed an ignore entry from ai-vue-ui.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • jherr

Poem

🐰
Dependencies hop, re-ordered in queues,
Peer and dev swapped their tidy shoes.
Workspace ribbons loop and bind,
Dist and src now proudly lined.
A little rabbit cheers the new file views!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix: update peerDeps/devDeps' directly describes the main change—updating peer and dev dependencies across multiple packages to fix versioning issues.
Description check ✅ Passed The description comprehensively covers all required template sections: changes are explained with references to manypkg rules, checklist items are completed, and release impact is addressed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch manypkg

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 62e8525 and 440dd89.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (3)
  • knip.json
  • packages/typescript/ai-gemini/package.json
  • packages/typescript/ai-ollama/package.json
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/*/package.json : Use `workspace:*` protocol for internal package dependencies in package.json (e.g., `"tanstack/ai": "workspace:*"`)
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/typescript/*/src/index.ts : Export tree-shakeable adapters with clear subpath exports in package.json (e.g., `tanstack/ai/adapters`, `tanstack/ai-openai/adapters`) to minimize bundle size
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Use Nx workspace with affected commands to optimize testing and building only changed packages and their dependents
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to examples/** : Examples are not built by Nx and should be run independently from their directories with `pnpm dev` or `pnpm install && pnpm dev`
📚 Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/*/package.json : Use `workspace:*` protocol for internal package dependencies in package.json (e.g., `"tanstack/ai": "workspace:*"`)

Applied to files:

  • knip.json
  • packages/typescript/ai-ollama/package.json
  • packages/typescript/ai-gemini/package.json
📚 Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Use Nx workspace with affected commands to optimize testing and building only changed packages and their dependents

Applied to files:

  • knip.json
📚 Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/typescript/*/src/index.ts : Export tree-shakeable adapters with clear subpath exports in package.json (e.g., `tanstack/ai/adapters`, `tanstack/ai-openai/adapters`) to minimize bundle size

Applied to files:

  • knip.json
  • packages/typescript/ai-ollama/package.json
  • packages/typescript/ai-gemini/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Preview
  • GitHub Check: Test
🔇 Additional comments (5)
knip.json (1)

30-32: The ai-react-ui workspace configuration is correct.

The addition of ignoreDependencies: ["react-dom"] is appropriate since react-dom is properly configured as a peer dependency in the package and knip would otherwise incorrectly flag it as unused.

packages/typescript/ai-ollama/package.json (2)

46-50: LGTM! Correct pattern for peer and dev dependency relationship.

The addition of both peerDependencies and devDependencies for @tanstack/ai correctly addresses the manypkg "invalid dev and peer dependency relationship" issue. This pattern ensures:

  • Peer dependency (workspace:^) communicates version requirements to consumers
  • Dev dependency (workspace:*) provides the package during local development and testing

The workspace protocol usage aligns with the monorepo patterns.

Based on learnings, the workspace:* protocol is the standard for internal package dependencies in this repository.


43-53: Zod removal is correct. The ai-ollama package source code does not import or use zod, so its removal from peerDependencies is safe and appropriate.

packages/typescript/ai-gemini/package.json (2)

48-49: Good addition of devDependencies entry.

The workspace:* protocol for @tanstack/ai in devDependencies correctly follows the internal dependency pattern. This enables local development and testing while declaring it as a peer dependency for consumers.

Based on learnings, workspace:* is the recommended protocol for internal package dependencies.


45-47: No changes needed. The use of workspace:^ in peerDependencies is valid per pnpm's workspace protocol specification. This protocol ensures pnpm resolves the peer dependency to a local workspace package while enforcing the semver range (^), and it correctly rewrites to a normal semver range upon publish. The combination with workspace:* in devDependencies is an appropriate pattern for monorepos.

Likely an incorrect or invalid review comment.


Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link

nx-cloud bot commented Dec 27, 2025

View your CI Pipeline Execution ↗ for commit 440dd89

Command Status Duration Result
nx affected --targets=test:sherif,test:knip,tes... ✅ Succeeded 1m 8s View ↗
nx run-many --targets=build --exclude=examples/** ✅ Succeeded 35s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-27 23:46:46 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 27, 2025

Open in StackBlitz

@tanstack/ai

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai@193

@tanstack/ai-anthropic

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-anthropic@193

@tanstack/ai-client

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-client@193

@tanstack/ai-devtools-core

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-devtools-core@193

@tanstack/ai-gemini

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-gemini@193

@tanstack/ai-ollama

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-ollama@193

@tanstack/ai-openai

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-openai@193

@tanstack/ai-react

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-react@193

@tanstack/ai-react-ui

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-react-ui@193

@tanstack/ai-solid

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-solid@193

@tanstack/ai-solid-ui

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-solid-ui@193

@tanstack/ai-svelte

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-svelte@193

@tanstack/ai-vue

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-vue@193

@tanstack/ai-vue-ui

npm i https://pkg.pr.new/TanStack/ai/@tanstack/ai-vue-ui@193

@tanstack/react-ai-devtools

npm i https://pkg.pr.new/TanStack/ai/@tanstack/react-ai-devtools@193

@tanstack/solid-ai-devtools

npm i https://pkg.pr.new/TanStack/ai/@tanstack/solid-ai-devtools@193

commit: 440dd89

@lachlancollins lachlancollins changed the title fix: update peerdeps/devdeps fix: update peerDeps/devDeps Dec 27, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/typescript/ai-anthropic/package.json (1)

45-52: Remove or clarify the purpose of the Zod dependency.

Zod is declared in both peerDependencies (^4.0.0) and devDependencies (^4.2.0), but it does not appear to be imported or used anywhere in the source code. Tool schemas are already converted to JSON Schema in the ai layer (see custom-tool.ts:30).

This pattern is consistent across all four provider packages (@tanstack/ai-anthropic, @tanstack/ai-openai, @tanstack/ai-gemini, @tanstack/ai-ollama). If Zod is unnecessary, remove it. If it's a transitive dependency, it should be declared in @tanstack/ai instead.

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a866721 and 62e8525.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (14)
  • examples/ts-vue-chat/package.json
  • packages/typescript/ai-anthropic/package.json
  • packages/typescript/ai-gemini/package.json
  • packages/typescript/ai-ollama/package.json
  • packages/typescript/ai-openai/package.json
  • packages/typescript/ai-react-ui/package.json
  • packages/typescript/ai-react/package.json
  • packages/typescript/ai-solid-ui/package.json
  • packages/typescript/ai-solid/package.json
  • packages/typescript/ai-svelte/package.json
  • packages/typescript/ai-vue-ui/package.json
  • packages/typescript/ai-vue/package.json
  • packages/typescript/react-ai-devtools/package.json
  • packages/typescript/solid-ai-devtools/package.json
🧰 Additional context used
📓 Path-based instructions (1)
examples/**

📄 CodeRabbit inference engine (CLAUDE.md)

Examples are not built by Nx and should be run independently from their directories with pnpm dev or pnpm install && pnpm dev

Files:

  • examples/ts-vue-chat/package.json
🧠 Learnings (4)
📓 Common learnings
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Use Nx workspace with affected commands to optimize testing and building only changed packages and their dependents
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/*/package.json : Use `workspace:*` protocol for internal package dependencies in package.json (e.g., `"tanstack/ai": "workspace:*"`)
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/typescript/*/src/index.ts : Export tree-shakeable adapters with clear subpath exports in package.json (e.g., `tanstack/ai/adapters`, `tanstack/ai-openai/adapters`) to minimize bundle size
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Create changesets with `pnpm changeset` before making changes to prepare for release version bumping and publishing
📚 Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/*/package.json : Use `workspace:*` protocol for internal package dependencies in package.json (e.g., `"tanstack/ai": "workspace:*"`)

Applied to files:

  • packages/typescript/ai-svelte/package.json
  • packages/typescript/ai-ollama/package.json
  • packages/typescript/ai-gemini/package.json
  • packages/typescript/ai-react-ui/package.json
  • packages/typescript/ai-react/package.json
  • packages/typescript/react-ai-devtools/package.json
  • packages/typescript/ai-openai/package.json
  • packages/typescript/ai-solid-ui/package.json
  • packages/typescript/ai-solid/package.json
  • packages/typescript/solid-ai-devtools/package.json
  • packages/typescript/ai-anthropic/package.json
  • packages/typescript/ai-vue/package.json
📚 Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/typescript/*/src/index.ts : Export tree-shakeable adapters with clear subpath exports in package.json (e.g., `tanstack/ai/adapters`, `tanstack/ai-openai/adapters`) to minimize bundle size

Applied to files:

  • packages/typescript/ai-svelte/package.json
  • packages/typescript/ai-ollama/package.json
  • packages/typescript/ai-gemini/package.json
  • packages/typescript/ai-react-ui/package.json
  • packages/typescript/ai-react/package.json
  • packages/typescript/react-ai-devtools/package.json
  • packages/typescript/ai-openai/package.json
  • packages/typescript/ai-solid-ui/package.json
  • packages/typescript/ai-solid/package.json
  • packages/typescript/ai-anthropic/package.json
  • packages/typescript/ai-vue-ui/package.json
  • packages/typescript/ai-vue/package.json
📚 Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.test.ts : Write unit tests using Vitest alongside source files with `.test.ts` naming convention

Applied to files:

  • packages/typescript/ai-solid-ui/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test
  • GitHub Check: Preview
🔇 Additional comments (24)
packages/typescript/solid-ai-devtools/package.json (2)

53-55: LGTM! Correct peer dependency declaration.

The peer dependency correctly declares the minimum version of solid-js (>=1.9.7) required for this Solid.js devtools package. This aligns with the PR objective to fix invalid dev and peer dependency relationships identified by manypkg.


58-58: LGTM! Dev dependency satisfies peer requirement.

The dev dependency version ^1.9.10 correctly satisfies the peer dependency requirement >=1.9.7, ensuring the package can be developed and tested locally while maintaining compatibility with consumer projects. This properly resolves the "invalid dev and peer dependency relationship" issue that manypkg identified.

packages/typescript/ai-svelte/package.json (1)

45-63: Dependency restructuring looks correct.

The changes properly address the manypkg issues mentioned in the PR:

  1. Fixed invalid dev/peer relationship: @tanstack/ai now appears in both peerDependencies (line 49) and devDependencies (line 55), and svelte was already in devDependencies (line 59).

  2. Correct workspace protocol usage:

    • workspace:^ in peerDependencies allows compatible versions when the package is published
    • workspace:* in dependencies/devDependencies pins to the exact workspace version during development
  3. Appropriate dependency placement:

    • @tanstack/ai-client remains in dependencies as the core implementation dependency
    • svelte correctly moved to peerDependencies (standard for framework bindings)
    • Svelte version ^5.0.0 in peerDependencies allows any 5.x, while devDependencies pins to ^5.20.0 for testing

Based on learnings, the workspace protocol usage correctly distinguishes between peer dependencies (which need version flexibility) and dev/direct dependencies (which should pin to workspace versions).

packages/typescript/ai-react/package.json (3)

52-52: LGTM! Correctly satisfies peer dependency for local development.

Adding @tanstack/ai to devDependencies with workspace:* protocol is correct. This ensures tests and local development can run while satisfying the peer dependency requirement, addressing the manypkg "invalid dev and peer dependency relationship" issue mentioned in the PR.

Based on learnings.


57-57: LGTM! React dev dependency correctly satisfies peer dependency.

Adding React 19.2.3 to devDependencies appropriately satisfies the peer dependency requirement (>=18.0.0) and enables local testing and development.


46-50: No changes needed. Both concerns are established patterns in this monorepo.

The use of workspace:^ in peerDependencies and workspace:* in devDependencies is consistent across all packages (ai-react, ai-react-ui, ai-openai, ai-vue, ai-svelte, ai-solid, etc.). This appears to be an intentional differentiation allowing minor/patch upgrades for peer dependencies while pinning development dependencies to exact workspace versions.

Including @types/react in peerDependencies is the established practice across React framework packages in this monorepo, as seen in react-ai-devtools, ai-react-ui, and other React packages.

Likely an incorrect or invalid review comment.

packages/typescript/ai-solid/package.json (2)

50-50: Dev dependency correctly satisfies manypkg's peer dependency rule.

Adding @tanstack/ai to devDependencies completes the fix for manypkg's "invalid dev and peer dependency relationship" rule. This ensures the package can be tested locally against its peer dependency using the workspace version.

The workspace:* protocol is appropriate here since devDependencies are not published and this will always resolve to the local workspace version during development.


44-47: Peer dependencies correctly declared for manypkg compliance.

The addition of @tanstack/ai and solid-js to peerDependencies properly addresses the manypkg validation rule. The use of workspace:^ for @tanstack/ai is consistent across all adapter packages and correctly transforms to a semver range like ^0.2.0 on publish.

packages/typescript/ai-react-ui/package.json (3)

19-21: LGTM! Good addition of the files array.

Adding the files array ensures only the built dist directory is published to npm, which is a best practice for package distribution.


47-53: Correct workspace protocol pattern for peer dependencies.

The use of workspace:^ for @tanstack/ai-client and @tanstack/ai-react in peerDependencies is correct. This pattern:

  • Allows the package to work with any version >= the current workspace version when published
  • Differs from workspace:* which is used in devDependencies (lines 55-56) for exact version linking during development
  • Properly resolves the "invalid dev and peer dependency relationship" issue mentioned in the PR objectives

Note: Based on learnings, the workspace:* protocol guidance applies specifically to devDependencies for internal packages. The workspace:^ protocol is the correct choice for peerDependencies.


54-62: React 19.2.3 upgrade is appropriate and compatible.

The upgrade to React 19.2.3, React DOM 19.2.3, and @types/react 19.2.7 is confirmed as stable and recommended. React 19.2.3 was released December 11, 2025, with security fixes for React Server Components. The codebase contains no deprecated React 18 patterns (ReactDOM.render, hydrate, string refs, or legacy context), confirming compatibility with React 19.

packages/typescript/ai-anthropic/package.json (1)

49-51: Correct setup for peer and dev dependencies.

The addition of @tanstack/ai in devDependencies alongside the existing peerDependencies entry correctly addresses the "invalid dev and peer dependency relationship" issue flagged by manypkg. Using workspace:* in dev and workspace:^ in peer is the appropriate pattern.

Based on learnings, workspace:* is the correct protocol for internal dev dependencies.

packages/typescript/ai-ollama/package.json (2)

50-51: LGTM! Correctly fixes manypkg validation issues.

Adding @tanstack/ai and zod to devDependencies properly resolves the "invalid dev and peer dependency relationship" flagged by manypkg. This allows local development and testing against these peer dependencies.

The workspace protocol usage is correct:

  • workspace:^ in peerDependencies allows compatible workspace versions for consumers
  • workspace:* in devDependencies links to the current workspace version during development

The zod version strategy is also appropriate: ^4.0.0 sets the minimum peer requirement while ^4.2.0 provides a specific version for testing.

Based on learnings, this aligns with the workspace dependency patterns for the repository.

Also applies to: 54-54


52-53: Both [email protected] and @vitest/[email protected] are valid and recently available. No issues identified with these versions.

packages/typescript/ai-gemini/package.json (2)

49-54: LGTM! Correctly addresses manypkg warnings.

The additions of @tanstack/ai and zod to devDependencies properly resolve the "invalid dev and peer dependency relationship" warnings. This ensures that during development and testing, the peer dependencies are actually installed, which is the standard pattern for packages with peer dependencies.

The use of workspace:* for the internal @tanstack/ai dependency follows the established pattern for this repository.

Based on learnings: "Use workspace:* protocol for internal package dependencies in package.json"


53-53: Fix dev dependency: Zod 4.2.0 does not exist as a stable release.

The devDependencies specifies "zod": "^4.2.0", but Zod 4.2.0 does not exist in the stable npm registry—only canary prerelease builds (4.2.0-canary.*) are available. The stable releases jump from 4.1.x to 4.2.1 (current latest). This will cause installation to fail.

Update the dev dependency to "zod": "^4.2.1" or an equivalent compatible stable version. The peer dependency "zod": "^4.0.0" is appropriate since the code uses only basic Zod APIs (z.object, z.string) available since 4.0.0.

⛔ Skipped due to learnings
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Use Zod for runtime schema validation and type inference, particularly for tool input/output definitions with `toolDefinition()` and Zod schema inference
packages/typescript/ai-vue-ui/package.json (2)

19-22: Good addition: explicit files declaration.

Declaring the published files explicitly is a best practice that ensures only intended directories are included in the published package.


53-56: LGTM: Correct dependency placement.

Moving @vitejs/plugin-vue to devDependencies and adding vue to devDependencies for testing is the correct pattern. Vue remains appropriately declared as a peerDependency for consumers.

packages/typescript/react-ai-devtools/package.json (1)

58-62: Verify React 19 compatibility.

The devDependencies now use React 19.2.3 and @types/react 19.2.7. Based on the React 19 documentation, these versions exist. However, ensure that all devtools functionality is tested against React 19, as it includes significant changes from React 18 (new rendering primitives, ref as prop, etc.).

Based on learnings, ensure you test locally with pnpm run test:pr to verify compatibility.

packages/typescript/ai-solid-ui/package.json (2)

20-22: Good addition: explicit files declaration.

Declaring the published files explicitly ensures only intended directories are included in the published package.


50-60: The workspace protocol difference (workspace:^ in peerDependencies and workspace:* in devDependencies) is intentional and correct. The pnpm workspace: protocol is fully supported by manypkg, and this pattern properly declares consumer requirements (caret range in peer deps) while ensuring exact versions for development (workspace:* in dev deps). No compatibility issues with manypkg.

Likely an incorrect or invalid review comment.

examples/ts-vue-chat/package.json (1)

29-29: No compatibility issues found — @vitejs/plugin-vue 6.0.2 is compatible with Vue 3.5.25 and Vite 7.2.7.

@vitejs/[email protected] declares peerDependencies for vite ^5.0.0 || ^6.0.0 || ^7.0.0 and vue ^3.2.25. Both Vue 3.5.25 and Vite 7.2.7 satisfy these constraints.

packages/typescript/ai-openai/package.json (1)

45-53: Both issues identified are intentional patterns used consistently throughout the repository and do not require correction.

The @tanstack/ai dependency uses workspace:^ in peerDependencies and workspace:* in devDependencies by design—this is the standard pattern across all adapter packages (ai-openai, ai-gemini, ai-ollama, ai-anthropic, ai-react, ai-vue, ai-svelte, ai-solid). The caret protocol in peerDependencies allows consumers to reference the dependency with version constraints, while the asterisk in devDependencies pins the exact workspace version for development.

Similarly, the zod version difference (^4.0.0 in peerDependencies vs ^4.2.0 in devDependencies) is consistent across all adapters and reflects an intentional strategy: declare broad consumer compatibility while testing against the latest version. This is a standard library practice and does not create compatibility issues—consumers declaring zod 4.0.x or 4.1.x are still supported by the peer dependency range.

There is no manypkg violation here; these patterns are part of the established repository conventions.

Likely an incorrect or invalid review comment.

packages/typescript/ai-vue/package.json (1)

44-49: This configuration is intentional and consistent with the monorepo pattern. The package correctly uses workspace:^ in peerDependencies (for semver compatibility) and workspace:* in devDependencies (for development flexibility). This exact pattern is used across all framework integration packages in the monorepo (ai-react, ai-solid, ai-svelte, etc.) and presents no compatibility issues.

Likely an incorrect or invalid review comment.

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.

2 participants