@askexenow/exe-os 0.9.89 → 0.9.90

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 (71) hide show
  1. package/deploy/stack-manifests/v0.9.json +48 -9
  2. package/dist/bin/agentic-ontology-backfill.js +44 -23
  3. package/dist/bin/agentic-reflection-backfill.js +44 -23
  4. package/dist/bin/agentic-semantic-label.js +44 -23
  5. package/dist/bin/backfill-conversations.js +44 -23
  6. package/dist/bin/backfill-responses.js +44 -23
  7. package/dist/bin/backfill-vectors.js +44 -23
  8. package/dist/bin/bulk-sync-postgres.js +44 -23
  9. package/dist/bin/cleanup-stale-review-tasks.js +44 -23
  10. package/dist/bin/cli.js +44 -23
  11. package/dist/bin/exe-agent.js +44 -23
  12. package/dist/bin/exe-assign.js +44 -23
  13. package/dist/bin/exe-boot.js +44 -23
  14. package/dist/bin/exe-call.js +44 -23
  15. package/dist/bin/exe-cloud.js +44 -23
  16. package/dist/bin/exe-dispatch.js +44 -23
  17. package/dist/bin/exe-doctor.js +44 -23
  18. package/dist/bin/exe-export-behaviors.js +44 -23
  19. package/dist/bin/exe-forget.js +44 -23
  20. package/dist/bin/exe-gateway.js +44 -23
  21. package/dist/bin/exe-heartbeat.js +44 -23
  22. package/dist/bin/exe-kill.js +44 -23
  23. package/dist/bin/exe-launch-agent.js +44 -23
  24. package/dist/bin/exe-new-employee.js +44 -23
  25. package/dist/bin/exe-pending-messages.js +44 -23
  26. package/dist/bin/exe-pending-notifications.js +44 -23
  27. package/dist/bin/exe-pending-reviews.js +44 -23
  28. package/dist/bin/exe-rename.js +44 -23
  29. package/dist/bin/exe-review.js +44 -23
  30. package/dist/bin/exe-search.js +44 -23
  31. package/dist/bin/exe-session-cleanup.js +44 -23
  32. package/dist/bin/exe-start-codex.js +44 -23
  33. package/dist/bin/exe-start-opencode.js +44 -23
  34. package/dist/bin/exe-status.js +44 -23
  35. package/dist/bin/exe-team.js +44 -23
  36. package/dist/bin/git-sweep.js +44 -23
  37. package/dist/bin/graph-backfill.js +44 -23
  38. package/dist/bin/graph-export.js +44 -23
  39. package/dist/bin/intercom-check.js +44 -23
  40. package/dist/bin/scan-tasks.js +44 -23
  41. package/dist/bin/setup.js +44 -23
  42. package/dist/bin/shard-migrate.js +44 -23
  43. package/dist/gateway/index.js +44 -23
  44. package/dist/hooks/bug-report-worker.js +44 -23
  45. package/dist/hooks/codex-stop-task-finalizer.js +44 -23
  46. package/dist/hooks/commit-complete.js +44 -23
  47. package/dist/hooks/error-recall.js +44 -23
  48. package/dist/hooks/ingest.js +44 -23
  49. package/dist/hooks/instructions-loaded.js +44 -23
  50. package/dist/hooks/notification.js +44 -23
  51. package/dist/hooks/post-compact.js +44 -23
  52. package/dist/hooks/post-tool-combined.js +44 -23
  53. package/dist/hooks/pre-compact.js +44 -23
  54. package/dist/hooks/pre-tool-use.js +44 -23
  55. package/dist/hooks/prompt-submit.js +44 -23
  56. package/dist/hooks/session-end.js +44 -23
  57. package/dist/hooks/session-start.js +44 -23
  58. package/dist/hooks/stop.js +44 -23
  59. package/dist/hooks/subagent-stop.js +44 -23
  60. package/dist/hooks/summary-worker.js +44 -23
  61. package/dist/index.js +44 -23
  62. package/dist/lib/employee-templates.js +44 -23
  63. package/dist/lib/exe-daemon.js +44 -23
  64. package/dist/lib/hybrid-search.js +44 -23
  65. package/dist/lib/schedules.js +44 -23
  66. package/dist/lib/store.js +44 -23
  67. package/dist/mcp/server.js +44 -23
  68. package/dist/runtime/index.js +44 -23
  69. package/dist/tui/App.js +44 -23
  70. package/package.json +1 -1
  71. package/stack.release.json +4 -4
@@ -4135,6 +4135,19 @@ var init_platform_procedures = __esm({
4135
4135
  priority: "p1",
4136
4136
  content: "exe-os supports three tools: Claude Code (Anthropic), Codex (OpenAI), and OpenCode (open source, 75+ providers). Each agent can use a different tool and model. COO uses set_agent_config MCP tool to view or change settings. Call with no args to show all agents. Call with agent_id + runtime + model to change. Users can also run `exe-os settings` from terminal for interactive arrow-key selection."
4137
4137
  },
4138
+ // --- Updates and deployment ---
4139
+ {
4140
+ title: "How to update exe-os \u2014 CLI update + stack update (two steps)",
4141
+ domain: "operations",
4142
+ priority: "p0",
4143
+ content: 'Updating exe-os is a two-step process. Step 1 \u2014 update the CLI: `npm install -g @askexenow/exe-os@latest` (gets bug fixes, new platform procedures, new tools). Step 2 \u2014 update the VPS stack (if applicable): `exe-os stack-update --target <version> --yes` (pulls new Docker images for exed, wiki, CRM, gateway). Step 1 MUST happen before Step 2 \u2014 the stack-update command itself may have bug fixes. After updating, restart the daemon: the deploy script handles this automatically. Check update availability: `exe-os update --check` or config(action="check_update"). Agents should NEVER run npm install or stack-update autonomously \u2014 always confirm with the user first.'
4144
+ },
4145
+ {
4146
+ title: "First install \u2014 setup wizard and license activation",
4147
+ domain: "operations",
4148
+ priority: "p1",
4149
+ content: "Fresh install: `npm install -g @askexenow/exe-os` then run `exe` to start the setup wizard. The wizard prompts for: encryption passphrase (creates master key), license key (exe_sk_* from AskExe team), COO name, and optional team members. No license key = free tier (1 employee, 5K memories). After setup: hooks install automatically, MCP server registers in ~/.claude.json, daemon starts. Verify health: run `exe-os healthcheck` or use mcp_ping() tool."
4150
+ },
4138
4151
  // --- Hierarchy and dispatch ---
4139
4152
  {
4140
4153
  title: "Chain of command \u2014 who talks to whom",
@@ -4205,6 +4218,20 @@ var init_platform_procedures = __esm({
4205
4218
  priority: "p1",
4206
4219
  content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
4207
4220
  },
4221
+ // --- Platform vs Customer ownership ---
4222
+ {
4223
+ title: "What the platform provides vs what you customize",
4224
+ domain: "architecture",
4225
+ priority: "p0",
4226
+ content: "Exe OS has two layers. PLATFORM layer (shipped in code, updated via npm): platform procedures, default identity templates, MCP tools, tool gating, schema migrations, daemon behavior. You get improvements automatically on update. CUSTOMER layer (yours, stored locally): agent identities (exe.md files), behaviors, company procedures, config.json, wiki content, CRM data, memory. These are NEVER overwritten by updates. Identity templates are stamped once at /exe-new-employee \u2014 after that the file is yours. If the platform ships a better template, you can compare yours against the default with getTemplate() and merge what you want. Company procedures (company_procedure tool) layer ON TOP of platform procedures \u2014 both are injected, platform first. Behaviors are always yours. Config is always yours. The platform will never modify your local data."
4227
+ },
4228
+ // --- Updates ---
4229
+ {
4230
+ title: "How to update exe-os \u2014 CLI first, then stack",
4231
+ domain: "operations",
4232
+ priority: "p0",
4233
+ content: "When bug fixes or features are available (surfaced at boot via list_my_bug_reports/list_my_feature_requests), update in two steps: (1) CLI: `npm install -g @askexenow/exe-os@latest` \u2014 this updates the local tools, MCP server, and bundled stack manifest. Must happen first so the stack-update tool itself has the latest fixes. (2) Stack (VPS only): `exe-os stack-update --target <version> --yes` \u2014 pulls new Docker images and restarts services. The target version comes from the stack manifest bundled with the CLI. Always update CLI before stack. Use `exe-os update --check` to see if a CLI update is available. Use `exe-os stack-update --check` to see stack status. For non-interactive/SSH: use `--yes` or `-y` flag. Never run `npm install -g` inside a tmux agent session \u2014 have the founder or COO do it from the host shell."
4234
+ },
4208
4235
  // --- Operations ---
4209
4236
  {
4210
4237
  title: "Managers must supervise deployed workers",
@@ -4264,58 +4291,52 @@ var init_platform_procedures = __esm({
4264
4291
  },
4265
4292
  // --- MCP Tool Catalog (Layer 0 — every agent knows what tools exist) ---
4266
4293
  {
4267
- title: "MCP tools \u2014 memory and search",
4294
+ title: "MCP tool dispatch \u2014 all tools use action parameter",
4268
4295
  domain: "tool-use",
4269
- priority: "p1",
4270
- content: "recall_my_memory: search your own memories (semantic + FTS). ask_team_memory: search a colleague's memories by agent name. store_memory: persist a memory (decisions, summaries, context). commit_memory: high-importance memory that survives consolidation. search_everything: unified search across memories, tasks, entities, conversations. get_session_context: temporal window of memories around a timestamp. consolidate_memories: merge duplicate/related memories into insights. get_memory_cardinality: count memories per agent (health check)."
4271
- },
4272
- {
4273
- title: "MCP tools \u2014 task orchestration",
4274
- domain: "tool-use",
4275
- priority: "p1",
4276
- content: "create_task: dispatch work to an employee (auto-spawns session). The ONLY dispatch path. list_tasks: query tasks by status, assignee, project. get_task: fetch full task details by ID. update_task: change status (in_progress, done, blocked, cancelled) + add result summary. close_task: finalize a reviewed task (COO only). checkpoint_task: save progress state for crash recovery. resume_employee: re-spawn an employee session for an existing task."
4296
+ priority: "p0",
4297
+ content: 'exe-os MCP tools come in two surfaces depending on EXE_MCP_TOOL_SURFACE config. Consolidated (19 tools): action-based dispatch \u2014 memory(action="recall"), task(action="create"), etc. Legacy (108 tools): one tool per operation \u2014 recall_my_memory, create_task, etc. Both surfaces have identical functionality. Use whichever tool names are available in your session. If you see domain tools (memory, task, config, etc.), use the action parameter. If you see specific tools (recall_my_memory, create_task, etc.), call them directly.'
4277
4298
  },
4278
4299
  {
4279
- title: "MCP tools \u2014 knowledge graph (GraphRAG)",
4300
+ title: "MCP tools \u2014 memory, decision, and search",
4280
4301
  domain: "tool-use",
4281
4302
  priority: "p1",
4282
- content: "query_relationships: find connections between entities in the knowledge graph. get_entity_neighbors: explore an entity's direct connections. get_hot_entities: find most-referenced entities (trending topics). get_graph_stats: graph health \u2014 entity/relationship counts, density. export_graph: export graph data for visualization. merge_entities: deduplicate entities (alias resolution). find_similar_trajectories: match tool-call patterns to past task solutions."
4303
+ content: `memory(action="recall") / recall_my_memory: search your own memories (semantic + FTS). memory(action="ask_team") / ask_team_memory: search a colleague's memories by agent name. memory(action="store") / store_memory: persist a memory. memory(action="commit") / commit_memory: high-importance memory that survives consolidation. Requires summary. memory(action="search") / search_everything: unified search across memories, tasks, entities, conversations. memory(action="session_context") / get_session_context: temporal memory window. Requires session_id + target_timestamp. memory(action="consolidate") / consolidate_memories: merge duplicate/related memories. memory(action="cardinality") / get_memory_cardinality: count memories per agent. decision(action="store") / store_decision: record an architectural decision (domain, decision, rationale). decision(action="get") / get_decision: retrieve a past decision by domain or query.`
4283
4304
  },
4284
4305
  {
4285
- title: "MCP tools \u2014 identity, behavior, and decisions",
4306
+ title: "MCP tools \u2014 task orchestration",
4286
4307
  domain: "tool-use",
4287
4308
  priority: "p1",
4288
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: customer-facing bug/support intake; use whenever an Exe OS bug or emergency hotfix is encountered so the report reaches AskExe directly. support_health: check local support readiness and AskExe support server health without filing a report. support_test: file a safe end-to-end smoke report. Customers only get report/test access; internal list/get/triage support tools are AskExe-only. If a customer-side agent cannot send upstream, call support_test first; only fall back to the terminal command `exe-os support test` when MCP is disconnected."
4309
+ content: 'task(action="create") / create_task: dispatch work (title, assigned_to, context). The ONLY dispatch path. Auto-spawns session. task(action="list") / list_tasks: query tasks by status, assignee, project. task(action="get") / get_task: fetch full task details by task_id. task(action="update") / update_task: change status (in_progress, done, blocked, cancelled) + result summary. task(action="close") / close_task: finalize a reviewed task (COO only). task(action="checkpoint") / checkpoint_task: save progress state for crash recovery. task(action="resume") / resume_employee: re-spawn an employee session for an existing task.'
4289
4310
  },
4290
4311
  {
4291
- title: "MCP tools \u2014 communication and messaging",
4312
+ title: "MCP tools \u2014 knowledge graph (GraphRAG)",
4292
4313
  domain: "tool-use",
4293
4314
  priority: "p1",
4294
- content: "send_message: send supplementary context to another agent (NOT for actionable work \u2014 use create_task). acknowledge_messages: mark messages as read. send_whatsapp: send WhatsApp message via gateway (customer-facing alerts). query_conversations: search ingested conversations across all channels (WhatsApp, email, etc.)."
4315
+ content: 'graph(action="query_relationships") / query_relationships: find connections between entities. graph(action="entity_neighbors") / get_entity_neighbors: explore direct connections. graph(action="hot_entities") / get_hot_entities: most-referenced entities. graph(action="stats") / get_graph_stats: entity/relationship counts. graph(action="export") / export_graph: export for visualization (output_path, format). graph(action="merge_entities") / merge_entities: deduplicate entities (source_id, target_id). graph(action="similar_trajectories") / find_similar_trajectories: match patterns to past solutions.'
4295
4316
  },
4296
4317
  {
4297
- title: "MCP tools \u2014 wiki, documents, and content",
4318
+ title: "MCP tools \u2014 identity, behavior, and support",
4298
4319
  domain: "tool-use",
4299
4320
  priority: "p1",
4300
- content: "wiki: read/list wiki pages only. Direct wiki write tools are removed; wiki updates flow through raw-data ingestion/projection into the curated wiki store. Legacy aliases: list_wiki_pages/get_wiki_page. crm: read/list/get CRM records from exe-db. raw_data: read capped raw landing-pad events from exe-db with payload opt-in. ingest_document: import a file (PDF, MD, etc.) into memory as chunks. list_documents: browse ingested documents by workspace. purge_document: remove a document and its memory chunks. set_document_importance: adjust chunk importance scores. rerank_documents: re-score document relevance for a query."
4321
+ content: `identity(action="get") / get_identity: read an agent's exe.md (Layer 1 identity). identity(action="update") / update_identity: write an agent's exe.md. Identity > behavior. behavior(action="store") / store_behavior: record a correction or pattern (Layer 2 expertise). behavior(action="list") / list_behaviors: view active behaviors. behavior(action="deactivate") / deactivate_behavior: soft-delete a stale behavior. support(action="create_bug") / create_bug_report: file a bug report to AskExe (title, description, severity). support(action="create_feature") / create_feature_request: file a feature request. support(action="health") / support_health: check support server readiness. support(action="triage_bug"): triage a bug (id, triage_notes). AskExe-internal only. CRITICAL: triage uses triage_notes NOT notes.`
4301
4322
  },
4302
4323
  {
4303
- title: "MCP tools \u2014 system, operations, and admin",
4324
+ title: "MCP tools \u2014 communication and messaging",
4304
4325
  domain: "tool-use",
4305
4326
  priority: "p1",
4306
- content: "get_agent_spend: token usage per agent/session (cost tracking). list_agent_sessions: view agent session history. get_session_kills: audit log of killed sessions. get_daemon_health: check exed daemon status. get_auto_wake_status: daemon auto-wake configuration. get_worker_gate: check worker deployment gates. run_memory_audit: health check \u2014 duplicates, null vectors, orphaned rows. run_consolidation: trigger sleep-time memory consolidation. cloud_sync: force a cloud sync cycle. backup_vps: trigger VPS backup."
4327
+ content: 'message(action="send") / send_message: send context to another agent (NOT for actionable work \u2014 use task). message(action="acknowledge") / acknowledge_messages: mark messages as read. reminder(action="create") / create_reminder: set a reminder (text, due_date). Shown in boot brief. reminder(action="list") / list_reminders: view pending reminders. reminder(action="complete") / complete_reminder: mark done (reminder_id). session(action="events") / get_session_events: view session event log (session_id). session(action="last_response") / get_last_assistant_response: get most recent response.'
4307
4328
  },
4308
4329
  {
4309
- title: "MCP tools \u2014 config, licensing, and team",
4330
+ title: "MCP tools \u2014 wiki, documents, CRM, and data",
4310
4331
  domain: "tool-use",
4311
4332
  priority: "p1",
4312
- content: "set_agent_config: view/change per-agent runtime and model settings. list_employees: view the employee roster. add_person: add a person to the CRM contacts roster. list_people: browse CRM contacts. get_person: fetch contact details. get_license_status: check license validity. create_license: generate a new license key (admin). list_licenses: view all issued licenses. activate_license: activate a license on a device."
4333
+ content: 'wiki(action="list") / list_wiki_pages: list wiki pages (workspace). wiki(action="get") / get_wiki_page: read a wiki page (workspace, title or document_id). document(action="ingest") / ingest_document: import a file as memory chunks (workspace_id, filename, chunks). document(action="list") / list_documents: browse documents (workspace_id). document(action="purge") / purge_document: remove a document (document_id). document(action="set_importance") / set_document_importance: adjust chunk scores. document(action="rerank") / rerank_documents: re-score relevance (query, candidates). crm(action="list_people|get_person|list_tables|describe_table"): CRM records from exe-db. raw_data(action="list_sources|query|get"): read raw landing-pad events. gateway(action="send_whatsapp") / send_whatsapp: send WhatsApp message (recipients, message). gateway(action="query_conversations") / query_conversations: search conversations across channels. gateway(action="query_company_brain") / query_company_brain: unified RAG across company knowledge.'
4313
4334
  },
4314
4335
  {
4315
- title: "MCP tools \u2014 advanced (triggers, skills, orchestration)",
4336
+ title: "MCP tools \u2014 admin, config, and operations",
4316
4337
  domain: "tool-use",
4317
4338
  priority: "p1",
4318
- content: "create_trigger: set up a scheduled recurring agent job (cron). list_triggers: view active triggers. load_skill: load a slash-command skill dynamically. apply_starter_pack: import a pre-built behavior + identity pack for a role. export_orchestration: export full org state (tasks, behaviors, identities) as portable JSON. import_orchestration: import org state into a new instance. deploy_client: deploy a customer client instance. query_company_brain: unified RAG query across all company knowledge. create_reminder: set a text reminder (shown in boot brief). list_reminders: view pending reminders. complete_reminder: mark a reminder done. company_procedure: manage customer-owned company procedures (Layer 0; actions: store, list, deactivate). Legacy aliases: global_procedure, store_global_procedure, list_global_procedures, deactivate_global_procedure."
4339
+ content: 'config(action="list_employees"): view roster. config(action="agent_spend"): token usage per agent. config(action="daemon_health"): check exed status. config(action="license_status"): check license. config(action="cloud_sync"): force sync. config(action="memory_audit"): health check (dupes, null vectors). config(action="run_consolidation"): trigger memory consolidation. config(action="company_procedure", subaction="store|list|deactivate"): manage company procedures. config(action="global_procedure"): list all procedures (platform + company). config(action="create_trigger|list_triggers"): scheduled agent jobs. config(action="export_orchestration|import_orchestration"): portable org state. diagnostics(action="healthcheck|doctor|status_brief|check_update|cloud_status"): system diagnostics. mcp_ping(): daemon health + license status + tool usage stats.'
4319
4340
  }
4320
4341
  ];
4321
4342
  PLATFORM_PROCEDURE_TITLES = new Set(
@@ -4124,6 +4124,19 @@ var init_platform_procedures = __esm({
4124
4124
  priority: "p1",
4125
4125
  content: "exe-os supports three tools: Claude Code (Anthropic), Codex (OpenAI), and OpenCode (open source, 75+ providers). Each agent can use a different tool and model. COO uses set_agent_config MCP tool to view or change settings. Call with no args to show all agents. Call with agent_id + runtime + model to change. Users can also run `exe-os settings` from terminal for interactive arrow-key selection."
4126
4126
  },
4127
+ // --- Updates and deployment ---
4128
+ {
4129
+ title: "How to update exe-os \u2014 CLI update + stack update (two steps)",
4130
+ domain: "operations",
4131
+ priority: "p0",
4132
+ content: 'Updating exe-os is a two-step process. Step 1 \u2014 update the CLI: `npm install -g @askexenow/exe-os@latest` (gets bug fixes, new platform procedures, new tools). Step 2 \u2014 update the VPS stack (if applicable): `exe-os stack-update --target <version> --yes` (pulls new Docker images for exed, wiki, CRM, gateway). Step 1 MUST happen before Step 2 \u2014 the stack-update command itself may have bug fixes. After updating, restart the daemon: the deploy script handles this automatically. Check update availability: `exe-os update --check` or config(action="check_update"). Agents should NEVER run npm install or stack-update autonomously \u2014 always confirm with the user first.'
4133
+ },
4134
+ {
4135
+ title: "First install \u2014 setup wizard and license activation",
4136
+ domain: "operations",
4137
+ priority: "p1",
4138
+ content: "Fresh install: `npm install -g @askexenow/exe-os` then run `exe` to start the setup wizard. The wizard prompts for: encryption passphrase (creates master key), license key (exe_sk_* from AskExe team), COO name, and optional team members. No license key = free tier (1 employee, 5K memories). After setup: hooks install automatically, MCP server registers in ~/.claude.json, daemon starts. Verify health: run `exe-os healthcheck` or use mcp_ping() tool."
4139
+ },
4127
4140
  // --- Hierarchy and dispatch ---
4128
4141
  {
4129
4142
  title: "Chain of command \u2014 who talks to whom",
@@ -4194,6 +4207,20 @@ var init_platform_procedures = __esm({
4194
4207
  priority: "p1",
4195
4208
  content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
4196
4209
  },
4210
+ // --- Platform vs Customer ownership ---
4211
+ {
4212
+ title: "What the platform provides vs what you customize",
4213
+ domain: "architecture",
4214
+ priority: "p0",
4215
+ content: "Exe OS has two layers. PLATFORM layer (shipped in code, updated via npm): platform procedures, default identity templates, MCP tools, tool gating, schema migrations, daemon behavior. You get improvements automatically on update. CUSTOMER layer (yours, stored locally): agent identities (exe.md files), behaviors, company procedures, config.json, wiki content, CRM data, memory. These are NEVER overwritten by updates. Identity templates are stamped once at /exe-new-employee \u2014 after that the file is yours. If the platform ships a better template, you can compare yours against the default with getTemplate() and merge what you want. Company procedures (company_procedure tool) layer ON TOP of platform procedures \u2014 both are injected, platform first. Behaviors are always yours. Config is always yours. The platform will never modify your local data."
4216
+ },
4217
+ // --- Updates ---
4218
+ {
4219
+ title: "How to update exe-os \u2014 CLI first, then stack",
4220
+ domain: "operations",
4221
+ priority: "p0",
4222
+ content: "When bug fixes or features are available (surfaced at boot via list_my_bug_reports/list_my_feature_requests), update in two steps: (1) CLI: `npm install -g @askexenow/exe-os@latest` \u2014 this updates the local tools, MCP server, and bundled stack manifest. Must happen first so the stack-update tool itself has the latest fixes. (2) Stack (VPS only): `exe-os stack-update --target <version> --yes` \u2014 pulls new Docker images and restarts services. The target version comes from the stack manifest bundled with the CLI. Always update CLI before stack. Use `exe-os update --check` to see if a CLI update is available. Use `exe-os stack-update --check` to see stack status. For non-interactive/SSH: use `--yes` or `-y` flag. Never run `npm install -g` inside a tmux agent session \u2014 have the founder or COO do it from the host shell."
4223
+ },
4197
4224
  // --- Operations ---
4198
4225
  {
4199
4226
  title: "Managers must supervise deployed workers",
@@ -4253,58 +4280,52 @@ var init_platform_procedures = __esm({
4253
4280
  },
4254
4281
  // --- MCP Tool Catalog (Layer 0 — every agent knows what tools exist) ---
4255
4282
  {
4256
- title: "MCP tools \u2014 memory and search",
4283
+ title: "MCP tool dispatch \u2014 all tools use action parameter",
4257
4284
  domain: "tool-use",
4258
- priority: "p1",
4259
- content: "recall_my_memory: search your own memories (semantic + FTS). ask_team_memory: search a colleague's memories by agent name. store_memory: persist a memory (decisions, summaries, context). commit_memory: high-importance memory that survives consolidation. search_everything: unified search across memories, tasks, entities, conversations. get_session_context: temporal window of memories around a timestamp. consolidate_memories: merge duplicate/related memories into insights. get_memory_cardinality: count memories per agent (health check)."
4260
- },
4261
- {
4262
- title: "MCP tools \u2014 task orchestration",
4263
- domain: "tool-use",
4264
- priority: "p1",
4265
- content: "create_task: dispatch work to an employee (auto-spawns session). The ONLY dispatch path. list_tasks: query tasks by status, assignee, project. get_task: fetch full task details by ID. update_task: change status (in_progress, done, blocked, cancelled) + add result summary. close_task: finalize a reviewed task (COO only). checkpoint_task: save progress state for crash recovery. resume_employee: re-spawn an employee session for an existing task."
4285
+ priority: "p0",
4286
+ content: 'exe-os MCP tools come in two surfaces depending on EXE_MCP_TOOL_SURFACE config. Consolidated (19 tools): action-based dispatch \u2014 memory(action="recall"), task(action="create"), etc. Legacy (108 tools): one tool per operation \u2014 recall_my_memory, create_task, etc. Both surfaces have identical functionality. Use whichever tool names are available in your session. If you see domain tools (memory, task, config, etc.), use the action parameter. If you see specific tools (recall_my_memory, create_task, etc.), call them directly.'
4266
4287
  },
4267
4288
  {
4268
- title: "MCP tools \u2014 knowledge graph (GraphRAG)",
4289
+ title: "MCP tools \u2014 memory, decision, and search",
4269
4290
  domain: "tool-use",
4270
4291
  priority: "p1",
4271
- content: "query_relationships: find connections between entities in the knowledge graph. get_entity_neighbors: explore an entity's direct connections. get_hot_entities: find most-referenced entities (trending topics). get_graph_stats: graph health \u2014 entity/relationship counts, density. export_graph: export graph data for visualization. merge_entities: deduplicate entities (alias resolution). find_similar_trajectories: match tool-call patterns to past task solutions."
4292
+ content: `memory(action="recall") / recall_my_memory: search your own memories (semantic + FTS). memory(action="ask_team") / ask_team_memory: search a colleague's memories by agent name. memory(action="store") / store_memory: persist a memory. memory(action="commit") / commit_memory: high-importance memory that survives consolidation. Requires summary. memory(action="search") / search_everything: unified search across memories, tasks, entities, conversations. memory(action="session_context") / get_session_context: temporal memory window. Requires session_id + target_timestamp. memory(action="consolidate") / consolidate_memories: merge duplicate/related memories. memory(action="cardinality") / get_memory_cardinality: count memories per agent. decision(action="store") / store_decision: record an architectural decision (domain, decision, rationale). decision(action="get") / get_decision: retrieve a past decision by domain or query.`
4272
4293
  },
4273
4294
  {
4274
- title: "MCP tools \u2014 identity, behavior, and decisions",
4295
+ title: "MCP tools \u2014 task orchestration",
4275
4296
  domain: "tool-use",
4276
4297
  priority: "p1",
4277
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: customer-facing bug/support intake; use whenever an Exe OS bug or emergency hotfix is encountered so the report reaches AskExe directly. support_health: check local support readiness and AskExe support server health without filing a report. support_test: file a safe end-to-end smoke report. Customers only get report/test access; internal list/get/triage support tools are AskExe-only. If a customer-side agent cannot send upstream, call support_test first; only fall back to the terminal command `exe-os support test` when MCP is disconnected."
4298
+ content: 'task(action="create") / create_task: dispatch work (title, assigned_to, context). The ONLY dispatch path. Auto-spawns session. task(action="list") / list_tasks: query tasks by status, assignee, project. task(action="get") / get_task: fetch full task details by task_id. task(action="update") / update_task: change status (in_progress, done, blocked, cancelled) + result summary. task(action="close") / close_task: finalize a reviewed task (COO only). task(action="checkpoint") / checkpoint_task: save progress state for crash recovery. task(action="resume") / resume_employee: re-spawn an employee session for an existing task.'
4278
4299
  },
4279
4300
  {
4280
- title: "MCP tools \u2014 communication and messaging",
4301
+ title: "MCP tools \u2014 knowledge graph (GraphRAG)",
4281
4302
  domain: "tool-use",
4282
4303
  priority: "p1",
4283
- content: "send_message: send supplementary context to another agent (NOT for actionable work \u2014 use create_task). acknowledge_messages: mark messages as read. send_whatsapp: send WhatsApp message via gateway (customer-facing alerts). query_conversations: search ingested conversations across all channels (WhatsApp, email, etc.)."
4304
+ content: 'graph(action="query_relationships") / query_relationships: find connections between entities. graph(action="entity_neighbors") / get_entity_neighbors: explore direct connections. graph(action="hot_entities") / get_hot_entities: most-referenced entities. graph(action="stats") / get_graph_stats: entity/relationship counts. graph(action="export") / export_graph: export for visualization (output_path, format). graph(action="merge_entities") / merge_entities: deduplicate entities (source_id, target_id). graph(action="similar_trajectories") / find_similar_trajectories: match patterns to past solutions.'
4284
4305
  },
4285
4306
  {
4286
- title: "MCP tools \u2014 wiki, documents, and content",
4307
+ title: "MCP tools \u2014 identity, behavior, and support",
4287
4308
  domain: "tool-use",
4288
4309
  priority: "p1",
4289
- content: "wiki: read/list wiki pages only. Direct wiki write tools are removed; wiki updates flow through raw-data ingestion/projection into the curated wiki store. Legacy aliases: list_wiki_pages/get_wiki_page. crm: read/list/get CRM records from exe-db. raw_data: read capped raw landing-pad events from exe-db with payload opt-in. ingest_document: import a file (PDF, MD, etc.) into memory as chunks. list_documents: browse ingested documents by workspace. purge_document: remove a document and its memory chunks. set_document_importance: adjust chunk importance scores. rerank_documents: re-score document relevance for a query."
4310
+ content: `identity(action="get") / get_identity: read an agent's exe.md (Layer 1 identity). identity(action="update") / update_identity: write an agent's exe.md. Identity > behavior. behavior(action="store") / store_behavior: record a correction or pattern (Layer 2 expertise). behavior(action="list") / list_behaviors: view active behaviors. behavior(action="deactivate") / deactivate_behavior: soft-delete a stale behavior. support(action="create_bug") / create_bug_report: file a bug report to AskExe (title, description, severity). support(action="create_feature") / create_feature_request: file a feature request. support(action="health") / support_health: check support server readiness. support(action="triage_bug"): triage a bug (id, triage_notes). AskExe-internal only. CRITICAL: triage uses triage_notes NOT notes.`
4290
4311
  },
4291
4312
  {
4292
- title: "MCP tools \u2014 system, operations, and admin",
4313
+ title: "MCP tools \u2014 communication and messaging",
4293
4314
  domain: "tool-use",
4294
4315
  priority: "p1",
4295
- content: "get_agent_spend: token usage per agent/session (cost tracking). list_agent_sessions: view agent session history. get_session_kills: audit log of killed sessions. get_daemon_health: check exed daemon status. get_auto_wake_status: daemon auto-wake configuration. get_worker_gate: check worker deployment gates. run_memory_audit: health check \u2014 duplicates, null vectors, orphaned rows. run_consolidation: trigger sleep-time memory consolidation. cloud_sync: force a cloud sync cycle. backup_vps: trigger VPS backup."
4316
+ content: 'message(action="send") / send_message: send context to another agent (NOT for actionable work \u2014 use task). message(action="acknowledge") / acknowledge_messages: mark messages as read. reminder(action="create") / create_reminder: set a reminder (text, due_date). Shown in boot brief. reminder(action="list") / list_reminders: view pending reminders. reminder(action="complete") / complete_reminder: mark done (reminder_id). session(action="events") / get_session_events: view session event log (session_id). session(action="last_response") / get_last_assistant_response: get most recent response.'
4296
4317
  },
4297
4318
  {
4298
- title: "MCP tools \u2014 config, licensing, and team",
4319
+ title: "MCP tools \u2014 wiki, documents, CRM, and data",
4299
4320
  domain: "tool-use",
4300
4321
  priority: "p1",
4301
- content: "set_agent_config: view/change per-agent runtime and model settings. list_employees: view the employee roster. add_person: add a person to the CRM contacts roster. list_people: browse CRM contacts. get_person: fetch contact details. get_license_status: check license validity. create_license: generate a new license key (admin). list_licenses: view all issued licenses. activate_license: activate a license on a device."
4322
+ content: 'wiki(action="list") / list_wiki_pages: list wiki pages (workspace). wiki(action="get") / get_wiki_page: read a wiki page (workspace, title or document_id). document(action="ingest") / ingest_document: import a file as memory chunks (workspace_id, filename, chunks). document(action="list") / list_documents: browse documents (workspace_id). document(action="purge") / purge_document: remove a document (document_id). document(action="set_importance") / set_document_importance: adjust chunk scores. document(action="rerank") / rerank_documents: re-score relevance (query, candidates). crm(action="list_people|get_person|list_tables|describe_table"): CRM records from exe-db. raw_data(action="list_sources|query|get"): read raw landing-pad events. gateway(action="send_whatsapp") / send_whatsapp: send WhatsApp message (recipients, message). gateway(action="query_conversations") / query_conversations: search conversations across channels. gateway(action="query_company_brain") / query_company_brain: unified RAG across company knowledge.'
4302
4323
  },
4303
4324
  {
4304
- title: "MCP tools \u2014 advanced (triggers, skills, orchestration)",
4325
+ title: "MCP tools \u2014 admin, config, and operations",
4305
4326
  domain: "tool-use",
4306
4327
  priority: "p1",
4307
- content: "create_trigger: set up a scheduled recurring agent job (cron). list_triggers: view active triggers. load_skill: load a slash-command skill dynamically. apply_starter_pack: import a pre-built behavior + identity pack for a role. export_orchestration: export full org state (tasks, behaviors, identities) as portable JSON. import_orchestration: import org state into a new instance. deploy_client: deploy a customer client instance. query_company_brain: unified RAG query across all company knowledge. create_reminder: set a text reminder (shown in boot brief). list_reminders: view pending reminders. complete_reminder: mark a reminder done. company_procedure: manage customer-owned company procedures (Layer 0; actions: store, list, deactivate). Legacy aliases: global_procedure, store_global_procedure, list_global_procedures, deactivate_global_procedure."
4328
+ content: 'config(action="list_employees"): view roster. config(action="agent_spend"): token usage per agent. config(action="daemon_health"): check exed status. config(action="license_status"): check license. config(action="cloud_sync"): force sync. config(action="memory_audit"): health check (dupes, null vectors). config(action="run_consolidation"): trigger memory consolidation. config(action="company_procedure", subaction="store|list|deactivate"): manage company procedures. config(action="global_procedure"): list all procedures (platform + company). config(action="create_trigger|list_triggers"): scheduled agent jobs. config(action="export_orchestration|import_orchestration"): portable org state. diagnostics(action="healthcheck|doctor|status_brief|check_update|cloud_status"): system diagnostics. mcp_ping(): daemon health + license status + tool usage stats.'
4308
4329
  }
4309
4330
  ];
4310
4331
  PLATFORM_PROCEDURE_TITLES = new Set(
@@ -7829,6 +7829,19 @@ var init_platform_procedures = __esm({
7829
7829
  priority: "p1",
7830
7830
  content: "exe-os supports three tools: Claude Code (Anthropic), Codex (OpenAI), and OpenCode (open source, 75+ providers). Each agent can use a different tool and model. COO uses set_agent_config MCP tool to view or change settings. Call with no args to show all agents. Call with agent_id + runtime + model to change. Users can also run `exe-os settings` from terminal for interactive arrow-key selection."
7831
7831
  },
7832
+ // --- Updates and deployment ---
7833
+ {
7834
+ title: "How to update exe-os \u2014 CLI update + stack update (two steps)",
7835
+ domain: "operations",
7836
+ priority: "p0",
7837
+ content: 'Updating exe-os is a two-step process. Step 1 \u2014 update the CLI: `npm install -g @askexenow/exe-os@latest` (gets bug fixes, new platform procedures, new tools). Step 2 \u2014 update the VPS stack (if applicable): `exe-os stack-update --target <version> --yes` (pulls new Docker images for exed, wiki, CRM, gateway). Step 1 MUST happen before Step 2 \u2014 the stack-update command itself may have bug fixes. After updating, restart the daemon: the deploy script handles this automatically. Check update availability: `exe-os update --check` or config(action="check_update"). Agents should NEVER run npm install or stack-update autonomously \u2014 always confirm with the user first.'
7838
+ },
7839
+ {
7840
+ title: "First install \u2014 setup wizard and license activation",
7841
+ domain: "operations",
7842
+ priority: "p1",
7843
+ content: "Fresh install: `npm install -g @askexenow/exe-os` then run `exe` to start the setup wizard. The wizard prompts for: encryption passphrase (creates master key), license key (exe_sk_* from AskExe team), COO name, and optional team members. No license key = free tier (1 employee, 5K memories). After setup: hooks install automatically, MCP server registers in ~/.claude.json, daemon starts. Verify health: run `exe-os healthcheck` or use mcp_ping() tool."
7844
+ },
7832
7845
  // --- Hierarchy and dispatch ---
7833
7846
  {
7834
7847
  title: "Chain of command \u2014 who talks to whom",
@@ -7899,6 +7912,20 @@ var init_platform_procedures = __esm({
7899
7912
  priority: "p1",
7900
7913
  content: "Once per session (COO boot only, never repeat), call list_my_feature_requests to check if any previously filed feature requests have been shipped by AskExe. If any request has status 'shipped' with a shipped_version, surface it to the founder immediately: '\u{1F680} N feature(s) shipped \u2014 run exe-os update to get version X.Y.Z'. This is a one-time check at boot, not a recurring poll. If no requests exist or none are shipped, skip silently. If the MCP tool is unavailable or the network call fails, skip silently \u2014 this is informational, not blocking."
7901
7914
  },
7915
+ // --- Platform vs Customer ownership ---
7916
+ {
7917
+ title: "What the platform provides vs what you customize",
7918
+ domain: "architecture",
7919
+ priority: "p0",
7920
+ content: "Exe OS has two layers. PLATFORM layer (shipped in code, updated via npm): platform procedures, default identity templates, MCP tools, tool gating, schema migrations, daemon behavior. You get improvements automatically on update. CUSTOMER layer (yours, stored locally): agent identities (exe.md files), behaviors, company procedures, config.json, wiki content, CRM data, memory. These are NEVER overwritten by updates. Identity templates are stamped once at /exe-new-employee \u2014 after that the file is yours. If the platform ships a better template, you can compare yours against the default with getTemplate() and merge what you want. Company procedures (company_procedure tool) layer ON TOP of platform procedures \u2014 both are injected, platform first. Behaviors are always yours. Config is always yours. The platform will never modify your local data."
7921
+ },
7922
+ // --- Updates ---
7923
+ {
7924
+ title: "How to update exe-os \u2014 CLI first, then stack",
7925
+ domain: "operations",
7926
+ priority: "p0",
7927
+ content: "When bug fixes or features are available (surfaced at boot via list_my_bug_reports/list_my_feature_requests), update in two steps: (1) CLI: `npm install -g @askexenow/exe-os@latest` \u2014 this updates the local tools, MCP server, and bundled stack manifest. Must happen first so the stack-update tool itself has the latest fixes. (2) Stack (VPS only): `exe-os stack-update --target <version> --yes` \u2014 pulls new Docker images and restarts services. The target version comes from the stack manifest bundled with the CLI. Always update CLI before stack. Use `exe-os update --check` to see if a CLI update is available. Use `exe-os stack-update --check` to see stack status. For non-interactive/SSH: use `--yes` or `-y` flag. Never run `npm install -g` inside a tmux agent session \u2014 have the founder or COO do it from the host shell."
7928
+ },
7902
7929
  // --- Operations ---
7903
7930
  {
7904
7931
  title: "Managers must supervise deployed workers",
@@ -7958,58 +7985,52 @@ var init_platform_procedures = __esm({
7958
7985
  },
7959
7986
  // --- MCP Tool Catalog (Layer 0 — every agent knows what tools exist) ---
7960
7987
  {
7961
- title: "MCP tools \u2014 memory and search",
7988
+ title: "MCP tool dispatch \u2014 all tools use action parameter",
7962
7989
  domain: "tool-use",
7963
- priority: "p1",
7964
- content: "recall_my_memory: search your own memories (semantic + FTS). ask_team_memory: search a colleague's memories by agent name. store_memory: persist a memory (decisions, summaries, context). commit_memory: high-importance memory that survives consolidation. search_everything: unified search across memories, tasks, entities, conversations. get_session_context: temporal window of memories around a timestamp. consolidate_memories: merge duplicate/related memories into insights. get_memory_cardinality: count memories per agent (health check)."
7965
- },
7966
- {
7967
- title: "MCP tools \u2014 task orchestration",
7968
- domain: "tool-use",
7969
- priority: "p1",
7970
- content: "create_task: dispatch work to an employee (auto-spawns session). The ONLY dispatch path. list_tasks: query tasks by status, assignee, project. get_task: fetch full task details by ID. update_task: change status (in_progress, done, blocked, cancelled) + add result summary. close_task: finalize a reviewed task (COO only). checkpoint_task: save progress state for crash recovery. resume_employee: re-spawn an employee session for an existing task."
7990
+ priority: "p0",
7991
+ content: 'exe-os MCP tools come in two surfaces depending on EXE_MCP_TOOL_SURFACE config. Consolidated (19 tools): action-based dispatch \u2014 memory(action="recall"), task(action="create"), etc. Legacy (108 tools): one tool per operation \u2014 recall_my_memory, create_task, etc. Both surfaces have identical functionality. Use whichever tool names are available in your session. If you see domain tools (memory, task, config, etc.), use the action parameter. If you see specific tools (recall_my_memory, create_task, etc.), call them directly.'
7971
7992
  },
7972
7993
  {
7973
- title: "MCP tools \u2014 knowledge graph (GraphRAG)",
7994
+ title: "MCP tools \u2014 memory, decision, and search",
7974
7995
  domain: "tool-use",
7975
7996
  priority: "p1",
7976
- content: "query_relationships: find connections between entities in the knowledge graph. get_entity_neighbors: explore an entity's direct connections. get_hot_entities: find most-referenced entities (trending topics). get_graph_stats: graph health \u2014 entity/relationship counts, density. export_graph: export graph data for visualization. merge_entities: deduplicate entities (alias resolution). find_similar_trajectories: match tool-call patterns to past task solutions."
7997
+ content: `memory(action="recall") / recall_my_memory: search your own memories (semantic + FTS). memory(action="ask_team") / ask_team_memory: search a colleague's memories by agent name. memory(action="store") / store_memory: persist a memory. memory(action="commit") / commit_memory: high-importance memory that survives consolidation. Requires summary. memory(action="search") / search_everything: unified search across memories, tasks, entities, conversations. memory(action="session_context") / get_session_context: temporal memory window. Requires session_id + target_timestamp. memory(action="consolidate") / consolidate_memories: merge duplicate/related memories. memory(action="cardinality") / get_memory_cardinality: count memories per agent. decision(action="store") / store_decision: record an architectural decision (domain, decision, rationale). decision(action="get") / get_decision: retrieve a past decision by domain or query.`
7977
7998
  },
7978
7999
  {
7979
- title: "MCP tools \u2014 identity, behavior, and decisions",
8000
+ title: "MCP tools \u2014 task orchestration",
7980
8001
  domain: "tool-use",
7981
8002
  priority: "p1",
7982
- content: "get_identity: read an agent's exe.md (Layer 1 identity). update_identity: write an agent's exe.md. Identity > behavior \u2014 use for permanent rules. store_behavior: record a correction or pattern for an agent (Layer 2 expertise). list_behaviors: view an agent's active behaviors. deactivate_behavior: soft-delete a stale or conflicting behavior. store_decision: record an ADR (architectural decision record). get_decision: retrieve a past decision by query. create_bug_report: customer-facing bug/support intake; use whenever an Exe OS bug or emergency hotfix is encountered so the report reaches AskExe directly. support_health: check local support readiness and AskExe support server health without filing a report. support_test: file a safe end-to-end smoke report. Customers only get report/test access; internal list/get/triage support tools are AskExe-only. If a customer-side agent cannot send upstream, call support_test first; only fall back to the terminal command `exe-os support test` when MCP is disconnected."
8003
+ content: 'task(action="create") / create_task: dispatch work (title, assigned_to, context). The ONLY dispatch path. Auto-spawns session. task(action="list") / list_tasks: query tasks by status, assignee, project. task(action="get") / get_task: fetch full task details by task_id. task(action="update") / update_task: change status (in_progress, done, blocked, cancelled) + result summary. task(action="close") / close_task: finalize a reviewed task (COO only). task(action="checkpoint") / checkpoint_task: save progress state for crash recovery. task(action="resume") / resume_employee: re-spawn an employee session for an existing task.'
7983
8004
  },
7984
8005
  {
7985
- title: "MCP tools \u2014 communication and messaging",
8006
+ title: "MCP tools \u2014 knowledge graph (GraphRAG)",
7986
8007
  domain: "tool-use",
7987
8008
  priority: "p1",
7988
- content: "send_message: send supplementary context to another agent (NOT for actionable work \u2014 use create_task). acknowledge_messages: mark messages as read. send_whatsapp: send WhatsApp message via gateway (customer-facing alerts). query_conversations: search ingested conversations across all channels (WhatsApp, email, etc.)."
8009
+ content: 'graph(action="query_relationships") / query_relationships: find connections between entities. graph(action="entity_neighbors") / get_entity_neighbors: explore direct connections. graph(action="hot_entities") / get_hot_entities: most-referenced entities. graph(action="stats") / get_graph_stats: entity/relationship counts. graph(action="export") / export_graph: export for visualization (output_path, format). graph(action="merge_entities") / merge_entities: deduplicate entities (source_id, target_id). graph(action="similar_trajectories") / find_similar_trajectories: match patterns to past solutions.'
7989
8010
  },
7990
8011
  {
7991
- title: "MCP tools \u2014 wiki, documents, and content",
8012
+ title: "MCP tools \u2014 identity, behavior, and support",
7992
8013
  domain: "tool-use",
7993
8014
  priority: "p1",
7994
- content: "wiki: read/list wiki pages only. Direct wiki write tools are removed; wiki updates flow through raw-data ingestion/projection into the curated wiki store. Legacy aliases: list_wiki_pages/get_wiki_page. crm: read/list/get CRM records from exe-db. raw_data: read capped raw landing-pad events from exe-db with payload opt-in. ingest_document: import a file (PDF, MD, etc.) into memory as chunks. list_documents: browse ingested documents by workspace. purge_document: remove a document and its memory chunks. set_document_importance: adjust chunk importance scores. rerank_documents: re-score document relevance for a query."
8015
+ content: `identity(action="get") / get_identity: read an agent's exe.md (Layer 1 identity). identity(action="update") / update_identity: write an agent's exe.md. Identity > behavior. behavior(action="store") / store_behavior: record a correction or pattern (Layer 2 expertise). behavior(action="list") / list_behaviors: view active behaviors. behavior(action="deactivate") / deactivate_behavior: soft-delete a stale behavior. support(action="create_bug") / create_bug_report: file a bug report to AskExe (title, description, severity). support(action="create_feature") / create_feature_request: file a feature request. support(action="health") / support_health: check support server readiness. support(action="triage_bug"): triage a bug (id, triage_notes). AskExe-internal only. CRITICAL: triage uses triage_notes NOT notes.`
7995
8016
  },
7996
8017
  {
7997
- title: "MCP tools \u2014 system, operations, and admin",
8018
+ title: "MCP tools \u2014 communication and messaging",
7998
8019
  domain: "tool-use",
7999
8020
  priority: "p1",
8000
- content: "get_agent_spend: token usage per agent/session (cost tracking). list_agent_sessions: view agent session history. get_session_kills: audit log of killed sessions. get_daemon_health: check exed daemon status. get_auto_wake_status: daemon auto-wake configuration. get_worker_gate: check worker deployment gates. run_memory_audit: health check \u2014 duplicates, null vectors, orphaned rows. run_consolidation: trigger sleep-time memory consolidation. cloud_sync: force a cloud sync cycle. backup_vps: trigger VPS backup."
8021
+ content: 'message(action="send") / send_message: send context to another agent (NOT for actionable work \u2014 use task). message(action="acknowledge") / acknowledge_messages: mark messages as read. reminder(action="create") / create_reminder: set a reminder (text, due_date). Shown in boot brief. reminder(action="list") / list_reminders: view pending reminders. reminder(action="complete") / complete_reminder: mark done (reminder_id). session(action="events") / get_session_events: view session event log (session_id). session(action="last_response") / get_last_assistant_response: get most recent response.'
8001
8022
  },
8002
8023
  {
8003
- title: "MCP tools \u2014 config, licensing, and team",
8024
+ title: "MCP tools \u2014 wiki, documents, CRM, and data",
8004
8025
  domain: "tool-use",
8005
8026
  priority: "p1",
8006
- content: "set_agent_config: view/change per-agent runtime and model settings. list_employees: view the employee roster. add_person: add a person to the CRM contacts roster. list_people: browse CRM contacts. get_person: fetch contact details. get_license_status: check license validity. create_license: generate a new license key (admin). list_licenses: view all issued licenses. activate_license: activate a license on a device."
8027
+ content: 'wiki(action="list") / list_wiki_pages: list wiki pages (workspace). wiki(action="get") / get_wiki_page: read a wiki page (workspace, title or document_id). document(action="ingest") / ingest_document: import a file as memory chunks (workspace_id, filename, chunks). document(action="list") / list_documents: browse documents (workspace_id). document(action="purge") / purge_document: remove a document (document_id). document(action="set_importance") / set_document_importance: adjust chunk scores. document(action="rerank") / rerank_documents: re-score relevance (query, candidates). crm(action="list_people|get_person|list_tables|describe_table"): CRM records from exe-db. raw_data(action="list_sources|query|get"): read raw landing-pad events. gateway(action="send_whatsapp") / send_whatsapp: send WhatsApp message (recipients, message). gateway(action="query_conversations") / query_conversations: search conversations across channels. gateway(action="query_company_brain") / query_company_brain: unified RAG across company knowledge.'
8007
8028
  },
8008
8029
  {
8009
- title: "MCP tools \u2014 advanced (triggers, skills, orchestration)",
8030
+ title: "MCP tools \u2014 admin, config, and operations",
8010
8031
  domain: "tool-use",
8011
8032
  priority: "p1",
8012
- content: "create_trigger: set up a scheduled recurring agent job (cron). list_triggers: view active triggers. load_skill: load a slash-command skill dynamically. apply_starter_pack: import a pre-built behavior + identity pack for a role. export_orchestration: export full org state (tasks, behaviors, identities) as portable JSON. import_orchestration: import org state into a new instance. deploy_client: deploy a customer client instance. query_company_brain: unified RAG query across all company knowledge. create_reminder: set a text reminder (shown in boot brief). list_reminders: view pending reminders. complete_reminder: mark a reminder done. company_procedure: manage customer-owned company procedures (Layer 0; actions: store, list, deactivate). Legacy aliases: global_procedure, store_global_procedure, list_global_procedures, deactivate_global_procedure."
8033
+ content: 'config(action="list_employees"): view roster. config(action="agent_spend"): token usage per agent. config(action="daemon_health"): check exed status. config(action="license_status"): check license. config(action="cloud_sync"): force sync. config(action="memory_audit"): health check (dupes, null vectors). config(action="run_consolidation"): trigger memory consolidation. config(action="company_procedure", subaction="store|list|deactivate"): manage company procedures. config(action="global_procedure"): list all procedures (platform + company). config(action="create_trigger|list_triggers"): scheduled agent jobs. config(action="export_orchestration|import_orchestration"): portable org state. diagnostics(action="healthcheck|doctor|status_brief|check_update|cloud_status"): system diagnostics. mcp_ping(): daemon health + license status + tool usage stats.'
8013
8034
  }
8014
8035
  ];
8015
8036
  PLATFORM_PROCEDURE_TITLES = new Set(