@askexenow/exe-os 0.9.121 → 0.9.122

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
@@ -37376,8 +37376,7 @@ function summarizeChunk(chunk, filePath) {
37376
37376
  }
37377
37377
  }
37378
37378
  function isChunkable(filePath) {
37379
- const lang = languageForFile(filePath);
37380
- return lang === "typescript" || lang === "javascript";
37379
+ return Boolean(languageForFile(filePath));
37381
37380
  }
37382
37381
  var LANGUAGE_BY_EXTENSION, TEXT_LIKE_LANGUAGES;
37383
37382
  var init_code_chunker = __esm({
@@ -256,6 +256,54 @@ test("Platform procedures \u2014 all MCP tool actions documented", () => {
256
256
  }
257
257
  return true;
258
258
  });
259
+ test("Build output \u2014 all URL-based dynamic imports have matching tsup entry points", () => {
260
+ const tsup = readSrc("tsup.config.ts");
261
+ const srcFiles = execSync(
262
+ `find src -name "*.ts" -not -path "*/node_modules/*" 2>/dev/null || true`,
263
+ { encoding: "utf8", cwd: ROOT }
264
+ ).trim().split("\n").filter(Boolean);
265
+ const missing = [];
266
+ for (const file of srcFiles) {
267
+ if (file.includes("customer-readiness")) continue;
268
+ const content = readSrc(file);
269
+ const urlImports = content.matchAll(/new URL\(\s*["'](\.\.?\/[^"'*]+\.js)["']\s*,\s*import\.meta\.url\s*\)/g);
270
+ for (const match of urlImports) {
271
+ const relPath = match[1];
272
+ if (relPath.includes("package.json")) continue;
273
+ const srcDir = path.dirname(file);
274
+ const resolved = path.normalize(path.join(srcDir, relPath));
275
+ const distKey = resolved.replace(/^src\//, "").replace(/\.js$/, "");
276
+ if (distKey.includes("..")) continue;
277
+ if (!tsup.includes(`"${distKey}"`)) {
278
+ missing.push(`${file} \u2192 ${relPath} (needs tsup entry: "${distKey}")`);
279
+ }
280
+ }
281
+ }
282
+ if (missing.length > 0) {
283
+ return `Dynamic imports without tsup entries will crash at runtime:
284
+ ${missing.join("\n ")}`;
285
+ }
286
+ return true;
287
+ });
288
+ test("Build output \u2014 every tsup entry point has a corresponding dist/ file", () => {
289
+ const tsup = readSrc("tsup.config.ts");
290
+ const entryPattern = /"([^"]+)":\s*"src\//g;
291
+ const entries = [];
292
+ for (const match of tsup.matchAll(entryPattern)) {
293
+ if (match[1]) entries.push(match[1]);
294
+ }
295
+ const missing = [];
296
+ for (const entry of entries) {
297
+ const distPath = path.join(ROOT, "dist", entry + ".js");
298
+ if (!existsSync(distPath)) {
299
+ missing.push(`dist/${entry}.js`);
300
+ }
301
+ }
302
+ if (missing.length > 0) {
303
+ return `Missing dist files (build incomplete): ${missing.join(", ")}`;
304
+ }
305
+ return true;
306
+ });
259
307
  console.log(`
260
308
  \x1B[1m${pass + fail} tests: ${pass} passed, ${fail} failed\x1B[0m
261
309
  `);
@@ -11796,6 +11796,12 @@ var init_tmux_routing = __esm({
11796
11796
  });
11797
11797
 
11798
11798
  // src/lib/task-scope.ts
11799
+ var task_scope_exports = {};
11800
+ __export(task_scope_exports, {
11801
+ getCurrentSessionScope: () => getCurrentSessionScope,
11802
+ sessionScopeFilter: () => sessionScopeFilter,
11803
+ strictSessionScopeFilter: () => strictSessionScopeFilter
11804
+ });
11799
11805
  function getCurrentSessionScope() {
11800
11806
  try {
11801
11807
  return resolveExeSession();
@@ -20069,8 +20075,7 @@ function summarizeChunk(chunk, filePath) {
20069
20075
  }
20070
20076
  }
20071
20077
  function isChunkable(filePath) {
20072
- const lang = languageForFile(filePath);
20073
- return lang === "typescript" || lang === "javascript";
20078
+ return Boolean(languageForFile(filePath));
20074
20079
  }
20075
20080
 
20076
20081
  // src/lib/graph-rag.ts
@@ -21390,13 +21395,15 @@ async function getAgentSessionLoad() {
21390
21395
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
21391
21396
  }
21392
21397
  const { getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
21398
+ const { sessionScopeFilter: sessionScopeFilter2 } = await Promise.resolve().then(() => (init_task_scope(), task_scope_exports));
21393
21399
  const client = getClient2();
21400
+ const scope = sessionScopeFilter2();
21394
21401
  for (const s of liveAgentSessions) {
21395
21402
  const agent = baseAgentName2(s.agentId);
21396
21403
  const result3 = await client.execute({
21397
21404
  sql: `SELECT COUNT(*) as cnt FROM tasks
21398
- WHERE assigned_to = ? AND status IN ('open', 'in_progress')`,
21399
- args: [agent]
21405
+ WHERE assigned_to = ? AND status IN ('open', 'in_progress')${scope.sql}`,
21406
+ args: [agent, ...scope.args]
21400
21407
  });
21401
21408
  const taskCount = Number(result3.rows[0]?.cnt ?? 0);
21402
21409
  sessions.push({
@@ -11796,6 +11796,12 @@ var init_tmux_routing = __esm({
11796
11796
  });
11797
11797
 
11798
11798
  // src/lib/task-scope.ts
11799
+ var task_scope_exports = {};
11800
+ __export(task_scope_exports, {
11801
+ getCurrentSessionScope: () => getCurrentSessionScope,
11802
+ sessionScopeFilter: () => sessionScopeFilter,
11803
+ strictSessionScopeFilter: () => strictSessionScopeFilter
11804
+ });
11799
11805
  function getCurrentSessionScope() {
11800
11806
  try {
11801
11807
  return resolveExeSession();
@@ -20081,8 +20087,7 @@ function summarizeChunk(chunk, filePath) {
20081
20087
  }
20082
20088
  }
20083
20089
  function isChunkable(filePath) {
20084
- const lang = languageForFile(filePath);
20085
- return lang === "typescript" || lang === "javascript";
20090
+ return Boolean(languageForFile(filePath));
20086
20091
  }
20087
20092
 
20088
20093
  // src/lib/graph-rag.ts
@@ -21483,13 +21488,15 @@ async function getAgentSessionLoad() {
21483
21488
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
21484
21489
  }
21485
21490
  const { getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
21491
+ const { sessionScopeFilter: sessionScopeFilter2 } = await Promise.resolve().then(() => (init_task_scope(), task_scope_exports));
21486
21492
  const client = getClient2();
21493
+ const scope = sessionScopeFilter2();
21487
21494
  for (const s of liveAgentSessions) {
21488
21495
  const agent = baseAgentName2(s.agentId);
21489
21496
  const result3 = await client.execute({
21490
21497
  sql: `SELECT COUNT(*) as cnt FROM tasks
21491
- WHERE assigned_to = ? AND status IN ('open', 'in_progress')`,
21492
- args: [agent]
21498
+ WHERE assigned_to = ? AND status IN ('open', 'in_progress')${scope.sql}`,
21499
+ args: [agent, ...scope.args]
21493
21500
  });
21494
21501
  const taskCount = Number(result3.rows[0]?.cnt ?? 0);
21495
21502
  sessions.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.121",
3
+ "version": "0.9.122",
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",