You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 27, 2026. It is now read-only.
Repository navigation
Commit 5bd7083
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Generate toolkit docs from the experience API public catalog (#1183)
* Add public catalog API source for toolkit docs generation.
Switch the nightly workflow to unauthenticated /v1/public/* endpoints, introduce PublicCatalogApiSource with toolkit-level auth fan-out, and deprecate the legacy tool-metadata path while renaming source interfaces without the I prefix.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Strip the arcade- provider prefix from generated toolkit data.
The public catalog reports Arcade-hosted OAuth providers as arcade-github,
arcade-microsoft-powerbi, and so on. providerId becomes the auth provider
docs slug (/en/references/auth-providers/<providerId>), and those pages are
named github and microsoft-powerbi, so the prefix would 404 the auth
provider link on every toolkit page the next nightly regenerated.
Providers that already arrive unprefixed, like salesforce and zendesk and
the rest of the BYOC set, match their page and pass through untouched.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Remove deprecated toolkit API sources and legacy CLI flags.
Delete the authenticated engine and arcade sources, drop I-prefixed interface aliases, and rename the CLI host flag to --api-url with ARCADE_API_URL support while keeping ENGINE_API_URL as a fallback for existing workflow secrets.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Read toolkit branding from the experience API public catalog.
The experience API merges the engine's public catalog with design-system
branding, so one anonymous read now supplies both tools and toolkit
metadata. PublicCatalogApiSource implements MetadataSource alongside
ToolDataSource and serves both from a single cached snapshot, which means
tools and branding can no longer describe different states.
Provider-name resolution and --require-complete filtering consult the same
read, so a toolkit is never dropped for branding the catalog actually has.
Only the mock path still builds a separate metadata source, and it does so
on demand, so a live run never loads the design-system package.
--api-url now points at the experience API and defaults to
https://experience.arcade.dev/api. The /v1 prefix injection is gone, since
the catalog paths hang off /api. ARCADE_API_URL and ENGINE_API_URL are no
longer consulted for the base URL: an engine host builds a path that 404s
against this catalog. PUBLIC_CATALOG_URL replaces them, and the nightly
needs no URL secret at all.
Verified against production: all 123 generated toolkits carry branding and
service domains identical to the committed data.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Treat a blank catalog URL as unset.
The nightly wires PUBLIC_CATALOG_URL from an optional secret, and GitHub
Actions hands an unset secret to the job as "" rather than leaving it
absent. Nullish coalescing accepted that empty string as a real base URL,
so the run built a relative /public/tool_catalog and died on "Failed to
parse URL" instead of falling through to the production default.
resolveApiBaseUrl now trims and treats blank as absent, for both the flag
and the environment variable.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .github/workflows/generate-toolkit-docs.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,20 +5,19 @@ This workflow regenerates toolkit JSON and opens a PR with the changes. It can b
5
5
## What it does
6
6
7
7
1. Builds the toolkit docs generator.
8
-
2. Generates toolkit JSON in `toolkit-docs-generator/data/toolkits` using the Engine tool metadata and summary endpoints.
8
+
2. Generates toolkit JSON in `toolkit-docs-generator/data/toolkits` using the experience API's public tool catalog, which serves tool definitions and toolkit branding in one anonymous read.
9
9
3. Syncs integrations sidebar navigation from the generated JSON.
10
10
4. Creates or updates a PR on the stable `automation/toolkit-docs` branch if any files changed. Later runs overwrite that open PR with the latest generated docs.
11
11
12
12
## Inputs and secrets
13
13
14
14
Required secrets:
15
15
16
-
-`ENGINE_API_URL`
17
-
-`ENGINE_API_KEY`
18
16
-`ANTHROPIC_API_KEY`
19
17
20
18
Optional secrets:
21
19
20
+
-`PUBLIC_CATALOG_URL` (falls back to `https://experience.arcade.dev/api`; set it to run against staging)
22
21
-`ANTHROPIC_MODEL` (falls back to `claude-sonnet-4-6`)
23
22
-`ANTHROPIC_EDITOR_MODEL` (falls back to `claude-sonnet-4-6`)
@@ -298,5 +308,5 @@ message and the third, because those are two separate things to fix.
298
308
## Troubleshooting
299
309
300
310
-**Nothing regenerated**: `--skip-unchanged` exits early when tool definitions did not change.
301
-
-**Missing metadata**: the generator falls back to the metadata JSON file when design system metadata is unavailable.
311
+
-**Missing metadata**: when the catalog returns `metadata: null` for a toolkit the merger substitutes defaults and warns. Re-run once the experience API's design-system read recovers, or use `--require-complete` to fail instead of publishing defaults.
302
312
-**Verify output fails**: run `pnpm dlx tsx src/cli/index.ts verify-output --output data/toolkits` and fix the reported mismatch.
0 commit comments