Files
sim/package.json
T
Waleed 1465e94574 feat(tinyfish): add TinyFish web agent, search, and fetch integration (#7177)
* feat(tinyfish): add TinyFish web agent, search, and fetch integration

Adds the TinyFish integration: eight tools across the Agent, Search, and
Fetch APIs, a block wiring them, the brand icon, and hosted-key support.

Agent runs are metered on the step count TinyFish reports. Search and Fetch
are free, so their hosted key costs nothing to run. The async run and its
run read/cancel/list companions carry no hosting config — their charge
accrues after the request returns and cannot be metered — so they always
require the caller's own key.

* fix(tinyfish): address review findings

- Add tinyfish to PROVIDER_SECTIONS. The sectioned BYOK renderer drops any
  provider missing from a section, so the key field never rendered. Export
  PROVIDERS/PROVIDER_SECTIONS and assert they agree, so the next provider to
  miss a section fails CI instead of vanishing.
- Replace the `any` payload params with raw snake_case wire types. This caught
  two real gaps: `status` could reach the output undefined, and `error` could
  be null where ToolResponse.error is `string | undefined`.
- Reject an already-parsed array output schema, which a `json` block input can
  produce, and name malformed schema JSON instead of leaking a SyntaxError.
- Count Fetch rate-limit usage from the submitted URLs rather than the returned
  arrays, so a URL in neither array cannot undercount.
- Make "List runs" a literal canvas clause; a blank goal filter lists everything.
- Regenerate the docs manifest for the new integration page.

* chore(byok): audit that every hosted provider is fully wired

Adds check:byok-providers. A hosted tool names its provider once in
hosting.byokProviderId, but the id must also reach the zod enum, the settings
PROVIDERS row, and a PROVIDER_SECTIONS section. Only the union is compiler-
enforced; the rest fail silently, which is how TinyFish shipped with no
settings row in the first place. Also flags drift between the two
BYOKProviderId declarations.

Correct the Search and Fetch rate-limit rationale: TinyFish documents both
ceilings per API key, not per account, so the numbered key pool does raise the
total. Records why a free product is still worth hosting — the endpoints
require a key, so hosting is what removes the signup.
2026-08-27 15:18:30 -07:00

157 lines
8.9 KiB
JSON

{
"name": "simstudio",
"packageManager": "bun@1.3.14",
"version": "0.0.0",
"private": true,
"license": "Apache-2.0",
"workspaces": [
"apps/*",
"packages/*"
],
"scripts": {
"build": "turbo run build",
"dev": "turbo run dev",
"dev:sockets": "cd apps/realtime && bun run dev",
"dev:full": "bunx concurrently -n \"App,Realtime\" -c \"cyan,magenta\" \"cd apps/sim && bun run dev\" \"cd apps/realtime && bun run dev\"",
"dev:full:capped": "bunx concurrently -n \"App,Realtime\" -c \"cyan,magenta\" \"cd apps/sim && bun run dev:capped\" \"cd apps/realtime && bun run dev\"",
"test": "bun run test:setup && bun run test:npm-package-versions && bun run test:icon-path-precision && bun run test:tool-registry-boundary && bun run test:tool-request-boundary && bun run test:migrations-safety && bun run test:generators && turbo run test",
"test:setup": "bun run --cwd packages/sim-setup test",
"test:npm-package-versions": "bunx vitest run scripts/bump-npm-package-versions.test.ts",
"test:icon-path-precision": "bunx vitest run scripts/check-icon-path-precision.test.ts",
"test:tool-registry-boundary": "bunx vitest run scripts/check-tool-registry-boundary.test.ts",
"test:tool-request-boundary": "bunx vitest run scripts/check-tool-request-boundary.test.ts",
"test:migrations-safety": "bunx vitest run scripts/check-migrations-safety.test.ts",
"test:generators": "bunx vitest run scripts/generate-v2-cli-api.test.ts scripts/generate-cli-docs.test.ts scripts/generate-docs.test.ts",
"format": "turbo run format",
"format:check": "turbo run format:check",
"lint": "turbo run lint",
"lint:check": "turbo run lint:check",
"lint:helm": "helm lint ./helm/sim --strict --values ./helm/sim/test/values-lint.yaml",
"lint:all": "turbo run lint && bun run lint:helm",
"check": "turbo run format:check",
"check:boundaries": "bun run scripts/check-monorepo-boundaries.ts",
"check:api-validation": "bun run scripts/check-api-validation-contracts.ts --check",
"check:fork-dependent-coverage": "bun run scripts/check-fork-dependent-coverage.ts",
"generate:openapi": "bun run scripts/generate-openapi.ts",
"check:openapi": "bun run scripts/check-openapi.ts",
"generate:cli-api": "bun run scripts/generate-v2-cli-api.ts",
"check:cli-api": "bun run scripts/generate-v2-cli-api.ts --check",
"generate:cli-docs": "bun run scripts/generate-cli-docs.ts",
"check:cli-docs": "bun run scripts/generate-cli-docs.ts --check",
"check:canonical-index": "bun run scripts/check-canonical-index-surface.ts",
"check:cron-parity": "bun run scripts/check-cron-parity.ts",
"check:api-validation:strict": "bun run scripts/check-api-validation-contracts.ts --check --enforce-boundary-baseline",
"check:realtime-prune": "bun run scripts/check-realtime-prune-graph.ts",
"check:tool-request-boundary": "bun run scripts/check-tool-request-boundary.ts",
"check:tool-registry-boundary": "bun run scripts/check-tool-registry-boundary.ts --check",
"check:trigger-block-cycle": "bun run scripts/check-trigger-block-cycle.ts",
"check:import-specifiers": "bun run scripts/check-import-specifiers.ts",
"check:sql-date-binding": "bun run scripts/check-sql-date-binding.ts",
"check:pending-drop-tables": "bun run scripts/check-pending-drop-tables.ts",
"check:zustand-v5": "bun run scripts/check-zustand-v5-selectors.ts",
"check:react-query": "bun run scripts/check-react-query-patterns.ts --check",
"check:client-boundary": "bun run scripts/check-client-boundary-imports.ts --check",
"check:utils": "bun run scripts/check-utils-enforcement.ts",
"check:canvas-sentences": "bun run apps/sim/scripts/check-canvas-sentences.ts --require-coverage",
"check:bare-icons": "bun run scripts/check-bare-icons.ts",
"check:byok-providers": "bun run scripts/check-byok-providers.ts",
"check:icon-paths": "bun run scripts/check-icon-paths.ts",
"check:icon-path-precision": "bun run scripts/check-icon-path-precision.ts",
"check:migrations": "bun run scripts/check-migrations-safety.ts",
"check:native-typecheck": "bun run scripts/check-native-typecheck.ts",
"check:source-text": "bun run scripts/check-source-text.ts",
"check:spec-example-ids": "bun run scripts/check-spec-example-ids.ts",
"check:script-tests": "bun run scripts/check-script-test-coverage.ts",
"check:audits": "bun run scripts/run-audits.ts",
"check:skills": "bun run scripts/sync-skills.ts --check",
"check:desktop-bridge": "bun run scripts/check-desktop-bridge-contract.ts --check",
"check:desktop-ipc": "bun run scripts/check-desktop-ipc-contract.ts",
"check:route-verbs": "bun run scripts/check-route-verbs.ts",
"desktop-bridge-contract:update": "bun run scripts/check-desktop-bridge-contract.ts --update",
"mship-contracts:generate": "bun run scripts/sync-mothership-stream-contract.ts",
"mship-contracts:check": "bun run scripts/sync-mothership-stream-contract.ts --check",
"billing-protocol-contract:generate": "bun run scripts/sync-billing-protocol-contract.ts",
"billing-protocol-contract:check": "bun run scripts/sync-billing-protocol-contract.ts --check",
"tool-metadata:generate": "bun run scripts/sync-tool-metadata.ts",
"tool-metadata:check": "bun run scripts/sync-tool-metadata.ts --check",
"deployment-config:generate": "bun run scripts/generate-deployment-config.ts",
"deployment-config:check": "bun run scripts/generate-deployment-config.ts --check",
"integration-catalog:check": "bun run scripts/check-integration-catalog.ts",
"docs:check": "bun run scripts/generate-docs.ts --check",
"mship-tools:generate": "bun run scripts/sync-tool-catalog.ts",
"mship-tools:check": "bun run scripts/sync-tool-catalog.ts --check",
"trace-spans-contract:generate": "bun run scripts/sync-trace-spans-contract.ts",
"trace-spans-contract:check": "bun run scripts/sync-trace-spans-contract.ts --check",
"trace-attributes-contract:generate": "bun run scripts/sync-trace-attributes-contract.ts",
"trace-attributes-contract:check": "bun run scripts/sync-trace-attributes-contract.ts --check",
"trace-attribute-values-contract:generate": "bun run scripts/sync-trace-attribute-values-contract.ts",
"trace-attribute-values-contract:check": "bun run scripts/sync-trace-attribute-values-contract.ts --check",
"trace-events-contract:generate": "bun run scripts/sync-trace-events-contract.ts",
"trace-events-contract:check": "bun run scripts/sync-trace-events-contract.ts --check",
"metrics-contract:generate": "bun run scripts/sync-metrics-contract.ts",
"metrics-contract:check": "bun run scripts/sync-metrics-contract.ts --check",
"vfs-snapshot-contract:generate": "bun run scripts/sync-vfs-snapshot-contract.ts",
"vfs-snapshot-contract:check": "bun run scripts/sync-vfs-snapshot-contract.ts --check",
"docs-manifest:generate": "bun run scripts/sync-docs-manifest.ts",
"docs-manifest:check": "bun run scripts/sync-docs-manifest.ts --check",
"mship:generate": "bun run scripts/generate-mship-contracts.ts",
"mship:check": "bun run scripts/generate-mship-contracts.ts --check",
"library:covers": "bun run scripts/generate-library-covers.tsx",
"library:covers:check": "bun run scripts/generate-library-covers.tsx --check",
"skills:sync": "bun run scripts/sync-skills.ts",
"bump:npm-packages": "bun run scripts/bump-npm-package-versions.ts",
"sim": "bun run packages/sim-cli/src/index.ts",
"sim-setup": "bun run packages/sim-setup/src/index.ts",
"agent-stream-docs:generate": "bun run scripts/sync-agent-stream-docs.ts",
"agent-stream-docs:check": "bun run scripts/sync-agent-stream-docs.ts --check",
"prepare": "bun husky",
"type-check": "turbo run type-check",
"release": "bun run scripts/create-single-release.ts"
},
"overrides": {
"react": "19.2.4",
"react-dom": "19.2.4",
"next": "16.3.1",
"@next/env": "16.3.1",
"drizzle-orm": "^0.45.2",
"postgres": "^3.4.5",
"minimatch": "^10.2.5",
"mermaid": "11.16.1",
"zod": "4.3.6",
"e2b": "^2.36.1"
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "16.3.1",
"@next/swc-darwin-x64": "16.3.1",
"@next/swc-linux-arm64-gnu": "16.3.1",
"@next/swc-linux-x64-gnu": "16.3.1"
},
"devDependencies": {
"@babel/parser": "7.29.2",
"@biomejs/biome": "2.0.0-beta.5",
"@clack/prompts": "1.7.0",
"@octokit/rest": "^21.0.0",
"@types/opentype.js": "1.3.10",
"@typescript/native": "npm:typescript@^7.0.2",
"@vercel/og": "0.6.8",
"chalk": "5.6.2",
"glob": "13.0.0",
"gray-matter": "4.0.3",
"husky": "9.1.7",
"json-schema-to-typescript": "15.0.4",
"lint-staged": "16.0.0",
"opentype.js": "1.3.4",
"sharp": "0.35.3",
"turbo": "2.9.14"
},
"lint-staged": {
"*.{js,jsx,ts,tsx,json,css,scss}": [
"biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"
]
},
"trustedDependencies": [
"isolated-vm",
"sharp"
]
}