Files
nanoclaw/setup
gavrielc ab596d31d3 feat(setup): convert discord to the Option A SKILL.md flow; delete discord.ts
Ran a multi-agent workflow over the remaining chat-SDK channels
(discord/teams/imessage/telegram), each converting its SKILL.md to the Option A
resolve pattern with an adversarial verify that the captured platform_id is
byte-identical to what the old bespoke .ts passed init-first-agent.

Outcome:
- discord: CONVERTED + verified. Resolve prompts owner_handle (Discord user id,
  validate ^\d{17,20}$), captures connected_as (/users/@me) and platform_id
  (POST /users/@me/channels → "discord:@me:" + .id — byte-identical to the old
  discord:@me:<dmChannelId>). auto.ts now calls runChannelSkill('discord');
  setup/channels/discord.ts deleted. (Minor deviation: application_id/public_key
  are prompted-with-validate rather than auto-derived from /oauth2/applications/@me
  as the old flow did — values identical, one extra paste standalone.)
- imessage: resolve added (owner_handle = phone/Apple-ID handle; platform_id =
  the raw handle, byte-identical — native adapter, no prefix). NOT yet wired: its
  credentials branch on local vs remote mode, which a directive can't express
  deterministically (needs a shell-conditional run). Bespoke imessage.ts stays.
- teams: does NOT fit — the DM platform_id (teams:<b64 conv>:<b64 url>) only
  exists after the first inbound activity; no synchronous API resolves it.
- telegram: does NOT fit — resolve is an interactive pairing handshake
  (pair-telegram.ts), not a directive.

613 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:22:00 +03:00
..