@askexenow/exe-os 0.9.70 → 0.9.71

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 (69) hide show
  1. package/dist/bin/agentic-ontology-backfill.js +27 -0
  2. package/dist/bin/agentic-reflection-backfill.js +27 -0
  3. package/dist/bin/agentic-semantic-label.js +27 -0
  4. package/dist/bin/backfill-conversations.js +27 -0
  5. package/dist/bin/backfill-responses.js +27 -0
  6. package/dist/bin/backfill-vectors.js +27 -0
  7. package/dist/bin/bulk-sync-postgres.js +27 -0
  8. package/dist/bin/cleanup-stale-review-tasks.js +27 -0
  9. package/dist/bin/cli.js +27 -0
  10. package/dist/bin/exe-assign.js +27 -0
  11. package/dist/bin/exe-boot.js +27 -0
  12. package/dist/bin/exe-cloud.js +27 -0
  13. package/dist/bin/exe-dispatch.js +27 -0
  14. package/dist/bin/exe-doctor.js +27 -0
  15. package/dist/bin/exe-export-behaviors.js +27 -0
  16. package/dist/bin/exe-forget.js +27 -0
  17. package/dist/bin/exe-gateway.js +27 -0
  18. package/dist/bin/exe-heartbeat.js +27 -0
  19. package/dist/bin/exe-kill.js +27 -0
  20. package/dist/bin/exe-launch-agent.js +27 -0
  21. package/dist/bin/exe-pending-messages.js +27 -0
  22. package/dist/bin/exe-pending-notifications.js +27 -0
  23. package/dist/bin/exe-pending-reviews.js +27 -0
  24. package/dist/bin/exe-rename.js +27 -0
  25. package/dist/bin/exe-review.js +27 -0
  26. package/dist/bin/exe-search.js +27 -0
  27. package/dist/bin/exe-session-cleanup.js +27 -0
  28. package/dist/bin/exe-start-codex.js +27 -0
  29. package/dist/bin/exe-start-opencode.js +27 -0
  30. package/dist/bin/exe-status.js +27 -0
  31. package/dist/bin/exe-team.js +27 -0
  32. package/dist/bin/git-sweep.js +27 -0
  33. package/dist/bin/graph-backfill.js +27 -0
  34. package/dist/bin/graph-export.js +27 -0
  35. package/dist/bin/intercom-check.js +27 -0
  36. package/dist/bin/scan-tasks.js +27 -0
  37. package/dist/bin/setup.js +27 -0
  38. package/dist/bin/shard-migrate.js +27 -0
  39. package/dist/gateway/index.js +27 -0
  40. package/dist/hooks/bug-report-worker.js +27 -0
  41. package/dist/hooks/codex-stop-task-finalizer.js +27 -0
  42. package/dist/hooks/commit-complete.js +27 -0
  43. package/dist/hooks/error-recall.js +27 -0
  44. package/dist/hooks/ingest.js +27 -0
  45. package/dist/hooks/instructions-loaded.js +27 -0
  46. package/dist/hooks/notification.js +27 -0
  47. package/dist/hooks/post-compact.js +27 -0
  48. package/dist/hooks/post-tool-combined.js +692 -17
  49. package/dist/hooks/pre-compact.js +27 -0
  50. package/dist/hooks/pre-tool-use.js +27 -0
  51. package/dist/hooks/prompt-submit.js +308 -0
  52. package/dist/hooks/session-end.js +27 -0
  53. package/dist/hooks/session-start.js +27 -0
  54. package/dist/hooks/stop.js +273 -12
  55. package/dist/hooks/subagent-stop.js +27 -0
  56. package/dist/hooks/summary-worker.js +27 -0
  57. package/dist/index.js +27 -0
  58. package/dist/lib/cloud-sync.js +27 -0
  59. package/dist/lib/database.js +27 -0
  60. package/dist/lib/db.js +27 -0
  61. package/dist/lib/device-registry.js +27 -0
  62. package/dist/lib/exe-daemon.js +260 -28
  63. package/dist/lib/hybrid-search.js +27 -0
  64. package/dist/lib/schedules.js +27 -0
  65. package/dist/lib/store.js +27 -0
  66. package/dist/mcp/server.js +246 -25
  67. package/dist/runtime/index.js +27 -0
  68. package/dist/tui/App.js +27 -0
  69. package/package.json +1 -1
@@ -2535,6 +2535,33 @@ async function ensureSchema() {
2535
2535
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2536
2536
  ON chat_history(session_id, id);
2537
2537
  `);
2538
+ await client.executeMultiple(`
2539
+ CREATE TABLE IF NOT EXISTS session_events (
2540
+ id TEXT PRIMARY KEY,
2541
+ agent_id TEXT NOT NULL,
2542
+ agent_role TEXT NOT NULL,
2543
+ session_id TEXT NOT NULL,
2544
+ session_scope TEXT,
2545
+ project_name TEXT NOT NULL,
2546
+ event_index INTEGER NOT NULL,
2547
+ event_type TEXT NOT NULL,
2548
+ tool_name TEXT,
2549
+ tool_use_id TEXT,
2550
+ content TEXT NOT NULL,
2551
+ payload_json TEXT,
2552
+ has_error INTEGER NOT NULL DEFAULT 0,
2553
+ created_at TEXT NOT NULL
2554
+ );
2555
+
2556
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2557
+ ON session_events(agent_id, created_at DESC);
2558
+
2559
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2560
+ ON session_events(session_id, event_index);
2561
+
2562
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2563
+ ON session_events(session_scope, agent_id, created_at DESC);
2564
+ `);
2538
2565
  await client.executeMultiple(`
2539
2566
  CREATE TABLE IF NOT EXISTS workspaces (
2540
2567
  id TEXT PRIMARY KEY,
@@ -2447,6 +2447,33 @@ async function ensureSchema() {
2447
2447
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2448
2448
  ON chat_history(session_id, id);
2449
2449
  `);
2450
+ await client.executeMultiple(`
2451
+ CREATE TABLE IF NOT EXISTS session_events (
2452
+ id TEXT PRIMARY KEY,
2453
+ agent_id TEXT NOT NULL,
2454
+ agent_role TEXT NOT NULL,
2455
+ session_id TEXT NOT NULL,
2456
+ session_scope TEXT,
2457
+ project_name TEXT NOT NULL,
2458
+ event_index INTEGER NOT NULL,
2459
+ event_type TEXT NOT NULL,
2460
+ tool_name TEXT,
2461
+ tool_use_id TEXT,
2462
+ content TEXT NOT NULL,
2463
+ payload_json TEXT,
2464
+ has_error INTEGER NOT NULL DEFAULT 0,
2465
+ created_at TEXT NOT NULL
2466
+ );
2467
+
2468
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2469
+ ON session_events(agent_id, created_at DESC);
2470
+
2471
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2472
+ ON session_events(session_id, event_index);
2473
+
2474
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2475
+ ON session_events(session_scope, agent_id, created_at DESC);
2476
+ `);
2450
2477
  await client.executeMultiple(`
2451
2478
  CREATE TABLE IF NOT EXISTS workspaces (
2452
2479
  id TEXT PRIMARY KEY,
@@ -2448,6 +2448,33 @@ async function ensureSchema() {
2448
2448
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2449
2449
  ON chat_history(session_id, id);
2450
2450
  `);
2451
+ await client.executeMultiple(`
2452
+ CREATE TABLE IF NOT EXISTS session_events (
2453
+ id TEXT PRIMARY KEY,
2454
+ agent_id TEXT NOT NULL,
2455
+ agent_role TEXT NOT NULL,
2456
+ session_id TEXT NOT NULL,
2457
+ session_scope TEXT,
2458
+ project_name TEXT NOT NULL,
2459
+ event_index INTEGER NOT NULL,
2460
+ event_type TEXT NOT NULL,
2461
+ tool_name TEXT,
2462
+ tool_use_id TEXT,
2463
+ content TEXT NOT NULL,
2464
+ payload_json TEXT,
2465
+ has_error INTEGER NOT NULL DEFAULT 0,
2466
+ created_at TEXT NOT NULL
2467
+ );
2468
+
2469
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2470
+ ON session_events(agent_id, created_at DESC);
2471
+
2472
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2473
+ ON session_events(session_id, event_index);
2474
+
2475
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2476
+ ON session_events(session_scope, agent_id, created_at DESC);
2477
+ `);
2451
2478
  await client.executeMultiple(`
2452
2479
  CREATE TABLE IF NOT EXISTS workspaces (
2453
2480
  id TEXT PRIMARY KEY,
@@ -2448,6 +2448,33 @@ async function ensureSchema() {
2448
2448
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2449
2449
  ON chat_history(session_id, id);
2450
2450
  `);
2451
+ await client.executeMultiple(`
2452
+ CREATE TABLE IF NOT EXISTS session_events (
2453
+ id TEXT PRIMARY KEY,
2454
+ agent_id TEXT NOT NULL,
2455
+ agent_role TEXT NOT NULL,
2456
+ session_id TEXT NOT NULL,
2457
+ session_scope TEXT,
2458
+ project_name TEXT NOT NULL,
2459
+ event_index INTEGER NOT NULL,
2460
+ event_type TEXT NOT NULL,
2461
+ tool_name TEXT,
2462
+ tool_use_id TEXT,
2463
+ content TEXT NOT NULL,
2464
+ payload_json TEXT,
2465
+ has_error INTEGER NOT NULL DEFAULT 0,
2466
+ created_at TEXT NOT NULL
2467
+ );
2468
+
2469
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2470
+ ON session_events(agent_id, created_at DESC);
2471
+
2472
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2473
+ ON session_events(session_id, event_index);
2474
+
2475
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2476
+ ON session_events(session_scope, agent_id, created_at DESC);
2477
+ `);
2451
2478
  await client.executeMultiple(`
2452
2479
  CREATE TABLE IF NOT EXISTS workspaces (
2453
2480
  id TEXT PRIMARY KEY,
@@ -2292,6 +2292,33 @@ async function ensureSchema() {
2292
2292
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2293
2293
  ON chat_history(session_id, id);
2294
2294
  `);
2295
+ await client.executeMultiple(`
2296
+ CREATE TABLE IF NOT EXISTS session_events (
2297
+ id TEXT PRIMARY KEY,
2298
+ agent_id TEXT NOT NULL,
2299
+ agent_role TEXT NOT NULL,
2300
+ session_id TEXT NOT NULL,
2301
+ session_scope TEXT,
2302
+ project_name TEXT NOT NULL,
2303
+ event_index INTEGER NOT NULL,
2304
+ event_type TEXT NOT NULL,
2305
+ tool_name TEXT,
2306
+ tool_use_id TEXT,
2307
+ content TEXT NOT NULL,
2308
+ payload_json TEXT,
2309
+ has_error INTEGER NOT NULL DEFAULT 0,
2310
+ created_at TEXT NOT NULL
2311
+ );
2312
+
2313
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2314
+ ON session_events(agent_id, created_at DESC);
2315
+
2316
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2317
+ ON session_events(session_id, event_index);
2318
+
2319
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2320
+ ON session_events(session_scope, agent_id, created_at DESC);
2321
+ `);
2295
2322
  await client.executeMultiple(`
2296
2323
  CREATE TABLE IF NOT EXISTS workspaces (
2297
2324
  id TEXT PRIMARY KEY,
@@ -2451,6 +2451,33 @@ async function ensureSchema() {
2451
2451
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2452
2452
  ON chat_history(session_id, id);
2453
2453
  `);
2454
+ await client.executeMultiple(`
2455
+ CREATE TABLE IF NOT EXISTS session_events (
2456
+ id TEXT PRIMARY KEY,
2457
+ agent_id TEXT NOT NULL,
2458
+ agent_role TEXT NOT NULL,
2459
+ session_id TEXT NOT NULL,
2460
+ session_scope TEXT,
2461
+ project_name TEXT NOT NULL,
2462
+ event_index INTEGER NOT NULL,
2463
+ event_type TEXT NOT NULL,
2464
+ tool_name TEXT,
2465
+ tool_use_id TEXT,
2466
+ content TEXT NOT NULL,
2467
+ payload_json TEXT,
2468
+ has_error INTEGER NOT NULL DEFAULT 0,
2469
+ created_at TEXT NOT NULL
2470
+ );
2471
+
2472
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2473
+ ON session_events(agent_id, created_at DESC);
2474
+
2475
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2476
+ ON session_events(session_id, event_index);
2477
+
2478
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2479
+ ON session_events(session_scope, agent_id, created_at DESC);
2480
+ `);
2454
2481
  await client.executeMultiple(`
2455
2482
  CREATE TABLE IF NOT EXISTS workspaces (
2456
2483
  id TEXT PRIMARY KEY,
@@ -2436,6 +2436,33 @@ async function ensureSchema() {
2436
2436
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2437
2437
  ON chat_history(session_id, id);
2438
2438
  `);
2439
+ await client.executeMultiple(`
2440
+ CREATE TABLE IF NOT EXISTS session_events (
2441
+ id TEXT PRIMARY KEY,
2442
+ agent_id TEXT NOT NULL,
2443
+ agent_role TEXT NOT NULL,
2444
+ session_id TEXT NOT NULL,
2445
+ session_scope TEXT,
2446
+ project_name TEXT NOT NULL,
2447
+ event_index INTEGER NOT NULL,
2448
+ event_type TEXT NOT NULL,
2449
+ tool_name TEXT,
2450
+ tool_use_id TEXT,
2451
+ content TEXT NOT NULL,
2452
+ payload_json TEXT,
2453
+ has_error INTEGER NOT NULL DEFAULT 0,
2454
+ created_at TEXT NOT NULL
2455
+ );
2456
+
2457
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2458
+ ON session_events(agent_id, created_at DESC);
2459
+
2460
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2461
+ ON session_events(session_id, event_index);
2462
+
2463
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2464
+ ON session_events(session_scope, agent_id, created_at DESC);
2465
+ `);
2439
2466
  await client.executeMultiple(`
2440
2467
  CREATE TABLE IF NOT EXISTS workspaces (
2441
2468
  id TEXT PRIMARY KEY,
@@ -2480,6 +2480,33 @@ async function ensureSchema() {
2480
2480
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2481
2481
  ON chat_history(session_id, id);
2482
2482
  `);
2483
+ await client.executeMultiple(`
2484
+ CREATE TABLE IF NOT EXISTS session_events (
2485
+ id TEXT PRIMARY KEY,
2486
+ agent_id TEXT NOT NULL,
2487
+ agent_role TEXT NOT NULL,
2488
+ session_id TEXT NOT NULL,
2489
+ session_scope TEXT,
2490
+ project_name TEXT NOT NULL,
2491
+ event_index INTEGER NOT NULL,
2492
+ event_type TEXT NOT NULL,
2493
+ tool_name TEXT,
2494
+ tool_use_id TEXT,
2495
+ content TEXT NOT NULL,
2496
+ payload_json TEXT,
2497
+ has_error INTEGER NOT NULL DEFAULT 0,
2498
+ created_at TEXT NOT NULL
2499
+ );
2500
+
2501
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2502
+ ON session_events(agent_id, created_at DESC);
2503
+
2504
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2505
+ ON session_events(session_id, event_index);
2506
+
2507
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2508
+ ON session_events(session_scope, agent_id, created_at DESC);
2509
+ `);
2483
2510
  await client.executeMultiple(`
2484
2511
  CREATE TABLE IF NOT EXISTS workspaces (
2485
2512
  id TEXT PRIMARY KEY,
@@ -2309,6 +2309,33 @@ async function ensureSchema() {
2309
2309
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2310
2310
  ON chat_history(session_id, id);
2311
2311
  `);
2312
+ await client.executeMultiple(`
2313
+ CREATE TABLE IF NOT EXISTS session_events (
2314
+ id TEXT PRIMARY KEY,
2315
+ agent_id TEXT NOT NULL,
2316
+ agent_role TEXT NOT NULL,
2317
+ session_id TEXT NOT NULL,
2318
+ session_scope TEXT,
2319
+ project_name TEXT NOT NULL,
2320
+ event_index INTEGER NOT NULL,
2321
+ event_type TEXT NOT NULL,
2322
+ tool_name TEXT,
2323
+ tool_use_id TEXT,
2324
+ content TEXT NOT NULL,
2325
+ payload_json TEXT,
2326
+ has_error INTEGER NOT NULL DEFAULT 0,
2327
+ created_at TEXT NOT NULL
2328
+ );
2329
+
2330
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2331
+ ON session_events(agent_id, created_at DESC);
2332
+
2333
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2334
+ ON session_events(session_id, event_index);
2335
+
2336
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2337
+ ON session_events(session_scope, agent_id, created_at DESC);
2338
+ `);
2312
2339
  await client.executeMultiple(`
2313
2340
  CREATE TABLE IF NOT EXISTS workspaces (
2314
2341
  id TEXT PRIMARY KEY,
@@ -2309,6 +2309,33 @@ async function ensureSchema() {
2309
2309
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2310
2310
  ON chat_history(session_id, id);
2311
2311
  `);
2312
+ await client.executeMultiple(`
2313
+ CREATE TABLE IF NOT EXISTS session_events (
2314
+ id TEXT PRIMARY KEY,
2315
+ agent_id TEXT NOT NULL,
2316
+ agent_role TEXT NOT NULL,
2317
+ session_id TEXT NOT NULL,
2318
+ session_scope TEXT,
2319
+ project_name TEXT NOT NULL,
2320
+ event_index INTEGER NOT NULL,
2321
+ event_type TEXT NOT NULL,
2322
+ tool_name TEXT,
2323
+ tool_use_id TEXT,
2324
+ content TEXT NOT NULL,
2325
+ payload_json TEXT,
2326
+ has_error INTEGER NOT NULL DEFAULT 0,
2327
+ created_at TEXT NOT NULL
2328
+ );
2329
+
2330
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2331
+ ON session_events(agent_id, created_at DESC);
2332
+
2333
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2334
+ ON session_events(session_id, event_index);
2335
+
2336
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2337
+ ON session_events(session_scope, agent_id, created_at DESC);
2338
+ `);
2312
2339
  await client.executeMultiple(`
2313
2340
  CREATE TABLE IF NOT EXISTS workspaces (
2314
2341
  id TEXT PRIMARY KEY,
@@ -2459,6 +2459,33 @@ async function ensureSchema() {
2459
2459
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2460
2460
  ON chat_history(session_id, id);
2461
2461
  `);
2462
+ await client.executeMultiple(`
2463
+ CREATE TABLE IF NOT EXISTS session_events (
2464
+ id TEXT PRIMARY KEY,
2465
+ agent_id TEXT NOT NULL,
2466
+ agent_role TEXT NOT NULL,
2467
+ session_id TEXT NOT NULL,
2468
+ session_scope TEXT,
2469
+ project_name TEXT NOT NULL,
2470
+ event_index INTEGER NOT NULL,
2471
+ event_type TEXT NOT NULL,
2472
+ tool_name TEXT,
2473
+ tool_use_id TEXT,
2474
+ content TEXT NOT NULL,
2475
+ payload_json TEXT,
2476
+ has_error INTEGER NOT NULL DEFAULT 0,
2477
+ created_at TEXT NOT NULL
2478
+ );
2479
+
2480
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2481
+ ON session_events(agent_id, created_at DESC);
2482
+
2483
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2484
+ ON session_events(session_id, event_index);
2485
+
2486
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2487
+ ON session_events(session_scope, agent_id, created_at DESC);
2488
+ `);
2462
2489
  await client.executeMultiple(`
2463
2490
  CREATE TABLE IF NOT EXISTS workspaces (
2464
2491
  id TEXT PRIMARY KEY,
@@ -2448,6 +2448,33 @@ async function ensureSchema() {
2448
2448
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2449
2449
  ON chat_history(session_id, id);
2450
2450
  `);
2451
+ await client.executeMultiple(`
2452
+ CREATE TABLE IF NOT EXISTS session_events (
2453
+ id TEXT PRIMARY KEY,
2454
+ agent_id TEXT NOT NULL,
2455
+ agent_role TEXT NOT NULL,
2456
+ session_id TEXT NOT NULL,
2457
+ session_scope TEXT,
2458
+ project_name TEXT NOT NULL,
2459
+ event_index INTEGER NOT NULL,
2460
+ event_type TEXT NOT NULL,
2461
+ tool_name TEXT,
2462
+ tool_use_id TEXT,
2463
+ content TEXT NOT NULL,
2464
+ payload_json TEXT,
2465
+ has_error INTEGER NOT NULL DEFAULT 0,
2466
+ created_at TEXT NOT NULL
2467
+ );
2468
+
2469
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2470
+ ON session_events(agent_id, created_at DESC);
2471
+
2472
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2473
+ ON session_events(session_id, event_index);
2474
+
2475
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2476
+ ON session_events(session_scope, agent_id, created_at DESC);
2477
+ `);
2451
2478
  await client.executeMultiple(`
2452
2479
  CREATE TABLE IF NOT EXISTS workspaces (
2453
2480
  id TEXT PRIMARY KEY,
@@ -2960,6 +2960,33 @@ async function ensureSchema() {
2960
2960
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2961
2961
  ON chat_history(session_id, id);
2962
2962
  `);
2963
+ await client.executeMultiple(`
2964
+ CREATE TABLE IF NOT EXISTS session_events (
2965
+ id TEXT PRIMARY KEY,
2966
+ agent_id TEXT NOT NULL,
2967
+ agent_role TEXT NOT NULL,
2968
+ session_id TEXT NOT NULL,
2969
+ session_scope TEXT,
2970
+ project_name TEXT NOT NULL,
2971
+ event_index INTEGER NOT NULL,
2972
+ event_type TEXT NOT NULL,
2973
+ tool_name TEXT,
2974
+ tool_use_id TEXT,
2975
+ content TEXT NOT NULL,
2976
+ payload_json TEXT,
2977
+ has_error INTEGER NOT NULL DEFAULT 0,
2978
+ created_at TEXT NOT NULL
2979
+ );
2980
+
2981
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2982
+ ON session_events(agent_id, created_at DESC);
2983
+
2984
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2985
+ ON session_events(session_id, event_index);
2986
+
2987
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2988
+ ON session_events(session_scope, agent_id, created_at DESC);
2989
+ `);
2963
2990
  await client.executeMultiple(`
2964
2991
  CREATE TABLE IF NOT EXISTS workspaces (
2965
2992
  id TEXT PRIMARY KEY,
@@ -2222,6 +2222,33 @@ async function ensureSchema() {
2222
2222
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2223
2223
  ON chat_history(session_id, id);
2224
2224
  `);
2225
+ await client.executeMultiple(`
2226
+ CREATE TABLE IF NOT EXISTS session_events (
2227
+ id TEXT PRIMARY KEY,
2228
+ agent_id TEXT NOT NULL,
2229
+ agent_role TEXT NOT NULL,
2230
+ session_id TEXT NOT NULL,
2231
+ session_scope TEXT,
2232
+ project_name TEXT NOT NULL,
2233
+ event_index INTEGER NOT NULL,
2234
+ event_type TEXT NOT NULL,
2235
+ tool_name TEXT,
2236
+ tool_use_id TEXT,
2237
+ content TEXT NOT NULL,
2238
+ payload_json TEXT,
2239
+ has_error INTEGER NOT NULL DEFAULT 0,
2240
+ created_at TEXT NOT NULL
2241
+ );
2242
+
2243
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2244
+ ON session_events(agent_id, created_at DESC);
2245
+
2246
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2247
+ ON session_events(session_id, event_index);
2248
+
2249
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2250
+ ON session_events(session_scope, agent_id, created_at DESC);
2251
+ `);
2225
2252
  await client.executeMultiple(`
2226
2253
  CREATE TABLE IF NOT EXISTS workspaces (
2227
2254
  id TEXT PRIMARY KEY,
@@ -2437,6 +2437,33 @@ async function ensureSchema() {
2437
2437
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2438
2438
  ON chat_history(session_id, id);
2439
2439
  `);
2440
+ await client.executeMultiple(`
2441
+ CREATE TABLE IF NOT EXISTS session_events (
2442
+ id TEXT PRIMARY KEY,
2443
+ agent_id TEXT NOT NULL,
2444
+ agent_role TEXT NOT NULL,
2445
+ session_id TEXT NOT NULL,
2446
+ session_scope TEXT,
2447
+ project_name TEXT NOT NULL,
2448
+ event_index INTEGER NOT NULL,
2449
+ event_type TEXT NOT NULL,
2450
+ tool_name TEXT,
2451
+ tool_use_id TEXT,
2452
+ content TEXT NOT NULL,
2453
+ payload_json TEXT,
2454
+ has_error INTEGER NOT NULL DEFAULT 0,
2455
+ created_at TEXT NOT NULL
2456
+ );
2457
+
2458
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2459
+ ON session_events(agent_id, created_at DESC);
2460
+
2461
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2462
+ ON session_events(session_id, event_index);
2463
+
2464
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2465
+ ON session_events(session_scope, agent_id, created_at DESC);
2466
+ `);
2440
2467
  await client.executeMultiple(`
2441
2468
  CREATE TABLE IF NOT EXISTS workspaces (
2442
2469
  id TEXT PRIMARY KEY,
@@ -2546,6 +2546,33 @@ async function ensureSchema() {
2546
2546
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2547
2547
  ON chat_history(session_id, id);
2548
2548
  `);
2549
+ await client.executeMultiple(`
2550
+ CREATE TABLE IF NOT EXISTS session_events (
2551
+ id TEXT PRIMARY KEY,
2552
+ agent_id TEXT NOT NULL,
2553
+ agent_role TEXT NOT NULL,
2554
+ session_id TEXT NOT NULL,
2555
+ session_scope TEXT,
2556
+ project_name TEXT NOT NULL,
2557
+ event_index INTEGER NOT NULL,
2558
+ event_type TEXT NOT NULL,
2559
+ tool_name TEXT,
2560
+ tool_use_id TEXT,
2561
+ content TEXT NOT NULL,
2562
+ payload_json TEXT,
2563
+ has_error INTEGER NOT NULL DEFAULT 0,
2564
+ created_at TEXT NOT NULL
2565
+ );
2566
+
2567
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2568
+ ON session_events(agent_id, created_at DESC);
2569
+
2570
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2571
+ ON session_events(session_id, event_index);
2572
+
2573
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2574
+ ON session_events(session_scope, agent_id, created_at DESC);
2575
+ `);
2549
2576
  await client.executeMultiple(`
2550
2577
  CREATE TABLE IF NOT EXISTS workspaces (
2551
2578
  id TEXT PRIMARY KEY,
@@ -3038,6 +3038,33 @@ async function ensureSchema() {
3038
3038
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
3039
3039
  ON chat_history(session_id, id);
3040
3040
  `);
3041
+ await client.executeMultiple(`
3042
+ CREATE TABLE IF NOT EXISTS session_events (
3043
+ id TEXT PRIMARY KEY,
3044
+ agent_id TEXT NOT NULL,
3045
+ agent_role TEXT NOT NULL,
3046
+ session_id TEXT NOT NULL,
3047
+ session_scope TEXT,
3048
+ project_name TEXT NOT NULL,
3049
+ event_index INTEGER NOT NULL,
3050
+ event_type TEXT NOT NULL,
3051
+ tool_name TEXT,
3052
+ tool_use_id TEXT,
3053
+ content TEXT NOT NULL,
3054
+ payload_json TEXT,
3055
+ has_error INTEGER NOT NULL DEFAULT 0,
3056
+ created_at TEXT NOT NULL
3057
+ );
3058
+
3059
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
3060
+ ON session_events(agent_id, created_at DESC);
3061
+
3062
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
3063
+ ON session_events(session_id, event_index);
3064
+
3065
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
3066
+ ON session_events(session_scope, agent_id, created_at DESC);
3067
+ `);
3041
3068
  await client.executeMultiple(`
3042
3069
  CREATE TABLE IF NOT EXISTS workspaces (
3043
3070
  id TEXT PRIMARY KEY,
package/dist/bin/setup.js CHANGED
@@ -3841,6 +3841,33 @@ async function ensureSchema() {
3841
3841
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
3842
3842
  ON chat_history(session_id, id);
3843
3843
  `);
3844
+ await client.executeMultiple(`
3845
+ CREATE TABLE IF NOT EXISTS session_events (
3846
+ id TEXT PRIMARY KEY,
3847
+ agent_id TEXT NOT NULL,
3848
+ agent_role TEXT NOT NULL,
3849
+ session_id TEXT NOT NULL,
3850
+ session_scope TEXT,
3851
+ project_name TEXT NOT NULL,
3852
+ event_index INTEGER NOT NULL,
3853
+ event_type TEXT NOT NULL,
3854
+ tool_name TEXT,
3855
+ tool_use_id TEXT,
3856
+ content TEXT NOT NULL,
3857
+ payload_json TEXT,
3858
+ has_error INTEGER NOT NULL DEFAULT 0,
3859
+ created_at TEXT NOT NULL
3860
+ );
3861
+
3862
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
3863
+ ON session_events(agent_id, created_at DESC);
3864
+
3865
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
3866
+ ON session_events(session_id, event_index);
3867
+
3868
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
3869
+ ON session_events(session_scope, agent_id, created_at DESC);
3870
+ `);
3844
3871
  await client.executeMultiple(`
3845
3872
  CREATE TABLE IF NOT EXISTS workspaces (
3846
3873
  id TEXT PRIMARY KEY,
@@ -2222,6 +2222,33 @@ async function ensureSchema() {
2222
2222
  CREATE INDEX IF NOT EXISTS idx_chat_history_session
2223
2223
  ON chat_history(session_id, id);
2224
2224
  `);
2225
+ await client.executeMultiple(`
2226
+ CREATE TABLE IF NOT EXISTS session_events (
2227
+ id TEXT PRIMARY KEY,
2228
+ agent_id TEXT NOT NULL,
2229
+ agent_role TEXT NOT NULL,
2230
+ session_id TEXT NOT NULL,
2231
+ session_scope TEXT,
2232
+ project_name TEXT NOT NULL,
2233
+ event_index INTEGER NOT NULL,
2234
+ event_type TEXT NOT NULL,
2235
+ tool_name TEXT,
2236
+ tool_use_id TEXT,
2237
+ content TEXT NOT NULL,
2238
+ payload_json TEXT,
2239
+ has_error INTEGER NOT NULL DEFAULT 0,
2240
+ created_at TEXT NOT NULL
2241
+ );
2242
+
2243
+ CREATE INDEX IF NOT EXISTS idx_session_events_agent_time
2244
+ ON session_events(agent_id, created_at DESC);
2245
+
2246
+ CREATE INDEX IF NOT EXISTS idx_session_events_session_index
2247
+ ON session_events(session_id, event_index);
2248
+
2249
+ CREATE INDEX IF NOT EXISTS idx_session_events_scope_agent_time
2250
+ ON session_events(session_scope, agent_id, created_at DESC);
2251
+ `);
2225
2252
  await client.executeMultiple(`
2226
2253
  CREATE TABLE IF NOT EXISTS workspaces (
2227
2254
  id TEXT PRIMARY KEY,