openclaw-zulip 0.1.0 → 0.1.2

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/README.md CHANGED
@@ -126,4 +126,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for the full development workflow.
126
126
 
127
127
  ## License
128
128
 
129
- TBD
129
+ [MIT](LICENSE)
package/dist/config.d.ts CHANGED
@@ -1,5 +1,13 @@
1
1
  import type { ChannelPlugin } from "openclaw/plugin-sdk/core";
2
2
  import type { ZulipResolvedAccount, CoreConfig } from "./types.js";
3
+ /**
4
+ * List all Zulip account IDs including the implicit default when root-level
5
+ * credentials (email / apiKey) are present. Without this, the SDK helper
6
+ * only falls back to "default" when the accounts map is *empty*, silently
7
+ * dropping the root-level account once named sub-accounts exist.
8
+ * See: https://github.com/whizzlelabs/openclaw-zulip/issues/26
9
+ */
10
+ export declare function listZulipAccountIds(cfg: CoreConfig): string[];
3
11
  export declare function resolveZulipAccount(cfg: CoreConfig, accountId?: string | null): ZulipResolvedAccount;
4
12
  export declare const zulipConfigAdapter: NonNullable<ChannelPlugin<ZulipResolvedAccount>["config"]>;
5
13
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAU9D,OAAO,KAAK,EAAE,oBAAoB,EAAsB,UAAU,EAAE,MAAM,YAAY,CAAC;AAoBvF,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,oBAAoB,CA4BtB;AAMD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAStF,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAY9D,OAAO,KAAK,EAAE,oBAAoB,EAAsB,UAAU,EAAE,MAAM,YAAY,CAAC;AAgBvF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CAU7D;AAMD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,UAAU,EACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,oBAAoB,CA4BtB;AAMD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAStF,CAAC"}
package/dist/config.js CHANGED
@@ -1,14 +1,30 @@
1
1
  import { createScopedChannelConfigAdapter, mapAllowFromEntries, } from "openclaw/plugin-sdk/channel-config-helpers";
2
- import { createAccountListHelpers, normalizeAccountId, resolveMergedAccountConfig, } from "openclaw/plugin-sdk/account-resolution";
2
+ import { createAccountListHelpers, listCombinedAccountIds, DEFAULT_ACCOUNT_ID, normalizeAccountId, resolveMergedAccountConfig, } from "openclaw/plugin-sdk/account-resolution";
3
3
  import { getZulipSection } from "./types.js";
4
4
  // ---------------------------------------------------------------------------
5
5
  // Constants
6
6
  // ---------------------------------------------------------------------------
7
7
  const SECTION_KEY = "zulip";
8
8
  // ---------------------------------------------------------------------------
9
- // Account list / default-id helpers (shared SDK utility)
9
+ // Account list / default-id helpers
10
10
  // ---------------------------------------------------------------------------
11
- const { listAccountIds: listZulipAccountIds, resolveDefaultAccountId } = createAccountListHelpers(SECTION_KEY);
11
+ const { listConfiguredAccountIds, resolveDefaultAccountId } = createAccountListHelpers(SECTION_KEY);
12
+ /**
13
+ * List all Zulip account IDs including the implicit default when root-level
14
+ * credentials (email / apiKey) are present. Without this, the SDK helper
15
+ * only falls back to "default" when the accounts map is *empty*, silently
16
+ * dropping the root-level account once named sub-accounts exist.
17
+ * See: https://github.com/whizzlelabs/openclaw-zulip/issues/26
18
+ */
19
+ export function listZulipAccountIds(cfg) {
20
+ const section = getZulipSection(cfg);
21
+ const hasBaseCredentials = (typeof section?.email === "string" && section.email.trim() !== "") ||
22
+ (typeof section?.apiKey === "string" && section.apiKey.trim() !== "");
23
+ return listCombinedAccountIds({
24
+ configuredAccountIds: listConfiguredAccountIds(cfg),
25
+ implicitAccountId: hasBaseCredentials ? DEFAULT_ACCOUNT_ID : undefined,
26
+ });
27
+ }
12
28
  // ---------------------------------------------------------------------------
13
29
  // Account resolution
14
30
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,GACpE,wBAAwB,CAAC,WAAW,CAAC,CAAC;AAExC,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,mBAAmB,CACjC,GAAe,EACf,SAAyB;IAEzB,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,0BAA0B,CAAqB;QAC5D,aAAa,EAAE,OAAyC;QACxD,QAAQ,EAAE,OAAO,EAAE,QAAmE;QACtF,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACzC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE5C,OAAO;QACL,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;QAC1B,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;QACjC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,IAAI,MAAM,CAAC;QAC5C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAC7B,gCAAgC,CAAyD;IACvF,UAAU,EAAE,WAAW;IACvB,cAAc,EAAE,mBAAmB;IACnC,cAAc,EAAE,mBAAmB;IACnC,gBAAgB,EAAE,uBAAuB;IACzC,eAAe,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;IAC5E,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;IACpC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC;CAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-zulip",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "OpenClaw channel plugin for Zulip — clean-room implementation with ACP topic bindings",
5
5
  "license": "MIT",
6
6
  "author": "whizzlefred",
@@ -39,7 +39,9 @@
39
39
  "zulip"
40
40
  ],
41
41
  "openclaw": {
42
- "extensions": ["./dist/index.js"]
42
+ "extensions": [
43
+ "./dist/index.js"
44
+ ]
43
45
  },
44
46
  "devDependencies": {
45
47
  "@typescript-eslint/eslint-plugin": "^8.58.0",
@@ -49,5 +51,8 @@
49
51
  "openclaw": "^2026.3.28",
50
52
  "typescript": "^5.7.0",
51
53
  "vitest": "^4.1.2"
54
+ },
55
+ "dependencies": {
56
+ "@sinclair/typebox": "^0.34.49"
52
57
  }
53
58
  }