@askexenow/exe-os 0.9.11 → 0.9.13

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 (67) hide show
  1. package/dist/bin/backfill-conversations.js +22 -1
  2. package/dist/bin/backfill-responses.js +22 -1
  3. package/dist/bin/backfill-vectors.js +22 -1
  4. package/dist/bin/cleanup-stale-review-tasks.js +22 -1
  5. package/dist/bin/cli.js +22 -1
  6. package/dist/bin/exe-assign.js +22 -1
  7. package/dist/bin/exe-boot.js +22 -1
  8. package/dist/bin/exe-dispatch.js +22 -1
  9. package/dist/bin/exe-doctor.js +22 -1
  10. package/dist/bin/exe-export-behaviors.js +22 -1
  11. package/dist/bin/exe-forget.js +22 -1
  12. package/dist/bin/exe-gateway.js +22 -1
  13. package/dist/bin/exe-heartbeat.js +22 -1
  14. package/dist/bin/exe-kill.js +22 -1
  15. package/dist/bin/exe-launch-agent.js +22 -1
  16. package/dist/bin/exe-link.js +22 -1
  17. package/dist/bin/exe-pending-messages.js +22 -1
  18. package/dist/bin/exe-pending-notifications.js +22 -1
  19. package/dist/bin/exe-pending-reviews.js +22 -1
  20. package/dist/bin/exe-rename.js +22 -1
  21. package/dist/bin/exe-review.js +22 -1
  22. package/dist/bin/exe-search.js +22 -1
  23. package/dist/bin/exe-session-cleanup.js +22 -1
  24. package/dist/bin/exe-start-codex.js +22 -1
  25. package/dist/bin/exe-start-opencode.js +22 -1
  26. package/dist/bin/exe-status.js +22 -1
  27. package/dist/bin/exe-team.js +22 -1
  28. package/dist/bin/git-sweep.js +22 -1
  29. package/dist/bin/graph-backfill.js +22 -1
  30. package/dist/bin/graph-export.js +22 -1
  31. package/dist/bin/scan-tasks.js +22 -1
  32. package/dist/bin/setup.js +22 -1
  33. package/dist/bin/shard-migrate.js +22 -1
  34. package/dist/bin/wiki-sync.js +22 -1
  35. package/dist/gateway/index.js +22 -1
  36. package/dist/hooks/bug-report-worker.js +22 -1
  37. package/dist/hooks/codex-stop-task-finalizer.js +22 -1
  38. package/dist/hooks/commit-complete.js +22 -1
  39. package/dist/hooks/error-recall.js +22 -1
  40. package/dist/hooks/ingest-worker.js +22 -1
  41. package/dist/hooks/ingest.js +3345 -232
  42. package/dist/hooks/instructions-loaded.js +22 -1
  43. package/dist/hooks/notification.js +22 -1
  44. package/dist/hooks/post-compact.js +22 -1
  45. package/dist/hooks/pre-compact.js +22 -1
  46. package/dist/hooks/pre-tool-use.js +22 -1
  47. package/dist/hooks/prompt-ingest-worker.js +22 -1
  48. package/dist/hooks/prompt-submit.js +1700 -1396
  49. package/dist/hooks/response-ingest-worker.js +22 -1
  50. package/dist/hooks/session-end.js +345 -187
  51. package/dist/hooks/session-start.js +304 -15
  52. package/dist/hooks/stop.js +22 -1
  53. package/dist/hooks/subagent-stop.js +22 -1
  54. package/dist/hooks/summary-worker.js +22 -1
  55. package/dist/index.js +22 -1
  56. package/dist/lib/cloud-sync.js +22 -1
  57. package/dist/lib/database.js +22 -1
  58. package/dist/lib/db.js +22 -1
  59. package/dist/lib/device-registry.js +22 -1
  60. package/dist/lib/exe-daemon.js +39 -1
  61. package/dist/lib/hybrid-search.js +22 -1
  62. package/dist/lib/schedules.js +22 -1
  63. package/dist/lib/store.js +22 -1
  64. package/dist/mcp/server.js +126 -1
  65. package/dist/runtime/index.js +22 -1
  66. package/dist/tui/App.js +22 -1
  67. package/package.json +1 -1
@@ -1732,12 +1732,26 @@ async function ensureSchema() {
1732
1732
  session_name TEXT,
1733
1733
  task_id TEXT,
1734
1734
  project_name TEXT,
1735
- started_at TEXT NOT NULL
1735
+ started_at TEXT NOT NULL,
1736
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
1736
1737
  );
1737
1738
 
1738
1739
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
1739
1740
  ON session_agent_map(agent_id);
1740
1741
  `);
1742
+ await client.executeMultiple(`
1743
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
1744
+ session_uuid TEXT NOT NULL,
1745
+ agent_id TEXT NOT NULL,
1746
+ file_path TEXT NOT NULL,
1747
+ read_at TEXT NOT NULL,
1748
+ commit_hash TEXT,
1749
+ PRIMARY KEY (session_uuid, file_path)
1750
+ );
1751
+
1752
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
1753
+ ON agent_file_reads(agent_id, read_at);
1754
+ `);
1741
1755
  try {
1742
1756
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
1743
1757
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -1752,6 +1766,13 @@ async function ensureSchema() {
1752
1766
  }
1753
1767
  } catch {
1754
1768
  }
1769
+ try {
1770
+ await client.execute({
1771
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
1772
+ args: []
1773
+ });
1774
+ } catch {
1775
+ }
1755
1776
  try {
1756
1777
  await client.execute({
1757
1778
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -1732,12 +1732,26 @@ async function ensureSchema() {
1732
1732
  session_name TEXT,
1733
1733
  task_id TEXT,
1734
1734
  project_name TEXT,
1735
- started_at TEXT NOT NULL
1735
+ started_at TEXT NOT NULL,
1736
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
1736
1737
  );
1737
1738
 
1738
1739
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
1739
1740
  ON session_agent_map(agent_id);
1740
1741
  `);
1742
+ await client.executeMultiple(`
1743
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
1744
+ session_uuid TEXT NOT NULL,
1745
+ agent_id TEXT NOT NULL,
1746
+ file_path TEXT NOT NULL,
1747
+ read_at TEXT NOT NULL,
1748
+ commit_hash TEXT,
1749
+ PRIMARY KEY (session_uuid, file_path)
1750
+ );
1751
+
1752
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
1753
+ ON agent_file_reads(agent_id, read_at);
1754
+ `);
1741
1755
  try {
1742
1756
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
1743
1757
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -1752,6 +1766,13 @@ async function ensureSchema() {
1752
1766
  }
1753
1767
  } catch {
1754
1768
  }
1769
+ try {
1770
+ await client.execute({
1771
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
1772
+ args: []
1773
+ });
1774
+ } catch {
1775
+ }
1755
1776
  try {
1756
1777
  await client.execute({
1757
1778
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -2459,12 +2459,26 @@ async function ensureSchema() {
2459
2459
  session_name TEXT,
2460
2460
  task_id TEXT,
2461
2461
  project_name TEXT,
2462
- started_at TEXT NOT NULL
2462
+ started_at TEXT NOT NULL,
2463
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
2463
2464
  );
2464
2465
 
2465
2466
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
2466
2467
  ON session_agent_map(agent_id);
2467
2468
  `);
2469
+ await client.executeMultiple(`
2470
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
2471
+ session_uuid TEXT NOT NULL,
2472
+ agent_id TEXT NOT NULL,
2473
+ file_path TEXT NOT NULL,
2474
+ read_at TEXT NOT NULL,
2475
+ commit_hash TEXT,
2476
+ PRIMARY KEY (session_uuid, file_path)
2477
+ );
2478
+
2479
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
2480
+ ON agent_file_reads(agent_id, read_at);
2481
+ `);
2468
2482
  try {
2469
2483
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
2470
2484
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -2479,6 +2493,13 @@ async function ensureSchema() {
2479
2493
  }
2480
2494
  } catch {
2481
2495
  }
2496
+ try {
2497
+ await client.execute({
2498
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
2499
+ args: []
2500
+ });
2501
+ } catch {
2502
+ }
2482
2503
  try {
2483
2504
  await client.execute({
2484
2505
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -2093,12 +2093,26 @@ async function ensureSchema() {
2093
2093
  session_name TEXT,
2094
2094
  task_id TEXT,
2095
2095
  project_name TEXT,
2096
- started_at TEXT NOT NULL
2096
+ started_at TEXT NOT NULL,
2097
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
2097
2098
  );
2098
2099
 
2099
2100
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
2100
2101
  ON session_agent_map(agent_id);
2101
2102
  `);
2103
+ await client.executeMultiple(`
2104
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
2105
+ session_uuid TEXT NOT NULL,
2106
+ agent_id TEXT NOT NULL,
2107
+ file_path TEXT NOT NULL,
2108
+ read_at TEXT NOT NULL,
2109
+ commit_hash TEXT,
2110
+ PRIMARY KEY (session_uuid, file_path)
2111
+ );
2112
+
2113
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
2114
+ ON agent_file_reads(agent_id, read_at);
2115
+ `);
2102
2116
  try {
2103
2117
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
2104
2118
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -2113,6 +2127,13 @@ async function ensureSchema() {
2113
2127
  }
2114
2128
  } catch {
2115
2129
  }
2130
+ try {
2131
+ await client.execute({
2132
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
2133
+ args: []
2134
+ });
2135
+ } catch {
2136
+ }
2116
2137
  try {
2117
2138
  await client.execute({
2118
2139
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -1766,12 +1766,26 @@ async function ensureSchema() {
1766
1766
  session_name TEXT,
1767
1767
  task_id TEXT,
1768
1768
  project_name TEXT,
1769
- started_at TEXT NOT NULL
1769
+ started_at TEXT NOT NULL,
1770
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
1770
1771
  );
1771
1772
 
1772
1773
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
1773
1774
  ON session_agent_map(agent_id);
1774
1775
  `);
1776
+ await client.executeMultiple(`
1777
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
1778
+ session_uuid TEXT NOT NULL,
1779
+ agent_id TEXT NOT NULL,
1780
+ file_path TEXT NOT NULL,
1781
+ read_at TEXT NOT NULL,
1782
+ commit_hash TEXT,
1783
+ PRIMARY KEY (session_uuid, file_path)
1784
+ );
1785
+
1786
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
1787
+ ON agent_file_reads(agent_id, read_at);
1788
+ `);
1775
1789
  try {
1776
1790
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
1777
1791
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -1786,6 +1800,13 @@ async function ensureSchema() {
1786
1800
  }
1787
1801
  } catch {
1788
1802
  }
1803
+ try {
1804
+ await client.execute({
1805
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
1806
+ args: []
1807
+ });
1808
+ } catch {
1809
+ }
1789
1810
  try {
1790
1811
  await client.execute({
1791
1812
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -2791,12 +2791,26 @@ async function ensureSchema() {
2791
2791
  session_name TEXT,
2792
2792
  task_id TEXT,
2793
2793
  project_name TEXT,
2794
- started_at TEXT NOT NULL
2794
+ started_at TEXT NOT NULL,
2795
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
2795
2796
  );
2796
2797
 
2797
2798
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
2798
2799
  ON session_agent_map(agent_id);
2799
2800
  `);
2801
+ await client.executeMultiple(`
2802
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
2803
+ session_uuid TEXT NOT NULL,
2804
+ agent_id TEXT NOT NULL,
2805
+ file_path TEXT NOT NULL,
2806
+ read_at TEXT NOT NULL,
2807
+ commit_hash TEXT,
2808
+ PRIMARY KEY (session_uuid, file_path)
2809
+ );
2810
+
2811
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
2812
+ ON agent_file_reads(agent_id, read_at);
2813
+ `);
2800
2814
  try {
2801
2815
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
2802
2816
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -2811,6 +2825,13 @@ async function ensureSchema() {
2811
2825
  }
2812
2826
  } catch {
2813
2827
  }
2828
+ try {
2829
+ await client.execute({
2830
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
2831
+ args: []
2832
+ });
2833
+ } catch {
2834
+ }
2814
2835
  try {
2815
2836
  await client.execute({
2816
2837
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -1811,12 +1811,26 @@ async function ensureSchema() {
1811
1811
  session_name TEXT,
1812
1812
  task_id TEXT,
1813
1813
  project_name TEXT,
1814
- started_at TEXT NOT NULL
1814
+ started_at TEXT NOT NULL,
1815
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
1815
1816
  );
1816
1817
 
1817
1818
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
1818
1819
  ON session_agent_map(agent_id);
1819
1820
  `);
1821
+ await client.executeMultiple(`
1822
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
1823
+ session_uuid TEXT NOT NULL,
1824
+ agent_id TEXT NOT NULL,
1825
+ file_path TEXT NOT NULL,
1826
+ read_at TEXT NOT NULL,
1827
+ commit_hash TEXT,
1828
+ PRIMARY KEY (session_uuid, file_path)
1829
+ );
1830
+
1831
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
1832
+ ON agent_file_reads(agent_id, read_at);
1833
+ `);
1820
1834
  try {
1821
1835
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
1822
1836
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -1831,6 +1845,13 @@ async function ensureSchema() {
1831
1845
  }
1832
1846
  } catch {
1833
1847
  }
1848
+ try {
1849
+ await client.execute({
1850
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
1851
+ args: []
1852
+ });
1853
+ } catch {
1854
+ }
1834
1855
  try {
1835
1856
  await client.execute({
1836
1857
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,
@@ -2612,12 +2612,26 @@ async function ensureSchema() {
2612
2612
  session_name TEXT,
2613
2613
  task_id TEXT,
2614
2614
  project_name TEXT,
2615
- started_at TEXT NOT NULL
2615
+ started_at TEXT NOT NULL,
2616
+ cache_cold_count INTEGER NOT NULL DEFAULT 0
2616
2617
  );
2617
2618
 
2618
2619
  CREATE INDEX IF NOT EXISTS idx_session_agent_map_agent
2619
2620
  ON session_agent_map(agent_id);
2620
2621
  `);
2622
+ await client.executeMultiple(`
2623
+ CREATE TABLE IF NOT EXISTS agent_file_reads (
2624
+ session_uuid TEXT NOT NULL,
2625
+ agent_id TEXT NOT NULL,
2626
+ file_path TEXT NOT NULL,
2627
+ read_at TEXT NOT NULL,
2628
+ commit_hash TEXT,
2629
+ PRIMARY KEY (session_uuid, file_path)
2630
+ );
2631
+
2632
+ CREATE INDEX IF NOT EXISTS idx_agent_file_reads_agent_read_at
2633
+ ON agent_file_reads(agent_id, read_at);
2634
+ `);
2621
2635
  try {
2622
2636
  const mapCount = await client.execute({ sql: `SELECT COUNT(*) as cnt FROM session_agent_map`, args: [] });
2623
2637
  if (Number(mapCount.rows[0]?.cnt ?? 0) === 0) {
@@ -2632,6 +2646,13 @@ async function ensureSchema() {
2632
2646
  }
2633
2647
  } catch {
2634
2648
  }
2649
+ try {
2650
+ await client.execute({
2651
+ sql: `ALTER TABLE session_agent_map ADD COLUMN cache_cold_count INTEGER NOT NULL DEFAULT 0`,
2652
+ args: []
2653
+ });
2654
+ } catch {
2655
+ }
2635
2656
  try {
2636
2657
  await client.execute({
2637
2658
  sql: `ALTER TABLE tasks ADD COLUMN budget_tokens INTEGER`,