claw-zero 0.1.1 → 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/dist/config.d.ts CHANGED
@@ -1,6 +1,9 @@
1
- import type { SecurityProfileKey } from './types.js';
1
+ import type { SecurityProfileKey, ClawdbotConfig } from './types.js';
2
2
  export declare const WORKSPACE_PATH: string;
3
3
  export declare const CONFIG_FILENAME = "clawdbot.json";
4
- /** Generates clawdbot.json and writes it to the workspace directory. */
5
- export declare function generateConfig(profileKey: SecurityProfileKey, apiKey: string): Promise<void>;
4
+ /**
5
+ * Generates clawdbot.json and writes it to the workspace directory.
6
+ * Pass `overrideConfig` to use custom values instead of the profile defaults.
7
+ */
8
+ export declare function generateConfig(profileKey: SecurityProfileKey, apiKey: string, overrideConfig?: ClawdbotConfig): Promise<void>;
6
9
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD,eAAO,MAAM,cAAc,QAAmD,CAAC;AAC/E,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,wEAAwE;AACxE,wBAAsB,cAAc,CAClC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAef"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGrE,eAAO,MAAM,cAAc,QAAmD,CAAC;AAC/E,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,IAAI,CAAC,CAef"}
package/dist/config.js CHANGED
@@ -4,13 +4,16 @@ import { homedir } from 'node:os';
4
4
  import { PROFILES } from './profiles.js';
5
5
  export const WORKSPACE_PATH = join(homedir(), 'Desktop', 'OpenClaw_Workspace');
6
6
  export const CONFIG_FILENAME = 'clawdbot.json';
7
- /** Generates clawdbot.json and writes it to the workspace directory. */
8
- export async function generateConfig(profileKey, apiKey) {
7
+ /**
8
+ * Generates clawdbot.json and writes it to the workspace directory.
9
+ * Pass `overrideConfig` to use custom values instead of the profile defaults.
10
+ */
11
+ export async function generateConfig(profileKey, apiKey, overrideConfig) {
9
12
  const profile = PROFILES[profileKey];
10
13
  if (!profile)
11
14
  throw new Error(`Unknown profile: ${profileKey}`);
12
15
  const configData = {
13
- ...profile.config,
16
+ ...(overrideConfig ?? profile.config),
14
17
  api_key: apiKey,
15
18
  };
16
19
  await mkdir(WORKSPACE_PATH, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAA8B,EAC9B,MAAc;IAEd,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG;QACjB,GAAG,OAAO,CAAC,MAAM;QACjB,OAAO,EAAE,MAAM;KAChB,CAAC;IAEF,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,CACb,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EACnC,OAAO,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAA8B,EAC9B,MAAc,EACd,cAA+B;IAE/B,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;QACrC,OAAO,EAAE,MAAM;KAChB,CAAC;IAEF,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,CACb,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EACnC,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -12,4 +12,6 @@ export declare function pullContainerImage(): Promise<{
12
12
  export declare function launchContainer(apiKey: string, _profileKey: SecurityProfileKey): Promise<{
13
13
  port: number;
14
14
  }>;
15
+ /** Stops the running OpenClaw container; no-op if it isn't running. */
16
+ export declare function stopContainer(): Promise<void>;
15
17
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMrD,yEAAyE;AACzE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBpE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB3B"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrD,yEAAyE;AACzE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBpE;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB3B;AAED,uEAAuE;AACvE,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD"}
package/dist/container.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { execa } from 'execa';
2
2
  import { homedir } from 'node:os';
3
3
  import { join } from 'node:path';
4
+ const CONTAINER_NAME = 'openclaw_sandbox';
4
5
  const WORKSPACE_PATH = join(homedir(), 'Desktop', 'OpenClaw_Workspace');
5
6
  const IMAGE = 'ghcr.io/openclaw/openclaw:latest';
6
- const PORT = 3845;
7
+ const GATEWAY_PORT = 18789; // Control UI + WebSocket gateway
8
+ const EXPOSED_PORT = 3845; // Image's declared EXPOSE (kept for compatibility)
7
9
  /** Pulls the OpenClaw container image; returns the pulled image size. */
8
10
  export async function pullContainerImage() {
9
11
  try {
@@ -38,8 +40,9 @@ export async function launchContainer(apiKey, _profileKey) {
38
40
  'run',
39
41
  '--detach',
40
42
  '--rm',
41
- '--name', 'openclaw_sandbox',
42
- '--publish', `${PORT}:${PORT}`,
43
+ '--name', CONTAINER_NAME,
44
+ '--publish', `${GATEWAY_PORT}:${GATEWAY_PORT}`,
45
+ '--publish', `${EXPOSED_PORT}:${EXPOSED_PORT}`,
43
46
  '--volume', `${WORKSPACE_PATH}:/workspace`,
44
47
  '--env', `ANTHROPIC_API_KEY=${apiKey}`,
45
48
  IMAGE,
@@ -51,6 +54,15 @@ export async function launchContainer(apiKey, _profileKey) {
51
54
  }
52
55
  throw err;
53
56
  }
54
- return { port: PORT };
57
+ return { port: GATEWAY_PORT };
58
+ }
59
+ /** Stops the running OpenClaw container; no-op if it isn't running. */
60
+ export async function stopContainer() {
61
+ try {
62
+ await execa('docker', ['stop', CONTAINER_NAME], { stdio: 'pipe', timeout: 15_000 });
63
+ }
64
+ catch {
65
+ // Container not running or already stopped — ignore
66
+ }
55
67
  }
56
68
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACxE,MAAM,KAAK,GAAG,kCAAkC,CAAC;AACjD,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,oBAAoB,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACvC,OAAO;QACP,SAAS;QACT,KAAK;QACL,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnF,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,WAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,KAAK,CACT,QAAQ,EACR;YACE,KAAK;YACL,UAAU;YACV,MAAM;YACN,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;YAC9B,UAAU,EAAE,GAAG,cAAc,aAAa;YAC1C,OAAO,EAAE,qBAAqB,MAAM,EAAE;YACtC,KAAK;SACN,EACD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CACrC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA8B,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACxE,MAAM,KAAK,GAAG,kCAAkC,CAAC;AACjD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,iCAAiC;AAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAE,mDAAmD;AAE/E,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,oBAAoB,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACvC,OAAO;QACP,SAAS;QACT,KAAK;QACL,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnF,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,WAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,KAAK,CACT,QAAQ,EACR;YACE,KAAK;YACL,UAAU;YACV,MAAM;YACN,QAAQ,EAAE,cAAc;YACxB,WAAW,EAAE,GAAG,YAAY,IAAI,YAAY,EAAE;YAC9C,WAAW,EAAE,GAAG,YAAY,IAAI,YAAY,EAAE;YAC9C,UAAU,EAAE,GAAG,cAAc,aAAa;YAC1C,OAAO,EAAE,qBAAqB,MAAM,EAAE;YACtC,KAAK;SACN,EACD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CACrC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA8B,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;AACH,CAAC"}
package/dist/docker.d.ts CHANGED
@@ -6,6 +6,12 @@
6
6
  export declare function checkDocker(): Promise<boolean>;
7
7
  /** Install Docker Desktop via Homebrew Cask. Captures output — does not bleed into Listr spinner. */
8
8
  export declare function installDocker(): Promise<void>;
9
- /** Open Docker.app and poll `docker info` until daemon is ready (max 60s). */
9
+ /** Returns true if the Docker daemon is currently responding. */
10
+ export declare function isDaemonRunning(): Promise<boolean>;
11
+ /** Open Docker.app without waiting — caller is responsible for waiting via pollDaemonReady(). */
12
+ export declare function launchDockerApp(): Promise<void>;
13
+ /** Poll `docker info` until the daemon responds or the timeout elapses. */
14
+ export declare function pollDaemonReady(timeoutMs?: number): Promise<void>;
15
+ /** @deprecated Use isDaemonRunning() + launchDockerApp() + pollDaemonReady() instead. */
10
16
  export declare function startDockerDaemon(): Promise<void>;
11
17
  //# sourceMappingURL=docker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAQpD;AAED,qGAAqG;AACrG,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAQnD;AAED,8EAA8E;AAC9E,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BvD"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAQpD;AAED,qGAAqG;AACrG,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAQnD;AAED,iEAAiE;AACjE,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAOxD;AAED,iGAAiG;AACjG,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAED,2EAA2E;AAC3E,wBAAsB,eAAe,CAAC,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAevE;AAED,yFAAyF;AACzF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIvD"}
package/dist/docker.js CHANGED
@@ -27,21 +27,25 @@ export async function installDocker() {
27
27
  throw new Error(lastLine);
28
28
  }
29
29
  }
30
- /** Open Docker.app and poll `docker info` until daemon is ready (max 60s). */
31
- export async function startDockerDaemon() {
32
- // Check if daemon is already running
30
+ /** Returns true if the Docker daemon is currently responding. */
31
+ export async function isDaemonRunning() {
33
32
  try {
34
33
  await execa('docker', ['info'], { stdio: 'ignore' });
35
- return; // Already running
34
+ return true;
36
35
  }
37
36
  catch {
38
- // Not running — launch it
37
+ return false;
39
38
  }
39
+ }
40
+ /** Open Docker.app without waiting — caller is responsible for waiting via pollDaemonReady(). */
41
+ export async function launchDockerApp() {
40
42
  await execa('open', ['-a', 'Docker']);
43
+ }
44
+ /** Poll `docker info` until the daemon responds or the timeout elapses. */
45
+ export async function pollDaemonReady(timeoutMs = 30_000) {
41
46
  const POLL_INTERVAL_MS = 2000;
42
- const MAX_WAIT_MS = 60_000;
43
47
  const start = Date.now();
44
- while (Date.now() - start < MAX_WAIT_MS) {
48
+ while (Date.now() - start < timeoutMs) {
45
49
  await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
46
50
  try {
47
51
  await execa('docker', ['info'], { stdio: 'ignore' });
@@ -51,6 +55,13 @@ export async function startDockerDaemon() {
51
55
  // Still starting — keep polling
52
56
  }
53
57
  }
54
- throw new Error('open -a Docker timed out after 60scheck your internet connection');
58
+ throw new Error('Docker daemon did not respond within 30stry again once Docker is fully started');
59
+ }
60
+ /** @deprecated Use isDaemonRunning() + launchDockerApp() + pollDaemonReady() instead. */
61
+ export async function startDockerDaemon() {
62
+ if (await isDaemonRunning())
63
+ return;
64
+ await launchDockerApp();
65
+ await pollDaemonReady();
55
66
  }
56
67
  //# sourceMappingURL=docker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,UAAU,CAAC,0BAA0B,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,qCAAqC;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,kBAAkB;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,eAAe;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../src/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,UAAU,CAAC,0BAA0B,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAS,GAAG,MAAM;IACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,eAAe;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;AACvG,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,MAAM,eAAe,EAAE;QAAE,OAAO;IACpC,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC"}
package/dist/index.js CHANGED
@@ -5,11 +5,11 @@ import { Listr } from 'listr2';
5
5
  import { PROFILES } from './profiles.js';
6
6
  import { generateConfig, WORKSPACE_PATH } from './config.js';
7
7
  import { execa } from 'execa';
8
- import { checkDocker, installDocker, startDockerDaemon } from './docker.js';
8
+ import { checkDocker, installDocker, isDaemonRunning, launchDockerApp, pollDaemonReady } from './docker.js';
9
9
  import { createWorkspace } from './workspace.js';
10
- import { pullContainerImage, launchContainer } from './container.js';
10
+ import { pullContainerImage, launchContainer, stopContainer } from './container.js';
11
11
  import { checkInternetSpeed, buildDownloadManifest, formatManifestTable } from './network.js';
12
- import { initLog, log, getLogPath } from './logger.js';
12
+ import { initLog, log, logError, getLogPath } from './logger.js';
13
13
  /** Formats API key for inline confirmation: first 7 + last 4 chars. */
14
14
  function maskApiKey(key) {
15
15
  if (key.length <= 11)
@@ -30,6 +30,124 @@ function highlightJson(obj) {
30
30
  })
31
31
  .join('\n');
32
32
  }
33
+ /** Formats a config value for display in the settings table. */
34
+ function formatConfigValue(key, config) {
35
+ switch (key) {
36
+ case 'sandbox.mode': return config.sandbox.mode;
37
+ case 'workspaceAccess': return config.workspaceAccess;
38
+ case 'skill_registry_trust': return config.skill_registry_trust;
39
+ case 'max_budget': return config.max_budget === 0 ? 'unlimited' : String(config.max_budget);
40
+ case 'require_human_approval':
41
+ return config.require_human_approval.length === 0
42
+ ? '(none)'
43
+ : config.require_human_approval.join(', ');
44
+ default: return '';
45
+ }
46
+ }
47
+ /**
48
+ * Displays the active config as a summary table and optionally lets the user
49
+ * change individual settings. Returns the (possibly updated) config.
50
+ */
51
+ async function settingsReview(config, profileLabel, apiKey, profileKey, currentPort) {
52
+ const SETTINGS = [
53
+ { key: 'sandbox.mode', label: 'Sandbox mode' },
54
+ { key: 'workspaceAccess', label: 'Workspace access' },
55
+ { key: 'skill_registry_trust', label: 'Skill registry trust' },
56
+ { key: 'max_budget', label: 'Max budget (tokens)' },
57
+ { key: 'require_human_approval', label: 'Require human approval' },
58
+ ];
59
+ const colW = 28;
60
+ const table = [
61
+ pc.dim(' Setting Value'),
62
+ pc.dim(' ' + '─'.repeat(44)),
63
+ ...SETTINGS.map((s) => ` ${pc.cyan(s.label.padEnd(colW))} ${pc.white(formatConfigValue(s.key, config))}`),
64
+ ].join('\n');
65
+ console.log(`\n${pc.dim('◇')} ${pc.bold(`Active profile: ${profileLabel}`)}\n${table}\n`);
66
+ const wantChange = await p.confirm({ message: 'Would you like to change any settings?' });
67
+ if (p.isCancel(wantChange) || !wantChange)
68
+ return { config, port: currentPort };
69
+ let updated = { ...config, sandbox: { ...config.sandbox } };
70
+ const settingToChange = await p.select({
71
+ message: 'Which setting would you like to change?',
72
+ options: SETTINGS.map((s) => ({
73
+ value: s.key,
74
+ label: s.label,
75
+ hint: formatConfigValue(s.key, config),
76
+ })),
77
+ });
78
+ if (p.isCancel(settingToChange))
79
+ return { config, port: currentPort };
80
+ if (settingToChange === 'sandbox.mode') {
81
+ const val = await p.select({
82
+ message: 'Sandbox mode',
83
+ options: [
84
+ { value: 'all', label: 'all', hint: 'Full sandbox — all commands intercepted' },
85
+ { value: 'non-main', label: 'non-main', hint: 'Sandbox non-critical commands only' },
86
+ { value: 'off', label: 'off', hint: 'No sandboxing' },
87
+ ],
88
+ initialValue: updated.sandbox.mode,
89
+ });
90
+ if (!p.isCancel(val))
91
+ updated.sandbox.mode = val;
92
+ }
93
+ else if (settingToChange === 'workspaceAccess') {
94
+ const val = await p.select({
95
+ message: 'Workspace access',
96
+ options: [
97
+ { value: 'ro', label: 'ro', hint: 'Read-only' },
98
+ { value: 'scoped', label: 'scoped', hint: 'Scoped read/write' },
99
+ { value: 'rw', label: 'rw', hint: 'Full read/write' },
100
+ ],
101
+ initialValue: updated.workspaceAccess,
102
+ });
103
+ if (!p.isCancel(val))
104
+ updated.workspaceAccess = val;
105
+ }
106
+ else if (settingToChange === 'skill_registry_trust') {
107
+ const val = await p.select({
108
+ message: 'Skill registry trust',
109
+ options: [
110
+ { value: 'none', label: 'none', hint: 'No external skills allowed' },
111
+ { value: 'verified_only', label: 'verified_only', hint: 'Only verified skills' },
112
+ { value: 'all', label: 'all', hint: 'All skills allowed' },
113
+ ],
114
+ initialValue: updated.skill_registry_trust,
115
+ });
116
+ if (!p.isCancel(val))
117
+ updated.skill_registry_trust = val;
118
+ }
119
+ else if (settingToChange === 'max_budget') {
120
+ const val = await p.text({
121
+ message: 'Max budget (tokens). Enter 0 for unlimited.',
122
+ initialValue: String(updated.max_budget),
123
+ validate: (v) => {
124
+ if (!/^\d+$/.test(v))
125
+ return 'Must be a non-negative integer.';
126
+ },
127
+ });
128
+ if (!p.isCancel(val))
129
+ updated.max_budget = parseInt(val, 10);
130
+ }
131
+ else if (settingToChange === 'require_human_approval') {
132
+ const val = await p.text({
133
+ message: 'Commands requiring human approval (comma-separated). Leave empty for none.',
134
+ initialValue: updated.require_human_approval.join(', '),
135
+ });
136
+ if (!p.isCancel(val)) {
137
+ updated.require_human_approval = val
138
+ .split(',')
139
+ .map((s) => s.trim())
140
+ .filter(Boolean);
141
+ }
142
+ }
143
+ // Rewrite clawdbot.json and restart container with updated config
144
+ console.log(pc.dim('\n Applying changes...'));
145
+ await generateConfig(profileKey, apiKey, updated);
146
+ await stopContainer();
147
+ const { port } = await launchContainer(apiKey, profileKey);
148
+ console.log(pc.green(' ✔ Settings applied and container restarted.\n'));
149
+ return { config: updated, port };
150
+ }
33
151
  async function main() {
34
152
  // ── 3.2 Welcome intro ───────────────────────────────────────────────────────
35
153
  console.clear();
@@ -75,6 +193,34 @@ async function main() {
75
193
  console.log();
76
194
  // ── 8.5 Pre-flight gate ──────────────────────────────────────────────────────
77
195
  const dockerInstalled = await checkDocker();
196
+ // ── 9.1 Docker daemon wait with user guidance ────────────────────────────────
197
+ if (dockerInstalled && !(await isDaemonRunning())) {
198
+ await launchDockerApp();
199
+ p.note([
200
+ 'Docker Desktop is launching.',
201
+ '',
202
+ ' 1. Complete sign-in or registration in the Docker window.',
203
+ ' 2. Accept the license agreement if prompted.',
204
+ ' 3. Wait for the Docker menu-bar icon to show "Engine running".',
205
+ '',
206
+ 'Press Enter below once Docker is fully started.',
207
+ ].join('\n'), 'Docker setup required');
208
+ const ready = await p.confirm({ message: 'Is Docker running and ready?' });
209
+ if (p.isCancel(ready) || !ready) {
210
+ p.cancel('Setup cancelled — restart once Docker is running.');
211
+ process.exit(0);
212
+ }
213
+ try {
214
+ await pollDaemonReady(30_000);
215
+ }
216
+ catch (err) {
217
+ logError('Docker daemon poll timed out', err);
218
+ const lp = getLogPath();
219
+ const logHint = lp ? `\n Log: ${lp}` : '';
220
+ p.cancel(`Docker is not responding. Start Docker Desktop and try again.${logHint}`);
221
+ process.exit(1);
222
+ }
223
+ }
78
224
  let speedMbps = 0;
79
225
  try {
80
226
  process.stdout.write(pc.dim(' Measuring download speed...'));
@@ -82,7 +228,8 @@ async function main() {
82
228
  speedMbps = speedResult.mbps;
83
229
  process.stdout.write(`\r${' '.repeat(40)}\r`); // clear the line
84
230
  }
85
- catch {
231
+ catch (err) {
232
+ logError('Internet speed check failed (non-fatal)', err);
86
233
  process.stdout.write(`\r${' '.repeat(40)}\r`);
87
234
  // Non-fatal — proceed without estimate
88
235
  }
@@ -120,7 +267,6 @@ async function main() {
120
267
  await installDocker();
121
268
  log('INFO', 'Docker installed via Homebrew');
122
269
  }
123
- await startDockerDaemon();
124
270
  try {
125
271
  const { stdout } = await execa('docker', ['--version']);
126
272
  dockerVersion = stdout.trim();
@@ -177,31 +323,39 @@ async function main() {
177
323
  await tasks.run();
178
324
  }
179
325
  catch (err) {
180
- const message = err.message;
181
- log('ERROR', `Setup failed: ${message}`);
326
+ logError('Setup failed during install tasks', err);
327
+ const firstLine = (err instanceof Error ? err.message : String(err)).split('\n')[0];
182
328
  const lp = getLogPath();
183
329
  const logHint = lp ? `\n Log: ${lp}` : '';
184
- p.cancel(`Setup failed: ${message}${logHint}`);
330
+ p.cancel(`Setup failed: ${firstLine}${logHint}`);
185
331
  process.exit(1);
186
332
  }
187
- // ── 3.7 Outro ───────────────────────────────────────────────────────────────
333
+ // ── 9.4 Settings review ──────────────────────────────────────────────────────
334
+ const reviewResult = await settingsReview(selectedProfile.config, selectedProfile.label, apiKey, profileKey, containerPort);
335
+ containerPort = reviewResult.port;
336
+ // ── 9.5 Outro ────────────────────────────────────────────────────────────────
188
337
  const box = [
189
- ` ${pc.dim('│')} ☕ Pouring some coffee for your new AI intern...`,
338
+ ` ${pc.dim('│')} ☕ Your AI sandbox is ready.`,
190
339
  ` ${pc.dim('│')}`,
191
340
  ` ${pc.dim('│')} Workspace → ${pc.cyan(WORKSPACE_PATH)}`,
192
- ` ${pc.dim('│')} Access → ${pc.cyan(`localhost:${containerPort}`)}`,
193
341
  ` ${pc.dim('│')} Profile → ${pc.yellow(selectedProfile.label)}`,
342
+ ` ${pc.dim('│')} Control UI → ${pc.cyan(`http://127.0.0.1:${containerPort}/`)}`,
343
+ ` ${pc.dim('│')}`,
344
+ ` ${pc.dim('│')} ${pc.bold('Next steps')}`,
345
+ ` ${pc.dim('│')} 1. Open ${pc.cyan(`http://127.0.0.1:${containerPort}/`)} in your browser`,
346
+ ` ${pc.dim('│')} 2. Paste your ${pc.yellow('gateway token')} into Settings to authenticate`,
347
+ ` ${pc.dim('│')} (run ${pc.dim('docker logs openclaw_sandbox')} to find it)`,
348
+ ` ${pc.dim('│')} 3. Drop files into the workspace folder to share with the agent`,
194
349
  ` ${pc.dim('│')}`,
195
- ` ${pc.dim('│')} Drop files into the workspace folder to begin.`,
350
+ ` ${pc.dim('│')} Health check: ${pc.dim(`http://127.0.0.1:${containerPort}/readyz`)}`,
196
351
  ].join('\n');
197
352
  p.outro(`${pc.green('✔')} Sandbox successfully booted!\n\n${box}`);
198
353
  }
199
354
  main().catch((err) => {
200
- const message = err.message;
201
- log('ERROR', `Unexpected error: ${message}`);
355
+ logError('Unexpected top-level error', err);
202
356
  const lp = getLogPath();
203
357
  const logHint = lp ? `\n Log: ${lp}` : '';
204
- p.cancel(`Unexpected error: ${message}${logHint}`);
358
+ p.cancel(`An unexpected error occurred.${logHint}`);
205
359
  process.exit(1);
206
360
  });
207
361
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,uEAAuE;AACvE,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;SAChC,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,OAAO,IAAI;aACR,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;aAC9D,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;aACjE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACnD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;aACvB,OAAO,CAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CACxB,CAAC;IACN,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,+EAA+E;IAC/E,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAEtE,+EAA+E;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,wCAAwC;QACjD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,OAAO,yCAAyC,CAAC;QAC/D,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CACT,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAgB,CAAC,CAAC,EAAE,CACpF,CAAC;IAEF,8EAA8E;IAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;QAChC,OAAO,EAAE,8BAA8B;QACvC,YAAY,EAAE,WAAW;QACzB,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,WAAW,EAAG,KAAK,EAAE,WAAW,EAAW,IAAI,EAAE,0BAA0B,EAAE;YACtF,EAAE,KAAK,EAAE,WAAW,EAAG,KAAK,EAAE,kBAAkB,EAAI,IAAI,EAAE,6BAA6B,EAAE;YACzF,EAAE,KAAK,EAAE,QAAQ,EAAM,KAAK,EAAE,cAAc,EAAQ,IAAI,EAAE,gCAAgC,EAAE;YAC5F,EAAE,KAAK,EAAE,MAAM,EAAQ,KAAK,EAAE,WAAW,EAAW,IAAI,EAAE,0BAA0B,EAAE;SACvF;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAoB,CAAC,CAAC;IAEvD,sBAAsB;IACtB,OAAO,CAAC,GAAG,CACT,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CACjE,CAAC;IAEF,+EAA+E;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,gFAAgF;IAChF,MAAM,eAAe,GAAG,MAAM,WAAW,EAAE,CAAC;IAE5C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC/C,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9C,uCAAuC;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAExD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,MAAM,CAAC,kCAAkC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CACvG,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;IAC9B,GAAG,CAAC,MAAM,EAAE,qBAAqB,UAAoB,EAAE,CAAC,CAAC;IAEzD,+EAA+E;IAC/E,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB;QACE;YACE,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;gBACtB,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;gBAC1C,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,IAAI,CAAC,KAAK,GAAG,mCAAmC,CAAC;oBACjD,GAAG,CAAC,MAAM,EAAE,8CAA8C,CAAC,CAAC;oBAC5D,MAAM,aAAa,EAAE,CAAC;oBACtB,GAAG,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,iBAAiB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;oBACxD,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;gBAC7C,CAAC;gBACD,GAAG,CAAC,MAAM,EAAE,gBAAgB,aAAa,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,aAAa,aAAa,CAAC,CAAC;YACvD,CAAC;SACF;QACD;YACE,KAAK,EAAE,iCAAiC;YACxC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;gBACtB,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;gBAC9C,MAAM,eAAe,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,EAAE,6BAA6B,cAAc,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,wBAAwB,cAAc,EAAE,CAAC,CAAC;YAChE,CAAC;SACF;QACD;YACE,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;gBACtB,GAAG,CAAC,MAAM,EAAE,mCAAmC,CAAC,CAAC;gBACjD,MAAM,cAAc,CAAC,UAAgC,EAAE,MAAgB,CAAC,CAAC;gBACzE,GAAG,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACjD,CAAC;SACF;QACD;YACE,KAAK,EAAE,qCAAqC;YAC5C,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;gBACtB,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAC1C,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,MAAM,EAAE,8BAA8B,SAAS,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,SAAS,GAAG,CAAC,CAAC;YACvD,CAAC;SACF;QACD;YACE,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;gBACtB,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAgB,EAAE,UAAgC,CAAC,CAAC;gBACzF,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC5B,GAAG,CAAC,MAAM,EAAE,uCAAuC,aAAa,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;YACnE,CAAC;SACF;KACF,EACD;QACE,eAAe,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;KAC3C,CACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;QACvC,GAAG,CAAC,OAAO,EAAE,iBAAiB,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,iBAAiB,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,+EAA+E;IAC/E,MAAM,GAAG,GAAG;QACV,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,oDAAoD;QACpE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;QAC5D,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,aAAa,aAAa,EAAE,CAAC,EAAE;QAC1E,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;QACrE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,kDAAkD;KACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;IACvC,GAAG,CAAC,OAAO,EAAE,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC,CAAC,MAAM,CAAC,qBAAqB,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -2,6 +2,8 @@
2
2
  export declare function initLog(): string;
3
3
  /** Appends a timestamped line to the session log. No-op if initLog() hasn't been called. */
4
4
  export declare function log(level: 'INFO' | 'WARN' | 'ERROR', message: string): void;
5
+ /** Logs the full error stack to the session log; does NOT surface details to the user. */
6
+ export declare function logError(context: string, err: unknown): void;
5
7
  /** Returns the current log file path, or null if not initialised. */
6
8
  export declare function getLogPath(): string | null;
7
9
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAQA,2FAA2F;AAC3F,wBAAgB,OAAO,IAAI,MAAM,CAYhC;AAED,4FAA4F;AAC5F,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3E;AAED,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAQA,2FAA2F;AAC3F,wBAAgB,OAAO,IAAI,MAAM,CAYhC;AAED,4FAA4F;AAC5F,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3E;AAED,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAG5D;AAED,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C"}
package/dist/logger.js CHANGED
@@ -22,6 +22,11 @@ export function log(level, message) {
22
22
  const time = new Date().toTimeString().slice(0, 8); // HH:MM:SS
23
23
  appendFileSync(logPath, `[${time}] [${level}] ${message}\n`);
24
24
  }
25
+ /** Logs the full error stack to the session log; does NOT surface details to the user. */
26
+ export function logError(context, err) {
27
+ const stack = err instanceof Error ? (err.stack ?? err.message) : String(err);
28
+ log('ERROR', `${context}\n${stack}`);
29
+ }
25
30
  /** Returns the current log file path, or null if not initialised. */
26
31
  export function getLogPath() {
27
32
  return logPath;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAExE,IAAI,OAAO,GAAkB,IAAI,CAAC;AAElC,2FAA2F;AAC3F,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;IAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;IAC5E,MAAM,QAAQ,GAAG,aAAa,QAAQ,IAAI,QAAQ,MAAM,CAAC;IAEzD,oDAAoD;IACpD,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACzC,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,GAAG,CAAC,KAAgC,EAAE,OAAe;IACnE,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW;IAC/D,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAExE,IAAI,OAAO,GAAkB,IAAI,CAAC;AAElC,2FAA2F;AAC3F,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;IAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;IAC5E,MAAM,QAAQ,GAAG,aAAa,QAAQ,IAAI,QAAQ,MAAM,CAAC;IAEzD,oDAAoD;IACpD,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACzC,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,GAAG,CAAC,KAAgC,EAAE,OAAe;IACnE,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW;IAC/D,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,GAAY;IACpD,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9E,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claw-zero",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "One-Click CLI to securely install and sandbox the OpenClaw AI agent",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",