@openclawcity/openclawcity 1.0.13 → 1.0.15

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.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Expose account credentials as environment variables for shell commands
3
+ * (SKILL.md templates, tool calls, etc.).
4
+ *
5
+ * Multi-account safety: each account gets scoped vars
6
+ * (OPENBOTCITY_JWT__<accountId>, OPENBOTCITY_BOT_ID__<accountId>).
7
+ * For backward compatibility, unscoped vars are also set when there is
8
+ * exactly one account. When multiple accounts exist, unscoped vars are
9
+ * deleted to prevent silent identity confusion.
10
+ */
11
+ export declare function exposeAccountEnv(apiKey: string, botId: string, accountId: string, accountCount: number): void;
12
+ /**
13
+ * Remove environment variables for an account that is shutting down.
14
+ * Prevents stale credentials from lingering in the process environment.
15
+ */
16
+ export declare function clearAccountEnv(accountId: string): void;
@@ -0,0 +1,19 @@
1
+ function exposeAccountEnv(apiKey, botId, accountId, accountCount) {
2
+ process.env[`OPENBOTCITY_JWT__${accountId}`] = apiKey;
3
+ process.env[`OPENBOTCITY_BOT_ID__${accountId}`] = botId;
4
+ if (accountCount === 1) {
5
+ process.env.OPENBOTCITY_JWT = apiKey;
6
+ process.env.OPENBOTCITY_BOT_ID = botId;
7
+ } else {
8
+ delete process.env.OPENBOTCITY_JWT;
9
+ delete process.env.OPENBOTCITY_BOT_ID;
10
+ }
11
+ }
12
+ function clearAccountEnv(accountId) {
13
+ delete process.env[`OPENBOTCITY_JWT__${accountId}`];
14
+ delete process.env[`OPENBOTCITY_BOT_ID__${accountId}`];
15
+ }
16
+ export {
17
+ clearAccountEnv,
18
+ exposeAccountEnv
19
+ };
package/dist/index.js CHANGED
@@ -111,9 +111,9 @@ var require_buffer_util = __commonJS({
111
111
  toBuffer,
112
112
  unmask: _unmask
113
113
  };
114
- if (!process.env.WS_NO_BUFFER_UTIL) {
114
+ if (false) {
115
115
  try {
116
- const bufferUtil = __require("bufferutil");
116
+ const bufferUtil = null;
117
117
  module.exports.mask = function(source, mask, output, offset, length) {
118
118
  if (length < 48) _mask(source, mask, output, offset, length);
119
119
  else bufferUtil.mask(source, mask, output, offset, length);
@@ -750,9 +750,9 @@ var require_validation = __commonJS({
750
750
  module.exports.isValidUTF8 = function(buf) {
751
751
  return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);
752
752
  };
753
- } else if (!process.env.WS_NO_UTF_8_VALIDATE) {
753
+ } else if (false) {
754
754
  try {
755
- const isValidUTF8 = __require("utf-8-validate");
755
+ const isValidUTF8 = null;
756
756
  module.exports.isValidUTF8 = function(buf) {
757
757
  return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);
758
758
  };
@@ -4071,6 +4071,7 @@ var OpenClawCityAdapter = class {
4071
4071
  };
4072
4072
 
4073
4073
  // .tsc-out/index.js
4074
+ import { exposeAccountEnv, clearAccountEnv } from "./env-bridge.js";
4074
4075
  var CHANNEL_ID = "openclawcity";
4075
4076
  var DEFAULT_API_BASE = "https://api.openbotcity.com";
4076
4077
  var HEARTBEAT_CACHE_MS = 5 * 60 * 1e3;
@@ -4180,8 +4181,8 @@ var occPlugin = {
4180
4181
  const rt = getRuntime();
4181
4182
  const { cfg, accountId, account, abortSignal, log } = ctx;
4182
4183
  log?.info?.(`[OCC] startAccount called for ${accountId}, abortSignal.aborted=${abortSignal.aborted}`);
4183
- process.env.OPENBOTCITY_JWT = account.apiKey;
4184
- process.env.OPENBOTCITY_BOT_ID = account.botId;
4184
+ const accountCount = occPlugin.config.listAccountIds(cfg).length || 1;
4185
+ exposeAccountEnv(account.apiKey, account.botId, accountId, accountCount);
4185
4186
  ctx.setStatus({ accountId, running: true, connected: false, lastStartAt: Date.now() });
4186
4187
  log?.info?.(`[OCC] setStatus: running=true, connected=false`);
4187
4188
  const adapter = new OpenClawCityAdapter({
@@ -4371,6 +4372,7 @@ ${envelope.content.text}`;
4371
4372
  log?.info?.(`[OCC] Abort signal received \u2014 shutting down account ${accountId}`);
4372
4373
  adapter.stop();
4373
4374
  adapters.delete(accountId);
4375
+ clearAccountEnv(accountId);
4374
4376
  ctx.setStatus({
4375
4377
  accountId,
4376
4378
  running: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclawcity/openclawcity",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "OpenClawCity channel plugin for OpenClaw — live city events for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",