diff --git a/.claude/skills/add-discord-v2/SKILL.md b/.claude/skills/add-discord-v2/SKILL.md index f4b8c97..9b41a8b 100644 --- a/.claude/skills/add-discord-v2/SKILL.md +++ b/.claude/skills/add-discord-v2/SKILL.md @@ -7,23 +7,47 @@ description: Add Discord bot channel integration to NanoClaw v2 via Chat SDK. Adds Discord bot support to NanoClaw v2. Discord is built in — no adapter package to install. -## Pre-flight - -Check if `src/channels/discord.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install -Discord support is bundled with NanoClaw — there is no separate package to install. +v2 trunk doesn't ship channels. This skill copies the Discord adapter in from the `channels` branch. -### Enable the channel +### Pre-flight (idempotent) -Uncomment the Discord import in `src/channels/index.ts`: +Skip to **Credentials** if all of these are already in place: + +- `src/channels/discord.ts` exists +- `src/channels/index.ts` contains `import './discord.js';` +- `@chat-adapter/discord` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + +```bash +git fetch origin channels +``` + +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/discord.ts > src/channels/discord.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './discord.js'; ``` -### Build +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/discord@4.26.0 +``` + +### 5. Build ```bash pnpm run build diff --git a/.claude/skills/add-gchat-v2/SKILL.md b/.claude/skills/add-gchat-v2/SKILL.md index 6f0ed12..342921a 100644 --- a/.claude/skills/add-gchat-v2/SKILL.md +++ b/.claude/skills/add-gchat-v2/SKILL.md @@ -7,22 +7,48 @@ description: Add Google Chat channel integration to NanoClaw v2 via Chat SDK. Adds Google Chat support to NanoClaw v2 using the Chat SDK bridge. -## Pre-flight - -Check if `src/channels/gchat.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the Google Chat adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/gchat.ts` exists +- `src/channels/index.ts` contains `import './gchat.js';` +- `@chat-adapter/gchat` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @chat-adapter/gchat +git fetch origin channels ``` -Uncomment the Google Chat import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/gchat.ts > src/channels/gchat.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './gchat.js'; ``` +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/gchat@4.26.0 +``` + +### 5. Build + ```bash pnpm run build ``` diff --git a/.claude/skills/add-github-v2/SKILL.md b/.claude/skills/add-github-v2/SKILL.md index 99da984..9971e80 100644 --- a/.claude/skills/add-github-v2/SKILL.md +++ b/.claude/skills/add-github-v2/SKILL.md @@ -7,22 +7,48 @@ description: Add GitHub channel integration to NanoClaw v2 via Chat SDK. PR and Adds GitHub support to NanoClaw v2 using the Chat SDK bridge. The agent participates in PR and issue comment threads. -## Pre-flight - -Check if `src/channels/github.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the GitHub adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/github.ts` exists +- `src/channels/index.ts` contains `import './github.js';` +- `@chat-adapter/github` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @chat-adapter/github +git fetch origin channels ``` -Uncomment the GitHub import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/github.ts > src/channels/github.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './github.js'; ``` +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/github@4.26.0 +``` + +### 5. Build + ```bash pnpm run build ``` diff --git a/.claude/skills/add-imessage-v2/SKILL.md b/.claude/skills/add-imessage-v2/SKILL.md index 348519b..36d1f65 100644 --- a/.claude/skills/add-imessage-v2/SKILL.md +++ b/.claude/skills/add-imessage-v2/SKILL.md @@ -7,22 +7,48 @@ description: Add iMessage channel integration to NanoClaw v2 via Chat SDK. Local Adds iMessage support to NanoClaw v2 using the Chat SDK bridge. Two modes: local (macOS with Full Disk Access) or remote (Photon API). -## Pre-flight - -Check if `src/channels/imessage.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the iMessage adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/imessage.ts` exists +- `src/channels/index.ts` contains `import './imessage.js';` +- `chat-adapter-imessage` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install chat-adapter-imessage +git fetch origin channels ``` -Uncomment the iMessage import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/imessage.ts > src/channels/imessage.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './imessage.js'; ``` +### 4. Install the adapter package (pinned) + +```bash +pnpm install chat-adapter-imessage@0.1.1 +``` + +### 5. Build + ```bash pnpm run build ``` diff --git a/.claude/skills/add-linear-v2/SKILL.md b/.claude/skills/add-linear-v2/SKILL.md index 6e95489..b7105f3 100644 --- a/.claude/skills/add-linear-v2/SKILL.md +++ b/.claude/skills/add-linear-v2/SKILL.md @@ -7,22 +7,48 @@ description: Add Linear channel integration to NanoClaw v2 via Chat SDK. Issue c Adds Linear support to NanoClaw v2 using the Chat SDK bridge. The agent participates in issue comment threads. -## Pre-flight - -Check if `src/channels/linear.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the Linear adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/linear.ts` exists +- `src/channels/index.ts` contains `import './linear.js';` +- `@chat-adapter/linear` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @chat-adapter/linear +git fetch origin channels ``` -Uncomment the Linear import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/linear.ts > src/channels/linear.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './linear.js'; ``` +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/linear@4.26.0 +``` + +### 5. Build + ```bash pnpm run build ``` diff --git a/.claude/skills/add-matrix-v2/SKILL.md b/.claude/skills/add-matrix-v2/SKILL.md index d2e54ba..209998a 100644 --- a/.claude/skills/add-matrix-v2/SKILL.md +++ b/.claude/skills/add-matrix-v2/SKILL.md @@ -7,22 +7,48 @@ description: Add Matrix channel integration to NanoClaw v2 via Chat SDK. Works w Adds Matrix support to NanoClaw v2 using the Chat SDK bridge. -## Pre-flight - -Check if `src/channels/matrix.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the Matrix adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/matrix.ts` exists +- `src/channels/index.ts` contains `import './matrix.js';` +- `@beeper/chat-adapter-matrix` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @beeper/chat-adapter-matrix +git fetch origin channels ``` -Uncomment the Matrix import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/matrix.ts > src/channels/matrix.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './matrix.js'; ``` +### 4. Install the adapter package (pinned) + +```bash +pnpm install @beeper/chat-adapter-matrix@0.2.0 +``` + +### 5. Build + ```bash pnpm run build ``` diff --git a/.claude/skills/add-resend-v2/SKILL.md b/.claude/skills/add-resend-v2/SKILL.md index 8e9ba14..9191257 100644 --- a/.claude/skills/add-resend-v2/SKILL.md +++ b/.claude/skills/add-resend-v2/SKILL.md @@ -7,23 +7,47 @@ description: Add Resend (email) channel integration to NanoClaw v2 via Chat SDK. Connect NanoClaw to email via Resend for async email conversations. -## Pre-flight - -Check if `src/channels/resend.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the Resend adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/resend.ts` exists +- `src/channels/index.ts` contains `import './resend.js';` +- `@resend/chat-sdk-adapter` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @resend/chat-sdk-adapter +git fetch origin channels ``` -Uncomment the Resend import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/resend.ts > src/channels/resend.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './resend.js'; ``` -Build: +### 4. Install the adapter package (pinned) + +```bash +pnpm install @resend/chat-sdk-adapter@0.1.1 +``` + +### 5. Build ```bash pnpm run build diff --git a/.claude/skills/add-slack-v2/SKILL.md b/.claude/skills/add-slack-v2/SKILL.md index b18115f..7946c87 100644 --- a/.claude/skills/add-slack-v2/SKILL.md +++ b/.claude/skills/add-slack-v2/SKILL.md @@ -7,27 +7,47 @@ description: Add Slack channel integration to NanoClaw v2 via Chat SDK. Adds Slack support to NanoClaw v2 using the Chat SDK bridge. -## Pre-flight - -Check if `src/channels/slack.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install -### Install the adapter package +v2 trunk doesn't ship channels. This skill copies the Slack adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/slack.ts` exists +- `src/channels/index.ts` contains `import './slack.js';` +- `@chat-adapter/slack` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch ```bash -pnpm install @chat-adapter/slack +git fetch origin channels ``` -### Enable the channel +### 2. Copy the adapter -Uncomment the Slack import in `src/channels/index.ts`: +```bash +git show origin/channels:src/channels/slack.ts > src/channels/slack.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './slack.js'; ``` -### Build +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/slack@4.26.0 +``` + +### 5. Build ```bash pnpm run build diff --git a/.claude/skills/add-teams-v2/SKILL.md b/.claude/skills/add-teams-v2/SKILL.md index 931bc67..c9301b3 100644 --- a/.claude/skills/add-teams-v2/SKILL.md +++ b/.claude/skills/add-teams-v2/SKILL.md @@ -7,23 +7,47 @@ description: Add Microsoft Teams channel integration to NanoClaw v2 via Chat SDK Connect NanoClaw to Microsoft Teams for interactive chat in team channels, group chats, and direct messages. -## Pre-flight - -Check if `src/channels/teams.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the Teams adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/teams.ts` exists +- `src/channels/index.ts` contains `import './teams.js';` +- `@chat-adapter/teams` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @chat-adapter/teams +git fetch origin channels ``` -Uncomment the Teams import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/teams.ts > src/channels/teams.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './teams.js'; ``` -Build: +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/teams@4.26.0 +``` + +### 5. Build ```bash pnpm run build diff --git a/.claude/skills/add-telegram-v2/SKILL.md b/.claude/skills/add-telegram-v2/SKILL.md index e4e78fe..053d7a2 100644 --- a/.claude/skills/add-telegram-v2/SKILL.md +++ b/.claude/skills/add-telegram-v2/SKILL.md @@ -7,27 +7,61 @@ description: Add Telegram channel integration to NanoClaw v2 via Chat SDK. Adds Telegram bot support to NanoClaw v2 using the Chat SDK bridge. -## Pre-flight - -Check if `src/channels/telegram.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install -### Install the adapter package +v2 trunk doesn't ship channels. This skill copies the Telegram adapter, its formatting/pairing helpers, their tests, and the `pair-telegram` setup step in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/telegram.ts`, `telegram-pairing.ts`, `telegram-markdown-sanitize.ts` (and their `.test.ts` siblings) all exist +- `src/channels/index.ts` contains `import './telegram.js';` +- `setup/pair-telegram.ts` exists and `setup/index.ts`'s `STEPS` map contains `'pair-telegram':` +- `@chat-adapter/telegram` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch ```bash -pnpm install @chat-adapter/telegram +git fetch origin channels ``` -### Enable the channel +### 2. Copy the adapter, helpers, tests, and setup step -Uncomment the Telegram import in `src/channels/index.ts`: +```bash +git show origin/channels:src/channels/telegram.ts > src/channels/telegram.ts +git show origin/channels:src/channels/telegram-pairing.ts > src/channels/telegram-pairing.ts +git show origin/channels:src/channels/telegram-pairing.test.ts > src/channels/telegram-pairing.test.ts +git show origin/channels:src/channels/telegram-markdown-sanitize.ts > src/channels/telegram-markdown-sanitize.ts +git show origin/channels:src/channels/telegram-markdown-sanitize.test.ts > src/channels/telegram-markdown-sanitize.test.ts +git show origin/channels:setup/pair-telegram.ts > setup/pair-telegram.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if already present): ```typescript import './telegram.js'; ``` -### Build +### 4. Register the setup step + +In `setup/index.ts`, add this entry to the `STEPS` map (right after the `register` line is fine; skip if already present): + +```typescript +'pair-telegram': () => import('./pair-telegram.js'), +``` + +### 5. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/telegram@4.26.0 +``` + +### 6. Build ```bash pnpm run build diff --git a/.claude/skills/add-webex-v2/SKILL.md b/.claude/skills/add-webex-v2/SKILL.md index f6e1786..a81d878 100644 --- a/.claude/skills/add-webex-v2/SKILL.md +++ b/.claude/skills/add-webex-v2/SKILL.md @@ -7,22 +7,48 @@ description: Add Webex channel integration to NanoClaw v2 via Chat SDK. Adds Cisco Webex support to NanoClaw v2 using the Chat SDK bridge. -## Pre-flight - -Check if `src/channels/webex.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the Webex adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/webex.ts` exists +- `src/channels/index.ts` contains `import './webex.js';` +- `@bitbasti/chat-adapter-webex` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @bitbasti/chat-adapter-webex +git fetch origin channels ``` -Uncomment the Webex import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/webex.ts > src/channels/webex.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './webex.js'; ``` +### 4. Install the adapter package (pinned) + +```bash +pnpm install @bitbasti/chat-adapter-webex@0.1.0 +``` + +### 5. Build + ```bash pnpm run build ``` diff --git a/.claude/skills/add-whatsapp-cloud-v2/SKILL.md b/.claude/skills/add-whatsapp-cloud-v2/SKILL.md index 2e1e376..fe778b2 100644 --- a/.claude/skills/add-whatsapp-cloud-v2/SKILL.md +++ b/.claude/skills/add-whatsapp-cloud-v2/SKILL.md @@ -7,23 +7,47 @@ description: Add WhatsApp Business Cloud API channel to NanoClaw v2 via Chat SDK Connect NanoClaw to WhatsApp via the official Meta WhatsApp Business Cloud API. -## Pre-flight - -Check if `src/channels/whatsapp-cloud.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install +v2 trunk doesn't ship channels. This skill copies the WhatsApp Cloud adapter in from the `channels` branch. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/whatsapp-cloud.ts` exists +- `src/channels/index.ts` contains `import './whatsapp-cloud.js';` +- `@chat-adapter/whatsapp` is listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch + ```bash -pnpm install @chat-adapter/whatsapp +git fetch origin channels ``` -Uncomment the WhatsApp Cloud API import in `src/channels/index.ts`: +### 2. Copy the adapter + +```bash +git show origin/channels:src/channels/whatsapp-cloud.ts > src/channels/whatsapp-cloud.ts +``` + +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if the line is already present): ```typescript import './whatsapp-cloud.js'; ``` -Build: +### 4. Install the adapter package (pinned) + +```bash +pnpm install @chat-adapter/whatsapp@4.26.0 +``` + +### 5. Build ```bash pnpm run build diff --git a/.claude/skills/add-whatsapp-v2/SKILL.md b/.claude/skills/add-whatsapp-v2/SKILL.md index c49a477..b9ee49e 100644 --- a/.claude/skills/add-whatsapp-v2/SKILL.md +++ b/.claude/skills/add-whatsapp-v2/SKILL.md @@ -7,36 +7,59 @@ description: Add WhatsApp channel to NanoClaw v2 using native Baileys adapter. D Adds WhatsApp support to NanoClaw v2 using the native Baileys adapter (no Chat SDK bridge). -## Pre-flight - -Check if `src/channels/whatsapp.ts` exists and the import is uncommented in `src/channels/index.ts`. If both are in place, skip to Credentials. - ## Install -### Install the adapter packages +v2 trunk doesn't ship channels. This skill copies the native WhatsApp (Baileys) adapter and its `whatsapp-auth` setup step in from the `channels` branch. No Chat SDK bridge. + +### Pre-flight (idempotent) + +Skip to **Credentials** if all of these are already in place: + +- `src/channels/whatsapp.ts` exists +- `src/channels/index.ts` contains `import './whatsapp.js';` +- `setup/whatsapp-auth.ts` exists and `setup/index.ts`'s `STEPS` map contains `'whatsapp-auth':` +- `@whiskeysockets/baileys`, `qrcode` are listed in `package.json` dependencies + +Otherwise continue. Every step below is safe to re-run. + +### 1. Fetch the channels branch ```bash -pnpm install @whiskeysockets/baileys@^6.7.21 pino@^9.6.0 qrcode@^1.5.4 @types/qrcode@^1.5.6 +git fetch origin channels ``` -### Enable the channel - -If `src/channels/whatsapp.ts` is missing, fetch it from upstream: +### 2. Copy the adapter and setup step ```bash -git remote -v | grep -q upstream || git remote add upstream https://github.com/qwibitai/nanoclaw.git -git fetch upstream v2 -git checkout upstream/v2 -- src/channels/whatsapp.ts +git show origin/channels:src/channels/whatsapp.ts > src/channels/whatsapp.ts +git show origin/channels:setup/whatsapp-auth.ts > setup/whatsapp-auth.ts ``` -Uncomment or add the WhatsApp import in `src/channels/index.ts`: +### 3. Append the self-registration import + +Append to `src/channels/index.ts` (skip if already present): ```typescript -// whatsapp (native, no Chat SDK) import './whatsapp.js'; ``` -### Build +### 4. Register the setup step + +In `setup/index.ts`, add this entry to the `STEPS` map (skip if already present): + +```typescript +'whatsapp-auth': () => import('./whatsapp-auth.js'), +``` + +### 5. Install the adapter packages (pinned) + +```bash +pnpm install @whiskeysockets/baileys@6.17.16 qrcode@1.5.4 @types/qrcode@1.5.6 +``` + +`pino` is already a v2 trunk dependency — no separate install needed. + +### 6. Build ```bash pnpm run build