@askexenow/exe-os 0.8.1 → 0.8.2
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/package.json +1 -1
- package/dist/bin/backfill-responses.js +0 -2064
- package/dist/bin/backfill-vectors.js +0 -1771
- package/dist/bin/cleanup-stale-review-tasks.js +0 -1468
- package/dist/bin/cli.js +0 -21371
- package/dist/bin/exe-agent.js +0 -2016
- package/dist/bin/exe-assign.js +0 -2176
- package/dist/bin/exe-boot.js +0 -6332
- package/dist/bin/exe-call.js +0 -341
- package/dist/bin/exe-cloud.js +0 -861
- package/dist/bin/exe-dispatch.js +0 -1159
- package/dist/bin/exe-doctor.js +0 -1786
- package/dist/bin/exe-export-behaviors.js +0 -1637
- package/dist/bin/exe-forget.js +0 -1784
- package/dist/bin/exe-gateway.js +0 -8140
- package/dist/bin/exe-healthcheck.js +0 -207
- package/dist/bin/exe-heartbeat.js +0 -1778
- package/dist/bin/exe-kill.js +0 -1622
- package/dist/bin/exe-launch-agent.js +0 -1847
- package/dist/bin/exe-link.js +0 -192
- package/dist/bin/exe-new-employee.js +0 -1384
- package/dist/bin/exe-pending-messages.js +0 -1576
- package/dist/bin/exe-pending-notifications.js +0 -1450
- package/dist/bin/exe-pending-reviews.js +0 -1598
- package/dist/bin/exe-repo-drift.js +0 -95
- package/dist/bin/exe-review.js +0 -1742
- package/dist/bin/exe-search.js +0 -3116
- package/dist/bin/exe-session-cleanup.js +0 -3360
- package/dist/bin/exe-settings.js +0 -365
- package/dist/bin/exe-status.js +0 -1661
- package/dist/bin/exe-team.js +0 -1453
- package/dist/bin/git-sweep.js +0 -2441
- package/dist/bin/graph-backfill.js +0 -2111
- package/dist/bin/graph-export.js +0 -1747
- package/dist/bin/install.js +0 -661
- package/dist/bin/list-providers.js +0 -140
- package/dist/bin/scan-tasks.js +0 -2039
- package/dist/bin/setup.js +0 -2717
- package/dist/bin/shard-migrate.js +0 -1637
- package/dist/bin/update.js +0 -98
- package/dist/bin/wiki-sync.js +0 -1657
- package/dist/gateway/index.js +0 -9256
- package/dist/hooks/bug-report-worker.js +0 -2903
- package/dist/hooks/commit-complete.js +0 -2364
- package/dist/hooks/error-recall.js +0 -3327
- package/dist/hooks/exe-heartbeat-hook.js +0 -237
- package/dist/hooks/ingest-worker.js +0 -5065
- package/dist/hooks/ingest.js +0 -695
- package/dist/hooks/instructions-loaded.js +0 -2069
- package/dist/hooks/notification.js +0 -1915
- package/dist/hooks/post-compact.js +0 -1940
- package/dist/hooks/pre-compact.js +0 -1935
- package/dist/hooks/pre-tool-use.js +0 -2380
- package/dist/hooks/prompt-ingest-worker.js +0 -2291
- package/dist/hooks/prompt-submit.js +0 -5189
- package/dist/hooks/response-ingest-worker.js +0 -2431
- package/dist/hooks/session-end.js +0 -2196
- package/dist/hooks/session-start.js +0 -3259
- package/dist/hooks/stop.js +0 -2025
- package/dist/hooks/subagent-stop.js +0 -1915
- package/dist/hooks/summary-worker.js +0 -2931
- package/dist/index.js +0 -12327
- package/dist/lib/cloud-sync.js +0 -500
- package/dist/lib/config.js +0 -235
- package/dist/lib/consolidation.js +0 -481
- package/dist/lib/crypto.js +0 -51
- package/dist/lib/database.js +0 -834
- package/dist/lib/device-registry.js +0 -1009
- package/dist/lib/embedder.js +0 -645
- package/dist/lib/employee-templates.js +0 -570
- package/dist/lib/employees.js +0 -182
- package/dist/lib/error-detector.js +0 -156
- package/dist/lib/exe-daemon-client.js +0 -456
- package/dist/lib/exe-daemon.js +0 -8699
- package/dist/lib/file-grep.js +0 -215
- package/dist/lib/hybrid-search.js +0 -3064
- package/dist/lib/identity-templates.js +0 -441
- package/dist/lib/identity.js +0 -228
- package/dist/lib/keychain.js +0 -145
- package/dist/lib/license.js +0 -382
- package/dist/lib/messaging.js +0 -1389
- package/dist/lib/reminders.js +0 -63
- package/dist/lib/schedules.js +0 -1525
- package/dist/lib/session-registry.js +0 -52
- package/dist/lib/skill-learning.js +0 -488
- package/dist/lib/status-brief.js +0 -240
- package/dist/lib/store.js +0 -1740
- package/dist/lib/task-router.js +0 -128
- package/dist/lib/tasks.js +0 -2585
- package/dist/lib/tmux-routing.js +0 -2969
- package/dist/lib/tmux-status.js +0 -261
- package/dist/lib/tmux-transport.js +0 -83
- package/dist/lib/transport.js +0 -128
- package/dist/lib/ws-auth.js +0 -19
- package/dist/lib/ws-client.js +0 -160
- package/dist/mcp/server.js +0 -10812
- package/dist/mcp/tools/complete-reminder.js +0 -67
- package/dist/mcp/tools/create-reminder.js +0 -52
- package/dist/mcp/tools/create-task.js +0 -1903
- package/dist/mcp/tools/deactivate-behavior.js +0 -268
- package/dist/mcp/tools/list-reminders.js +0 -62
- package/dist/mcp/tools/list-tasks.js +0 -491
- package/dist/mcp/tools/send-message.js +0 -1395
- package/dist/mcp/tools/update-task.js +0 -1807
- package/dist/runtime/index.js +0 -7201
- package/dist/tui/App.js +0 -17874
package/dist/lib/config.js
DELETED
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
// src/lib/config.ts
|
|
2
|
-
import { readFile, writeFile, mkdir } from "fs/promises";
|
|
3
|
-
import { readFileSync, existsSync, renameSync } from "fs";
|
|
4
|
-
import path from "path";
|
|
5
|
-
import os from "os";
|
|
6
|
-
function resolveDataDir() {
|
|
7
|
-
if (process.env.EXE_OS_DIR) return process.env.EXE_OS_DIR;
|
|
8
|
-
if (process.env.EXE_MEM_DIR) return process.env.EXE_MEM_DIR;
|
|
9
|
-
const newDir = path.join(os.homedir(), ".exe-os");
|
|
10
|
-
const legacyDir = path.join(os.homedir(), ".exe-mem");
|
|
11
|
-
if (!existsSync(newDir) && existsSync(legacyDir)) {
|
|
12
|
-
try {
|
|
13
|
-
renameSync(legacyDir, newDir);
|
|
14
|
-
process.stderr.write(`[exe-os] Migrated data directory: ~/.exe-mem \u2192 ~/.exe-os
|
|
15
|
-
`);
|
|
16
|
-
} catch {
|
|
17
|
-
return legacyDir;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return newDir;
|
|
21
|
-
}
|
|
22
|
-
var EXE_AI_DIR = resolveDataDir();
|
|
23
|
-
var DB_PATH = path.join(EXE_AI_DIR, "memories.db");
|
|
24
|
-
var MODELS_DIR = path.join(EXE_AI_DIR, "models");
|
|
25
|
-
var CONFIG_PATH = path.join(EXE_AI_DIR, "config.json");
|
|
26
|
-
var LEGACY_LANCE_PATH = path.join(EXE_AI_DIR, "local.lance");
|
|
27
|
-
var CURRENT_CONFIG_VERSION = 1;
|
|
28
|
-
var DEFAULT_CONFIG = {
|
|
29
|
-
config_version: CURRENT_CONFIG_VERSION,
|
|
30
|
-
dbPath: DB_PATH,
|
|
31
|
-
modelFile: "jina-embeddings-v5-small-q4_k_m.gguf",
|
|
32
|
-
embeddingDim: 1024,
|
|
33
|
-
batchSize: 20,
|
|
34
|
-
flushIntervalMs: 1e4,
|
|
35
|
-
autoIngestion: true,
|
|
36
|
-
autoRetrieval: true,
|
|
37
|
-
searchMode: "hybrid",
|
|
38
|
-
hookSearchMode: "hybrid",
|
|
39
|
-
fileGrepEnabled: true,
|
|
40
|
-
splashEffect: true,
|
|
41
|
-
consolidationEnabled: true,
|
|
42
|
-
consolidationIntervalMs: 6 * 60 * 60 * 1e3,
|
|
43
|
-
consolidationModel: "claude-haiku-4-5-20251001",
|
|
44
|
-
consolidationMaxCallsPerRun: 20,
|
|
45
|
-
selfQueryRouter: true,
|
|
46
|
-
selfQueryModel: "claude-haiku-4-5-20251001",
|
|
47
|
-
rerankerEnabled: true,
|
|
48
|
-
scalingRoadmap: {
|
|
49
|
-
rerankerAutoTrigger: {
|
|
50
|
-
enabled: true,
|
|
51
|
-
broadQueryMinCardinality: 5e4,
|
|
52
|
-
fetchTopK: 150,
|
|
53
|
-
returnTopK: 5
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
graphRagEnabled: true,
|
|
57
|
-
wikiEnabled: false,
|
|
58
|
-
wikiUrl: "",
|
|
59
|
-
wikiApiKey: "",
|
|
60
|
-
wikiSyncIntervalMs: 30 * 60 * 1e3,
|
|
61
|
-
wikiWorkspaceMapping: {
|
|
62
|
-
exe: "Executive",
|
|
63
|
-
yoshi: "Engineering",
|
|
64
|
-
mari: "Marketing",
|
|
65
|
-
tom: "Engineering",
|
|
66
|
-
sasha: "Production"
|
|
67
|
-
},
|
|
68
|
-
wikiAutoUpdate: true,
|
|
69
|
-
wikiAutoUpdateThreshold: 0.5,
|
|
70
|
-
wikiAutoUpdateCreateNew: true,
|
|
71
|
-
skillLearning: true,
|
|
72
|
-
skillThreshold: 3,
|
|
73
|
-
skillModel: "claude-haiku-4-5-20251001",
|
|
74
|
-
exeHeartbeat: {
|
|
75
|
-
enabled: true,
|
|
76
|
-
intervalSeconds: 60,
|
|
77
|
-
staleInProgressThresholdHours: 2
|
|
78
|
-
},
|
|
79
|
-
sessionLifecycle: {
|
|
80
|
-
idleKillEnabled: true,
|
|
81
|
-
idleKillTicksRequired: 3,
|
|
82
|
-
idleKillIntercomAckWindowMs: 1e4,
|
|
83
|
-
maxAutoInstances: 10
|
|
84
|
-
},
|
|
85
|
-
autoUpdate: {
|
|
86
|
-
checkOnBoot: true,
|
|
87
|
-
autoInstall: false,
|
|
88
|
-
checkIntervalMs: 24 * 60 * 60 * 1e3
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
function migrateLegacyConfig(raw) {
|
|
92
|
-
if ("r2" in raw) {
|
|
93
|
-
process.stderr.write(
|
|
94
|
-
"[exe-os] Warning: config.json contains deprecated 'r2' field from v1.0. R2 sync has been replaced in v1.1. The 'r2' field will be ignored.\n"
|
|
95
|
-
);
|
|
96
|
-
delete raw.r2;
|
|
97
|
-
}
|
|
98
|
-
if ("syncIntervalMs" in raw) {
|
|
99
|
-
delete raw.syncIntervalMs;
|
|
100
|
-
}
|
|
101
|
-
return raw;
|
|
102
|
-
}
|
|
103
|
-
var CONFIG_MIGRATIONS = [
|
|
104
|
-
{
|
|
105
|
-
from: 0,
|
|
106
|
-
to: 1,
|
|
107
|
-
migrate: (cfg) => {
|
|
108
|
-
cfg.config_version = 1;
|
|
109
|
-
return cfg;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
];
|
|
113
|
-
function migrateConfig(raw) {
|
|
114
|
-
const fromVersion = typeof raw.config_version === "number" ? raw.config_version : 0;
|
|
115
|
-
let currentVersion = fromVersion;
|
|
116
|
-
let migrated = false;
|
|
117
|
-
if (currentVersion > CURRENT_CONFIG_VERSION) {
|
|
118
|
-
return { config: raw, migrated: false, fromVersion };
|
|
119
|
-
}
|
|
120
|
-
for (const migration of CONFIG_MIGRATIONS) {
|
|
121
|
-
if (currentVersion === migration.from && migration.to <= CURRENT_CONFIG_VERSION) {
|
|
122
|
-
raw = migration.migrate(raw);
|
|
123
|
-
currentVersion = migration.to;
|
|
124
|
-
migrated = true;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return { config: raw, migrated, fromVersion };
|
|
128
|
-
}
|
|
129
|
-
function normalizeScalingRoadmap(raw) {
|
|
130
|
-
const defaultAuto = DEFAULT_CONFIG.scalingRoadmap.rerankerAutoTrigger;
|
|
131
|
-
const userRoadmap = raw.scalingRoadmap ?? {};
|
|
132
|
-
const userAuto = userRoadmap.rerankerAutoTrigger ?? {};
|
|
133
|
-
if (userAuto.enabled === void 0 && raw.rerankerEnabled !== void 0) {
|
|
134
|
-
userAuto.enabled = raw.rerankerEnabled;
|
|
135
|
-
}
|
|
136
|
-
raw.scalingRoadmap = {
|
|
137
|
-
...userRoadmap,
|
|
138
|
-
rerankerAutoTrigger: { ...defaultAuto, ...userAuto }
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
function normalizeSessionLifecycle(raw) {
|
|
142
|
-
const defaultSL = DEFAULT_CONFIG.sessionLifecycle;
|
|
143
|
-
const userSL = raw.sessionLifecycle ?? {};
|
|
144
|
-
raw.sessionLifecycle = { ...defaultSL, ...userSL };
|
|
145
|
-
}
|
|
146
|
-
function normalizeAutoUpdate(raw) {
|
|
147
|
-
const defaultAU = DEFAULT_CONFIG.autoUpdate;
|
|
148
|
-
const userAU = raw.autoUpdate ?? {};
|
|
149
|
-
raw.autoUpdate = { ...defaultAU, ...userAU };
|
|
150
|
-
}
|
|
151
|
-
async function loadConfig() {
|
|
152
|
-
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
153
|
-
await mkdir(dir, { recursive: true });
|
|
154
|
-
const configPath = path.join(dir, "config.json");
|
|
155
|
-
if (!existsSync(configPath)) {
|
|
156
|
-
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
|
|
157
|
-
}
|
|
158
|
-
const raw = await readFile(configPath, "utf-8");
|
|
159
|
-
try {
|
|
160
|
-
let parsed = JSON.parse(raw);
|
|
161
|
-
parsed = migrateLegacyConfig(parsed);
|
|
162
|
-
const { config: migratedCfg, migrated, fromVersion } = migrateConfig(parsed);
|
|
163
|
-
if (migrated) {
|
|
164
|
-
process.stderr.write(`[exe-os] Config migrated from v${fromVersion} to v${migratedCfg.config_version}
|
|
165
|
-
`);
|
|
166
|
-
try {
|
|
167
|
-
await writeFile(configPath, JSON.stringify(migratedCfg, null, 2) + "\n");
|
|
168
|
-
} catch {
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
normalizeScalingRoadmap(migratedCfg);
|
|
172
|
-
normalizeSessionLifecycle(migratedCfg);
|
|
173
|
-
normalizeAutoUpdate(migratedCfg);
|
|
174
|
-
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
175
|
-
if (config.dbPath.startsWith("~")) {
|
|
176
|
-
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
177
|
-
}
|
|
178
|
-
return config;
|
|
179
|
-
} catch {
|
|
180
|
-
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
function loadConfigSync() {
|
|
184
|
-
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
185
|
-
const configPath = path.join(dir, "config.json");
|
|
186
|
-
if (!existsSync(configPath)) {
|
|
187
|
-
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
|
|
188
|
-
}
|
|
189
|
-
try {
|
|
190
|
-
const raw = readFileSync(configPath, "utf-8");
|
|
191
|
-
let parsed = JSON.parse(raw);
|
|
192
|
-
parsed = migrateLegacyConfig(parsed);
|
|
193
|
-
const { config: migratedCfg } = migrateConfig(parsed);
|
|
194
|
-
normalizeScalingRoadmap(migratedCfg);
|
|
195
|
-
normalizeSessionLifecycle(migratedCfg);
|
|
196
|
-
normalizeAutoUpdate(migratedCfg);
|
|
197
|
-
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
198
|
-
} catch {
|
|
199
|
-
return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
async function saveConfig(config) {
|
|
203
|
-
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
204
|
-
await mkdir(dir, { recursive: true });
|
|
205
|
-
const configPath = path.join(dir, "config.json");
|
|
206
|
-
await writeFile(configPath, JSON.stringify(config, null, 2) + "\n");
|
|
207
|
-
}
|
|
208
|
-
async function loadConfigFrom(configPath) {
|
|
209
|
-
const raw = await readFile(configPath, "utf-8");
|
|
210
|
-
try {
|
|
211
|
-
let parsed = JSON.parse(raw);
|
|
212
|
-
parsed = migrateLegacyConfig(parsed);
|
|
213
|
-
const { config: migratedCfg } = migrateConfig(parsed);
|
|
214
|
-
normalizeScalingRoadmap(migratedCfg);
|
|
215
|
-
normalizeSessionLifecycle(migratedCfg);
|
|
216
|
-
normalizeAutoUpdate(migratedCfg);
|
|
217
|
-
return { ...DEFAULT_CONFIG, ...migratedCfg };
|
|
218
|
-
} catch {
|
|
219
|
-
return { ...DEFAULT_CONFIG };
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
export {
|
|
223
|
-
CONFIG_MIGRATIONS,
|
|
224
|
-
CONFIG_PATH,
|
|
225
|
-
CURRENT_CONFIG_VERSION,
|
|
226
|
-
DB_PATH,
|
|
227
|
-
EXE_AI_DIR,
|
|
228
|
-
LEGACY_LANCE_PATH,
|
|
229
|
-
MODELS_DIR,
|
|
230
|
-
loadConfig,
|
|
231
|
-
loadConfigFrom,
|
|
232
|
-
loadConfigSync,
|
|
233
|
-
migrateConfig,
|
|
234
|
-
saveConfig
|
|
235
|
-
};
|