{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://sandbox-agent/schemas/amp.json", "title": "AMP Code SDK Schema", "definitions": { "StreamJSONMessage": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "system", "user", "assistant", "result", "message", "tool_call", "tool_result", "error", "done" ] }, "id": { "type": "string" }, "content": { "type": "string" }, "tool_call": { "$ref": "#/definitions/ToolCall" }, "error": { "type": "string" }, "subtype": { "type": "string" }, "cwd": { "type": "string" }, "session_id": { "type": "string" }, "tools": { "type": "array", "items": { "type": "string" } }, "mcp_servers": { "type": "array", "items": { "type": "object" } }, "message": { "type": "object" }, "parent_tool_use_id": { "type": "string" }, "duration_ms": { "type": "number" }, "is_error": { "type": "boolean" }, "num_turns": { "type": "number" }, "result": { "type": "string" } }, "required": [ "type" ] }, "AmpOptions": { "type": "object", "properties": { "model": { "type": "string" }, "apiKey": { "type": "string" }, "baseURL": { "type": "string" }, "maxTokens": { "type": "number" }, "temperature": { "type": "number" }, "systemPrompt": { "type": "string" }, "tools": { "type": "array", "items": { "type": "object" } }, "workingDirectory": { "type": "string" }, "permissionRules": { "type": "array", "items": { "$ref": "#/definitions/PermissionRule" } } } }, "PermissionRule": { "type": "object", "properties": { "tool": { "type": "string" }, "action": { "type": "string", "enum": [ "allow", "deny", "ask" ] }, "pattern": { "type": "string" }, "description": { "type": "string" } }, "required": [ "tool", "action" ] }, "Message": { "type": "object", "properties": { "role": { "type": "string", "enum": [ "user", "assistant", "system" ] }, "content": { "type": "string" }, "tool_calls": { "type": "array", "items": { "$ref": "#/definitions/ToolCall" } } }, "required": [ "role", "content" ] }, "ToolCall": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "arguments": { "oneOf": [ { "type": "string" }, { "type": "object" } ] } }, "required": [ "id", "name", "arguments" ] } } }