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
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: frontend-design
3
+ description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
4
+ license: Complete terms in LICENSE.txt
5
+ ---
6
+
7
+ This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
8
+
9
+ The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
10
+
11
+ ## Design Thinking
12
+
13
+ Before coding, understand the context and commit to a BOLD aesthetic direction:
14
+ - **Purpose**: What problem does this interface solve? Who uses it?
15
+ - **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
16
+ - **Constraints**: Technical requirements (framework, performance, accessibility).
17
+ - **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
18
+
19
+ **CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
20
+
21
+ Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
22
+ - Production-grade and functional
23
+ - Visually striking and memorable
24
+ - Cohesive with a clear aesthetic point-of-view
25
+ - Meticulously refined in every detail
26
+
27
+ ## Frontend Aesthetics Guidelines
28
+
29
+ Focus on:
30
+ - **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
31
+ - **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
32
+ - **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
33
+ - **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
34
+ - **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
35
+
36
+ NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
37
+
38
+ Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
39
+
40
+ **IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
41
+
42
+ Remember: You are capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
@@ -0,0 +1,35 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ check:
11
+ name: Type-check & Test
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v6
15
+
16
+ - name: Setup Node.js
17
+ uses: actions/setup-node@v6
18
+ with:
19
+ node-version: '24'
20
+ cache: 'npm'
21
+
22
+ - name: Install root dependencies
23
+ run: npm ci
24
+
25
+ - name: Install UI dependencies
26
+ run: cd ui && npm ci && cd ..
27
+
28
+ - name: Type-check (backend)
29
+ run: npm run typecheck
30
+
31
+ - name: Type-check (UI)
32
+ run: cd ui && npx tsc --noEmit && cd ..
33
+
34
+ - name: Run tests
35
+ run: npm test
@@ -0,0 +1,71 @@
1
+ name: Publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+ - 'v*.*.*-alpha.*'
8
+ - 'v*.*.*-beta.*'
9
+ - 'v*.*.*-rc.*'
10
+ workflow_dispatch:
11
+ inputs:
12
+ tag:
13
+ description: 'npm dist-tag (e.g. latest, alpha, beta)'
14
+ required: true
15
+ default: 'alpha'
16
+ type: choice
17
+ options:
18
+ - latest
19
+ - alpha
20
+ - beta
21
+
22
+ permissions:
23
+ contents: read
24
+ id-token: write
25
+
26
+ jobs:
27
+ publish:
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - uses: actions/checkout@v6
31
+
32
+ - name: Setup Node.js
33
+ uses: actions/setup-node@v6
34
+ with:
35
+ node-version: '24'
36
+ cache: 'npm'
37
+ registry-url: 'https://registry.npmjs.org'
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ npm ci
42
+ cd ui && npm ci && cd ..
43
+
44
+ - name: Type-check
45
+ run: npm run typecheck
46
+
47
+ - name: Build
48
+ run: npm run build:all
49
+
50
+ - name: Determine npm tag
51
+ id: npm_tag
52
+ run: |
53
+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
54
+ echo "tag=${{ inputs.tag }}" >> $GITHUB_OUTPUT
55
+ else
56
+ TAG="${GITHUB_REF#refs/tags/v}"
57
+ if echo "$TAG" | grep -qE '-alpha\.'; then
58
+ echo "tag=alpha" >> $GITHUB_OUTPUT
59
+ elif echo "$TAG" | grep -qE '-beta\.'; then
60
+ echo "tag=beta" >> $GITHUB_OUTPUT
61
+ elif echo "$TAG" | grep -qE '-rc\.'; then
62
+ echo "tag=rc" >> $GITHUB_OUTPUT
63
+ else
64
+ echo "tag=latest" >> $GITHUB_OUTPUT
65
+ fi
66
+ fi
67
+
68
+ - name: Publish to npm
69
+ run: npm publish --tag ${{ steps.npm_tag.outputs.tag }} --provenance --access public
70
+ env:
71
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -0,0 +1,48 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+ - 'v*.*.*-alpha.*'
8
+ - 'v*.*.*-beta.*'
9
+ - 'v*.*.*-rc.*'
10
+
11
+ permissions:
12
+ contents: write
13
+
14
+ jobs:
15
+ release:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v6
19
+ with:
20
+ fetch-depth: 0
21
+
22
+ - name: Determine prerelease
23
+ id: meta
24
+ run: |
25
+ TAG="${GITHUB_REF#refs/tags/v}"
26
+ if echo "$TAG" | grep -qE '-(alpha|beta|rc)\.'; then
27
+ echo "prerelease=true" >> $GITHUB_OUTPUT
28
+ else
29
+ echo "prerelease=false" >> $GITHUB_OUTPUT
30
+ fi
31
+
32
+ - name: Extract changelog section
33
+ run: |
34
+ VERSION="${GITHUB_REF#refs/tags/v}"
35
+ BODY=$(awk "/^## \[${VERSION}\]/{found=1; next} found && /^## /{exit} found{print}" CHANGELOG.md)
36
+ if [ -z "$BODY" ]; then
37
+ BODY="See [CHANGELOG.md](https://github.com/ziangziangziang/waypoi/blob/main/CHANGELOG.md) for details."
38
+ fi
39
+ echo "$BODY" > /tmp/release_body.md
40
+
41
+ - name: Create GitHub Release
42
+ uses: softprops/action-gh-release@v2
43
+ with:
44
+ prerelease: ${{ steps.meta.outputs.prerelease }}
45
+ generate_release_notes: false
46
+ body_path: /tmp/release_body.md
47
+ env:
48
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,2 @@
1
+ [ 32ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:9469/admin/settings:0
2
+ [ 46ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:9469/favicon.ico:0
@@ -0,0 +1,3 @@
1
+ [ 30302ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://localhost:9469/admin/providers:0
2
+ [ 30302ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://localhost:9469/admin/meta:0
3
+ [ 33112ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://localhost:9469/admin/protocols:0
@@ -0,0 +1,76 @@
1
+ [ 2022ms] [WARNING] document.domain mutation is ignored because the surrounding agent cluster is origin-keyed. @ https://modelstudio.console.alibabacloud.com/ap-southeast-1?tab=api:112
2
+ [ 2023ms] [LOG] ██╗ ██╗██╗
3
+ ██║ ██║██║
4
+ ███████║██║
5
+ ██╔══██║██║
6
+ ██║ ██║██║▄█╗
7
+ ╚═╝ ╚═╝╚═╝╚═╝
8
+
9
+ ██████╗ █████╗ ██╗██╗ ██╗ █████╗ ███╗ ██╗
10
+ ██╔══██╗██╔══██╗██║██║ ██║██╔══██╗████╗ ██║
11
+ ██████╔╝███████║██║██║ ██║███████║██╔██╗ ██║
12
+ ██╔══██╗██╔══██║██║██║ ██║██╔══██║██║╚██╗██║
13
+ ██████╔╝██║ ██║██║███████╗██║██║ ██║██║ ╚████║
14
+ ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝
15
+ @ https://g.alicdn.com/isipfe/efm-fe/3.4.232/noopconsole.js:0
16
+ [ 8757ms] [WARNING] [AES] 未监测到Aplus SDK @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/index.js:0
17
+ [ 8789ms] [WARNING] The provided value '*/*' is not a valid enum value of type XMLHttpRequestResponseType. @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/vendor.js:7
18
+ [ 8820ms] [LOG] SecurityError: Failed to read a named property 'hostname' from 'Location': Blocked a frame with origin "https://www.alibabacloud.com" from accessing a cross-origin frame.
19
+ at t (https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:107)
20
+ at Object.<anonymous> (https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:232)
21
+ at t (https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:107)
22
+ at https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:196
23
+ at https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:201 @ https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:4
24
+ [ 8857ms] [LOG] %c [APLUS] -- APLUS INIT SUCCESS background:#3B82FE; padding: 4px; padding-right: 8px; border-radius: 4px; color: #fff; @ :1
25
+ [ 10180ms] [ERROR] 找不到组件 AliyunComGlobalNavSearch @ https://website.alcasset.com/common/topbar/www.en-US.js:27
26
+ [ 10180ms] [LOG] {id: qfYRBPC4V181bVC5QgsR-, componentName: AliyunComGlobalNavSearch, props: Object, constraintRule: Object, exportId: qfYRBPC4V181bVC5QgsR-} @ https://website.alcasset.com/common/topbar/www.en-US.js:27
27
+ [ 11253ms] [LOG] inputEvent 挂载失败 SecurityError: Failed to read a named property 'AIAssistant' from 'Window': Blocked a frame with origin "https://www.alibabacloud.com" from accessing a cross-origin frame.
28
+ at is (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:83364)
29
+ at yc (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:102478)
30
+ at t.unstable_runWithPriority (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:127:3844)
31
+ at Go (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45102)
32
+ at gc (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:102237)
33
+ at ec (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:93762)
34
+ at https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45393
35
+ at t.unstable_runWithPriority (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:127:3844)
36
+ at Go (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45102)
37
+ at Vo (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45338) @ https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:156
38
+ [ 11884ms] [ERROR] Permissions policy violation: gyroscope is not allowed in this document. @ https://g.alicdn.com/secdev/sufei_data/3.9.14/index.js:0
39
+ [ 11884ms] [ERROR] Permissions policy violation: accelerometer is not allowed in this document. @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/index.js:0
40
+ [ 11884ms] [WARNING] The deviceorientation events are blocked by permissions policy. See https://github.com/w3c/webappsec-permissions-policy/blob/master/features.md#sensor-features @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/index.js:0
41
+ [ 11996ms] [LOG] Sat Apr 04 2026 21:27:03 GMT-0500 (Central Daylight Time) @ https://g.alicdn.com/AWSC/et/1.83.41/et_f.js:1
42
+ [ 12097ms] [WARNING] [GSI_LOGGER]: Your client application may not display Google One Tap when FedCM becomes mandatory. Opt-in to FedCM to test that you have the proper cross-origin permission policy set up. Ignore this message if One Tap is displayed after opt-in to FedCM. Learn more: (https://developers.google.com/identity/gsi/web/guides/fedcm-migration?s=dc#cross_origin) @ https://accounts.google.com/gsi/client:80
43
+ [ 12099ms] [ERROR] [GSI_LOGGER]: FedCM get() rejects with NotAllowedError: The 'identity-credentials-get' feature is not enabled in this document. @ https://accounts.google.com/gsi/client:81
44
+ [ 14233ms] [WARNING] single-spa minified message #1: See https://single-spa.js.org/error/?code=1 @ https://o.alicdn.com/alicloud-components/alps-csr-helper/index.min.js:0
45
+ [ 327627ms] [WARNING] The ScriptProcessorNode is deprecated. Use AudioWorkletNode instead. (https://bit.ly/audio-worklet) @ https://g.alicdn.com/AWSC/fireyejs/1.231.69/fireyejs.js:0
46
+ [ 329575ms] [WARNING] [AES] 未监测到Aplus SDK @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/index.js:0
47
+ [ 329585ms] [WARNING] The provided value '*/*' is not a valid enum value of type XMLHttpRequestResponseType. @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/vendor.js:7
48
+ [ 329592ms] [LOG] SecurityError: Failed to read a named property 'hostname' from 'Location': Blocked a frame with origin "https://www.alibabacloud.com" from accessing a cross-origin frame.
49
+ at t (https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:107)
50
+ at Object.<anonymous> (https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:232)
51
+ at t (https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:107)
52
+ at https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:196
53
+ at https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:5:201 @ https://g.alicdn.com/??alicloud-components/kloud/0.1.29/vendor/requirejs/require.js,alicloud-components/kloud/0.1.29/vendor/jquery/jquery.min.js,alicloud-components/acApp/0.3.5/app.js:4
54
+ [ 329643ms] [LOG] %c [APLUS] -- APLUS INIT SUCCESS background:#3B82FE; padding: 4px; padding-right: 8px; border-radius: 4px; color: #fff; @ :1
55
+ [ 330006ms] [ERROR] 找不到组件 AliyunComGlobalNavSearch @ https://website.alcasset.com/common/topbar/www.en-US.js:27
56
+ [ 330007ms] [LOG] {id: qfYRBPC4V181bVC5QgsR-, componentName: AliyunComGlobalNavSearch, props: Object, constraintRule: Object, exportId: qfYRBPC4V181bVC5QgsR-} @ https://website.alcasset.com/common/topbar/www.en-US.js:27
57
+ [ 330531ms] [LOG] Deprecated as of 10.7.0. highlightBlock will be removed entirely in v12.0 @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/vendor.js:19
58
+ [ 330531ms] [LOG] Deprecated as of 10.7.0. Please use highlightElement now. @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/vendor.js:19
59
+ [ 330975ms] [WARNING] [GSI_LOGGER]: Your client application may not display Google One Tap when FedCM becomes mandatory. Opt-in to FedCM to test that you have the proper cross-origin permission policy set up. Ignore this message if One Tap is displayed after opt-in to FedCM. Learn more: (https://developers.google.com/identity/gsi/web/guides/fedcm-migration?s=dc#cross_origin) @ https://accounts.google.com/gsi/client:80
60
+ [ 330976ms] [ERROR] [GSI_LOGGER]: FedCM get() rejects with NotAllowedError: The 'identity-credentials-get' feature is not enabled in this document. @ https://accounts.google.com/gsi/client:81
61
+ [ 331055ms] [ERROR] Permissions policy violation: gyroscope is not allowed in this document. @ https://g.alicdn.com/secdev/sufei_data/3.9.14/index.js:0
62
+ [ 331056ms] [ERROR] Permissions policy violation: accelerometer is not allowed in this document. @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/index.js:0
63
+ [ 331056ms] [WARNING] The deviceorientation events are blocked by permissions policy. See https://github.com/w3c/webappsec-permissions-policy/blob/master/features.md#sensor-features @ https://g.alicdn.com/aliyun-help/help-portal-fe/0.12.39/js/index.js:0
64
+ [ 331087ms] [LOG] Sat Apr 04 2026 21:32:22 GMT-0500 (Central Daylight Time) @ https://g.alicdn.com/AWSC/et/1.83.41/et_f.js:1
65
+ [ 331139ms] [LOG] inputEvent 挂载失败 SecurityError: Failed to read a named property 'AIAssistant' from 'Window': Blocked a frame with origin "https://www.alibabacloud.com" from accessing a cross-origin frame.
66
+ at is (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:83364)
67
+ at yc (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:102478)
68
+ at t.unstable_runWithPriority (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:127:3844)
69
+ at Go (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45102)
70
+ at gc (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:102237)
71
+ at ec (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:93762)
72
+ at https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45393
73
+ at t.unstable_runWithPriority (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:127:3844)
74
+ at Go (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45102)
75
+ at Vo (https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:119:45338) @ https://g.alicdn.com/aliyun-com/alfa-aliyun-one-service-widget-chat/1.44.2/index.js:156
76
+ [ 334694ms] [WARNING] single-spa minified message #1: See https://single-spa.js.org/error/?code=1 @ https://o.alicdn.com/alicloud-components/alps-csr-helper/index.min.js:0
@@ -0,0 +1 @@
1
+ - generic [ref=e2]: "{\"error\":{\"message\":\"Not found\"}}"
@@ -0,0 +1,77 @@
1
+ - generic [ref=e3]:
2
+ - complementary [ref=e4]:
3
+ - generic [ref=e5]:
4
+ - img "Waypoi" [ref=e7]
5
+ - generic [ref=e8]:
6
+ - heading "WAYPOINT" [level=1] [ref=e9]
7
+ - paragraph [ref=e10]: v0.7.1-beta.0
8
+ - navigation [ref=e11]:
9
+ - link "Playground" [ref=e12] [cursor=pointer]:
10
+ - /url: /ui/playground
11
+ - img [ref=e13]
12
+ - generic [ref=e15]: Playground
13
+ - link "Benchmark" [ref=e16] [cursor=pointer]:
14
+ - /url: /ui/benchmark
15
+ - img [ref=e17]
16
+ - generic [ref=e20]: Benchmark
17
+ - link "Dashboard" [ref=e21] [cursor=pointer]:
18
+ - /url: /ui/dashboard
19
+ - img [ref=e22]
20
+ - generic [ref=e27]: Dashboard
21
+ - link "Peek" [ref=e28] [cursor=pointer]:
22
+ - /url: /ui/peek
23
+ - img [ref=e29]
24
+ - generic [ref=e32]: Peek
25
+ - link "Settings" [ref=e33] [cursor=pointer]:
26
+ - /url: /ui/settings
27
+ - img [ref=e34]
28
+ - generic [ref=e37]: Settings
29
+ - generic [ref=e39]:
30
+ - img [ref=e40]
31
+ - generic [ref=e46]: Status
32
+ - generic [ref=e49]: live
33
+ - main [ref=e50]:
34
+ - generic [ref=e51]:
35
+ - complementary [ref=e52]:
36
+ - generic [ref=e53]:
37
+ - generic [ref=e54]: Sessions
38
+ - button [ref=e55] [cursor=pointer]:
39
+ - img
40
+ - button "New Chat" [ref=e57] [cursor=pointer]:
41
+ - img
42
+ - text: New Chat
43
+ - generic [ref=e59] [cursor=pointer]:
44
+ - img [ref=e60]
45
+ - generic [ref=e62]:
46
+ - paragraph [ref=e63]: whas missing in the UI
47
+ - paragraph [ref=e64]: 2 messages
48
+ - button [ref=e65]:
49
+ - img
50
+ - generic [ref=e66]:
51
+ - generic [ref=e67]:
52
+ - generic [ref=e68]:
53
+ - img [ref=e69]
54
+ - heading "Playground" [level=2] [ref=e71]
55
+ - generic [ref=e72]: Generating title...
56
+ - button "Agent Mode" [ref=e73] [cursor=pointer]:
57
+ - img [ref=e74]
58
+ - text: Agent Mode
59
+ - combobox [ref=e77]:
60
+ - option "cerebras/zai-glm-4.7 [text->text]" [selected]
61
+ - option "pcai/qwen35-27b [text+image->text]"
62
+ - option "smart [image+text->text]"
63
+ - generic [ref=e79]:
64
+ - generic [ref=e82]:
65
+ - img [ref=e84]
66
+ - generic [ref=e87]:
67
+ - heading "Ready to chat" [level=3] [ref=e88]
68
+ - paragraph [ref=e89]: Select a model and start a conversation
69
+ - paragraph [ref=e90]: Supports images via drag, drop, paste, or upload
70
+ - generic [ref=e91]:
71
+ - generic [ref=e92]:
72
+ - button "Attach image" [ref=e93] [cursor=pointer]:
73
+ - img
74
+ - textbox "Type a message... (paste or drop images)" [ref=e94]
75
+ - button [disabled]:
76
+ - img
77
+ - paragraph [ref=e95]: Enter to send | Shift+Enter for new line
@@ -0,0 +1,190 @@
1
+ - generic [ref=e3]:
2
+ - complementary [ref=e4]:
3
+ - generic [ref=e5]:
4
+ - img "Waypoi" [ref=e7]
5
+ - generic [ref=e8]:
6
+ - heading "WAYPOINT" [level=1] [ref=e9]
7
+ - paragraph [ref=e10]: v0.7.1-beta.0
8
+ - navigation [ref=e11]:
9
+ - link "Playground" [ref=e12] [cursor=pointer]:
10
+ - /url: /ui/playground
11
+ - img [ref=e13]
12
+ - generic [ref=e15]: Playground
13
+ - link "Benchmark" [ref=e16] [cursor=pointer]:
14
+ - /url: /ui/benchmark
15
+ - img [ref=e17]
16
+ - generic [ref=e20]: Benchmark
17
+ - link "Dashboard" [ref=e21] [cursor=pointer]:
18
+ - /url: /ui/dashboard
19
+ - img [ref=e22]
20
+ - generic [ref=e27]: Dashboard
21
+ - link "Peek" [ref=e28] [cursor=pointer]:
22
+ - /url: /ui/peek
23
+ - img [ref=e29]
24
+ - generic [ref=e32]: Peek
25
+ - link "Settings" [active] [ref=e33] [cursor=pointer]:
26
+ - /url: /ui/settings
27
+ - img [ref=e34]
28
+ - generic [ref=e37]: Settings
29
+ - generic [ref=e39]:
30
+ - img [ref=e40]
31
+ - generic [ref=e46]: Status
32
+ - generic [ref=e49]: live
33
+ - main [ref=e50]:
34
+ - generic [ref=e96]:
35
+ - generic [ref=e98]:
36
+ - img [ref=e99]
37
+ - heading "Settings" [level=2] [ref=e102]
38
+ - generic [ref=e104]:
39
+ - generic [ref=e105]:
40
+ - generic [ref=e106]:
41
+ - img [ref=e107]
42
+ - generic [ref=e111]: Image Generation
43
+ - generic [ref=e113]:
44
+ - generic [ref=e114]: Default Image Size
45
+ - paragraph [ref=e115]: Used when generating images via diffusion models. Can be overridden per-request in the playground.
46
+ - generic [ref=e116]:
47
+ - button "256×256 1:1" [ref=e117] [cursor=pointer]:
48
+ - generic [ref=e118]: 256×256
49
+ - generic [ref=e119]: 1:1
50
+ - button "512×512 1:1" [ref=e120] [cursor=pointer]:
51
+ - generic [ref=e121]: 512×512
52
+ - generic [ref=e122]: 1:1
53
+ - button "1024×1024 1:1" [ref=e123] [cursor=pointer]:
54
+ - img [ref=e125]
55
+ - generic [ref=e127]: 1024×1024
56
+ - generic [ref=e128]: 1:1
57
+ - button "1024×1792 9:16 (Portrait)" [ref=e129] [cursor=pointer]:
58
+ - generic [ref=e130]: 1024×1792
59
+ - generic [ref=e131]: 9:16 (Portrait)
60
+ - button "1792×1024 16:9 (Landscape)" [ref=e132] [cursor=pointer]:
61
+ - generic [ref=e133]: 1792×1024
62
+ - generic [ref=e134]: 16:9 (Landscape)
63
+ - generic [ref=e135]:
64
+ - generic [ref=e136]:
65
+ - img [ref=e137]
66
+ - generic [ref=e140]: Providers & Models
67
+ - generic [ref=e141]: 2 providers
68
+ - button "Add Provider" [ref=e142] [cursor=pointer]:
69
+ - img
70
+ - text: Add Provider
71
+ - generic [ref=e143]:
72
+ - generic [ref=e145]:
73
+ - button "cerebras openai https://api.cerebras.ai/v1 1/1 models enabled" [ref=e146] [cursor=pointer]:
74
+ - generic [ref=e147]:
75
+ - paragraph [ref=e149]: cerebras
76
+ - generic [ref=e150]: openai
77
+ - paragraph [ref=e151]: https://api.cerebras.ai/v1
78
+ - paragraph [ref=e152]: 1/1 models enabled
79
+ - generic [ref=e153]:
80
+ - button "Disable" [ref=e154] [cursor=pointer]:
81
+ - img
82
+ - text: Disable
83
+ - button "Edit" [ref=e155] [cursor=pointer]:
84
+ - img
85
+ - text: Edit
86
+ - button "Add Model" [ref=e156] [cursor=pointer]:
87
+ - img
88
+ - text: Add Model
89
+ - button "Delete" [ref=e157] [cursor=pointer]:
90
+ - img
91
+ - text: Delete
92
+ - button [ref=e158] [cursor=pointer]:
93
+ - img [ref=e159]
94
+ - generic [ref=e162]:
95
+ - button "pcai openai https://qwen35-27b.zziang-stjude-o-e609380a.serving.ai-application.stjude.org 1/1 models enabled" [ref=e163] [cursor=pointer]:
96
+ - generic [ref=e164]:
97
+ - paragraph [ref=e166]: pcai
98
+ - generic [ref=e167]: openai
99
+ - paragraph [ref=e168]: https://qwen35-27b.zziang-stjude-o-e609380a.serving.ai-application.stjude.org
100
+ - paragraph [ref=e169]: 1/1 models enabled
101
+ - generic [ref=e170]:
102
+ - button "Disable" [ref=e171] [cursor=pointer]:
103
+ - img
104
+ - text: Disable
105
+ - button "Edit" [ref=e172] [cursor=pointer]:
106
+ - img
107
+ - text: Edit
108
+ - button "Add Model" [ref=e173] [cursor=pointer]:
109
+ - img
110
+ - text: Add Model
111
+ - button "Delete" [ref=e174] [cursor=pointer]:
112
+ - img
113
+ - text: Delete
114
+ - button [ref=e175] [cursor=pointer]:
115
+ - img [ref=e176]
116
+ - generic [ref=e178]:
117
+ - generic [ref=e179]:
118
+ - generic [ref=e180]:
119
+ - img [ref=e181]
120
+ - generic [ref=e183]: MCP Servers
121
+ - generic [ref=e184]:
122
+ - button [ref=e185] [cursor=pointer]:
123
+ - img
124
+ - button "Add" [ref=e186] [cursor=pointer]:
125
+ - img
126
+ - text: Add
127
+ - generic [ref=e188]:
128
+ - generic [ref=e190]:
129
+ - generic [ref=e191]:
130
+ - paragraph [ref=e192]: waypoi
131
+ - generic [ref=e193]: 2 tools
132
+ - generic [ref=e194]: enabled
133
+ - paragraph [ref=e195]: http://localhost:9469/mcp
134
+ - generic [ref=e196]:
135
+ - button "Re-connect and discover tools" [ref=e197] [cursor=pointer]:
136
+ - img
137
+ - button "Disable" [ref=e198] [cursor=pointer]:
138
+ - img
139
+ - button "Remove" [ref=e199] [cursor=pointer]:
140
+ - img
141
+ - generic [ref=e200]:
142
+ - generic [ref=e202]: About Waypoi
143
+ - generic [ref=e203]:
144
+ - paragraph [ref=e204]: Waypoi is a provider-first local AI gateway. It provides an OpenAI-compatible API over multiple providers/models, with routing, failover, and observability.
145
+ - generic [ref=e205]:
146
+ - generic [ref=e206]:
147
+ - paragraph [ref=e207]: Version
148
+ - paragraph [ref=e208]: 0.7.1-beta.0
149
+ - generic [ref=e209]:
150
+ - paragraph [ref=e210]: Config Path
151
+ - paragraph [ref=e211]: ~/.config/waypoi/providers.json
152
+ - generic [ref=e212]:
153
+ - generic [ref=e214]: CLI Commands
154
+ - generic [ref=e215]:
155
+ - generic [ref=e216]:
156
+ - code [ref=e217]: waypoi providers import -f .env
157
+ - generic [ref=e218]: Import providers and credentials
158
+ - generic [ref=e219]:
159
+ - code [ref=e220]: waypoi providers
160
+ - generic [ref=e221]: List providers
161
+ - generic [ref=e222]:
162
+ - code [ref=e223]: waypoi models <providerId>
163
+ - generic [ref=e224]: List models in one provider
164
+ - generic [ref=e225]:
165
+ - code [ref=e226]: waypoi models add <providerId> ...
166
+ - generic [ref=e227]: Add a provider-owned model
167
+ - generic [ref=e228]:
168
+ - code [ref=e229]: waypoi models update <providerId> <modelRef>
169
+ - generic [ref=e230]: Update model routing/capabilities/auth
170
+ - generic [ref=e231]:
171
+ - code [ref=e232]: waypoi bench
172
+ - generic [ref=e233]: Run lightweight benchmark suite
173
+ - generic [ref=e234]:
174
+ - code [ref=e235]: waypoi chat --model smart
175
+ - generic [ref=e236]: Chat from the terminal (server must be running)
176
+ - generic [ref=e237]:
177
+ - code [ref=e238]: waypoi sessions
178
+ - generic [ref=e239]: List all chat sessions
179
+ - generic [ref=e240]:
180
+ - code [ref=e241]: waypoi sessions show <id>
181
+ - generic [ref=e242]: Print message history for a session
182
+ - generic [ref=e243]:
183
+ - code [ref=e244]: waypoi mcp add --name mytools --url http://...
184
+ - generic [ref=e245]: Register an MCP server
185
+ - generic [ref=e246]:
186
+ - generic [ref=e248]: Resources
187
+ - link "GitHub Repository" [ref=e250] [cursor=pointer]:
188
+ - /url: https://github.com/ziangziangziang/waypoi
189
+ - img [ref=e251]
190
+ - text: GitHub Repository