@askexenow/exe-os 0.9.197 → 0.9.199
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/deploy/compose/cloudflared/config.yml.example +3 -0
- package/deploy/compose/docker-compose.yml +2 -2
- package/deploy/compose/init-db.sql +4 -0
- package/deploy/stack-manifests/v0.9.json +10 -5
- package/dist/{backfill-metadata-KYCN4I7C.js → backfill-metadata-RL7T4XGY.js} +1 -1
- package/dist/bin/agentic-ontology-backfill.js +1 -1
- package/dist/bin/agentic-reflection-backfill.js +1 -1
- package/dist/bin/agentic-semantic-label.js +1 -1
- package/dist/bin/backfill-conversations.js +1 -1
- package/dist/bin/backfill-responses.js +1 -1
- package/dist/bin/backfill-vectors.js +2 -2
- package/dist/bin/bulk-sync-postgres.js +1 -1
- package/dist/bin/cleanup-stale-review-tasks.js +2 -2
- package/dist/bin/cli.js +10 -10
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +1 -1
- package/dist/bin/exe-boot.js +4 -4
- package/dist/bin/exe-call.js +1 -1
- package/dist/bin/exe-dispatch.js +2 -2
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +2 -2
- package/dist/bin/exe-forget.js +3 -3
- package/dist/bin/exe-gateway.js +4 -4
- package/dist/bin/exe-heartbeat.js +2 -2
- package/dist/bin/exe-kill.js +3 -3
- package/dist/bin/exe-launch-agent.js +3 -9
- package/dist/bin/exe-new-employee.js +2 -2
- package/dist/bin/exe-pending-messages.js +3 -3
- package/dist/bin/exe-pending-notifications.js +2 -2
- package/dist/bin/exe-pending-reviews.js +2 -2
- package/dist/bin/exe-rename.js +1 -1
- package/dist/bin/exe-review.js +3 -3
- package/dist/bin/exe-search.js +2 -2
- package/dist/bin/exe-session-cleanup.js +5 -5
- package/dist/bin/exe-start-codex.js +2 -2
- package/dist/bin/exe-start-opencode.js +2 -2
- package/dist/bin/exe-status.js +3 -3
- package/dist/bin/exe-team.js +1 -1
- package/dist/bin/generate-hook-manifest.js +30 -0
- package/dist/bin/git-sweep.js +2 -2
- package/dist/bin/graph-backfill.js +1 -1
- package/dist/bin/graph-export.js +2 -2
- package/dist/bin/import-history.js +1 -1
- package/dist/bin/install.js +3 -3
- package/dist/bin/intercom-check.js +3 -3
- package/dist/bin/scan-tasks.js +2 -2
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +1 -1
- package/dist/bin/stack-update.js +1 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/browser-sanitizer-Q3GWRYKI.js +229 -0
- package/dist/browser-session-store-TSD4PCY7.js +232 -0
- package/dist/{capacity-monitor-H7D43IUQ.js → capacity-monitor-2TRPP3AX.js} +2 -2
- package/dist/{catchup-brief-PTVQRBQK.js → catchup-brief-74ORL525.js} +3 -3
- package/dist/{chunk-BM4X3WHU.js → chunk-2DWKMJPE.js} +1 -1
- package/dist/{chunk-EMUQSTJL.js → chunk-2HEXCZGP.js} +1 -1
- package/dist/{chunk-HX4ULQ3E.js → chunk-5YVGHP2B.js} +11 -11
- package/dist/{chunk-5RT7IBY4.js → chunk-6BJ5GZD4.js} +3 -3
- package/dist/{chunk-BUN6JIDP.js → chunk-ACOQS4ZL.js} +1 -1
- package/dist/{chunk-HH4UGDJH.js → chunk-CGAYSKQF.js} +2 -2
- package/dist/{chunk-ADI4Z63O.js → chunk-DNEOEKWA.js} +2 -2
- package/dist/{chunk-7JCK6TXX.js → chunk-FDD7KX7Q.js} +39 -3
- package/dist/{chunk-7AJST6LP.js → chunk-FXVTLBBA.js} +1 -1
- package/dist/{chunk-CGDA6NJI.js → chunk-IFFVONU6.js} +1 -1
- package/dist/{chunk-VGBQKQHJ.js → chunk-JDGCEOT4.js} +1 -1
- package/dist/{chunk-2EVDBTCZ.js → chunk-JDHB6I4O.js} +1 -1
- package/dist/{chunk-FL4PEEWL.js → chunk-JQLWMZZJ.js} +1 -1
- package/dist/{chunk-4F4SOCKN.js → chunk-JRLSQFIE.js} +44 -44
- package/dist/{chunk-34ENR4JM.js → chunk-KRYEHI4V.js} +2 -2
- package/dist/{chunk-T5U27Y4H.js → chunk-M7NGABPF.js} +5 -5
- package/dist/{chunk-WP6P3LSI.js → chunk-MABQMUCQ.js} +9 -26
- package/dist/chunk-MNNWWEVJ.js +58 -0
- package/dist/{chunk-LLEB3QLI.js → chunk-MWGAC2ER.js} +1 -1
- package/dist/{chunk-UTDZUTRN.js → chunk-OF6TXNOC.js} +1 -1
- package/dist/{chunk-HH2QED73.js → chunk-OYU7TCBG.js} +1 -1
- package/dist/{chunk-UTUYZCQA.js → chunk-PHIQW2IU.js} +3 -3
- package/dist/{chunk-FXYOH3NG.js → chunk-RUKOGGQG.js} +1 -1
- package/dist/{chunk-FC3U23FN.js → chunk-WSYFZZCP.js} +2 -2
- package/dist/{chunk-QCNSCSCH.js → chunk-YZIUQ77U.js} +2 -2
- package/dist/{chunk-IUC2332K.js → chunk-ZAF4GJTD.js} +4 -4
- package/dist/{chunk-Q4WJJBOP.js → chunk-ZLP5TNRU.js} +1 -1
- package/dist/{crm-webhook-LRLN55LB.js → crm-webhook-OFWPEK33.js} +2 -2
- package/dist/{cto-delegation-gate-2FZN5SUY.js → cto-delegation-gate-7PGS5IN4.js} +1 -1
- package/dist/{daemon-orchestration-N5GPEP4F.js → daemon-orchestration-MP3PPX7Q.js} +3 -3
- package/dist/{exe-export-4ZJTQRRE.js → exe-export-QMGWH3PL.js} +1 -1
- package/dist/{exe-import-JI3FTSWZ.js → exe-import-7NNKSCKI.js} +1 -1
- package/dist/{fast-db-init-URP3KJAE.js → fast-db-init-DAZZ7ZUP.js} +1 -1
- package/dist/gateway/index.js +5 -5
- package/dist/{git-task-sweep-GPPNL2DK.js → git-task-sweep-SLANXCSW.js} +2 -2
- package/dist/hooks/bug-report-worker.js +3 -3
- package/dist/hooks/codex-stop-task-finalizer.js +3 -3
- package/dist/hooks/commit-complete.js +4 -4
- package/dist/hooks/error-recall.js +2 -2
- package/dist/hooks/ingest.js +2 -2
- package/dist/hooks/instructions-loaded.js +1 -1
- package/dist/hooks/manifest.json +25 -0
- package/dist/hooks/notification.js +1 -1
- package/dist/hooks/post-compact.js +2 -2
- package/dist/hooks/post-tool-combined.js +2 -2
- package/dist/hooks/pre-compact.js +3 -3
- package/dist/hooks/pre-tool-use.js +6 -6
- package/dist/hooks/prompt-submit.js +8 -8
- package/dist/hooks/session-end.js +18 -10
- package/dist/hooks/session-start.js +17 -4
- package/dist/hooks/stop.js +5 -5
- package/dist/hooks/subagent-stop.js +2 -2
- package/dist/hooks/summary-worker.js +5 -5
- package/dist/index.js +10 -10
- package/dist/{installer-4SH2HTIU.js → installer-CWKEI7SE.js} +2 -2
- package/dist/{installer-BTOQSNZI.js → installer-DWVZFKAH.js} +4 -4
- package/dist/{installer-MWOEIXKV.js → installer-GSA2KOSE.js} +2 -2
- package/dist/lib/consolidation.js +2 -2
- package/dist/lib/embed-worker.js +81 -14
- package/dist/lib/employee-templates.js +1 -1
- package/dist/lib/exe-daemon.js +121 -69
- package/dist/lib/hybrid-search.js +2 -2
- package/dist/lib/messaging.js +2 -2
- package/dist/lib/schedules.js +2 -2
- package/dist/lib/store.js +1 -1
- package/dist/lib/tasks.js +2 -2
- package/dist/lib/tmux-routing.js +1 -1
- package/dist/mcp/register-tools.js +26 -26
- package/dist/mcp/server.js +29 -29
- package/dist/mcp/tools/create-task.js +3 -3
- package/dist/mcp/tools/list-tasks.js +3 -3
- package/dist/mcp/tools/send-message.js +3 -3
- package/dist/mcp/tools/update-task.js +3 -3
- package/dist/{notifications-GENT3AWZ.js → notifications-WYNI5OG6.js} +1 -1
- package/dist/{orchestrator-A72IFTWK.js → orchestrator-FRFCMLW3.js} +2 -2
- package/dist/{reranker-JJRY3V3V.js → reranker-2ZWUZRUF.js} +1 -1
- package/dist/{review-polling-UJ4P3BIG.js → review-polling-ADP5YFHW.js} +2 -2
- package/dist/runtime/index.js +11 -11
- package/dist/{session-events-GWEVYXPJ.js → session-events-JA3MCMZK.js} +2 -2
- package/dist/{session-scope-DKE6OPV5.js → session-scope-LXQKQDIS.js} +1 -1
- package/dist/{setup-wizard-B4WDA4KT.js → setup-wizard-GRR4F4TX.js} +1 -1
- package/dist/{stack-update-PI2TWEGS.js → stack-update-C4BAPLXJ.js} +1 -1
- package/dist/{task-enforcement-QYS2QEEO.js → task-enforcement-KSLBFILH.js} +1 -1
- package/dist/{task-scope-OS66ZD7O.js → task-scope-AI62AIPT.js} +1 -1
- package/dist/{tasks-crud-DJH4NZC2.js → tasks-crud-IEOK55IV.js} +1 -1
- package/dist/{tasks-review-Z6PA4AF5.js → tasks-review-ID7V6RSR.js} +1 -1
- package/dist/tui/App.js +8 -8
- package/dist/{tui-data-JI4URSHX.js → tui-data-HIFVW2PE.js} +1 -1
- package/dist/{worker-gate-DIILYSRZ.js → worker-gate-F3L7XDMJ.js} +1 -1
- package/dist/{workflow-engine-PJ5YSMRL.js → workflow-engine-H5KTDDJG.js} +2 -2
- package/package.json +3 -3
- package/release-notes.json +201 -207
- package/dist/chunk-WZTQUBIE.js +0 -125
- package/dist/{chunk-42QSXHKN.js → chunk-4X7CMJDN.js} +0 -0
- package/dist/{chunk-ZGPURQ4J.js → chunk-54MZI4PK.js} +0 -0
- package/dist/{chunk-TF2BZTXF.js → chunk-7WUBXLK2.js} +3 -3
- /package/dist/{chunk-SSRRHKIO.js → chunk-MQLMIY6U.js} +0 -0
- /package/dist/{chunk-M4UP7VWO.js → chunk-NF4AEKQK.js} +0 -0
- /package/dist/{chunk-LZU4HY4C.js → chunk-XNXTN5XZ.js} +0 -0
- /package/dist/{core-memory-UHWYIN2A.js → core-memory-VQKCHGFX.js} +0 -0
- /package/dist/{exe-key-4EUOGKBN.js → exe-key-QZ5GWV6D.js} +0 -0
- /package/dist/{skill-refinement-2U2UCV2H.js → skill-refinement-3UVLBCZD.js} +0 -0
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getCachedLicenseGate
|
|
3
|
-
} from "./chunk-PLNYW6PA.js";
|
|
4
|
-
import {
|
|
5
|
-
getToolUsageStats
|
|
6
|
-
} from "./chunk-AFJWUI3Y.js";
|
|
7
|
-
import {
|
|
8
|
-
AUTO_WAKE_MAX_RETRIES
|
|
9
|
-
} from "./chunk-7JCK6TXX.js";
|
|
10
|
-
import {
|
|
11
|
-
getToolCapabilityIndex
|
|
12
|
-
} from "./chunk-GHCVD7WV.js";
|
|
13
1
|
import {
|
|
14
2
|
isRerankerAvailable,
|
|
15
3
|
rerankWithScores
|
|
16
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MNNWWEVJ.js";
|
|
17
5
|
import {
|
|
18
6
|
getEntityByName,
|
|
19
7
|
getEntityNeighbors,
|
|
@@ -22,13 +10,25 @@ import {
|
|
|
22
10
|
getRelationships,
|
|
23
11
|
searchEntities
|
|
24
12
|
} from "./chunk-KH5Y6RR4.js";
|
|
13
|
+
import {
|
|
14
|
+
listRecentSessionEvents
|
|
15
|
+
} from "./chunk-JQLWMZZJ.js";
|
|
16
|
+
import {
|
|
17
|
+
getToolUsageStats
|
|
18
|
+
} from "./chunk-AFJWUI3Y.js";
|
|
19
|
+
import {
|
|
20
|
+
AUTO_WAKE_MAX_RETRIES
|
|
21
|
+
} from "./chunk-FDD7KX7Q.js";
|
|
22
|
+
import {
|
|
23
|
+
getCachedLicenseGate
|
|
24
|
+
} from "./chunk-PLNYW6PA.js";
|
|
25
|
+
import {
|
|
26
|
+
getToolCapabilityIndex
|
|
27
|
+
} from "./chunk-GHCVD7WV.js";
|
|
25
28
|
import {
|
|
26
29
|
isToolAllowed,
|
|
27
30
|
isToolAllowedForPlan
|
|
28
31
|
} from "./chunk-E6ORBQHP.js";
|
|
29
|
-
import {
|
|
30
|
-
listRecentSessionEvents
|
|
31
|
-
} from "./chunk-FL4PEEWL.js";
|
|
32
32
|
import {
|
|
33
33
|
analyzeBlastRadius,
|
|
34
34
|
buildCodeContextIndex,
|
|
@@ -52,7 +52,10 @@ import {
|
|
|
52
52
|
} from "./chunk-DH65L4XI.js";
|
|
53
53
|
import {
|
|
54
54
|
createOrRefreshResumeTask
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-ZLP5TNRU.js";
|
|
56
|
+
import {
|
|
57
|
+
registerListReminders
|
|
58
|
+
} from "./chunk-K6K55GMZ.js";
|
|
56
59
|
import {
|
|
57
60
|
registerCompleteReminder
|
|
58
61
|
} from "./chunk-5XAGTHF2.js";
|
|
@@ -61,22 +64,19 @@ import {
|
|
|
61
64
|
} from "./chunk-FBTIOBF6.js";
|
|
62
65
|
import {
|
|
63
66
|
registerSendMessage
|
|
64
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-MWGAC2ER.js";
|
|
65
68
|
import {
|
|
66
69
|
registerCreateTask
|
|
67
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-PHIQW2IU.js";
|
|
68
71
|
import {
|
|
69
72
|
registerListTasks
|
|
70
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-JDGCEOT4.js";
|
|
71
74
|
import {
|
|
72
75
|
registerUpdateTask
|
|
73
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-YZIUQ77U.js";
|
|
74
77
|
import {
|
|
75
78
|
registerCreateReminder
|
|
76
79
|
} from "./chunk-WATDOTGK.js";
|
|
77
|
-
import {
|
|
78
|
-
registerListReminders
|
|
79
|
-
} from "./chunk-K6K55GMZ.js";
|
|
80
80
|
import {
|
|
81
81
|
completeReminder,
|
|
82
82
|
createReminder,
|
|
@@ -100,10 +100,10 @@ import {
|
|
|
100
100
|
import {
|
|
101
101
|
createSchedule,
|
|
102
102
|
parseHumanCron
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-RUKOGGQG.js";
|
|
104
104
|
import {
|
|
105
105
|
status
|
|
106
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-KRYEHI4V.js";
|
|
107
107
|
import {
|
|
108
108
|
getAgentSpend
|
|
109
109
|
} from "./chunk-OO5EWGC6.js";
|
|
@@ -122,7 +122,7 @@ import {
|
|
|
122
122
|
fixShards,
|
|
123
123
|
formatReport,
|
|
124
124
|
runAudit
|
|
125
|
-
} from "./chunk-
|
|
125
|
+
} from "./chunk-WSYFZZCP.js";
|
|
126
126
|
import {
|
|
127
127
|
runHealthCheck
|
|
128
128
|
} from "./chunk-J73N5EJ6.js";
|
|
@@ -133,7 +133,7 @@ import {
|
|
|
133
133
|
} from "./chunk-46Q3LLXC.js";
|
|
134
134
|
import {
|
|
135
135
|
renderClientCOOTemplate
|
|
136
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-2HEXCZGP.js";
|
|
137
137
|
import {
|
|
138
138
|
deactivateGlobalProcedure,
|
|
139
139
|
loadGlobalProcedures,
|
|
@@ -166,7 +166,7 @@ import {
|
|
|
166
166
|
groupMemories,
|
|
167
167
|
runConsolidation,
|
|
168
168
|
selectUnconsolidated
|
|
169
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-JDHB6I4O.js";
|
|
170
170
|
import {
|
|
171
171
|
embed
|
|
172
172
|
} from "./chunk-KTJ57PVS.js";
|
|
@@ -177,17 +177,17 @@ import {
|
|
|
177
177
|
} from "./chunk-T5YT64SZ.js";
|
|
178
178
|
import {
|
|
179
179
|
updateTask
|
|
180
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-6BJ5GZD4.js";
|
|
181
181
|
import {
|
|
182
182
|
fastDbInit
|
|
183
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-NF4AEKQK.js";
|
|
184
184
|
import {
|
|
185
185
|
MAX_CONCURRENT_WORKERS
|
|
186
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-IFFVONU6.js";
|
|
187
187
|
import {
|
|
188
188
|
hybridSearch,
|
|
189
189
|
recentRecords
|
|
190
|
-
} from "./chunk-
|
|
190
|
+
} from "./chunk-ZAF4GJTD.js";
|
|
191
191
|
import {
|
|
192
192
|
attachDocumentMetadata,
|
|
193
193
|
flushBatch,
|
|
@@ -195,7 +195,7 @@ import {
|
|
|
195
195
|
reserveVersions,
|
|
196
196
|
vectorToBlob,
|
|
197
197
|
writeMemory
|
|
198
|
-
} from "./chunk-
|
|
198
|
+
} from "./chunk-4X7CMJDN.js";
|
|
199
199
|
import {
|
|
200
200
|
extractKeywords,
|
|
201
201
|
keywordsToString
|
|
@@ -210,7 +210,7 @@ import {
|
|
|
210
210
|
sessionScopeFilter,
|
|
211
211
|
updateTaskStatus,
|
|
212
212
|
writeCheckpoint
|
|
213
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-MABQMUCQ.js";
|
|
214
214
|
import {
|
|
215
215
|
listSessions
|
|
216
216
|
} from "./chunk-64WZEXXA.js";
|
|
@@ -238,15 +238,15 @@ import {
|
|
|
238
238
|
getAccountByName,
|
|
239
239
|
getDefaultAccount
|
|
240
240
|
} from "./chunk-YGAAZN3E.js";
|
|
241
|
-
import {
|
|
242
|
-
pushConversationToCRM
|
|
243
|
-
} from "./chunk-ONKIWA3R.js";
|
|
244
241
|
import {
|
|
245
242
|
createNewTrigger,
|
|
246
243
|
isScheduledTrigger,
|
|
247
244
|
loadTriggers,
|
|
248
245
|
sanitizeParam
|
|
249
|
-
} from "./chunk-
|
|
246
|
+
} from "./chunk-54MZI4PK.js";
|
|
247
|
+
import {
|
|
248
|
+
pushConversationToCRM
|
|
249
|
+
} from "./chunk-ONKIWA3R.js";
|
|
250
250
|
import {
|
|
251
251
|
EMPLOYEES_PATH,
|
|
252
252
|
addEmployee,
|
|
@@ -1557,7 +1557,7 @@ function registerMemory(server) {
|
|
|
1557
1557
|
if (action === "core_get" || action === "core_set" || action === "core_delete") {
|
|
1558
1558
|
const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-O433V5SV.js");
|
|
1559
1559
|
const { agentId } = getActiveAgent2();
|
|
1560
|
-
const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-
|
|
1560
|
+
const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-VQKCHGFX.js");
|
|
1561
1561
|
if (action === "core_get") {
|
|
1562
1562
|
const entries = await getCoreMemory(agentId);
|
|
1563
1563
|
const block = formatCoreMemoryBlock(entries);
|
|
@@ -2266,7 +2266,7 @@ function registerResumeEmployee(server) {
|
|
|
2266
2266
|
};
|
|
2267
2267
|
}
|
|
2268
2268
|
try {
|
|
2269
|
-
const { isTmuxSessionAlive } = await import("./tasks-crud-
|
|
2269
|
+
const { isTmuxSessionAlive } = await import("./tasks-crud-IEOK55IV.js");
|
|
2270
2270
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
2271
2271
|
for (const row of openTasks.rows) {
|
|
2272
2272
|
const status2 = String(row.status);
|
|
@@ -5433,7 +5433,7 @@ async function getAgentSessionLoad() {
|
|
|
5433
5433
|
return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
|
|
5434
5434
|
}
|
|
5435
5435
|
const { getClient: getClient2 } = await import("./lib/database.js");
|
|
5436
|
-
const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-
|
|
5436
|
+
const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-AI62AIPT.js");
|
|
5437
5437
|
const client = getClient2();
|
|
5438
5438
|
const scope = sessionScopeFilter2();
|
|
5439
5439
|
for (const s of liveAgentSessions) {
|
|
@@ -8028,7 +8028,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
|
|
|
8028
8028
|
}
|
|
8029
8029
|
try {
|
|
8030
8030
|
const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
|
|
8031
|
-
const { resolvePackageRoot } = await import("./installer-
|
|
8031
|
+
const { resolvePackageRoot } = await import("./installer-CWKEI7SE.js");
|
|
8032
8032
|
generateSessionWrappers(resolvePackageRoot());
|
|
8033
8033
|
} catch {
|
|
8034
8034
|
}
|
|
@@ -9529,7 +9529,7 @@ function registerWorkflowTool(server) {
|
|
|
9529
9529
|
getWorkflowInstance,
|
|
9530
9530
|
listWorkflowInstances,
|
|
9531
9531
|
approveWorkflowStep
|
|
9532
|
-
} = await import("./workflow-engine-
|
|
9532
|
+
} = await import("./workflow-engine-H5KTDDJG.js");
|
|
9533
9533
|
try {
|
|
9534
9534
|
switch (input.action) {
|
|
9535
9535
|
case "create_workflow": {
|
|
@@ -140,20 +140,20 @@ function createStackUpdatePlan(manifest, envRaw, targetVersion) {
|
|
|
140
140
|
breakingChanges: release.breakingChanges ?? []
|
|
141
141
|
};
|
|
142
142
|
}
|
|
143
|
-
var ASKEXE_GHCR_IMAGE = /^(?:ghcr\.io\/askexe|update\.askexe\.com\/askexe
|
|
143
|
+
var ASKEXE_GHCR_IMAGE = /^(?:ghcr\.io\/askexe|update\.askexe\.com\/askexe)\/[a-z0-9._/-]+(?::[^:@$/{]+|@sha256:[a-f0-9]{64})$/i;
|
|
144
144
|
function validatePinnedGhcrImage(image, label) {
|
|
145
145
|
const trimmed = image.trim().replace(/^['"]|['"]$/g, "");
|
|
146
146
|
if (!trimmed) return `${label} is empty`;
|
|
147
147
|
if (trimmed.includes("${")) return null;
|
|
148
|
-
if (!trimmed.startsWith("ghcr.io/askexe/") && !trimmed.startsWith("update.askexe.com/askexe/")
|
|
148
|
+
if (!trimmed.startsWith("ghcr.io/askexe/") && !trimmed.startsWith("update.askexe.com/askexe/")) return `${label} must use ghcr.io/askexe/* or update.askexe.com/askexe/*, got ${trimmed}`;
|
|
149
149
|
if (/:latest(?:$|[\s#])/.test(trimmed)) return `${label} must not use :latest (${trimmed})`;
|
|
150
|
-
if (!ASKEXE_GHCR_IMAGE.test(trimmed)) return `${label} must be pinned with an explicit tag or sha256 digest from ghcr.io/askexe or
|
|
150
|
+
if (!ASKEXE_GHCR_IMAGE.test(trimmed)) return `${label} must be pinned with an explicit tag or sha256 digest from ghcr.io/askexe or update.askexe.com/askexe, got ${trimmed}`;
|
|
151
151
|
return null;
|
|
152
152
|
}
|
|
153
153
|
function validateComposeImageLiteral(image, label) {
|
|
154
154
|
const trimmed = image.trim().replace(/^['"]|['"]$/g, "");
|
|
155
155
|
if (!trimmed) return `${label} is empty`;
|
|
156
|
-
if (trimmed.startsWith("ghcr.io/askexe/") || trimmed.startsWith("update.askexe.com/askexe/")
|
|
156
|
+
if (trimmed.startsWith("ghcr.io/askexe/") || trimmed.startsWith("update.askexe.com/askexe/")) return validatePinnedGhcrImage(trimmed, label);
|
|
157
157
|
if (/^(postgres|pgvector\/pgvector|clickhouse\/clickhouse-server|redis|nginx|postgrest\/postgrest|supabase\/gotrue):[^:]+$/i.test(trimmed)) return null;
|
|
158
158
|
return `${label} uses unsupported non-AskExe image ${trimmed}; customer app images must come from pinned update.askexe.com/askexe or ghcr.io/askexe images`;
|
|
159
159
|
}
|
|
@@ -628,7 +628,7 @@ async function runStackUpdate(options) {
|
|
|
628
628
|
const password = rest.join(":");
|
|
629
629
|
if (username && password) {
|
|
630
630
|
const sampleImage = Object.values(plan.release.services)[0]?.image ?? "";
|
|
631
|
-
const registry = sampleImage.startsWith("update.askexe.com") ? "update.askexe.com" :
|
|
631
|
+
const registry = sampleImage.startsWith("update.askexe.com") ? "update.askexe.com" : "ghcr.io";
|
|
632
632
|
creds = { registry, username, password };
|
|
633
633
|
console.log(`[stack-update] Using manual registry credentials for ${registry}.`);
|
|
634
634
|
}
|
|
@@ -360,7 +360,7 @@ async function createTaskCore(input) {
|
|
|
360
360
|
if (isCoordinatorSession) {
|
|
361
361
|
earlySessionScope = resolved;
|
|
362
362
|
} else {
|
|
363
|
-
const { getSessionProject } = await import("./session-scope-
|
|
363
|
+
const { getSessionProject } = await import("./session-scope-LXQKQDIS.js");
|
|
364
364
|
const sessionProject = getSessionProject(resolved);
|
|
365
365
|
if (sessionProject && sessionProject !== input.projectName) {
|
|
366
366
|
scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
|
|
@@ -788,7 +788,7 @@ async function updateTaskStatus(input) {
|
|
|
788
788
|
} catch {
|
|
789
789
|
}
|
|
790
790
|
try {
|
|
791
|
-
const { writeNotification: writeNotification2 } = await import("./notifications-
|
|
791
|
+
const { writeNotification: writeNotification2 } = await import("./notifications-WYNI5OG6.js");
|
|
792
792
|
await writeNotification2({
|
|
793
793
|
agentId: reviewer,
|
|
794
794
|
agentRole: isCoordinatorName(reviewer) ? "COO" : "manager",
|
|
@@ -963,7 +963,7 @@ ${input.result}` : `\u26A0\uFE0F ${warning}`;
|
|
|
963
963
|
}
|
|
964
964
|
if (input.status === "done" || input.status === "needs_review") {
|
|
965
965
|
try {
|
|
966
|
-
const { incrementSkillSuccess } = await import("./skill-refinement-
|
|
966
|
+
const { incrementSkillSuccess } = await import("./skill-refinement-3UVLBCZD.js");
|
|
967
967
|
await incrementSkillSuccess(
|
|
968
968
|
String(row.assigned_to),
|
|
969
969
|
row.project_name ? String(row.project_name) : null
|
|
@@ -2041,7 +2041,7 @@ async function verifyPaneAtCapacity(sessionName) {
|
|
|
2041
2041
|
reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
|
|
2042
2042
|
};
|
|
2043
2043
|
}
|
|
2044
|
-
const { isAtCapacity } = await import("./capacity-monitor-
|
|
2044
|
+
const { isAtCapacity } = await import("./capacity-monitor-2TRPP3AX.js");
|
|
2045
2045
|
if (!isAtCapacity(pane)) {
|
|
2046
2046
|
return {
|
|
2047
2047
|
atCapacity: false,
|
|
@@ -2213,26 +2213,9 @@ function sendIntercom(targetSession, opts) {
|
|
|
2213
2213
|
logIntercom(`COPY_MODE \u2192 ${targetSession} (exiting copy mode first)`);
|
|
2214
2214
|
transport.sendKeys(targetSession, "q");
|
|
2215
2215
|
}
|
|
2216
|
-
const
|
|
2217
|
-
const
|
|
2218
|
-
|
|
2219
|
-
try {
|
|
2220
|
-
const dispatchInfoPath = path5.join(SESSION_CACHE, `dispatch-info-${targetSession}.json`);
|
|
2221
|
-
if (existsSync5(dispatchInfoPath)) {
|
|
2222
|
-
const dispatchInfo = JSON.parse(readFileSync3(dispatchInfoPath, "utf-8"));
|
|
2223
|
-
if (dispatchInfo.runtime) actualRuntime = dispatchInfo.runtime;
|
|
2224
|
-
} else {
|
|
2225
|
-
actualRuntime = getAgentRuntime(agentName).runtime;
|
|
2226
|
-
}
|
|
2227
|
-
} catch {
|
|
2228
|
-
actualRuntime = getAgentRuntime(agentName).runtime;
|
|
2229
|
-
}
|
|
2230
|
-
if (actualRuntime === "codex" || actualRuntime === "opencode" || actualRuntime === "exe-agent") {
|
|
2231
|
-
const msg = "You have a new P0 task. Run list_tasks to find it.";
|
|
2232
|
-
transport.sendKeysLiteral(targetSession, msg);
|
|
2233
|
-
} else {
|
|
2234
|
-
transport.sendKeys(targetSession, "/exe-intercom");
|
|
2235
|
-
}
|
|
2216
|
+
const reason = opts?.reason ?? "nudge";
|
|
2217
|
+
const msg = reason === "completion" ? `An employee completed work. Run task(action='list', status='needs_review') to review it.` : `P0: You have a new task dispatched. Run task(action='list', status='open') to find it. Start immediately.`;
|
|
2218
|
+
transport.sendKeysLiteral(targetSession, msg);
|
|
2236
2219
|
const batched = recordDebounce(targetSession);
|
|
2237
2220
|
logIntercom(`DELIVERED \u2192 ${targetSession}${batched > 0 ? ` [${batched} nudges batched during debounce]` : ""} (fire-and-forget)`);
|
|
2238
2221
|
return "delivered";
|
|
@@ -2251,13 +2234,13 @@ function notifyParentExe(sessionKey) {
|
|
|
2251
2234
|
}
|
|
2252
2235
|
process.stderr.write(`[intercom] notifyParentExe \u2192 ${target}
|
|
2253
2236
|
`);
|
|
2254
|
-
const result = sendIntercom(target);
|
|
2237
|
+
const result = sendIntercom(target, { reason: "completion" });
|
|
2255
2238
|
if (result === "failed") {
|
|
2256
2239
|
const rootExe = resolveExeSession();
|
|
2257
2240
|
if (rootExe && rootExe !== target) {
|
|
2258
2241
|
process.stderr.write(`[intercom] notifyParentExe: dispatcher ${target} dead, falling back to root coordinator session ${rootExe}
|
|
2259
2242
|
`);
|
|
2260
|
-
const fallback = sendIntercom(rootExe);
|
|
2243
|
+
const fallback = sendIntercom(rootExe, { reason: "completion" });
|
|
2261
2244
|
return fallback !== "failed";
|
|
2262
2245
|
}
|
|
2263
2246
|
return false;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MODELS_DIR
|
|
3
|
+
} from "./chunk-4GXRETYL.js";
|
|
4
|
+
|
|
5
|
+
// src/lib/reranker.ts
|
|
6
|
+
import path from "path";
|
|
7
|
+
import { existsSync } from "fs";
|
|
8
|
+
var RERANKER_MODEL_FILE = "jina-reranker-v3-q4_k_m.gguf";
|
|
9
|
+
function isRerankerAvailable() {
|
|
10
|
+
return existsSync(path.join(MODELS_DIR, RERANKER_MODEL_FILE));
|
|
11
|
+
}
|
|
12
|
+
function getRerankerModelPath() {
|
|
13
|
+
return path.join(MODELS_DIR, RERANKER_MODEL_FILE);
|
|
14
|
+
}
|
|
15
|
+
async function disposeReranker() {
|
|
16
|
+
}
|
|
17
|
+
async function rerankWithScores(query, texts, topK) {
|
|
18
|
+
if (texts.length === 0) return [];
|
|
19
|
+
const { rerankViaWorker } = await import("./lib/exe-daemon.js");
|
|
20
|
+
const scored = await rerankViaWorker(query, texts, topK);
|
|
21
|
+
return scored.map((s) => ({
|
|
22
|
+
text: texts[s.index] ?? "",
|
|
23
|
+
score: s.score,
|
|
24
|
+
index: s.index
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
async function rerank(query, candidates, topK = 5) {
|
|
28
|
+
if (candidates.length === 0) return [];
|
|
29
|
+
if (candidates.length <= topK) return candidates;
|
|
30
|
+
const scored = await rerankWithScores(
|
|
31
|
+
query,
|
|
32
|
+
candidates.map((c) => c.raw_text),
|
|
33
|
+
topK
|
|
34
|
+
);
|
|
35
|
+
return scored.map((s) => candidates[s.index]);
|
|
36
|
+
}
|
|
37
|
+
async function rerankWithContext(query, candidates, topK) {
|
|
38
|
+
if (candidates.length === 0) return [];
|
|
39
|
+
const formattedTexts = candidates.map(
|
|
40
|
+
(c) => c.context ? `[${c.context}] ${c.text.slice(0, 460)}` : c.text.slice(0, 512)
|
|
41
|
+
);
|
|
42
|
+
const { rerankViaWorker } = await import("./lib/exe-daemon.js");
|
|
43
|
+
const scored = await rerankViaWorker(query, formattedTexts, topK);
|
|
44
|
+
return scored.map((s) => ({
|
|
45
|
+
text: candidates[s.index]?.text ?? "",
|
|
46
|
+
score: s.score,
|
|
47
|
+
index: s.index
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
isRerankerAvailable,
|
|
53
|
+
getRerankerModelPath,
|
|
54
|
+
disposeReranker,
|
|
55
|
+
rerankWithScores,
|
|
56
|
+
rerank,
|
|
57
|
+
rerankWithContext
|
|
58
|
+
};
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-MLXJ5EZG.js";
|
|
4
4
|
import {
|
|
5
5
|
createTask
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6BJ5GZD4.js";
|
|
7
7
|
import {
|
|
8
8
|
getActiveAgent
|
|
9
9
|
} from "./chunk-BDYUENC7.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
ensureEmployee,
|
|
12
12
|
logTaskDispatch,
|
|
13
13
|
resolveExeSession
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-MABQMUCQ.js";
|
|
15
15
|
import {
|
|
16
16
|
getLicenseSync
|
|
17
17
|
} from "./chunk-ZHINF5CG.js";
|
|
@@ -208,7 +208,7 @@ function registerCreateTask(server) {
|
|
|
208
208
|
let projectConflictOpts = {};
|
|
209
209
|
try {
|
|
210
210
|
const { getClient } = await import("./lib/database.js");
|
|
211
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
211
|
+
const { sessionScopeFilter } = await import("./task-scope-AI62AIPT.js");
|
|
212
212
|
const client = getClient();
|
|
213
213
|
const scope = sessionScopeFilter();
|
|
214
214
|
const existing = await client.execute({
|
|
@@ -849,7 +849,7 @@ function formatReport(report, flags) {
|
|
|
849
849
|
return lines.join("\n");
|
|
850
850
|
}
|
|
851
851
|
async function fixNullVectors() {
|
|
852
|
-
const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-
|
|
852
|
+
const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-F3L7XDMJ.js");
|
|
853
853
|
if (!tryAcquireWorkerSlot()) {
|
|
854
854
|
process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
|
|
855
855
|
await new Promise((r) => setTimeout(r, 5e3));
|
|
@@ -970,7 +970,7 @@ function splitAtSentences(text, maxChunkSize) {
|
|
|
970
970
|
}
|
|
971
971
|
async function main(argv = process.argv.slice(2)) {
|
|
972
972
|
const flags = parseFlags(argv);
|
|
973
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
973
|
+
const { fastDbInit } = await import("./fast-db-init-DAZZ7ZUP.js");
|
|
974
974
|
const client = await fastDbInit();
|
|
975
975
|
const report = await runAudit(client, flags);
|
|
976
976
|
console.log(formatReport(report, flags));
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
buildRawVisibilityFilter,
|
|
4
4
|
buildWikiScopeFilter,
|
|
5
5
|
searchMemories
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4X7CMJDN.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient
|
|
9
9
|
} from "./chunk-TGOJR5SS.js";
|
|
@@ -233,7 +233,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
233
233
|
let rerankerAvailable = false;
|
|
234
234
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
235
235
|
try {
|
|
236
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
236
|
+
const { isRerankerAvailable } = await import("./reranker-2ZWUZRUF.js");
|
|
237
237
|
rerankerAvailable = isRerankerAvailable();
|
|
238
238
|
} catch {
|
|
239
239
|
}
|
|
@@ -397,7 +397,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
397
397
|
try {
|
|
398
398
|
let rerankedRecords;
|
|
399
399
|
if (graphContextMap.size > 0) {
|
|
400
|
-
const { rerankWithContext } = await import("./reranker-
|
|
400
|
+
const { rerankWithContext } = await import("./reranker-2ZWUZRUF.js");
|
|
401
401
|
const candidates = merged.map((m) => ({
|
|
402
402
|
text: m.raw_text,
|
|
403
403
|
context: graphContextMap.get(m.id)
|
|
@@ -405,7 +405,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
405
405
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
406
406
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
407
407
|
} else {
|
|
408
|
-
const { rerank } = await import("./reranker-
|
|
408
|
+
const { rerank } = await import("./reranker-2ZWUZRUF.js");
|
|
409
409
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
410
410
|
}
|
|
411
411
|
if (rerankedRecords.length > 0) {
|
|
@@ -48,10 +48,10 @@ import {
|
|
|
48
48
|
shouldKillIdleSession,
|
|
49
49
|
shouldKillSession,
|
|
50
50
|
shouldNudgeEmployee
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-FDD7KX7Q.js";
|
|
52
52
|
import "./chunk-WRCETUYE.js";
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-6BJ5GZD4.js";
|
|
54
|
+
import "./chunk-MABQMUCQ.js";
|
|
55
55
|
import "./chunk-RN6XYY7U.js";
|
|
56
56
|
import "./chunk-QI4IXJN7.js";
|
|
57
57
|
import "./chunk-64WZEXXA.js";
|
package/dist/gateway/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
createSignupBot,
|
|
12
12
|
ensureCRMContact,
|
|
13
13
|
formatAlert
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-CGAYSKQF.js";
|
|
15
15
|
import {
|
|
16
16
|
WhatsAppAdapter
|
|
17
17
|
} from "../chunk-ECSNSHZ7.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
createCRMWebhookHandler,
|
|
35
35
|
parseTwentyWebhook
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-OYU7TCBG.js";
|
|
37
37
|
import {
|
|
38
38
|
BotRegistry,
|
|
39
39
|
BotRuntime,
|
|
@@ -56,8 +56,8 @@ import {
|
|
|
56
56
|
retryWithBackoff,
|
|
57
57
|
routeMessage,
|
|
58
58
|
validateGatewayConfig
|
|
59
|
-
} from "../chunk-
|
|
60
|
-
import "../chunk-
|
|
59
|
+
} from "../chunk-2DWKMJPE.js";
|
|
60
|
+
import "../chunk-OF6TXNOC.js";
|
|
61
61
|
import {
|
|
62
62
|
OllamaProvider
|
|
63
63
|
} from "../chunk-FWFFZGSC.js";
|
|
@@ -71,6 +71,7 @@ import {
|
|
|
71
71
|
getDefaultAccount,
|
|
72
72
|
loadAccounts
|
|
73
73
|
} from "../chunk-YGAAZN3E.js";
|
|
74
|
+
import "../chunk-54MZI4PK.js";
|
|
74
75
|
import {
|
|
75
76
|
createPerson,
|
|
76
77
|
findPersonByContact,
|
|
@@ -80,7 +81,6 @@ import {
|
|
|
80
81
|
pushGatewayEventToCRM,
|
|
81
82
|
pushInboundMessageToCRM
|
|
82
83
|
} from "../chunk-ONKIWA3R.js";
|
|
83
|
-
import "../chunk-ZGPURQ4J.js";
|
|
84
84
|
import "../chunk-MP2AFCGL.js";
|
|
85
85
|
import "../chunk-TGOJR5SS.js";
|
|
86
86
|
import "../chunk-RVSGXGWG.js";
|