diff --git a/.claude/settings.json b/.claude/settings.json index c4beb6f87..2338791d4 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,5 +1,41 @@ { "sandbox": { "enabled": false + }, + "permissions": { + "allow": [ + "Bash(bash setup.sh*)", + "Bash(git remote *)", + "Bash(npx tsx setup/index.ts*)", + "Bash(npx tsx scripts/init-first-agent.ts*)", + "Bash(npm install @chat-adapter/*)", + "Bash(npm install chat-adapter-imessage*)", + "Bash(npm install @bitbasti/chat-adapter-webex*)", + "Bash(npm install @resend/chat-sdk-adapter*)", + "Bash(npm install @whiskeysockets/baileys*)", + "Bash(npm install @beeper/chat-adapter-matrix*)", + "Bash(npm install @nanoco/nanoclaw-dashboard*)", + "Bash(npm ci*)", + "Bash(npm run build*)", + "Bash(curl -fsSL onecli.sh*)", + "Bash(onecli *)", + "Bash(grep -q *)", + "Bash(echo *>> .env)", + "Bash(ls *)", + "Bash(cat ~/.config/nanoclaw/*)", + "Bash(tail *logs/*)", + "Bash(launchctl *nanoclaw*)", + "Bash(sqlite3 data/*)", + "Bash(docker info*)", + "Bash(docker logs *)", + "Bash(mkdir -p *)", + "Bash(cp .env *)", + "Bash(rsync -a .claude/skills/*)", + "Bash(head *)", + "Bash(xattr *)", + "Bash(find ~/.npm *)", + "Bash(which onecli*)", + "Bash(./container/build.sh*)" + ] } } diff --git a/.claude/skills/add-linear-v2/SKILL.md b/.claude/skills/add-linear-v2/SKILL.md index cfa505d43..ef3cbc65e 100644 --- a/.claude/skills/add-linear-v2/SKILL.md +++ b/.claude/skills/add-linear-v2/SKILL.md @@ -29,7 +29,7 @@ npm run build ## Credentials -> 1. Go to [Linear Settings > API](https://linear.app/settings/api) +> 1. Go to [Linear Settings > API Keys](https://linear.app/settings/account/security/api-keys/new) > 2. Create a **Personal API Key** (or use an OAuth application for team-wide access) > 3. Copy the API key > 4. Set up a webhook: diff --git a/.claude/skills/add-vercel/SKILL.md b/.claude/skills/add-vercel/SKILL.md index 7342acc66..32557161e 100644 --- a/.claude/skills/add-vercel/SKILL.md +++ b/.claude/skills/add-vercel/SKILL.md @@ -36,7 +36,7 @@ If `ONECLI_MISSING`, tell the user to run `/init-onecli` first, then retry `/add Copy the bundled container skill into the container skills directory: ```bash -cp -r .claude/skills/add-vercel/container-skills/* container/skills/ +rsync -a .claude/skills/add-vercel/container-skills/ container/skills/ ``` Verify: diff --git a/.claude/skills/setup/setup-permissions.json b/.claude/skills/setup/setup-permissions.json index dbf37e4a7..a263d4cf4 100644 --- a/.claude/skills/setup/setup-permissions.json +++ b/.claude/skills/setup/setup-permissions.json @@ -3,7 +3,13 @@ "Bash(git remote *)", "Bash(npx tsx setup/index.ts*)", "Bash(npx tsx scripts/init-first-agent.ts*)", - "Bash(npm install chat-adapter-*)", + "Bash(npm install @chat-adapter/*)", + "Bash(npm install chat-adapter-imessage*)", + "Bash(npm install @bitbasti/chat-adapter-webex*)", + "Bash(npm install @resend/chat-sdk-adapter*)", + "Bash(npm install @whiskeysockets/baileys*)", + "Bash(npm install @beeper/chat-adapter-matrix*)", + "Bash(npm install @nanoco/nanoclaw-dashboard*)", "Bash(npm ci*)", "Bash(npm run build*)", "Bash(curl -fsSL onecli.sh*)", @@ -19,6 +25,8 @@ "Bash(docker logs *)", "Bash(mkdir -p *)", "Bash(cp .env *)", + "Bash(rsync -a .claude/skills/*)", + "Bash(head *)", "Bash(xattr *)", "Bash(find ~/.npm *)", "Bash(which onecli*)", diff --git a/package-lock.json b/package-lock.json index b6229cf59..505305a64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@chat-adapter/discord": "^4.24.0", "@chat-adapter/gchat": "^4.24.0", "@chat-adapter/github": "^4.24.0", - "@chat-adapter/linear": "^4.24.0", + "@chat-adapter/linear": "^4.26.0", "@chat-adapter/slack": "^4.24.0", "@chat-adapter/state-memory": "^4.24.0", "@chat-adapter/teams": "^4.24.0", @@ -242,14 +242,38 @@ } }, "node_modules/@chat-adapter/linear": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@chat-adapter/linear/-/linear-4.24.0.tgz", - "integrity": "sha512-FrbIPyWMW5WWT4KFIO14Oc0iLwdUQG1R5eQ0oXLizVCXWb3COTwwNhhozO7eGL8ZDI+OrU7Tz8sWjNEakuBxSg==", + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@chat-adapter/linear/-/linear-4.26.0.tgz", + "integrity": "sha512-sQfJXh9QbMnLV/odikaWHBQ3Mx1ZS+QtxIt7dTEQ4aCeIrQJflycAxxO8d6aepaGKhLQjvZx7iOkdfxMj35WlA==", "license": "MIT", "dependencies": { - "@chat-adapter/shared": "4.24.0", + "@chat-adapter/shared": "4.26.0", "@linear/sdk": "^76.0.0", - "chat": "4.24.0" + "chat": "4.26.0" + } + }, + "node_modules/@chat-adapter/linear/node_modules/@chat-adapter/shared": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/@chat-adapter/shared/-/shared-4.26.0.tgz", + "integrity": "sha512-YD0MGktFXrArUqTBsyPfL5vkdD1WBS58PAWO0oVrMQAMmPxpAXfWGjBtZCkf3y8R8Svb0uVuVXiMZSForaEnMQ==", + "license": "MIT", + "dependencies": { + "chat": "4.26.0" + } + }, + "node_modules/@chat-adapter/linear/node_modules/chat": { + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/chat/-/chat-4.26.0.tgz", + "integrity": "sha512-QToDnIEGpyb8yQA6YLMHOSRK30YVk4RtsyFyuWFYyB2c4jQlyIrSWtwVK7qyvmvqzQp9uDwCdJRAhS8GtCHAGQ==", + "license": "MIT", + "dependencies": { + "@workflow/serde": "4.1.0-beta.2", + "mdast-util-to-string": "^4.0.0", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "remend": "^1.2.1", + "unified": "^11.0.5" } }, "node_modules/@chat-adapter/shared": { diff --git a/package.json b/package.json index a2afb758f..6e578faf3 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@chat-adapter/discord": "^4.24.0", "@chat-adapter/gchat": "^4.24.0", "@chat-adapter/github": "^4.24.0", - "@chat-adapter/linear": "^4.24.0", + "@chat-adapter/linear": "^4.26.0", "@chat-adapter/slack": "^4.24.0", "@chat-adapter/state-memory": "^4.24.0", "@chat-adapter/teams": "^4.24.0", diff --git a/src/channels/index.ts b/src/channels/index.ts index f61c252d5..d3008a85b 100644 --- a/src/channels/index.ts +++ b/src/channels/index.ts @@ -14,7 +14,7 @@ import './telegram.js'; // import './github.js'; // linear -// import './linear.js'; +import './linear.js'; // google chat // import './gchat.js';