Skip to content

docs(openrouter-decisions): sync with openrouter-web changes - #195

Open
devin-ai-integration[bot] wants to merge 7 commits into
mainfrom
devin/1791392647-update-openrouter-decisions
Open

devin-ai-integration[bot] wants to merge 7 commits into
mainfrom
devin/1791392647-update-openrouter-decisions

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

2026-10-28 update

Synced with openrouter-web#54599, which makes OpenRouter accept TypeSafe's assets map and asset references in Decisions requests. This replaces the "assets is ignored" note from the 10-20 update. The image bullet in references/decisions-api.md now says:

  • A top-level assets map is accepted. Each entry is { type?: "image", format: "png" | "jpg" | "jpeg", data_base64 } with no data: prefix, and its key is written where the image belongs. If an asset is never referenced in state, instructions, or criteria, the request fails with a 400. image_url parts and assets can be mixed in one request.
  • Jev receives assets exactly as sent and matches references inside longer text, so use UUID-style references. Other models resolve a reference only when it is the whole string of a top-level state item.
  • On models other than Jev, an image part or reference nested inside state objects, instructions, or criteria now fails with a 400 (before, it was read silently as text).
  • scripts/lib.ts still rejects assets (its REQUEST_KEYS doesn't include it), so the doc tells readers to send asset requests from their own client.

Also merged main (#198, #202) into the branch.

2026-10-20 update

Synced with openrouter-web#53095, which documents every position where Jev reads image parts. references/decisions-api.md image bullet now says:

  • Jev reads an image in instructions only when instructions is an array or object. In criteria it reads Noul true/false, Choice option values, and Score levels.
  • To put an image inside longer text, send the text as an array of strings with the image part between them, for example ["Compare", <image part>, "with the badge"]. An image reference written inside a string reaches Jev as plain text.
  • A top-level assets map of named references, as in TypeSafe's own API, is currently ignored, so Jev never sees those images. (superseded by the 10-28 update)

Link to Devin session: https://openrouter.devinenterprise.com/sessions/5d5b1d5c17cb451680ecadd928fafa30
Open in Devin Desktop: https://openrouter.devinenterprise.com/desktop/session/5d5b1d5c17cb451680ecadd928fafa30?variant=devin

2026-10-15 update

Synced with openrouter-web#51219 (Jev docs) and #51204 (TypeSafe first-party adapter): typesafe/jev-1.14 adds a fourth primitive, box, and reads images.

// question: instructions only, no criteria; Jev 1.14+ only, other models 400
"product": { "type": "box", "instructions": "the product in the listing photo" }
// answer: edges as fractions of image width/height from the top-left corner
"product": { "type": "box", "box": { "top": 0.49, "bottom": 0.89, "left": 0.58, "right": 0.96 }, "confidence": 0.93 }
  • references/decisions-api.md: box question and answer shapes, no "not found" answer (pair with a noul), early-feature caveat; Jev reads only png/jpeg but also reads image parts nested anywhere in state and in instructions/criteria.
  • SKILL.md step 2: when a judgment is a box.
  • scripts/lib.ts: BoxQuestion/BoxAnswer types; parseRequest accepts box (rejects criteria on it) and response parsing validates the four finite edges. Checked locally with bun.

Link to Devin session: https://openrouter.devinenterprise.com/sessions/b72ed27d0640491681f7d2cb82a73de2
Open in Devin Desktop: https://openrouter.devinenterprise.com/desktop/session/b72ed27d0640491681f7d2cb82a73de2?variant=devin


Devin Review

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

Original prompt from Automation

You are the public skills sync pipeline. Your job is to scan PRs merged to main on OpenRouterTeam/openrouter-web in the last 24 hours, determine if any changes warrant updating the public agent skills in OpenRouterTeam/skills, and open PRs to the skills repo when updates are needed.

#``# Step 1: Identify relevant merged PRs

Clone both repos:

cd /home/ubuntu/repos/openrouter-web
git fetch origin main
git log --since='24 hours ago' --merges --first-parent origin/main --pretty=format:'%H|%s' --name-only

For each merged PR, collect the list of changed files. Only PRs that touch the paths in the mapping below are relevant. Skip bot commits (devin-ai-integration[bot], Devin AI, GitHub Actions Bot, openrouter[bot], opencode-agent[bot], OpenRouter SDK Bot, Claude, detail-app[bot], forge-the-devex-intern[bot], dependabot[bot]).

If no relevant PRs were merged, post a short message to the #devrel Slack channel (C08LQFVSC7Q) saying no skill-relevant changes were detected today, and exit.

#``# Step 2: Map changed files to affected skills

Use this mapping to determine which public skills are potentially affected:

openrouter-web paths Affected skill(s) in OpenRouterTeam/skills
sdks/typescript/, packages/llm-interfaces/ openrouter-typescript-sdk, openrouter-agent-migration
services/cfw-*/src/routes/*analytics*, analytics query/response schemas openrouter-analytics, openrouter-analytics-query, openrouter-analytics-schema
Generation routes, /api/v1/generation openrouter-generations
Image generation adapters, packages/image-generation/ openrouter-images
supabase/seeds/, model schemas, /api/v1/models route openrouter-models
OAuth/auth routes, PKCE flow code openrouter-oauth
STT adapters, services/cfw-stt-api/, /api/v1/audio/transcriptions openrouter-stt
TTS routes, /api/v1/audio/speech openrouter-tts
Video adapters, /api/v1/videos openrouter-video
``@`openr... (3383 chars truncated...)

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Devin Review: 1 flag

Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

…parts

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…and ignored assets map

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…mage 400s

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants