Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
b6cc799
build: remove bun configuration files
ryoppippi Dec 3, 2025
df6f5e4
build: add pnpm workspace configuration
ryoppippi Dec 3, 2025
0e72d20
build: update package.json for pnpm migration
ryoppippi Dec 3, 2025
6b315d9
build: add vitest configuration and update build config
ryoppippi Dec 3, 2025
82064da
test: migrate tests from bun:test to vitest
ryoppippi Dec 3, 2025
169c880
refactor(examples): migrate to Node.js/pnpm compatibility
ryoppippi Dec 3, 2025
665e732
ci: update GitHub workflows for pnpm
ryoppippi Dec 3, 2025
3d49f17
test(examples): replace SKIP_EXAMPLES with proper MSW mocking
ryoppippi Dec 3, 2025
330ec48
test: remove anti-patterns and fix fraudulent tests
ryoppippi Dec 3, 2025
d8c1f57
test: replace if/try-catch with assert and vitest patterns
ryoppippi Dec 3, 2025
9aeb687
test: prefer expect().toBeDefined() over assert() where possible
ryoppippi Dec 3, 2025
3563dab
fix(parser): stop swallowing errors in parseTools - this was terrible
ryoppippi Dec 3, 2025
2270093
refactor(test): migrate openapi.spec.ts to fs-fixture
ryoppippi Dec 3, 2025
1a5d147
docs: migrate documentation from bun to pnpm and vitest
ryoppippi Dec 3, 2025
fe0c1e9
docs: simplify fs-fixture documentation
ryoppippi Dec 3, 2025
01cf32f
chore: migrate tests to vitest and update tsconfig
ryoppippi Dec 3, 2025
5fb6ed1
chore: install bun in root
ryoppippi Dec 3, 2025
842bebc
Merge branch 'main' into feat/migrate-to-pnpm-vitest
ryoppippi Dec 8, 2025
4100d48
refactor: simplify examples API key check and remove skipped test
ryoppippi Dec 8, 2025
ef1584b
feat(types): add AISDKToolDefinition and AISDKToolResult types
ryoppippi Dec 8, 2025
cc42c0f
refactor(tool): use ChatCompletionFunctionTool and typed toAISDK return
ryoppippi Dec 8, 2025
04a1240
fix(test): resolve type errors in requestBuilder.spec.ts
ryoppippi Dec 8, 2025
9e60fb5
fix(test): resolve type errors in tool.spec.ts
ryoppippi Dec 8, 2025
8a87586
fix(test): resolve type errors in json-schema.spec.ts
ryoppippi Dec 8, 2025
8006ab3
fix(test): use vitest assert for null checks in meta-tools.spec.ts
ryoppippi Dec 8, 2025
66539fc
fix(test): add typed result interface for feedback.spec.ts
ryoppippi Dec 8, 2025
88c2494
fix(test): resolve type errors in stackone.mcp-fetch.spec.ts
ryoppippi Dec 8, 2025
3c38006
test(types): add vitest typecheck for toOpenAI and toAISDK
ryoppippi Dec 8, 2025
f7c447d
chore(deps): add @ai-sdk/provider-utils to catalog
ryoppippi Dec 8, 2025
896b05e
refactor(types): use AI SDK Tool type for AISDKToolDefinition
ryoppippi Dec 8, 2025
bf3abe8
chore(deps): add @ai-sdk/provider-utils to ai catalog
ryoppippi Dec 8, 2025
109112f
chore(deps): remove unused tsx dependency
ryoppippi Dec 8, 2025
d6e2c9c
chore(deps): remove unused mkdocs and openapi-types dependencies
ryoppippi Dec 8, 2025
e0a2500
refactor(deps): organize peer dependencies in separate catalog
ryoppippi Dec 8, 2025
1ecef35
refactor(deps): simplify catalog structure to dev/prod/peer
ryoppippi Dec 8, 2025
76e6c65
chore(pnpm): add trustPolicy no-downgrade
ryoppippi Dec 8, 2025
9293ae0
build(deps): migrate from lint-staged and husky to lefthook
ryoppippi Dec 8, 2025
9f02b66
fix(lint): add biome-ignore for MCP SDK type mismatch
ryoppippi Dec 8, 2025
f1e664e
build(biome): ignore Nix store paths in biome configuration
ryoppippi Dec 8, 2025
769ff15
fix: lefthook
ryoppippi Dec 8, 2025
13790fc
chore: add flake
ryoppippi Dec 8, 2025
ac29cfb
docs(readme): add Nix flake development environment section
ryoppippi Dec 8, 2025
9ac28c6
ci: add setup-nix composite action
ryoppippi Dec 8, 2025
fc9589f
ci(test): migrate to Nix-based workflow
ryoppippi Dec 8, 2025
710b2f0
ci(lint): migrate to Nix-based workflow
ryoppippi Dec 8, 2025
e64d29b
ci: add Nix flake validation workflow
ryoppippi Dec 8, 2025
7b46ee9
chore: remove obsolete skill and cursor rule files
ryoppippi Dec 8, 2025
64504e2
docs: replace bun references with pnpm
ryoppippi Dec 8, 2025
a2180c9
docs(examples): fix test commands to run from examples directory
ryoppippi Dec 8, 2025
b37e05d
chore(examples): remove bun from devEngines
ryoppippi Dec 8, 2025
b09ac63
chore: remove all remaining bun references
ryoppippi Dec 8, 2025
0be05a2
feat: add typecheck and test commands for examples submodule
ryoppippi Dec 8, 2025
3291925
feat: add --aggregate-output to test:all and typecheck:all
ryoppippi Dec 8, 2025
83016a4
feat: add -r and --no-bail flags to aggregate commands
ryoppippi Dec 8, 2025
ed66335
build(deps): migrate peerDependencies to catalog references
ryoppippi Dec 8, 2025
ea80d4b
chore(deps): remove Bun runtime entries from lockfile
ryoppippi Dec 8, 2025
f577789
fix(flake): simplify shell hook
ryoppippi Dec 8, 2025
174d9bf
refactor(examples): migrate from maxSteps to stopWhen API
ryoppippi Dec 8, 2025
d5381b8
test(examples): remove Vitest test infrastructure
ryoppippi Dec 8, 2025
3649ada
build(deps): remove msw and vitest from examples dependencies
ryoppippi Dec 8, 2025
b83d80c
chore: standardise YAML file extensions to .yaml
ryoppippi Dec 8, 2025
50b9bc9
chore: update gha
ryoppippi Dec 8, 2025
ea86f1c
refactor(ci): migrate dry-publish and release workflows to Nix
ryoppippi Dec 8, 2025
6d85b85
refactor(ci): replace pnpm/action-setup with Nix in release workflow
ryoppippi Dec 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions .claude/skills/development-workflow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,30 @@ This skill provides all commands and best practices for building, developing, an

## Building and Development

- `bun run build` - Build the project using tsdown
- `bun run rebuild` - Fetch latest OpenAPI specs and rebuild everything
- `bun run dev` - Watch mode for development (builds on file changes)
- `bun run fetch:specs` - Update OpenAPI specifications from remote
- `pnpm build` - Build the project using tsdown
- `pnpm rebuild` - Fetch latest OpenAPI specs and rebuild everything
- `pnpm dev` - Watch mode for development (builds on file changes)
- `pnpm fetch:specs` - Update OpenAPI specifications from remote

## Testing

- `bun run test` - Run all tests (unit, examples, scripts)
- `bun run test:unit` - Run only unit tests
- `bun test src/path/to/file.spec.ts` - Run a specific test file
- `bun test -t "test name"` - Run tests matching a pattern
- `pnpm test` - Run all tests (unit, examples, scripts)
- `pnpm test:unit` - Run only unit tests
- `pnpm vitest src/path/to/file.spec.ts` - Run a specific test file
- `pnpm vitest -t "test name"` - Run tests matching a pattern

## Code Quality

- `bun run lint` - Run Biome linter
- `bun run format` - Format code with Biome
- `bun run typecheck` - Type check with tsgo
- `bun run lint:fix` - Auto-fix linting issues
- `pnpm lint` - Run Biome linter
- `pnpm format` - Format code with Biome
- `pnpm typecheck` - Type check with tsgo
- `pnpm lint:fix` - Auto-fix linting issues

## Documentation

- `bun run docs:build` - Build MkDocs documentation
- `bun run docs:serve` - Serve docs locally
- `bun run docs:deploy` - Deploy docs to GitHub Pages
- `pnpm docs:build` - Build MkDocs documentation
- `pnpm docs:serve` - Serve docs locally
- `pnpm docs:deploy` - Deploy docs to GitHub Pages

## Development Guidelines

Expand All @@ -51,7 +51,7 @@ Keep commits tiny but meaningful:

### When to Rebuild

Always run `bun run rebuild` when:
Always run `pnpm rebuild` when:
- Updating OpenAPI specifications
- After pulling spec changes
- Before committing generated files
Expand All @@ -60,18 +60,18 @@ Always run `bun run rebuild` when:

1. Create feature branch: `git checkout -b feature-name`
2. Make changes to source files
3. Run type checking: `bun run typecheck`
4. Run linter: `bun run lint:fix`
5. Run tests: `bun run test`
6. Format code: `bun run format`
7. Rebuild if specs changed: `bun run rebuild`
3. Run type checking: `pnpm typecheck`
4. Run linter: `pnpm lint:fix`
5. Run tests: `pnpm test`
6. Format code: `pnpm format`
7. Rebuild if specs changed: `pnpm rebuild`
8. Commit with detailed messages
9. Push and create PR: `gh pr create`

## Troubleshooting

### Command Failures
If `bunx <command>` fails, try `bun x <command>` instead.
If `pnpm exec <command>` fails, try `pnpm dlx <command>` instead.

If bash commands fail, try running with fish shell:
```bash
Expand Down Expand Up @@ -133,10 +133,10 @@ Use the TypeScript exhaustiveness pattern (`satisfies never`) when branching on
## Publishing & Deployment

When ready to release:
1. Ensure all tests pass: `bun run test`
2. Verify type checking: `bun run typecheck`
3. Build documentation: `bun run docs:build`
1. Ensure all tests pass: `pnpm test`
2. Verify type checking: `pnpm typecheck`
3. Build documentation: `pnpm docs:build`
4. Bump version in package.json
5. Create release commit
6. Push to main or create release PR
7. Deploy docs: `bun run docs:deploy`
7. Deploy docs: `pnpm docs:deploy`
107 changes: 0 additions & 107 deletions .claude/skills/openapi-architecture/SKILL.md

This file was deleted.

31 changes: 10 additions & 21 deletions .claude/skills/typescript-testing/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
---
name: typescript-testing
description: Bun test runner and MSW-based testing patterns for StackOne SDK
description: Vitest test runner and MSW-based testing patterns for StackOne SDK
---

# TypeScript Testing with Bun and MSW
# TypeScript Testing with Vitest and MSW

This skill guides testing practices for the StackOne SDK using Bun's test runner and Mock Service Worker (MSW) for HTTP mocking.
This skill guides testing practices for the StackOne SDK using Vitest test runner and Mock Service Worker (MSW) for HTTP mocking.

## Testing Framework

The project uses **Bun's built-in test runner** with Jest-compatible API. Run tests with:
- `bun run test` - Run all tests (unit, examples, scripts)
- `bun run test:unit` - Run only unit tests
- `bun test src/path/to/file.spec.ts` - Run a specific test file
- `bun test -t "test name"` - Run tests matching a pattern
The project uses **Vitest** as the test runner. Run tests with:
- `pnpm test` - Run all tests (unit, examples, scripts)
- `pnpm test:unit` - Run only unit tests
- `pnpm vitest src/path/to/file.spec.ts` - Run a specific test file
- `pnpm vitest -t "test name"` - Run tests matching a pattern

## MSW (Mock Service Worker)

**MSW is the preferred HTTP mocking solution.** MSW is configured globally in `bun.test.setup.ts`, so no per-file setup is required.
**MSW is the preferred HTTP mocking solution.** MSW is configured globally in `vitest.setup.ts`, so no per-file setup is required.

### Adding Mock Handlers

Expand Down Expand Up @@ -89,23 +89,12 @@ import { createFixture } from 'fs-fixture';

it('should save file to disk', async () => {
await using fixture = await createFixture();

await fixture.writeFile('data.json', JSON.stringify({ test: 'data' }));
expect(await fixture.exists('data.json')).toBe(true);

const content = await fixture.readFile('data.json', 'utf8');
expect(JSON.parse(content)).toEqual({ test: 'data' });
});
```

Available methods:
- `fixture.path` - Absolute fixture directory path
- `fixture.exists(path)` - Check existence
- `fixture.readFile(path, encoding?)` - Read as string or Buffer
- `fixture.writeFile(path, content)` - Write file
- `fixture.readJson<T>(path)` - Parse JSON with type safety
- `fixture.writeJson(path, data, space?)` - Write formatted JSON
- `fixture.mkdir(path)` - Create nested directories
**Reference:** See `node_modules/fs-fixture/README.md` for full API and advanced usage

## Test Organization

Expand Down
89 changes: 0 additions & 89 deletions .cursor/rules/biome-standards.mdc

This file was deleted.

Loading
Loading