@askexenow/exe-os 0.8.85 → 0.8.86
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/cleanup-stale-review-tasks.js +57 -19
- package/dist/bin/cli.js +507 -337
- package/dist/bin/exe-agent-config.js +242 -0
- package/dist/bin/exe-agent.js +3 -3
- package/dist/bin/exe-boot.js +344 -346
- package/dist/bin/exe-dispatch.js +375 -250
- package/dist/bin/exe-forget.js +5 -1
- package/dist/bin/exe-gateway.js +260 -135
- package/dist/bin/exe-healthcheck.js +133 -1
- package/dist/bin/exe-heartbeat.js +72 -31
- package/dist/bin/exe-link.js +25 -2
- package/dist/bin/exe-new-employee.js +22 -0
- package/dist/bin/exe-pending-messages.js +55 -17
- package/dist/bin/exe-pending-reviews.js +57 -19
- package/dist/bin/exe-search.js +6 -2
- package/dist/bin/exe-session-cleanup.js +260 -135
- package/dist/bin/exe-start-codex.js +2598 -0
- package/dist/bin/exe-start.sh +15 -3
- package/dist/bin/exe-status.js +57 -19
- package/dist/bin/git-sweep.js +391 -266
- package/dist/bin/install.js +22 -0
- package/dist/bin/scan-tasks.js +394 -269
- package/dist/bin/setup.js +47 -2
- package/dist/gateway/index.js +257 -132
- package/dist/hooks/bug-report-worker.js +242 -117
- package/dist/hooks/commit-complete.js +389 -264
- package/dist/hooks/error-recall.js +6 -2
- package/dist/hooks/ingest-worker.js +314 -193
- package/dist/hooks/post-compact.js +84 -46
- package/dist/hooks/pre-compact.js +272 -147
- package/dist/hooks/pre-tool-use.js +104 -66
- package/dist/hooks/prompt-submit.js +126 -66
- package/dist/hooks/session-end.js +277 -152
- package/dist/hooks/session-start.js +70 -28
- package/dist/hooks/stop.js +90 -52
- package/dist/hooks/subagent-stop.js +84 -46
- package/dist/hooks/summary-worker.js +175 -114
- package/dist/index.js +296 -171
- package/dist/lib/agent-config.js +167 -0
- package/dist/lib/cloud-sync.js +25 -2
- package/dist/lib/exe-daemon.js +338 -213
- package/dist/lib/hybrid-search.js +7 -2
- package/dist/lib/messaging.js +95 -39
- package/dist/lib/runtime-table.js +16 -0
- package/dist/lib/session-wrappers.js +22 -0
- package/dist/lib/tasks.js +242 -117
- package/dist/lib/tmux-routing.js +314 -189
- package/dist/mcp/server.js +573 -274
- package/dist/mcp/tools/create-task.js +260 -135
- package/dist/mcp/tools/list-tasks.js +68 -30
- package/dist/mcp/tools/send-message.js +100 -44
- package/dist/mcp/tools/update-task.js +123 -67
- package/dist/runtime/index.js +276 -151
- package/dist/tui/App.js +479 -354
- package/package.json +1 -1
- package/src/commands/exe/agent-config.md +27 -0
- package/src/commands/exe/cc-doctor.md +10 -0
|
@@ -1811,39 +1811,75 @@ var init_provider_table = __esm({
|
|
|
1811
1811
|
}
|
|
1812
1812
|
});
|
|
1813
1813
|
|
|
1814
|
-
// src/lib/
|
|
1815
|
-
|
|
1814
|
+
// src/lib/runtime-table.ts
|
|
1815
|
+
var RUNTIME_TABLE;
|
|
1816
|
+
var init_runtime_table = __esm({
|
|
1817
|
+
"src/lib/runtime-table.ts"() {
|
|
1818
|
+
"use strict";
|
|
1819
|
+
RUNTIME_TABLE = {
|
|
1820
|
+
codex: {
|
|
1821
|
+
binary: "codex",
|
|
1822
|
+
launchMode: "exec",
|
|
1823
|
+
autoApproveFlag: "--full-auto",
|
|
1824
|
+
inlineFlag: "--no-alt-screen",
|
|
1825
|
+
apiKeyEnv: "OPENAI_API_KEY",
|
|
1826
|
+
defaultModel: "gpt-5.4"
|
|
1827
|
+
}
|
|
1828
|
+
};
|
|
1829
|
+
}
|
|
1830
|
+
});
|
|
1831
|
+
|
|
1832
|
+
// src/lib/agent-config.ts
|
|
1833
|
+
import { readFileSync as readFileSync4, writeFileSync as writeFileSync2, existsSync as existsSync6, mkdirSync as mkdirSync2 } from "fs";
|
|
1816
1834
|
import path7 from "path";
|
|
1835
|
+
var AGENT_CONFIG_PATH, DEFAULT_MODELS;
|
|
1836
|
+
var init_agent_config = __esm({
|
|
1837
|
+
"src/lib/agent-config.ts"() {
|
|
1838
|
+
"use strict";
|
|
1839
|
+
init_config();
|
|
1840
|
+
init_runtime_table();
|
|
1841
|
+
AGENT_CONFIG_PATH = path7.join(EXE_AI_DIR, "agent-config.json");
|
|
1842
|
+
DEFAULT_MODELS = {
|
|
1843
|
+
claude: "claude-opus-4",
|
|
1844
|
+
codex: RUNTIME_TABLE.codex?.defaultModel ?? "gpt-5.4",
|
|
1845
|
+
opencode: "minimax-m2.7"
|
|
1846
|
+
};
|
|
1847
|
+
}
|
|
1848
|
+
});
|
|
1849
|
+
|
|
1850
|
+
// src/lib/intercom-queue.ts
|
|
1851
|
+
import { readFileSync as readFileSync5, writeFileSync as writeFileSync3, renameSync as renameSync3, existsSync as existsSync7, mkdirSync as mkdirSync3 } from "fs";
|
|
1852
|
+
import path8 from "path";
|
|
1817
1853
|
import os6 from "os";
|
|
1818
1854
|
var QUEUE_PATH, TTL_MS, INTERCOM_LOG;
|
|
1819
1855
|
var init_intercom_queue = __esm({
|
|
1820
1856
|
"src/lib/intercom-queue.ts"() {
|
|
1821
1857
|
"use strict";
|
|
1822
|
-
QUEUE_PATH =
|
|
1858
|
+
QUEUE_PATH = path8.join(os6.homedir(), ".exe-os", "intercom-queue.json");
|
|
1823
1859
|
TTL_MS = 60 * 60 * 1e3;
|
|
1824
|
-
INTERCOM_LOG =
|
|
1860
|
+
INTERCOM_LOG = path8.join(os6.homedir(), ".exe-os", "intercom.log");
|
|
1825
1861
|
}
|
|
1826
1862
|
});
|
|
1827
1863
|
|
|
1828
1864
|
// src/lib/license.ts
|
|
1829
|
-
import { readFileSync as
|
|
1865
|
+
import { readFileSync as readFileSync6, writeFileSync as writeFileSync4, existsSync as existsSync8, mkdirSync as mkdirSync4 } from "fs";
|
|
1830
1866
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
1831
|
-
import
|
|
1867
|
+
import path9 from "path";
|
|
1832
1868
|
import { jwtVerify, importSPKI } from "jose";
|
|
1833
1869
|
var LICENSE_PATH, CACHE_PATH, DEVICE_ID_PATH;
|
|
1834
1870
|
var init_license = __esm({
|
|
1835
1871
|
"src/lib/license.ts"() {
|
|
1836
1872
|
"use strict";
|
|
1837
1873
|
init_config();
|
|
1838
|
-
LICENSE_PATH =
|
|
1839
|
-
CACHE_PATH =
|
|
1840
|
-
DEVICE_ID_PATH =
|
|
1874
|
+
LICENSE_PATH = path9.join(EXE_AI_DIR, "license.key");
|
|
1875
|
+
CACHE_PATH = path9.join(EXE_AI_DIR, "license-cache.json");
|
|
1876
|
+
DEVICE_ID_PATH = path9.join(EXE_AI_DIR, "device-id");
|
|
1841
1877
|
}
|
|
1842
1878
|
});
|
|
1843
1879
|
|
|
1844
1880
|
// src/lib/plan-limits.ts
|
|
1845
|
-
import { readFileSync as
|
|
1846
|
-
import
|
|
1881
|
+
import { readFileSync as readFileSync7, existsSync as existsSync9 } from "fs";
|
|
1882
|
+
import path10 from "path";
|
|
1847
1883
|
var CACHE_PATH2;
|
|
1848
1884
|
var init_plan_limits = __esm({
|
|
1849
1885
|
"src/lib/plan-limits.ts"() {
|
|
@@ -1852,12 +1888,12 @@ var init_plan_limits = __esm({
|
|
|
1852
1888
|
init_employees();
|
|
1853
1889
|
init_license();
|
|
1854
1890
|
init_config();
|
|
1855
|
-
CACHE_PATH2 =
|
|
1891
|
+
CACHE_PATH2 = path10.join(EXE_AI_DIR, "license-cache.json");
|
|
1856
1892
|
}
|
|
1857
1893
|
});
|
|
1858
1894
|
|
|
1859
1895
|
// src/lib/tmux-routing.ts
|
|
1860
|
-
import
|
|
1896
|
+
import path11 from "path";
|
|
1861
1897
|
import os7 from "os";
|
|
1862
1898
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
1863
1899
|
function extractRootExe(name) {
|
|
@@ -1881,20 +1917,22 @@ var init_tmux_routing = __esm({
|
|
|
1881
1917
|
init_cc_agent_support();
|
|
1882
1918
|
init_mcp_prefix();
|
|
1883
1919
|
init_provider_table();
|
|
1920
|
+
init_agent_config();
|
|
1921
|
+
init_runtime_table();
|
|
1884
1922
|
init_intercom_queue();
|
|
1885
1923
|
init_plan_limits();
|
|
1886
1924
|
init_employees();
|
|
1887
|
-
SPAWN_LOCK_DIR =
|
|
1888
|
-
SESSION_CACHE =
|
|
1889
|
-
INTERCOM_LOG2 =
|
|
1890
|
-
DEBOUNCE_FILE =
|
|
1925
|
+
SPAWN_LOCK_DIR = path11.join(os7.homedir(), ".exe-os", "spawn-locks");
|
|
1926
|
+
SESSION_CACHE = path11.join(os7.homedir(), ".exe-os", "session-cache");
|
|
1927
|
+
INTERCOM_LOG2 = path11.join(os7.homedir(), ".exe-os", "intercom.log");
|
|
1928
|
+
DEBOUNCE_FILE = path11.join(SESSION_CACHE, "intercom-debounce.json");
|
|
1891
1929
|
DEBOUNCE_CLEANUP_AGE_MS = 5 * 60 * 1e3;
|
|
1892
1930
|
}
|
|
1893
1931
|
});
|
|
1894
1932
|
|
|
1895
1933
|
// src/lib/tasks-review.ts
|
|
1896
|
-
import
|
|
1897
|
-
import { existsSync as
|
|
1934
|
+
import path12 from "path";
|
|
1935
|
+
import { existsSync as existsSync10, readdirSync as readdirSync3, unlinkSync as unlinkSync3 } from "fs";
|
|
1898
1936
|
async function listPendingReviews(limit, sessionScope) {
|
|
1899
1937
|
const client = getClient();
|
|
1900
1938
|
if (sessionScope) {
|
package/dist/bin/exe-search.js
CHANGED
|
@@ -3967,7 +3967,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
3967
3967
|
process.stderr.write("[hybrid-search] Embed daemon unavailable \u2014 FTS-only mode\n");
|
|
3968
3968
|
}
|
|
3969
3969
|
let grepPromise = Promise.resolve([]);
|
|
3970
|
-
if (config.fileGrepEnabled
|
|
3970
|
+
if (config.fileGrepEnabled === true) {
|
|
3971
3971
|
try {
|
|
3972
3972
|
const { getProjectName: getProjectName2 } = await Promise.resolve().then(() => (init_project_name(), project_name_exports));
|
|
3973
3973
|
const projectRoot = process.cwd();
|
|
@@ -4233,7 +4233,7 @@ async function ftsQuery(client, matchExpr, agentId, options, limit) {
|
|
|
4233
4233
|
source_type: row.source_type ?? null
|
|
4234
4234
|
}));
|
|
4235
4235
|
}
|
|
4236
|
-
async function recentRecords(agentId, options, limit) {
|
|
4236
|
+
async function recentRecords(agentId, options, limit, textFilter) {
|
|
4237
4237
|
const client = getClient();
|
|
4238
4238
|
const statusFilter = options?.includeArchived ? "" : `
|
|
4239
4239
|
AND COALESCE(status, 'active') = 'active'`;
|
|
@@ -4273,6 +4273,10 @@ async function recentRecords(agentId, options, limit) {
|
|
|
4273
4273
|
sql += ` AND memory_type = ?`;
|
|
4274
4274
|
args.push(options.memoryType);
|
|
4275
4275
|
}
|
|
4276
|
+
if (textFilter) {
|
|
4277
|
+
sql += ` AND raw_text LIKE '%' || ? || '%'`;
|
|
4278
|
+
args.push(textFilter);
|
|
4279
|
+
}
|
|
4276
4280
|
sql += ` ORDER BY timestamp DESC LIMIT ?`;
|
|
4277
4281
|
args.push(limit);
|
|
4278
4282
|
const result = await client.execute({ sql, args });
|