From ac6db3b52ec516c249da27ada3f20d3f3d786883 Mon Sep 17 00:00:00 2001 From: ezl-keygraph Date: Fri, 12 Jun 2026 02:03:26 +0530 Subject: [PATCH] feat(ai): upgrade to Opus 4.8 and Claude Agent SDK 0.3.163 (#353) --- .env.example | 8 +-- CLAUDE.md | 2 +- apps/cli/src/commands/setup.ts | 18 +++--- apps/worker/src/ai/message-handlers.ts | 27 ++++++++ apps/worker/src/ai/models.ts | 6 +- apps/worker/src/services/preflight.ts | 26 ++++++++ docs/ai-providers.md | 12 ++-- docs/configuration.md | 2 +- llms-full.txt | 14 ++-- pnpm-lock.yaml | 89 +++++++++++++------------- pnpm-workspace.yaml | 2 +- 11 files changed, 129 insertions(+), 77 deletions(-) diff --git a/.env.example b/.env.example index 82e80fa..7101d14 100644 --- a/.env.example +++ b/.env.example @@ -4,7 +4,7 @@ # Recommended output token configuration for larger tool outputs CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 -# Adaptive thinking is enabled automatically on Opus 4.6/4.7. Set to false to disable. +# Adaptive thinking is enabled automatically on Opus 4.6/4.7/4.8. Set to false to disable. # CLAUDE_ADAPTIVE_THINKING=false # Shannon forwards your machine's /etc/hosts entries into the worker container. Set to false to disable. @@ -32,7 +32,7 @@ ANTHROPIC_API_KEY=your-api-key-here # Optional for direct Anthropic and custom base URL modes. Required for Bedrock/Vertex. # ANTHROPIC_SMALL_MODEL=... # Small tier (default: claude-haiku-4-5-20251001) # ANTHROPIC_MEDIUM_MODEL=... # Medium tier (default: claude-sonnet-4-6) -# ANTHROPIC_LARGE_MODEL=... # Large tier (default: claude-opus-4-7) +# ANTHROPIC_LARGE_MODEL=... # Large tier (default: claude-opus-4-8) # ============================================================================= # OPTION 3: AWS Bedrock @@ -42,7 +42,7 @@ ANTHROPIC_API_KEY=your-api-key-here # Example Bedrock model IDs for us-east-1: # ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 # ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 -# ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-7 +# ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-8 # CLAUDE_CODE_USE_BEDROCK=1 # AWS_REGION=us-east-1 @@ -58,7 +58,7 @@ ANTHROPIC_API_KEY=your-api-key-here # Example Vertex AI model IDs: # ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 # ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -# ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +# ANTHROPIC_LARGE_MODEL=claude-opus-4-8 # CLAUDE_CODE_USE_VERTEX=1 # CLOUD_ML_REGION=us-east5 diff --git a/CLAUDE.md b/CLAUDE.md index e10dafd..3a3d793 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -147,7 +147,7 @@ Durable workflow orchestration with crash recovery, queryable progress, intellig ### Supporting Systems - **Configuration** — YAML configs in `apps/worker/configs/` with JSON Schema validation (`config-schema.json`). Supports auth settings (MFA/TOTP), URL/code rule scoping (`rules.avoid`/`rules.focus`), run-scope steering (`vuln_classes`, `exploit`), free-form `rules_of_engagement`, and post-hoc `report` filters (`min_severity`, `min_confidence`, `guidance`). `code_path` avoid rules are written into `~/.claude/settings.json` `permissions.deny` (`Read`/`Edit`) once per workflow by `apps/worker/src/temporal/activities.ts:syncCodePathDenyRules` so the SDK enforces them at the tool layer even in `bypassPermissions` mode. `vuln_classes`/`exploit` scope is locked into `session.json` on first run; resumes with a different scope fail fast (`persistOrValidateRunScope`). Credential resolution — local mode: env vars → `./.env`; npx mode: env vars → `~/.shannon/config.toml` (via `shn setup`) - **Prompts** — Per-phase templates in `apps/worker/prompts/` with variable substitution (`{{TARGET_URL}}`, `{{CONFIG_CONTEXT}}`). Shared partials in `apps/worker/prompts/shared/` via `apps/worker/src/services/prompt-manager.ts`, including `_code-path-rules.txt` (focus/avoid `[FILE]`/`[GLOB]` routing) and `_rules-of-engagement.txt` (free-text engagement rules). When `exploit: false`, `apps/worker/src/services/findings-renderer.ts` deterministically converts each `*_exploitation_queue.json` into a `*_findings.md` for report assembly — no LLM in the loop -- **SDK Integration** — Uses `@anthropic-ai/claude-agent-sdk` with `maxTurns: 10_000` and `bypassPermissions` mode. Adaptive thinking is enabled by default on Opus 4.6/4.7 (`supportsAdaptiveThinking` in `apps/worker/src/ai/models.ts`); disable per-scan via `CLAUDE_ADAPTIVE_THINKING=false` (env) or `core.adaptive_thinking = false` (npx TOML). Browser automation via `playwright-cli` with session isolation (`-s=`). TOTP generation via `generate-totp` CLI tool. Login flow template at `apps/worker/prompts/shared/login-instructions.txt` supports form, SSO, API, and basic auth. On authenticated whitebox scans, the `validate-authentication` preflight performs the single real login and saves the browser session to `auth-state.json` in the per-session audit directory (path from `authStateFile()` in `apps/worker/src/audit/utils.ts`, derived from `generateAuditPath()`). The validation activity (`apps/worker/src/services/validate-authentication.ts`) removes any stale file from a prior run before the agent runs and verifies the file parses and contains cookies or storage before the preflight is marked complete; `logWorkflowComplete` deletes it when the workflow ends so authenticated cookies don't sit on disk between scans. Agent prompts opt in to session reuse by `@include(shared/_shared-session.txt)` before their `` block — the partial restores the session and falls through to the full login flow if verification fails. `vuln-auth`/`exploit-auth` omit the include and own their own login +- **SDK Integration** — Uses `@anthropic-ai/claude-agent-sdk` with `maxTurns: 10_000` and `bypassPermissions` mode. Adaptive thinking is enabled by default on Opus 4.6/4.7/4.8 (`supportsAdaptiveThinking` in `apps/worker/src/ai/models.ts`); disable per-scan via `CLAUDE_ADAPTIVE_THINKING=false` (env) or `core.adaptive_thinking = false` (npx TOML). Browser automation via `playwright-cli` with session isolation (`-s=`). TOTP generation via `generate-totp` CLI tool. Login flow template at `apps/worker/prompts/shared/login-instructions.txt` supports form, SSO, API, and basic auth. On authenticated whitebox scans, the `validate-authentication` preflight performs the single real login and saves the browser session to `auth-state.json` in the per-session audit directory (path from `authStateFile()` in `apps/worker/src/audit/utils.ts`, derived from `generateAuditPath()`). The validation activity (`apps/worker/src/services/validate-authentication.ts`) removes any stale file from a prior run before the agent runs and verifies the file parses and contains cookies or storage before the preflight is marked complete; `logWorkflowComplete` deletes it when the workflow ends so authenticated cookies don't sit on disk between scans. Agent prompts opt in to session reuse by `@include(shared/_shared-session.txt)` before their `` block — the partial restores the session and falls through to the full login flow if verification fails. `vuln-auth`/`exploit-auth` omit the include and own their own login - **Audit System** — Crash-safe append-only logging in `workspaces/{hostname}_{sessionId}/`. Tracks session metrics, per-agent logs, prompts, and deliverables. WorkflowLogger (`apps/worker/src/audit/workflow-logger.ts`) provides unified human-readable per-workflow logs, backed by LogStream (`apps/worker/src/audit/log-stream.ts`) shared stream primitive - **Deliverables** — Saved to `deliverables/` in the target repo via the `save-deliverable` CLI script (`apps/worker/src/scripts/save-deliverable.ts`) - **Workspaces & Resume** — Named workspaces via `-w ` or auto-named from URL+timestamp. Resume detects completed agents via `session.json`. `loadResumeState()` in `apps/worker/src/temporal/activities.ts` validates deliverable existence, restores git checkpoints, and cleans up incomplete deliverables. Workspace listing via `apps/worker/src/temporal/workspaces.ts` diff --git a/apps/cli/src/commands/setup.ts b/apps/cli/src/commands/setup.ts index 6177f83..f0758ee 100644 --- a/apps/cli/src/commands/setup.ts +++ b/apps/cli/src/commands/setup.ts @@ -83,7 +83,7 @@ async function setupAnthropic(): Promise { 'Do you want to change the default models?\n' + ' Small - claude-haiku-4-5-20251001\n' + ' Medium - claude-sonnet-4-6\n' + - ' Large - claude-opus-4-7', + ' Large - claude-opus-4-8', initialValue: false, }); if (p.isCancel(customizeModels)) return cancelAndExit(); @@ -105,7 +105,7 @@ async function setupAnthropic(): Promise { const large = await p.text({ message: 'Large model ID', - initialValue: 'claude-opus-4-7', + initialValue: 'claude-opus-4-8', validate: required('Large model ID is required'), }); if (p.isCancel(large)) return cancelAndExit(); @@ -143,7 +143,7 @@ async function setupCustomBaseUrl(): Promise { 'Do you want to change the default models?\n' + ' Small - claude-haiku-4-5-20251001\n' + ' Medium - claude-sonnet-4-6\n' + - ' Large - claude-opus-4-7', + ' Large - claude-opus-4-8', initialValue: false, }); if (p.isCancel(customizeModels)) return cancelAndExit(); @@ -165,7 +165,7 @@ async function setupCustomBaseUrl(): Promise { const large = await p.text({ message: 'Large model ID', - initialValue: 'claude-opus-4-7', + initialValue: 'claude-opus-4-8', validate: required('Large model ID is required'), }); if (p.isCancel(large)) return cancelAndExit(); @@ -202,7 +202,7 @@ async function setupBedrock(): Promise { const large = await p.text({ message: 'Large model ID', - placeholder: 'us.anthropic.claude-opus-4-7', + placeholder: 'us.anthropic.claude-opus-4-8', validate: required('Large model ID is required'), }); if (p.isCancel(large)) return cancelAndExit(); @@ -265,7 +265,7 @@ async function setupVertex(): Promise { large: () => p.text({ message: 'Large model ID', - placeholder: 'claude-opus-4-7', + placeholder: 'claude-opus-4-8', validate: required('Large model ID is required'), }), }); @@ -286,11 +286,11 @@ async function setupVertex(): Promise { async function maybePromptAdaptiveThinking(config: ShannonConfig): Promise { const m = config.models; - const hasOpus47 = !m || [m.small, m.medium, m.large].some((v) => v && /opus-4-[67]/.test(v)); - if (!hasOpus47) return; + const hasAdaptiveModel = !m || [m.small, m.medium, m.large].some((v) => v && /opus-4-[678]/.test(v)); + if (!hasAdaptiveModel) return; const enable = await p.confirm({ - message: 'Enable adaptive thinking on Opus 4.6/4.7? Claude decides when and how deeply to reason.', + message: 'Enable adaptive thinking on Opus 4.6/4.7/4.8? Claude decides when and how deeply to reason.', initialValue: true, }); if (p.isCancel(enable)) return cancelAndExit(); diff --git a/apps/worker/src/ai/message-handlers.ts b/apps/worker/src/ai/message-handlers.ts index 128d3f0..1864915 100644 --- a/apps/worker/src/ai/message-handlers.ts +++ b/apps/worker/src/ai/message-handlers.ts @@ -164,6 +164,33 @@ function handleStructuredError(errorType: SDKAssistantMessageError, content: str true, // Retryable - may succeed with different content ), }; + case 'overloaded': + return { + detected: true, + shouldThrow: new PentestError( + `Anthropic API overloaded (structured): ${content.slice(0, 100)}`, + 'network', + true, // Retryable with backoff + ), + }; + case 'model_not_found': + return { + detected: true, + shouldThrow: new PentestError( + `Model not found: ${content.slice(0, 100)}`, + 'config', + false, // Not retryable - model ID is misconfigured + ), + }; + case 'oauth_org_not_allowed': + return { + detected: true, + shouldThrow: new PentestError( + `Organization not allowed for this credential: ${content.slice(0, 100)}`, + 'config', + false, // Not retryable - needs credential/org fix + ), + }; default: return { detected: true }; } diff --git a/apps/worker/src/ai/models.ts b/apps/worker/src/ai/models.ts index 901ff77..117b590 100644 --- a/apps/worker/src/ai/models.ts +++ b/apps/worker/src/ai/models.ts @@ -21,7 +21,7 @@ export type ModelTier = 'small' | 'medium' | 'large'; const DEFAULT_MODELS: Readonly> = { small: 'claude-haiku-4-5-20251001', medium: 'claude-sonnet-4-6', - large: 'claude-opus-4-7', + large: 'claude-opus-4-8', }; /** Resolve a model tier to a concrete model ID. */ @@ -36,7 +36,7 @@ export function resolveModel(tier: ModelTier = 'medium'): string { } } -/** Whether a model supports adaptive thinking. Opus 4.6 and 4.7 only. */ +/** Whether a model supports adaptive thinking. Opus 4.6, 4.7, and 4.8 only. */ export function supportsAdaptiveThinking(model: string): boolean { - return /opus-4-[67]/.test(model); + return /opus-4-[678]/.test(model); } diff --git a/apps/worker/src/services/preflight.ts b/apps/worker/src/services/preflight.ts index 1c0f2f5..29bc96b 100644 --- a/apps/worker/src/services/preflight.ts +++ b/apps/worker/src/services/preflight.ts @@ -280,6 +280,32 @@ function classifySdkError(sdkError: SDKAssistantMessageError, authType: string): sdkError, }), ); + case 'overloaded': + return err( + new PentestError(`Anthropic API is overloaded. Wait a few moments and try again.`, 'network', true, { + authType, + sdkError, + }), + ); + case 'model_not_found': + return err( + new PentestError( + `Configured model is not available for this account. Check ANTHROPIC_*_MODEL in .env.`, + 'config', + false, + { authType, sdkError }, + ), + ); + case 'oauth_org_not_allowed': + return err( + new PentestError( + `This credential's organization is not allowed. Check your ${authType} in .env.`, + 'config', + false, + { authType, sdkError }, + ErrorCode.AUTH_FAILED, + ), + ); default: return err( new PentestError( diff --git a/docs/ai-providers.md b/docs/ai-providers.md index 59ce48b..d94375e 100644 --- a/docs/ai-providers.md +++ b/docs/ai-providers.md @@ -35,7 +35,7 @@ export AWS_REGION=us-east-1 export AWS_BEARER_TOKEN_BEDROCK=your-bearer-token export ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 export ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 -export ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-7 +export ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-8 ``` Source-build `.env` equivalent: @@ -46,7 +46,7 @@ AWS_REGION=us-east-1 AWS_BEARER_TOKEN_BEDROCK=your-bearer-token ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 -ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-7 +ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-8 ``` Shannon Lite uses three model tiers: @@ -72,7 +72,7 @@ export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your-sa-key.json export ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 export ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -export ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +export ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` Source-build `.env` equivalent: @@ -84,7 +84,7 @@ ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id GOOGLE_APPLICATION_CREDENTIALS=./credentials/google-sa-key.json ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` Set `CLOUD_ML_REGION=global` for global endpoints, or use a specific region like `us-east5`. Some models may not be available on global endpoints. @@ -105,7 +105,7 @@ export ANTHROPIC_BASE_URL=https://your-proxy.example.com export ANTHROPIC_AUTH_TOKEN=your-auth-token export ANTHROPIC_SMALL_MODEL=claude-haiku-4-5-20251001 export ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -export ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +export ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` Source-build `.env` equivalent: @@ -115,5 +115,5 @@ ANTHROPIC_BASE_URL=https://your-proxy.example.com ANTHROPIC_AUTH_TOKEN=your-auth-token ANTHROPIC_SMALL_MODEL=claude-haiku-4-5-20251001 ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` diff --git a/docs/configuration.md b/docs/configuration.md index db119ff..8a42720 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -133,7 +133,7 @@ login_flow: ## Adaptive Thinking -Claude decides when and how deeply to reason on Opus 4.6 and 4.7. This is enabled by default whenever a tier resolves to one of these models. +Claude decides when and how deeply to reason on Opus 4.6, 4.7, and 4.8. This is enabled by default whenever a tier resolves to one of these models. - `npx` mode: `npx @keygraph/shannon setup` prompts you during the wizard. - Source-build mode: set `CLAUDE_ADAPTIVE_THINKING=false` in `.env` or export it in your shell. diff --git a/llms-full.txt b/llms-full.txt index 1c8ca2c..b689564 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -548,7 +548,7 @@ login_flow: ## Adaptive Thinking -Claude decides when and how deeply to reason on Opus 4.6 and 4.7. This is enabled by default whenever a tier resolves to one of these models. +Claude decides when and how deeply to reason on Opus 4.6, 4.7, and 4.8. This is enabled by default whenever a tier resolves to one of these models. - `npx` mode: `npx @keygraph/shannon setup` prompts you during the wizard. - Source-build mode: set `CLAUDE_ADAPTIVE_THINKING=false` in `.env` or export it in your shell. @@ -606,7 +606,7 @@ export AWS_REGION=us-east-1 export AWS_BEARER_TOKEN_BEDROCK=your-bearer-token export ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 export ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 -export ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-7 +export ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-8 ``` Source-build `.env` equivalent: @@ -617,7 +617,7 @@ AWS_REGION=us-east-1 AWS_BEARER_TOKEN_BEDROCK=your-bearer-token ANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0 ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6 -ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-7 +ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-8 ``` Shannon Lite uses three model tiers: @@ -643,7 +643,7 @@ export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your-sa-key.json export ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 export ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -export ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +export ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` Source-build `.env` equivalent: @@ -655,7 +655,7 @@ ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id GOOGLE_APPLICATION_CREDENTIALS=./credentials/google-sa-key.json ANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001 ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` Set `CLOUD_ML_REGION=global` for global endpoints, or use a specific region like `us-east5`. Some models may not be available on global endpoints. @@ -676,7 +676,7 @@ export ANTHROPIC_BASE_URL=https://your-proxy.example.com export ANTHROPIC_AUTH_TOKEN=your-auth-token export ANTHROPIC_SMALL_MODEL=claude-haiku-4-5-20251001 export ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -export ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +export ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` Source-build `.env` equivalent: @@ -686,7 +686,7 @@ ANTHROPIC_BASE_URL=https://your-proxy.example.com ANTHROPIC_AUTH_TOKEN=your-auth-token ANTHROPIC_SMALL_MODEL=claude-haiku-4-5-20251001 ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6 -ANTHROPIC_LARGE_MODEL=claude-opus-4-7 +ANTHROPIC_LARGE_MODEL=claude-opus-4-8 ``` --- diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 576b8fc..7b08ccd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: catalogs: default: '@anthropic-ai/claude-agent-sdk': - specifier: ^0.2.114 - version: 0.2.114 + specifier: ^0.3.163 + version: 0.3.163 importers: @@ -50,7 +50,7 @@ importers: dependencies: '@anthropic-ai/claude-agent-sdk': specifier: 'catalog:' - version: 0.2.114(zod@4.3.6) + version: 0.3.163(@anthropic-ai/sdk@0.93.0(zod@4.3.6))(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(zod@4.3.6) '@temporalio/activity': specifier: ^1.11.0 version: 1.15.0 @@ -88,58 +88,60 @@ importers: packages: - '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.2.114': - resolution: {integrity: sha512-0/6LWrNilWpmiX6Xrj5plsBmCrCdKGERgAlKUZQEJZplnfuweFAJu7WXZB4KBaUpGlPO91zB/yqDh6kp5aZFbA==} + '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.163': + resolution: {integrity: sha512-2veSQriv2OR1msX3C5ThYVwQUOLBzEXvdGzmkt9y47DTLHPqS6wy7MBWcNVHj7GDKrkPXnH7zz7DbKYM5yKXjg==} cpu: [arm64] os: [darwin] - '@anthropic-ai/claude-agent-sdk-darwin-x64@0.2.114': - resolution: {integrity: sha512-sOHxq1rEO/KZg2iEZILTPn62lMRRMPqtxKx41uGLi3xjVDrAej6Ury9dDZjYBKkK9n4kBylXV0Oom2CZ14dDYw==} + '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.163': + resolution: {integrity: sha512-0n/vjdW12RQuuvJsy6bettU57a7hi7GTGDZxaAWVKpRr+U9A51GPvmUvnTENqogZ3PqpKCYEDv2he4qkA5zCmw==} cpu: [x64] os: [darwin] - '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.2.114': - resolution: {integrity: sha512-Mhd7bumTwWvkgjSJnYvCgyt8DfmLiUoK92mfvAKxHX7i5YSw+h5Kprqh2Cap+2SBbpwZvnwIoEYGCxhGwE5ddg==} + '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.163': + resolution: {integrity: sha512-kY39TQiXvniq1902IV4H5VSTwkwav6OkXqcr0T7rN04qXzASMpJ9UYlNhwDICBhIxKwcMlz9rjmg9nCDdeBQjQ==} cpu: [arm64] os: [linux] libc: [musl] - '@anthropic-ai/claude-agent-sdk-linux-arm64@0.2.114': - resolution: {integrity: sha512-j/SfEoN6+fyEsp8EuPe+xKcGfsZtaBmdUUH+YSRk5H/lYgy38yNsDhdt+AJMQcdMKfHsiwZ3Y9Ajoe9G9wNwHQ==} + '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.163': + resolution: {integrity: sha512-bDwKqn8XT5f9JOcOLaGi0XY6Ndzh3dkCzsub67igXCVYf3i19ElsR9p0LF1vWeQWDnHyCVvCnSfQfmtD3MsHJw==} cpu: [arm64] os: [linux] libc: [glibc] - '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.2.114': - resolution: {integrity: sha512-c1URsameGHAcghen+mY6jvr2oypiAPHXJIdP4huxR25zPdXWv2x+BCy+vcRVeajsq4VmFzAyQJwaM+BXkmXjAw==} + '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.163': + resolution: {integrity: sha512-OmvQgIX3X5TZ8wXROOHi90iSmGoVNCREYSP5YR+7o8swR59TjBPhlbaCh22yFX5dc2brftCqwF9WklYMrhaDHQ==} cpu: [x64] os: [linux] libc: [musl] - '@anthropic-ai/claude-agent-sdk-linux-x64@0.2.114': - resolution: {integrity: sha512-wbaExKDleLlm2zHEhb74GKMLVhtO0IUmFhdimQcdL6CdTkmDE8ZJi53tYWE9+jq+XWNRXoM2yEmKPzXoUmsJng==} + '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.163': + resolution: {integrity: sha512-vYPKM5Nfm4yh3jFDqb17iwY7Y59unuZu9JSYEM45POT5idgZMSC5E9O9jqGIt9GF2Ug7sNRdFMEkUZgIXsZIBQ==} cpu: [x64] os: [linux] libc: [glibc] - '@anthropic-ai/claude-agent-sdk-win32-arm64@0.2.114': - resolution: {integrity: sha512-qeWdUpQymcKCA92osPmffG4QogrOSvuffPvm6c2OlMDjCPYs8vKG7bSe1Vq5tP9tfBszKPVJWBDh+2ANkNissQ==} + '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.163': + resolution: {integrity: sha512-yQFXwSfD1FQfcCVJoxmVNc9KJGtwzwwrQ5sR3xALmVq7N6yjXy6sU6xqowjx+S98Dgiz7fKBrWVZyKLWWxLyRQ==} cpu: [arm64] os: [win32] - '@anthropic-ai/claude-agent-sdk-win32-x64@0.2.114': - resolution: {integrity: sha512-nVr43WwsKvWA6rojw15qBS/f31srukdLxy1KwKzpftlpmkzQ9Lh8uhIafOmoIPzz67f8VJ8JqHE0caA5YrhX9A==} + '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.163': + resolution: {integrity: sha512-Fe/zfbh3PK5jDO/yoU5BtY6U2vfMN8GdcrvWggzfe20OAqQjdfbxo31SiD9Rg5gTItE28ns3mcP8toohPkmUwA==} cpu: [x64] os: [win32] - '@anthropic-ai/claude-agent-sdk@0.2.114': - resolution: {integrity: sha512-plJ+j17jew9tDMHir/90hXrwoB8cZ9GrIyG19zIJcFyQ8pVhRXjZRJCtF2ElfPoiwkxMmNu1Klqyui4xP4shPg==} + '@anthropic-ai/claude-agent-sdk@0.3.163': + resolution: {integrity: sha512-JGWfcrQhV5EZggvHb1tfet8JimJci7+4vOgKpQATUxKeE+5rVWH85w9IIND2/R/+qq90mDoMHGM2sYzJYvJXTg==} engines: {node: '>=18.0.0'} peerDependencies: + '@anthropic-ai/sdk': '>=0.93.0' + '@modelcontextprotocol/sdk': ^1.29.0 zod: ^4.0.0 - '@anthropic-ai/sdk@0.81.0': - resolution: {integrity: sha512-D4K5PvEV6wPiRtVlVsJHIUhHAmOZ6IT/I9rKlTf84gR7GyyAurPJK7z9BOf/AZqC5d1DhYQGJNKRmV+q8dGhgw==} + '@anthropic-ai/sdk@0.93.0': + resolution: {integrity: sha512-q9vaSZQVFx6B/gPxetGYfLXSJD5v0sOmh0OpZDq7yCrTSA+Rscvrtyol7JJTW40wEpQB4U1B4JXzxQitbQ3CAA==} hasBin: true peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -1668,49 +1670,46 @@ packages: snapshots: - '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.2.114': + '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-darwin-x64@0.2.114': + '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.2.114': + '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-linux-arm64@0.2.114': + '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.2.114': + '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-linux-x64@0.2.114': + '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-win32-arm64@0.2.114': + '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk-win32-x64@0.2.114': + '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.163': optional: true - '@anthropic-ai/claude-agent-sdk@0.2.114(zod@4.3.6)': + '@anthropic-ai/claude-agent-sdk@0.3.163(@anthropic-ai/sdk@0.93.0(zod@4.3.6))(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(zod@4.3.6)': dependencies: - '@anthropic-ai/sdk': 0.81.0(zod@4.3.6) + '@anthropic-ai/sdk': 0.93.0(zod@4.3.6) '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) zod: 4.3.6 optionalDependencies: - '@anthropic-ai/claude-agent-sdk-darwin-arm64': 0.2.114 - '@anthropic-ai/claude-agent-sdk-darwin-x64': 0.2.114 - '@anthropic-ai/claude-agent-sdk-linux-arm64': 0.2.114 - '@anthropic-ai/claude-agent-sdk-linux-arm64-musl': 0.2.114 - '@anthropic-ai/claude-agent-sdk-linux-x64': 0.2.114 - '@anthropic-ai/claude-agent-sdk-linux-x64-musl': 0.2.114 - '@anthropic-ai/claude-agent-sdk-win32-arm64': 0.2.114 - '@anthropic-ai/claude-agent-sdk-win32-x64': 0.2.114 - transitivePeerDependencies: - - '@cfworker/json-schema' - - supports-color + '@anthropic-ai/claude-agent-sdk-darwin-arm64': 0.3.163 + '@anthropic-ai/claude-agent-sdk-darwin-x64': 0.3.163 + '@anthropic-ai/claude-agent-sdk-linux-arm64': 0.3.163 + '@anthropic-ai/claude-agent-sdk-linux-arm64-musl': 0.3.163 + '@anthropic-ai/claude-agent-sdk-linux-x64': 0.3.163 + '@anthropic-ai/claude-agent-sdk-linux-x64-musl': 0.3.163 + '@anthropic-ai/claude-agent-sdk-win32-arm64': 0.3.163 + '@anthropic-ai/claude-agent-sdk-win32-x64': 0.3.163 - '@anthropic-ai/sdk@0.81.0(zod@4.3.6)': + '@anthropic-ai/sdk@0.93.0(zod@4.3.6)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9b5db1f..d402b67 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,4 +2,4 @@ packages: - "apps/*" catalog: - "@anthropic-ai/claude-agent-sdk": ^0.2.114 + "@anthropic-ai/claude-agent-sdk": ^0.3.163