@askexenow/exe-os 0.8.82 → 0.8.85

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.
Files changed (97) hide show
  1. package/dist/bin/backfill-conversations.js +746 -595
  2. package/dist/bin/backfill-responses.js +745 -594
  3. package/dist/bin/backfill-vectors.js +312 -226
  4. package/dist/bin/cleanup-stale-review-tasks.js +97 -2
  5. package/dist/bin/cli.js +14360 -12525
  6. package/dist/bin/exe-agent.js +97 -88
  7. package/dist/bin/exe-assign.js +1003 -854
  8. package/dist/bin/exe-boot.js +1260 -323
  9. package/dist/bin/exe-call.js +10 -0
  10. package/dist/bin/exe-cloud.js +32 -9
  11. package/dist/bin/exe-dispatch.js +212 -36
  12. package/dist/bin/exe-doctor.js +403 -6
  13. package/dist/bin/exe-export-behaviors.js +175 -72
  14. package/dist/bin/exe-forget.js +97 -2
  15. package/dist/bin/exe-gateway.js +553 -174
  16. package/dist/bin/exe-healthcheck.js +1 -0
  17. package/dist/bin/exe-heartbeat.js +100 -5
  18. package/dist/bin/exe-kill.js +175 -72
  19. package/dist/bin/exe-launch-agent.js +189 -76
  20. package/dist/bin/exe-link.js +902 -80
  21. package/dist/bin/exe-new-employee.js +41 -11
  22. package/dist/bin/exe-pending-messages.js +96 -2
  23. package/dist/bin/exe-pending-notifications.js +97 -2
  24. package/dist/bin/exe-pending-reviews.js +98 -3
  25. package/dist/bin/exe-rename.js +577 -33
  26. package/dist/bin/exe-review.js +231 -73
  27. package/dist/bin/exe-search.js +989 -226
  28. package/dist/bin/exe-session-cleanup.js +4806 -1665
  29. package/dist/bin/exe-settings.js +20 -5
  30. package/dist/bin/exe-status.js +97 -2
  31. package/dist/bin/exe-team.js +97 -2
  32. package/dist/bin/git-sweep.js +901 -209
  33. package/dist/bin/graph-backfill.js +175 -72
  34. package/dist/bin/graph-export.js +175 -72
  35. package/dist/bin/install.js +38 -7
  36. package/dist/bin/list-providers.js +1 -0
  37. package/dist/bin/scan-tasks.js +906 -213
  38. package/dist/bin/setup.js +870 -271
  39. package/dist/bin/shard-migrate.js +175 -72
  40. package/dist/bin/update.js +4 -3
  41. package/dist/bin/wiki-sync.js +175 -72
  42. package/dist/gateway/index.js +550 -168
  43. package/dist/hooks/bug-report-worker.js +210 -25
  44. package/dist/hooks/commit-complete.js +899 -207
  45. package/dist/hooks/error-recall.js +988 -226
  46. package/dist/hooks/ingest-worker.js +1639 -1195
  47. package/dist/hooks/ingest.js +3 -0
  48. package/dist/hooks/instructions-loaded.js +707 -97
  49. package/dist/hooks/notification.js +699 -89
  50. package/dist/hooks/post-compact.js +714 -104
  51. package/dist/hooks/pre-compact.js +899 -207
  52. package/dist/hooks/pre-tool-use.js +742 -123
  53. package/dist/hooks/prompt-ingest-worker.js +245 -104
  54. package/dist/hooks/prompt-submit.js +995 -233
  55. package/dist/hooks/response-ingest-worker.js +245 -104
  56. package/dist/hooks/session-end.js +3941 -400
  57. package/dist/hooks/session-start.js +1001 -226
  58. package/dist/hooks/stop.js +725 -115
  59. package/dist/hooks/subagent-stop.js +714 -104
  60. package/dist/hooks/summary-worker.js +1970 -1336
  61. package/dist/index.js +1653 -1055
  62. package/dist/lib/cloud-sync.js +907 -86
  63. package/dist/lib/consolidation.js +2 -1
  64. package/dist/lib/database.js +642 -87
  65. package/dist/lib/db-daemon-client.js +503 -0
  66. package/dist/lib/device-registry.js +547 -7
  67. package/dist/lib/embedder.js +14 -28
  68. package/dist/lib/employee-templates.js +84 -74
  69. package/dist/lib/employees.js +9 -0
  70. package/dist/lib/exe-daemon-client.js +16 -29
  71. package/dist/lib/exe-daemon.js +1957 -924
  72. package/dist/lib/hybrid-search.js +988 -226
  73. package/dist/lib/identity.js +87 -67
  74. package/dist/lib/keychain.js +9 -1
  75. package/dist/lib/license.js +3 -3
  76. package/dist/lib/messaging.js +8 -1
  77. package/dist/lib/reminders.js +91 -74
  78. package/dist/lib/schedules.js +96 -2
  79. package/dist/lib/skill-learning.js +103 -85
  80. package/dist/lib/store.js +234 -73
  81. package/dist/lib/tasks.js +113 -24
  82. package/dist/lib/tmux-routing.js +122 -33
  83. package/dist/lib/token-spend.js +273 -0
  84. package/dist/lib/ws-client.js +11 -0
  85. package/dist/mcp/server.js +10874 -5546
  86. package/dist/mcp/tools/complete-reminder.js +94 -77
  87. package/dist/mcp/tools/create-reminder.js +94 -77
  88. package/dist/mcp/tools/create-task.js +810 -27
  89. package/dist/mcp/tools/deactivate-behavior.js +95 -77
  90. package/dist/mcp/tools/list-reminders.js +94 -77
  91. package/dist/mcp/tools/list-tasks.js +31 -1
  92. package/dist/mcp/tools/send-message.js +8 -1
  93. package/dist/mcp/tools/update-task.js +39 -10
  94. package/dist/runtime/index.js +913 -221
  95. package/dist/tui/App.js +1000 -298
  96. package/package.json +6 -1
  97. package/src/commands/exe/build-adv.md +2 -2
@@ -1,4 +1,99 @@
1
1
  #!/usr/bin/env node
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __esm = (fn, res) => function __init() {
4
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5
+ };
6
+
7
+ // src/lib/config.ts
8
+ import { readFile, writeFile, mkdir, chmod } from "fs/promises";
9
+ import { readFileSync, existsSync, renameSync } from "fs";
10
+ import path from "path";
11
+ import os from "os";
12
+ function resolveDataDir() {
13
+ if (process.env.EXE_OS_DIR) return process.env.EXE_OS_DIR;
14
+ if (process.env.EXE_MEM_DIR) return process.env.EXE_MEM_DIR;
15
+ const newDir = path.join(os.homedir(), ".exe-os");
16
+ const legacyDir = path.join(os.homedir(), ".exe-mem");
17
+ if (!existsSync(newDir) && existsSync(legacyDir)) {
18
+ try {
19
+ renameSync(legacyDir, newDir);
20
+ process.stderr.write(`[exe-os] Migrated data directory: ~/.exe-mem \u2192 ~/.exe-os
21
+ `);
22
+ } catch {
23
+ return legacyDir;
24
+ }
25
+ }
26
+ return newDir;
27
+ }
28
+ var EXE_AI_DIR, DB_PATH, MODELS_DIR, CONFIG_PATH, LEGACY_LANCE_PATH, CURRENT_CONFIG_VERSION, DEFAULT_CONFIG;
29
+ var init_config = __esm({
30
+ "src/lib/config.ts"() {
31
+ "use strict";
32
+ EXE_AI_DIR = resolveDataDir();
33
+ DB_PATH = path.join(EXE_AI_DIR, "memories.db");
34
+ MODELS_DIR = path.join(EXE_AI_DIR, "models");
35
+ CONFIG_PATH = path.join(EXE_AI_DIR, "config.json");
36
+ LEGACY_LANCE_PATH = path.join(EXE_AI_DIR, "local.lance");
37
+ CURRENT_CONFIG_VERSION = 1;
38
+ DEFAULT_CONFIG = {
39
+ config_version: CURRENT_CONFIG_VERSION,
40
+ dbPath: DB_PATH,
41
+ modelFile: "jina-embeddings-v5-small-q4_k_m.gguf",
42
+ embeddingDim: 1024,
43
+ batchSize: 20,
44
+ flushIntervalMs: 1e4,
45
+ autoIngestion: true,
46
+ autoRetrieval: true,
47
+ searchMode: "hybrid",
48
+ hookSearchMode: "hybrid",
49
+ fileGrepEnabled: true,
50
+ splashEffect: true,
51
+ consolidationEnabled: true,
52
+ consolidationIntervalMs: 6 * 60 * 60 * 1e3,
53
+ consolidationModel: "claude-haiku-4-5-20251001",
54
+ consolidationMaxCallsPerRun: 20,
55
+ selfQueryRouter: true,
56
+ selfQueryModel: "claude-haiku-4-5-20251001",
57
+ rerankerEnabled: true,
58
+ scalingRoadmap: {
59
+ rerankerAutoTrigger: {
60
+ enabled: true,
61
+ broadQueryMinCardinality: 5e4,
62
+ fetchTopK: 150,
63
+ returnTopK: 5
64
+ }
65
+ },
66
+ graphRagEnabled: true,
67
+ wikiEnabled: false,
68
+ wikiUrl: "",
69
+ wikiApiKey: "",
70
+ wikiSyncIntervalMs: 30 * 60 * 1e3,
71
+ wikiWorkspaceMapping: {},
72
+ wikiAutoUpdate: true,
73
+ wikiAutoUpdateThreshold: 0.5,
74
+ wikiAutoUpdateCreateNew: true,
75
+ skillLearning: true,
76
+ skillThreshold: 3,
77
+ skillModel: "claude-haiku-4-5-20251001",
78
+ exeHeartbeat: {
79
+ enabled: true,
80
+ intervalSeconds: 60,
81
+ staleInProgressThresholdHours: 2
82
+ },
83
+ sessionLifecycle: {
84
+ idleKillEnabled: true,
85
+ idleKillTicksRequired: 3,
86
+ idleKillIntercomAckWindowMs: 1e4,
87
+ maxAutoInstances: 10
88
+ },
89
+ autoUpdate: {
90
+ checkOnBoot: true,
91
+ autoInstall: false,
92
+ checkIntervalMs: 24 * 60 * 60 * 1e3
93
+ }
94
+ };
95
+ }
96
+ });
2
97
 
3
98
  // src/bin/exe-agent.ts
4
99
  import { createInterface } from "readline";
@@ -1151,98 +1246,12 @@ import { randomUUID as randomUUID3 } from "crypto";
1151
1246
  import { createClient } from "@libsql/client";
1152
1247
 
1153
1248
  // src/lib/employees.ts
1249
+ init_config();
1154
1250
  import { readFile as readFile2, writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
1155
1251
  import { existsSync as existsSync2, symlinkSync, readlinkSync, readFileSync as readFileSync2, renameSync as renameSync2, unlinkSync, writeFileSync } from "fs";
1156
1252
  import { execSync } from "child_process";
1157
1253
  import path2 from "path";
1158
1254
  import os2 from "os";
1159
-
1160
- // src/lib/config.ts
1161
- import { readFile, writeFile, mkdir, chmod } from "fs/promises";
1162
- import { readFileSync, existsSync, renameSync } from "fs";
1163
- import path from "path";
1164
- import os from "os";
1165
- function resolveDataDir() {
1166
- if (process.env.EXE_OS_DIR) return process.env.EXE_OS_DIR;
1167
- if (process.env.EXE_MEM_DIR) return process.env.EXE_MEM_DIR;
1168
- const newDir = path.join(os.homedir(), ".exe-os");
1169
- const legacyDir = path.join(os.homedir(), ".exe-mem");
1170
- if (!existsSync(newDir) && existsSync(legacyDir)) {
1171
- try {
1172
- renameSync(legacyDir, newDir);
1173
- process.stderr.write(`[exe-os] Migrated data directory: ~/.exe-mem \u2192 ~/.exe-os
1174
- `);
1175
- } catch {
1176
- return legacyDir;
1177
- }
1178
- }
1179
- return newDir;
1180
- }
1181
- var EXE_AI_DIR = resolveDataDir();
1182
- var DB_PATH = path.join(EXE_AI_DIR, "memories.db");
1183
- var MODELS_DIR = path.join(EXE_AI_DIR, "models");
1184
- var CONFIG_PATH = path.join(EXE_AI_DIR, "config.json");
1185
- var LEGACY_LANCE_PATH = path.join(EXE_AI_DIR, "local.lance");
1186
- var CURRENT_CONFIG_VERSION = 1;
1187
- var DEFAULT_CONFIG = {
1188
- config_version: CURRENT_CONFIG_VERSION,
1189
- dbPath: DB_PATH,
1190
- modelFile: "jina-embeddings-v5-small-q4_k_m.gguf",
1191
- embeddingDim: 1024,
1192
- batchSize: 20,
1193
- flushIntervalMs: 1e4,
1194
- autoIngestion: true,
1195
- autoRetrieval: true,
1196
- searchMode: "hybrid",
1197
- hookSearchMode: "hybrid",
1198
- fileGrepEnabled: true,
1199
- splashEffect: true,
1200
- consolidationEnabled: true,
1201
- consolidationIntervalMs: 6 * 60 * 60 * 1e3,
1202
- consolidationModel: "claude-haiku-4-5-20251001",
1203
- consolidationMaxCallsPerRun: 20,
1204
- selfQueryRouter: true,
1205
- selfQueryModel: "claude-haiku-4-5-20251001",
1206
- rerankerEnabled: true,
1207
- scalingRoadmap: {
1208
- rerankerAutoTrigger: {
1209
- enabled: true,
1210
- broadQueryMinCardinality: 5e4,
1211
- fetchTopK: 150,
1212
- returnTopK: 5
1213
- }
1214
- },
1215
- graphRagEnabled: true,
1216
- wikiEnabled: false,
1217
- wikiUrl: "",
1218
- wikiApiKey: "",
1219
- wikiSyncIntervalMs: 30 * 60 * 1e3,
1220
- wikiWorkspaceMapping: {},
1221
- wikiAutoUpdate: true,
1222
- wikiAutoUpdateThreshold: 0.5,
1223
- wikiAutoUpdateCreateNew: true,
1224
- skillLearning: true,
1225
- skillThreshold: 3,
1226
- skillModel: "claude-haiku-4-5-20251001",
1227
- exeHeartbeat: {
1228
- enabled: true,
1229
- intervalSeconds: 60,
1230
- staleInProgressThresholdHours: 2
1231
- },
1232
- sessionLifecycle: {
1233
- idleKillEnabled: true,
1234
- idleKillTicksRequired: 3,
1235
- idleKillIntercomAckWindowMs: 1e4,
1236
- maxAutoInstances: 10
1237
- },
1238
- autoUpdate: {
1239
- checkOnBoot: true,
1240
- autoInstall: false,
1241
- checkIntervalMs: 24 * 60 * 60 * 1e3
1242
- }
1243
- };
1244
-
1245
- // src/lib/employees.ts
1246
1255
  var EMPLOYEES_PATH = path2.join(EXE_AI_DIR, "exe-employees.json");
1247
1256
 
1248
1257
  // src/lib/platform-procedures.ts
@@ -2171,7 +2180,7 @@ function createProvider(args) {
2171
2180
  });
2172
2181
  case "ollama":
2173
2182
  return new OllamaProvider("ollama", {
2174
- host: args.baseUrl ?? "http://localhost:11434",
2183
+ host: args.baseUrl ?? process.env.OLLAMA_HOST ?? "http://localhost:11434",
2175
2184
  defaultModel: args.model
2176
2185
  });
2177
2186
  default: