Conversation
Six tools, one per Glasser GTM Solution (people search, company
intelligence, SEO research, web research, social research, market data),
each a POST to api.glasser.ai with a fresh Idempotency-Key that polls
GET /v1/runs/{id} when the run comes back in flight. One block with an
operation dropdown, canvas sentences, templates and skills. Generated
tool metadata, docs page, catalog and name maps included.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
@glasserai is attempting to deploy a commit to the Sim Team on Vercel. A member of the Team first needs to authorize it. |
|
…on comments Address review: a rejected or undecodable poll now counts toward the three-error budget and returns success: false instead of escaping the loop; Social Media Search gets its own query and URL controls keyed on its mode rather than the hidden web action; the news query copy says the domain stays required (the API contract requires it); test drops its any cast; non-TSDoc section comments removed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Addressed all five findings in 37b8a66 (details on each thread). |
Values stored by a previously selected operation stayed on the block and were folded into the request, so a social call could carry the web query or URL. The fold now reads only the operation's own sub-blocks and clears every other API field explicitly, so the merge with stored inputs cannot resurrect them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Fixed the remaining finding in 3bf514d (see thread); audits and the 13 Glasser tests pass. |
Summary
Adds a Glasser integration: one block and six tools, one per Glasser GTM Solution.
Glasser is a data broker. One API key covers 1,000+ paid endpoints from providers such as Apollo, People Data Labs, Hunter, Ahrefs, Semrush, DataForSEO, Serper, Exa, ScrapeCreators and RentCast. Each Solution call names what data is wanted; Glasser routes it to a provider, falls back on provider errors, and returns the provider-native result with the exact USD charge.
glasser_people_searchPOST /v1/solutions/gtm/people_searchglasser_company_intelligencePOST /v1/solutions/gtm/company_intelligenceglasser_seo_researchPOST /v1/solutions/gtm/seo_researchglasser_web_researchPOST /v1/solutions/gtm/web_researchglasser_social_researchPOST /v1/solutions/gtm/social_researchglasser_market_dataPOST /v1/solutions/gtm/market_dataType of Change
Implementation notes
ToolConfig.request. Every call sends a freshIdempotency-Key(viagenerateId()), which the API requires; one key binds to one run, so a transport retry reads the original run instead of paying twice.postProcesspollsGET /v1/runs/{id}every 2 s for up to 3 min, tolerating up to three consecutive polling errors, following the Wiza tool's pattern.id,run_url,status,provider,endpoint,charge_usd,failure,task_id) and is mapped field by field.outputis declared as barejsonon purpose: it is the provider-native payload, and its shape depends on which provider and endpoint served the call. Nothing is guessed.answeraction ofglasser_web_researchhands the query to a model (Exa's answer endpoint), sorequest.modelInputprojectsqueryfor that action alone, like Linkup's sourced-answer projection.tools.access.currentColor, the visor keeps its brand orange, so it renders bare in light and dark mode.check-tool-registry-boundaryallowance after adding the nine tool modules, so its entry alone was re-recorded. Staging already sits close to the limit on that page.Testing
bun run tool-metadata:generate,bun run scripts/generate-docs.ts,bun run generate:block-successors,bun run deployment-config:generate— generated artifacts committedbun run check:audits— all 47 audits pass (includesdocs:check,integration-catalog:check,check:canvas-sentences,check:bare-icons,check:tool-request-boundary,check:tool-registry-boundary,check:icon-path-precision,check:byok-providers)bun run apps/sim/scripts/check-canvas-sentences.ts --block=glasser— 6/6 operationsbunx vitest run tools/glasser/glasser.test.ts— 11 tests: request headers and body shaping, run mapping, failed-run reporting, polling to completion, polling give-up, block param foldingbunx vitest run blocks tools/model-input-selectors.test.ts tools/operation-input.test.ts— 1595 tests passtsc --noEmit— no errors in the added filesReviewers may want to focus on
apps/sim/tools/glasser/run.ts(idempotency header, polling, run mapping) and the block'stools.config.params, which folds the per-operation action dropdowns into the API'sactionfield.Checklist
🤖 Generated with Claude Code