@askexenow/exe-os 0.8.80 → 0.8.82

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 (110) hide show
  1. package/dist/bin/backfill-conversations.js +359 -267
  2. package/dist/bin/backfill-responses.js +357 -265
  3. package/dist/bin/backfill-vectors.js +339 -264
  4. package/dist/bin/cleanup-stale-review-tasks.js +315 -256
  5. package/dist/bin/cli.js +494 -240
  6. package/dist/bin/exe-agent.js +141 -46
  7. package/dist/bin/exe-assign.js +151 -63
  8. package/dist/bin/exe-boot.js +294 -115
  9. package/dist/bin/exe-call.js +76 -51
  10. package/dist/bin/exe-cloud.js +58 -45
  11. package/dist/bin/exe-dispatch.js +434 -277
  12. package/dist/bin/exe-doctor.js +317 -246
  13. package/dist/bin/exe-export-behaviors.js +328 -248
  14. package/dist/bin/exe-forget.js +314 -231
  15. package/dist/bin/exe-gateway.js +2676 -1402
  16. package/dist/bin/exe-heartbeat.js +329 -264
  17. package/dist/bin/exe-kill.js +324 -244
  18. package/dist/bin/exe-launch-agent.js +574 -463
  19. package/dist/bin/exe-link.js +1055 -95
  20. package/dist/bin/exe-new-employee.js +49 -54
  21. package/dist/bin/exe-pending-messages.js +310 -253
  22. package/dist/bin/exe-pending-notifications.js +299 -228
  23. package/dist/bin/exe-pending-reviews.js +314 -245
  24. package/dist/bin/exe-rename.js +259 -195
  25. package/dist/bin/exe-review.js +140 -64
  26. package/dist/bin/exe-search.js +543 -356
  27. package/dist/bin/exe-session-cleanup.js +463 -382
  28. package/dist/bin/exe-settings.js +129 -99
  29. package/dist/bin/exe-start.sh +6 -6
  30. package/dist/bin/exe-status.js +95 -36
  31. package/dist/bin/exe-team.js +116 -51
  32. package/dist/bin/git-sweep.js +482 -307
  33. package/dist/bin/graph-backfill.js +357 -245
  34. package/dist/bin/graph-export.js +324 -244
  35. package/dist/bin/install.js +33 -10
  36. package/dist/bin/scan-tasks.js +481 -307
  37. package/dist/bin/setup.js +1147 -140
  38. package/dist/bin/shard-migrate.js +321 -241
  39. package/dist/bin/update.js +1 -7
  40. package/dist/bin/wiki-sync.js +318 -238
  41. package/dist/gateway/index.js +2656 -1383
  42. package/dist/hooks/bug-report-worker.js +641 -472
  43. package/dist/hooks/commit-complete.js +482 -307
  44. package/dist/hooks/error-recall.js +363 -135
  45. package/dist/hooks/exe-heartbeat-hook.js +97 -27
  46. package/dist/hooks/ingest-worker.js +584 -397
  47. package/dist/hooks/ingest.js +123 -58
  48. package/dist/hooks/instructions-loaded.js +212 -82
  49. package/dist/hooks/notification.js +200 -70
  50. package/dist/hooks/post-compact.js +199 -81
  51. package/dist/hooks/pre-compact.js +352 -140
  52. package/dist/hooks/pre-tool-use.js +416 -278
  53. package/dist/hooks/prompt-ingest-worker.js +376 -299
  54. package/dist/hooks/prompt-submit.js +414 -188
  55. package/dist/hooks/response-ingest-worker.js +408 -338
  56. package/dist/hooks/session-end.js +209 -83
  57. package/dist/hooks/session-start.js +382 -158
  58. package/dist/hooks/stop.js +209 -83
  59. package/dist/hooks/subagent-stop.js +209 -85
  60. package/dist/hooks/summary-worker.js +606 -510
  61. package/dist/index.js +2133 -855
  62. package/dist/lib/cloud-sync.js +1175 -184
  63. package/dist/lib/config.js +1 -9
  64. package/dist/lib/consolidation.js +71 -34
  65. package/dist/lib/database.js +166 -14
  66. package/dist/lib/device-registry.js +189 -117
  67. package/dist/lib/embedder.js +6 -10
  68. package/dist/lib/employee-templates.js +134 -39
  69. package/dist/lib/employees.js +30 -7
  70. package/dist/lib/exe-daemon-client.js +5 -7
  71. package/dist/lib/exe-daemon.js +514 -152
  72. package/dist/lib/hybrid-search.js +543 -356
  73. package/dist/lib/identity-templates.js +15 -15
  74. package/dist/lib/identity.js +19 -15
  75. package/dist/lib/license.js +1 -7
  76. package/dist/lib/messaging.js +157 -135
  77. package/dist/lib/reminders.js +97 -0
  78. package/dist/lib/schedules.js +302 -231
  79. package/dist/lib/skill-learning.js +33 -27
  80. package/dist/lib/status-brief.js +11 -14
  81. package/dist/lib/store.js +326 -237
  82. package/dist/lib/task-router.js +105 -1
  83. package/dist/lib/tasks.js +233 -116
  84. package/dist/lib/tmux-routing.js +173 -56
  85. package/dist/lib/ws-client.js +13 -3
  86. package/dist/mcp/server.js +2009 -1015
  87. package/dist/mcp/tools/complete-reminder.js +97 -0
  88. package/dist/mcp/tools/create-reminder.js +97 -0
  89. package/dist/mcp/tools/create-task.js +426 -262
  90. package/dist/mcp/tools/deactivate-behavior.js +119 -44
  91. package/dist/mcp/tools/list-reminders.js +97 -0
  92. package/dist/mcp/tools/list-tasks.js +56 -57
  93. package/dist/mcp/tools/send-message.js +206 -143
  94. package/dist/mcp/tools/update-task.js +259 -85
  95. package/dist/runtime/index.js +495 -316
  96. package/dist/tui/App.js +1128 -919
  97. package/package.json +2 -10
  98. package/src/commands/exe/afk.md +8 -8
  99. package/src/commands/exe/assign.md +1 -1
  100. package/src/commands/exe/build-adv.md +1 -1
  101. package/src/commands/exe/call.md +10 -10
  102. package/src/commands/exe/employee-heartbeat.md +9 -6
  103. package/src/commands/exe/heartbeat.md +5 -5
  104. package/src/commands/exe/intercom.md +26 -15
  105. package/src/commands/exe/launch.md +2 -2
  106. package/src/commands/exe/new-employee.md +1 -1
  107. package/src/commands/exe/review.md +2 -2
  108. package/src/commands/exe/schedule.md +1 -1
  109. package/src/commands/exe/sessions.md +2 -2
  110. package/src/commands/exe.md +22 -20
@@ -73,13 +73,7 @@ var init_config = __esm({
73
73
  wikiUrl: "",
74
74
  wikiApiKey: "",
75
75
  wikiSyncIntervalMs: 30 * 60 * 1e3,
76
- wikiWorkspaceMapping: {
77
- exe: "Executive",
78
- yoshi: "Engineering",
79
- mari: "Marketing",
80
- tom: "Engineering",
81
- sasha: "Production"
82
- },
76
+ wikiWorkspaceMapping: {},
83
77
  wikiAutoUpdate: true,
84
78
  wikiAutoUpdateThreshold: 0.5,
85
79
  wikiAutoUpdateCreateNew: true,
@@ -109,15 +103,23 @@ var init_config = __esm({
109
103
  // src/lib/employees.ts
110
104
  var employees_exports = {};
111
105
  __export(employees_exports, {
106
+ COORDINATOR_ROLE: () => COORDINATOR_ROLE,
107
+ DEFAULT_COORDINATOR_TEMPLATE_NAME: () => DEFAULT_COORDINATOR_TEMPLATE_NAME,
112
108
  EMPLOYEES_PATH: () => EMPLOYEES_PATH,
113
109
  addEmployee: () => addEmployee,
110
+ canCoordinate: () => canCoordinate,
111
+ getCoordinatorEmployee: () => getCoordinatorEmployee,
112
+ getCoordinatorName: () => getCoordinatorName,
114
113
  getEmployee: () => getEmployee,
115
114
  getEmployeeByRole: () => getEmployeeByRole,
116
115
  getEmployeeNamesByRole: () => getEmployeeNamesByRole,
117
116
  hasRole: () => hasRole,
117
+ isCoordinatorName: () => isCoordinatorName,
118
+ isCoordinatorRole: () => isCoordinatorRole,
118
119
  isMultiInstance: () => isMultiInstance,
119
120
  loadEmployees: () => loadEmployees,
120
121
  loadEmployeesSync: () => loadEmployeesSync,
122
+ normalizeRole: () => normalizeRole,
121
123
  normalizeRosterCase: () => normalizeRosterCase,
122
124
  registerBinSymlinks: () => registerBinSymlinks,
123
125
  saveEmployees: () => saveEmployees,
@@ -128,6 +130,25 @@ import { existsSync as existsSync2, symlinkSync, readlinkSync, readFileSync as r
128
130
  import { execSync } from "child_process";
129
131
  import path2 from "path";
130
132
  import os2 from "os";
133
+ function normalizeRole(role) {
134
+ return (role ?? "").trim().toLowerCase();
135
+ }
136
+ function isCoordinatorRole(role) {
137
+ return normalizeRole(role) === normalizeRole(COORDINATOR_ROLE);
138
+ }
139
+ function getCoordinatorEmployee(employees) {
140
+ return employees.find((e) => isCoordinatorRole(e.role));
141
+ }
142
+ function getCoordinatorName(employees = loadEmployeesSync()) {
143
+ return getCoordinatorEmployee(employees)?.name ?? DEFAULT_COORDINATOR_TEMPLATE_NAME;
144
+ }
145
+ function isCoordinatorName(agentName, employees = loadEmployeesSync()) {
146
+ if (!agentName) return false;
147
+ return agentName.toLowerCase() === getCoordinatorName(employees).toLowerCase();
148
+ }
149
+ function canCoordinate(agentName, agentRole, employees = loadEmployeesSync()) {
150
+ return agentName === "default" || isCoordinatorRole(agentRole) || isCoordinatorName(agentName, employees);
151
+ }
131
152
  function validateEmployeeName(name) {
132
153
  if (!name) {
133
154
  return { valid: false, error: "Name is required" };
@@ -265,12 +286,14 @@ function registerBinSymlinks(name) {
265
286
  }
266
287
  return { created, skipped, errors };
267
288
  }
268
- var EMPLOYEES_PATH, MULTI_INSTANCE_ROLES;
289
+ var EMPLOYEES_PATH, DEFAULT_COORDINATOR_TEMPLATE_NAME, COORDINATOR_ROLE, MULTI_INSTANCE_ROLES;
269
290
  var init_employees = __esm({
270
291
  "src/lib/employees.ts"() {
271
292
  "use strict";
272
293
  init_config();
273
294
  EMPLOYEES_PATH = path2.join(EXE_AI_DIR, "exe-employees.json");
295
+ DEFAULT_COORDINATOR_TEMPLATE_NAME = "exe";
296
+ COORDINATOR_ROLE = "COO";
274
297
  MULTI_INSTANCE_ROLES = /* @__PURE__ */ new Set(["principal engineer", "content production specialist", "staff code reviewer"]);
275
298
  }
276
299
  });
@@ -742,10 +765,10 @@ var ORCHESTRATION_RULES = `${EXE_SECTION_START}
742
765
 
743
766
  These rules are injected by exe-os and override default behavior for multi-agent coordination.
744
767
 
745
- - **Session routing is deterministic.** When working in exeN (e.g. exe1), ALL employee sessions use the same number: yoshi-exe1, tom-exe1, mari-exe1. NEVER reference, consider, or dispatch to employee sessions from other project numbers. This is not a choice \u2014 it is a hard constraint.
768
+ - **Session routing is deterministic.** When working in a coordinator session, ALL employee sessions use that same coordinator-session suffix. NEVER reference, consider, or dispatch to employee sessions from other project sessions. This is not a choice \u2014 it is a hard constraint.
746
769
  - **Always use create_task to assign work.** Never use messages, tmux send-keys, or ad-hoc instructions as a substitute for tasks.
747
770
  - **Never modify another agent's in-progress task.** Create a new task instead. Modifying active tasks causes race conditions.
748
- - **Chain of command:** founder \u2192 exe \u2192 yoshi \u2192 engineers. Exe does not assign directly to tom or other engineers below yoshi.
771
+ - **Chain of command:** founder -> COO -> managers -> specialists. The COO does not bypass managers for specialist work.
749
772
  - **Verify dispatch.** After every create_task, confirm the employee received and started the task via tmux capture-pane.
750
773
  ${EXE_SECTION_END}`;
751
774
  async function injectOrchestrationRules(homeDir) {