@askexenow/exe-os 0.9.114 → 0.9.116
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/agentic-ontology-backfill.js +13 -1
- package/dist/bin/agentic-reflection-backfill.js +13 -1
- package/dist/bin/agentic-semantic-label.js +13 -1
- package/dist/bin/backfill-conversations.js +13 -1
- package/dist/bin/backfill-responses.js +13 -1
- package/dist/bin/backfill-vectors.js +13 -1
- package/dist/bin/bulk-sync-postgres.js +13 -1
- package/dist/bin/cleanup-stale-review-tasks.js +465 -107
- package/dist/bin/cli.js +348 -43
- package/dist/bin/exe-assign.js +13 -1
- package/dist/bin/exe-boot.js +233 -42
- package/dist/bin/exe-cloud.js +13 -1
- package/dist/bin/exe-dispatch.js +346 -41
- package/dist/bin/exe-doctor.js +28 -2
- package/dist/bin/exe-export-behaviors.js +14 -1
- package/dist/bin/exe-forget.js +13 -1
- package/dist/bin/exe-gateway.js +346 -41
- package/dist/bin/exe-heartbeat.js +466 -107
- package/dist/bin/exe-kill.js +13 -1
- package/dist/bin/exe-launch-agent.js +14 -1
- package/dist/bin/exe-pending-messages.js +445 -87
- package/dist/bin/exe-pending-notifications.js +445 -87
- package/dist/bin/exe-pending-reviews.js +445 -87
- package/dist/bin/exe-rename.js +13 -1
- package/dist/bin/exe-review.js +13 -1
- package/dist/bin/exe-search.js +14 -1
- package/dist/bin/exe-session-cleanup.js +346 -41
- package/dist/bin/exe-settings.js +12 -0
- package/dist/bin/exe-start-codex.js +14 -1
- package/dist/bin/exe-start-opencode.js +14 -1
- package/dist/bin/exe-status.js +455 -108
- package/dist/bin/exe-support.js +12 -0
- package/dist/bin/exe-team.js +13 -1
- package/dist/bin/git-sweep.js +346 -41
- package/dist/bin/graph-backfill.js +13 -1
- package/dist/bin/graph-export.js +13 -1
- package/dist/bin/intercom-check.js +253 -41
- package/dist/bin/scan-tasks.js +346 -41
- package/dist/bin/setup.js +14 -1
- package/dist/bin/shard-migrate.js +13 -1
- package/dist/gateway/index.js +346 -41
- package/dist/hooks/bug-report-worker.js +346 -41
- package/dist/hooks/codex-stop-task-finalizer.js +308 -29
- package/dist/hooks/commit-complete.js +346 -41
- package/dist/hooks/error-recall.js +14 -1
- package/dist/hooks/ingest.js +361 -42
- package/dist/hooks/instructions-loaded.js +13 -1
- package/dist/hooks/notification.js +13 -1
- package/dist/hooks/post-compact.js +419 -64
- package/dist/hooks/post-tool-combined.js +496 -140
- package/dist/hooks/pre-compact.js +346 -41
- package/dist/hooks/pre-tool-use.js +50 -5
- package/dist/hooks/prompt-submit.js +346 -41
- package/dist/hooks/session-end.js +156 -41
- package/dist/hooks/session-start.js +51 -5
- package/dist/hooks/stop.js +413 -64
- package/dist/hooks/subagent-stop.js +412 -64
- package/dist/hooks/summary-worker.js +426 -115
- package/dist/index.js +346 -41
- package/dist/lib/cloud-sync.js +1 -1
- package/dist/lib/config.js +13 -0
- package/dist/lib/embedder.js +13 -0
- package/dist/lib/exe-daemon.js +382 -47
- package/dist/lib/hybrid-search.js +14 -1
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/messaging.js +426 -77
- package/dist/lib/schedules.js +13 -1
- package/dist/lib/skill-learning.js +13 -0
- package/dist/lib/store.js +13 -1
- package/dist/lib/tasks.js +345 -40
- package/dist/lib/tmux-routing.js +345 -40
- package/dist/mcp/server.js +362 -43
- package/dist/mcp/tools/create-task.js +345 -40
- package/dist/mcp/tools/list-tasks.js +422 -60
- package/dist/mcp/tools/send-message.js +426 -77
- package/dist/mcp/tools/update-task.js +345 -40
- package/dist/runtime/index.js +346 -41
- package/dist/tui/App.js +348 -43
- package/package.json +1 -1
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -4667,7 +4679,7 @@ async function getMasterKey() {
|
|
|
4667
4679
|
b64Value = content;
|
|
4668
4680
|
}
|
|
4669
4681
|
const key = Buffer.from(b64Value, "base64");
|
|
4670
|
-
if (
|
|
4682
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
4671
4683
|
return key;
|
|
4672
4684
|
}
|
|
4673
4685
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -4240,7 +4252,7 @@ async function getMasterKey() {
|
|
|
4240
4252
|
b64Value = content;
|
|
4241
4253
|
}
|
|
4242
4254
|
const key = Buffer.from(b64Value, "base64");
|
|
4243
|
-
if (
|
|
4255
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
4244
4256
|
return key;
|
|
4245
4257
|
}
|
|
4246
4258
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -4364,7 +4376,7 @@ async function getMasterKey() {
|
|
|
4364
4376
|
b64Value = content;
|
|
4365
4377
|
}
|
|
4366
4378
|
const key = Buffer.from(b64Value, "base64");
|
|
4367
|
-
if (
|
|
4379
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
4368
4380
|
return key;
|
|
4369
4381
|
}
|
|
4370
4382
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -4816,7 +4828,7 @@ async function getMasterKey() {
|
|
|
4816
4828
|
b64Value = content;
|
|
4817
4829
|
}
|
|
4818
4830
|
const key = Buffer.from(b64Value, "base64");
|
|
4819
|
-
if (
|
|
4831
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
4820
4832
|
return key;
|
|
4821
4833
|
}
|
|
4822
4834
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -4815,7 +4827,7 @@ async function getMasterKey() {
|
|
|
4815
4827
|
b64Value = content;
|
|
4816
4828
|
}
|
|
4817
4829
|
const key = Buffer.from(b64Value, "base64");
|
|
4818
|
-
if (
|
|
4830
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
4819
4831
|
return key;
|
|
4820
4832
|
}
|
|
4821
4833
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -4362,7 +4374,7 @@ async function getMasterKey() {
|
|
|
4362
4374
|
b64Value = content;
|
|
4363
4375
|
}
|
|
4364
4376
|
const key = Buffer.from(b64Value, "base64");
|
|
4365
|
-
if (
|
|
4377
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
4366
4378
|
return key;
|
|
4367
4379
|
}
|
|
4368
4380
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|
|
@@ -193,6 +193,17 @@ function normalizeOrchestration(raw) {
|
|
|
193
193
|
const userOrg = raw.orchestration ?? {};
|
|
194
194
|
raw.orchestration = { ...defaultOrg, ...userOrg };
|
|
195
195
|
}
|
|
196
|
+
function normalizeCloudEndpoint(raw) {
|
|
197
|
+
const cloud = raw.cloud;
|
|
198
|
+
if (!cloud?.endpoint) return;
|
|
199
|
+
const ep = String(cloud.endpoint);
|
|
200
|
+
if (ep === "https://askexe.com/cloud" || ep === "https://askexe.com/cloud/") {
|
|
201
|
+
cloud.endpoint = "https://cloud.askexe.com";
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
"[config] Auto-migrated cloud endpoint: askexe.com/cloud \u2192 cloud.askexe.com\n"
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
196
207
|
async function loadConfig() {
|
|
197
208
|
const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
|
|
198
209
|
await ensurePrivateDir(dir);
|
|
@@ -218,6 +229,7 @@ async function loadConfig() {
|
|
|
218
229
|
normalizeSessionLifecycle(migratedCfg);
|
|
219
230
|
normalizeAutoUpdate(migratedCfg);
|
|
220
231
|
normalizeOrchestration(migratedCfg);
|
|
232
|
+
normalizeCloudEndpoint(migratedCfg);
|
|
221
233
|
const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
|
|
222
234
|
if (config.dbPath.startsWith("~")) {
|
|
223
235
|
config.dbPath = config.dbPath.replace(/^~/, os.homedir());
|
|
@@ -3378,7 +3390,7 @@ async function getMasterKey() {
|
|
|
3378
3390
|
b64Value = content;
|
|
3379
3391
|
}
|
|
3380
3392
|
const key = Buffer.from(b64Value, "base64");
|
|
3381
|
-
if (
|
|
3393
|
+
if (isRootOnlyTrustedServerKeyFile(keyPath)) {
|
|
3382
3394
|
return key;
|
|
3383
3395
|
}
|
|
3384
3396
|
const migrated = macKeychainSet(b64Value) || linuxSecretSet(b64Value);
|