{"_id":"@ateam-ai/sdk","_rev":"5-55d370dcc0622ba36d49f97b3e40cc64","name":"@ateam-ai/sdk","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"@ateam-ai/sdk","version":"1.0.0","keywords":["ateam","a-team","ateam-ai","mcp","connector","sdk"],"license":"MIT","_id":"@ateam-ai/sdk@1.0.0","maintainers":[{"name":"ariekogan","email":"ariekogan33@gmail.com"}],"homepage":"https://github.com/ariekogan/ai-dev-assistant#readme","bugs":{"url":"https://github.com/ariekogan/ai-dev-assistant/issues"},"dist":{"shasum":"fd9ca480bd22e4b64b228a35fdebd1675afef67f","tarball":"https://registry.npmjs.org/@ateam-ai/sdk/-/sdk-1.0.0.tgz","fileCount":9,"integrity":"sha512-sLl9MbuWB6Q7X6Sja2Uzu+rCjHt028b4p/Rre0e5QxEg7SXlNTO4ai+U0iyBTh1KbkvJAjYCV9wIquDuqe9U9A==","signatures":[{"sig":"MEUCIQDJDbzis2L1vkvearKzxT8uTYkAe7q3vqBgTHmpXQDGhwIgM8kYWjOTx1l+JUMw2JH1XfIekwcvD8A6fMhUejGiepk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11061},"main":"src/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./llm":"./src/llm.js","./log":"./src/log.js","./memory":"./src/memory.js","./context":"./src/context.js","./platform":"./src/platform.js","./progress":"./src/progress.js"},"_npmUser":{"name":"ariekogan","email":"ariekogan33@gmail.com"},"repository":{"url":"git+https://github.com/ariekogan/ai-dev-assistant.git","type":"git","directory":"packages/ateam-sdk"},"_npmVersion":"11.11.0","description":"A-Team platform runtime SDK for custom connectors and skills","directories":{},"_nodeVersion":"25.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1776241284382_0.1535174098001144","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ateam-ai/sdk","version":"1.1.0","keywords":["ateam","a-team","ateam-ai","mcp","connector","sdk"],"license":"MIT","_id":"@ateam-ai/sdk@1.1.0","maintainers":[{"name":"ariekogan","email":"ariekogan33@gmail.com"}],"dist":{"shasum":"295fff1d669f6925009c4ac9fc557e4ccb0d3640","tarball":"https://registry.npmjs.org/@ateam-ai/sdk/-/sdk-1.1.0.tgz","fileCount":9,"integrity":"sha512-asqQRcf4aFPLb9pwCeHiolxv5BxMscqX0GRdIAI6hs6KW6jUr9SNes+h77ix7Z2oOY4Z72ZGYqGZ+GJHQr9LXw==","signatures":[{"sig":"MEYCIQDW53oRc2TQhZ0cjMsoKWNCARXlJbQCel4wzsQ6e3aClgIhALtU2DVnpjPG9QdvQ6O2trhAWTHxeK8e8ggHcI8lHd8+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16156},"main":"src/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./llm":"./src/llm.js","./log":"./src/log.js","./memory":"./src/memory.js","./context":"./src/context.js","./platform":"./src/platform.js","./progress":"./src/progress.js"},"gitHead":"909716fcb3dd1a9b4e487eb5e8194b89041c907f","_npmUser":{"name":"ariekogan","email":"ariekogan33@gmail.com"},"_npmVersion":"11.11.0","description":"A-Team platform runtime SDK for custom connectors and skills","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_1.1.0_1777058119163_0.4224998576286272","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@ateam-ai/sdk","version":"1.2.4","keywords":["ateam","a-team","ateam-ai","mcp","connector","sdk"],"license":"MIT","_id":"@ateam-ai/sdk@1.2.4","maintainers":[{"name":"ariekogan","email":"ariekogan33@gmail.com"}],"dist":{"shasum":"e6d6c560e7d2ad01626f7c52e530d4026ad07fc9","tarball":"https://registry.npmjs.org/@ateam-ai/sdk/-/sdk-1.2.4.tgz","fileCount":10,"integrity":"sha512-GIahMKGUCTsHsIMrxA5hwgb8URhfA5CkxUZm25YINlb3FjqFEVOMzaB4AnsVX2DZtCyQnZSAa54BqTaI5oaOQw==","signatures":[{"sig":"MEYCIQDCKqvFAoDN8vy37M9jt5EPg2fwlGNKswRlopSNlCAQugIhAMN2eCG5hfbti6oj5xvm51KnBePbzpo5PzzzhbfAnIyW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35875},"main":"src/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./llm":"./src/llm.js","./log":"./src/log.js","./serve":"./src/serve.js","./memory":"./src/memory.js","./context":"./src/context.js","./platform":"./src/platform.js","./progress":"./src/progress.js"},"gitHead":"e923a4658951098c12662e0eb9a1a9257b19d1fe","_npmUser":{"name":"ariekogan","email":"ariekogan33@gmail.com"},"_npmVersion":"10.9.8","description":"A-Team platform runtime SDK for custom connectors and skills","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"zod":">=3.22.0","@modelcontextprotocol/sdk":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.2.4_1787269555941_0.6748801459963276","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@ateam-ai/sdk","version":"1.3.0","keywords":["ateam","a-team","ateam-ai","mcp","connector","sdk"],"license":"MIT","_id":"@ateam-ai/sdk@1.3.0","maintainers":[{"name":"ariekogan","email":"ariekogan33@gmail.com"}],"dist":{"shasum":"b37db5cceb083c5ee67188429b86f6a8d34aba9a","tarball":"https://registry.npmjs.org/@ateam-ai/sdk/-/sdk-1.3.0.tgz","fileCount":10,"integrity":"sha512-4cx0Z85Y9Z89N/KX14fRIkEcUU+Ly0KAK7XWQhLonP3xfMJaNzMJxa2Z+2QIejEeZ5knxir9fmWOCp5ic6GCkQ==","signatures":[{"sig":"MEYCIQCkZcxXWSWRiI2AVvNn/foxvcu4uGuHlbHZXAUJeUDjzQIhAKenX8+RXphoWbV/JxoXdZslpmx2+liEXkE1B1+KCp32","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43103},"main":"src/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./llm":"./src/llm.js","./log":"./src/log.js","./serve":"./src/serve.js","./memory":"./src/memory.js","./context":"./src/context.js","./platform":"./src/platform.js","./progress":"./src/progress.js"},"gitHead":"8fff9f7a37701e56b276b09786f136b628bc0799","_npmUser":{"name":"ariekogan","email":"ariekogan33@gmail.com"},"_npmVersion":"10.9.8","description":"A-Team platform runtime SDK for custom connectors and skills","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"zod":">=3.22.0","@modelcontextprotocol/sdk":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_1.3.0_1787302941507_0.010930872827835225","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@ateam-ai/sdk","version":"1.4.0","description":"A-Team platform runtime SDK for custom connectors and skills","type":"module","main":"src/index.js","exports":{".":"./src/index.js","./platform":"./src/platform.js","./context":"./src/context.js","./memory":"./src/memory.js","./progress":"./src/progress.js","./log":"./src/log.js","./llm":"./src/llm.js","./serve":"./src/serve.js"},"keywords":["ateam","a-team","ateam-ai","mcp","connector","sdk"],"license":"MIT","engines":{"node":">=18"},"peerDependencies":{"@modelcontextprotocol/sdk":">=1.0.0","zod":">=3.22.0"},"_id":"@ateam-ai/sdk@1.4.0","gitHead":"a2458f0a35b364d6083160c3f0b6338fdda1f891","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-VnMADIxdCOb64MzfQTDoJEl/6F0nojTlfOFZpwfd6KOJTls1AvNT3dhX+ciSiHI6FHjXbT1fCJGuIJHLJDIX3Q==","shasum":"2c509601566f0b0bae2a28000328896262f04926","tarball":"https://registry.npmjs.org/@ateam-ai/sdk/-/sdk-1.4.0.tgz","fileCount":10,"unpackedSize":45792,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/lHS17KCLFAM7alndU5eJhNIwp3sKcQ5pGQCFQKz0LAIhAM3YSFPtlScnsk9FxpMaOk3F2oNpvVC7wxtOhBYzYkjB"}]},"_npmUser":{"name":"ariekogan","email":"ariekogan33@gmail.com"},"directories":{},"maintainers":[{"name":"ariekogan","email":"ariekogan33@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.4.0_1787304160379_0.9148397646898379"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T08:21:24.256Z","modified":"2026-08-21T09:22:40.690Z","1.0.0":"2026-04-15T08:21:24.528Z","1.1.0":"2026-04-24T19:15:19.335Z","1.2.4":"2026-08-20T23:45:56.149Z","1.3.0":"2026-08-21T09:02:21.651Z","1.4.0":"2026-08-21T09:22:40.520Z"},"license":"MIT","keywords":["ateam","a-team","ateam-ai","mcp","connector","sdk"],"description":"A-Team platform runtime SDK for custom connectors and skills","maintainers":[{"name":"ariekogan","email":"ariekogan33@gmail.com"}],"readme":"# @ateam-ai/sdk\n\nRuntime SDK for A-Team platform. Use from inside custom connectors or skill code to access platform capabilities cleanly — no JSON-RPC boilerplate, no URL wrangling, no auth token management.\n\n## Install\n\n```bash\nnpm install @ateam-ai/sdk\n```\n\n## Quick start\n\n```js\nimport { platform, context, memory, progress, log, llm } from \"@ateam-ai/sdk\";\n\n// Call any platform connector\nconst page = await platform.callTool(\"browser-mcp\", \"web.navigate\", { url: \"https://example.com\" });\n\n// Per-tool-call context (the common case — actor that triggered THIS call)\nasync function handleToolCall(name, args) {\n  const actorId = context.requireActorFromArgs(args);    // throws if missing\n  if (!context.hasRole(args, \"admin\")) { /* deny */ }\n  const clean = context.stripAdasContext(args);          // args without _adas_*\n}\n\n// Process-level context (connector self-identification)\nconst ownTenant = context.tenant();        // \"mobile-pa\"\nconst ownActor  = context.actorId();        // connector's own actor, may be null\nconst full = await context.get();           // full platform context (async)\n\n// Memory shortcuts\nawait memory.store({ type: \"preference\", content: \"Prefers window seats\" });\nconst hits = await memory.recall(\"seats\");\nconst profile = await memory.profile();\n\n// Progress events (visible in UI traces)\nawait progress.emit(\"Scraping page 3\", { step: 3, total: 7 });\n\n// Structured logging\nlog.info(\"starting request\", { url });\nlog.error(\"request failed\", { err: err.message });\n\n// Platform LLM (fast tier by default)\nconst res = await llm.call({ prompt: \"Summarize: ...\", max_tokens: 200 });\nconsole.log(res.text);\n```\n\n## Environment variables (injected by platform)\n\nYour connector process receives these automatically — don't set them yourself:\n\n- `ADAS_SDK_URL` — platform MCP gateway URL\n- `ADAS_MCP_TOKEN` — auth token\n- `ADAS_TENANT` — current tenant\n- ~~`ADAS_ACTOR_ID`~~ — **does not exist.** Nothing sets it; `context.actorId()` throws.\n  A connector process is shared by every actor in a tenant, so there is no process-level\n  actor. Caller identity is per CALL — use `context.fromArgs(args).actorId`.\n- `ADAS_CONNECTOR_ID` — your connector's ID (used by logging)\n\n## API\n\n### `platform.callTool(connector, tool, args)`\nCall any platform connector's tool. Tenant and actor are auto-injected.\n\n### `platform.mcpCall(toolName, args, opts?)`\nLow-level MCP JSON-RPC call. Most users want `callTool()`.\n\n### `context.tenant()` / `context.actorId()`\nProcess-level, read synchronously from env. Stable for connector lifetime.\nUse for self-identification (logging prefix, health probes). Usually **not**\nwhat a tool handler wants — use the per-call helpers below.\n\n### `context.tenantFromArgs(args)` / `context.actorIdFromArgs(args)`\nPer-tool-call. Reads the actor / tenant that originated **this specific**\ntool call from the args ConnectorManager injected (`_adas_*`). Use for\nauthorization, data scoping, per-user lookups.\n\n### `context.requireActorFromArgs(args)`\nThrows if actor missing. Use for authz-critical tools (per-user OAuth,\nuser-scoped DB reads).\n\n### `context.roleFromArgs(args)` / `context.rolesFromArgs(args)`\nCaller's role (`\"owner\" | \"admin\" | \"member\" | \"viewer\"`). Sourced from\nbackend's authoritative `req.auth` — safe to gate on.\n\n### `context.hasRole(args, \"admin\")`\nHierarchical check. owner > admin > member > viewer.\n\n### `context.requestIdFromArgs(args)`\nRequest id for cross-service log correlation.\n\n### `context.stripAdasContext(args)`\nReturn args with all `_adas_*` keys removed. Handy before forwarding args\nto other services or logging (keeps platform metadata out of your logic).\n\n### `context.get()`\nAsync — full context from platform (includes actor object, job, skill).\n\n### `context.rejectSystemActor(args?)`\nThrows if actor is `default`, `trigger-runner`, `test`, etc. Defaults to\nchecking process-level `actorId()`; pass `args` to check the per-call actor.\n\n### `memory.store(args)` / `memory.recall(query, opts)` / `memory.list(opts)` / `memory.profile()` / `memory.profileSet(field, value)` / `memory.update(id, patch)` / `memory.remove(id)`\nShortcuts over `memory-mcp`. Actor is auto-injected.\n\n### `progress.emit(message, opts?)`\nEmit a progress event to the current job's SSE feed.\n\n### `log.info/warn/error/debug(msg, data?)`\nStructured stdout logging with connector prefix.\n\n### `llm.call({ prompt, system?, max_tokens?, temperature?, caller? })`\nCall the platform's fast LLM.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}