{"id":"symbol-exists","title":"Is this export in the npm package's published type declarations","description":"Checks that up to 20 named exports (functions, classes, constants, types, default) exist in the .d.ts files published for an exact npm package version, read from jsDelivr, for coding agents that may be calling an API that does not exist. Follows export lists and relative export-star re-exports within the package (at most 7 files) and reports when the export surface cannot be fully enumerated. Never downloads or runs the package code; packages typed only through @types or without declarations return unsupported; does not check signatures or arguments.","roi":"Catches hallucinated API names before the build or the reviewer does.","audience":"developer","package":"code-preflight-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/symbol-exists","path":"/api/v1/symbol-exists","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["package","version","symbols"],"properties":{"package":{"type":"string","maxLength":214,"description":"npm package name."},"version":{"type":"string","maxLength":64,"description":"Exact version or dist-tag (jsDelivr resolves it).","pattern":"^[0-9A-Za-z.+_~-]{1,64}$"},"symbols":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","maxLength":100,"pattern":"^[A-Za-z_$][A-Za-z0-9_$]*$"}},"entry":{"type":"string","maxLength":100,"description":"package.json exports key, default '.'."},"typesPath":{"type":"string","maxLength":200,"description":"Declaration file path inside the package, overriding package.json resolution."}}},"resultSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"package":{"type":"string"},"version":{"type":"string"},"complete":{"type":"boolean","description":"True when the whole export surface was enumerated, so a missing symbol is a real absence."},"filesRead":{"type":"array","items":{"type":"string"}},"incomplete":{"type":"array","items":{"type":"string"}},"symbols":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"found":{"type":"boolean"},"kind":{"type":"string"},"file":{"type":"string"}}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"package":{"type":"string"},"version":{"type":"string"},"complete":{"type":"boolean","description":"True when the whole export surface was enumerated, so a missing symbol is a real absence."},"filesRead":{"type":"array","items":{"type":"string"}},"incomplete":{"type":"array","items":{"type":"string"}},"symbols":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"found":{"type":"boolean"},"kind":{"type":"string"},"file":{"type":"string"}}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"package":"nanoid","version":"5.0.7","symbols":["nanoid","customAlphabet","nonexistentFn"]},"openapiOperation":{"operationId":"symbol_exists","summary":"Is this export in the npm package's published type declarations","description":"Checks that up to 20 named exports (functions, classes, constants, types, default) exist in the .d.ts files published for an exact npm package version, read from jsDelivr, for coding agents that may be calling an API that does not exist. Follows export lists and relative export-star re-exports within the package (at most 7 files) and reports when the export surface cannot be fully enumerated. Never downloads or runs the package code; packages typed only through @types or without declarations return unsupported; does not check signatures or arguments.\n\nPrice: 0.005 USDC on Base (x402).","x-x402-price-usdc":"0.005","x-x402-amount":"5000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"x-audience":"developer","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/symbol-exists","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["package","version","symbols"],"properties":{"package":{"type":"string","maxLength":214,"description":"npm package name."},"version":{"type":"string","maxLength":64,"description":"Exact version or dist-tag (jsDelivr resolves it).","pattern":"^[0-9A-Za-z.+_~-]{1,64}$"},"symbols":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","maxLength":100,"pattern":"^[A-Za-z_$][A-Za-z0-9_$]*$"}},"entry":{"type":"string","maxLength":100,"description":"package.json exports key, default '.'."},"typesPath":{"type":"string","maxLength":200,"description":"Declaration file path inside the package, overriding package.json resolution."}}},"example":{"package":"nanoid","version":"5.0.7","symbols":["nanoid","customAlphabet","nonexistentFn"]}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"package":{"type":"string"},"version":{"type":"string"},"complete":{"type":"boolean","description":"True when the whole export surface was enumerated, so a missing symbol is a real absence."},"filesRead":{"type":"array","items":{"type":"string"}},"incomplete":{"type":"array","items":{"type":"string"}},"symbols":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"found":{"type":"boolean"},"kind":{"type":"string"},"file":{"type":"string"}}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/symbol-exists/","docsJson":"https://agents.writerslogic.com/docs/symbol-exists.json","sample":"https://agents.writerslogic.com/api/v1/samples/symbol-exists","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}