{"_id":"@auvexis/fabric-sdk","_rev":"3-1bf8b0a8e4f872df3075e9cc5397244e","name":"@auvexis/fabric-sdk","dist-tags":{"latest":"3.1.0"},"versions":{"2.0.1":{"name":"@auvexis/fabric-sdk","version":"2.0.1","keywords":["fabric","plugin","sdk","automation"],"author":"","license":"MIT","_id":"@auvexis/fabric-sdk@2.0.1","maintainers":[{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"}],"dist":{"shasum":"bddcfc14e31683ec36d6807d6ef5f4aa3c998a02","tarball":"https://registry.npmjs.org/@auvexis/fabric-sdk/-/fabric-sdk-2.0.1.tgz","fileCount":23,"integrity":"sha512-6cwatb91pbUmjaKkOzYAq3pLswo1vIunobma6/l/XD4/+LX4udxhpjv2MlKFyiHjDIzIuYHJ9iUDsNXshfUZpg==","signatures":[{"sig":"MEYCIQCOPZM2iaJmXkbp5eWfjYlodZneqcj0UFKQHLe+WGEeZQIhANg209Q7FCzhbKokRxTIxweBhFpVq2rlf1mNch1yodlU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59603},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./manifest-schema":{"types":"./dist/manifest-schema.d.ts","import":"./dist/manifest-schema.js"}},"gitHead":"d9a43c5648651c7b32b929af54ee29469adf98c7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","prepack":"npm run build","typecheck":"tsc -p tsconfig.typecheck.json"},"_npmUser":{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript SDK for building Fabric plugins. By Auvexis.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/fabric-sdk_2.0.1_1783804846805_0.28131840494449634","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@auvexis/fabric-sdk","version":"3.0.0","keywords":["fabric","plugin","sdk","automation"],"author":"","license":"MIT","_id":"@auvexis/fabric-sdk@3.0.0","maintainers":[{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"}],"dist":{"shasum":"eb67719cb197836f2b4185c877aa9e688d37e681","tarball":"https://registry.npmjs.org/@auvexis/fabric-sdk/-/fabric-sdk-3.0.0.tgz","fileCount":27,"integrity":"sha512-0TJNgSY2yDvQaDEdZgSzUEJxHQy/nd1JxSoz12i6VUTczlQQ0E2Gy7RV3Ka/zieBa+cLyuBSwgg+WvrtpP6hVA==","signatures":[{"sig":"MEQCIBtfPT3TZ78YnZh6OJ6Bc//hdr2LIVwkpC6UpMlUqqViAiAvSgld1JeVgnBIXut4wGSLtdA1F5E5/YkMHcfqv7R8SQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82254},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./manifest-schema":{"types":"./dist/manifest-schema.d.ts","import":"./dist/manifest-schema.js"}},"gitHead":"18d82029eafcf1bf08419d0fd8bd2e019719c6b8","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","prepack":"npm run build","typecheck":"tsc -p tsconfig.typecheck.json"},"_npmUser":{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript SDK for building Fabric plugins. By Auvexis.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ajv":"^8.20.0","@types/node":"^22.20.1","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.14","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/fabric-sdk_3.0.0_1785531041300_0.2840397430477848","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@auvexis/fabric-sdk","version":"3.1.0","description":"TypeScript SDK for building Fabric plugins. By Auvexis.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./manifest-schema":{"import":"./dist/manifest-schema.js","types":"./dist/manifest-schema.d.ts"}},"scripts":{"build":"tsc -p tsconfig.json","test":"vitest run","typecheck":"tsc -p tsconfig.typecheck.json","prepack":"npm run build"},"keywords":["fabric","plugin","sdk","automation"],"author":"","license":"MIT","dependencies":{"@types/node":"^22.20.1","ajv":"^8.20.0","ajv-formats":"^3.0.1"},"devDependencies":{"typescript":"^5.9.3","vitest":"^4.0.14"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@auvexis/fabric-sdk@3.1.0","gitHead":"18d82029eafcf1bf08419d0fd8bd2e019719c6b8","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-kAmtd6DAvU0D/+9+xLzEyOYJQHa3Xl5oG9smoZh8RZ8FyVAwIwlN4nmy63R22WjX3tQ2fy9sFqOteOTdK4tVdQ==","shasum":"4f811345e1f76dffcdda75b2495d3a24d58cd60c","tarball":"https://registry.npmjs.org/@auvexis/fabric-sdk/-/fabric-sdk-3.1.0.tgz","fileCount":27,"unpackedSize":85213,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEjxI9lgFYBIvhUVgeYTtmWe1L6qKuU0yK5tlOwe/fXfAiBpVWGc6XQIIfPFPT2kMR/lmSZgr6GSZTEdknR60Myafg=="}]},"_npmUser":{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"},"directories":{},"maintainers":[{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fabric-sdk_3.1.0_1786220477140_0.03304124993842872"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-11T21:20:46.652Z","modified":"2026-08-08T20:21:17.419Z","2.0.1":"2026-07-11T21:20:46.941Z","3.0.0":"2026-07-31T20:50:41.505Z","3.1.0":"2026-08-08T20:21:17.277Z"},"license":"MIT","keywords":["fabric","plugin","sdk","automation"],"description":"TypeScript SDK for building Fabric plugins. By Auvexis.","maintainers":[{"name":"euandresimoes","email":"andre.simoesdutra23@gmail.com"}],"readme":"# @auvexis/fabric-sdk\n\nTypeScript SDK for building external Fabric plugins. By Auvexis.\n\n## Install\n\n```bash\nnpm install @auvexis/fabric-sdk\n```\n\n## Minimal plugin\n\n```ts\nimport { defineManifest, definePlugin } from \"@auvexis/fabric-sdk\";\n\nconst manifest = defineManifest({\n  metadata: {\n    id: \"my-plugin\",\n    name: \"My Plugin\",\n    description: \"Small external plugin\",\n    icon: \"plug\",\n    categories: [\"Apps\"],\n    author: \"Acme\",\n    version: \"1.0.0\",\n    repository: \"https://github.com/acme/my-plugin\",\n  },\n  methods: {\n    ping: {\n      metadata: {\n        label: \"Ping\",\n        description: \"Returns pong\",\n      },\n      parameters: {\n        type: \"object\",\n        properties: {},\n      },\n      responseSchema: {\n        type: \"object\",\n      },\n    },\n  },\n});\n\nexport default definePlugin({\n  id: \"my-plugin\",\n  manifest,\n  auth: { type: \"none\" },\n  methods: {\n    async ping() {\n      return { pong: true };\n    },\n  },\n});\n```\n\n## Validate a manifest\n\n```ts\nimport { validateManifest } from \"@auvexis/fabric-sdk\";\n\nconst result = validateManifest(manifest);\n\nif (!result.valid) {\n  console.error(result.errors);\n}\n```\n\n## File contracts\n\nFabric file values use one canonical envelope. Plugins may accept only Node.js `Buffer`\ncontent or Base64 content:\n\n```ts\nimport {\n  defineManifest,\n  fileOutput,\n  filesInput,\n  type FabricBase64File,\n  type FabricBufferFile,\n} from \"@auvexis/fabric-sdk\";\n\nconst downloaded: FabricBufferFile = {\n  name: \"report.pdf\",\n  mimeType: \"application/pdf\",\n  content: Buffer.from(\"...\"),\n};\n\nconst attachment: FabricBase64File = {\n  name: downloaded.name,\n  mimeType: downloaded.mimeType,\n  content: downloaded.content.toString(\"base64\"),\n};\n\nconst manifest = defineManifest({\n  metadata: {\n    id: \"file-transfer\",\n    name: \"File Transfer\",\n    description: \"Transfers files to another service.\",\n    categories: [\"Files\"],\n    author: \"Acme\",\n    version: \"1.0.0\",\n  },\n  methods: {\n    transfer: {\n      metadata: { label: \"Transfer\", description: \"Transfers files.\" },\n      parameters: {\n        type: \"object\",\n        properties: {\n          attachments: filesInput({ encoding: \"base64\", label: \"Attachments\" }),\n        },\n        required: [\"attachments\"],\n      },\n      responseSchema: fileOutput({ encoding: \"buffer\" }),\n      agentTool: {\n        enabled: true,\n        name: \"file_transfer\",\n        description: \"Transfers files to the configured external destination.\",\n        sideEffect: \"write\",\n        requiresApproval: true,\n        timeoutMs: 30000,\n      },\n    },\n  },\n});\n```\n\nThe canonical fields are `name`, `mimeType`, optional `size`, and `content`.\nStreams and custom content field names are not valid plugin-boundary file contracts.\n\nAvailable helpers:\n\n- `fileInput`\n- `filesInput`\n- `fileOutput`\n- `filesOutput`\n\n## Exports\n\n- `defineManifest`\n- `definePlugin`\n- `validateManifest`\n- `manifestSchema`\n- Fabric plugin, auth, method, trigger and JSON schema types\n- Canonical Buffer and Base64 file contracts\n- Agent tool manifest metadata\n\n## Migration from 1.x to 2.0\n\nVersion 2.0 removes the legacy singular `metadata.category` field.\n\nBefore:\n\n```json\n{\n  \"metadata\": {\n    \"category\": \"Utilities\"\n  }\n}\n```\n\nAfter:\n\n```json\n{\n  \"metadata\": {\n    \"categories\": [\"Core\"]\n  }\n}\n```\n\nValid categories are:\n\n- `AI`\n- `Core`\n- `Flow`\n- `Data transformation`\n- `Apps`\n- `Files`\n- `Developer`\n","readmeFilename":"README.md"}