From 8615a57068fc424b55bad671fae51d72fec8f9f2 Mon Sep 17 00:00:00 2001 From: Eloi Date: Mon, 22 Jun 2026 17:33:17 +0200 Subject: [PATCH] Run SDK evolution update across packages --- .../20260622T153124Z/api_diffs.json | 51 ++ .../api_snapshots/01-claude-agent-sdk.json | 849 +++++++++++++++++ .../api_snapshots/02-claude-agent-sdk.json | 867 ++++++++++++++++++ .../api_snapshots/03-openai-codex.json | 261 ++++++ .../04-openai-codex-cli-bin.json | 8 + .../api_snapshots/05-google-antigravity.json | 123 +++ .../api_snapshots/06-google-antigravity.json | 201 ++++ .../architecture_decision.json | 33 + .../20260622T153124Z/behavior_diffs.json | 22 + .../20260622T153124Z/behavior_probes.json | 307 +++++++ .../20260622T153124Z/config.json | 22 + .../20260622T153124Z/current_state.json | 150 +++ .../20260622T153124Z/direction_analysis.json | 35 + .../20260622T153124Z/events.jsonl | 39 + .../20260622T153124Z/evidence.json | 198 ++++ .../implementation_summary.json | 142 +++ .../20260622T153124Z/release_notes.json | 150 +++ .../20260622T153124Z/report.md | 286 ++++++ .../20260622T153124Z/review.json | 9 + uv.lock | 26 +- 20 files changed, 3766 insertions(+), 13 deletions(-) create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/config.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/current_state.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/report.md create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/review.json diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json new file mode 100644 index 0000000..ad1ded1 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json @@ -0,0 +1,51 @@ +[ + { + "added": [ + "TERMINAL_TASK_STATUSES", + "TaskUpdatedMessage", + "TaskUpdatedStatus" + ], + "changed": [], + "from_version": "0.2.96", + "package": "claude-agent-sdk", + "removed": [], + "to_version": "0.2.106" + }, + { + "added": [ + "Audio", + "BuiltinTools", + "Content", + "CustomSystemInstructions", + "Document", + "GeminiAPIEndpoint", + "GeminiModelOptions", + "Image", + "ModelEndpoint", + "ModelTarget", + "ModelType", + "SystemInstructionSection", + "SystemInstructions", + "TemplatedSystemInstructions", + "VertexEndpoint", + "Video", + "from_file", + "models" + ], + "changed": [ + "CapabilitiesConfig", + "LocalAgentConfig", + "ToolContext" + ], + "from_version": "0.1.2", + "package": "google-antigravity", + "removed": [ + "GeminiConfig", + "GenerationConfig", + "ModelConfig", + "ModelEntry", + "mcp" + ], + "to_version": "0.1.4" + } +] diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json new file mode 100644 index 0000000..5157347 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json @@ -0,0 +1,849 @@ +{ + "import_error": null, + "members": [ + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "AgentDefinition", + "signature": "(description: str, prompt: str, tools: list[str] | None = None, disallowedTools: list[str] | None = None, model: str | None = None, skills: list[str] | None = None, memory: Optional[Literal['user', 'project', 'local']] = None, mcpServers: list[str | dict[str, typing.Any]] | None = None, initialPrompt: str | None = None, maxTurns: int | None = None, background: bool | None = None, effort: Union[Literal['low', 'medium', 'high', 'xhigh', 'max'], int, NoneType] = None, permissionMode: Optional[Literal['default', 'acceptEdits', 'plan', 'bypassPermissions', 'dontAsk', 'auto']] = None) -> None" + }, + { + "kind": "class", + "module": "typing", + "name": "Annotated", + "signature": "(*args, **kwargs)" + }, + { + "kind": "_SpecialForm", + "module": "typing", + "name": "Any", + "signature": "(*args, **kwds)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "AssistantMessage", + "signature": "(content: list[claude_agent_sdk.types.TextBlock | claude_agent_sdk.types.ThinkingBlock | claude_agent_sdk.types.ToolUseBlock | claude_agent_sdk.types.ToolResultBlock | claude_agent_sdk.types.ServerToolUseBlock | claude_agent_sdk.types.ServerToolResultBlock], model: str, parent_tool_use_id: str | None = None, error: Optional[Literal['authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'unknown']] = None, usage: dict[str, typing.Any] | None = None, message_id: str | None = None, stop_reason: str | None = None, session_id: str | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "Awaitable", + "signature": "()" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "BaseHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "CLIConnectionError", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "CLIJSONDecodeError", + "signature": "(line: str, original_error: Exception)" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "CLINotFoundError", + "signature": "(message: str = 'Claude Code not found', cli_path: str | None = None)" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "Callable", + "signature": "()" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "CanUseTool", + "signature": "()" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ClaudeAgentOptions", + "signature": "(tools: list[str] | claude_agent_sdk.types.ToolsPreset | None = None, allowed_tools: list[str] = , system_prompt: str | claude_agent_sdk.types.SystemPromptPreset | claude_agent_sdk.types.SystemPromptFile | None = None, mcp_servers: dict[str, claude_agent_sdk.types.McpStdioServerConfig | claude_agent_sdk.types.McpSSEServerConfig | claude_agent_sdk.types.McpHttpServerConfig | claude_agent_sdk.types.McpSdkServerConfig] | str | pathlib.Path = , strict_mcp_config: bool = False, permission_mode: Optional[Literal['default', 'acceptEdits', 'plan', 'bypassPermissions', 'dontAsk', 'auto']] = None, continue_conversation: bool = False, resume: str | None = None, session_id: str | None = None, max_turns: int | None = None, max_budget_usd: float | None = None, disallowed_tools: list[str] = , model: str | None = None, fallback_model: str | None = None, betas: list[typing.Literal['context-1m-2025-08-07']] = , permission_prompt_tool_name: str | None = None, cwd: str | pathlib.Path | None = None, cli_path: str | pathlib.Path | None = None, settings: str | None = None, add_dirs: list[str | pathlib.Path] = , env: dict[str, str] = , extra_args: dict[str, str | None] = , max_buffer_size: int | None = None, debug_stderr: Any = <_io.TextIOWrapper name='' mode='w' encoding='utf-8'>, stderr: collections.abc.Callable[[str], None] | None = None, can_use_tool: collections.abc.Callable[[str, dict[str, typing.Any], claude_agent_sdk.types.ToolPermissionContext], collections.abc.Awaitable[claude_agent_sdk.types.PermissionResultAllow | claude_agent_sdk.types.PermissionResultDeny]] | None = None, hooks: dict[typing.Union[typing.Literal['PreToolUse'], typing.Literal['PostToolUse'], typing.Literal['PostToolUseFailure'], typing.Literal['UserPromptSubmit'], typing.Literal['Stop'], typing.Literal['SubagentStop'], typing.Literal['PreCompact'], typing.Literal['Notification'], typing.Literal['SubagentStart'], typing.Literal['PermissionRequest']], list[claude_agent_sdk.types.HookMatcher]] | None = None, user: str | None = None, include_partial_messages: bool = False, include_hook_events: bool = False, fork_session: bool = False, agents: dict[str, claude_agent_sdk.types.AgentDefinition] | None = None, setting_sources: list[typing.Literal['user', 'project', 'local']] | None = None, skills: Union[list[str], Literal['all'], NoneType] = None, sandbox: claude_agent_sdk.types.SandboxSettings | None = None, plugins: list[claude_agent_sdk.types.SdkPluginConfig] = , max_thinking_tokens: int | None = None, thinking: claude_agent_sdk.types.ThinkingConfigAdaptive | claude_agent_sdk.types.ThinkingConfigEnabled | claude_agent_sdk.types.ThinkingConfigDisabled | None = None, effort: Optional[Literal['low', 'medium', 'high', 'xhigh', 'max']] = None, output_format: dict[str, typing.Any] | None = None, enable_file_checkpointing: bool = False, session_store: claude_agent_sdk.types.SessionStore | None = None, session_store_flush: Literal['batched', 'eager'] = 'batched', load_timeout_ms: int = 60000, task_budget: claude_agent_sdk.types.TaskBudget | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.client", + "name": "ClaudeSDKClient", + "signature": "(options: claude_agent_sdk.types.ClaudeAgentOptions | None = None, transport: claude_agent_sdk._internal.transport.Transport | None = None)" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "ClaudeSDKError", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "ContentBlock", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ContextUsageCategory", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ContextUsageResponse", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "DeferredToolUse", + "signature": "(id: str, name: str, input: dict[str, typing.Any]) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "EffortLevel", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "ForkSessionResult", + "signature": "(session_id: 'str') -> None" + }, + { + "kind": "class", + "module": "typing", + "name": "Generic", + "signature": "()" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "HookCallback", + "signature": "()" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "HookContext", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "HookEventMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], hook_event_name: str = '', session_id: str | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "HookInput", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "HookJSONOutput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "HookMatcher", + "signature": "(matcher: str | None = None, hooks: list[collections.abc.Callable[[claude_agent_sdk.types.PreToolUseHookInput | claude_agent_sdk.types.PostToolUseHookInput | claude_agent_sdk.types.PostToolUseFailureHookInput | claude_agent_sdk.types.UserPromptSubmitHookInput | claude_agent_sdk.types.StopHookInput | claude_agent_sdk.types.SubagentStopHookInput | claude_agent_sdk.types.PreCompactHookInput | claude_agent_sdk.types.NotificationHookInput | claude_agent_sdk.types.SubagentStartHookInput | claude_agent_sdk.types.PermissionRequestHookInput, str | None, claude_agent_sdk.types.HookContext], collections.abc.Awaitable[claude_agent_sdk.types.AsyncHookJSONOutput | claude_agent_sdk.types.SyncHookJSONOutput]]] = , timeout: float | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk._internal.session_store", + "name": "InMemorySessionStore", + "signature": "() -> 'None'" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpSdkServerConfig", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "McpServerConfig", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "McpServerConnectionStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpServerInfo", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpServerStatus", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "McpServerStatusConfig", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpStatusResponse", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpToolAnnotations", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpToolInfo", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "Message", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "MirrorErrorMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], key: 'SessionKey | None' = None, error: str = '') -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "NotificationHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "NotificationHookSpecificOutput", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "PermissionMode", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionRequestHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionRequestHookSpecificOutput", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "PermissionResult", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionResultAllow", + "signature": "(behavior: Literal['allow'] = 'allow', updated_input: dict[str, typing.Any] | None = None, updated_permissions: list[claude_agent_sdk.types.PermissionUpdate] | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionResultDeny", + "signature": "(behavior: Literal['deny'] = 'deny', message: str = '', interrupt: bool = False) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionUpdate", + "signature": "(type: Literal['addRules', 'replaceRules', 'removeRules', 'setMode', 'addDirectories', 'removeDirectories'], rules: list[claude_agent_sdk.types.PermissionRuleValue] | None = None, behavior: Optional[Literal['allow', 'deny', 'ask']] = None, mode: Optional[Literal['default', 'acceptEdits', 'plan', 'bypassPermissions', 'dontAsk', 'auto']] = None, directories: list[str] | None = None, destination: Optional[Literal['userSettings', 'projectSettings', 'localSettings', 'session']] = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PostToolUseFailureHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PostToolUseFailureHookSpecificOutput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PostToolUseHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PreCompactHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PreToolUseHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "ProcessError", + "signature": "(message: str, exit_code: int | None = None, stderr: str | None = None)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "RateLimitEvent", + "signature": "(rate_limit_info: claude_agent_sdk.types.RateLimitInfo, uuid: str, session_id: str) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "RateLimitInfo", + "signature": "(status: Literal['allowed', 'allowed_warning', 'rejected'], resets_at: int | None = None, rate_limit_type: Optional[Literal['five_hour', 'seven_day', 'seven_day_opus', 'seven_day_sonnet', 'overage']] = None, utilization: float | None = None, overage_status: Optional[Literal['allowed', 'allowed_warning', 'rejected']] = None, overage_resets_at: int | None = None, overage_disabled_reason: str | None = None, raw: dict[str, typing.Any] = ) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "RateLimitStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "RateLimitType", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ResultMessage", + "signature": "(subtype: str, duration_ms: int, duration_api_ms: int, is_error: bool, num_turns: int, session_id: str, stop_reason: str | None = None, total_cost_usd: float | None = None, usage: dict[str, typing.Any] | None = None, result: str | None = None, structured_output: Any = None, model_usage: dict[str, typing.Any] | None = None, permission_denials: list[typing.Any] | None = None, deferred_tool_use: claude_agent_sdk.types.DeferredToolUse | None = None, errors: list[str] | None = None, api_error_status: int | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SDKSessionInfo", + "signature": "(session_id: str, summary: str, last_modified: int, file_size: int | None = None, custom_title: str | None = None, first_prompt: str | None = None, git_branch: str | None = None, cwd: str | None = None, tag: str | None = None, created_at: int | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SandboxIgnoreViolations", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SandboxNetworkConfig", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SandboxSettings", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "SdkBeta", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk", + "name": "SdkMcpTool", + "signature": "(name: str, description: str, input_schema: type[~T] | dict[str, typing.Any], handler: collections.abc.Callable[[~T], collections.abc.Awaitable[dict[str, typing.Any]]], annotations: mcp.types.ToolAnnotations | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SdkPluginConfig", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "ServerToolName", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ServerToolResultBlock", + "signature": "(tool_use_id: str, content: dict[str, typing.Any]) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ServerToolUseBlock", + "signature": "(id: str, name: Literal['advisor', 'web_search', 'web_fetch', 'code_execution', 'bash_code_execution', 'text_editor_code_execution', 'tool_search_tool_regex', 'tool_search_tool_bm25'], input: dict[str, typing.Any]) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionKey", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionListSubkeysKey", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionMessage", + "signature": "(type: Literal['user', 'assistant'], uuid: str, session_id: str, message: Any, parent_tool_use_id: None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionStore", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionStoreEntry", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "SessionStoreFlushMode", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionStoreListEntry", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionSummaryEntry", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "SettingSource", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "StopHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "StreamEvent", + "signature": "(uuid: str, session_id: str, event: dict[str, typing.Any], parent_tool_use_id: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SubagentStartHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SubagentStartHookSpecificOutput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SubagentStopHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SystemMessage", + "signature": "(subtype: str, data: dict[str, typing.Any]) -> None" + }, + { + "kind": "TypeVar", + "module": "claude_agent_sdk", + "name": "T", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskBudget", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskNotificationMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, status: Literal['completed', 'failed', 'stopped'], output_file: str, summary: str, uuid: str, session_id: str, tool_use_id: str | None = None, usage: claude_agent_sdk.types.TaskUsage | None = None) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "TaskNotificationStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskProgressMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, description: str, usage: claude_agent_sdk.types.TaskUsage, uuid: str, session_id: str, tool_use_id: str | None = None, last_tool_name: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskStartedMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, description: str, uuid: str, session_id: str, tool_use_id: str | None = None, task_type: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskUsage", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TextBlock", + "signature": "(text: str) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingBlock", + "signature": "(thinking: str, signature: str) -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "ThinkingConfig", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingConfigAdaptive", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingConfigDisabled", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingConfigEnabled", + "signature": "" + }, + { + "kind": "class", + "module": "mcp.types", + "name": "ToolAnnotations", + "signature": "(*, title: str | None = None, readOnlyHint: bool | None = None, destructiveHint: bool | None = None, idempotentHint: bool | None = None, openWorldHint: bool | None = None, **extra_data: Any) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ToolPermissionContext", + "signature": "(signal: Optional[Any] = None, suggestions: list[claude_agent_sdk.types.PermissionUpdate] = , tool_use_id: str | None = None, agent_id: str | None = None, blocked_path: str | None = None, decision_reason: str | None = None, title: str | None = None, display_name: str | None = None, description: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ToolResultBlock", + "signature": "(tool_use_id: str, content: str | list[dict[str, typing.Any]] | None = None, is_error: bool | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ToolUseBlock", + "signature": "(id: str, name: str, input: dict[str, typing.Any]) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk._internal.transport", + "name": "Transport", + "signature": "()" + }, + { + "kind": "class", + "module": "typing", + "name": "TypeVar", + "signature": "(name, *constraints, bound=None, covariant=False, contravariant=False)" + }, + { + "kind": "_SpecialForm", + "module": "typing", + "name": "Union", + "signature": "(*args, **kwds)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "UserMessage", + "signature": "(content: str | list[claude_agent_sdk.types.TextBlock | claude_agent_sdk.types.ThinkingBlock | claude_agent_sdk.types.ToolUseBlock | claude_agent_sdk.types.ToolResultBlock | claude_agent_sdk.types.ServerToolUseBlock | claude_agent_sdk.types.ServerToolResultBlock], uuid: str | None = None, parent_tool_use_id: str | None = None, tool_use_result: dict[str, typing.Any] | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "UserPromptSubmitHookInput", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "builtin_types", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "client", + "signature": "" + }, + { + "kind": "function", + "module": "claude_agent_sdk", + "name": "create_sdk_mcp_server", + "signature": "(name: str, version: str = '1.0.0', tools: list[claude_agent_sdk.SdkMcpTool[typing.Any]] | None = None) -> claude_agent_sdk.types.McpSdkServerConfig" + }, + { + "kind": "function", + "module": "dataclasses", + "name": "dataclass", + "signature": "(cls=None, /, *, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False)" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "delete_session", + "signature": "(session_id: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "delete_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_summary", + "name": "fold_session_summary", + "signature": "(prev: 'SessionSummaryEntry | None', key: 'SessionKey', entries: 'list[SessionStoreEntry]') -> 'SessionSummaryEntry'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "fork_session", + "signature": "(session_id: 'str', directory: 'str | None' = None, up_to_message_id: 'str | None' = None, title: 'str | None' = None) -> 'ForkSessionResult'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "fork_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None, up_to_message_id: 'str | None' = None, title: 'str | None' = None) -> 'ForkSessionResult'" + }, + { + "kind": "function", + "module": "typing", + "name": "get_args", + "signature": "(tp)" + }, + { + "kind": "function", + "module": "typing", + "name": "get_origin", + "signature": "(tp)" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_info", + "signature": "(session_id: 'str', directory: 'str | None' = None) -> 'SDKSessionInfo | None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_info_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None) -> 'SDKSessionInfo | None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_messages", + "signature": "(session_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_messages_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_subagent_messages", + "signature": "(session_id: 'str', agent_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_subagent_messages_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', agent_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_import", + "name": "import_session_to_store", + "signature": "(session_id: 'str', store: 'SessionStore', *, directory: 'str | None' = None, include_subagents: 'bool' = True, batch_size: 'int' = 500) -> 'None'" + }, + { + "kind": "function", + "module": "typing_extensions", + "name": "is_typeddict", + "signature": "(tp)" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_sessions", + "signature": "(directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0, include_worktrees: 'bool' = True) -> 'list[SDKSessionInfo]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_sessions_from_store", + "signature": "(session_store: 'SessionStore', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SDKSessionInfo]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_subagents", + "signature": "(session_id: 'str', directory: 'str | None' = None) -> 'list[str]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_subagents_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None) -> 'list[str]'" + }, + { + "kind": "Logger", + "module": "logging", + "name": "logger", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "logging", + "signature": "" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "project_key_for_directory", + "signature": "(directory: 'str | Path | None' = None) -> 'str'" + }, + { + "kind": "function", + "module": "claude_agent_sdk.query", + "name": "query", + "signature": "(*, prompt: str | collections.abc.AsyncIterable[dict[str, typing.Any]], options: claude_agent_sdk.types.ClaudeAgentOptions | None = None, transport: claude_agent_sdk._internal.transport.Transport | None = None) -> collections.abc.AsyncIterator[claude_agent_sdk.types.UserMessage | claude_agent_sdk.types.AssistantMessage | claude_agent_sdk.types.SystemMessage | claude_agent_sdk.types.ResultMessage | claude_agent_sdk.types.StreamEvent | claude_agent_sdk.types.RateLimitEvent]" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "rename_session", + "signature": "(session_id: 'str', title: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "rename_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', title: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "module", + "module": "", + "name": "sys", + "signature": "" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "tag_session", + "signature": "(session_id: 'str', tag: 'str | None', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "tag_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', tag: 'str | None', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk", + "name": "tool", + "signature": "(name: str, description: str, input_schema: type | dict[str, typing.Any], annotations: mcp.types.ToolAnnotations | None = None) -> collections.abc.Callable[[collections.abc.Callable[[typing.Any], collections.abc.Awaitable[dict[str, typing.Any]]]], claude_agent_sdk.SdkMcpTool[typing.Any]]" + }, + { + "kind": "module", + "module": "", + "name": "types", + "signature": "" + } + ], + "module": "claude_agent_sdk", + "package": "claude-agent-sdk", + "source": "isolated-venv", + "version": "0.2.96" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json new file mode 100644 index 0000000..d968256 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json @@ -0,0 +1,867 @@ +{ + "import_error": null, + "members": [ + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "AgentDefinition", + "signature": "(description: str, prompt: str, tools: list[str] | None = None, disallowedTools: list[str] | None = None, model: str | None = None, skills: list[str] | None = None, memory: Optional[Literal['user', 'project', 'local']] = None, mcpServers: list[str | dict[str, typing.Any]] | None = None, initialPrompt: str | None = None, maxTurns: int | None = None, background: bool | None = None, effort: Union[Literal['low', 'medium', 'high', 'xhigh', 'max'], int, NoneType] = None, permissionMode: Optional[Literal['default', 'acceptEdits', 'plan', 'bypassPermissions', 'dontAsk', 'auto']] = None) -> None" + }, + { + "kind": "class", + "module": "typing", + "name": "Annotated", + "signature": "(*args, **kwargs)" + }, + { + "kind": "_SpecialForm", + "module": "typing", + "name": "Any", + "signature": "(*args, **kwds)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "AssistantMessage", + "signature": "(content: list[claude_agent_sdk.types.TextBlock | claude_agent_sdk.types.ThinkingBlock | claude_agent_sdk.types.ToolUseBlock | claude_agent_sdk.types.ToolResultBlock | claude_agent_sdk.types.ServerToolUseBlock | claude_agent_sdk.types.ServerToolResultBlock], model: str, parent_tool_use_id: str | None = None, error: Optional[Literal['authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'unknown']] = None, usage: dict[str, typing.Any] | None = None, message_id: str | None = None, stop_reason: str | None = None, session_id: str | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "Awaitable", + "signature": "()" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "BaseHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "CLIConnectionError", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "CLIJSONDecodeError", + "signature": "(line: str, original_error: Exception)" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "CLINotFoundError", + "signature": "(message: str = 'Claude Code not found', cli_path: str | None = None)" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "Callable", + "signature": "()" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "CanUseTool", + "signature": "()" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ClaudeAgentOptions", + "signature": "(tools: list[str] | claude_agent_sdk.types.ToolsPreset | None = None, allowed_tools: list[str] = , system_prompt: str | claude_agent_sdk.types.SystemPromptPreset | claude_agent_sdk.types.SystemPromptFile | None = None, mcp_servers: dict[str, claude_agent_sdk.types.McpStdioServerConfig | claude_agent_sdk.types.McpSSEServerConfig | claude_agent_sdk.types.McpHttpServerConfig | claude_agent_sdk.types.McpSdkServerConfig] | str | pathlib.Path = , strict_mcp_config: bool = False, permission_mode: Optional[Literal['default', 'acceptEdits', 'plan', 'bypassPermissions', 'dontAsk', 'auto']] = None, continue_conversation: bool = False, resume: str | None = None, session_id: str | None = None, max_turns: int | None = None, max_budget_usd: float | None = None, disallowed_tools: list[str] = , model: str | None = None, fallback_model: str | None = None, betas: list[typing.Literal['context-1m-2025-08-07']] = , permission_prompt_tool_name: str | None = None, cwd: str | pathlib.Path | None = None, cli_path: str | pathlib.Path | None = None, settings: str | None = None, add_dirs: list[str | pathlib.Path] = , env: dict[str, str] = , extra_args: dict[str, str | None] = , max_buffer_size: int | None = None, debug_stderr: Any = <_io.TextIOWrapper name='' mode='w' encoding='utf-8'>, stderr: collections.abc.Callable[[str], None] | None = None, can_use_tool: collections.abc.Callable[[str, dict[str, typing.Any], claude_agent_sdk.types.ToolPermissionContext], collections.abc.Awaitable[claude_agent_sdk.types.PermissionResultAllow | claude_agent_sdk.types.PermissionResultDeny]] | None = None, hooks: dict[typing.Union[typing.Literal['PreToolUse'], typing.Literal['PostToolUse'], typing.Literal['PostToolUseFailure'], typing.Literal['UserPromptSubmit'], typing.Literal['Stop'], typing.Literal['SubagentStop'], typing.Literal['PreCompact'], typing.Literal['Notification'], typing.Literal['SubagentStart'], typing.Literal['PermissionRequest']], list[claude_agent_sdk.types.HookMatcher]] | None = None, user: str | None = None, include_partial_messages: bool = False, include_hook_events: bool = False, fork_session: bool = False, agents: dict[str, claude_agent_sdk.types.AgentDefinition] | None = None, setting_sources: list[typing.Literal['user', 'project', 'local']] | None = None, skills: Union[list[str], Literal['all'], NoneType] = None, sandbox: claude_agent_sdk.types.SandboxSettings | None = None, plugins: list[claude_agent_sdk.types.SdkPluginConfig] = , max_thinking_tokens: int | None = None, thinking: claude_agent_sdk.types.ThinkingConfigAdaptive | claude_agent_sdk.types.ThinkingConfigEnabled | claude_agent_sdk.types.ThinkingConfigDisabled | None = None, effort: Optional[Literal['low', 'medium', 'high', 'xhigh', 'max']] = None, output_format: dict[str, typing.Any] | None = None, enable_file_checkpointing: bool = False, session_store: claude_agent_sdk.types.SessionStore | None = None, session_store_flush: Literal['batched', 'eager'] = 'batched', load_timeout_ms: int = 60000, task_budget: claude_agent_sdk.types.TaskBudget | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.client", + "name": "ClaudeSDKClient", + "signature": "(options: claude_agent_sdk.types.ClaudeAgentOptions | None = None, transport: claude_agent_sdk._internal.transport.Transport | None = None)" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "ClaudeSDKError", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "ContentBlock", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ContextUsageCategory", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ContextUsageResponse", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "DeferredToolUse", + "signature": "(id: str, name: str, input: dict[str, typing.Any]) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "EffortLevel", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "ForkSessionResult", + "signature": "(session_id: 'str') -> None" + }, + { + "kind": "class", + "module": "typing", + "name": "Generic", + "signature": "()" + }, + { + "kind": "class", + "module": "collections.abc", + "name": "HookCallback", + "signature": "()" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "HookContext", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "HookEventMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], hook_event_name: str = '', session_id: str | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "HookInput", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "HookJSONOutput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "HookMatcher", + "signature": "(matcher: str | None = None, hooks: list[collections.abc.Callable[[claude_agent_sdk.types.PreToolUseHookInput | claude_agent_sdk.types.PostToolUseHookInput | claude_agent_sdk.types.PostToolUseFailureHookInput | claude_agent_sdk.types.UserPromptSubmitHookInput | claude_agent_sdk.types.StopHookInput | claude_agent_sdk.types.SubagentStopHookInput | claude_agent_sdk.types.PreCompactHookInput | claude_agent_sdk.types.NotificationHookInput | claude_agent_sdk.types.SubagentStartHookInput | claude_agent_sdk.types.PermissionRequestHookInput, str | None, claude_agent_sdk.types.HookContext], collections.abc.Awaitable[claude_agent_sdk.types.AsyncHookJSONOutput | claude_agent_sdk.types.SyncHookJSONOutput]]] = , timeout: float | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk._internal.session_store", + "name": "InMemorySessionStore", + "signature": "() -> 'None'" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpSdkServerConfig", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "McpServerConfig", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "McpServerConnectionStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpServerInfo", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpServerStatus", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "McpServerStatusConfig", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpStatusResponse", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpToolAnnotations", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "McpToolInfo", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "Message", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "MirrorErrorMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], key: 'SessionKey | None' = None, error: str = '') -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "NotificationHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "NotificationHookSpecificOutput", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "PermissionMode", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionRequestHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionRequestHookSpecificOutput", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "PermissionResult", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionResultAllow", + "signature": "(behavior: Literal['allow'] = 'allow', updated_input: dict[str, typing.Any] | None = None, updated_permissions: list[claude_agent_sdk.types.PermissionUpdate] | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionResultDeny", + "signature": "(behavior: Literal['deny'] = 'deny', message: str = '', interrupt: bool = False) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PermissionUpdate", + "signature": "(type: Literal['addRules', 'replaceRules', 'removeRules', 'setMode', 'addDirectories', 'removeDirectories'], rules: list[claude_agent_sdk.types.PermissionRuleValue] | None = None, behavior: Optional[Literal['allow', 'deny', 'ask']] = None, mode: Optional[Literal['default', 'acceptEdits', 'plan', 'bypassPermissions', 'dontAsk', 'auto']] = None, directories: list[str] | None = None, destination: Optional[Literal['userSettings', 'projectSettings', 'localSettings', 'session']] = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PostToolUseFailureHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PostToolUseFailureHookSpecificOutput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PostToolUseHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PreCompactHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "PreToolUseHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk._errors", + "name": "ProcessError", + "signature": "(message: str, exit_code: int | None = None, stderr: str | None = None)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "RateLimitEvent", + "signature": "(rate_limit_info: claude_agent_sdk.types.RateLimitInfo, uuid: str, session_id: str) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "RateLimitInfo", + "signature": "(status: Literal['allowed', 'allowed_warning', 'rejected'], resets_at: int | None = None, rate_limit_type: Optional[Literal['five_hour', 'seven_day', 'seven_day_opus', 'seven_day_sonnet', 'overage']] = None, utilization: float | None = None, overage_status: Optional[Literal['allowed', 'allowed_warning', 'rejected']] = None, overage_resets_at: int | None = None, overage_disabled_reason: str | None = None, raw: dict[str, typing.Any] = ) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "RateLimitStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "RateLimitType", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ResultMessage", + "signature": "(subtype: str, duration_ms: int, duration_api_ms: int, is_error: bool, num_turns: int, session_id: str, stop_reason: str | None = None, total_cost_usd: float | None = None, usage: dict[str, typing.Any] | None = None, result: str | None = None, structured_output: Any = None, model_usage: dict[str, typing.Any] | None = None, permission_denials: list[typing.Any] | None = None, deferred_tool_use: claude_agent_sdk.types.DeferredToolUse | None = None, errors: list[str] | None = None, api_error_status: int | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SDKSessionInfo", + "signature": "(session_id: str, summary: str, last_modified: int, file_size: int | None = None, custom_title: str | None = None, first_prompt: str | None = None, git_branch: str | None = None, cwd: str | None = None, tag: str | None = None, created_at: int | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SandboxIgnoreViolations", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SandboxNetworkConfig", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SandboxSettings", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "SdkBeta", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk", + "name": "SdkMcpTool", + "signature": "(name: str, description: str, input_schema: type[~T] | dict[str, typing.Any], handler: collections.abc.Callable[[~T], collections.abc.Awaitable[dict[str, typing.Any]]], annotations: mcp.types.ToolAnnotations | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SdkPluginConfig", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "ServerToolName", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ServerToolResultBlock", + "signature": "(tool_use_id: str, content: dict[str, typing.Any]) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ServerToolUseBlock", + "signature": "(id: str, name: Literal['advisor', 'web_search', 'web_fetch', 'code_execution', 'bash_code_execution', 'text_editor_code_execution', 'tool_search_tool_regex', 'tool_search_tool_bm25'], input: dict[str, typing.Any]) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionKey", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionListSubkeysKey", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionMessage", + "signature": "(type: Literal['user', 'assistant'], uuid: str, session_id: str, message: Any, parent_tool_use_id: None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionStore", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionStoreEntry", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "SessionStoreFlushMode", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionStoreListEntry", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SessionSummaryEntry", + "signature": "" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "SettingSource", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "StopHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "StreamEvent", + "signature": "(uuid: str, session_id: str, event: dict[str, typing.Any], parent_tool_use_id: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SubagentStartHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SubagentStartHookSpecificOutput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SubagentStopHookInput", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "SystemMessage", + "signature": "(subtype: str, data: dict[str, typing.Any]) -> None" + }, + { + "kind": "TypeVar", + "module": "claude_agent_sdk", + "name": "T", + "signature": "" + }, + { + "kind": "frozenset", + "module": "", + "name": "TERMINAL_TASK_STATUSES", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskBudget", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskNotificationMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, status: Literal['completed', 'failed', 'stopped'], output_file: str, summary: str, uuid: str, session_id: str, tool_use_id: str | None = None, usage: claude_agent_sdk.types.TaskUsage | None = None) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "TaskNotificationStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskProgressMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, description: str, usage: claude_agent_sdk.types.TaskUsage, uuid: str, session_id: str, tool_use_id: str | None = None, last_tool_name: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskStartedMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, description: str, uuid: str, session_id: str, tool_use_id: str | None = None, task_type: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskUpdatedMessage", + "signature": "(subtype: str, data: dict[str, typing.Any], task_id: str, patch: dict[str, typing.Any], status: Optional[Literal['pending', 'running', 'paused', 'completed', 'failed', 'killed']] = None, session_id: str | None = None, uuid: str | None = None) -> None" + }, + { + "kind": "_LiteralGenericAlias", + "module": "typing", + "name": "TaskUpdatedStatus", + "signature": "(*args, **kwargs)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TaskUsage", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "TextBlock", + "signature": "(text: str) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingBlock", + "signature": "(thinking: str, signature: str) -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "ThinkingConfig", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingConfigAdaptive", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingConfigDisabled", + "signature": "" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ThinkingConfigEnabled", + "signature": "" + }, + { + "kind": "class", + "module": "mcp.types", + "name": "ToolAnnotations", + "signature": "(*, title: str | None = None, readOnlyHint: bool | None = None, destructiveHint: bool | None = None, idempotentHint: bool | None = None, openWorldHint: bool | None = None, **extra_data: Any) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ToolPermissionContext", + "signature": "(signal: Optional[Any] = None, suggestions: list[claude_agent_sdk.types.PermissionUpdate] = , tool_use_id: str | None = None, agent_id: str | None = None, blocked_path: str | None = None, decision_reason: str | None = None, title: str | None = None, display_name: str | None = None, description: str | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ToolResultBlock", + "signature": "(tool_use_id: str, content: str | list[dict[str, typing.Any]] | None = None, is_error: bool | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "ToolUseBlock", + "signature": "(id: str, name: str, input: dict[str, typing.Any]) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk._internal.transport", + "name": "Transport", + "signature": "()" + }, + { + "kind": "class", + "module": "typing", + "name": "TypeVar", + "signature": "(name, *constraints, bound=None, covariant=False, contravariant=False)" + }, + { + "kind": "_SpecialForm", + "module": "typing", + "name": "Union", + "signature": "(*args, **kwds)" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "UserMessage", + "signature": "(content: str | list[claude_agent_sdk.types.TextBlock | claude_agent_sdk.types.ThinkingBlock | claude_agent_sdk.types.ToolUseBlock | claude_agent_sdk.types.ToolResultBlock | claude_agent_sdk.types.ServerToolUseBlock | claude_agent_sdk.types.ServerToolResultBlock], uuid: str | None = None, parent_tool_use_id: str | None = None, tool_use_result: dict[str, typing.Any] | None = None) -> None" + }, + { + "kind": "class", + "module": "claude_agent_sdk.types", + "name": "UserPromptSubmitHookInput", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "builtin_types", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "client", + "signature": "" + }, + { + "kind": "function", + "module": "claude_agent_sdk", + "name": "create_sdk_mcp_server", + "signature": "(name: str, version: str = '1.0.0', tools: list[claude_agent_sdk.SdkMcpTool[typing.Any]] | None = None) -> claude_agent_sdk.types.McpSdkServerConfig" + }, + { + "kind": "function", + "module": "dataclasses", + "name": "dataclass", + "signature": "(cls=None, /, *, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False)" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "delete_session", + "signature": "(session_id: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "delete_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_summary", + "name": "fold_session_summary", + "signature": "(prev: 'SessionSummaryEntry | None', key: 'SessionKey', entries: 'list[SessionStoreEntry]') -> 'SessionSummaryEntry'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "fork_session", + "signature": "(session_id: 'str', directory: 'str | None' = None, up_to_message_id: 'str | None' = None, title: 'str | None' = None) -> 'ForkSessionResult'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "fork_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None, up_to_message_id: 'str | None' = None, title: 'str | None' = None) -> 'ForkSessionResult'" + }, + { + "kind": "function", + "module": "typing", + "name": "get_args", + "signature": "(tp)" + }, + { + "kind": "function", + "module": "typing", + "name": "get_origin", + "signature": "(tp)" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_info", + "signature": "(session_id: 'str', directory: 'str | None' = None) -> 'SDKSessionInfo | None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_info_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None) -> 'SDKSessionInfo | None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_messages", + "signature": "(session_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_session_messages_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_subagent_messages", + "signature": "(session_id: 'str', agent_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "get_subagent_messages_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', agent_id: 'str', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SessionMessage]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_import", + "name": "import_session_to_store", + "signature": "(session_id: 'str', store: 'SessionStore', *, directory: 'str | None' = None, include_subagents: 'bool' = True, batch_size: 'int' = 500) -> 'None'" + }, + { + "kind": "function", + "module": "typing_extensions", + "name": "is_typeddict", + "signature": "(tp)" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_sessions", + "signature": "(directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0, include_worktrees: 'bool' = True) -> 'list[SDKSessionInfo]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_sessions_from_store", + "signature": "(session_store: 'SessionStore', directory: 'str | None' = None, limit: 'int | None' = None, offset: 'int' = 0) -> 'list[SDKSessionInfo]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_subagents", + "signature": "(session_id: 'str', directory: 'str | None' = None) -> 'list[str]'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "list_subagents_from_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', directory: 'str | None' = None) -> 'list[str]'" + }, + { + "kind": "Logger", + "module": "logging", + "name": "logger", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "logging", + "signature": "" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.sessions", + "name": "project_key_for_directory", + "signature": "(directory: 'str | Path | None' = None) -> 'str'" + }, + { + "kind": "function", + "module": "claude_agent_sdk.query", + "name": "query", + "signature": "(*, prompt: str | collections.abc.AsyncIterable[dict[str, typing.Any]], options: claude_agent_sdk.types.ClaudeAgentOptions | None = None, transport: claude_agent_sdk._internal.transport.Transport | None = None) -> collections.abc.AsyncIterator[claude_agent_sdk.types.UserMessage | claude_agent_sdk.types.AssistantMessage | claude_agent_sdk.types.SystemMessage | claude_agent_sdk.types.ResultMessage | claude_agent_sdk.types.StreamEvent | claude_agent_sdk.types.RateLimitEvent]" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "rename_session", + "signature": "(session_id: 'str', title: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "rename_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', title: 'str', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "module", + "module": "", + "name": "sys", + "signature": "" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "tag_session", + "signature": "(session_id: 'str', tag: 'str | None', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk._internal.session_mutations", + "name": "tag_session_via_store", + "signature": "(session_store: 'SessionStore', session_id: 'str', tag: 'str | None', directory: 'str | None' = None) -> 'None'" + }, + { + "kind": "function", + "module": "claude_agent_sdk", + "name": "tool", + "signature": "(name: str, description: str, input_schema: type | dict[str, typing.Any], annotations: mcp.types.ToolAnnotations | None = None) -> collections.abc.Callable[[collections.abc.Callable[[typing.Any], collections.abc.Awaitable[dict[str, typing.Any]]]], claude_agent_sdk.SdkMcpTool[typing.Any]]" + }, + { + "kind": "module", + "module": "", + "name": "types", + "signature": "" + } + ], + "module": "claude_agent_sdk", + "package": "claude-agent-sdk", + "source": "isolated-venv", + "version": "0.2.106" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json new file mode 100644 index 0000000..03ee3ba --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json @@ -0,0 +1,261 @@ +{ + "import_error": null, + "members": [ + { + "kind": "class", + "module": "openai_codex._approval_mode", + "name": "ApprovalMode", + "signature": "(value, names=None, *, module=None, qualname=None, type=None, start=1)" + }, + { + "kind": "class", + "module": "openai_codex._login", + "name": "AsyncChatgptLoginHandle", + "signature": "(_codex: '_AsyncLoginOwner', login_id: 'str', auth_url: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.api", + "name": "AsyncCodex", + "signature": "(config: 'CodexConfig | None' = None) -> 'None'" + }, + { + "kind": "class", + "module": "openai_codex._login", + "name": "AsyncDeviceCodeLoginHandle", + "signature": "(_codex: '_AsyncLoginOwner', login_id: 'str', verification_url: 'str', user_code: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.api", + "name": "AsyncThread", + "signature": "(_codex: 'AsyncCodex', id: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.api", + "name": "AsyncTurnHandle", + "signature": "(_codex: 'AsyncCodex', thread_id: 'str', id: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex._login", + "name": "ChatgptLoginHandle", + "signature": "(_client: 'CodexClient', login_id: 'str', auth_url: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.api", + "name": "Codex", + "signature": "(config: 'CodexConfig | None' = None) -> 'None'" + }, + { + "kind": "class", + "module": "openai_codex.client", + "name": "CodexConfig", + "signature": "(codex_bin: str | None = None, launch_args_override: tuple[str, ...] | None = None, config_overrides: tuple[str, ...] = (), cwd: str | None = None, env: dict[str, str] | None = None, client_name: str = 'codex_python_sdk', client_title: str = 'Codex Python SDK', client_version: str = '0.1.0b3', experimental_api: bool = True) -> None" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "CodexError", + "signature": "" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "CodexRpcError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex._login", + "name": "DeviceCodeLoginHandle", + "signature": "(_client: 'CodexClient', login_id: 'str', verification_url: 'str', user_code: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex._inputs", + "name": "ImageInput", + "signature": "(url: 'str') -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "Input", + "signature": "" + }, + { + "kind": "UnionType", + "module": "types", + "name": "InputItem", + "signature": "" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "InternalRpcError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "InvalidParamsError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "InvalidRequestError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "JsonRpcError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex._inputs", + "name": "LocalImageInput", + "signature": "(path: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex._inputs", + "name": "MentionInput", + "signature": "(name: 'str', path: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "MethodNotFoundError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "ParseError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "RetryLimitExceededError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "UnionType", + "module": "types", + "name": "RunInput", + "signature": "" + }, + { + "kind": "class", + "module": "openai_codex._sandbox", + "name": "Sandbox", + "signature": "(value, names=None, *, module=None, qualname=None, type=None, start=1)" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "ServerBusyError", + "signature": "(code: 'int', message: 'str', data: 'Any' = None)" + }, + { + "kind": "class", + "module": "openai_codex._inputs", + "name": "SkillInput", + "signature": "(name: 'str', path: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex._inputs", + "name": "TextInput", + "signature": "(text: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.api", + "name": "Thread", + "signature": "(_client: 'CodexClient', id: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex.errors", + "name": "TransportClosedError", + "signature": "" + }, + { + "kind": "class", + "module": "openai_codex.api", + "name": "TurnHandle", + "signature": "(_client: 'CodexClient', thread_id: 'str', id: 'str') -> None" + }, + { + "kind": "class", + "module": "openai_codex._run", + "name": "TurnResult", + "signature": "(id: 'str', status: 'TurnStatus', error: 'TurnError | None', started_at: 'int | None', completed_at: 'int | None', duration_ms: 'int | None', final_response: 'str | None', items: 'list[ThreadItem]', usage: 'ThreadTokenUsage | None') -> None" + }, + { + "kind": "module", + "module": "", + "name": "api", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "async_client", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "client", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "errors", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "generated", + "signature": "" + }, + { + "kind": "function", + "module": "openai_codex.errors", + "name": "is_retryable_error", + "signature": "(exc: 'BaseException') -> 'bool'" + }, + { + "kind": "module", + "module": "", + "name": "models", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "retry", + "signature": "" + }, + { + "kind": "function", + "module": "openai_codex.retry", + "name": "retry_on_overload", + "signature": "(op: 'Callable[[], T]', *, max_attempts: 'int' = 3, initial_delay_s: 'float' = 0.25, max_delay_s: 'float' = 2.0, jitter_ratio: 'float' = 0.2) -> 'T'" + } + ], + "module": "openai_codex", + "package": "openai-codex", + "source": "current-environment", + "version": "0.1.0b3" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json new file mode 100644 index 0000000..ac394f2 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json @@ -0,0 +1,8 @@ +{ + "import_error": "No module named 'openai_codex_cli_bin'", + "members": [], + "module": "openai_codex_cli_bin", + "package": "openai-codex-cli-bin", + "source": "current-environment", + "version": "0.137.0a4" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json new file mode 100644 index 0000000..14a2a12 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json @@ -0,0 +1,123 @@ +{ + "import_error": null, + "members": [ + { + "kind": "class", + "module": "google.antigravity.agent", + "name": "Agent", + "signature": "(config: google.antigravity.connections.connection.AgentConfig)" + }, + { + "kind": "class", + "module": "google.antigravity.connections.connection", + "name": "AgentConfig", + "signature": "(*, system_instructions: str | google.antigravity.types.CustomSystemInstructions | google.antigravity.types.TemplatedSystemInstructions | None = None, capabilities: google.antigravity.types.CapabilitiesConfig = , tools: list[typing.Callable[..., typing.Any]] = , policies: list[typing.Any] = , hooks: list[typing.Any] = , triggers: list[typing.Any] = , mcp_servers: list[google.antigravity.types.McpStdioServer | google.antigravity.types.McpStreamableHttpServer] = , workspaces: list[str] = , conversation_id: str | None = None, save_dir: str | None = None, app_data_dir: str | None = None, response_schema: dict[str, typing.Any] | type[pydantic.main.BaseModel] | str | None = None, skills_paths: list[str] = ) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "CapabilitiesConfig", + "signature": "(*, enable_subagents: bool = True, enabled_tools: list[google.antigravity.types.BuiltinTools] | None = None, disabled_tools: list[google.antigravity.types.BuiltinTools] | None = None, compaction_threshold: int | None = None, image_model: str = 'gemini-3.1-flash-image-preview', finish_tool_schema_json: str | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "GeminiConfig", + "signature": "(*, api_key: str | None = None, vertex: bool = False, project: str | None = None, location: str | None = None, models: google.antigravity.types.ModelConfig = ) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "GenerationConfig", + "signature": "(*, thinking_level: google.antigravity.types.ThinkingLevel | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.connections.local.local_connection_config", + "name": "LocalAgentConfig", + "signature": "(*, system_instructions: str | google.antigravity.types.CustomSystemInstructions | google.antigravity.types.TemplatedSystemInstructions | None = None, capabilities: google.antigravity.types.CapabilitiesConfig | None = None, tools: list[typing.Callable[..., typing.Any]] | None = None, policies: list[typing.Any] | None = None, hooks: list[typing.Any] | None = None, triggers: list[typing.Any] | None = None, mcp_servers: list[google.antigravity.types.McpStdioServer | google.antigravity.types.McpStreamableHttpServer] | None = None, workspaces: list[str] | None = None, conversation_id: str | None = None, save_dir: str | None = None, app_data_dir: str | None = None, response_schema: dict[str, typing.Any] | type[pydantic.main.BaseModel] | str | None = None, skills_paths: list[str] | None = None, gemini_config: google.antigravity.types.GeminiConfig | None = None, model: str | None = None, api_key: str | None = None, vertex: bool | None = None, project: str | None = None, location: str | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "ModelConfig", + "signature": "(*, default: typing.Annotated[google.antigravity.types.ModelEntry, BeforeValidator(func=, json_schema_input_type=PydanticUndefined)] = , image_generation: typing.Annotated[google.antigravity.types.ModelEntry, BeforeValidator(func=, json_schema_input_type=PydanticUndefined)] = ) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "ModelEntry", + "signature": "(*, name: str, api_key: str | None = None, generation: google.antigravity.types.GenerationConfig = ) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "ThinkingLevel", + "signature": "(value, names=None, *, module=None, qualname=None, type=None, start=1)" + }, + { + "kind": "class", + "module": "google.antigravity.tools.tool_context", + "name": "ToolContext", + "signature": "(conn: google.antigravity.connections.connection.Connection) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "UsageMetadata", + "signature": "(*, prompt_token_count: int | None = None, cached_content_token_count: int | None = None, candidates_token_count: int | None = None, thoughts_token_count: int | None = None, total_token_count: int | None = None) -> None" + }, + { + "kind": "module", + "module": "", + "name": "agent", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "connections", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "conversation", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "hooks", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "mcp", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "tools", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "triggers", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "types", + "signature": "" + } + ], + "module": "google.antigravity", + "package": "google-antigravity", + "source": "isolated-venv", + "version": "0.1.2" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json new file mode 100644 index 0000000..130a7ec --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json @@ -0,0 +1,201 @@ +{ + "import_error": null, + "members": [ + { + "kind": "class", + "module": "google.antigravity.agent", + "name": "Agent", + "signature": "(config: google.antigravity.connections.connection.AgentConfig)" + }, + { + "kind": "class", + "module": "google.antigravity.connections.connection", + "name": "AgentConfig", + "signature": "(*, system_instructions: str | google.antigravity.types.CustomSystemInstructions | google.antigravity.types.TemplatedSystemInstructions | None = None, capabilities: google.antigravity.types.CapabilitiesConfig = , tools: list[typing.Callable[..., typing.Any]] = , policies: list[typing.Any] = , hooks: list[typing.Any] = , triggers: list[typing.Any] = , mcp_servers: list[google.antigravity.types.McpStdioServer | google.antigravity.types.McpStreamableHttpServer] = , workspaces: list[str] = , conversation_id: str | None = None, save_dir: str | None = None, app_data_dir: str | None = None, response_schema: dict[str, typing.Any] | type[pydantic.main.BaseModel] | str | None = None, skills_paths: list[str] = ) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "Audio", + "signature": "(*, data: bytes, mime_type: str, description: str | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "BuiltinTools", + "signature": "(value, names=None, *, module=None, qualname=None, type=None, start=1)" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "CapabilitiesConfig", + "signature": "(*, enable_subagents: bool = True, enabled_tools: list[google.antigravity.types.BuiltinTools] | None = None, disabled_tools: list[google.antigravity.types.BuiltinTools] | None = None, compaction_threshold: int | None = None, finish_tool_schema_json: str | None = None) -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "Content", + "signature": "" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "CustomSystemInstructions", + "signature": "(*, text: str) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "Document", + "signature": "(*, data: bytes, mime_type: str, description: str | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "GeminiAPIEndpoint", + "signature": "(*, base_url: str | None = None, http_headers: dict[str, str] | None = None, api_key: str | None = None, options: google.antigravity.models.GeminiModelOptions | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "GeminiModelOptions", + "signature": "(*, thinking_level: google.antigravity.models.ThinkingLevel | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "Image", + "signature": "(*, data: bytes, mime_type: str, description: str | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.connections.local.local_connection_config", + "name": "LocalAgentConfig", + "signature": "(*, system_instructions: str | google.antigravity.types.CustomSystemInstructions | google.antigravity.types.TemplatedSystemInstructions | None = None, capabilities: google.antigravity.types.CapabilitiesConfig | None = None, tools: list[typing.Callable[..., typing.Any]] | None = None, policies: list[typing.Any] | None = None, hooks: list[typing.Any] | None = None, triggers: list[typing.Any] | None = None, mcp_servers: list[google.antigravity.types.McpStdioServer | google.antigravity.types.McpStreamableHttpServer] | None = None, workspaces: list[str] | None = None, conversation_id: str | None = None, save_dir: str | None = None, app_data_dir: str | None = None, response_schema: dict[str, typing.Any] | type[pydantic.main.BaseModel] | str | None = None, skills_paths: list[str] | None = None, model: str | google.antigravity.models.ModelTarget | None = None, models: list[google.antigravity.models.ModelTarget] | None = None, api_key: str | None = None, vertex: bool | None = None, project: str | None = None, location: str | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "ModelEndpoint", + "signature": "(*, base_url: str | None = None, http_headers: dict[str, str] | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "ModelTarget", + "signature": "(*, name: str | None = None, types: list[google.antigravity.models.ModelType] = , endpoint: google.antigravity.models.ModelEndpoint | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "ModelType", + "signature": "(value, names=None, *, module=None, qualname=None, type=None, start=1)" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "SystemInstructionSection", + "signature": "(*, content: str, title: str = 'user_system_instructions') -> None" + }, + { + "kind": "UnionType", + "module": "types", + "name": "SystemInstructions", + "signature": "" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "TemplatedSystemInstructions", + "signature": "(*, identity: str | None = None, sections: list[google.antigravity.types.SystemInstructionSection] = ) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "ThinkingLevel", + "signature": "(value, names=None, *, module=None, qualname=None, type=None, start=1)" + }, + { + "kind": "class", + "module": "google.antigravity.tools.tool_context", + "name": "ToolContext", + "signature": "(conversation: google.antigravity.conversation.conversation.Conversation) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "UsageMetadata", + "signature": "(*, prompt_token_count: int | None = None, cached_content_token_count: int | None = None, candidates_token_count: int | None = None, thoughts_token_count: int | None = None, total_token_count: int | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.models", + "name": "VertexEndpoint", + "signature": "(*, base_url: str | None = None, http_headers: dict[str, str] | None = None, project: str | None = None, location: str | None = None, options: google.antigravity.models.GeminiModelOptions | None = None) -> None" + }, + { + "kind": "class", + "module": "google.antigravity.types", + "name": "Video", + "signature": "(*, data: bytes, mime_type: str, description: str | None = None) -> None" + }, + { + "kind": "module", + "module": "", + "name": "agent", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "connections", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "conversation", + "signature": "" + }, + { + "kind": "function", + "module": "google.antigravity.types", + "name": "from_file", + "signature": "(path: 'str | pathlib.Path', description: 'str | None' = None) -> 'Image | Document | Audio | Video'" + }, + { + "kind": "module", + "module": "", + "name": "hooks", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "models", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "tools", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "triggers", + "signature": "" + }, + { + "kind": "module", + "module": "", + "name": "types", + "signature": "" + } + ], + "module": "google.antigravity", + "package": "google-antigravity", + "source": "isolated-venv", + "version": "0.1.4" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json b/reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json new file mode 100644 index 0000000..dabb5fb --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json @@ -0,0 +1,33 @@ +{ + "findings": [ + { + "classification": "compatible", + "evidence": [ + "claude-agent-sdk v0.2.96 -> v0.2.106", + "Probe adapter-contract has status pass with severity none", + "Added symbols: TERMINAL_TASK_STATUSES, TaskUpdatedMessage, TaskUpdatedStatus" + ], + "summary": "Claude Agent SDK introduces background task monitoring symbols with zero contract disruption." + }, + { + "classification": "compatible", + "evidence": [ + "google-antigravity v0.1.2 -> v0.1.4", + "Probe adapter-contract has status pass with severity none", + "Removed optional symbols GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp", + "Preserved all required LocalAgentConfig adapter fields" + ], + "summary": "Google Antigravity restructures config symbols for multimodal endpoints while maintaining core adapter compatibility." + } + ], + "manual_design_required": false, + "recursive_self_adaptation_impact": false, + "safe_to_implement": true, + "self_adaptation_plan": [ + "Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile." + ], + "uncertainty": [], + "verification_commands": [ + "uv lock --dry-run" + ] +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json b/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json new file mode 100644 index 0000000..975c8d2 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json @@ -0,0 +1,22 @@ +[ + { + "after_status": "pass", + "before_status": "pass", + "from_version": "0.2.96", + "package": "claude-agent-sdk", + "probe": "adapter-contract", + "severity": "none", + "summary": "No behavior contract difference detected.", + "to_version": "0.2.106" + }, + { + "after_status": "pass", + "before_status": "pass", + "from_version": "0.1.2", + "package": "google-antigravity", + "probe": "adapter-contract", + "severity": "none", + "summary": "No behavior contract difference detected.", + "to_version": "0.1.4" + } +] diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json b/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json new file mode 100644 index 0000000..373996f --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json @@ -0,0 +1,307 @@ +[ + { + "details": { + "fields": [ + "add_dirs", + "agents", + "allowed_tools", + "betas", + "can_use_tool", + "cli_path", + "continue_conversation", + "cwd", + "debug_stderr", + "disallowed_tools", + "effort", + "enable_file_checkpointing", + "env", + "extra_args", + "fallback_model", + "fork_session", + "hooks", + "include_hook_events", + "include_partial_messages", + "load_timeout_ms", + "max_budget_usd", + "max_buffer_size", + "max_thinking_tokens", + "max_turns", + "mcp_servers", + "model", + "output_format", + "permission_mode", + "permission_prompt_tool_name", + "plugins", + "resume", + "sandbox", + "session_id", + "session_store", + "session_store_flush", + "setting_sources", + "settings", + "skills", + "stderr", + "strict_mcp_config", + "system_prompt", + "task_budget", + "thinking", + "tools", + "user" + ], + "missing": [], + "required_fields": [ + "allowed_tools", + "cwd", + "disallowed_tools", + "env", + "max_budget_usd", + "mcp_servers", + "model", + "output_format", + "permission_mode", + "resume", + "system_prompt" + ] + }, + "package": "claude-agent-sdk", + "probe": "adapter-contract", + "scope": "current-baseline", + "status": "pass", + "summary": "ClaudeAgentOptions exposes required adapter fields.", + "version": "0.2.96" + }, + { + "details": { + "fields": [ + "add_dirs", + "agents", + "allowed_tools", + "betas", + "can_use_tool", + "cli_path", + "continue_conversation", + "cwd", + "debug_stderr", + "disallowed_tools", + "effort", + "enable_file_checkpointing", + "env", + "extra_args", + "fallback_model", + "fork_session", + "hooks", + "include_hook_events", + "include_partial_messages", + "load_timeout_ms", + "max_budget_usd", + "max_buffer_size", + "max_thinking_tokens", + "max_turns", + "mcp_servers", + "model", + "output_format", + "permission_mode", + "permission_prompt_tool_name", + "plugins", + "resume", + "sandbox", + "session_id", + "session_store", + "session_store_flush", + "setting_sources", + "settings", + "skills", + "stderr", + "strict_mcp_config", + "system_prompt", + "task_budget", + "thinking", + "tools", + "user" + ], + "missing": [], + "required_fields": [ + "allowed_tools", + "cwd", + "disallowed_tools", + "env", + "max_budget_usd", + "mcp_servers", + "model", + "output_format", + "permission_mode", + "resume", + "system_prompt" + ] + }, + "package": "claude-agent-sdk", + "probe": "adapter-contract", + "scope": "candidate", + "status": "pass", + "summary": "ClaudeAgentOptions exposes required adapter fields.", + "version": "0.2.106" + }, + { + "details": { + "missing": [], + "required_run_params": [ + "approval_mode", + "cwd", + "effort", + "model", + "output_schema", + "sandbox" + ], + "required_start_params": [ + "approval_mode", + "cwd", + "developer_instructions", + "model", + "sandbox" + ], + "run_params": [ + "approval_mode", + "cwd", + "effort", + "input", + "model", + "output_schema", + "personality", + "sandbox", + "self", + "service_tier", + "summary" + ], + "start_params": [ + "approval_mode", + "base_instructions", + "config", + "cwd", + "developer_instructions", + "ephemeral", + "model", + "model_provider", + "personality", + "sandbox", + "self", + "service_name", + "service_tier", + "session_start_source", + "thread_source" + ] + }, + "package": "openai-codex", + "probe": "adapter-contract", + "scope": "current-environment", + "status": "pass", + "summary": "Codex thread APIs expose required adapter parameters.", + "version": "0.1.0b3" + }, + { + "details": { + "installed_version": "0.137.0a4" + }, + "package": "openai-codex-cli-bin", + "probe": "binary-distribution", + "scope": "current-environment", + "status": "pass", + "summary": "Codex CLI binary distribution metadata is available.", + "version": "0.137.0a4" + }, + { + "details": { + "fields": [ + "api_key", + "app_data_dir", + "capabilities", + "conversation_id", + "gemini_config", + "hooks", + "location", + "mcp_servers", + "model", + "policies", + "project", + "response_schema", + "save_dir", + "skills_paths", + "system_instructions", + "tools", + "triggers", + "vertex", + "workspaces" + ], + "missing": [], + "required_fields": [ + "api_key", + "app_data_dir", + "capabilities", + "conversation_id", + "location", + "mcp_servers", + "model", + "policies", + "project", + "response_schema", + "save_dir", + "system_instructions", + "vertex", + "workspaces" + ] + }, + "package": "google-antigravity", + "probe": "adapter-contract", + "scope": "current-baseline", + "status": "pass", + "summary": "Antigravity LocalAgentConfig exposes required adapter fields.", + "version": "0.1.2" + }, + { + "details": { + "fields": [ + "api_key", + "app_data_dir", + "capabilities", + "conversation_id", + "hooks", + "location", + "mcp_servers", + "model", + "models", + "policies", + "project", + "response_schema", + "save_dir", + "skills_paths", + "system_instructions", + "tools", + "triggers", + "vertex", + "workspaces" + ], + "missing": [], + "required_fields": [ + "api_key", + "app_data_dir", + "capabilities", + "conversation_id", + "location", + "mcp_servers", + "model", + "policies", + "project", + "response_schema", + "save_dir", + "system_instructions", + "vertex", + "workspaces" + ] + }, + "package": "google-antigravity", + "probe": "adapter-contract", + "scope": "candidate", + "status": "pass", + "summary": "Antigravity LocalAgentConfig exposes required adapter fields.", + "version": "0.1.4" + } +] diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/config.json b/reports/sdk-evolution-autonomous/20260622T153124Z/config.json new file mode 100644 index 0000000..f3fe72e --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/config.json @@ -0,0 +1,22 @@ +{ + "branch_name": "sdk-evolution-autonomous-update-20260622", + "commit_message": "Run SDK evolution update across packages", + "create_branch": true, + "draft_pr": true, + "event_log_path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl", + "implementation_enabled": true, + "inspect_candidates": true, + "packages": [ + "claude-agent-sdk", + "openai-codex", + "openai-codex-cli-bin", + "google-antigravity" + ], + "pr_base": "sdk-evolution-example-fixes-20260622", + "pr_title": "Run SDK evolution update across vendor packages", + "refresh_preview": true, + "report_dir": "reports/sdk-evolution-autonomous", + "run_id": "20260622T153124Z", + "runtime": "antigravity-agent-sdk", + "workspace": "/private/tmp/ark-evolution-all-packages" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/current_state.json b/reports/sdk-evolution-autonomous/20260622T153124Z/current_state.json new file mode 100644 index 0000000..419ba04 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/current_state.json @@ -0,0 +1,150 @@ +{ + "artifacts": { + "api_diffs.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json", + "sha256": "3b30cf3af70c549e37924a2ee258a3fe0e778280cb744d286cafa90a8004d98c" + }, + "api_snapshots/01-claude-agent-sdk.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json", + "sha256": "921a38d37c0989d4919c429d636f680fba6806276beb8f478e3d303d1a176585" + }, + "api_snapshots/02-claude-agent-sdk.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json", + "sha256": "6d454ad4d29d6dc099faa8f72e44290329dd68a1c5c66a634e9fc40049683e36" + }, + "api_snapshots/03-openai-codex.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json", + "sha256": "07ef9c9c2671f478ae48d281ca2a96fd551fb41561a7d7110c6c2548db845288" + }, + "api_snapshots/04-openai-codex-cli-bin.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json", + "sha256": "7f2301fb097b08216e4138e048823619532f03f289634d8917bc18aae9b9fd3f" + }, + "api_snapshots/05-google-antigravity.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json", + "sha256": "881af3ce9530c30cd3a71eb5ac8b7d18177a67b9ddbbb1e1788d6b06bd887de0" + }, + "api_snapshots/06-google-antigravity.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json", + "sha256": "0cd8802a31a1bcdeea70bdab9c2d706c4bab9aceb6f95a8e77307281e63c5a20" + }, + "architecture_decision.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json", + "sha256": "3d5d3b0573bf0a0b785f0513beb249ee5ee5015d47314d1a5673540c973ddee0" + }, + "behavior_diffs.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json", + "sha256": "5474a08f8c45aeb29fed80e3d30742e50425f9a18925b975c4e1a6f5d663127c" + }, + "behavior_probes.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json", + "sha256": "4098221011225763d1e7cc76049eaef35d85273aab166fde79ea38b855ce9bd4" + }, + "direction_analysis.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json", + "sha256": "ff694027eab6ca10209fbaa4afc13fd2052d8dfdb1a91f9afdfe63301cab0a3d" + }, + "evidence.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json", + "sha256": "b5651f0b9505c87c0ab5daae214b57280ecabe85f38a28291eb370aad78cee1c" + }, + "implementation_summary.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json", + "sha256": "f4547266f5e0f11069b893ed382cb7872fff0c71f8e920b423af89b31086aa98" + }, + "release_notes.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json", + "sha256": "e1f94b483668ede2c22f25952fe27461aa8aac5d5b30b252699d7527c1a64c06" + }, + "report.md": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/report.md", + "sha256": "22c770cfc578382970e984f7a2011fccbaecf9e4ddcff93a1c643d29495f5702" + }, + "review.json": { + "path": "/private/tmp/ark-evolution-all-packages/reports/sdk-evolution-autonomous/20260622T153124Z/review.json", + "sha256": "3a9f006aeb5e4998f49838fcfebc9daf0b607e81c66026706326c416abe9d091" + } + }, + "commit": "8f563f2715f90429d57f643ebf34965c68899d6e", + "dirty_worktree": true, + "generated_at_run_id": "20260622T153124Z", + "lockfile_hash": "67a968c15b562943b37027086d535c68dd8c97ecabda16f90bf5111420a6d589", + "packages": { + "absl-py": "2.4.0", + "agent-runtime-kit": "0.1.1", + "annotated-types": "0.7.0", + "anyio": "4.13.0", + "ast-serialize": "0.5.0", + "attrs": "26.1.0", + "backports-asyncio-runner": "1.2.0", + "build": "1.5.0", + "certifi": "2026.5.20", + "cffi": "2.0.0", + "charset-normalizer": "3.4.7", + "claude-agent-sdk": "0.2.106", + "click": "8.4.1", + "colorama": "0.4.6", + "cryptography": "48.0.0", + "distro": "1.9.0", + "exceptiongroup": "1.3.1", + "google-antigravity": "0.1.4", + "google-auth": "2.53.0", + "google-genai": "2.7.0", + "h11": "0.16.0", + "httpcore": "1.0.9", + "httpx": "0.28.1", + "httpx-sse": "0.4.3", + "idna": "3.18", + "importlib-metadata": "9.0.0", + "iniconfig": "2.3.0", + "jsonschema": "4.26.0", + "jsonschema-specifications": "2025.9.1", + "librt": "0.11.0", + "mcp": "1.27.2", + "mypy": "2.1.0", + "mypy-extensions": "1.1.0", + "openai-codex": "0.1.0b3", + "openai-codex-cli-bin": "0.137.0a4", + "packaging": "26.2", + "pathspec": "1.1.1", + "pluggy": "1.6.0", + "protobuf": "7.35.0", + "pyasn1": "0.6.3", + "pyasn1-modules": "0.4.2", + "pycparser": "3.0", + "pydantic": "2.13.4", + "pydantic-core": "2.46.4", + "pydantic-settings": "2.14.1", + "pygments": "2.20.0", + "pyjwt": "2.13.0", + "pyproject-hooks": "1.2.0", + "pytest": "9.0.3", + "pytest-asyncio": "1.4.0", + "python-dotenv": "1.2.2", + "python-multipart": "0.0.30", + "pywin32": "311", + "referencing": "0.37.0", + "requests": "2.34.2", + "rpds-py": "2026.5.1", + "ruff": "0.15.15", + "sniffio": "1.3.1", + "sse-starlette": "3.4.4", + "starlette": "1.2.1", + "tenacity": "9.1.4", + "tomli": "2.4.1", + "typing-extensions": "4.15.0", + "typing-inspection": "0.4.2", + "urllib3": "2.7.0", + "uvicorn": "0.48.0", + "websockets": "16.0", + "zipp": "4.1.0" + }, + "promotion": { + "blocked_reason": "", + "implementation_applied": true, + "promoted": true, + "status": "promoted" + }, + "schema_version": "1", + "source_run_id": "20260622T153124Z" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json b/reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json new file mode 100644 index 0000000..7b63329 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json @@ -0,0 +1,35 @@ +{ + "packages": [ + { + "direction": "Upgrade to version 0.2.106, adding task status tracking symbols ('TERMINAL_TASK_STATUSES', 'TaskUpdatedMessage', 'TaskUpdatedStatus').", + "evidence": [ + "Added TERMINAL_TASK_STATUSES, TaskUpdatedMessage, and TaskUpdatedStatus to API.", + "adapter-contract probe passes successfully for candidate version 0.2.106." + ], + "name": "claude-agent-sdk" + }, + { + "direction": "Refactor model configuration and capabilities to support multimodal structures (Audio, Video, Image, Document) and unified model endpoints (Gemini, Vertex) while removing obsolete configuration classes (GeminiConfig, ModelConfig, ModelEntry, mcp).", + "evidence": [ + "Added Audio, Video, Image, Document, ModelTarget, ModelType, VertexEndpoint, GeminiAPIEndpoint to API.", + "Removed GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp from API.", + "Changed CapabilitiesConfig, LocalAgentConfig, and ToolContext configurations." + ], + "name": "google-antigravity" + } + ], + "themes": [ + { + "name": "Multimodal and Unified APIs in Google Antigravity", + "summary": "Google Antigravity is moving towards a standardized multimodal representation (Audio, Video, Document, etc.) and centralizing endpoint configurations under distinct Gemini and Vertex definitions, streamlining configuration components." + }, + { + "name": "Robust Task Lifecycle Tracking in Claude Agent SDK", + "summary": "The Claude Agent SDK is introducing explicit state machinery elements like TERMINAL_TASK_STATUSES and TaskUpdatedMessage to improve tracking of background or long-running tasks." + } + ], + "uncertainty": [ + "The potential impact on existing client setups from the complete removal of the 'mcp' configuration in google-antigravity.", + "The exact schema changes to LocalAgentConfig, CapabilitiesConfig, and ToolContext." + ] +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl b/reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl new file mode 100644 index 0000000..47fc1b9 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl @@ -0,0 +1,39 @@ +{"attributes": {"budget_usd": null, "metadata": {"run_id": "20260622T153124Z", "stage": "direction-analysis"}, "runtime_kind": "antigravity-agent-sdk", "sdk_executions": 1, "session_id": null, "system_prompt": "You are running inside the local SDK evolution agent. Use only the provided evidence. Preserve vendor-specific behavior, state uncertainty explicitly, and never claim implementation occurred unless it is reflected in the provided artifacts. Return only one JSON object that validates against the provided schema. Do not include Markdown, code fences, file links, or prose outside JSON. Do not call shell, command, file, or workspace tools; the deterministic evidence bundle already contains the inspected data. Keep each array to at most five high-signal items and each string concise. Current stage: direction-analysis. Output schema: {\"additionalProperties\": false, \"properties\": {\"packages\": {\"items\": {\"additionalProperties\": false, \"properties\": {\"direction\": {\"type\": \"string\"}, \"evidence\": {\"items\": {\"type\": \"string\"}, \"type\": \"array\"}, \"name\": {\"type\": \"string\"}}, \"required\": [\"name\", \"direction\", \"evidence\"], \"type\": \"object\"}, \"type\": \"array\"}, \"themes\": {\"items\": {\"additionalProperties...[truncated]", "task_goal": "{\"api_diffs\": [{\"added\": [\"TERMINAL_TASK_STATUSES\", \"TaskUpdatedMessage\", \"TaskUpdatedStatus\"], \"changed\": [], \"from_version\": \"0.2.96\", \"package\": \"claude-agent-sdk\", \"removed\": [], \"to_version\": \"0.2.106\"}, {\"added\": [\"Audio\", \"BuiltinTools\", \"Content\", \"CustomSystemInstructions\", \"Document\", \"GeminiAPIEndpoint\", \"GeminiModelOptions\", \"Image\", \"ModelEndpoint\", \"ModelTarget\", \"ModelType\", \"SystemInstructionSection\", \"SystemInstructions\", \"TemplatedSystemInstructions\", \"VertexEndpoint\", \"Video\", \"from_file\", \"models\"], \"changed\": [\"CapabilitiesConfig\", \"LocalAgentConfig\", \"ToolContext\"], \"from_version\": \"0.1.2\", \"package\": \"google-antigravity\", \"removed\": [\"GeminiConfig\", \"GenerationConfig\", \"ModelConfig\", \"ModelEntry\", \"mcp\"], \"to_version\": \"0.1.4\"}], \"behavior\": {\"diffs\": [{\"after_status\": \"pass\", \"before_status\": \"pass\", \"from_version\": \"0.2.96\", \"package\": \"claude-agent-sdk\", \"probe\": \"adapter-contract\", \"severity\": \"none\", \"summary\": \"No behavior contract difference detected.\", \"t...[truncated]", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "working_directory": "/private/tmp/ark-evolution-all-packages"}, "name": "agent.task.started", "summary": "started task task-7e9fd0412e2549ce9447ece06011d4ef", "timestamp": "2026-06-22T15:32:29.919787+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 335}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:32.656855+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 335}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:34.085405+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 308}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:35.376590+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 355}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:37.329421+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 294}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:38.989491+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 327}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:40.720246+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 366}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:41.926724+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 364}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:43.400200+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 322}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:44.596718+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 293}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:45.952146+00:00"} +{"attributes": {"runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "text_delta": "Finished", "text_delta_length": 8, "text_delta_truncated": false}, "name": "agent.output.delta", "summary": "streamed 8 chars", "timestamp": "2026-06-22T15:32:48.552434+00:00"} +{"attributes": {"argument_count": 1, "argument_keys": ["output_string"], "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "tool_name": "finish"}, "name": "agent.tool.requested", "summary": "tool requested: finish", "timestamp": "2026-06-22T15:32:48.553499+00:00"} +{"attributes": {"cost_usd": 0.0, "finish_reason": "done", "output": "Finished", "result_metadata": {"model": "gemini-3.5-flash", "sdk": "google_antigravity"}, "rounds": 1, "runtime_kind": "antigravity-agent-sdk", "session_id": "ec5176838dee0330859731833f1fff43", "task_id": "task-7e9fd0412e2549ce9447ece06011d4ef", "tool_call_count": 0}, "name": "agent.task.completed", "summary": "completed task task-7e9fd0412e2549ce9447ece06011d4ef (done)", "timestamp": "2026-06-22T15:32:48.574218+00:00"} +{"attributes": {"budget_usd": null, "metadata": {"run_id": "20260622T153124Z", "stage": "architecture-decision"}, "runtime_kind": "antigravity-agent-sdk", "sdk_executions": 1, "session_id": null, "system_prompt": "You are running inside the local SDK evolution agent. Use only the provided evidence. Preserve vendor-specific behavior, state uncertainty explicitly, and never claim implementation occurred unless it is reflected in the provided artifacts. Return only one JSON object that validates against the provided schema. Do not include Markdown, code fences, file links, or prose outside JSON. Do not call shell, command, file, or workspace tools; the deterministic evidence bundle already contains the inspected data. Keep each array to at most five high-signal items and each string concise. Current stage: architecture-decision. Output schema: {\"additionalProperties\": false, \"properties\": {\"findings\": {\"items\": {\"additionalProperties\": false, \"properties\": {\"classification\": {\"type\": \"string\"}, \"evidence\": {\"items\": {\"type\": \"string\"}, \"type\": \"array\"}, \"summary\": {\"type\": \"string\"}}, \"required\": [\"classification\", \"summary\", \"evidence\"], \"type\": \"object\"}, \"type\": \"array\"}, \"manual_design_required...[truncated]", "task_goal": "{\"api_diffs\": [{\"added\": [\"TERMINAL_TASK_STATUSES\", \"TaskUpdatedMessage\", \"TaskUpdatedStatus\"], \"changed\": [], \"from_version\": \"0.2.96\", \"package\": \"claude-agent-sdk\", \"removed\": [], \"to_version\": \"0.2.106\"}, {\"added\": [\"Audio\", \"BuiltinTools\", \"Content\", \"CustomSystemInstructions\", \"Document\", \"GeminiAPIEndpoint\", \"GeminiModelOptions\", \"Image\", \"ModelEndpoint\", \"ModelTarget\", \"ModelType\", \"SystemInstructionSection\", \"SystemInstructions\", \"TemplatedSystemInstructions\", \"VertexEndpoint\", \"Video\", \"from_file\", \"models\"], \"changed\": [\"CapabilitiesConfig\", \"LocalAgentConfig\", \"ToolContext\"], \"from_version\": \"0.1.2\", \"package\": \"google-antigravity\", \"removed\": [\"GeminiConfig\", \"GenerationConfig\", \"ModelConfig\", \"ModelEntry\", \"mcp\"], \"to_version\": \"0.1.4\"}], \"behavior\": {\"diffs\": [{\"after_status\": \"pass\", \"before_status\": \"pass\", \"from_version\": \"0.2.96\", \"package\": \"claude-agent-sdk\", \"probe\": \"adapter-contract\", \"severity\": \"none\", \"summary\": \"No behavior contract difference detected.\", \"t...[truncated]", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "working_directory": "/private/tmp/ark-evolution-all-packages"}, "name": "agent.task.started", "summary": "started task task-8294e96769e24be0bf7a9239aa6c7210", "timestamp": "2026-06-22T15:32:48.575048+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 255}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:50.923261+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 317}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:52.544850+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 324}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:53.689032+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 372}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:55.082843+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 356}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:56.468255+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 326}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:57.757353+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 351}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:32:58.769784+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 427}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:00.525220+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 392}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:02.075130+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 333}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:03.486631+00:00"} +{"attributes": {"runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "text_delta": "Finished", "text_delta_length": 8, "text_delta_truncated": false}, "name": "agent.output.delta", "summary": "streamed 8 chars", "timestamp": "2026-06-22T15:33:06.079174+00:00"} +{"attributes": {"argument_count": 1, "argument_keys": ["output_string"], "runtime_kind": "antigravity-agent-sdk", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "tool_name": "finish"}, "name": "agent.tool.requested", "summary": "tool requested: finish", "timestamp": "2026-06-22T15:33:06.079650+00:00"} +{"attributes": {"cost_usd": 0.0, "finish_reason": "done", "output": "Finished", "result_metadata": {"model": "gemini-3.5-flash", "sdk": "google_antigravity"}, "rounds": 1, "runtime_kind": "antigravity-agent-sdk", "session_id": "5359cbb4814ccc2ce7c316a61abc6877", "task_id": "task-8294e96769e24be0bf7a9239aa6c7210", "tool_call_count": 0}, "name": "agent.task.completed", "summary": "completed task task-8294e96769e24be0bf7a9239aa6c7210 (done)", "timestamp": "2026-06-22T15:33:06.097162+00:00"} +{"attributes": {"budget_usd": null, "metadata": {"run_id": "20260622T153124Z", "stage": "review"}, "runtime_kind": "antigravity-agent-sdk", "sdk_executions": 1, "session_id": null, "system_prompt": "You are running inside the local SDK evolution agent. Use only the provided evidence. Preserve vendor-specific behavior, state uncertainty explicitly, and never claim implementation occurred unless it is reflected in the provided artifacts. Return only one JSON object that validates against the provided schema. Do not include Markdown, code fences, file links, or prose outside JSON. Do not call shell, command, file, or workspace tools; the deterministic evidence bundle already contains the inspected data. Keep each array to at most five high-signal items and each string concise. Current stage: review. Output schema: {\"additionalProperties\": false, \"properties\": {\"reasons\": {\"items\": {\"type\": \"string\"}, \"type\": \"array\"}, \"required_changes\": {\"items\": {\"type\": \"string\"}, \"type\": \"array\"}, \"status\": {\"enum\": [\"pass\", \"reject\"], \"type\": \"string\"}}, \"required\": [\"status\", \"reasons\", \"required_changes\"], \"type\": \"object\"} Deterministic gate policy: candidate API diffs prove API shape drift, ...[truncated]", "task_goal": "{\"api_diffs\": [{\"added\": [\"TERMINAL_TASK_STATUSES\", \"TaskUpdatedMessage\", \"TaskUpdatedStatus\"], \"changed\": [], \"from_version\": \"0.2.96\", \"package\": \"claude-agent-sdk\", \"removed\": [], \"to_version\": \"0.2.106\"}, {\"added\": [\"Audio\", \"BuiltinTools\", \"Content\", \"CustomSystemInstructions\", \"Document\", \"GeminiAPIEndpoint\", \"GeminiModelOptions\", \"Image\", \"ModelEndpoint\", \"ModelTarget\", \"ModelType\", \"SystemInstructionSection\", \"SystemInstructions\", \"TemplatedSystemInstructions\", \"VertexEndpoint\", \"Video\", \"from_file\", \"models\"], \"changed\": [\"CapabilitiesConfig\", \"LocalAgentConfig\", \"ToolContext\"], \"from_version\": \"0.1.2\", \"package\": \"google-antigravity\", \"removed\": [\"GeminiConfig\", \"GenerationConfig\", \"ModelConfig\", \"ModelEntry\", \"mcp\"], \"to_version\": \"0.1.4\"}], \"architecture_decision\": {\"findings\": [{\"classification\": \"compatible\", \"evidence\": [\"claude-agent-sdk v0.2.96 -> v0.2.106\", \"Probe adapter-contract has status pass with severity none\", \"Added symbols: TERMINAL_TASK_STATUSES, TaskUpdated...[truncated]", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "working_directory": "/private/tmp/ark-evolution-all-packages"}, "name": "agent.task.started", "summary": "started task task-7c4b5a60140f4a60a9b6ded4b56cd847", "timestamp": "2026-06-22T15:33:06.098344+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 330}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:07.814336+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 267}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:08.734864+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 400}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:09.614715+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 308}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:10.828185+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 312}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:12.446052+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 325}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:13.738751+00:00"} +{"attributes": {"payload": {"chunk_type": "Thought", "delta_length": 353}, "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "turn_index": null}, "name": "agent.vendor.turn", "summary": "vendor turn update", "timestamp": "2026-06-22T15:33:15.192249+00:00"} +{"attributes": {"runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "text_delta": "Finished", "text_delta_length": 8, "text_delta_truncated": false}, "name": "agent.output.delta", "summary": "streamed 8 chars", "timestamp": "2026-06-22T15:33:15.769160+00:00"} +{"attributes": {"argument_count": 1, "argument_keys": ["output_string"], "runtime_kind": "antigravity-agent-sdk", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "tool_name": "finish"}, "name": "agent.tool.requested", "summary": "tool requested: finish", "timestamp": "2026-06-22T15:33:15.769581+00:00"} +{"attributes": {"cost_usd": 0.0, "finish_reason": "done", "output": "Finished", "result_metadata": {"model": "gemini-3.5-flash", "sdk": "google_antigravity"}, "rounds": 1, "runtime_kind": "antigravity-agent-sdk", "session_id": "93172d532c557852e2d876e8cb0c2437", "task_id": "task-7c4b5a60140f4a60a9b6ded4b56cd847", "tool_call_count": 0}, "name": "agent.task.completed", "summary": "completed task task-7c4b5a60140f4a60a9b6ded4b56cd847 (done)", "timestamp": "2026-06-22T15:33:15.783269+00:00"} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json b/reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json new file mode 100644 index 0000000..05d4eaa --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json @@ -0,0 +1,198 @@ +{ + "adapter_sources": [ + { + "available": true, + "kind": "adapter-source", + "label": "agent-runtime-kit adapter source claude.py", + "note": "", + "path": "/private/tmp/ark-evolution-all-packages/src/agent_runtime_kit/adapters/claude.py", + "url": null, + "version": null + }, + { + "available": true, + "kind": "adapter-source", + "label": "agent-runtime-kit adapter source codex.py", + "note": "", + "path": "/private/tmp/ark-evolution-all-packages/src/agent_runtime_kit/adapters/codex.py", + "url": null, + "version": null + }, + { + "available": true, + "kind": "adapter-source", + "label": "agent-runtime-kit adapter source antigravity.py", + "note": "", + "path": "/private/tmp/ark-evolution-all-packages/src/agent_runtime_kit/adapters/antigravity.py", + "url": null, + "version": null + }, + { + "available": true, + "kind": "adapter-source", + "label": "agent-runtime-kit adapter source __init__.py", + "note": "", + "path": "/private/tmp/ark-evolution-all-packages/src/agent_runtime_kit/adapters/__init__.py", + "url": null, + "version": null + } + ], + "facts": [ + "pyproject.toml dependency declarations are lower bounds or constraints.", + "uv.lock is the tested local dependency state." + ], + "packages": [ + { + "installed_version": "0.2.106", + "latest_version": "0.2.106", + "locked_version": "0.2.96", + "name": "claude-agent-sdk", + "pyproject_spec": "claude-agent-sdk>=0.2.87", + "recent_versions": [ + "0.2.106", + "0.2.105", + "0.2.104" + ], + "sources": [ + { + "available": true, + "kind": "docs", + "label": "Claude Agent SDK docs", + "note": "", + "path": null, + "url": "https://docs.anthropic.com/en/docs/claude-code/sdk", + "version": null + }, + { + "available": true, + "kind": "package-metadata", + "label": "PyPI metadata for claude-agent-sdk", + "note": "", + "path": null, + "url": "https://pypi.org/project/claude-agent-sdk/", + "version": "0.2.106" + } + ], + "unavailable_reason": "" + }, + { + "installed_version": "0.1.0b3", + "latest_version": "0.1.0b3", + "locked_version": "0.1.0b3", + "name": "openai-codex", + "pyproject_spec": "openai-codex>=0.1.0b3", + "recent_versions": [ + "0.1.0b3", + "0.1.0b2", + "0.1.0b1" + ], + "sources": [ + { + "available": true, + "kind": "docs", + "label": "OpenAI Codex SDK docs", + "note": "", + "path": null, + "url": "https://developers.openai.com/codex/sdk", + "version": null + }, + { + "available": true, + "kind": "package-metadata", + "label": "PyPI metadata for openai-codex", + "note": "", + "path": null, + "url": "https://pypi.org/project/openai-codex/", + "version": "0.1.0b3" + } + ], + "unavailable_reason": "" + }, + { + "installed_version": "0.137.0a4", + "latest_version": "0.136.0", + "locked_version": "0.137.0a4", + "name": "openai-codex-cli-bin", + "pyproject_spec": "openai-codex-cli-bin ships per-platform binary wheels; require the platforms we\n# develop and run CI on so resolution never locks a version missing one of them.\nrequired-environments = [\n ", + "recent_versions": [ + "0.137.0a4", + "0.136.0a2", + "0.136.0" + ], + "sources": [ + { + "available": true, + "kind": "package", + "label": "Codex CLI binary runtime package", + "note": "", + "path": null, + "url": "https://pypi.org/project/openai-codex-cli-bin/", + "version": null + }, + { + "available": true, + "kind": "package-metadata", + "label": "PyPI metadata for openai-codex-cli-bin", + "note": "", + "path": null, + "url": "https://pypi.org/project/openai-codex-cli-bin/", + "version": "0.136.0" + } + ], + "unavailable_reason": "" + }, + { + "installed_version": "0.1.4", + "latest_version": "0.1.4", + "locked_version": "0.1.2", + "name": "google-antigravity", + "pyproject_spec": "google-antigravity>=0.1.2", + "recent_versions": [ + "0.1.4", + "0.1.3", + "0.1.2" + ], + "sources": [ + { + "available": true, + "kind": "repository", + "label": "Google Antigravity SDK repository", + "note": "", + "path": null, + "url": "https://github.com/google-antigravity/antigravity-sdk-python", + "version": null + }, + { + "available": true, + "kind": "package-metadata", + "label": "PyPI metadata for google-antigravity", + "note": "", + "path": null, + "url": "https://pypi.org/project/google-antigravity/", + "version": "0.1.4" + } + ], + "unavailable_reason": "" + } + ], + "refresh_preview": { + "command": [ + "uv", + "lock", + "--dry-run", + "-P", + "claude-agent-sdk", + "-P", + "openai-codex", + "-P", + "openai-codex-cli-bin", + "-P", + "google-antigravity" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Resolved 69 packages in 102ms\nUpdate claude-agent-sdk v0.2.96 -> v0.2.106\nUpdate google-antigravity v0.1.2 -> v0.1.4\n", + "stdout": "" + }, + "workspace": "/private/tmp/ark-evolution-all-packages" +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json b/reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json new file mode 100644 index 0000000..f13380b --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json @@ -0,0 +1,142 @@ +{ + "allowed": true, + "applied": true, + "blocked_reason": "", + "changes": [ + "Updated uv.lock for resolver-selected SDK packages: claude-agent-sdk, google-antigravity" + ], + "planned_changes": [ + "Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile." + ], + "verification_results": [ + { + "command": [ + "git", + "switch", + "-c", + "sdk-evolution-autonomous-update-20260622" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Switched to a new branch 'sdk-evolution-autonomous-update-20260622'\n", + "stdout": "" + }, + { + "command": [ + "uv", + "lock", + "-P", + "claude-agent-sdk", + "-P", + "google-antigravity" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Resolved 69 packages in 102ms\nUpdated claude-agent-sdk v0.2.96 -> v0.2.106\nUpdated google-antigravity v0.1.2 -> v0.1.4\n", + "stdout": "" + }, + { + "command": [ + "uv", + "run", + "ruff", + "check", + "." + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "All checks passed!\n" + }, + { + "command": [ + "uv", + "run", + "mypy" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "Success: no issues found in 14 source files\n" + }, + { + "command": [ + "uv", + "run", + "pytest" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "============================= test session starts ==============================\nplatform darwin -- Python 3.10.13, pytest-9.0.3, pluggy-1.6.0\nrootdir: /private/tmp/ark-evolution-all-packages\nconfigfile: pyproject.toml\nplugins: asyncio-1.4.0, anyio-4.13.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollected 114 items\n\ntests/test_antigravity_adapter.py .................. [ 15%]\ntests/test_claude_adapter.py ................. [ 30%]\ntests/test_codex_adapter.py ....................... [ 50%]\ntests/test_core.py .... [ 54%]\ntests/test_events.py ..... [ 58%]\ntests/test_live_smoke.py sss [ 61%]\ntests/test_mestre_compatibility.py .. [ 63%]\ntests/test_optional_dependencies.py . [ 64%]\ntests/test_provider_diagnostics.py . [ 64%]\ntests/test_sdk_contract.py ......... [ 72%]\ntests/test_sdk_evolution_agent.py ............................... [100%]\n\n======================== 111 passed, 3 skipped in 0.99s ========================\n" + }, + { + "command": [ + "uv", + "lock", + "--check" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Resolved 69 packages in 3ms\n", + "stdout": "" + }, + { + "command": [ + "git", + "add", + "uv.lock", + "reports/sdk-evolution-autonomous/20260622T153124Z" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "" + }, + { + "command": [ + "git", + "commit", + "-m", + "Run SDK evolution update across packages" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "[sdk-evolution-autonomous-update-20260622 90f1d12] Run SDK evolution update across packages\n 20 files changed, 3652 insertions(+), 13 deletions(-)\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/config.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/current_state.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/report.md\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/review.json\n" + }, + { + "command": [ + "git", + "push", + "-u", + "origin", + "sdk-evolution-autonomous-update-20260622" + ], + "removed_env": [], + "returncode": 0, + "stderr": "remote: \nremote: Create a pull request for 'sdk-evolution-autonomous-update-20260622' on GitHub by visiting: \nremote: https://github.com/ebarti/agent-runtime-kit/pull/new/sdk-evolution-autonomous-update-20260622 \nremote: \nremote: GitHub found 5 vulnerabilities on ebarti/agent-runtime-kit's default branch (2 high, 1 moderate, 2 low). To find out more, visit: \nremote: https://github.com/ebarti/agent-runtime-kit/security/dependabot \nremote: \nTo https://github.com/ebarti/agent-runtime-kit.git\n * [new branch] sdk-evolution-autonomous-update-20260622 -> sdk-evolution-autonomous-update-20260622\n", + "stdout": "branch 'sdk-evolution-autonomous-update-20260622' set up to track 'origin/sdk-evolution-autonomous-update-20260622'.\n" + }, + { + "command": [ + "gh", + "pr", + "create", + "--draft", + "--title", + "Run SDK evolution update across vendor packages", + "--body", + "## SDK Evolution Report\n\n# SDK Evolution Agent Report\n\n## Run\n\n- Runtime: `antigravity-agent-sdk`\n- Implementation enabled: `True`\n- Draft PR enabled: `True`\n\n## Upstream Evidence\n\n- claude-agent-sdk: locked=0.2.96 installed=0.2.106 latest=0.2.106\n- openai-codex: locked=0.1.0b3 installed=0.1.0b3 latest=0.1.0b3\n- openai-codex-cli-bin: locked=0.137.0a4 installed=0.137.0a4 latest=0.136.0\n- google-antigravity: locked=0.1.2 installed=0.1.4 latest=0.1.4\n\n## API Diffs\n\n- Diff count: `2`\n\n## Release Notes\n\n- claude-agent-sdk: found (0.2.96 -> 0.2.106)\n- google-antigravity: found (0.1.2 -> 0.1.4)\n\n## Behavior Probes\n\n- Status: `pass`\n- Changed contracts: `0`\n- Breaking contracts: `0`\n- Diff count: `2`\n\n## Direction Of Travel\n\n```json\n{\n \"packages\": [\n {\n \"direction\": \"Upgrade to version 0.2.106, adding task status tracking symbols ('TERMINAL_TASK_STATUSES', 'TaskUpdatedMessage', 'TaskUpdatedStatus').\",\n \"evidence\": [\n \"Added TERMINAL_TASK_STATUSES, TaskUpdatedMessage, and TaskUpdatedStatus to API.\",\n \"adapter-contract probe passes successfully for candidate version 0.2.106.\"\n ],\n \"name\": \"claude-agent-sdk\"\n },\n {\n \"direction\": \"Refactor model configuration and capabilities to support multimodal structures (Audio, Video, Image, Document) and unified model endpoints (Gemini, Vertex) while removing obsolete configuration classes (GeminiConfig, ModelConfig, ModelEntry, mcp).\",\n \"evidence\": [\n \"Added Audio, Video, Image, Document, ModelTarget, ModelType, VertexEndpoint, GeminiAPIEndpoint to API.\",\n \"Removed GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp from API.\",\n \"Changed CapabilitiesConfig, LocalAgentConfig, and ToolContext configurations.\"\n ],\n \"name\": \"google-antigravity\"\n }\n ],\n \"themes\": [\n {\n \"name\": \"Multimodal and Unified APIs in Google Antigravity\",\n \"summary\": \"Google Antigravity is moving towards a standardized multimodal representation (Audio, Video, Document, etc.) and centralizing endpoint configurations under distinct Gemini and Vertex definitions, streamlining configuration components.\"\n },\n {\n \"name\": \"Robust Task Lifecycle Tracking in Claude Agent SDK\",\n \"summary\": \"The Claude Agent SDK is introducing explicit state machinery elements like TERMINAL_TASK_STATUSES and TaskUpdatedMessage to improve tracking of background or long-running tasks.\"\n }\n ],\n \"uncertainty\": [\n \"The potential impact on existing client setups from the complete removal of the 'mcp' configuration in google-antigravity.\",\n \"The exact schema changes to LocalAgentConfig, CapabilitiesConfig, and ToolContext.\"\n ]\n}\n```\n\n## Architecture Decision\n\n- Manual design required: `False`\n- Recursive self-adaptation impact: `False`\n- Safe to implement: `True`\n\n```json\n{\n \"findings\": [\n {\n \"classification\": \"compatible\",\n \"evidence\": [\n \"claude-agent-sdk v0.2.96 -> v0.2.106\",\n \"Probe adapter-contract has status pass with severity none\",\n \"Added symbols: TERMINAL_TASK_STATUSES, TaskUpdatedMessage, TaskUpdatedStatus\"\n ],\n \"summary\": \"Claude Agent SDK introduces background task monitoring symbols with zero contract disruption.\"\n },\n {\n \"classification\": \"compatible\",\n \"evidence\": [\n \"google-antigravity v0.1.2 -> v0.1.4\",\n \"Probe adapter-contract has status pass with severity none\",\n \"Removed optional symbols GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp\",\n \"Preserved all required LocalAgentConfig adapter fields\"\n ],\n \"summary\": \"Google Antigravity restructures config symbols for multimodal endpoints while maintaining core adapter compatibility.\"\n }\n ],\n \"manual_design_required\": false,\n \"recursive_self_adaptation_impact\": false,\n \"safe_to_implement\": true,\n \"self_adaptation_plan\": [\n \"Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile.\"\n ],\n \"uncertainty\": [],\n \"verification_commands\": [\n \"uv lock --dry-run\"\n ]\n}\n```\n\n## Implementation Summary\n\n```json\n{\n \"allowed\": true,\n \"applied\": true,\n \"blocked_reason\": \"\",\n \"changes\": [\n \"Updated uv.lock for resolver-selected SDK packages: claude-agent-sdk, google-antigravity\"\n ],\n \"planned_changes\": [\n \"Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile.\"\n ],\n \"verification_results\": [\n {\n \"command\": [\n \"git\",\n \"switch\",\n \"-c\",\n \"sdk-evolution-autonomous-update-20260622\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"Switched to a new branch 'sdk-evolution-autonomous-update-20260622'\\n\",\n \"stdout\": \"\"\n },\n {\n \"command\": [\n \"uv\",\n \"lock\",\n \"-P\",\n \"claude-agent-sdk\",\n \"-P\",\n \"google-antigravity\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"Resolved 69 packages in 102ms\\nUpdated claude-agent-sdk v0.2.96 -> v0.2.106\\nUpdated google-antigravity v0.1.2 -> v0.1.4\\n\",\n \"stdout\": \"\"\n },\n {\n \"command\": [\n \"uv\",\n \"run\",\n \"ruff\",\n \"check\",\n \".\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"\",\n \"stdout\": \"All checks passed!\\n\"\n },\n {\n \"command\": [\n \"uv\",\n \"run\",\n \"mypy\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"\",\n \"stdout\": \"Success: no issues found in 14 source files\\n\"\n },\n {\n \"command\": [\n \"uv\",\n \"run\",\n \"pytest\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"\",\n \"stdout\": \"============================= test session starts ==============================\\nplatform darwin -- Python 3.10.13, pytest-9.0.3, pluggy-1.6.0\\nrootdir: /private/tmp/ark-evolution-all-packages\\nconfigfile: pyproject.toml\\nplugins: asyncio-1.4.0, anyio-4.13.0\\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\\ncollected 114 items\\n\\ntests/test_antigravity_adapter.py .................. [ 15%]\\ntests/test_claude_adapter.py ................. [ 30%]\\ntests/test_codex_adapter.py ....................... [ 50%]\\ntests/test_core.py .... [ 54%]\\ntests/test_events.py ..... [ 58%]\\ntests/test_live_smoke.py sss [ 61%]\\ntests/test_mestre_compatibility.py .. [ 63%]\\ntests/test_optional_dependencies.py . [ 64%]\\ntests/test_provider_diagnostics.py . [ 64%]\\ntests/test_sdk_contract.py ......... [ 72%]\\ntests/test_sdk_evolution_agent.py ............................... [100%]\\n\\n======================== 111 passed, 3 skipped in 0.99s ========================\\n\"\n },\n {\n \"command\": [\n \"uv\",\n \"lock\",\n \"--check\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"Resolved 69 packages in 3ms\\n\",\n \"stdout\": \"\"\n }\n ]\n}\n```\n\n## Current State Baseline\n\n- Promotion status: `promoted`\n- Promoted: `True`\n\n## Reviewer Output\n\n```json\n{\n \"reasons\": [\n \"Adapter-contract probes pass for both packages with severity none.\",\n \"Required adapter configuration fields are successfully preserved.\",\n \"API symbol churn does not break the adapter contract.\"\n ],\n \"required_changes\": [],\n \"status\": \"pass\"\n}\n```\n\n## Manual Review Checklist\n\n- Verify source references are enough for every architecture finding.\n- Verify vendor-specific behavior has not been flattened.\n- Verify recursive self-adaptation impact is handled or explicitly blocked.\n- Verify tests, docs, examples, and migration notes match public API changes.\n- Confirm no auto-merge or unsupported credential scraping was used.\n\n\n## Safety\n\n- Draft PR only.\n- No auto-merge.\n- Local credentials are not scraped.", + "--base", + "sdk-evolution-example-fixes-20260622", + "--head", + "sdk-evolution-autonomous-update-20260622" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "https://github.com/ebarti/agent-runtime-kit/pull/12\n" + } + ] +} diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json b/reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json new file mode 100644 index 0000000..aca5df0 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json @@ -0,0 +1,150 @@ +[ + { + "checked_urls": [ + "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/main/CHANGELOG.md", + "https://code.claude.com/docs/en/agent-sdk/overview" + ], + "from_version": "0.2.96", + "package": "claude-agent-sdk", + "sources": [ + { + "available": true, + "kind": "changelog", + "label": "Claude Agent SDK Python changelog", + "note": "", + "path": null, + "url": "https://raw.githubusercontent.com/anthropics/claude-agent-sdk-python/main/CHANGELOG.md", + "version": "0.2.106" + }, + { + "available": true, + "kind": "docs", + "label": "Claude Agent SDK overview", + "note": "", + "path": null, + "url": "https://code.claude.com/docs/en/agent-sdk/overview", + "version": "0.2.106" + } + ], + "status": "found", + "summaries": [ + "0.2.106", + "Internal/Other Changes", + "0.2.96", + "Bug Fixes" + ], + "to_version": "0.2.106", + "unavailable_reason": "" + }, + { + "checked_urls": [], + "from_version": "0.1.0b3", + "package": "openai-codex", + "sources": [ + { + "available": true, + "kind": "docs", + "label": "Codex SDK docs", + "note": "", + "path": null, + "url": "https://developers.openai.com/codex/sdk", + "version": null + }, + { + "available": true, + "kind": "changelog", + "label": "Codex changelog", + "note": "", + "path": null, + "url": "https://developers.openai.com/codex/changelog", + "version": null + }, + { + "available": true, + "kind": "release", + "label": "Codex repository releases", + "note": "", + "path": null, + "url": "https://github.com/openai/codex/releases", + "version": null + } + ], + "status": "not-needed", + "summaries": [], + "to_version": null, + "unavailable_reason": "no resolver-selected update" + }, + { + "checked_urls": [], + "from_version": "0.137.0a4", + "package": "openai-codex-cli-bin", + "sources": [ + { + "available": true, + "kind": "release", + "label": "Codex repository releases", + "note": "", + "path": null, + "url": "https://github.com/openai/codex/releases", + "version": null + }, + { + "available": true, + "kind": "package-metadata", + "label": "Codex CLI binary package metadata", + "note": "", + "path": null, + "url": "https://pypi.org/project/openai-codex-cli-bin/", + "version": null + } + ], + "status": "not-needed", + "summaries": [], + "to_version": null, + "unavailable_reason": "no resolver-selected update" + }, + { + "checked_urls": [ + "https://antigravity.google/changelog", + "https://github.com/google-antigravity/antigravity-sdk-python", + "https://pypi.org/project/google-antigravity/" + ], + "from_version": "0.1.2", + "package": "google-antigravity", + "sources": [ + { + "available": true, + "kind": "changelog", + "label": "Google Antigravity changelog", + "note": "", + "path": null, + "url": "https://antigravity.google/changelog", + "version": "0.1.4" + }, + { + "available": true, + "kind": "repository", + "label": "Antigravity SDK repository", + "note": "", + "path": null, + "url": "https://github.com/google-antigravity/antigravity-sdk-python", + "version": "0.1.4" + }, + { + "available": true, + "kind": "package-metadata", + "label": "Antigravity package metadata", + "note": "", + "path": null, + "url": "https://pypi.org/project/google-antigravity/", + "version": "0.1.4" + } + ], + "status": "found", + "summaries": [ + "Official sources were fetched, but no package-version-specific entry for 0.1.4 was found." + ], + "to_version": "0.1.4", + "unavailable_reason": "sources fetched but no matching version text was found" + } +] diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/report.md b/reports/sdk-evolution-autonomous/20260622T153124Z/report.md new file mode 100644 index 0000000..019c658 --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/report.md @@ -0,0 +1,286 @@ +# SDK Evolution Agent Report + +## Run + +- Runtime: `antigravity-agent-sdk` +- Implementation enabled: `True` +- Draft PR enabled: `True` + +## Upstream Evidence + +- claude-agent-sdk: locked=0.2.96 installed=0.2.106 latest=0.2.106 +- openai-codex: locked=0.1.0b3 installed=0.1.0b3 latest=0.1.0b3 +- openai-codex-cli-bin: locked=0.137.0a4 installed=0.137.0a4 latest=0.136.0 +- google-antigravity: locked=0.1.2 installed=0.1.4 latest=0.1.4 + +## API Diffs + +- Diff count: `2` + +## Release Notes + +- claude-agent-sdk: found (0.2.96 -> 0.2.106) +- google-antigravity: found (0.1.2 -> 0.1.4) + +## Behavior Probes + +- Status: `pass` +- Changed contracts: `0` +- Breaking contracts: `0` +- Diff count: `2` + +## Direction Of Travel + +```json +{ + "packages": [ + { + "direction": "Upgrade to version 0.2.106, adding task status tracking symbols ('TERMINAL_TASK_STATUSES', 'TaskUpdatedMessage', 'TaskUpdatedStatus').", + "evidence": [ + "Added TERMINAL_TASK_STATUSES, TaskUpdatedMessage, and TaskUpdatedStatus to API.", + "adapter-contract probe passes successfully for candidate version 0.2.106." + ], + "name": "claude-agent-sdk" + }, + { + "direction": "Refactor model configuration and capabilities to support multimodal structures (Audio, Video, Image, Document) and unified model endpoints (Gemini, Vertex) while removing obsolete configuration classes (GeminiConfig, ModelConfig, ModelEntry, mcp).", + "evidence": [ + "Added Audio, Video, Image, Document, ModelTarget, ModelType, VertexEndpoint, GeminiAPIEndpoint to API.", + "Removed GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp from API.", + "Changed CapabilitiesConfig, LocalAgentConfig, and ToolContext configurations." + ], + "name": "google-antigravity" + } + ], + "themes": [ + { + "name": "Multimodal and Unified APIs in Google Antigravity", + "summary": "Google Antigravity is moving towards a standardized multimodal representation (Audio, Video, Document, etc.) and centralizing endpoint configurations under distinct Gemini and Vertex definitions, streamlining configuration components." + }, + { + "name": "Robust Task Lifecycle Tracking in Claude Agent SDK", + "summary": "The Claude Agent SDK is introducing explicit state machinery elements like TERMINAL_TASK_STATUSES and TaskUpdatedMessage to improve tracking of background or long-running tasks." + } + ], + "uncertainty": [ + "The potential impact on existing client setups from the complete removal of the 'mcp' configuration in google-antigravity.", + "The exact schema changes to LocalAgentConfig, CapabilitiesConfig, and ToolContext." + ] +} +``` + +## Architecture Decision + +- Manual design required: `False` +- Recursive self-adaptation impact: `False` +- Safe to implement: `True` + +```json +{ + "findings": [ + { + "classification": "compatible", + "evidence": [ + "claude-agent-sdk v0.2.96 -> v0.2.106", + "Probe adapter-contract has status pass with severity none", + "Added symbols: TERMINAL_TASK_STATUSES, TaskUpdatedMessage, TaskUpdatedStatus" + ], + "summary": "Claude Agent SDK introduces background task monitoring symbols with zero contract disruption." + }, + { + "classification": "compatible", + "evidence": [ + "google-antigravity v0.1.2 -> v0.1.4", + "Probe adapter-contract has status pass with severity none", + "Removed optional symbols GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp", + "Preserved all required LocalAgentConfig adapter fields" + ], + "summary": "Google Antigravity restructures config symbols for multimodal endpoints while maintaining core adapter compatibility." + } + ], + "manual_design_required": false, + "recursive_self_adaptation_impact": false, + "safe_to_implement": true, + "self_adaptation_plan": [ + "Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile." + ], + "uncertainty": [], + "verification_commands": [ + "uv lock --dry-run" + ] +} +``` + +## Implementation Summary + +```json +{ + "allowed": true, + "applied": true, + "blocked_reason": "", + "changes": [ + "Updated uv.lock for resolver-selected SDK packages: claude-agent-sdk, google-antigravity" + ], + "planned_changes": [ + "Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile." + ], + "verification_results": [ + { + "command": [ + "git", + "switch", + "-c", + "sdk-evolution-autonomous-update-20260622" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Switched to a new branch 'sdk-evolution-autonomous-update-20260622'\n", + "stdout": "" + }, + { + "command": [ + "uv", + "lock", + "-P", + "claude-agent-sdk", + "-P", + "google-antigravity" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Resolved 69 packages in 102ms\nUpdated claude-agent-sdk v0.2.96 -> v0.2.106\nUpdated google-antigravity v0.1.2 -> v0.1.4\n", + "stdout": "" + }, + { + "command": [ + "uv", + "run", + "ruff", + "check", + "." + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "All checks passed!\n" + }, + { + "command": [ + "uv", + "run", + "mypy" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "Success: no issues found in 14 source files\n" + }, + { + "command": [ + "uv", + "run", + "pytest" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "============================= test session starts ==============================\nplatform darwin -- Python 3.10.13, pytest-9.0.3, pluggy-1.6.0\nrootdir: /private/tmp/ark-evolution-all-packages\nconfigfile: pyproject.toml\nplugins: asyncio-1.4.0, anyio-4.13.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollected 114 items\n\ntests/test_antigravity_adapter.py .................. [ 15%]\ntests/test_claude_adapter.py ................. [ 30%]\ntests/test_codex_adapter.py ....................... [ 50%]\ntests/test_core.py .... [ 54%]\ntests/test_events.py ..... [ 58%]\ntests/test_live_smoke.py sss [ 61%]\ntests/test_mestre_compatibility.py .. [ 63%]\ntests/test_optional_dependencies.py . [ 64%]\ntests/test_provider_diagnostics.py . [ 64%]\ntests/test_sdk_contract.py ......... [ 72%]\ntests/test_sdk_evolution_agent.py ............................... [100%]\n\n======================== 111 passed, 3 skipped in 0.99s ========================\n" + }, + { + "command": [ + "uv", + "lock", + "--check" + ], + "removed_env": [], + "returncode": 0, + "stderr": "Resolved 69 packages in 3ms\n", + "stdout": "" + }, + { + "command": [ + "git", + "add", + "uv.lock", + "reports/sdk-evolution-autonomous/20260622T153124Z" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "" + }, + { + "command": [ + "git", + "commit", + "-m", + "Run SDK evolution update across packages" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "[sdk-evolution-autonomous-update-20260622 90f1d12] Run SDK evolution update across packages\n 20 files changed, 3652 insertions(+), 13 deletions(-)\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_diffs.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/01-claude-agent-sdk.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/02-claude-agent-sdk.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/03-openai-codex.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/04-openai-codex-cli-bin.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/05-google-antigravity.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/api_snapshots/06-google-antigravity.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/architecture_decision.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/behavior_diffs.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/behavior_probes.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/config.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/current_state.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/direction_analysis.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/events.jsonl\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/evidence.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/implementation_summary.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/release_notes.json\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/report.md\n create mode 100644 reports/sdk-evolution-autonomous/20260622T153124Z/review.json\n" + }, + { + "command": [ + "git", + "push", + "-u", + "origin", + "sdk-evolution-autonomous-update-20260622" + ], + "removed_env": [], + "returncode": 0, + "stderr": "remote: \nremote: Create a pull request for 'sdk-evolution-autonomous-update-20260622' on GitHub by visiting: \nremote: https://github.com/ebarti/agent-runtime-kit/pull/new/sdk-evolution-autonomous-update-20260622 \nremote: \nremote: GitHub found 5 vulnerabilities on ebarti/agent-runtime-kit's default branch (2 high, 1 moderate, 2 low). To find out more, visit: \nremote: https://github.com/ebarti/agent-runtime-kit/security/dependabot \nremote: \nTo https://github.com/ebarti/agent-runtime-kit.git\n * [new branch] sdk-evolution-autonomous-update-20260622 -> sdk-evolution-autonomous-update-20260622\n", + "stdout": "branch 'sdk-evolution-autonomous-update-20260622' set up to track 'origin/sdk-evolution-autonomous-update-20260622'.\n" + }, + { + "command": [ + "gh", + "pr", + "create", + "--draft", + "--title", + "Run SDK evolution update across vendor packages", + "--body", + "## SDK Evolution Report\n\n# SDK Evolution Agent Report\n\n## Run\n\n- Runtime: `antigravity-agent-sdk`\n- Implementation enabled: `True`\n- Draft PR enabled: `True`\n\n## Upstream Evidence\n\n- claude-agent-sdk: locked=0.2.96 installed=0.2.106 latest=0.2.106\n- openai-codex: locked=0.1.0b3 installed=0.1.0b3 latest=0.1.0b3\n- openai-codex-cli-bin: locked=0.137.0a4 installed=0.137.0a4 latest=0.136.0\n- google-antigravity: locked=0.1.2 installed=0.1.4 latest=0.1.4\n\n## API Diffs\n\n- Diff count: `2`\n\n## Release Notes\n\n- claude-agent-sdk: found (0.2.96 -> 0.2.106)\n- google-antigravity: found (0.1.2 -> 0.1.4)\n\n## Behavior Probes\n\n- Status: `pass`\n- Changed contracts: `0`\n- Breaking contracts: `0`\n- Diff count: `2`\n\n## Direction Of Travel\n\n```json\n{\n \"packages\": [\n {\n \"direction\": \"Upgrade to version 0.2.106, adding task status tracking symbols ('TERMINAL_TASK_STATUSES', 'TaskUpdatedMessage', 'TaskUpdatedStatus').\",\n \"evidence\": [\n \"Added TERMINAL_TASK_STATUSES, TaskUpdatedMessage, and TaskUpdatedStatus to API.\",\n \"adapter-contract probe passes successfully for candidate version 0.2.106.\"\n ],\n \"name\": \"claude-agent-sdk\"\n },\n {\n \"direction\": \"Refactor model configuration and capabilities to support multimodal structures (Audio, Video, Image, Document) and unified model endpoints (Gemini, Vertex) while removing obsolete configuration classes (GeminiConfig, ModelConfig, ModelEntry, mcp).\",\n \"evidence\": [\n \"Added Audio, Video, Image, Document, ModelTarget, ModelType, VertexEndpoint, GeminiAPIEndpoint to API.\",\n \"Removed GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp from API.\",\n \"Changed CapabilitiesConfig, LocalAgentConfig, and ToolContext configurations.\"\n ],\n \"name\": \"google-antigravity\"\n }\n ],\n \"themes\": [\n {\n \"name\": \"Multimodal and Unified APIs in Google Antigravity\",\n \"summary\": \"Google Antigravity is moving towards a standardized multimodal representation (Audio, Video, Document, etc.) and centralizing endpoint configurations under distinct Gemini and Vertex definitions, streamlining configuration components.\"\n },\n {\n \"name\": \"Robust Task Lifecycle Tracking in Claude Agent SDK\",\n \"summary\": \"The Claude Agent SDK is introducing explicit state machinery elements like TERMINAL_TASK_STATUSES and TaskUpdatedMessage to improve tracking of background or long-running tasks.\"\n }\n ],\n \"uncertainty\": [\n \"The potential impact on existing client setups from the complete removal of the 'mcp' configuration in google-antigravity.\",\n \"The exact schema changes to LocalAgentConfig, CapabilitiesConfig, and ToolContext.\"\n ]\n}\n```\n\n## Architecture Decision\n\n- Manual design required: `False`\n- Recursive self-adaptation impact: `False`\n- Safe to implement: `True`\n\n```json\n{\n \"findings\": [\n {\n \"classification\": \"compatible\",\n \"evidence\": [\n \"claude-agent-sdk v0.2.96 -> v0.2.106\",\n \"Probe adapter-contract has status pass with severity none\",\n \"Added symbols: TERMINAL_TASK_STATUSES, TaskUpdatedMessage, TaskUpdatedStatus\"\n ],\n \"summary\": \"Claude Agent SDK introduces background task monitoring symbols with zero contract disruption.\"\n },\n {\n \"classification\": \"compatible\",\n \"evidence\": [\n \"google-antigravity v0.1.2 -> v0.1.4\",\n \"Probe adapter-contract has status pass with severity none\",\n \"Removed optional symbols GeminiConfig, GenerationConfig, ModelConfig, ModelEntry, and mcp\",\n \"Preserved all required LocalAgentConfig adapter fields\"\n ],\n \"summary\": \"Google Antigravity restructures config symbols for multimodal endpoints while maintaining core adapter compatibility.\"\n }\n ],\n \"manual_design_required\": false,\n \"recursive_self_adaptation_impact\": false,\n \"safe_to_implement\": true,\n \"self_adaptation_plan\": [\n \"Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile.\"\n ],\n \"uncertainty\": [],\n \"verification_commands\": [\n \"uv lock --dry-run\"\n ]\n}\n```\n\n## Implementation Summary\n\n```json\n{\n \"allowed\": true,\n \"applied\": true,\n \"blocked_reason\": \"\",\n \"changes\": [\n \"Updated uv.lock for resolver-selected SDK packages: claude-agent-sdk, google-antigravity\"\n ],\n \"planned_changes\": [\n \"Upgrade claude-agent-sdk to v0.2.106 and google-antigravity to v0.1.4 in pyproject.toml and update uv lockfile.\"\n ],\n \"verification_results\": [\n {\n \"command\": [\n \"git\",\n \"switch\",\n \"-c\",\n \"sdk-evolution-autonomous-update-20260622\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"Switched to a new branch 'sdk-evolution-autonomous-update-20260622'\\n\",\n \"stdout\": \"\"\n },\n {\n \"command\": [\n \"uv\",\n \"lock\",\n \"-P\",\n \"claude-agent-sdk\",\n \"-P\",\n \"google-antigravity\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"Resolved 69 packages in 102ms\\nUpdated claude-agent-sdk v0.2.96 -> v0.2.106\\nUpdated google-antigravity v0.1.2 -> v0.1.4\\n\",\n \"stdout\": \"\"\n },\n {\n \"command\": [\n \"uv\",\n \"run\",\n \"ruff\",\n \"check\",\n \".\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"\",\n \"stdout\": \"All checks passed!\\n\"\n },\n {\n \"command\": [\n \"uv\",\n \"run\",\n \"mypy\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"\",\n \"stdout\": \"Success: no issues found in 14 source files\\n\"\n },\n {\n \"command\": [\n \"uv\",\n \"run\",\n \"pytest\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"\",\n \"stdout\": \"============================= test session starts ==============================\\nplatform darwin -- Python 3.10.13, pytest-9.0.3, pluggy-1.6.0\\nrootdir: /private/tmp/ark-evolution-all-packages\\nconfigfile: pyproject.toml\\nplugins: asyncio-1.4.0, anyio-4.13.0\\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\\ncollected 114 items\\n\\ntests/test_antigravity_adapter.py .................. [ 15%]\\ntests/test_claude_adapter.py ................. [ 30%]\\ntests/test_codex_adapter.py ....................... [ 50%]\\ntests/test_core.py .... [ 54%]\\ntests/test_events.py ..... [ 58%]\\ntests/test_live_smoke.py sss [ 61%]\\ntests/test_mestre_compatibility.py .. [ 63%]\\ntests/test_optional_dependencies.py . [ 64%]\\ntests/test_provider_diagnostics.py . [ 64%]\\ntests/test_sdk_contract.py ......... [ 72%]\\ntests/test_sdk_evolution_agent.py ............................... [100%]\\n\\n======================== 111 passed, 3 skipped in 0.99s ========================\\n\"\n },\n {\n \"command\": [\n \"uv\",\n \"lock\",\n \"--check\"\n ],\n \"removed_env\": [],\n \"returncode\": 0,\n \"stderr\": \"Resolved 69 packages in 3ms\\n\",\n \"stdout\": \"\"\n }\n ]\n}\n```\n\n## Current State Baseline\n\n- Promotion status: `promoted`\n- Promoted: `True`\n\n## Reviewer Output\n\n```json\n{\n \"reasons\": [\n \"Adapter-contract probes pass for both packages with severity none.\",\n \"Required adapter configuration fields are successfully preserved.\",\n \"API symbol churn does not break the adapter contract.\"\n ],\n \"required_changes\": [],\n \"status\": \"pass\"\n}\n```\n\n## Manual Review Checklist\n\n- Verify source references are enough for every architecture finding.\n- Verify vendor-specific behavior has not been flattened.\n- Verify recursive self-adaptation impact is handled or explicitly blocked.\n- Verify tests, docs, examples, and migration notes match public API changes.\n- Confirm no auto-merge or unsupported credential scraping was used.\n\n\n## Safety\n\n- Draft PR only.\n- No auto-merge.\n- Local credentials are not scraped.", + "--base", + "sdk-evolution-example-fixes-20260622", + "--head", + "sdk-evolution-autonomous-update-20260622" + ], + "removed_env": [], + "returncode": 0, + "stderr": "", + "stdout": "https://github.com/ebarti/agent-runtime-kit/pull/12\n" + } + ] +} +``` + +## Current State Baseline + +- Promotion status: `promoted` +- Promoted: `True` + +## Reviewer Output + +```json +{ + "reasons": [ + "Adapter-contract probes pass for both packages with severity none.", + "Required adapter configuration fields are successfully preserved.", + "API symbol churn does not break the adapter contract." + ], + "required_changes": [], + "status": "pass" +} +``` + +## Manual Review Checklist + +- Verify source references are enough for every architecture finding. +- Verify vendor-specific behavior has not been flattened. +- Verify recursive self-adaptation impact is handled or explicitly blocked. +- Verify tests, docs, examples, and migration notes match public API changes. +- Confirm no auto-merge or unsupported credential scraping was used. diff --git a/reports/sdk-evolution-autonomous/20260622T153124Z/review.json b/reports/sdk-evolution-autonomous/20260622T153124Z/review.json new file mode 100644 index 0000000..8e4ceda --- /dev/null +++ b/reports/sdk-evolution-autonomous/20260622T153124Z/review.json @@ -0,0 +1,9 @@ +{ + "reasons": [ + "Adapter-contract probes pass for both packages with severity none.", + "Required adapter configuration fields are successfully preserved.", + "API symbol churn does not break the adapter contract." + ], + "required_changes": [], + "status": "pass" +} diff --git a/uv.lock b/uv.lock index c2055cf..fcbae73 100644 --- a/uv.lock +++ b/uv.lock @@ -368,7 +368,7 @@ wheels = [ [[package]] name = "claude-agent-sdk" -version = "0.2.96" +version = "0.2.106" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -376,13 +376,13 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0f/e8/ce86f503f0e1548440ae3e35dbe99da6ba76715bc135c8c9f5f7c2bdd7d6/claude_agent_sdk-0.2.96.tar.gz", hash = "sha256:1932030ab114da9398e94bcc86b177b6ff579f5740238fb5c87751f8e745f572", size = 253659, upload-time = "2026-06-10T21:14:12.703Z" } +sdist = { url = "https://files.pythonhosted.org/packages/69/73/f5edec88b9548c3757e429dbfc62b16e46cac1300c9463cbb83ed5281266/claude_agent_sdk-0.2.106.tar.gz", hash = "sha256:26c20cf75db1ed609aae6217cb6dd40844365c66acf3a7abf4e877671695228e", size = 255630, upload-time = "2026-06-20T21:11:46.995Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/df/63/7651f888af06cb7524b247babc8021e9046cef457c4a9be33e8e4994e3da/claude_agent_sdk-0.2.96-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9bbf12b5b645f462e9c6e3c08c62c13fbfe156f125d25772178558b774cb3fe6", size = 65751202, upload-time = "2026-06-10T21:14:15.862Z" }, - { url = "https://files.pythonhosted.org/packages/52/68/26150eecf5d2ad1cbad2e5c2266bd1fc4a7934429e5e2759920d61140ec8/claude_agent_sdk-0.2.96-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:56528acd1920e90df71aa29c97cd17b97943d2e5628cb9ec93ae6a61ba2da3ba", size = 67803554, upload-time = "2026-06-10T21:14:19.39Z" }, - { url = "https://files.pythonhosted.org/packages/14/3a/919e6177126acd7b37995864110a6b3f597591e80eacac1a4b8ae8f9aeb2/claude_agent_sdk-0.2.96-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:966a3227590f419f00798cdfb2ed81159f2b578ecbdd23d8ac39fe23e7c8e0bb", size = 75342676, upload-time = "2026-06-10T21:14:22.761Z" }, - { url = "https://files.pythonhosted.org/packages/28/ac/658381a6594176deeefa5f847bc43d99d60704ee99f9c86753d4a7655338/claude_agent_sdk-0.2.96-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:339e1589b784ed1912a7dfe567ebfdfd8d0b919717d7293ccb9272b0ac89e229", size = 75514017, upload-time = "2026-06-10T21:14:25.942Z" }, - { url = "https://files.pythonhosted.org/packages/d3/40/406f3498ebee470575a5166d256547a4103f4e126ff031d91f37bf012824/claude_agent_sdk-0.2.96-py3-none-win_amd64.whl", hash = "sha256:0e2674a16a26be597b5417823f38c0c488cfa79122cc87bedb442ac46f687f20", size = 76124918, upload-time = "2026-06-10T21:14:33.175Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ec/190cc7304f1a439a2d87a4e4ac9543eb6aed5dd97aab9ce549f83bf7f7ed/claude_agent_sdk-0.2.106-py3-none-macosx_11_0_arm64.whl", hash = "sha256:86506d6a701759a8215083283644513bce56c968b1b95f67108a3114a177eaaf", size = 64468649, upload-time = "2026-06-20T21:11:50.182Z" }, + { url = "https://files.pythonhosted.org/packages/cf/10/bf6cafd2523c3dd9c961ef496485e0540f3fab71a9b1ce125bccfdd3d448/claude_agent_sdk-0.2.106-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:9894cb7bdb276b46085b0ced1e6d867454b56c86fc703ba8e6fdd2a89eec4144", size = 67808581, upload-time = "2026-06-20T21:11:53.335Z" }, + { url = "https://files.pythonhosted.org/packages/35/e0/42b6c608d3add29c2f5057fd9d31c23c18a853cd24c1a51d5962699feab0/claude_agent_sdk-0.2.106-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:d158f15ba7c4990f72b84d88362dea71d2fa315b1f29772989e22f29c130bdec", size = 73046395, upload-time = "2026-06-20T21:11:56.82Z" }, + { url = "https://files.pythonhosted.org/packages/68/09/0d0b41145e49e5b29087e541791ea74e1c0178f6afa259210ec35f27cc51/claude_agent_sdk-0.2.106-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:778eb7e6aa07363c8b6d669bcb778e889011430a245bddc624380344ac8cc00b", size = 74000856, upload-time = "2026-06-20T21:12:00.652Z" }, + { url = "https://files.pythonhosted.org/packages/61/39/c97cd496d3bb7be4e2903b0a44ee85265cd9a8d1198d2bd0ea8b355d72c8/claude_agent_sdk-0.2.106-py3-none-win_amd64.whl", hash = "sha256:a9b60131f064dd1a260c55308ed1f26a53db0a942cdf859843ff606c81006400", size = 73741662, upload-time = "2026-06-20T21:12:04.414Z" }, ] [[package]] @@ -489,7 +489,7 @@ wheels = [ [[package]] name = "google-antigravity" -version = "0.1.2" +version = "0.1.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "absl-py" }, @@ -501,11 +501,11 @@ dependencies = [ { name = "websockets" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/03/d5/c6dc9b06d8248059c4ebba3489f620be1e53b03528f822c0fcf9b2dcc1bf/google_antigravity-0.1.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:129f370b44320aefc00999ccf7c97418cd40252c5d3c07c3569843224500ffc5", size = 30044136, upload-time = "2026-06-04T21:19:14.18Z" }, - { url = "https://files.pythonhosted.org/packages/ca/b0/a2cd625471f365601f45315b21ec02c4f9499180c00a88544bb88be567ec/google_antigravity-0.1.2-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:e888b2aa0b39d4526eb4add020c6bd5c1a2bfc8e4a3e5c228fc1698af2de4011", size = 32525913, upload-time = "2026-06-04T21:19:17.176Z" }, - { url = "https://files.pythonhosted.org/packages/73/af/36b933c23f9114c58185ea18c7c12ab40e862f06a3074bdcc6ab6208fcc6/google_antigravity-0.1.2-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:5e7a7d88f3f6401b8efbf45477184874c60e387990e9ddb52686aad0da0be5f2", size = 35584793, upload-time = "2026-06-04T21:19:20.61Z" }, - { url = "https://files.pythonhosted.org/packages/77/e4/d51b1003c03a2acb35919bf1e681974ec584f4354d3529bcaa79856d3c1c/google_antigravity-0.1.2-py3-none-win_amd64.whl", hash = "sha256:000fc0d3c0ef35551c7fc683a090ff2a61a20c5fedaad4d5e482239499d63207", size = 34671491, upload-time = "2026-06-04T21:19:23.747Z" }, - { url = "https://files.pythonhosted.org/packages/4f/c4/0acbd66d9150f25ab693c3bfa14d440c48fa1e6dd32cdfe243f901cc1b61/google_antigravity-0.1.2-py3-none-win_arm64.whl", hash = "sha256:40cc33c30469008ee3f78e6cc8130cff9ad4e1d66c0a82b59740965a901d8b62", size = 31367318, upload-time = "2026-06-04T21:19:26.763Z" }, + { url = "https://files.pythonhosted.org/packages/89/e2/1c6f9d4ffb4d97088cac763fa0dd3604504283f4b8d3ea0c07ca33d9f1ee/google_antigravity-0.1.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cb83022853d1021abffb103dec248cdff92fe0c6d0121f0229616f5524624d01", size = 30702577, upload-time = "2026-06-18T18:15:52.589Z" }, + { url = "https://files.pythonhosted.org/packages/f7/06/6d853664783e2b17ef2e95a6202add07a331e1dd55430341db257200c251/google_antigravity-0.1.4-py3-none-manylinux_2_17_aarch64.whl", hash = "sha256:4276600a2480cb24bf74f3334f082df2059019236766ea23b5af9f9e0e2a4ae0", size = 33270837, upload-time = "2026-06-18T18:15:55.187Z" }, + { url = "https://files.pythonhosted.org/packages/5f/72/6efc89b3aa36f85f583afa9b8214f3b758ec6cd056be5798c80f58861826/google_antigravity-0.1.4-py3-none-manylinux_2_17_x86_64.whl", hash = "sha256:cbc35edfff18a6795f46c096f8daf2a87653b1739ef4c63b01a04ba795223f95", size = 36411235, upload-time = "2026-06-18T18:15:57.888Z" }, + { url = "https://files.pythonhosted.org/packages/7b/9e/175fcbc9c9f4b5139cf42feed0d58553ec8384c8d21fb5084407cd57c8ce/google_antigravity-0.1.4-py3-none-win_amd64.whl", hash = "sha256:ab2f1cca42ff6c90bd3b2a56f6df8d90958535ff8c23704bc96b939ca273922d", size = 35416341, upload-time = "2026-06-18T18:16:00.805Z" }, + { url = "https://files.pythonhosted.org/packages/c5/9a/838bb2bdb162694452287b032da9ad99661661c58e02446bd620de560621/google_antigravity-0.1.4-py3-none-win_arm64.whl", hash = "sha256:0748cec67c864769501ef5ca7886075fa8c235d750486ef3b805c903f14ce50b", size = 32000969, upload-time = "2026-06-18T18:16:03.691Z" }, ] [[package]]