feat(agent testing): introduce Agent testing#1377
Conversation
1 new issue
|
7a4233b to
c1e6432
Compare
|
Coverage Impact ⬇️ Merging this pull request will decrease total coverage on Modified Files with Diff Coverage (10)
🤖 Increase coverage with AI coding...🚦 See full report on Qlty Cloud » 🛟 Help
|
packages/_example/package.json
Outdated
| "dependencies": { | ||
| "@faker-js/faker": "^7.6.0", | ||
| "@forestadmin/agent": "1.70.1", | ||
| "@forestadmin/datasource-customizer": "1.67.2", |
packages/_example/package.json
Outdated
| "@forestadmin/agent": "1.70.1", | ||
| "@forestadmin/datasource-customizer": "1.67.2", | ||
| "@forestadmin/datasource-dummy": "1.1.60", | ||
| "@forestadmin/forestadmin-client": "1.37.0", |
packages/mcp-server/README.md
Outdated
|
|
||
| The MCP server will be automatically initialized and mounted on your application. | ||
|
|
||
| #### Framework Compatibility |
package.json
Outdated
| "@babel/helpers": "^7.26.10", | ||
| "semantic-release": "^25.0.0" | ||
| "semantic-release": "^25.0.0", | ||
| "@forestadmin/datasource-toolkit": "1.50.1", |
| @@ -0,0 +1,23 @@ | |||
| import { ForestServerActionFormLayoutElement } from '@forestadmin/forestadmin-client'; | |||
There was a problem hiding this comment.
remove remove-agent-client folder.
Add @forestadmin/datasource-customizer directly to prevent yarn from creating nested node_modules with different versions in CI. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Force consistent versions of @forestadmin/datasource-toolkit and @forestadmin/datasource-customizer across all packages to prevent type mismatches when _example downloads from npm. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add @forestadmin/forestadmin-client to resolutions to prevent agent-testing from downloading a nested copy from npm. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comment to yarn.lock to bust the CI cache and force fresh node_modules installation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add @forestadmin/forestadmin-client to _example to ensure the resolution forces the correct version instead of pulling 1.37.1 from npm through transitive dependencies. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cast ForestAdminClientMock to any to avoid type mismatch when yarn creates nested node_modules with different forestadmin-client versions due to transitive dependency resolution. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
c6af75f to
c862720
Compare
- Remove remote-agent-client/ and units/ folders (now in @forestadmin/agent-client) - Move integrations/* content directly to src/ - Update imports to use @forestadmin/agent-client package - Fix test imports and filter types - Add projection support to ExportOptions in agent-client 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
| } | ||
|
|
||
| async exportCsv(stream: WriteStream, options?: ExportOptions): Promise<void> { | ||
| const projection = options?.projection ?? options?.fields; |
- Use fields instead of projection in ExportOptions - Update dependencies to use workspace versions (*) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use explicit versions for internal dependencies (repo convention) - Remove __tests__/ folder with placeholder test 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Starting fresh for this package in the main monorepo. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Reorganize README to present sandbox mode first - Add comparison table between sandbox and simple modes - Document agent configuration for sandbox mode - Keep simple mode as alternative for quick tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The sandbox mode (createForestServerSandbox + createForestAgentClient) is now the only supported way to test agents. This provides: - Production-like testing with realistic server communication - Permission testing with proper server responses - Support for any agent (Node.js, Python, Ruby, etc.) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tTestClient - Rename createForestAgentClient to createAgentTestClient (clearer name) - Rename ForestAgentClient type to AgentTestClient - Add deprecated aliases for backward compatibility - Mark createTestableAgent as deprecated - Update README and examples 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
| } | ||
|
|
||
| /** @deprecated Use createAgentTestClient instead */ | ||
| export const createForestAgentClient = createAgentTestClient; |
There was a problem hiding this comment.
I have renamed to: createAgentTestClient, it's a more user friendly name. It's also to avoid confusion with agent-client
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- @forestadmin/agent-client: 1.3.0 → 1.3.1 - @forestadmin/forestadmin-client: 1.37.3 → 1.37.4 - @forestadmin/agent: 1.70.7 → 1.70.8 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add clear value proposition in description - Rename "Setup" to "Quick Start" for better scannability - Number steps clearly (1, 2, 3) in comments - Use process.env for secrets (clearer than placeholder) - Show concrete command example for starting agent 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
# @forestadmin/agent-client [1.4.0](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent-client@1.3.1...@forestadmin/agent-client@1.4.0) (2026-01-20) ### Features * **agent testing:** introduce Agent testing ([#1377](#1377)) ([2ce12f2](2ce12f2)) * **mcp-server:** add associate and dissociate tools ([#1393](#1393)) ([c3fa294](c3fa294))

Definition of Done
General
Security