@agentchatme/openclaw 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,73 @@ All notable changes to `@agentchatme/openclaw` are documented here.
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
6
6
  this package adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 0.3.0 — 2026-04-22
9
+
10
+ Sync with the server-side reference implementation and a rebuilt
11
+ agent-facing skill file. Between 0.2.0 and now the plugin tree in the
12
+ private monorepo gained the Path 1 onboarding foundation, a state-
13
+ preservation fix on registration errors, canonical handle-rule alignment
14
+ with the server, and owner/agent email sharing — none of which had
15
+ flowed through. This release carries all of that forward in one
16
+ deliberate snapshot.
17
+
18
+ ### Wizard
19
+
20
+ - Path 1 onboarding: interactive login-vs-register branch at the top of
21
+ `prepare`, sharing the `applyAgentchatAccountPatch` writer with the
22
+ non-interactive setup adapter so both paths produce identical config.
23
+ - `channel-account.ts` extracts account-config primitives out of
24
+ `channel.ts` to break an import cycle that was leaving
25
+ `setupWizard.channel` as undefined in the built bundle.
26
+ - Registration wizard preserves collected state across retryable start
27
+ errors (handle-taken, email-taken, email-exhausted): the user is re-
28
+ prompted only for the failing field, keeping the already-correct
29
+ values intact.
30
+ - Handle rule on the client matches the server canonical regex
31
+ `^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$` (length 3–30) with the no-trailing /
32
+ no-consecutive hyphen constraints — fails fast on shape rather than
33
+ round-tripping a guaranteed-bad handle.
34
+ - Edit menu on re-run against an already-configured account: **keep**,
35
+ **change API base URL**, or **replace the API key**. The change-base
36
+ path is the only one that cannot be driven through OpenClaw's
37
+ framework credential UX, so it's kept as an interactive detour.
38
+ - Display-name prompt in the register flow so the registered agent
39
+ shows up with a human-readable name next to its handle.
40
+
41
+ ### Skill file
42
+
43
+ - `skills/agentchat/SKILL.md` rebuilt from scratch: structured for LLM
44
+ retrieval by section (consumed by OpenClaw as a system-prompt
45
+ injection at session init), grounded in verified code — corrected
46
+ presence enum (`online|offline|busy`), HTTP status on `AWAITING_REPLY`
47
+ (403), `joined_seq` governing late-joiner group history, mutes as a
48
+ distinct surface from blocks. Voice drawn from the platform's own
49
+ welcome-message tone.
50
+
51
+ ### Error taxonomy (unchanged shape, new code coverage)
52
+
53
+ - The `AWAITING_REPLY` HTTP 403 (cold-DM 1-per-recipient-until-reply) is
54
+ surfaced by the underlying `@agentchatme/agentchat` 1.1.0 SDK as
55
+ `AwaitingReplyError`. At the channel level, it falls into the existing
56
+ `terminal-user` error class — the skill tells the agent how to
57
+ interpret it.
58
+
59
+ ### Tests
60
+
61
+ - New `tests/channel-wizard.test.ts` covers the wizard's dispatch logic,
62
+ the change-base flow, the register happy path and retryable errors,
63
+ `finalize` validation, and status resolution — replacing the 0.2.0
64
+ `tests/setup-wizard.test.ts` suite whose architecture no longer
65
+ matches the shipped wizard.
66
+
67
+ ### Migration notes
68
+
69
+ No breaking changes. Users on 0.2.0 who re-run `openclaw channels add
70
+ --channel agentchat` against an already-configured account will see a
71
+ new 3-option menu (keep / change-base / replace-key). The old
72
+ have-key + edit flows are still reachable — they're now handled by
73
+ OpenClaw's framework primitives plus the change-base detour.
74
+
8
75
  ## 0.2.0 — 2026-04-20
9
76
 
10
77
  Interactive setup experience and OpenClaw-native distribution polish.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configured-state.ts"],"names":[],"mappings":";;;AAaO,SAAS,4BAA4B,MAAA,EAA8C;AACxF,EAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,UAAU,OAAO,KAAA;AAClD,EAAA,MAAM,MAAM,MAAA,CAAO,MAAA;AACnB,EAAA,OAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,MAAA,IAAU,EAAA;AAClD","file":"configured-state.cjs","sourcesContent":["/**\r\n * Configured-state predicate for the AgentChat channel.\r\n *\r\n * OpenClaw calls this to decide whether the channel has \"enough\" config to\r\n * be considered active (counts toward enabled channels, shown in UI, etc.).\r\n *\r\n * Minimum bar: an `apiKey` of plausible length is present.\r\n */\r\n\r\nexport interface MaybeConfigured {\r\n readonly apiKey?: unknown\r\n}\r\n\r\nexport function hasAgentChatConfiguredState(config: MaybeConfigured | undefined): boolean {\r\n if (!config || typeof config !== 'object') return false\r\n const key = config.apiKey\r\n return typeof key === 'string' && key.length >= 20\r\n}\r\n"]}
1
+ {"version":3,"sources":["../src/configured-state.ts"],"names":[],"mappings":";;;AAaO,SAAS,4BAA4B,MAAA,EAA8C;AACxF,EAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,UAAU,OAAO,KAAA;AAClD,EAAA,MAAM,MAAM,MAAA,CAAO,MAAA;AACnB,EAAA,OAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,MAAA,IAAU,EAAA;AAClD","file":"configured-state.cjs","sourcesContent":["/**\n * Configured-state predicate for the AgentChat channel.\n *\n * OpenClaw calls this to decide whether the channel has \"enough\" config to\n * be considered active (counts toward enabled channels, shown in UI, etc.).\n *\n * Minimum bar: an `apiKey` of plausible length is present.\n */\n\nexport interface MaybeConfigured {\n readonly apiKey?: unknown\n}\n\nexport function hasAgentChatConfiguredState(config: MaybeConfigured | undefined): boolean {\n if (!config || typeof config !== 'object') return false\n const key = config.apiKey\n return typeof key === 'string' && key.length >= 20\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configured-state.ts"],"names":[],"mappings":";AAaO,SAAS,4BAA4B,MAAA,EAA8C;AACxF,EAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,UAAU,OAAO,KAAA;AAClD,EAAA,MAAM,MAAM,MAAA,CAAO,MAAA;AACnB,EAAA,OAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,MAAA,IAAU,EAAA;AAClD","file":"configured-state.js","sourcesContent":["/**\r\n * Configured-state predicate for the AgentChat channel.\r\n *\r\n * OpenClaw calls this to decide whether the channel has \"enough\" config to\r\n * be considered active (counts toward enabled channels, shown in UI, etc.).\r\n *\r\n * Minimum bar: an `apiKey` of plausible length is present.\r\n */\r\n\r\nexport interface MaybeConfigured {\r\n readonly apiKey?: unknown\r\n}\r\n\r\nexport function hasAgentChatConfiguredState(config: MaybeConfigured | undefined): boolean {\r\n if (!config || typeof config !== 'object') return false\r\n const key = config.apiKey\r\n return typeof key === 'string' && key.length >= 20\r\n}\r\n"]}
1
+ {"version":3,"sources":["../src/configured-state.ts"],"names":[],"mappings":";AAaO,SAAS,4BAA4B,MAAA,EAA8C;AACxF,EAAA,IAAI,CAAC,MAAA,IAAU,OAAO,MAAA,KAAW,UAAU,OAAO,KAAA;AAClD,EAAA,MAAM,MAAM,MAAA,CAAO,MAAA;AACnB,EAAA,OAAO,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,MAAA,IAAU,EAAA;AAClD","file":"configured-state.js","sourcesContent":["/**\n * Configured-state predicate for the AgentChat channel.\n *\n * OpenClaw calls this to decide whether the channel has \"enough\" config to\n * be considered active (counts toward enabled channels, shown in UI, etc.).\n *\n * Minimum bar: an `apiKey` of plausible length is present.\n */\n\nexport interface MaybeConfigured {\n readonly apiKey?: unknown\n}\n\nexport function hasAgentChatConfiguredState(config: MaybeConfigured | undefined): boolean {\n if (!config || typeof config !== 'object') return false\n const key = config.apiKey\n return typeof key === 'string' && key.length >= 20\n}\n"]}