{"_id":"@absuitecore/connector-starter","_rev":"6-51199eb11062bbe0bf499d4b3fc3bb23","name":"@absuitecore/connector-starter","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"@absuitecore/connector-starter","version":"1.0.0","keywords":["connectors","integrations","scaffold","ai-agents"],"license":"MIT","_id":"@absuitecore/connector-starter@1.0.0","maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"homepage":"https://github.com/iamGodofall/ABSuite-core#readme","bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"dist":{"shasum":"11be83453fb6720ba703aba97998173950aae53d","tarball":"https://registry.npmjs.org/@absuitecore/connector-starter/-/connector-starter-1.0.0.tgz","fileCount":11,"integrity":"sha512-OADhkjNJqDOs4PmXlhNQx/ylNAcQFuKiYGoyyOcMq7Rm96F3rp9H9ODf/ZxGYRCI0cezpOArghYt/JrZlC+j+A==","signatures":[{"sig":"MEUCIQDx6UX8OFNF34gpQ7cPqjzjYI+WDDMurs0F3THy1WlpLQIgSNJBJ3o/FQlIMbzw/0+ypuzQN+5qAvRtt03gfLl6Mhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@absuitecore%2fconnector-starter@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34083},"main":"dist/index.js","_from":"file:absuitecore-connector-starter-1.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"dev":"tsx src/server.ts","test":"jest -c ../../jest.config.js --rootDir ../.. --testPathPatterns packages/connector-starter","build":"tsc -p tsconfig.json","start":"node dist/server.js"},"_npmUser":{"name":"themba-mpehle","email":"landinwest@gmail.com"},"_resolved":"/tmp/6aec63da70d851df1bd4efbc45e2d127/absuitecore-connector-starter-1.0.0.tgz","_integrity":"sha512-OADhkjNJqDOs4PmXlhNQx/ylNAcQFuKiYGoyyOcMq7Rm96F3rp9H9ODf/ZxGYRCI0cezpOArghYt/JrZlC+j+A==","repository":{"url":"git+https://github.com/iamGodofall/ABSuite-core.git","type":"git","directory":"packages/connector-starter"},"_npmVersion":"10.9.8","description":"Connector registry, credential verification and deterministic connector scaffolding.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"express":"^4.18.0","@absuitecore/capkit":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/connector-starter_1.0.0_1785297901419_0.302726989362087","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@absuitecore/connector-starter","version":"1.0.1","keywords":["connectors","integrations","scaffold","ai-agents"],"license":"MIT","_id":"@absuitecore/connector-starter@1.0.1","maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"homepage":"https://github.com/iamGodofall/ABSuite-core#readme","bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"dist":{"shasum":"48720edb1836e3e0f518e6eae513e60dcddbf006","tarball":"https://registry.npmjs.org/@absuitecore/connector-starter/-/connector-starter-1.0.1.tgz","fileCount":11,"integrity":"sha512-3Mpi+J+Fc8RVHE8xI5GKqmvodoUlhuf+fAtyZo/AKgHS7I7dpdqGI6Jj1cd7lDwqmezh+jhBfGzv3/nyAd29MQ==","signatures":[{"sig":"MEQCIFzaSiPPS90pnat6uzwW8zgjapMc/Mz9V731diZ/AkoyAiALQodfYoT4O9/ZIg0mMV/AdAOBLDltHC1Bl3CPVq7I9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@absuitecore%2fconnector-starter@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34084},"main":"dist/index.js","_from":"file:absuitecore-connector-starter-1.0.1.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"dev":"tsx src/server.ts","test":"jest -c ../../jest.config.js --rootDir ../.. --testPathPatterns packages/connector-starter","build":"tsc -p tsconfig.json","start":"node dist/server.js"},"_npmUser":{"name":"themba-mpehle","email":"landinwest@gmail.com"},"_resolved":"/tmp/f565022e255b6486d3796b20a65e2257/absuitecore-connector-starter-1.0.1.tgz","_integrity":"sha512-3Mpi+J+Fc8RVHE8xI5GKqmvodoUlhuf+fAtyZo/AKgHS7I7dpdqGI6Jj1cd7lDwqmezh+jhBfGzv3/nyAd29MQ==","repository":{"url":"git+https://github.com/iamGodofall/ABSuite-core.git","type":"git","directory":"packages/connector-starter"},"_npmVersion":"10.9.8","description":"Connector registry, credential verification and deterministic connector scaffolding.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"express":"^4.18.0","@absuitecore/capkit":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/connector-starter_1.0.1_1785316104782_0.6772685709396491","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@absuitecore/connector-starter","version":"1.1.0","keywords":["connectors","integrations","scaffold","ai-agents"],"license":"MIT","_id":"@absuitecore/connector-starter@1.1.0","maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"homepage":"https://github.com/iamGodofall/ABSuite-core#readme","bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"dist":{"shasum":"eeba88b9aa986a3dd113f682417efdcadbd83504","tarball":"https://registry.npmjs.org/@absuitecore/connector-starter/-/connector-starter-1.1.0.tgz","fileCount":11,"integrity":"sha512-Rcmbq2d/9X1lk8SWxrs9+S7MGj5ECpHff2yej8Db1lBat6Phj8uCcGB7of2DUDomCrzAsPwJuDd9/c12OWB9/Q==","signatures":[{"sig":"MEUCIQDogeyBZ2fzwIE7pAp0pMPJ7Ug1MIGoUcYiaj5akXeYxAIgbasZ3lbnGFuP5aElq1laD4IZ/xPmlO6IYrKafQl1mtg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@absuitecore%2fconnector-starter@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39678},"main":"dist/index.js","_from":"file:absuitecore-connector-starter-1.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"dev":"tsx src/server.ts","test":"jest -c ../../jest.config.js --rootDir ../.. --testPathPatterns packages/connector-starter","build":"tsc -p tsconfig.json","start":"node dist/server.js"},"_npmUser":{"name":"themba-mpehle","email":"landinwest@gmail.com"},"_resolved":"/tmp/d909e62bae2743337c75e5f31936f935/absuitecore-connector-starter-1.1.0.tgz","_integrity":"sha512-Rcmbq2d/9X1lk8SWxrs9+S7MGj5ECpHff2yej8Db1lBat6Phj8uCcGB7of2DUDomCrzAsPwJuDd9/c12OWB9/Q==","repository":{"url":"git+https://github.com/iamGodofall/ABSuite-core.git","type":"git","directory":"packages/connector-starter"},"_npmVersion":"10.9.8","description":"Connector registry, credential verification and deterministic connector scaffolding.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"express":"^4.18.0","@absuitecore/capkit":"^1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/connector-starter_1.1.0_1785687805351_0.7607646823028338","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@absuitecore/connector-starter","version":"1.2.0","keywords":["connectors","integrations","scaffold","ai-agents"],"license":"MIT","_id":"@absuitecore/connector-starter@1.2.0","maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"homepage":"https://github.com/iamGodofall/ABSuite-core#readme","bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"dist":{"shasum":"1d846857769994b75b34455a800e62121c599eeb","tarball":"https://registry.npmjs.org/@absuitecore/connector-starter/-/connector-starter-1.2.0.tgz","fileCount":11,"integrity":"sha512-ZNhVZ0MB9qV6vMA+V+bjG09t1hOF+JG5SzQwQtHzKH09nXO63PrSV2d5BQ2L45XlO4umRdmZ0i1XmCPiAOpbZQ==","signatures":[{"sig":"MEUCIAjEgH00dZxTKudOr/Ihh6UpnX+oLDCLz4B6Q7ErDxjhAiEA3NTHbuPh5S2mXNRTLNgeubW/+ZPmKr2TeiCNsJxlWxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@absuitecore%2fconnector-starter@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39213},"main":"dist/index.js","_from":"file:absuitecore-connector-starter-1.2.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"dev":"tsx src/server.ts","test":"jest -c ../../jest.config.js --rootDir ../.. --testPathPatterns packages/connector-starter","build":"tsc -p tsconfig.json","start":"node dist/server.js"},"_npmUser":{"name":"themba-mpehle","email":"landinwest@gmail.com"},"_resolved":"/tmp/e308ef585d9bd1fc94b704e8afd549f7/absuitecore-connector-starter-1.2.0.tgz","_integrity":"sha512-ZNhVZ0MB9qV6vMA+V+bjG09t1hOF+JG5SzQwQtHzKH09nXO63PrSV2d5BQ2L45XlO4umRdmZ0i1XmCPiAOpbZQ==","repository":{"url":"git+https://github.com/iamGodofall/ABSuite-core.git","type":"git","directory":"packages/connector-starter"},"_npmVersion":"10.9.8","description":"Connector registry, credential verification and deterministic connector scaffolding.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"express":"^4.18.0","@absuitecore/capkit":"^1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/connector-starter_1.2.0_1785719313123_0.3891014678840514","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@absuitecore/connector-starter","version":"1.3.0","keywords":["connectors","integrations","scaffold","ai-agents"],"license":"MIT","_id":"@absuitecore/connector-starter@1.3.0","maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"homepage":"https://github.com/iamGodofall/ABSuite-core#readme","bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"dist":{"shasum":"ab060077491688d131a5247b9dc775d9bbabb912","tarball":"https://registry.npmjs.org/@absuitecore/connector-starter/-/connector-starter-1.3.0.tgz","fileCount":11,"integrity":"sha512-jRuSLiFEP9YsLXprQPPbGVfDjJBkSiMSQ0JJMY7Xv1E1I9c2Amyd9258w9ZSBbSPm0ZMDp7b7b3kZFTImvRHAQ==","signatures":[{"sig":"MEUCIQDO97Jq3FVf+1a/e77PhwBalJ1JuomvHQHJGixBPIJjgAIgauc5vwjrbqsiA4GFw9TXce0CyKebz8uH0RMNeAogbmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@absuitecore%2fconnector-starter@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40113},"main":"dist/index.js","_from":"file:absuitecore-connector-starter-1.3.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"dev":"tsx src/server.ts","test":"jest -c ../../jest.config.js --rootDir ../.. --testPathPatterns packages/connector-starter","build":"tsc -p tsconfig.json","start":"node dist/server.js"},"_npmUser":{"name":"themba-mpehle","email":"landinwest@gmail.com"},"_resolved":"/tmp/584bf4779f03184d13e817370cc4bfd8/absuitecore-connector-starter-1.3.0.tgz","_integrity":"sha512-jRuSLiFEP9YsLXprQPPbGVfDjJBkSiMSQ0JJMY7Xv1E1I9c2Amyd9258w9ZSBbSPm0ZMDp7b7b3kZFTImvRHAQ==","repository":{"url":"git+https://github.com/iamGodofall/ABSuite-core.git","type":"git","directory":"packages/connector-starter"},"_npmVersion":"10.9.8","description":"Connector registry, credential verification and deterministic connector scaffolding.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"express":"^4.18.0","@absuitecore/capkit":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/connector-starter_1.3.0_1785725937008_0.03819341932483611","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@absuitecore/connector-starter","version":"1.4.0","description":"Connector registry, credential verification and deterministic connector scaffolding.","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","keywords":["connectors","integrations","scaffold","ai-agents"],"dependencies":{"express":"^4.18.0","@absuitecore/capkit":"^1.8.1"},"devDependencies":{"@types/express":"^4.17.21","@types/node":"^22.0.0","tsx":"^4.21.0","typescript":"^5.0.0"},"engines":{"node":">=22.5.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/iamGodofall/ABSuite-core.git","directory":"packages/connector-starter"},"homepage":"https://github.com/iamGodofall/ABSuite-core#readme","bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"scripts":{"build":"tsc -p tsconfig.json","start":"node dist/server.js","dev":"tsx src/server.ts","test":"jest -c ../../jest.config.js --rootDir ../.. --testPathPatterns packages/connector-starter"},"_id":"@absuitecore/connector-starter@1.4.0","_integrity":"sha512-uBl57564soK0m6QAHw9hez1SdxVXWVhrHYzHyCgZHC2ruCzPiWxASuOfdOaS/2OJanrkjqoOM9+NqDGE02Yv9g==","_resolved":"/tmp/d30690a46c5fae147d7bc43a7ddd9c73/absuitecore-connector-starter-1.4.0.tgz","_from":"file:absuitecore-connector-starter-1.4.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-uBl57564soK0m6QAHw9hez1SdxVXWVhrHYzHyCgZHC2ruCzPiWxASuOfdOaS/2OJanrkjqoOM9+NqDGE02Yv9g==","shasum":"8b87dd87f04f85f865a945fa35487503edccc2f4","tarball":"https://registry.npmjs.org/@absuitecore/connector-starter/-/connector-starter-1.4.0.tgz","fileCount":11,"unpackedSize":40317,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@absuitecore%2fconnector-starter@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAb2dzWnoM/NQ5dIS5a2rFOfGL7ErxlrnbEEMeRFKTg8AiEApQfWqNJ20Zw7ityFnv8LnK7Wh05XBWsqr8+VoDBux+I="}]},"_npmUser":{"name":"themba-mpehle","email":"landinwest@gmail.com"},"directories":{},"maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/connector-starter_1.4.0_1785741121608_0.6826665271427286"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-29T04:05:01.250Z","modified":"2026-08-03T07:12:02.080Z","1.0.0":"2026-07-29T04:05:01.648Z","1.0.1":"2026-07-29T09:08:24.948Z","1.1.0":"2026-08-02T16:23:25.512Z","1.2.0":"2026-08-03T01:08:33.309Z","1.3.0":"2026-08-03T02:58:57.158Z","1.4.0":"2026-08-03T07:12:01.739Z"},"bugs":{"url":"https://github.com/iamGodofall/ABSuite-core/issues"},"license":"MIT","homepage":"https://github.com/iamGodofall/ABSuite-core#readme","keywords":["connectors","integrations","scaffold","ai-agents"],"repository":{"type":"git","url":"git+https://github.com/iamGodofall/ABSuite-core.git","directory":"packages/connector-starter"},"description":"Connector registry, credential verification and deterministic connector scaffolding.","maintainers":[{"name":"themba-mpehle","email":"landinwest@gmail.com"}],"readme":"# @absuitecore/connector-starter\n\nConnector registry, credential verification and deterministic connector\nscaffolding.\n\n## What it does\n\n- **Registry** — GitHub, Slack, Discord, Linear, Notion and a generic webhook.\n  Each declares the environment it needs and reports honestly whether it is\n  configured.\n- **Verification** — checks credentials with a cheap, **read-only** call.\n  Clicking \"test\" never posts a message or opens an issue as a side effect.\n- **Actions** — execute real connector operations, with required inputs\n  validated before any network call.\n- **Scaffolding** — turns a description into a YAML manifest *and* compilable\n  TypeScript. Deterministic and rule-based: no API key, and the same\n  description always produces the same output, which matters when the result\n  gets committed.\n\n## Running\n\n```bash\nCAPKIT_HMAC_SECRET=$(openssl rand -hex 32) pnpm --filter @absuitecore/connector-starter dev\n```\n\n## API\n\n```bash\n# What is available, and what is configured?\ncurl localhost:8084/connectors\n\n# Verify credentials (read-only)\ncurl -X POST localhost:8084/connectors/github/verify -H \"Authorization: Bearer $TOKEN\"\n\n# Run an action\ncurl -X POST localhost:8084/connectors/github/actions/listIssues \\\n  -H \"Authorization: Bearer $TOKEN\" -H 'Content-Type: application/json' \\\n  -d '{\"owner\":\"iamGodofall\",\"repo\":\"ABSuite-core\"}'\n\n# Generate a connector\ncurl -X POST localhost:8084/generate -H 'Content-Type: application/json' \\\n  -d '{\"prompt\":\"Read GitHub issues and post them to Slack every 15 minutes\"}'\n```\n\nRequired scopes: `connector:read`, `connector:execute`.\n\nGeneration returns a `manifest`, ready-to-compile `typescript`, and the parsed\n`spec` — including a suggested Edge-Run cron schedule when the description\nimplies a cadence.\n\n## Security\n\nGeneric webhook targets must be `https`, and must not carry credentials in the\nURL — those end up in logs.\n\n**A webhook URL cannot point inward.** `webhook.send` takes its target from the\ncaller, so without a guard a `connector:execute` scope would also mean *fetch\n`http://169.254.169.254/` and hand back the body* — the cloud instance metadata\nservice, and how a machine's IAM credentials are stolen. Loopback, private,\nlink-local, unique-local, carrier-grade NAT and the unspecified address are all\nrefused, by resolved address rather than by the text of the hostname.\n\nRedirects are checked hop by hop, and `Authorization` is dropped when a redirect\ncrosses an origin. Checking only the URL the caller supplied is no protection at\nall against a `302` to an internal address, and letting credentials follow one\nturns a redirect into a way to harvest the caller's own tokens.\n\nSet `ABSUITE_ALLOW_PRIVATE_WEBHOOKS=true` if your webhook receiver genuinely\nlives on an internal address. The escape hatch exists deliberately: a control\nthat breaks a real deployment gets patched out, and then protects nobody.\n\nConnector credentials are read from the environment, are never returned in an\nAPI response, and do not appear in delivery-failure errors — a webhook URL is\nitself a credential.\n\n## Configuration\n\nAll connector credentials are optional — each connector reports its own state.\n\n| Variable | Connector |\n|---|---|\n| `GITHUB_TOKEN` | GitHub |\n| `SLACK_BOT_TOKEN` or `SLACK_WEBHOOK_URL` | Slack |\n| `DISCORD_WEBHOOK_URL` or `DISCORD_BOT_TOKEN` | Discord |\n| `LINEAR_API_KEY` | Linear |\n| `NOTION_TOKEN` | Notion |\n\n## Known limitations\n\nScaffolding is rule-based keyword analysis, not a language model. It reliably\ndetects common integrations, verbs and cadences, but it will not infer intent\nfrom an unusual description. It is a starting point to edit, not a finished\nconnector.\n\n---\n\n## Part of ABSuite\n\n**The black box for AI systems** — record what happened, prove it happened,\npreserve the evidence.\n\n| | |\n|---|---|\n| Source | <https://github.com/iamGodofall/ABSuite-core> |\n| Verify a trace in your browser | <https://iamgodofall.github.io/ABSuite-core/verify.html> |\n| Getting started | [GETTING-STARTED.md](https://github.com/iamGodofall/ABSuite-core/blob/main/GETTING-STARTED.md) |\n| Reporting a vulnerability | [SECURITY.md](https://github.com/iamGodofall/ABSuite-core/blob/main/SECURITY.md) — never a public issue |\n| What this project refuses to build | [PRINCIPLES.md](https://github.com/iamGodofall/ABSuite-core/blob/main/PRINCIPLES.md) |\n\nPublished from CI with a signed Sigstore provenance attestation — check it with\n`npm audit signatures` rather than taking our word for it.\n\nMIT licensed.\n","readmeFilename":"README.md"}