@overlordai/worker 1.0.117 → 1.0.118

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.
@@ -4,14 +4,19 @@ import type { AuthErrorPattern } from './base.executor.js';
4
4
  /**
5
5
  * Executor for OpenAI Codex CLI.
6
6
  *
7
- * Provides basic integration with the codex CLI tool.
8
- * Uses --full-auto flag for fully automated mode.
7
+ * Permission strategy (aligned with Claude/Cursor):
8
+ * - Default: --dangerously-bypass-approvals-and-sandbox (full autonomy, matches
9
+ * Claude's --dangerously-skip-permissions and Cursor's --yolo)
10
+ * - If allowedTools is set to a specific value: --full-auto (sandboxed mode)
11
+ *
12
+ * Prompt is NOT passed as a CLI argument; it is written to PTY stdin after
13
+ * the agent starts, same as Claude and Cursor.
9
14
  */
10
15
  export declare class CodexExecutor extends AgentExecutor {
11
16
  readonly agentType: "codex";
12
17
  protected readonly authErrorPatterns: AuthErrorPattern[];
13
18
  getStartCommand(): string;
14
- buildArgs(_config: ConfigSnapshot, _workspacePath: string): string[];
19
+ buildArgs(config: ConfigSnapshot, _workspacePath: string): string[];
15
20
  prepareEnvironment(worktreePath: string, realHome: string): void;
16
21
  buildEnvVars(_realHome: string): Record<string, string>;
17
22
  detectPrompt(cleanOutput: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"codex.executor.d.ts","sourceRoot":"","sources":["../../src/executor/codex.executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,SAAS,UAAmB;IAErC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAItD;IAEF,eAAe,IAAI,MAAM;IAIzB,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;IAIpE,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAchE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAI3C"}
1
+ {"version":3,"file":"codex.executor.d.ts","sourceRoot":"","sources":["../../src/executor/codex.executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,SAAS,UAAmB;IAErC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAItD;IAEF,eAAe,IAAI,MAAM;IAIzB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;IAanE,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAchE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAI3C"}
@@ -46,8 +46,13 @@ const log = (0, pino_1.default)({ name: 'codex-executor' });
46
46
  /**
47
47
  * Executor for OpenAI Codex CLI.
48
48
  *
49
- * Provides basic integration with the codex CLI tool.
50
- * Uses --full-auto flag for fully automated mode.
49
+ * Permission strategy (aligned with Claude/Cursor):
50
+ * - Default: --dangerously-bypass-approvals-and-sandbox (full autonomy, matches
51
+ * Claude's --dangerously-skip-permissions and Cursor's --yolo)
52
+ * - If allowedTools is set to a specific value: --full-auto (sandboxed mode)
53
+ *
54
+ * Prompt is NOT passed as a CLI argument; it is written to PTY stdin after
55
+ * the agent starts, same as Claude and Cursor.
51
56
  */
52
57
  class CodexExecutor extends base_executor_js_1.AgentExecutor {
53
58
  agentType = protocol_1.AgentType.CODEX;
@@ -59,8 +64,16 @@ class CodexExecutor extends base_executor_js_1.AgentExecutor {
59
64
  getStartCommand() {
60
65
  return 'codex';
61
66
  }
62
- buildArgs(_config, _workspacePath) {
63
- return ['--full-auto'];
67
+ buildArgs(config, _workspacePath) {
68
+ const args = [];
69
+ // Permission strategy: default to full bypass (aligned with Claude/Cursor)
70
+ if (config.allowedTools && config.allowedTools !== 'DANGEROUSLY_SKIP') {
71
+ args.push('--full-auto');
72
+ }
73
+ else {
74
+ args.push('--dangerously-bypass-approvals-and-sandbox');
75
+ }
76
+ return args;
64
77
  }
65
78
  prepareEnvironment(worktreePath, realHome) {
66
79
  // Codex stores config in ~/.codex — symlink entire directory if it exists
@@ -1 +1 @@
1
- {"version":3,"file":"codex.executor.js","sourceRoot":"","sources":["../../src/executor/codex.executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAClC,mDAAiD;AAEjD,yDAAmD;AAEnD,gDAAwB;AAExB,MAAM,GAAG,GAAG,IAAA,cAAI,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAa,aAAc,SAAQ,gCAAa;IACrC,SAAS,GAAG,oBAAS,CAAC,KAAK,CAAC;IAElB,iBAAiB,GAAuB;QACzD,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,cAAc,EAAE;QAClG,EAAE,OAAO,EAAE,wCAAwC,EAAE,WAAW,EAAE,YAAY,EAAE;QAChF,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,gBAAgB,EAAE;KACxE,CAAC;IAEF,eAAe;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,OAAuB,EAAE,cAAsB;QACvD,OAAO,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,YAAoB,EAAE,QAAgB;QACvD,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,iCAAiC;YAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9C,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,4CAA4C,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,mDAAmD;QACnD,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAvCD,sCAuCC"}
1
+ {"version":3,"file":"codex.executor.js","sourceRoot":"","sources":["../../src/executor/codex.executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAClC,mDAAiD;AAEjD,yDAAmD;AAEnD,gDAAwB;AAExB,MAAM,GAAG,GAAG,IAAA,cAAI,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAa,aAAc,SAAQ,gCAAa;IACrC,SAAS,GAAG,oBAAS,CAAC,KAAK,CAAC;IAElB,iBAAiB,GAAuB;QACzD,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,cAAc,EAAE;QAClG,EAAE,OAAO,EAAE,wCAAwC,EAAE,WAAW,EAAE,YAAY,EAAE;QAChF,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,gBAAgB,EAAE;KACxE,CAAC;IAEF,eAAe;QACb,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,MAAsB,EAAE,cAAsB;QACtD,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,2EAA2E;QAC3E,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,kBAAkB,EAAE,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,YAAoB,EAAE,QAAgB;QACvD,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,iCAAiC;YAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9C,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,4CAA4C,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,mDAAmD;QACnD,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAhDD,sCAgDC"}
@@ -4,13 +4,19 @@ import type { AuthErrorPattern } from './base.executor.js';
4
4
  /**
5
5
  * Executor for Cursor Agent CLI.
6
6
  *
7
- * Uses --yolo flag for fully automated mode.
7
+ * The CLI binary is called `agent` (installed at ~/.local/bin/agent),
8
+ * not `cursor`. Do not confuse with the Cursor IDE itself.
9
+ *
10
+ * Permission strategy (aligned with Claude/Codex):
11
+ * - --yolo: skip all confirmation prompts (alias for --force)
12
+ * - --trust: auto-trust workspace without prompting
13
+ * - --approve-mcps: auto-approve MCP servers to avoid blocking
8
14
  */
9
15
  export declare class CursorExecutor extends AgentExecutor {
10
16
  readonly agentType: "cursor";
11
17
  protected readonly authErrorPatterns: AuthErrorPattern[];
12
18
  getStartCommand(): string;
13
- buildArgs(_config: ConfigSnapshot, _workspacePath: string): string[];
19
+ buildArgs(config: ConfigSnapshot, _workspacePath: string): string[];
14
20
  prepareEnvironment(_worktreePath: string, _realHome: string): void;
15
21
  buildEnvVars(_realHome: string): Record<string, string>;
16
22
  detectPrompt(cleanOutput: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.executor.d.ts","sourceRoot":"","sources":["../../src/executor/cursor.executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,QAAQ,CAAC,SAAS,WAAoB;IAEtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAItD;IAEF,eAAe,IAAI,MAAM;IAIzB,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;IAIpE,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAI3C"}
1
+ {"version":3,"file":"cursor.executor.d.ts","sourceRoot":"","sources":["../../src/executor/cursor.executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAC/C,QAAQ,CAAC,SAAS,WAAoB;IAEtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAItD;IAEF,eAAe,IAAI,MAAM;IAKzB,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;IAcnE,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAI3C"}
@@ -6,7 +6,13 @@ const base_executor_js_1 = require("./base.executor.js");
6
6
  /**
7
7
  * Executor for Cursor Agent CLI.
8
8
  *
9
- * Uses --yolo flag for fully automated mode.
9
+ * The CLI binary is called `agent` (installed at ~/.local/bin/agent),
10
+ * not `cursor`. Do not confuse with the Cursor IDE itself.
11
+ *
12
+ * Permission strategy (aligned with Claude/Codex):
13
+ * - --yolo: skip all confirmation prompts (alias for --force)
14
+ * - --trust: auto-trust workspace without prompting
15
+ * - --approve-mcps: auto-approve MCP servers to avoid blocking
10
16
  */
11
17
  class CursorExecutor extends base_executor_js_1.AgentExecutor {
12
18
  agentType = protocol_1.AgentType.CURSOR;
@@ -16,10 +22,19 @@ class CursorExecutor extends base_executor_js_1.AgentExecutor {
16
22
  { pattern: /command not found|ENOENT/i, failureType: 'binary_missing' },
17
23
  ];
18
24
  getStartCommand() {
19
- return 'cursor';
25
+ // The Cursor Agent CLI binary is `agent`, not `cursor`
26
+ return 'agent';
20
27
  }
21
- buildArgs(_config, _workspacePath) {
22
- return ['agent', '--yolo'];
28
+ buildArgs(config, _workspacePath) {
29
+ const args = [
30
+ '--yolo', // skip all confirmation prompts
31
+ '--trust', // auto-trust workspace
32
+ '--approve-mcps', // auto-approve MCP servers
33
+ ];
34
+ if (config.allowedTools && config.allowedTools !== 'DANGEROUSLY_SKIP') {
35
+ // Cursor doesn't have an allowedTools equivalent, but --yolo covers it
36
+ }
37
+ return args;
23
38
  }
24
39
  prepareEnvironment(_worktreePath, _realHome) {
25
40
  // Cursor uses XDG .config/ which is already symlinked by workspace-manager
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.executor.js","sourceRoot":"","sources":["../../src/executor/cursor.executor.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAEjD,yDAAmD;AAGnD;;;;GAIG;AACH,MAAa,cAAe,SAAQ,gCAAa;IACtC,SAAS,GAAG,oBAAS,CAAC,MAAM,CAAC;IAEnB,iBAAiB,GAAuB;QACzD,EAAE,OAAO,EAAE,sCAAsC,EAAE,WAAW,EAAE,cAAc,EAAE;QAChF,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,YAAY,EAAE;QAC9D,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,gBAAgB,EAAE;KACxE,CAAC;IAEF,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,OAAuB,EAAE,cAAsB;QACvD,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,aAAqB,EAAE,SAAiB;QACzD,2EAA2E;IAC7E,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,iDAAiD;QACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF;AA7BD,wCA6BC"}
1
+ {"version":3,"file":"cursor.executor.js","sourceRoot":"","sources":["../../src/executor/cursor.executor.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAEjD,yDAAmD;AAGnD;;;;;;;;;;GAUG;AACH,MAAa,cAAe,SAAQ,gCAAa;IACtC,SAAS,GAAG,oBAAS,CAAC,MAAM,CAAC;IAEnB,iBAAiB,GAAuB;QACzD,EAAE,OAAO,EAAE,sCAAsC,EAAE,WAAW,EAAE,cAAc,EAAE;QAChF,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,YAAY,EAAE;QAC9D,EAAE,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,gBAAgB,EAAE;KACxE,CAAC;IAEF,eAAe;QACb,uDAAuD;QACvD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,MAAsB,EAAE,cAAsB;QACtD,MAAM,IAAI,GAAa;YACrB,QAAQ,EAAY,gCAAgC;YACpD,SAAS,EAAW,uBAAuB;YAC3C,gBAAgB,EAAI,2BAA2B;SAChD,CAAC;QAEF,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,kBAAkB,EAAE,CAAC;YACtE,uEAAuE;QACzE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,aAAqB,EAAE,SAAiB;QACzD,2EAA2E;IAC7E,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,WAAmB;QAC9B,iDAAiD;QACjD,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF;AAxCD,wCAwCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,IAAI,YAAY,CAUlD;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAuBtD"}
1
+ {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,IAAI,YAAY,CAUlD;AA6BD,wBAAgB,qBAAqB,IAAI,cAAc,CAoBtD"}
package/dist/hardware.js CHANGED
@@ -53,22 +53,42 @@ function collectHardwareInfo() {
53
53
  log.info(info, 'Hardware info collected');
54
54
  return info;
55
55
  }
56
+ /**
57
+ * Previous CPU snapshot for delta-based usage calculation.
58
+ * os.cpus().times values are cumulative since boot — to get recent usage
59
+ * we must compare two snapshots taken at different times.
60
+ */
61
+ let prevCpuIdle = 0;
62
+ let prevCpuTotal = 0;
63
+ function sampleCpuTotals() {
64
+ const cpus = os.cpus();
65
+ let idle = 0;
66
+ let total = 0;
67
+ for (const cpu of cpus) {
68
+ const t = cpu.times;
69
+ idle += t.idle;
70
+ total += t.user + t.nice + t.sys + t.idle + t.irq;
71
+ }
72
+ return { idle, total };
73
+ }
74
+ // Take initial snapshot so the first heartbeat has a baseline to diff against
75
+ {
76
+ const s = sampleCpuTotals();
77
+ prevCpuIdle = s.idle;
78
+ prevCpuTotal = s.total;
79
+ }
56
80
  function collectRuntimeMetrics() {
57
81
  const totalMem = os.totalmem();
58
82
  const freeMem = os.freemem();
59
83
  const memoryUsage = Math.round(((totalMem - freeMem) / totalMem) * 100) / 100;
60
- // Note: os.cpus().times values are cumulative since boot, so this computes
61
- // a boot-average CPU usage rather than instantaneous usage. This is acceptable
62
- // for the heartbeat use case where we need a rough utilization indicator.
63
- const cpus = os.cpus();
64
- let totalIdle = 0;
65
- let totalTick = 0;
66
- for (const cpu of cpus) {
67
- const times = cpu.times;
68
- totalIdle += times.idle;
69
- totalTick += times.user + times.nice + times.sys + times.idle + times.irq;
70
- }
71
- const cpuUsage = totalTick > 0 ? Math.round(((totalTick - totalIdle) / totalTick) * 100) / 100 : 0;
84
+ // Delta-based CPU usage: compare current cumulative values against previous snapshot
85
+ const curr = sampleCpuTotals();
86
+ const idleDelta = curr.idle - prevCpuIdle;
87
+ const totalDelta = curr.total - prevCpuTotal;
88
+ const cpuUsage = totalDelta > 0 ? Math.round(((totalDelta - idleDelta) / totalDelta) * 100) / 100 : 0;
89
+ // Store current snapshot for next call
90
+ prevCpuIdle = curr.idle;
91
+ prevCpuTotal = curr.total;
72
92
  return {
73
93
  cpuUsage,
74
94
  memoryUsage,
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../src/hardware.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overlordai/worker",
3
- "version": "1.0.117",
3
+ "version": "1.0.118",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "dist"
@@ -16,7 +16,7 @@
16
16
  "lint": "tsc --noEmit"
17
17
  },
18
18
  "dependencies": {
19
- "@overlordai/protocol": "1.0.117",
19
+ "@overlordai/protocol": "1.0.118",
20
20
  "async-mutex": "^0.5.0",
21
21
  "node-pty": "^1.0.0",
22
22
  "pino": "^9.0.0",