diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index 0cea6899b..a2b96f4ed 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -15039,8 +15039,10 @@ components: example: attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -15060,6 +15062,9 @@ components: created_at: description: 'ISO 8601 creation time.' type: 'string' + created_by_you: + description: 'Whether the user behind the key created the intern. Present on list and retrieve; absent for organization keys, which act for no user.' + type: 'boolean' description: description: 'Free-form description.' type: @@ -15070,6 +15075,11 @@ components: type: - 'string' - 'null' + icon_sha256: + description: 'SHA-256 of the intern icon, or null when it has none. Present on list and retrieve; fetch the bytes from `GET /api/v1/interns/{intern_id}/icon`.' + type: + - 'string' + - 'null' id: description: 'Intern id.' type: 'string' @@ -15814,8 +15824,10 @@ components: data: - attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -41956,8 +41968,10 @@ paths: data: - attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -42080,8 +42094,10 @@ paths: example: attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -42101,8 +42117,10 @@ paths: example: attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -42448,8 +42466,10 @@ paths: example: attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -42556,8 +42576,10 @@ paths: example: attached_vault_id: null created_at: '2026-09-16T08:30:00.000Z' + created_by_you: true description: 'Researches customer questions' hostname: 'research-assistant.openrouter.ai' + icon_sha256: null id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' instructions: null last_failure_message: null @@ -43430,6 +43452,103 @@ paths: summary: 'Sign a daemon request with the caller''s identity' tags: - 'Interns' + /interns/{internId}/icon: + get: + description: 'Returns the icon image of one visible intern. Pass the intern''s `icon_sha256` as `v` to receive a response that can be cached indefinitely. The API key selects the caller, workspace and visible interns. An intern''s own API key sees only that intern: the collection and every other intern answer 404 to it. There is no default workspace fallback. Requests on regional hostnames such as `eu.openrouter.ai` are refused. [API key](/docs/api-reference/authentication) required.' + operationId: 'getInternIcon' + parameters: + - description: 'ID of an intern visible to the authenticated API key.' + in: 'path' + name: 'internId' + required: true + schema: + description: 'ID of an intern visible to the authenticated API key.' + example: '7c9e6679-7425-40de-944b-e07fc1f90ae7' + minLength: 1 + type: 'string' + - description: 'The `icon_sha256` the caller expects.' + in: 'query' + name: 'v' + required: false + schema: + description: 'The `icon_sha256` the caller expects.' + type: 'string' + responses: + '200': + content: + image/jpeg: + schema: + format: 'binary' + type: 'string' + image/png: + schema: + format: 'binary' + type: 'string' + description: 'Icon image bytes.' + '401': + content: + application/json: + example: + error: + code: 401 + message: 'Invalid or missing API key' + schema: + $ref: '#/components/schemas/InternLifecycleError' + description: 'Missing, unknown or provisioning API key.' + '403': + content: + application/json: + example: + error: + code: 403 + message: 'Forbidden' + schema: + $ref: '#/components/schemas/InternLifecycleError' + description: 'The key owner no longer has access, or the request used a regional hostname.' + '404': + content: + application/json: + example: + error: + code: 404 + message: 'Intern not found' + metadata: + reason: 'not_found' + retryable: false + schema: + $ref: '#/components/schemas/InternLifecycleError' + description: 'The caller is outside the Intern API programme, the intern is hidden, or lifecycle writes are disabled.' + '408': + content: + application/json: + example: + error: + code: 408 + message: 'Operation timed out after 10s. Please try again later.' + metadata: + reason: 'timeout' + retryable: true + schema: + $ref: '#/components/schemas/InternLifecycleError' + description: 'The request exceeded its route deadline. The deadline quoted in the message is the route''s own, so it differs between operations.' + '500': + content: + application/json: + example: + error: + code: 500 + message: 'The request could not be completed' + metadata: + reason: 'internal_error' + retryable: true + schema: + $ref: '#/components/schemas/InternLifecycleError' + description: 'The request could not be completed. `metadata.reason` says whether to try again: `internal_error` is a transient failure and carries `metadata.retryable: true`, so the same request may be sent again, while `configuration_error` carries `retryable: false` because the next attempt reads the same missing binding or unusable stored credential.' + security: + - apiKey: [] + summary: 'Get an intern''s icon' + tags: + - 'Interns' /interns/{internId}/invoke: post: description: "Starts a run on one of your interns and answers `202` with the `session_id` as soon as the intern accepts it. The run keeps going on the intern after the response. Nothing about its progress comes back on this request; the intern reports through its own tools, such as Slack.\n\nSend the same `session_id` later to continue the conversation, for example to hand the intern a decision on work it started. If that session already has a run going, the prompt is delivered into it and the status is `steered`. A `session_id` is accepted only from the caller it was issued to, on the same intern; any other, including sessions started from Slack or the chat endpoint, is refused with `404`.\n\nRuns started here self-drive: the intern consents to its own tool approvals, and a question it asks is answered by its own fallback. A run ends when the intern finishes it or after its execution deadline (1 hour by default).\n\nAvailable to interns programme members. Callers outside the programme receive `404` for every path under `/api/v1/interns`."