@askexenow/exe-os 0.9.26 → 0.9.28

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/bin/cli.js CHANGED
@@ -30277,29 +30277,24 @@ async function mergeCodexHooks(packageRoot, homeDir = os20.homedir()) {
30277
30277
  matcher: "Bash|apply_patch|Edit|Write|Read|Glob|Grep|mcp__.*",
30278
30278
  hooks: [
30279
30279
  {
30280
+ // Combined hook: runs ingest + error-recall in one Node process.
30281
+ // Eliminates a cold-start cycle per tool call (~3-6s savings on Codex).
30280
30282
  type: "command",
30281
- command: `node "${path45.join(packageRoot, "dist", "hooks", "ingest.js")}"${logSuffix}`
30282
- },
30283
- {
30284
- type: "command",
30285
- command: `node "${path45.join(packageRoot, "dist", "hooks", "error-recall.js")}"${logSuffix}`
30283
+ command: `node "${path45.join(packageRoot, "dist", "hooks", "post-tool-combined.js")}"${logSuffix}`
30286
30284
  }
30287
30285
  ]
30288
30286
  },
30289
- marker: "dist/hooks/ingest.js"
30287
+ marker: "dist/hooks/post-tool-combined.js"
30290
30288
  },
30291
30289
  {
30292
30290
  event: "UserPromptSubmit",
30293
30291
  group: {
30294
30292
  hooks: [
30295
30293
  {
30294
+ // Single hook: prompt-submit handles memory retrieval + entity boost.
30295
+ // exe-heartbeat-hook is CC-specific (intercom) — omitted on Codex.
30296
30296
  type: "command",
30297
30297
  command: `node "${path45.join(packageRoot, "dist", "hooks", "prompt-submit.js")}"${logSuffix}`
30298
- },
30299
- {
30300
- type: "command",
30301
- command: `node "${path45.join(packageRoot, "dist", "hooks", "exe-heartbeat-hook.js")}"${logSuffix}`,
30302
- timeout: 5
30303
30298
  }
30304
30299
  ]
30305
30300
  },
@@ -3578,29 +3578,24 @@ async function mergeCodexHooks(packageRoot, homeDir = os10.homedir()) {
3578
3578
  matcher: "Bash|apply_patch|Edit|Write|Read|Glob|Grep|mcp__.*",
3579
3579
  hooks: [
3580
3580
  {
3581
+ // Combined hook: runs ingest + error-recall in one Node process.
3582
+ // Eliminates a cold-start cycle per tool call (~3-6s savings on Codex).
3581
3583
  type: "command",
3582
- command: `node "${path13.join(packageRoot, "dist", "hooks", "ingest.js")}"${logSuffix}`
3583
- },
3584
- {
3585
- type: "command",
3586
- command: `node "${path13.join(packageRoot, "dist", "hooks", "error-recall.js")}"${logSuffix}`
3584
+ command: `node "${path13.join(packageRoot, "dist", "hooks", "post-tool-combined.js")}"${logSuffix}`
3587
3585
  }
3588
3586
  ]
3589
3587
  },
3590
- marker: "dist/hooks/ingest.js"
3588
+ marker: "dist/hooks/post-tool-combined.js"
3591
3589
  },
3592
3590
  {
3593
3591
  event: "UserPromptSubmit",
3594
3592
  group: {
3595
3593
  hooks: [
3596
3594
  {
3595
+ // Single hook: prompt-submit handles memory retrieval + entity boost.
3596
+ // exe-heartbeat-hook is CC-specific (intercom) — omitted on Codex.
3597
3597
  type: "command",
3598
3598
  command: `node "${path13.join(packageRoot, "dist", "hooks", "prompt-submit.js")}"${logSuffix}`
3599
- },
3600
- {
3601
- type: "command",
3602
- command: `node "${path13.join(packageRoot, "dist", "hooks", "exe-heartbeat-hook.js")}"${logSuffix}`,
3603
- timeout: 5
3604
3599
  }
3605
3600
  ]
3606
3601
  },
@@ -4465,10 +4460,14 @@ function loadIdentity(agent) {
4465
4460
  }
4466
4461
  return null;
4467
4462
  }
4468
- function writePromptFile(agent, identity, behaviorsPath) {
4463
+ function writePromptFile(agent, identity, behaviorsPath, globalProcedures) {
4469
4464
  const promptDir = path15.join(os11.homedir(), ".exe-os", "codex-prompt");
4470
4465
  mkdirSync7(promptDir, { recursive: true });
4471
- let prompt = identity;
4466
+ let prompt = "";
4467
+ if (globalProcedures) {
4468
+ prompt += globalProcedures + "\n\n";
4469
+ }
4470
+ prompt += identity;
4472
4471
  if (behaviorsPath && existsSync14(behaviorsPath)) {
4473
4472
  const behaviors = readFileSync9(behaviorsPath, "utf-8").trim();
4474
4473
  if (behaviors) {
@@ -4533,9 +4532,21 @@ async function main() {
4533
4532
  );
4534
4533
  }
4535
4534
  let behaviorsPath = null;
4535
+ let globalProcedures = null;
4536
4536
  try {
4537
4537
  await initStore();
4538
4538
  behaviorsPath = await exportBehaviorsForAgent(agent, "");
4539
+ try {
4540
+ const { loadGlobalProcedures: loadGlobalProcedures2, getGlobalProceduresBlock: getGlobalProceduresBlock2 } = await Promise.resolve().then(() => (init_global_procedures(), global_procedures_exports));
4541
+ await loadGlobalProcedures2();
4542
+ const block = getGlobalProceduresBlock2();
4543
+ if (block) globalProcedures = block;
4544
+ } catch (err) {
4545
+ process.stderr.write(
4546
+ `[exe-start-codex] global procedures load failed: ${err instanceof Error ? err.message : String(err)}
4547
+ `
4548
+ );
4549
+ }
4539
4550
  } catch (err) {
4540
4551
  process.stderr.write(
4541
4552
  `[exe-start-codex] behaviors export failed for ${agent}: ${err instanceof Error ? err.message : String(err)}
@@ -4547,7 +4558,7 @@ async function main() {
4547
4558
  } catch {
4548
4559
  }
4549
4560
  }
4550
- const promptPath = identity ? writePromptFile(agent, identity, behaviorsPath) : null;
4561
+ const promptPath = identity ? writePromptFile(agent, identity, behaviorsPath, globalProcedures) : null;
4551
4562
  const memoryAgent = baseAgentName(agent);
4552
4563
  process.env.AGENT_ID = memoryAgent;
4553
4564
  if (!process.env.EXE_SESSION_KEY) {
@@ -1467,29 +1467,24 @@ async function mergeCodexHooks(packageRoot, homeDir = os6.homedir()) {
1467
1467
  matcher: "Bash|apply_patch|Edit|Write|Read|Glob|Grep|mcp__.*",
1468
1468
  hooks: [
1469
1469
  {
1470
+ // Combined hook: runs ingest + error-recall in one Node process.
1471
+ // Eliminates a cold-start cycle per tool call (~3-6s savings on Codex).
1470
1472
  type: "command",
1471
- command: `node "${path8.join(packageRoot, "dist", "hooks", "ingest.js")}"${logSuffix}`
1472
- },
1473
- {
1474
- type: "command",
1475
- command: `node "${path8.join(packageRoot, "dist", "hooks", "error-recall.js")}"${logSuffix}`
1473
+ command: `node "${path8.join(packageRoot, "dist", "hooks", "post-tool-combined.js")}"${logSuffix}`
1476
1474
  }
1477
1475
  ]
1478
1476
  },
1479
- marker: "dist/hooks/ingest.js"
1477
+ marker: "dist/hooks/post-tool-combined.js"
1480
1478
  },
1481
1479
  {
1482
1480
  event: "UserPromptSubmit",
1483
1481
  group: {
1484
1482
  hooks: [
1485
1483
  {
1484
+ // Single hook: prompt-submit handles memory retrieval + entity boost.
1485
+ // exe-heartbeat-hook is CC-specific (intercom) — omitted on Codex.
1486
1486
  type: "command",
1487
1487
  command: `node "${path8.join(packageRoot, "dist", "hooks", "prompt-submit.js")}"${logSuffix}`
1488
- },
1489
- {
1490
- type: "command",
1491
- command: `node "${path8.join(packageRoot, "dist", "hooks", "exe-heartbeat-hook.js")}"${logSuffix}`,
1492
- timeout: 5
1493
1488
  }
1494
1489
  ]
1495
1490
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.26",
3
+ "version": "0.9.28",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",