Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 16 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,13 @@ jobs:
convex:
- 'packages/convex/**'
toolsets:
- 'packages/daytona-claude-toolsets/**'
- 'packages/claude-toolsets/python/**'
# npm (TypeScript) package — distinct from the `toolsets` filter above,
# which routes the PyPI/Python packages/daytona-claude-toolsets.
# which routes the PyPI/Python packages/claude-toolsets/python. The two
# live side by side under packages/claude-toolsets/, so both filters are
# scoped to their own language subfolder and never overlap.
claude_toolsets:
- 'packages/claude-toolsets/**'
- 'packages/claude-toolsets/typescript/**'

adk:
needs: changes
Expand Down Expand Up @@ -266,27 +268,27 @@ jobs:
- name: Detect package
id: guard
run: |
test -f packages/daytona-claude-toolsets/pyproject.toml && echo "ready=true" >> "$GITHUB_OUTPUT" || echo "ready=false" >> "$GITHUB_OUTPUT"
test -f packages/claude-toolsets/python/pyproject.toml && echo "ready=true" >> "$GITHUB_OUTPUT" || echo "ready=false" >> "$GITHUB_OUTPUT"
- name: Install
if: steps.guard.outputs.ready == 'true'
working-directory: packages/daytona-claude-toolsets
working-directory: packages/claude-toolsets/python
run: python -m pip install -e ".[dev]"
- name: Lint (ruff)
if: steps.guard.outputs.ready == 'true'
working-directory: packages/daytona-claude-toolsets
working-directory: packages/claude-toolsets/python
run: ruff check .
- name: Type check (mypy)
if: steps.guard.outputs.ready == 'true'
working-directory: packages/daytona-claude-toolsets
working-directory: packages/claude-toolsets/python
run: mypy daytona_claude_toolsets
- name: Unit tests (offline, Daytona and Playwright mocked)
if: steps.guard.outputs.ready == 'true'
working-directory: packages/daytona-claude-toolsets
working-directory: packages/claude-toolsets/python
run: pytest
# NOTE: live checks (examples/exercise_*.py, real Daytona sandboxes) are not in per-PR CI.

# npm (TypeScript) toolsets — distinct from the `toolsets` job above, which
# covers the PyPI/Python packages/daytona-claude-toolsets.
# covers the PyPI/Python packages/claude-toolsets/python.
claude-toolsets:
needs: changes
if: needs.changes.outputs.claude_toolsets == 'true'
Expand All @@ -303,25 +305,25 @@ jobs:
- name: Detect package
id: guard
run: |
test -f packages/claude-toolsets/package.json && echo "ready=true" >> "$GITHUB_OUTPUT" || echo "ready=false" >> "$GITHUB_OUTPUT"
test -f packages/claude-toolsets/typescript/package.json && echo "ready=true" >> "$GITHUB_OUTPUT" || echo "ready=false" >> "$GITHUB_OUTPUT"
- name: Install
if: steps.guard.outputs.ready == 'true'
working-directory: packages/claude-toolsets
working-directory: packages/claude-toolsets/typescript
# --ignore-scripts: nothing here needs a dependency's install script. tsc and vitest run
# from the lockfile alone — esbuild's platform binary arrives as the @esbuild/linux-x64
# optional dependency, not from its postinstall.
run: npm ci --ignore-scripts
- name: Typecheck
if: steps.guard.outputs.ready == 'true'
working-directory: packages/claude-toolsets
working-directory: packages/claude-toolsets/typescript
run: npm run typecheck
- name: Build
if: steps.guard.outputs.ready == 'true'
working-directory: packages/claude-toolsets
working-directory: packages/claude-toolsets/typescript
run: npm run build
- name: Unit tests (offline, Daytona and Playwright mocked)
if: steps.guard.outputs.ready == 'true'
working-directory: packages/claude-toolsets
working-directory: packages/claude-toolsets/typescript
run: npm test
# NOTE: live checks (examples/, real Daytona sandboxes) are not in per-PR CI.

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ jobs:
opencode_tag: ${{ steps.release.outputs['packages/opencode-plugin--tag_name'] }}
pydantic_ai_released: ${{ steps.release.outputs['packages/pydantic-ai-daytona--release_created'] }}
pydantic_ai_tag: ${{ steps.release.outputs['packages/pydantic-ai-daytona--tag_name'] }}
daytona_claude_toolsets_released: ${{ steps.release.outputs['packages/daytona-claude-toolsets--release_created'] }}
daytona_claude_toolsets_tag: ${{ steps.release.outputs['packages/daytona-claude-toolsets--tag_name'] }}
daytona_claude_toolsets_released: ${{ steps.release.outputs['packages/claude-toolsets/python--release_created'] }}
daytona_claude_toolsets_tag: ${{ steps.release.outputs['packages/claude-toolsets/python--tag_name'] }}
convex_released: ${{ steps.release.outputs['packages/convex--release_created'] }}
convex_tag: ${{ steps.release.outputs['packages/convex--tag_name'] }}
claude_toolsets_released: ${{ steps.release.outputs['packages/claude-toolsets--release_created'] }}
claude_toolsets_tag: ${{ steps.release.outputs['packages/claude-toolsets--tag_name'] }}
claude_toolsets_released: ${{ steps.release.outputs['packages/claude-toolsets/typescript--release_created'] }}
claude_toolsets_tag: ${{ steps.release.outputs['packages/claude-toolsets/typescript--tag_name'] }}
steps:
- uses: googleapis/release-please-action@v4
id: release
Expand Down Expand Up @@ -134,14 +134,14 @@ jobs:
with:
python-version: "3.x"
- name: Build sdist + wheel
working-directory: packages/daytona-claude-toolsets
working-directory: packages/claude-toolsets/python
run: |
python -m pip install --upgrade build
python -m build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: packages/daytona-claude-toolsets/dist
packages-dir: packages/claude-toolsets/python/dist

# ---- PyPI: langchain-daytona-data-analysis (Poetry) ---------------------
publish-langchain:
Expand Down Expand Up @@ -309,7 +309,7 @@ jobs:
# `npm run build` compiles src/ to the ESM-only dist/ that the package's
# exports map points at — nothing else ships.
- name: Install, build, publish
working-directory: packages/claude-toolsets
working-directory: packages/claude-toolsets/typescript
run: |
# --ignore-scripts: this job holds `id-token: write`, and the build is just tsc, so no
# dependency's install script (protobufjs' postinstall, via @daytona/sdk) needs to run.
Expand Down
4 changes: 2 additions & 2 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
"packages/opencode-plugin": "0.193.0",
"packages/pydantic-ai-daytona": "0.1.0",
"packages/convex": "2.0.0",
"packages/claude-toolsets": "1.0.0",
"packages/daytona-claude-toolsets": "0.1.0"
"packages/claude-toolsets/typescript": "1.0.0",
"packages/claude-toolsets/python": "0.1.0"
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ Packages published to **a package registry** live in [`packages/`](packages/):
| [`pi-extension`](packages/pi-extension) — Pi coding-agent extension | npm · [`@daytona/pi`](https://www.npmjs.com/package/@daytona/pi) |
| [`opencode-plugin`](packages/opencode-plugin) — OpenCode plugin | npm · [`@daytona/opencode`](https://www.npmjs.com/package/@daytona/opencode) |
| [`pydantic-ai-daytona`](packages/pydantic-ai-daytona) — Pydantic AI sandbox capability | PyPI · [`pydantic-ai-daytona`](https://pypi.org/project/pydantic-ai-daytona/) |
| [`daytona-claude-toolsets`](packages/daytona-claude-toolsets) — Anthropic computer and browser toolset drivers | PyPI · [`daytona-claude-toolsets`](https://pypi.org/project/daytona-claude-toolsets/) |
| [`claude-toolsets`](packages/claude-toolsets) — Anthropic computer and browser toolset drivers (TypeScript) | npm · [`@daytona/claude-toolsets`](https://www.npmjs.com/package/@daytona/claude-toolsets) |
| [`claude-toolsets/python`](packages/claude-toolsets/python) — Anthropic computer and browser toolset drivers | PyPI · [`daytona-claude-toolsets`](https://pypi.org/project/daytona-claude-toolsets/) |
| [`claude-toolsets/typescript`](packages/claude-toolsets/typescript) — Anthropic computer and browser toolset drivers (TypeScript) | npm · [`@daytona/claude-toolsets`](https://www.npmjs.com/package/@daytona/claude-toolsets) |

## Apps

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ dev = [
]

[project.urls]
Homepage = "https://github.com/daytona/integrations/tree/main/packages/daytona-claude-toolsets#readme"
Homepage = "https://github.com/daytona/integrations/tree/main/packages/claude-toolsets/python#readme"
Repository = "https://github.com/daytona/integrations"
Documentation = "https://github.com/daytona/integrations/tree/main/packages/daytona-claude-toolsets#readme"
Documentation = "https://github.com/daytona/integrations/tree/main/packages/claude-toolsets/python#readme"
Issues = "https://github.com/daytona/integrations/issues"

[tool.setuptools]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
"repository": {
"type": "git",
"url": "git+https://github.com/daytona/integrations.git",
"directory": "packages/claude-toolsets"
"directory": "packages/claude-toolsets/typescript"
},
"author": "Daytona Platforms Inc.",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/daytona/integrations/issues"
},
"homepage": "https://github.com/daytona/integrations/tree/main/packages/claude-toolsets#readme",
"homepage": "https://github.com/daytona/integrations/tree/main/packages/claude-toolsets/typescript#readme",
"keywords": [
"daytona",
"sandbox",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export const readPythonXtestScript = (): string => {
const helperDirectory = dirname(fileURLToPath(import.meta.url));
const pythonPath = resolve(
helperDirectory,
"../../../daytona-claude-toolsets/daytona_claude_toolsets/_xtest.py",
"../../../python/daytona_claude_toolsets/_xtest.py",
);
return extractPythonXtestScript(readFileSync(pythonPath, "utf8"));
};
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ function sha256(value: string): string {

function pythonToolkit(): string {
const source = readFileSync(
new URL("../../daytona-claude-toolsets/daytona_claude_toolsets/_page_js.py", import.meta.url),
new URL("../../python/daytona_claude_toolsets/_page_js.py", import.meta.url),
"utf8",
);
const marker = 'TOOLKIT = r"""';
Expand Down
4 changes: 2 additions & 2 deletions release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@
"package-name": "@daytona/convex",
"component": "convex"
},
"packages/claude-toolsets": {
"packages/claude-toolsets/typescript": {
"release-type": "node",
"package-name": "@daytona/claude-toolsets",
"component": "claude-toolsets"
},
"packages/daytona-claude-toolsets": {
"packages/claude-toolsets/python": {
"release-type": "python",
"package-name": "daytona-claude-toolsets",
"component": "daytona-claude-toolsets"
Expand Down
Loading