{"_id":"@9xlabs/paperclip-gitlab-plugin","_rev":"4-27f1bcd34145e116801ba95461c23ed4","name":"@9xlabs/paperclip-gitlab-plugin","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@9xlabs/paperclip-gitlab-plugin","version":"0.1.0","keywords":["paperclip","plugin","connector"],"author":{"name":"Paperclip"},"license":"MIT","_id":"@9xlabs/paperclip-gitlab-plugin@0.1.0","maintainers":[{"name":"norashing","email":"devduyph@gmail.com"}],"dist":{"shasum":"7eaa0142f15acbab68dd4c20339c5fa0c28bcd4d","tarball":"https://registry.npmjs.org/@9xlabs/paperclip-gitlab-plugin/-/paperclip-gitlab-plugin-0.1.0.tgz","fileCount":65,"integrity":"sha512-S0u+cr/Kc1V/I4kHItq1RyL96rV09+vXS7NUT8r7Dut1mPNHgSad7w5Q3Y2/ZhoNq/xV1ZohA//S+QSB7JbGxw==","signatures":[{"sig":"MEYCIQCfCT9izM1/LwMlop31QJSJcEkL6PFcTEulq8Z7GgbY8gIhAMdh1lPdLR35Z+cx4TdcA6mwdf1x1fCHhFQnNGZdOSpi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404734},"type":"module","_from":"file:9xlabs-paperclip-gitlab-plugin-0.1.0.tgz","private":false,"scripts":{"dev":"node ./esbuild.config.mjs --watch","test":"vitest run --config ./vitest.config.ts","build":"node ./esbuild.config.mjs","dev:ui":"paperclip-plugin-dev-server --root . --ui-dir dist/ui --port 4177","typecheck":"tsc --noEmit","build:rollup":"rollup -c"},"_npmUser":{"name":"norashing","email":"devduyph@gmail.com"},"_resolved":"/tmp/03ca349f798eb56d6a82c3049d36826d/9xlabs-paperclip-gitlab-plugin-0.1.0.tgz","_integrity":"sha512-S0u+cr/Kc1V/I4kHItq1RyL96rV09+vXS7NUT8r7Dut1mPNHgSad7w5Q3Y2/ZhoNq/xV1ZohA//S+QSB7JbGxw==","_npmVersion":"10.9.7","description":"Link GitLab projects to Paperclip and expose GitLab REST API agent tools.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.38.0","vitest":"^3.0.5","esbuild":"^0.27.3","typescript":"^5.7.3","@types/node":"^24.6.0","@types/react":"^19.0.8","@paperclipai/plugin-sdk":"^2026.416.0","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.1"},"paperclipPlugin":{"ui":"./dist/ui/","worker":"./dist/worker.js","manifest":"./dist/manifest.js"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/paperclip-gitlab-plugin_0.1.0_1776507556098_0.8891104068354649","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@9xlabs/paperclip-gitlab-plugin","version":"0.1.1","keywords":["paperclip","plugin","connector"],"author":{"name":"Paperclip"},"license":"MIT","_id":"@9xlabs/paperclip-gitlab-plugin@0.1.1","maintainers":[{"name":"norashing","email":"devduyph@gmail.com"}],"dist":{"shasum":"5f8bb609f6f0c7191ebbee2b91e878eb4ed6f5c5","tarball":"https://registry.npmjs.org/@9xlabs/paperclip-gitlab-plugin/-/paperclip-gitlab-plugin-0.1.1.tgz","fileCount":65,"integrity":"sha512-poRDThmOZK2C3zkAD2iDvVEtQi2YC1rOpt06KjSuWZm7WlmabQaDwHrf4kwhuclx3YgyCJ5u1AlzbTKlNNAuXA==","signatures":[{"sig":"MEUCIA6bWa0QpQU24BGAuIo9KHlt7tJplFTchhnX8Hc1eENwAiEAp1JwrVpeQ7BfJnaNWsUtVzolUYGCjnHlY29p0K2ws/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405637},"type":"module","_from":"file:9xlabs-paperclip-gitlab-plugin-0.1.1.tgz","private":false,"scripts":{"dev":"node ./esbuild.config.mjs --watch","test":"vitest run --config ./vitest.config.ts","build":"node ./esbuild.config.mjs","dev:ui":"paperclip-plugin-dev-server --root . --ui-dir dist/ui --port 4177","typecheck":"tsc --noEmit","build:rollup":"rollup -c"},"_npmUser":{"name":"norashing","email":"devduyph@gmail.com"},"_resolved":"/tmp/40ddd9150647287002aa0b48ee21a9ca/9xlabs-paperclip-gitlab-plugin-0.1.1.tgz","_integrity":"sha512-poRDThmOZK2C3zkAD2iDvVEtQi2YC1rOpt06KjSuWZm7WlmabQaDwHrf4kwhuclx3YgyCJ5u1AlzbTKlNNAuXA==","_npmVersion":"10.9.7","description":"Link GitLab projects to Paperclip and expose GitLab REST API agent tools.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.38.0","vitest":"^3.0.5","esbuild":"^0.27.3","typescript":"^5.7.3","@types/node":"^24.6.0","@types/react":"^19.0.8","@paperclipai/plugin-sdk":"^2026.416.0","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.1"},"paperclipPlugin":{"ui":"./dist/ui/","worker":"./dist/worker.js","manifest":"./dist/manifest.js"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/paperclip-gitlab-plugin_0.1.1_1776508378596_0.4573452484742526","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@9xlabs/paperclip-gitlab-plugin","version":"0.1.2","keywords":["paperclip","plugin","connector"],"author":{"name":"Paperclip"},"license":"MIT","_id":"@9xlabs/paperclip-gitlab-plugin@0.1.2","maintainers":[{"name":"norashing","email":"devduyph@gmail.com"}],"dist":{"shasum":"c007afcdd6038c036b06e3ebc731a4cc9ce469d3","tarball":"https://registry.npmjs.org/@9xlabs/paperclip-gitlab-plugin/-/paperclip-gitlab-plugin-0.1.2.tgz","fileCount":8,"integrity":"sha512-GLuWWAyrtlu/cUehtOaeCht78B5sQJVHtDkyYqeKXr59fkR8k7Uo+a+sC1G9oK5HWCR7YMBa89c/F/WnNHJufg==","signatures":[{"sig":"MEYCIQD7+8CDVsQqO4DcsSeEBfujYXuDR5L6bB/niNauKVIjHgIhAMOy0jJzuKJ5BrE9CMDKyuXj8KaxrWvplbWk9DtZlsOU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":994419},"type":"module","_from":"file:9xlabs-paperclip-gitlab-plugin-0.1.2.tgz","private":false,"scripts":{"dev":"node ./esbuild.config.mjs --watch","test":"vitest run --config ./vitest.config.ts","build":"node ./esbuild.config.mjs","dev:ui":"paperclip-plugin-dev-server --root . --ui-dir dist/ui --port 4177","typecheck":"tsc --noEmit","build:rollup":"rollup -c"},"_npmUser":{"name":"norashing","email":"devduyph@gmail.com"},"_resolved":"/tmp/786d1c2ddf3a9d03ea296c613ef4fe86/9xlabs-paperclip-gitlab-plugin-0.1.2.tgz","_integrity":"sha512-GLuWWAyrtlu/cUehtOaeCht78B5sQJVHtDkyYqeKXr59fkR8k7Uo+a+sC1G9oK5HWCR7YMBa89c/F/WnNHJufg==","_npmVersion":"10.9.7","description":"Link GitLab projects to Paperclip and expose GitLab REST API agent tools.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","tslib":"^2.8.1","rollup":"^4.38.0","vitest":"^3.0.5","esbuild":"^0.27.3","typescript":"^5.7.3","@types/node":"^24.6.0","@types/react":"^19.0.8","@paperclipai/plugin-sdk":"^2026.416.0","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.1"},"paperclipPlugin":{"ui":"./dist/ui/","worker":"./dist/worker.js","manifest":"./dist/manifest.js"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/paperclip-gitlab-plugin_0.1.2_1776565074469_0.13070444817229032","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@9xlabs/paperclip-gitlab-plugin","version":"0.1.3","type":"module","private":false,"description":"Link GitLab projects to Paperclip and expose GitLab REST API agent tools.","paperclipPlugin":{"manifest":"./dist/manifest.js","worker":"./dist/worker.js","ui":"./dist/ui/"},"keywords":["paperclip","plugin","connector"],"author":{"name":"9xLabs"},"license":"MIT","publishConfig":{"access":"public"},"devDependencies":{"@paperclipai/plugin-sdk":"^2026.403.0","react":"^19.0.0","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-typescript":"^12.1.2","@types/node":"^24.6.0","@types/react":"^19.0.8","esbuild":"^0.27.3","rollup":"^4.38.0","tslib":"^2.8.1","typescript":"^5.7.3","vitest":"^3.0.5"},"peerDependencies":{"react":">=18"},"scripts":{"build":"node ./esbuild.config.mjs","build:rollup":"rollup -c","dev":"node ./esbuild.config.mjs --watch","dev:ui":"paperclip-plugin-dev-server --root . --ui-dir dist/ui --port 4177","test":"vitest run --config ./vitest.config.ts","typecheck":"tsc --noEmit"},"_id":"@9xlabs/paperclip-gitlab-plugin@0.1.3","_integrity":"sha512-vYITGNctZ1HOKl2U2QH0nHpS0ZVOu4mZDaT0Gi/htOpnyHIlJTNfr+Zs1nhOqhVM2D+uiaKidmuVqdi9fRWZ3A==","_resolved":"/tmp/3493cc77775a1ac3ea1841c3e5538eb9/9xlabs-paperclip-gitlab-plugin-0.1.3.tgz","_from":"file:9xlabs-paperclip-gitlab-plugin-0.1.3.tgz","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-vYITGNctZ1HOKl2U2QH0nHpS0ZVOu4mZDaT0Gi/htOpnyHIlJTNfr+Zs1nhOqhVM2D+uiaKidmuVqdi9fRWZ3A==","shasum":"eec5bb4696c8d763433f708287a4b59d0ea7eee2","tarball":"https://registry.npmjs.org/@9xlabs/paperclip-gitlab-plugin/-/paperclip-gitlab-plugin-0.1.3.tgz","fileCount":8,"unpackedSize":1005295,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEkX0vEXAIfmh79vVzMmKTDxp5SlJcXfkw35SeHxRBOFAiA8mlvfBEcsQaSYYfQtaTZWwoZ+RHcLi1fy2p5N+mvraA=="}]},"_npmUser":{"name":"norashing","email":"devduyph@gmail.com"},"directories":{},"maintainers":[{"name":"norashing","email":"devduyph@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/paperclip-gitlab-plugin_0.1.3_1776651026891_0.17537541822599745"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-18T10:19:16.023Z","modified":"2026-04-20T02:10:27.216Z","0.1.0":"2026-04-18T10:19:16.259Z","0.1.1":"2026-04-18T10:32:58.756Z","0.1.2":"2026-04-19T02:17:54.829Z","0.1.3":"2026-04-20T02:10:27.086Z"},"author":{"name":"9xLabs"},"license":"MIT","keywords":["paperclip","plugin","connector"],"description":"Link GitLab projects to Paperclip and expose GitLab REST API agent tools.","maintainers":[{"name":"norashing","email":"devduyph@gmail.com"}],"readme":"# @9xlabs/paperclip-gitlab-plugin\n\nGitLab connector plugin for [Paperclip](https://github.com/paperclipai/paperclip).\n\n**This repository** is the 9xLabs–maintained home for the package (source, release, docs). The Paperclip **core** app and monorepo are upstream and are **not** developed here—install this plugin into any compatible Paperclip instance via npm or a local path.\n\nThis plugin helps operators:\n\n- connect a Paperclip instance to GitLab with API token validation,\n- map Paperclip projects to GitLab repositories,\n- store per-repository default branches,\n- expose GitLab merge request tools to agents.\n\n## What this plugin includes\n\n- Worker + UI entrypoints (`src/worker.ts`, `src/ui/index.tsx`)\n- GitLab settings page (token, mapping, branch)\n- Project/repository binding helpers\n- Agent tools:\n  - `ping_gitlab`\n  - `get_git_access_info`\n  - `list_merge_requests`\n  - `create_merge_request`\n\n## Requirements\n\n- Paperclip runtime with plugin support\n- GitLab Personal Access Token (API scope)\n- For private git clone in managed workspace: host git auth must be configured (SSH key or credential helper).  \n  Connector token is for GitLab API calls, not automatic git clone auth injection.\n\n## Development\n\nClone this repo (not the full Paperclip monorepo). Dependencies resolve from the public npm registry (`@paperclipai/plugin-sdk`, etc.).\n\n```bash\npnpm install\npnpm dev\npnpm dev:ui\npnpm test\n```\n\nUseful commands:\n\n```bash\npnpm typecheck\npnpm build\npnpm build:rollup\n```\n\n## Install into local Paperclip\n\n```bash\ncurl -X POST http://127.0.0.1:3100/api/plugins/install \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"packageName\":\"/absolute/path/to/paperclip-gitlab-plugin\",\"isLocalPath\":true}'\n```\n\nOr from the CLI (with `PAPERCLIP_API_URL` pointing at your instance):\n\n`pnpm paperclipai plugin install /absolute/path/to/paperclip-gitlab-plugin`\n\n## Configuration flow\n\n1. Open Paperclip -> Settings -> Plugins -> GitLab Connector\n2. Set `gitlabBaseUrl`\n3. Validate and save `gitlabTokenRef` (stored as secret ref)\n4. Add repository mappings (GitLab path -> Paperclip project)\n5. Save settings to apply bindings/workspaces/default branch data\n\n## Documentation\n\nProject docs are under [`docs/`](./docs/README.md):\n\n- planning/status: [`docs/01-planning/roadmap-and-status.md`](./docs/01-planning/roadmap-and-status.md)\n- design parity: [`docs/02-design/github-to-gitlab-parity.md`](./docs/02-design/github-to-gitlab-parity.md)\n- contracts: [`docs/03-integrate/paperclip-and-gitlab-contracts.md`](./docs/03-integrate/paperclip-and-gitlab-contracts.md)\n\nThe [`docs/sdlc/`](./docs/sdlc/README.md) folder is a bundled methodology reference.\n\n## npm release\n\nPackage: `@9xlabs/paperclip-gitlab-plugin`\n\nWorkflow: `.github/workflows/release-npm.yml`\n\n- Trigger: GitHub Release `published` or manual `workflow_dispatch`\n- Required repo secret: `NPM_TOKEN`\n- Publish command:\n\n```bash\npnpm publish --no-git-checks --access public --registry https://registry.npmjs.org/\n```\n\nPrepublish validation:\n\n```bash\npnpm prepublishOnly\n```\n\nWhich runs:\n\n```bash\npnpm typecheck && pnpm test && pnpm build\n```\n","readmeFilename":"README.md"}