@askexenow/exe-os 0.9.136 → 0.9.138
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/{agentic-ontology-2TD5YS4O.js → agentic-ontology-TU2FNTHI.js} +1 -1
- package/dist/{backfill-metadata-5LNLRCA6.js → backfill-metadata-LVUAD6WY.js} +3 -3
- package/dist/{behaviors-PPFGGHYD.js → behaviors-V3O5YYUK.js} +2 -2
- package/dist/bin/agentic-ontology-backfill.js +4 -4
- package/dist/bin/agentic-reflection-backfill.js +5 -5
- package/dist/bin/agentic-semantic-label.js +4 -4
- package/dist/bin/backfill-conversations.js +3 -3
- package/dist/bin/backfill-responses.js +3 -3
- package/dist/bin/backfill-vectors.js +3 -3
- package/dist/bin/bulk-sync-postgres.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +5 -4
- package/dist/bin/cli.js +54 -11
- package/dist/bin/exe-agent.js +10 -10
- package/dist/bin/exe-assign.js +3 -3
- package/dist/bin/exe-boot.js +10 -9
- package/dist/bin/exe-call.js +3 -3
- package/dist/bin/exe-cloud.js +3 -3
- package/dist/bin/exe-dispatch.js +6 -5
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +6 -6
- package/dist/bin/exe-forget.js +5 -5
- package/dist/bin/exe-gateway.js +3 -3
- package/dist/bin/exe-heartbeat.js +5 -4
- package/dist/bin/exe-kill.js +5 -5
- package/dist/bin/exe-launch-agent.js +48 -14
- package/dist/bin/exe-new-employee.js +5 -5
- package/dist/bin/exe-pending-messages.js +6 -5
- package/dist/bin/exe-pending-notifications.js +5 -4
- package/dist/bin/exe-pending-reviews.js +5 -4
- package/dist/bin/exe-rename.js +3 -3
- package/dist/bin/exe-review.js +4 -4
- package/dist/bin/exe-search.js +4 -4
- package/dist/bin/exe-session-cleanup.js +9 -8
- package/dist/bin/exe-settings.js +3 -3
- package/dist/bin/exe-start-codex.js +7 -7
- package/dist/bin/exe-start-opencode.js +6 -6
- package/dist/bin/exe-status.js +6 -6
- package/dist/bin/exe-team.js +2 -2
- package/dist/bin/git-sweep.js +5 -4
- package/dist/bin/graph-backfill.js +3 -3
- package/dist/bin/graph-export.js +4 -4
- package/dist/bin/install.js +3 -3
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/scan-tasks.js +10 -9
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +3 -3
- package/dist/branding-JEE7MJF2.js +99 -0
- package/dist/{capacity-monitor-PFHHXTEN.js → capacity-monitor-56DTRWOS.js} +6 -5
- package/dist/{catchup-brief-Y75GOHWU.js → catchup-brief-6GRGQ2EK.js} +7 -6
- package/dist/{chunk-ZJ7N6BNZ.js → chunk-2G6QGXVX.js} +21 -0
- package/dist/{chunk-S67DRFRK.js → chunk-2ISCJ5PQ.js} +1 -1
- package/dist/{chunk-5NLZS5KX.js → chunk-5QCIPC7Z.js} +2 -2
- package/dist/{chunk-VIONSYFC.js → chunk-7FYOTSJP.js} +1 -1
- package/dist/{chunk-3BVZNKAZ.js → chunk-7GOVGBBM.js} +3 -3
- package/dist/{chunk-T65APBMF.js → chunk-7TW5HR4E.js} +39 -21
- package/dist/{chunk-YMMTBQQY.js → chunk-7V3BJHG6.js} +2 -2
- package/dist/{chunk-DIQOUMHM.js → chunk-ABIGFAFY.js} +1 -1
- package/dist/{chunk-MPZRPM5X.js → chunk-AHQDWRSM.js} +1 -1
- package/dist/{chunk-KHUJEI3A.js → chunk-BOPKW4AV.js} +1 -1
- package/dist/{chunk-3UKHLUXH.js → chunk-BQ5YXRBI.js} +1 -1
- package/dist/{chunk-TXRDECEW.js → chunk-BUHXM7ZL.js} +3 -3
- package/dist/{chunk-5DZTDWFU.js → chunk-BYNEC472.js} +1 -1
- package/dist/{chunk-X3KJ3TT7.js → chunk-E6ORBQHP.js} +1 -0
- package/dist/{chunk-XDWCEQLH.js → chunk-EBMHOMN2.js} +6 -6
- package/dist/{chunk-GISRZK6K.js → chunk-EZ2TJX6O.js} +19 -3
- package/dist/{chunk-ZNWYU3VE.js → chunk-EZTYTAVU.js} +8 -8
- package/dist/{chunk-E2XB56OH.js → chunk-F63ZHBZY.js} +1 -1
- package/dist/{chunk-CTEENZVZ.js → chunk-FQZY4M45.js} +20 -3
- package/dist/{chunk-ARZWYVYC.js → chunk-GRLQJ27R.js} +1 -1
- package/dist/{chunk-D7FYU6DX.js → chunk-I2LCIAUC.js} +2 -2
- package/dist/{chunk-UXGZ3V3U.js → chunk-ITMXM6GF.js} +1 -1
- package/dist/{chunk-FM4UBRBE.js → chunk-JN2RIMLI.js} +3 -3
- package/dist/{chunk-ARQQ4T47.js → chunk-K7W7UJ6Z.js} +1 -1
- package/dist/{chunk-NBJIGVPG.js → chunk-LEVPSCVX.js} +43 -7
- package/dist/{chunk-AVUQCUZC.js → chunk-LPIY2AUD.js} +1 -1
- package/dist/{chunk-GU2Z6K2T.js → chunk-MQNM4FW4.js} +3 -2
- package/dist/{chunk-O2ENLWKX.js → chunk-MSFSQSJO.js} +1 -1
- package/dist/{chunk-NSVI6RZ5.js → chunk-N2ZX27ID.js} +1 -1
- package/dist/{chunk-5DHM77JE.js → chunk-NBYMO4RZ.js} +2 -0
- package/dist/{chunk-A63V4QMR.js → chunk-NFMNO3XE.js} +732 -544
- package/dist/{chunk-4ADWX7S6.js → chunk-OVFU26ZD.js} +5 -5
- package/dist/{chunk-5XNCH6UM.js → chunk-OZ4SN7ZF.js} +1 -1
- package/dist/{chunk-REFUKSCU.js → chunk-PB5RHF74.js} +2 -2
- package/dist/{chunk-QKBDAHFM.js → chunk-PFGFOALA.js} +1 -1
- package/dist/chunk-PKPW2W33.js +134 -0
- package/dist/{chunk-IMZM3H6N.js → chunk-R3IILARI.js} +2 -2
- package/dist/{chunk-VAPODXIB.js → chunk-T5A4EGUG.js} +1 -1
- package/dist/{chunk-TERS54YJ.js → chunk-TIJYLKNW.js} +1 -1
- package/dist/{chunk-WQ6FW5JD.js → chunk-TRLP7FHS.js} +1 -1
- package/dist/{chunk-IUKRBQ2B.js → chunk-TT3ND3MM.js} +2 -2
- package/dist/{chunk-NR3MPNTF.js → chunk-UT3OZWST.js} +8 -8
- package/dist/{chunk-XK3P2PRN.js → chunk-VGOFRIAI.js} +2 -2
- package/dist/{chunk-NFRFF6QS.js → chunk-VOA7GHIO.js} +1 -1
- package/dist/{chunk-J7LFCZMQ.js → chunk-WTPYZG4I.js} +65 -15
- package/dist/{chunk-G2HJSPM4.js → chunk-Z36IJ3XX.js} +2 -2
- package/dist/{chunk-W7G2DOLC.js → chunk-ZKOQD4FT.js} +5 -5
- package/dist/core-memory-DUENM2P6.js +79 -0
- package/dist/{crdt-sync-UUJDUXTJ.js → crdt-sync-SENINDKP.js} +1 -1
- package/dist/{crm-webhook-UXZORR4I.js → crm-webhook-JIXOP3UR.js} +2 -2
- package/dist/{cto-delegation-gate-7MIMXB4T.js → cto-delegation-gate-5ETBWFAI.js} +4 -3
- package/dist/{daemon-orchestration-FIL7U2RV.js → daemon-orchestration-6UNZTZHX.js} +10 -6
- package/dist/{entity-boost-CSKKVLPV.js → entity-boost-CZZVTBSY.js} +79 -0
- package/dist/{exe-drift-D7YCMMR3.js → exe-drift-WLMWMSOM.js} +3 -3
- package/dist/{exe-export-YKP26EW6.js → exe-export-3RQMZAR3.js} +5 -5
- package/dist/{exe-import-HSQORBEH.js → exe-import-URXIQGOM.js} +5 -5
- package/dist/{exe-key-QLXFQGNV.js → exe-key-47ZUWMGT.js} +1 -1
- package/dist/{fast-db-init-RFYRERZL.js → fast-db-init-Z67ITX23.js} +1 -1
- package/dist/gateway/index.js +8 -8
- package/dist/{gateway-client-APTYJNCL.js → gateway-client-VFKE2WJX.js} +1 -1
- package/dist/{git-staleness-2IBA7MM2.js → git-staleness-PP7MPTZS.js} +1 -1
- package/dist/{git-task-sweep-ZZQHHVXR.js → git-task-sweep-TMVL5UUD.js} +5 -4
- package/dist/{global-procedures-6B5JT3B5.js → global-procedures-OQFOUA5G.js} +2 -2
- package/dist/hooks/bug-report-worker.js +8 -7
- package/dist/hooks/codex-stop-task-finalizer.js +8 -7
- package/dist/hooks/commit-complete.js +7 -6
- package/dist/hooks/error-recall.js +4 -4
- package/dist/hooks/ingest.js +2 -2
- package/dist/hooks/instructions-loaded.js +3 -3
- package/dist/hooks/notification.js +1 -1
- package/dist/hooks/post-compact.js +5 -4
- package/dist/hooks/post-tool-combined.js +3 -3
- package/dist/hooks/pre-compact.js +6 -5
- package/dist/hooks/pre-tool-use.js +9 -8
- package/dist/hooks/prompt-submit.js +12 -11
- package/dist/hooks/session-end.js +10 -9
- package/dist/hooks/session-start.js +4 -4
- package/dist/hooks/stop.js +8 -7
- package/dist/hooks/subagent-stop.js +5 -4
- package/dist/hooks/summary-worker.js +8 -7
- package/dist/index.js +13 -12
- package/dist/{installer-GDMELU5L.js → installer-RVGGMXQU.js} +4 -4
- package/dist/{installer-EIUTCCHV.js → installer-RVLKWR3X.js} +2 -2
- package/dist/{installer-WZEN2XJ7.js → installer-V7BGTU55.js} +2 -2
- package/dist/lib/cloud-sync.js +3 -3
- package/dist/lib/consolidation.js +4 -4
- package/dist/lib/database.js +1 -1
- package/dist/lib/db.js +1 -1
- package/dist/lib/employee-templates.js +3 -3
- package/dist/lib/exe-daemon.js +103 -21
- package/dist/lib/hybrid-search.js +4 -4
- package/dist/lib/identity.js +2 -2
- package/dist/lib/messaging.js +5 -4
- package/dist/lib/reminders.js +2 -2
- package/dist/lib/schedules.js +4 -4
- package/dist/lib/skill-learning.js +3 -3
- package/dist/lib/store.js +3 -3
- package/dist/lib/tasks.js +7 -6
- package/dist/lib/tmux-routing.js +4 -3
- package/dist/lib/token-spend.js +2 -2
- package/dist/lib/ws-client.js +1 -1
- package/dist/mcp/register-tools.js +45 -45
- package/dist/mcp/server.js +45 -45
- package/dist/mcp/tools/complete-reminder.js +3 -3
- package/dist/mcp/tools/create-reminder.js +3 -3
- package/dist/mcp/tools/create-task.js +8 -7
- package/dist/mcp/tools/deactivate-behavior.js +3 -3
- package/dist/mcp/tools/list-reminders.js +3 -3
- package/dist/mcp/tools/list-tasks.js +8 -7
- package/dist/mcp/tools/send-message.js +6 -5
- package/dist/mcp/tools/update-task.js +8 -7
- package/dist/{memory-cards-MA5SIQKN.js → memory-cards-H2GNWDF2.js} +1 -1
- package/dist/{memory-reflection-VHCEW3UN.js → memory-reflection-J3LYZM5Y.js} +1 -1
- package/dist/{notifications-NY2OVCDV.js → notifications-3ZZS36PK.js} +4 -3
- package/dist/{orchestrator-ZVOTKKV6.js → orchestrator-W7XYR7EZ.js} +6 -5
- package/dist/{plan-limits-UQTXKXJQ.js → plan-limits-3FXBGHWT.js} +2 -2
- package/dist/{projection-worker-UL47LRTS.js → projection-worker-XGV76EMZ.js} +1 -1
- package/dist/push-notifications-S4QIZWJI.js +17 -0
- package/dist/runtime/index.js +11 -10
- package/dist/{session-events-DU6PKAJN.js → session-events-27MUL77I.js} +5 -4
- package/dist/{session-kill-telemetry-5XGSTQJS.js → session-kill-telemetry-WVFJ4U3A.js} +2 -2
- package/dist/{session-scope-WJRSCUKP.js → session-scope-QZTSCYLT.js} +5 -4
- package/dist/{setup-wizard-36V5GCGG.js → setup-wizard-JEYXHYVS.js} +1 -1
- package/dist/{task-scope-7XCYEZAG.js → task-scope-2L5DLU6T.js} +4 -3
- package/dist/{tasks-crud-DUNJJUV3.js → tasks-crud-MDCY6JHU.js} +5 -4
- package/dist/{tasks-review-BPSW2TBZ.js → tasks-review-QO55FYZI.js} +4 -3
- package/dist/{tool-gates-CAFAD576.js → tool-gates-FSNGZNXW.js} +1 -1
- package/dist/{tool-gates-5IWU2EVV.js → tool-gates-P6HATVYH.js} +1 -1
- package/dist/{tool-telemetry-Q6ZSUTHS.js → tool-telemetry-NW6HQYPA.js} +1 -1
- package/dist/tui/App.js +13 -12
- package/dist/{tui-data-GUMMW3IG.js → tui-data-6CKBIJJJ.js} +4 -3
- package/dist/{workflow-engine-A6K4MHN3.js → workflow-engine-7W4MSNBF.js} +1 -1
- package/package.json +2 -1
- package/release-notes.json +33343 -0
- package/dist/{chunk-M6ODLM7X.js → chunk-2FWMSQWU.js} +0 -0
- package/dist/{chunk-4AZA3DZM.js → chunk-6AJ4KAAB.js} +0 -0
- package/dist/{chunk-7U65IF2W.js → chunk-DLMPVZ4I.js} +0 -0
- package/dist/{chunk-KQW5PWOA.js → chunk-F3MUSAZY.js} +3 -3
- /package/dist/{chunk-KI3UEJUR.js → chunk-G3LVAJON.js} +0 -0
- /package/dist/{chunk-M6FENV7U.js → chunk-GMARURIG.js} +0 -0
- /package/dist/{chunk-FR5FFQ6G.js → chunk-KJMSHBWT.js} +0 -0
- /package/dist/{chunk-RCKUCKED.js → chunk-N6BE2CUT.js} +0 -0
- /package/dist/{chunk-6ZXIG7R6.js → chunk-WZ63HFR2.js} +0 -0
- /package/dist/{wiki-acl-QY5EXWEQ.js → wiki-acl-RVCO4WSP.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
fastDbInit
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-KJMSHBWT.js";
|
|
5
5
|
import "../chunk-KFQGP6VL.js";
|
|
6
6
|
|
|
7
7
|
// src/bin/intercom-check.ts
|
|
@@ -16,7 +16,7 @@ async function main() {
|
|
|
16
16
|
}
|
|
17
17
|
if (isCoordinator) {
|
|
18
18
|
try {
|
|
19
|
-
const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-
|
|
19
|
+
const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-QO55FYZI.js");
|
|
20
20
|
const { extractRootExe } = await import("../lib/tmux-routing.js");
|
|
21
21
|
await cleanupOrphanedReviews();
|
|
22
22
|
let sessionScope = process.env.EXE_SESSION ? extractRootExe(process.env.EXE_SESSION) ?? void 0 : void 0;
|
|
@@ -87,7 +87,7 @@ async function main() {
|
|
|
87
87
|
}
|
|
88
88
|
if (!isCoordinator) {
|
|
89
89
|
try {
|
|
90
|
-
const { listBehaviors } = await import("../behaviors-
|
|
90
|
+
const { listBehaviors } = await import("../behaviors-V3O5YYUK.js");
|
|
91
91
|
const sessionStart = process.env.EXE_SESSION_START_ISO ?? "";
|
|
92
92
|
if (sessionStart) {
|
|
93
93
|
const behaviors = await listBehaviors(agent);
|
|
@@ -106,7 +106,7 @@ async function main() {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
try {
|
|
109
|
-
const { readUnreadNotifications, markAsRead } = await import("../notifications-
|
|
109
|
+
const { readUnreadNotifications, markAsRead } = await import("../notifications-3ZZS36PK.js");
|
|
110
110
|
const notifications = await readUnreadNotifications(agent);
|
|
111
111
|
const recentCutoff = Date.now() - 24 * 60 * 60 * 1e3;
|
|
112
112
|
const pending = notifications.filter((row) => new Date(row.timestamp).getTime() > recentCutoff);
|
package/dist/bin/scan-tasks.js
CHANGED
|
@@ -2,22 +2,23 @@
|
|
|
2
2
|
import {
|
|
3
3
|
init_task_scope,
|
|
4
4
|
sessionScopeFilter
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-FQZY4M45.js";
|
|
6
6
|
import "../chunk-NEAHEC5G.js";
|
|
7
7
|
import "../chunk-KRLOFIPI.js";
|
|
8
8
|
import "../chunk-R4M6XCMU.js";
|
|
9
9
|
import "../chunk-TYLF4LSW.js";
|
|
10
|
+
import "../chunk-DC4ZD76Y.js";
|
|
10
11
|
import "../chunk-PJHHFJAN.js";
|
|
11
12
|
import "../chunk-K7E72WGL.js";
|
|
12
13
|
import "../chunk-JT76KRZQ.js";
|
|
13
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-GRLQJ27R.js";
|
|
14
15
|
import {
|
|
15
16
|
getSessionRuntime,
|
|
16
17
|
init_session_key
|
|
17
18
|
} from "../chunk-HP43GLZ6.js";
|
|
18
19
|
import "../chunk-ELE2C7L4.js";
|
|
19
20
|
import "../chunk-WZQ4CPRG.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-2G6QGXVX.js";
|
|
21
22
|
import "../chunk-KSFOG6FJ.js";
|
|
22
23
|
import "../chunk-4NYQAS33.js";
|
|
23
24
|
import "../chunk-BPLXSBNM.js";
|
|
@@ -74,7 +75,7 @@ function checkMcpHealth() {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
async function scanFromDb(agentId, tmuxSession, projectName) {
|
|
77
|
-
const { fastDbInit } = await import("../fast-db-init-
|
|
78
|
+
const { fastDbInit } = await import("../fast-db-init-Z67ITX23.js");
|
|
78
79
|
let client;
|
|
79
80
|
try {
|
|
80
81
|
client = await fastDbInit();
|
|
@@ -99,14 +100,14 @@ async function scanFromDb(agentId, tmuxSession, projectName) {
|
|
|
99
100
|
}
|
|
100
101
|
const sessionFilter = resolvedSession ? " AND (session_scope IS NULL OR session_scope = ?)" : "";
|
|
101
102
|
const sessionArgs = resolvedSession ? [resolvedSession] : [];
|
|
102
|
-
const sql = resolvedProject ? `SELECT id, title, priority, status, assigned_tmux, checkpoint, checkpoint_count FROM tasks
|
|
103
|
-
WHERE assigned_to = ? AND project_name = ?${sessionFilter} AND status IN ('open', 'in_progress', 'blocked', 'needs_review')
|
|
103
|
+
const sql = resolvedProject ? `SELECT id, title, priority, status, assigned_to, reviewer, assigned_tmux, checkpoint, checkpoint_count FROM tasks
|
|
104
|
+
WHERE (assigned_to = ? OR reviewer = ?) AND project_name = ?${sessionFilter} AND status IN ('open', 'in_progress', 'blocked', 'needs_review')
|
|
104
105
|
ORDER BY CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 ELSE 3 END,
|
|
105
|
-
priority ASC, created_at DESC` : `SELECT id, title, priority, status, assigned_tmux, checkpoint, checkpoint_count FROM tasks
|
|
106
|
-
WHERE assigned_to =
|
|
106
|
+
priority ASC, created_at DESC` : `SELECT id, title, priority, status, assigned_to, reviewer, assigned_tmux, checkpoint, checkpoint_count FROM tasks
|
|
107
|
+
WHERE (assigned_to = ? OR reviewer = ?)${sessionFilter} AND status IN ('open', 'in_progress', 'blocked', 'needs_review')
|
|
107
108
|
ORDER BY CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 ELSE 3 END,
|
|
108
109
|
priority ASC, created_at DESC`;
|
|
109
|
-
const args = resolvedProject ? [agentId, resolvedProject, ...sessionArgs] : [agentId, ...sessionArgs];
|
|
110
|
+
const args = resolvedProject ? [agentId, agentId, resolvedProject, ...sessionArgs] : [agentId, agentId, ...sessionArgs];
|
|
110
111
|
const result = await client.execute({ sql, args });
|
|
111
112
|
const open = [];
|
|
112
113
|
const inProgress = [];
|
package/dist/bin/setup.js
CHANGED
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
disposeStore,
|
|
10
10
|
initStore
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-OVFU26ZD.js";
|
|
12
|
+
import "../chunk-DLMPVZ4I.js";
|
|
13
13
|
import "../chunk-WZQ4CPRG.js";
|
|
14
14
|
import {
|
|
15
15
|
getClient,
|
|
16
16
|
init_database
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-2G6QGXVX.js";
|
|
18
18
|
import "../chunk-KSFOG6FJ.js";
|
|
19
19
|
import "../chunk-4NYQAS33.js";
|
|
20
20
|
import "../chunk-ZKYHW6KY.js";
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EXE_AI_DIR,
|
|
3
|
+
init_config
|
|
4
|
+
} from "./chunk-ISRQKXHM.js";
|
|
5
|
+
import "./chunk-X2IMCCM5.js";
|
|
6
|
+
import "./chunk-KFQGP6VL.js";
|
|
7
|
+
|
|
8
|
+
// src/lib/branding.ts
|
|
9
|
+
init_config();
|
|
10
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
11
|
+
import path from "path";
|
|
12
|
+
var BRANDING_PATH = path.join(EXE_AI_DIR, "branding.json");
|
|
13
|
+
var DEFAULT_BRANDING = {
|
|
14
|
+
name: "Exe OS",
|
|
15
|
+
primaryColor: "#F5D76E",
|
|
16
|
+
accentColor: "#0F0E1A",
|
|
17
|
+
logo: {
|
|
18
|
+
light: void 0,
|
|
19
|
+
dark: void 0,
|
|
20
|
+
icon: void 0
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _cachedBranding = null;
|
|
24
|
+
function loadBranding() {
|
|
25
|
+
if (_cachedBranding) return _cachedBranding;
|
|
26
|
+
try {
|
|
27
|
+
if (!existsSync(BRANDING_PATH)) {
|
|
28
|
+
_cachedBranding = { ...DEFAULT_BRANDING };
|
|
29
|
+
return _cachedBranding;
|
|
30
|
+
}
|
|
31
|
+
const raw = JSON.parse(readFileSync(BRANDING_PATH, "utf-8"));
|
|
32
|
+
_cachedBranding = {
|
|
33
|
+
name: typeof raw.name === "string" ? raw.name : DEFAULT_BRANDING.name,
|
|
34
|
+
primaryColor: typeof raw.primaryColor === "string" && /^#[0-9a-fA-F]{6}$/.test(raw.primaryColor) ? raw.primaryColor : DEFAULT_BRANDING.primaryColor,
|
|
35
|
+
accentColor: typeof raw.accentColor === "string" && /^#[0-9a-fA-F]{6}$/.test(raw.accentColor) ? raw.accentColor : DEFAULT_BRANDING.accentColor,
|
|
36
|
+
logo: raw.logo && typeof raw.logo === "object" ? {
|
|
37
|
+
light: typeof raw.logo.light === "string" ? raw.logo.light : void 0,
|
|
38
|
+
dark: typeof raw.logo.dark === "string" ? raw.logo.dark : void 0,
|
|
39
|
+
icon: typeof raw.logo.icon === "string" ? raw.logo.icon : void 0
|
|
40
|
+
} : DEFAULT_BRANDING.logo,
|
|
41
|
+
emailSender: typeof raw.emailSender === "string" ? raw.emailSender : void 0,
|
|
42
|
+
domain: typeof raw.domain === "string" ? raw.domain : void 0
|
|
43
|
+
};
|
|
44
|
+
return _cachedBranding;
|
|
45
|
+
} catch {
|
|
46
|
+
_cachedBranding = { ...DEFAULT_BRANDING };
|
|
47
|
+
return _cachedBranding;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function _resetBrandingCache() {
|
|
51
|
+
_cachedBranding = null;
|
|
52
|
+
}
|
|
53
|
+
function validateBranding(raw) {
|
|
54
|
+
const errors = [];
|
|
55
|
+
if (!raw || typeof raw !== "object") {
|
|
56
|
+
return { valid: false, errors: ["Branding config must be a JSON object"] };
|
|
57
|
+
}
|
|
58
|
+
const obj = raw;
|
|
59
|
+
if (!obj.name || typeof obj.name !== "string") {
|
|
60
|
+
errors.push("'name' is required and must be a string");
|
|
61
|
+
}
|
|
62
|
+
if (!obj.primaryColor || typeof obj.primaryColor !== "string") {
|
|
63
|
+
errors.push("'primaryColor' is required and must be a hex color string");
|
|
64
|
+
} else if (!/^#[0-9a-fA-F]{6}$/.test(obj.primaryColor)) {
|
|
65
|
+
errors.push("'primaryColor' must be a 6-digit hex color (e.g., #F5D76E)");
|
|
66
|
+
}
|
|
67
|
+
if (!obj.accentColor || typeof obj.accentColor !== "string") {
|
|
68
|
+
errors.push("'accentColor' is required and must be a hex color string");
|
|
69
|
+
} else if (!/^#[0-9a-fA-F]{6}$/.test(obj.accentColor)) {
|
|
70
|
+
errors.push("'accentColor' must be a 6-digit hex color (e.g., #0F0E1A)");
|
|
71
|
+
}
|
|
72
|
+
if (errors.length > 0) return { valid: false, errors };
|
|
73
|
+
const config = {
|
|
74
|
+
name: obj.name,
|
|
75
|
+
primaryColor: obj.primaryColor,
|
|
76
|
+
accentColor: obj.accentColor,
|
|
77
|
+
logo: obj.logo && typeof obj.logo === "object" ? {
|
|
78
|
+
light: typeof obj.logo.light === "string" ? obj.logo.light : void 0,
|
|
79
|
+
dark: typeof obj.logo.dark === "string" ? obj.logo.dark : void 0,
|
|
80
|
+
icon: typeof obj.logo.icon === "string" ? obj.logo.icon : void 0
|
|
81
|
+
} : void 0,
|
|
82
|
+
emailSender: typeof obj.emailSender === "string" ? obj.emailSender : void 0,
|
|
83
|
+
domain: typeof obj.domain === "string" ? obj.domain : void 0
|
|
84
|
+
};
|
|
85
|
+
return { valid: true, errors: [], config };
|
|
86
|
+
}
|
|
87
|
+
function saveBranding(config) {
|
|
88
|
+
mkdirSync(path.dirname(BRANDING_PATH), { recursive: true });
|
|
89
|
+
writeFileSync(BRANDING_PATH, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
90
|
+
_resetBrandingCache();
|
|
91
|
+
}
|
|
92
|
+
export {
|
|
93
|
+
BRANDING_PATH,
|
|
94
|
+
DEFAULT_BRANDING,
|
|
95
|
+
_resetBrandingCache,
|
|
96
|
+
loadBranding,
|
|
97
|
+
saveBranding,
|
|
98
|
+
validateBranding
|
|
99
|
+
};
|
|
@@ -9,21 +9,22 @@ import {
|
|
|
9
9
|
isAtCapacity,
|
|
10
10
|
isWithinRelaunchCooldown,
|
|
11
11
|
pollCapacityDead
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-BUHXM7ZL.js";
|
|
13
|
+
import "./chunk-K7W7UJ6Z.js";
|
|
14
|
+
import "./chunk-FQZY4M45.js";
|
|
15
15
|
import "./chunk-NEAHEC5G.js";
|
|
16
16
|
import "./chunk-KRLOFIPI.js";
|
|
17
17
|
import "./chunk-R4M6XCMU.js";
|
|
18
18
|
import "./chunk-TYLF4LSW.js";
|
|
19
|
+
import "./chunk-DC4ZD76Y.js";
|
|
19
20
|
import "./chunk-PJHHFJAN.js";
|
|
20
21
|
import "./chunk-K7E72WGL.js";
|
|
21
22
|
import "./chunk-JT76KRZQ.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-GRLQJ27R.js";
|
|
23
24
|
import "./chunk-HP43GLZ6.js";
|
|
24
25
|
import "./chunk-ELE2C7L4.js";
|
|
25
26
|
import "./chunk-WZQ4CPRG.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-2G6QGXVX.js";
|
|
27
28
|
import "./chunk-KSFOG6FJ.js";
|
|
28
29
|
import "./chunk-4NYQAS33.js";
|
|
29
30
|
import "./chunk-BPLXSBNM.js";
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lightweightSearch
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-EBMHOMN2.js";
|
|
4
|
+
import "./chunk-OVFU26ZD.js";
|
|
5
|
+
import "./chunk-DLMPVZ4I.js";
|
|
6
6
|
import {
|
|
7
7
|
init_task_scope,
|
|
8
8
|
sessionScopeFilter,
|
|
9
9
|
strictSessionScopeFilter
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FQZY4M45.js";
|
|
11
11
|
import "./chunk-NEAHEC5G.js";
|
|
12
12
|
import "./chunk-KRLOFIPI.js";
|
|
13
13
|
import "./chunk-R4M6XCMU.js";
|
|
14
14
|
import "./chunk-TYLF4LSW.js";
|
|
15
|
+
import "./chunk-DC4ZD76Y.js";
|
|
15
16
|
import "./chunk-PJHHFJAN.js";
|
|
16
17
|
import "./chunk-K7E72WGL.js";
|
|
17
18
|
import "./chunk-JT76KRZQ.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-GRLQJ27R.js";
|
|
19
20
|
import "./chunk-HP43GLZ6.js";
|
|
20
21
|
import "./chunk-ELE2C7L4.js";
|
|
21
22
|
import "./chunk-WZQ4CPRG.js";
|
|
22
23
|
import {
|
|
23
24
|
getClient,
|
|
24
25
|
init_database
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-2G6QGXVX.js";
|
|
26
27
|
import "./chunk-KSFOG6FJ.js";
|
|
27
28
|
import "./chunk-4NYQAS33.js";
|
|
28
29
|
import "./chunk-BPLXSBNM.js";
|
|
@@ -2041,6 +2041,27 @@ async function ensureSchema() {
|
|
|
2041
2041
|
} catch (e) {
|
|
2042
2042
|
logCatchDebug("migration", e);
|
|
2043
2043
|
}
|
|
2044
|
+
try {
|
|
2045
|
+
const { loadDeviceId } = await import("./lib/license.js");
|
|
2046
|
+
const deviceId = loadDeviceId();
|
|
2047
|
+
if (deviceId) {
|
|
2048
|
+
await client.execute({
|
|
2049
|
+
sql: "UPDATE tasks SET device_id = ? WHERE device_id IS NULL",
|
|
2050
|
+
args: [deviceId]
|
|
2051
|
+
});
|
|
2052
|
+
}
|
|
2053
|
+
} catch (e) {
|
|
2054
|
+
logCatchDebug("migration", e);
|
|
2055
|
+
}
|
|
2056
|
+
await client.executeMultiple(`
|
|
2057
|
+
CREATE TABLE IF NOT EXISTS core_memory (
|
|
2058
|
+
agent_id TEXT NOT NULL,
|
|
2059
|
+
key TEXT NOT NULL,
|
|
2060
|
+
value TEXT NOT NULL,
|
|
2061
|
+
updated_at TEXT NOT NULL,
|
|
2062
|
+
PRIMARY KEY (agent_id, key)
|
|
2063
|
+
);
|
|
2064
|
+
`);
|
|
2044
2065
|
await client.executeMultiple(`
|
|
2045
2066
|
CREATE TABLE IF NOT EXISTS oauth_tokens (
|
|
2046
2067
|
id TEXT PRIMARY KEY,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createTask,
|
|
3
3
|
init_tasks
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WTPYZG4I.js";
|
|
5
5
|
import {
|
|
6
6
|
getActiveAgent
|
|
7
7
|
} from "./chunk-TCOTFMDP.js";
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
init_tmux_routing,
|
|
12
12
|
logTaskDispatch,
|
|
13
13
|
resolveExeSession
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FQZY4M45.js";
|
|
15
15
|
import {
|
|
16
16
|
getLicenseSync,
|
|
17
17
|
init_plan_limits
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-GRLQJ27R.js";
|
|
19
19
|
import {
|
|
20
20
|
init_employees,
|
|
21
21
|
isCoordinatorName
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_session_kill_telemetry,
|
|
3
3
|
session_kill_telemetry_exports
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-K7W7UJ6Z.js";
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} from "./chunk-
|
|
6
|
+
init_tasks,
|
|
7
|
+
tasks_exports
|
|
8
|
+
} from "./chunk-WTPYZG4I.js";
|
|
9
9
|
import {
|
|
10
10
|
init_notifications,
|
|
11
11
|
init_task_scope,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
notifications_exports,
|
|
15
15
|
sessionScopeFilter,
|
|
16
16
|
tmux_routing_exports
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-FQZY4M45.js";
|
|
18
18
|
import {
|
|
19
19
|
init_intercom_queue,
|
|
20
20
|
intercom_queue_exports
|
|
@@ -27,6 +27,10 @@ import {
|
|
|
27
27
|
init_transport,
|
|
28
28
|
transport_exports
|
|
29
29
|
} from "./chunk-R4M6XCMU.js";
|
|
30
|
+
import {
|
|
31
|
+
init_tmux_status,
|
|
32
|
+
tmux_status_exports
|
|
33
|
+
} from "./chunk-DC4ZD76Y.js";
|
|
30
34
|
import {
|
|
31
35
|
employees_exports,
|
|
32
36
|
init_employees,
|
|
@@ -191,7 +195,8 @@ async function pollIdleEmployees(deps, lastNudge) {
|
|
|
191
195
|
const lastMs = lastNudge.get(entry.windowName) ?? 0;
|
|
192
196
|
if (state !== "idle") continue;
|
|
193
197
|
if (now - lastMs < IDLE_NUDGE_DEDUP_MS) continue;
|
|
194
|
-
const
|
|
198
|
+
const employeeScope = entry.windowName.includes("-") ? entry.windowName.slice(entry.windowName.indexOf("-") + 1) : null;
|
|
199
|
+
const task = await deps.queryOpenTask(entry.agentId, employeeScope);
|
|
195
200
|
if (!task) continue;
|
|
196
201
|
if (shouldNudgeEmployee(state, true, lastMs, now, IDLE_NUDGE_DEDUP_MS)) {
|
|
197
202
|
deps.sendIntercom(entry.windowName);
|
|
@@ -436,9 +441,9 @@ function createIdleNudgeRealDeps(getClient) {
|
|
|
436
441
|
const { getSessionState } = (init_tmux_routing(), __toCommonJS(tmux_routing_exports));
|
|
437
442
|
return getSessionState(sessionName);
|
|
438
443
|
},
|
|
439
|
-
queryOpenTask: async (agentId) => {
|
|
444
|
+
queryOpenTask: async (agentId, sessionScope) => {
|
|
440
445
|
const client = getClient();
|
|
441
|
-
const doScope = sessionScopeFilter(
|
|
446
|
+
const doScope = sessionScopeFilter(sessionScope ?? void 0);
|
|
442
447
|
const result = await client.execute({
|
|
443
448
|
sql: `SELECT id, title, priority FROM tasks
|
|
444
449
|
WHERE assigned_to = ? AND status IN ('open', 'in_progress')${doScope.sql}
|
|
@@ -593,7 +598,7 @@ async function pollOrphanedTasks(deps, nowMs = Date.now()) {
|
|
|
593
598
|
if (!shouldAutoWake({
|
|
594
599
|
agentId,
|
|
595
600
|
hasRunningSession: liveAgents.has(agentId),
|
|
596
|
-
lastSpawnMs: _autoWakeLastSpawn.get(
|
|
601
|
+
lastSpawnMs: _autoWakeLastSpawn.get(key) ?? 0,
|
|
597
602
|
nowMs,
|
|
598
603
|
cooldownMs: AUTO_WAKE_COOLDOWN_MS,
|
|
599
604
|
runningInstances: liveAgentCounts.get(agentId) ?? 0,
|
|
@@ -631,7 +636,7 @@ async function pollOrphanedTasks(deps, nowMs = Date.now()) {
|
|
|
631
636
|
);
|
|
632
637
|
continue;
|
|
633
638
|
}
|
|
634
|
-
_autoWakeLastSpawn.set(
|
|
639
|
+
_autoWakeLastSpawn.set(key, nowMs);
|
|
635
640
|
_autoWakeTaskRetries.set(topTask.taskId, retries + 1);
|
|
636
641
|
woken.push(agentId);
|
|
637
642
|
} catch (err) {
|
|
@@ -704,11 +709,14 @@ function createStuckTaskRealDeps(getClient) {
|
|
|
704
709
|
},
|
|
705
710
|
queryInProgressTasks: async () => {
|
|
706
711
|
const client = getClient();
|
|
712
|
+
const { loadDeviceId } = await import("./lib/license.js");
|
|
713
|
+
const deviceId = loadDeviceId();
|
|
707
714
|
const result = await client.execute({
|
|
708
715
|
sql: `SELECT id, assigned_to, session_scope, updated_at FROM tasks
|
|
709
716
|
WHERE status = 'in_progress'
|
|
717
|
+
AND (device_id = ? OR device_id IS NULL)
|
|
710
718
|
ORDER BY updated_at ASC`,
|
|
711
|
-
args: []
|
|
719
|
+
args: [deviceId]
|
|
712
720
|
});
|
|
713
721
|
return result.rows.map((r) => ({
|
|
714
722
|
taskId: String(r.id),
|
|
@@ -718,11 +726,16 @@ function createStuckTaskRealDeps(getClient) {
|
|
|
718
726
|
}));
|
|
719
727
|
},
|
|
720
728
|
markTaskBlocked: async (taskId, reason) => {
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
729
|
+
try {
|
|
730
|
+
const { updateTask } = (init_tasks(), __toCommonJS(tasks_exports));
|
|
731
|
+
await updateTask({ taskId, status: "blocked", result: reason });
|
|
732
|
+
} catch {
|
|
733
|
+
const client = getClient();
|
|
734
|
+
await client.execute({
|
|
735
|
+
sql: `UPDATE tasks SET status = 'blocked', result = ?, updated_at = ? WHERE id = ?`,
|
|
736
|
+
args: [reason, (/* @__PURE__ */ new Date()).toISOString(), taskId]
|
|
737
|
+
});
|
|
738
|
+
}
|
|
726
739
|
},
|
|
727
740
|
parseAgentFromSession: (sessionName) => {
|
|
728
741
|
const { baseAgentName } = (init_employees(), __toCommonJS(employees_exports));
|
|
@@ -773,11 +786,16 @@ function createAutoWakeRealDeps(getClient, projectDir) {
|
|
|
773
786
|
return ensureEmployee(agentName, scope, projectDir, { autoInstance: true, maxAutoInstances: 3 });
|
|
774
787
|
},
|
|
775
788
|
markTaskBlocked: async (taskId, reason) => {
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
789
|
+
try {
|
|
790
|
+
const { updateTask } = (init_tasks(), __toCommonJS(tasks_exports));
|
|
791
|
+
await updateTask({ taskId, status: "blocked", result: reason });
|
|
792
|
+
} catch {
|
|
793
|
+
const client = getClient();
|
|
794
|
+
await client.execute({
|
|
795
|
+
sql: `UPDATE tasks SET status = 'blocked', result = ?, updated_at = ? WHERE id = ?`,
|
|
796
|
+
args: [reason, (/* @__PURE__ */ new Date()).toISOString(), taskId]
|
|
797
|
+
});
|
|
798
|
+
}
|
|
781
799
|
},
|
|
782
800
|
parseAgentFromSession: (sessionName) => {
|
|
783
801
|
const { baseAgentName } = (init_employees(), __toCommonJS(employees_exports));
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deactivateBehavior,
|
|
3
3
|
init_behaviors
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-N2ZX27ID.js";
|
|
5
5
|
import {
|
|
6
6
|
getActiveAgent
|
|
7
7
|
} from "./chunk-TCOTFMDP.js";
|
|
8
8
|
import {
|
|
9
9
|
getClient,
|
|
10
10
|
init_database
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2G6QGXVX.js";
|
|
12
12
|
import {
|
|
13
13
|
canCoordinate,
|
|
14
14
|
init_employees
|
|
@@ -951,7 +951,7 @@ function splitAtSentences(text, maxChunkSize) {
|
|
|
951
951
|
}
|
|
952
952
|
async function main(argv = process.argv.slice(2)) {
|
|
953
953
|
const flags = parseFlags(argv);
|
|
954
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
954
|
+
const { fastDbInit } = await import("./fast-db-init-Z67ITX23.js");
|
|
955
955
|
const client = await fastDbInit();
|
|
956
956
|
const report = await runAudit(client, flags);
|
|
957
957
|
console.log(formatReport(report, flags));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_session_kill_telemetry,
|
|
3
3
|
recordSessionKill
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-K7W7UJ6Z.js";
|
|
5
5
|
import {
|
|
6
6
|
init_notifications,
|
|
7
7
|
init_task_scope,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
sessionScopeFilter,
|
|
10
10
|
verifyPaneAtCapacity,
|
|
11
11
|
writeNotification
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FQZY4M45.js";
|
|
13
13
|
import {
|
|
14
14
|
init_session_registry,
|
|
15
15
|
listSessions
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
getClient,
|
|
23
23
|
init_database
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-2G6QGXVX.js";
|
|
25
25
|
import {
|
|
26
26
|
init_employees,
|
|
27
27
|
isCoordinatorName
|