waypoi 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/.github/instructions/ui.instructions.md +42 -0
  2. package/.github/workflows/ci.yml +35 -0
  3. package/.github/workflows/publish.yml +71 -0
  4. package/.github/workflows/release.yml +48 -0
  5. package/.playwright-mcp/console-2026-04-04T01-41-10-746Z.log +2 -0
  6. package/.playwright-mcp/console-2026-04-04T01-41-28-799Z.log +3 -0
  7. package/.playwright-mcp/console-2026-04-05T02-26-51-909Z.log +76 -0
  8. package/.playwright-mcp/page-2026-04-04T01-41-10-816Z.yml +1 -0
  9. package/.playwright-mcp/page-2026-04-04T01-41-29-141Z.yml +77 -0
  10. package/.playwright-mcp/page-2026-04-04T01-41-42-633Z.yml +190 -0
  11. package/.playwright-mcp/page-2026-04-04T01-42-03-929Z.yml +262 -0
  12. package/.playwright-mcp/page-2026-04-04T02-12-54-813Z.yml +6 -0
  13. package/.playwright-mcp/page-2026-04-04T02-14-58-600Z.yml +190 -0
  14. package/.playwright-mcp/page-2026-04-04T02-15-03-923Z.yml +190 -0
  15. package/.playwright-mcp/page-2026-04-04T02-15-07-426Z.yml +190 -0
  16. package/.playwright-mcp/page-2026-04-04T02-15-25-729Z.yml +262 -0
  17. package/.playwright-mcp/page-2026-04-04T02-16-22-984Z.yml +262 -0
  18. package/.playwright-mcp/page-2026-04-04T02-17-00-599Z.yml +190 -0
  19. package/.playwright-mcp/page-2026-04-04T02-17-50-874Z.yml +190 -0
  20. package/.playwright-mcp/page-2026-04-05T02-26-55-570Z.yml +6 -0
  21. package/AGENTS.md +48 -0
  22. package/CHANGELOG.md +131 -0
  23. package/README.md +552 -0
  24. package/assets/agent-mode.png +0 -0
  25. package/assets/categorize.png +0 -0
  26. package/assets/dashboard.png +0 -0
  27. package/assets/endpoint-proxy.png +0 -0
  28. package/assets/icon.png +0 -0
  29. package/assets/mcp-generate-image.png +0 -0
  30. package/assets/mcp-understand-image.png +0 -0
  31. package/assets/peek-token-flow.png +0 -0
  32. package/assets/playground.png +0 -0
  33. package/assets/sankey.png +0 -0
  34. package/cli/index.ts +2805 -0
  35. package/cli/legacyRewrite.ts +108 -0
  36. package/cli/modelRef.ts +24 -0
  37. package/dist/cli/index.js +2536 -0
  38. package/dist/cli/legacyRewrite.js +92 -0
  39. package/dist/cli/modelRef.js +20 -0
  40. package/dist/src/benchmark/artifacts.js +131 -0
  41. package/dist/src/benchmark/capabilityClassifier.js +81 -0
  42. package/dist/src/benchmark/capabilityStore.js +144 -0
  43. package/dist/src/benchmark/config.js +238 -0
  44. package/dist/src/benchmark/gates.js +118 -0
  45. package/dist/src/benchmark/jobs.js +252 -0
  46. package/dist/src/benchmark/runner.js +1847 -0
  47. package/dist/src/benchmark/schema.js +353 -0
  48. package/dist/src/benchmark/suites.js +314 -0
  49. package/dist/src/benchmark/tinyQaDataset.js +422 -0
  50. package/dist/src/benchmark/types.js +25 -0
  51. package/dist/src/config.js +47 -0
  52. package/dist/src/index.js +178 -0
  53. package/dist/src/mcp/client.js +215 -0
  54. package/dist/src/mcp/discovery.js +226 -0
  55. package/dist/src/mcp/policy.js +65 -0
  56. package/dist/src/mcp/registry.js +129 -0
  57. package/dist/src/mcp/service.js +460 -0
  58. package/dist/src/middleware/auth.js +179 -0
  59. package/dist/src/middleware/requestCapture.js +192 -0
  60. package/dist/src/middleware/requestStats.js +118 -0
  61. package/dist/src/pools/builder.js +132 -0
  62. package/dist/src/pools/repository.js +69 -0
  63. package/dist/src/pools/scheduler.js +360 -0
  64. package/dist/src/pools/types.js +2 -0
  65. package/dist/src/protocols/adapters/dashscope.js +267 -0
  66. package/dist/src/protocols/adapters/inferenceV2.js +346 -0
  67. package/dist/src/protocols/adapters/openai.js +27 -0
  68. package/dist/src/protocols/registry.js +99 -0
  69. package/dist/src/protocols/types.js +2 -0
  70. package/dist/src/providers/health.js +153 -0
  71. package/dist/src/providers/importer.js +289 -0
  72. package/dist/src/providers/modelRegistry.js +313 -0
  73. package/dist/src/providers/repository.js +361 -0
  74. package/dist/src/providers/types.js +2 -0
  75. package/dist/src/routes/admin.js +531 -0
  76. package/dist/src/routes/audio.js +295 -0
  77. package/dist/src/routes/chat.js +240 -0
  78. package/dist/src/routes/embeddings.js +157 -0
  79. package/dist/src/routes/images.js +288 -0
  80. package/dist/src/routes/mcp.js +256 -0
  81. package/dist/src/routes/mcpService.js +100 -0
  82. package/dist/src/routes/models.js +48 -0
  83. package/dist/src/routes/responses.js +711 -0
  84. package/dist/src/routes/sessions.js +450 -0
  85. package/dist/src/routes/stats.js +270 -0
  86. package/dist/src/routes/ui.js +97 -0
  87. package/dist/src/routes/videos.js +107 -0
  88. package/dist/src/routing/router.js +338 -0
  89. package/dist/src/services/imageGeneration.js +280 -0
  90. package/dist/src/services/imageUnderstanding.js +352 -0
  91. package/dist/src/services/videoGeneration.js +79 -0
  92. package/dist/src/storage/captureRepository.js +1591 -0
  93. package/dist/src/storage/files.js +157 -0
  94. package/dist/src/storage/imageCache.js +346 -0
  95. package/dist/src/storage/repositories.js +388 -0
  96. package/dist/src/storage/sessionRepository.js +370 -0
  97. package/dist/src/storage/statsRepository.js +204 -0
  98. package/dist/src/transport/httpClient.js +126 -0
  99. package/dist/src/types.js +2 -0
  100. package/dist/src/utils/messageMedia.js +285 -0
  101. package/dist/src/utils/modelCapabilities.js +108 -0
  102. package/dist/src/utils/modelDiscovery.js +170 -0
  103. package/dist/src/version.js +5 -0
  104. package/dist/src/workers/captureRetention.js +25 -0
  105. package/dist/src/workers/configWatcher.js +91 -0
  106. package/dist/src/workers/healthChecker.js +21 -0
  107. package/dist/src/workers/statsRotation.js +41 -0
  108. package/docs/LLM/output_schema.md +312 -0
  109. package/docs/benchmark.md +208 -0
  110. package/docs/mcp-guidelines.md +125 -0
  111. package/docs/mcp-service.md +178 -0
  112. package/docs/opencode.md +86 -0
  113. package/docs/providers.md +79 -0
  114. package/examples/benchmark.config.yaml +28 -0
  115. package/examples/providers/alibaba-dashscope.yaml +88 -0
  116. package/examples/providers/alibaba-llm.yaml +64 -0
  117. package/examples/providers/alibaba-registry.yaml +7 -0
  118. package/examples/providers/inference-v2-ray.yaml +29 -0
  119. package/examples/scenarios/assets/omni-call-sample.wav +0 -0
  120. package/examples/scenarios/custom.jsonl +5 -0
  121. package/examples/scenarios/custom.yaml +40 -0
  122. package/model-form-v2.png +0 -0
  123. package/package.json +66 -0
  124. package/provider-form-v2.png +0 -0
  125. package/provider-form.png +0 -0
  126. package/scripts/manual-test.sh +11 -0
  127. package/scripts/version-from-git.js +23 -0
  128. package/src/benchmark/artifacts.ts +149 -0
  129. package/src/benchmark/capabilityClassifier.ts +99 -0
  130. package/src/benchmark/capabilityStore.ts +174 -0
  131. package/src/benchmark/config.ts +337 -0
  132. package/src/benchmark/gates.ts +164 -0
  133. package/src/benchmark/jobs.ts +312 -0
  134. package/src/benchmark/runner.ts +2519 -0
  135. package/src/benchmark/schema.ts +443 -0
  136. package/src/benchmark/suites.ts +323 -0
  137. package/src/benchmark/tinyQaDataset.ts +428 -0
  138. package/src/benchmark/types.ts +442 -0
  139. package/src/config.ts +44 -0
  140. package/src/index.ts +195 -0
  141. package/src/mcp/client.ts +305 -0
  142. package/src/mcp/discovery.ts +266 -0
  143. package/src/mcp/policy.ts +105 -0
  144. package/src/mcp/registry.ts +164 -0
  145. package/src/mcp/service.ts +611 -0
  146. package/src/middleware/auth.ts +251 -0
  147. package/src/middleware/requestCapture.ts +245 -0
  148. package/src/middleware/requestStats.ts +163 -0
  149. package/src/pools/builder.ts +159 -0
  150. package/src/pools/repository.ts +71 -0
  151. package/src/pools/scheduler.ts +425 -0
  152. package/src/pools/types.ts +117 -0
  153. package/src/protocols/adapters/dashscope.ts +335 -0
  154. package/src/protocols/adapters/inferenceV2.ts +428 -0
  155. package/src/protocols/adapters/openai.ts +32 -0
  156. package/src/protocols/registry.ts +117 -0
  157. package/src/protocols/types.ts +81 -0
  158. package/src/providers/health.ts +207 -0
  159. package/src/providers/importer.ts +402 -0
  160. package/src/providers/modelRegistry.ts +415 -0
  161. package/src/providers/repository.ts +439 -0
  162. package/src/providers/types.ts +113 -0
  163. package/src/routes/admin.ts +666 -0
  164. package/src/routes/audio.ts +372 -0
  165. package/src/routes/chat.ts +301 -0
  166. package/src/routes/embeddings.ts +197 -0
  167. package/src/routes/images.ts +356 -0
  168. package/src/routes/mcp.ts +320 -0
  169. package/src/routes/mcpService.ts +114 -0
  170. package/src/routes/models.ts +50 -0
  171. package/src/routes/responses.ts +872 -0
  172. package/src/routes/sessions.ts +558 -0
  173. package/src/routes/stats.ts +312 -0
  174. package/src/routes/ui.ts +96 -0
  175. package/src/routes/videos.ts +132 -0
  176. package/src/routing/router.ts +501 -0
  177. package/src/services/imageGeneration.ts +396 -0
  178. package/src/services/imageUnderstanding.ts +449 -0
  179. package/src/services/videoGeneration.ts +127 -0
  180. package/src/storage/captureRepository.ts +1835 -0
  181. package/src/storage/files.ts +178 -0
  182. package/src/storage/imageCache.ts +405 -0
  183. package/src/storage/repositories.ts +494 -0
  184. package/src/storage/sessionRepository.ts +419 -0
  185. package/src/storage/statsRepository.ts +238 -0
  186. package/src/transport/httpClient.ts +145 -0
  187. package/src/types.ts +322 -0
  188. package/src/utils/messageMedia.ts +293 -0
  189. package/src/utils/modelCapabilities.ts +161 -0
  190. package/src/utils/modelDiscovery.ts +203 -0
  191. package/src/workers/captureRetention.ts +25 -0
  192. package/src/workers/configWatcher.ts +115 -0
  193. package/src/workers/healthChecker.ts +22 -0
  194. package/src/workers/statsRotation.ts +49 -0
  195. package/tests/benchmarkAdminRoutes.test.ts +82 -0
  196. package/tests/benchmarkBasics.test.ts +116 -0
  197. package/tests/captureAdminRoutes.test.ts +420 -0
  198. package/tests/captureRepository.test.ts +797 -0
  199. package/tests/cliLegacyRewrite.test.ts +45 -0
  200. package/tests/imageGeneration.service.test.ts +107 -0
  201. package/tests/imageUnderstanding.service.test.ts +123 -0
  202. package/tests/mcpPolicy.test.ts +105 -0
  203. package/tests/mcpService.test.ts +1245 -0
  204. package/tests/modelRef.test.ts +23 -0
  205. package/tests/modelsRoutes.test.ts +154 -0
  206. package/tests/sessionMediaCache.test.ts +167 -0
  207. package/tests/statsRoutes.test.ts +323 -0
  208. package/tsconfig.json +15 -0
  209. package/ui/index.html +16 -0
  210. package/ui/package-lock.json +8521 -0
  211. package/ui/package.json +52 -0
  212. package/ui/postcss.config.js +6 -0
  213. package/ui/public/assets/apple-touch-icon.png +0 -0
  214. package/ui/public/assets/favicon-16.png +0 -0
  215. package/ui/public/assets/favicon-32.png +0 -0
  216. package/ui/public/assets/icon-192.png +0 -0
  217. package/ui/public/assets/icon-512.png +0 -0
  218. package/ui/src/App.tsx +27 -0
  219. package/ui/src/api/client.ts +1503 -0
  220. package/ui/src/components/EndpointUsageGuide.tsx +361 -0
  221. package/ui/src/components/Layout.tsx +124 -0
  222. package/ui/src/components/MessageContent.tsx +365 -0
  223. package/ui/src/components/ToolCallMessage.tsx +179 -0
  224. package/ui/src/components/ToolPicker.tsx +442 -0
  225. package/ui/src/components/messageContentParser.test.ts +41 -0
  226. package/ui/src/components/messageContentParser.ts +73 -0
  227. package/ui/src/components/thinkingPreview.test.ts +27 -0
  228. package/ui/src/components/thinkingPreview.ts +15 -0
  229. package/ui/src/components/toMermaidSankey.test.ts +78 -0
  230. package/ui/src/components/toMermaidSankey.ts +56 -0
  231. package/ui/src/components/ui/button.tsx +58 -0
  232. package/ui/src/components/ui/input.tsx +21 -0
  233. package/ui/src/components/ui/textarea.tsx +21 -0
  234. package/ui/src/lib/utils.ts +6 -0
  235. package/ui/src/main.tsx +9 -0
  236. package/ui/src/pages/AgentPlayground.tsx +2010 -0
  237. package/ui/src/pages/Benchmark.tsx +988 -0
  238. package/ui/src/pages/Dashboard.tsx +581 -0
  239. package/ui/src/pages/Peek.tsx +962 -0
  240. package/ui/src/pages/Settings.tsx +2013 -0
  241. package/ui/src/pages/agentPlaygroundPayload.test.ts +109 -0
  242. package/ui/src/pages/agentPlaygroundPayload.ts +97 -0
  243. package/ui/src/pages/agentThinkingContent.test.ts +50 -0
  244. package/ui/src/pages/agentThinkingContent.ts +57 -0
  245. package/ui/src/pages/dashboardTokenUsage.test.ts +66 -0
  246. package/ui/src/pages/dashboardTokenUsage.ts +36 -0
  247. package/ui/src/pages/imageUpload.test.ts +39 -0
  248. package/ui/src/pages/imageUpload.ts +71 -0
  249. package/ui/src/pages/peekFilters.test.ts +29 -0
  250. package/ui/src/pages/peekFilters.ts +13 -0
  251. package/ui/src/pages/peekMedia.test.ts +58 -0
  252. package/ui/src/pages/peekMedia.ts +148 -0
  253. package/ui/src/pages/sessionAutoTitle.test.ts +128 -0
  254. package/ui/src/pages/sessionAutoTitle.ts +106 -0
  255. package/ui/src/stores/settings.ts +58 -0
  256. package/ui/src/styles/globals.css +223 -0
  257. package/ui/src/vite-env.d.ts +8 -0
  258. package/ui/tailwind.config.js +106 -0
  259. package/ui/tsconfig.json +32 -0
  260. package/ui/vite.config.ts +37 -0
package/AGENTS.md ADDED
@@ -0,0 +1,48 @@
1
+ # Waypoi Contributor Guardrails
2
+
3
+ Purpose and scope:
4
+ - Applies to the entire repo.
5
+ - Preserve core functionality while evolving features.
6
+
7
+ Core invariants (must not break):
8
+ - MCP:
9
+ - `/mcp` endpoint exists and is localhost-only.
10
+ - File-first policy remains default for binary tools.
11
+ - Tool outputs remain structured as `{ ok: true|false, ... }`.
12
+ - File outputs must be workspace-relative (no `/tmp` by default).
13
+ - Playground UI:
14
+ - Image/chat upload flows remain functional.
15
+ - Thinking/streaming behaviors are preserved.
16
+ - No regressions to basic chat/call flows.
17
+ - Reverse proxy:
18
+ - `/v1/*` stays OpenAI-compatible.
19
+ - No breaking request/response changes without migration notes.
20
+ - Providers/pools:
21
+ - Capability routing remains consistent (input/output requirements).
22
+ - Model selection logic unchanged unless updated with tests.
23
+
24
+ Change discipline:
25
+ - MCP tool contract changes must update:
26
+ - `docs/mcp-service.md`
27
+ - `docs/mcp-guidelines.md`
28
+ - relevant tests in `tests/mcp*.test.ts`
29
+ - OpenAI route changes must update relevant docs and regression tests.
30
+ - UI changes affecting chat/call/image flows must add a targeted test or a manual verification checklist in PR notes.
31
+
32
+ Default output path rule:
33
+ - Tool outputs must write under the workspace (default `./.waypoi/generated-images`).
34
+ - Reject `output_path`/`output_dir` outside the workspace.
35
+
36
+ Versioning:
37
+ - Single source of truth is git tags (e.g. `v0.8.0-alpha.0`).
38
+ - `scripts/version-from-git.js` runs via npm `pre` hooks to generate `src/version.ts` before build/dev/typecheck.
39
+ - `package.json` version is `0.0.0` (placeholder — never edit manually).
40
+ - To release: `git tag v<semver>` && `git push origin --tags`.
41
+ - CI (if added) must checkout with `fetch-depth: 0` and run `npm version $(git describe --tags --abbrev=0 | sed 's/^v//') --no-git-tag-version` before `npm publish`.
42
+
43
+ Quick pointers (where to look first):
44
+ - MCP service: `src/mcp/service.ts`
45
+ - MCP policy: `src/mcp/policy.ts`
46
+ - Playground: `ui/src/pages/AgentPlayground.tsx`
47
+ - Reverse proxy: `src/routing/router.ts` and `src/routes/*`
48
+ - Providers/pools: `src/providers/*`, `src/pools/*`
package/CHANGELOG.md ADDED
@@ -0,0 +1,131 @@
1
+ # Changelog
2
+
3
+ All notable changes to Waypoi are documented here.
4
+
5
+ ## [0.6.0] - 2026-03-20
6
+
7
+ ### Added
8
+
9
+ - Built-in MCP service (`POST /mcp`) with two tools:
10
+ - `generate_image` - File-first image generation with workspace-relative output paths
11
+ - `understand_image` - Vision-based image analysis with coordinate-preserving geometry metadata
12
+ - Agent Mode in Playground UI - Toggle to enable MCP tool-calling workflows
13
+ - Tool Picker component for selecting available MCP tools in agent mode
14
+ - Tool call visualization in chat UI with status indicators (pending/executing/success/error)
15
+ - Peek Token Flow Sankey diagrams for visualizing token attribution
16
+
17
+ ### Changed
18
+
19
+ - MCP service uses file-first policy: outputs always write to workspace, rejects paths outside workspace root
20
+ - `generate_image` requires `workspace_root` parameter and returns workspace-relative `file_path`
21
+ - `understand_image` preserves original image geometry for coordinate-sensitive tasks
22
+ - Agent Playground supports up to 10 tool iterations per user message with stop control
23
+
24
+ ## [0.7.1-alpha.1] - 2026-03-21
25
+
26
+ ### Changed
27
+
28
+ - Fix test runner: replaced Playwright with `npx tsx --test`; removed `@playwright/test` dev dependency.
29
+
30
+ ## [0.7.1-alpha.0] - 2026-03-20
31
+
32
+ ### Breaking Changes
33
+
34
+ - `generate_image` MCP tool: `workspace_root`, `output_path`, and `output_dir` parameters removed. Outputs now default to `~/.config/waypoi/generated-images`; override with env vars `WAYPOI_MCP_OUTPUT_ROOT` and `WAYPOI_MCP_OUTPUT_SUBDIR`.
35
+ - `.env` auto-discovery removed from provider importer. Use the explicit `--env-file` flag instead.
36
+
37
+ ### Added
38
+
39
+ - Playground auto-connects to the built-in `/mcp` server on startup; built-in tools (`generate_image`, `understand_image`) are pre-selected when agent mode is first enabled.
40
+ - Built-in MCP server appears as a permanent `waypoi (built-in)` entry in the ToolPicker — no delete or disconnect controls exposed.
41
+ - New CLI utilities: `cli/legacyRewrite.ts`, `cli/modelRef.ts`.
42
+ - New tests: `tests/cliLegacyRewrite.test.ts`, `tests/modelRef.test.ts`.
43
+
44
+ ### Changed
45
+
46
+ - CLI canonical provider/model groups now use one-hop commands:
47
+ - `waypoi providers`
48
+ - `waypoi models <providerId>`
49
+ - `waypoi models show <providerId>/<modelId>`
50
+ - Legacy CLI forms rewritten with deprecation warnings; set `WAYPOI_NO_WARN=1` to suppress.
51
+ - MCP output location is now globally configured (`~/.config/waypoi/generated-images`) rather than per-call workspace-relative paths.
52
+ - `GET /admin/mcp/servers` always includes the built-in server as the first entry.
53
+ - README updated with a full features table and corrected architecture docs.
54
+
55
+ ### Removed
56
+
57
+ - Legacy `smart-*` model alias infrastructure (`LEGACY_SMART_ALIAS_PREFIX`, `isDeprecatedSmartAlias`).
58
+ - Backward-compat imageCache aliases (`resolveImagesDir`, `storeImage`, `getImagePath`).
59
+ - Stale scripts: `scripts/capture-screenshots.js`, `scripts/seed.ts`, `scripts/release/`.
60
+ - Empty placeholder files: `text`, `test.py`, `reference/`.
61
+ - `.gitmodules` (unused `openai/codex` submodule reference).
62
+
63
+ ## [0.4.2] - 2026-02-23
64
+
65
+ ### Added
66
+
67
+ - Model-level capability classification (`input`/`output` modalities) on model mappings.
68
+ - `/v1/models` now returns `capabilities` per model while keeping `endpoint_type` for compatibility.
69
+ - Capability inference engine with config-first precedence and heuristic fallback.
70
+ - Benchmark mode expansion to embeddings, image generation, and audio (speech/transcription), with per-mode assertions.
71
+ - Benchmark skip+warn behavior for unconfigured model families plus per-mode summary metrics.
72
+
73
+ ### Changed
74
+
75
+ - Route eligibility now supports capability requirements (`requiredInput`/`requiredOutput`) in addition to endpoint type.
76
+ - Default model selection prefers capability-matching models before endpoint-type fallback.
77
+ - Playground model picker labels now show capability tags when available (e.g. `text+image->text`).
78
+
79
+ ## [0.4.1] - 2026-02-23
80
+
81
+ ### Added
82
+
83
+ - Config-first benchmark system with profile support (`--config`, `--profile`).
84
+ - Benchmark baseline comparison support (`--baseline`) for soft regression warnings.
85
+ - New benchmark artifact pair per run (`.json` + `.txt`) with gate outcomes and per-scenario measured samples.
86
+ - Example benchmark config and scenario files under `examples/`.
87
+
88
+ ### Changed
89
+
90
+ - Benchmark runner now executes warmup + measured runs and reports pass rate per scenario.
91
+ - Scenario schema validation now enforces required fields and emits location-aware error messages.
92
+ - Agent benchmark loop now enforces per-tool timeout and max-iteration failure reason (`max_iterations_reached`).
93
+
94
+ ### Fixed
95
+
96
+ - Benchmark gate semantics now separate hard failures (exit code 1) from soft warnings (exit code 0).
97
+
98
+ ## [0.4.0] - 2026-02-23
99
+
100
+ ### Changed
101
+
102
+ - Realigned product scope around **model proxy + playground + benchmark**.
103
+ - Removed embedded CLI coding-agent runtime surface (`agent`, `run`, `doctor`, and implicit prompt execution).
104
+ - Added `waypoi bench` / `waypoi benchmark` command for lightweight benchmarking.
105
+ - Added built-in smoke suite and file-driven scenario support (`.json`, `.jsonl`, `.yaml`).
106
+ - Added benchmark artifacts under `$WAYPOI_DIR/benchmarks` (or `~/.config/waypoi/benchmarks`).
107
+ - Updated docs to position Waypoi as a local gateway for external clients (including Opencode).
108
+
109
+ ### Added
110
+
111
+ - `docs/opencode.md` for proxy-only Opencode integration.
112
+ - `docs/benchmark.md` for benchmark scenarios, assertions, and artifact output.
113
+
114
+ ### Fixed
115
+
116
+ - Image cache now accepts both raw base64 and `data:image/...;base64,...` payloads.
117
+ - New sessions now default to cache-backed image references (`storageVersion: 2`) to avoid session JSON bloat.
118
+ - MCP startup/discovery errors are now concise by default, with optional verbose logs via `WAYPOI_DEBUG_ERRORS=1`.
119
+
120
+ ## [0.3.0] - 2026-01-29
121
+
122
+ ### Added
123
+
124
+ - Responses API compatibility and streaming support.
125
+ - MCP tool-call compatibility improvements.
126
+ - Waypoi branding and runtime integration updates.
127
+
128
+ ### Fixed
129
+
130
+ - Model-list compatibility improvements (`slug` and compatibility fields).
131
+ - Localhost login bypass behavior for proxied local deployments.