@exaudeus/workrail 3.32.0 → 3.33.0

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 (77) hide show
  1. package/dist/cli/commands/index.d.ts +1 -0
  2. package/dist/cli/commands/index.js +3 -1
  3. package/dist/cli/commands/worktrain-await.js +11 -9
  4. package/dist/cli/commands/worktrain-daemon-install.d.ts +35 -0
  5. package/dist/cli/commands/worktrain-daemon-install.js +291 -0
  6. package/dist/cli/commands/worktrain-daemon.d.ts +31 -0
  7. package/dist/cli/commands/worktrain-daemon.js +272 -0
  8. package/dist/cli/commands/worktrain-spawn.js +11 -9
  9. package/dist/cli-worktrain.js +329 -0
  10. package/dist/cli.js +1 -22
  11. package/dist/console/standalone-console.d.ts +28 -0
  12. package/dist/console/standalone-console.js +142 -0
  13. package/dist/{console/assets/index-Cb_LO718.js → console-ui/assets/index-BuJFLLfY.js} +1 -1
  14. package/dist/{console → console-ui}/index.html +1 -1
  15. package/dist/daemon/agent-loop.d.ts +26 -0
  16. package/dist/daemon/agent-loop.js +39 -1
  17. package/dist/daemon/daemon-events.d.ts +47 -1
  18. package/dist/daemon/workflow-runner.d.ts +3 -2
  19. package/dist/daemon/workflow-runner.js +205 -41
  20. package/dist/infrastructure/session/HttpServer.js +133 -34
  21. package/dist/manifest.json +118 -62
  22. package/dist/mcp/output-schemas.d.ts +30 -30
  23. package/dist/mcp/transports/bridge-events.d.ts +4 -0
  24. package/dist/mcp/transports/fatal-exit.js +4 -0
  25. package/dist/mcp/transports/http-entry.js +2 -0
  26. package/dist/mcp/transports/stdio-entry.js +26 -6
  27. package/dist/mcp/v2/tools.d.ts +4 -4
  28. package/dist/trigger/adapters/github-poller.d.ts +44 -0
  29. package/dist/trigger/adapters/github-poller.js +190 -0
  30. package/dist/trigger/adapters/gitlab-poller.d.ts +27 -0
  31. package/dist/trigger/adapters/gitlab-poller.js +81 -0
  32. package/dist/trigger/index.d.ts +4 -1
  33. package/dist/trigger/index.js +5 -1
  34. package/dist/trigger/polled-event-store.d.ts +22 -0
  35. package/dist/trigger/polled-event-store.js +173 -0
  36. package/dist/trigger/polling-scheduler.d.ts +20 -0
  37. package/dist/trigger/polling-scheduler.js +249 -0
  38. package/dist/trigger/trigger-listener.d.ts +3 -0
  39. package/dist/trigger/trigger-listener.js +47 -3
  40. package/dist/trigger/trigger-store.js +114 -33
  41. package/dist/trigger/types.d.ts +17 -1
  42. package/dist/v2/durable-core/schemas/export-bundle/index.d.ts +224 -224
  43. package/dist/v2/durable-core/schemas/session/events.d.ts +42 -42
  44. package/dist/v2/durable-core/schemas/session/manifest.d.ts +6 -6
  45. package/dist/v2/durable-core/schemas/session/validation-event.d.ts +2 -2
  46. package/dist/v2/durable-core/tokens/payloads.d.ts +52 -52
  47. package/dist/v2/usecases/console-routes.js +3 -3
  48. package/dist/v2/usecases/console-service.js +133 -9
  49. package/dist/v2/usecases/console-types.d.ts +7 -0
  50. package/docs/design/daemon-conversation-logging-plan.md +98 -0
  51. package/docs/design/daemon-conversation-logging-review.md +55 -0
  52. package/docs/design/daemon-conversation-logging.md +129 -0
  53. package/docs/design/github-polling-adapter-design-candidates.md +226 -0
  54. package/docs/design/github-polling-adapter-design-review-findings.md +131 -0
  55. package/docs/design/github-polling-adapter-implementation-plan.md +284 -0
  56. package/docs/design/implementation_plan.md +192 -0
  57. package/docs/design/workflow-id-validation-at-startup.md +146 -0
  58. package/docs/design/workflow-id-validation-design-review.md +87 -0
  59. package/docs/design/workflow-id-validation-implementation-plan.md +185 -0
  60. package/docs/design/worktrain-system-prompt-report-issue-candidates.md +135 -0
  61. package/docs/design/worktrain-system-prompt-report-issue-design-review.md +73 -0
  62. package/docs/ideas/backlog.md +361 -0
  63. package/package.json +1 -1
  64. package/workflows/architecture-scalability-audit.json +1 -1
  65. package/workflows/bug-investigation.agentic.v2.json +3 -3
  66. package/workflows/coding-task-workflow-agentic.json +32 -32
  67. package/workflows/coding-task-workflow-agentic.lean.v2.json +1 -1
  68. package/workflows/coding-task-workflow-agentic.v2.json +7 -7
  69. package/workflows/mr-review-workflow.agentic.v2.json +21 -12
  70. package/workflows/personal-learning-materials-creation-branched.json +2 -2
  71. package/workflows/production-readiness-audit.json +1 -1
  72. package/workflows/relocation-workflow-us.json +2 -2
  73. package/workflows/ui-ux-design-workflow.json +14 -14
  74. package/workflows/workflow-for-workflows.json +3 -3
  75. package/workflows/workflow-for-workflows.v2.json +2 -2
  76. package/workflows/wr.discovery.json +1 -1
  77. /package/dist/{console → console-ui}/assets/index-8dh0Psu-.css +0 -0
@@ -238,16 +238,16 @@
238
238
  "bytes": 31
239
239
  },
240
240
  "cli-worktrain.js": {
241
- "sha256": "96930883c6a80e79d950a0503bb09558b7753e663b70d8ebd6b39ea517d8ddfe",
242
- "bytes": 7762
241
+ "sha256": "95ddb85b341ae910a12b201f5e0c464fd04e3c9c012fe5c85d6669d0ccbea4e2",
242
+ "bytes": 23028
243
243
  },
244
244
  "cli.d.ts": {
245
245
  "sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
246
246
  "bytes": 31
247
247
  },
248
248
  "cli.js": {
249
- "sha256": "b7012b4643571bf67a4601ecc4cb7457405ac613750253583f4a7be95709bc7b",
250
- "bytes": 13483
249
+ "sha256": "d1f6bae5772a311043f08a063b735bd54023766de78c97a31757409c200f1b4e",
250
+ "bytes": 12551
251
251
  },
252
252
  "cli/commands/cleanup.d.ts": {
253
253
  "sha256": "efe1f9e2ecd58e92007ed38b9581a3852c2babe4b3f2a97237dccd878eebe7ec",
@@ -258,12 +258,12 @@
258
258
  "bytes": 745
259
259
  },
260
260
  "cli/commands/index.d.ts": {
261
- "sha256": "e7afa6f9dfadcbdfcc286dcbf5deb4b6f043316647b61cdf404dd62fb8541f44",
262
- "bytes": 1746
261
+ "sha256": "c1a993ef840ffc38c904d5a4d43c441cc83c1011222243a2f1efbd07a0844102",
262
+ "bytes": 1884
263
263
  },
264
264
  "cli/commands/index.js": {
265
- "sha256": "29176d331bd10048c13e508fe6a39d068abf020bef14cbb60087d6832db1ff59",
266
- "bytes": 4135
265
+ "sha256": "4184387e6b267df6fc8b3ecf977559c4261579d16ff9efe31ec229d80fd111ea",
266
+ "bytes": 4406
267
267
  },
268
268
  "cli/commands/init.d.ts": {
269
269
  "sha256": "b5f8b88a072c68509dab3938ba1d6b4a949ad32f8fc55e91c5039b8c77301c1b",
@@ -326,8 +326,24 @@
326
326
  "bytes": 1389
327
327
  },
328
328
  "cli/commands/worktrain-await.js": {
329
- "sha256": "2329f60b86ce48bcf506757f6d2ccac89907039690459dc2fcf88f6a45065f18",
330
- "bytes": 7779
329
+ "sha256": "778cca3fa03054cfff28bb71e7af461f371ae3dd59570479baacb1b08993e162",
330
+ "bytes": 7899
331
+ },
332
+ "cli/commands/worktrain-daemon-install.d.ts": {
333
+ "sha256": "8c492e04797dcf825fb4d26fccca141a1deeb4441baf47fb2ddecefb22fa7edf",
334
+ "bytes": 1640
335
+ },
336
+ "cli/commands/worktrain-daemon-install.js": {
337
+ "sha256": "981f4a7e187d4f441a20cf0137b70f9916126d8c3a2b320877841c64103ae214",
338
+ "bytes": 11306
339
+ },
340
+ "cli/commands/worktrain-daemon.d.ts": {
341
+ "sha256": "8e73e3ead65fcba62d935c71697b8551a41ebb27d07b31c3bc2139a1b0c35949",
342
+ "bytes": 1383
343
+ },
344
+ "cli/commands/worktrain-daemon.js": {
345
+ "sha256": "6d68ec5330a3f00ba63b73ac332b0261d9ba12f06fb48d0c591129762b7f6bc6",
346
+ "bytes": 10937
331
347
  },
332
348
  "cli/commands/worktrain-inbox.d.ts": {
333
349
  "sha256": "097d7c58f2e75da833504cf62122a281197c2008f8b70c8a9391d30fdf5a829d",
@@ -350,8 +366,8 @@
350
366
  "bytes": 1060
351
367
  },
352
368
  "cli/commands/worktrain-spawn.js": {
353
- "sha256": "0ee72c62f7cc86381321c2318b17288bf578f1267a95c7c4081e3f6cc61d4da6",
354
- "bytes": 4431
369
+ "sha256": "573a1bb33d9befcb6e5a5c9744397847d77c0a03b6e30cf7968b4722c434f122",
370
+ "bytes": 4551
355
371
  },
356
372
  "cli/commands/worktrain-tell.d.ts": {
357
373
  "sha256": "f89dc1d7740f605bcb60c60cb7c4fe7ccf5276f12e5298c2b652512c8c7623b7",
@@ -425,18 +441,26 @@
425
441
  "sha256": "5fe866e54f796975dec5d8ba9983aefd86074db212d3fccd64eed04bc9f0b3da",
426
442
  "bytes": 8011
427
443
  },
428
- "console/assets/index-8dh0Psu-.css": {
444
+ "console-ui/assets/index-8dh0Psu-.css": {
429
445
  "sha256": "cf9d09641f1c31fffe6c7835b30bbbad52572befec1acab7fb9a0c188431af36",
430
446
  "bytes": 60355
431
447
  },
432
- "console/assets/index-Cb_LO718.js": {
433
- "sha256": "5b8a9e605a533ff62465a53cdba560471b5e244d6823df40e726a2a31c63482a",
448
+ "console-ui/assets/index-BuJFLLfY.js": {
449
+ "sha256": "5270e62f91abdcc3354397a7086846754ff92a62c3bce7e954678b1aaafc2cdc",
434
450
  "bytes": 754653
435
451
  },
436
- "console/index.html": {
437
- "sha256": "bbe6f516754067df4f17051732f6dad173f16863c01d9387a116018724ae13b4",
452
+ "console-ui/index.html": {
453
+ "sha256": "0f9e8aadf99ca291a4a784b641975c54408fd1ed1e069c7adc503973798cc647",
438
454
  "bytes": 417
439
455
  },
456
+ "console/standalone-console.d.ts": {
457
+ "sha256": "286b0c095b7616c20628d1ef785c46f72f38a4d74aa55d3412b422dd039e3103",
458
+ "bytes": 788
459
+ },
460
+ "console/standalone-console.js": {
461
+ "sha256": "759d8be0b9804aa2e6301f14afb2dc97d45231434058f64d1cfbec6e025a1991",
462
+ "bytes": 6325
463
+ },
440
464
  "core/error-handler.d.ts": {
441
465
  "sha256": "80451f12ac8e185133ec3dc4c57285491a785f27525ed21e729db1da3f61010d",
442
466
  "bytes": 1368
@@ -446,16 +470,16 @@
446
470
  "bytes": 3493
447
471
  },
448
472
  "daemon/agent-loop.d.ts": {
449
- "sha256": "df785b2cf79aa34b11816eb099cffc70a318da2ae527187c29e44c7724cf2159",
450
- "bytes": 2864
473
+ "sha256": "bb873fd41dae8f2a4e1eed5549d0f85f5b8c6e0ad421ec2c0ac4a767ed21252a",
474
+ "bytes": 3745
451
475
  },
452
476
  "daemon/agent-loop.js": {
453
- "sha256": "713c68b2c50ba3e8e2698a6f444f2793e35d6ab10a9a8b3f375d121ce923dc8d",
454
- "bytes": 8137
477
+ "sha256": "c457a38dcf42c3e44a511e699b2e64353d40ec4cb2e3bf7c49fb6a5b4d4f4b11",
478
+ "bytes": 9794
455
479
  },
456
480
  "daemon/daemon-events.d.ts": {
457
- "sha256": "084144fec2c235d0c33207f074f966a3b961c3c1950c812addd2d5fefd8bd935",
458
- "bytes": 1866
481
+ "sha256": "3d090ec0804f7a59d0ab3f8e45321e6a5c9aebde60d5d805e58654d36cf838c6",
482
+ "bytes": 3581
459
483
  },
460
484
  "daemon/daemon-events.js": {
461
485
  "sha256": "b6841eef4634bb266faf81961c1e387b535dd64a74d58582f3f2bad8c3469d95",
@@ -478,12 +502,12 @@
478
502
  "bytes": 1009
479
503
  },
480
504
  "daemon/workflow-runner.d.ts": {
481
- "sha256": "ef6669d3274c211e59ac2467a52694f1a8594d001eadd8551850195e4cabd18a",
482
- "bytes": 3387
505
+ "sha256": "9862fc8fc8a6652a6326e5b5b87df3006f15a9bd871efbe62990e5de4261e44e",
506
+ "bytes": 3590
483
507
  },
484
508
  "daemon/workflow-runner.js": {
485
- "sha256": "227f1299d82bed696b774caeb5da597695646dab8e52c1f6c91da435360a6370",
486
- "bytes": 34930
509
+ "sha256": "89c6514eb2528c9c164af46f120c5f1550f9d858ef8db9edc5e83602fe48d296",
510
+ "bytes": 44428
487
511
  },
488
512
  "di/container.d.ts": {
489
513
  "sha256": "003bb7fb7478d627524b9b1e76bd0a963a243794a687ff233b96dc0e33a06d9f",
@@ -642,8 +666,8 @@
642
666
  "bytes": 2025
643
667
  },
644
668
  "infrastructure/session/HttpServer.js": {
645
- "sha256": "914e38d3f9ed1264075d226e24e60a32d8a2f1d425631404873a1be62f067386",
646
- "bytes": 32736
669
+ "sha256": "5ff243e7daf8fb84667ab395a0b1ec4b78dc516d5279e69e6f02dae168070438",
670
+ "bytes": 35586
647
671
  },
648
672
  "infrastructure/session/SessionDataNormalizer.d.ts": {
649
673
  "sha256": "c89bb5e00d7d01fb4aa6d0095602541de53c425c6b99b67fa8367eb29cb63e9e",
@@ -1102,7 +1126,7 @@
1102
1126
  "bytes": 7991
1103
1127
  },
1104
1128
  "mcp/output-schemas.d.ts": {
1105
- "sha256": "e938f04649372e5eea092baf7ba4c1b7fc3f5703cd8cd6f1f81e5f1631f37f3d",
1129
+ "sha256": "14a62e19960e14baad957a8d2cd1e2377b3f5f152ac7f5363debafc09395688d",
1106
1130
  "bytes": 93176
1107
1131
  },
1108
1132
  "mcp/output-schemas.js": {
@@ -1190,8 +1214,8 @@
1190
1214
  "bytes": 20196
1191
1215
  },
1192
1216
  "mcp/transports/bridge-events.d.ts": {
1193
- "sha256": "ba4034309d5a4d762166c058079a9b461d0c403c5b329d2f5ee3bf4bd4f446e1",
1194
- "bytes": 1324
1217
+ "sha256": "46dda12ba2c77f5c36080cf94023ebd128282aa3fd550c5ae446ddd8b4014d3a",
1218
+ "bytes": 1438
1195
1219
  },
1196
1220
  "mcp/transports/bridge-events.js": {
1197
1221
  "sha256": "40e0eeb42aec6fb2906ac3da1d9f017cb9b9de56125736d4e90667239c5f019b",
@@ -1202,16 +1226,16 @@
1202
1226
  "bytes": 490
1203
1227
  },
1204
1228
  "mcp/transports/fatal-exit.js": {
1205
- "sha256": "3b9f7b93cbb672b8491fd6fd73e4c799cccf7e51567edf0b9fc0faccbc1f41c8",
1206
- "bytes": 3593
1229
+ "sha256": "29f39e9d62b68b47785685bada55b31f42041e9e13087343ad03ba861e872da0",
1230
+ "bytes": 3744
1207
1231
  },
1208
1232
  "mcp/transports/http-entry.d.ts": {
1209
1233
  "sha256": "35d313b120dcf38643de9462559163581b89943fe432706986252e8b698b9507",
1210
1234
  "bytes": 70
1211
1235
  },
1212
1236
  "mcp/transports/http-entry.js": {
1213
- "sha256": "31ab4e9f518e1f9b6fd46a8b7e221639029abea51e0cbfe22e5008fecdc46e6b",
1214
- "bytes": 3887
1237
+ "sha256": "d322f7c7cb9b1628f881e8cc2b579f9e1872ead4754051a57927c131492e045c",
1238
+ "bytes": 4043
1215
1239
  },
1216
1240
  "mcp/transports/http-listener.d.ts": {
1217
1241
  "sha256": "6c6cd6dcfe110ed8fa1dc2f9c96caba55959555f98048d3694ac104f42d6d51a",
@@ -1242,8 +1266,8 @@
1242
1266
  "bytes": 59
1243
1267
  },
1244
1268
  "mcp/transports/stdio-entry.js": {
1245
- "sha256": "3acac4d05321d0bccb00aae61053b58327afc95bd4a05c1b2b4e853f774c036e",
1246
- "bytes": 4299
1269
+ "sha256": "cedb82176a7a6507afc03ceb5ffb6b43ed57e83b3c55ade030aeb38aa141242c",
1270
+ "bytes": 4804
1247
1271
  },
1248
1272
  "mcp/transports/transport-mode.d.ts": {
1249
1273
  "sha256": "1c59128ab0174bd2a113fff17521e6339ca367f2b8980c2f2c164ec393c10518",
@@ -1302,7 +1326,7 @@
1302
1326
  "bytes": 3832
1303
1327
  },
1304
1328
  "mcp/v2/tools.d.ts": {
1305
- "sha256": "b3e6de1b0490e644b0eee03ef4915eae1488e5a0247ec5ad6d20f2916de26246",
1329
+ "sha256": "8b4b838e78f7eddeeb9f9c987611c20781988fd3d5185f233bb49f49bb9f39c5",
1306
1330
  "bytes": 7979
1307
1331
  },
1308
1332
  "mcp/v2/tools.js": {
@@ -1509,6 +1533,22 @@
1509
1533
  "sha256": "d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230",
1510
1534
  "bytes": 77
1511
1535
  },
1536
+ "trigger/adapters/github-poller.d.ts": {
1537
+ "sha256": "61a988e13511963f49ae7e4280cb62b3621611d86ef22e29081dfdfc691fbb29",
1538
+ "bytes": 1476
1539
+ },
1540
+ "trigger/adapters/github-poller.js": {
1541
+ "sha256": "dd1a1bc20f1bf6da550960887c75fab4a794c19a1b79f3c89f4277145d009c2e",
1542
+ "bytes": 6723
1543
+ },
1544
+ "trigger/adapters/gitlab-poller.d.ts": {
1545
+ "sha256": "f685490fafad77194fdd0f0bbaf80dbc56730aeb344853da365199a120fbe399",
1546
+ "bytes": 911
1547
+ },
1548
+ "trigger/adapters/gitlab-poller.js": {
1549
+ "sha256": "6728a2169f4007b9ea0414fade6b21500500d9c79d0b09296d92ef8bcabb9c79",
1550
+ "bytes": 2763
1551
+ },
1512
1552
  "trigger/daemon-console.d.ts": {
1513
1553
  "sha256": "8c1dca4a4683e4a96a8dc007df556309da0d2a2076ff0981c3b80f148cb5b3ad",
1514
1554
  "bytes": 937
@@ -1534,20 +1574,36 @@
1534
1574
  "bytes": 1269
1535
1575
  },
1536
1576
  "trigger/index.d.ts": {
1537
- "sha256": "ac0df6f84ff1ca493f28870b4303e5d68c3bfb2e8109678a10c1cfe11c28c802",
1538
- "bytes": 471
1577
+ "sha256": "a9cfd053714173e2a8cc5a282fd5b09a5c3f3001304d507facd0e12de9cc0733",
1578
+ "bytes": 735
1539
1579
  },
1540
1580
  "trigger/index.js": {
1541
- "sha256": "c4bfc4c4e9845fb5570badbdfbf133919b71aa513f1ad8fdbe51682450b03359",
1542
- "bytes": 749
1581
+ "sha256": "b8668c607788d560b38cf203750395e84eaa3164fff5711cac8f87f469714592",
1582
+ "bytes": 1222
1583
+ },
1584
+ "trigger/polled-event-store.d.ts": {
1585
+ "sha256": "2952a25804177b2389d4273bfc41192477d100bc26100683861dedf28520dec1",
1586
+ "bytes": 1011
1587
+ },
1588
+ "trigger/polled-event-store.js": {
1589
+ "sha256": "bee8cdff9f268b578dabc374a3ccfd52c9f3ee1d53bf472c98fd08f0398995c8",
1590
+ "bytes": 6878
1591
+ },
1592
+ "trigger/polling-scheduler.d.ts": {
1593
+ "sha256": "c5f984df836dbc78ec51bfc78fa5a26973aff56e6f88e0cf11776057f940b2b6",
1594
+ "bytes": 761
1595
+ },
1596
+ "trigger/polling-scheduler.js": {
1597
+ "sha256": "e77a5eb32a54d98e9f7178fc15d7c237809519c183eea716cd01b7b9a2aae62e",
1598
+ "bytes": 10255
1543
1599
  },
1544
1600
  "trigger/trigger-listener.d.ts": {
1545
- "sha256": "110f4c0d3f118355e00ec16245edaf7d7721cbd3dace61d60594be3eb21c75f0",
1546
- "bytes": 1370
1601
+ "sha256": "8f1ee8650d1f7ea099b080f44d4ac5fdc0e870e80b5ea23a1003460170e239fd",
1602
+ "bytes": 1529
1547
1603
  },
1548
1604
  "trigger/trigger-listener.js": {
1549
- "sha256": "4aaac56d569d658c1a6af14a0f9fd3160e305fd9e80e7538d99371563ad17583",
1550
- "bytes": 7913
1605
+ "sha256": "f2de9f72a7ce75ee47d26c45b5d2e93f10def16098aa718ec69b145862e4b493",
1606
+ "bytes": 10021
1551
1607
  },
1552
1608
  "trigger/trigger-router.d.ts": {
1553
1609
  "sha256": "c60fa099ea236255d2a51799f3f8c550af1990d167565a976ecb9ec2eb42c6ae",
@@ -1562,12 +1618,12 @@
1562
1618
  "bytes": 1588
1563
1619
  },
1564
1620
  "trigger/trigger-store.js": {
1565
- "sha256": "1e3e86196d45014ceffad9bcd658c1d30b395b88d746aec305bf849f8c05f4af",
1566
- "bytes": 29618
1621
+ "sha256": "a3385bef29f0741e22627c0ddf81fd2189845f182ed87cc2830eb56c309097cf",
1622
+ "bytes": 34042
1567
1623
  },
1568
1624
  "trigger/types.d.ts": {
1569
- "sha256": "823b619f08da851d1fb4209209d6fbb3a34f2a165a9d39630b294b943e0c3e70",
1570
- "bytes": 2258
1625
+ "sha256": "c0f14b59c95cae52e06f8d9fe841292886587fad20497fd6686e842cc5696d3a",
1626
+ "bytes": 2808
1571
1627
  },
1572
1628
  "trigger/types.js": {
1573
1629
  "sha256": "45b4e4f23a6d1a2b07350196871b0c53840e5d8142b47f7acedd2f40ae7a6b73",
@@ -2134,7 +2190,7 @@
2134
2190
  "bytes": 3397
2135
2191
  },
2136
2192
  "v2/durable-core/schemas/export-bundle/index.d.ts": {
2137
- "sha256": "bb30c264c3d3dfc1f6f15464d6db5412d4c70e9bebf0a573f76eb26f6f4c88d5",
2193
+ "sha256": "4705633548971164d18baa2564fc7306f3687665896a33743a0eccf753c701d4",
2138
2194
  "bytes": 533636
2139
2195
  },
2140
2196
  "v2/durable-core/schemas/export-bundle/index.js": {
@@ -2190,7 +2246,7 @@
2190
2246
  "bytes": 2138
2191
2247
  },
2192
2248
  "v2/durable-core/schemas/session/events.d.ts": {
2193
- "sha256": "ab51c325019d5ce68a3923094f722ffb9878d15011800179783601811318c5d4",
2249
+ "sha256": "825319ae3964b8983e823f4ed69804840ea69b494d583620387605fb5f127225",
2194
2250
  "bytes": 80143
2195
2251
  },
2196
2252
  "v2/durable-core/schemas/session/events.js": {
@@ -2214,7 +2270,7 @@
2214
2270
  "bytes": 715
2215
2271
  },
2216
2272
  "v2/durable-core/schemas/session/manifest.d.ts": {
2217
- "sha256": "82840f71d8cde0d10834fe411c9ea494e043af93637c4ffb9c14fdf27bbb1b8c",
2273
+ "sha256": "1acc586f52df0935354241278ab3201d3e57fd5be5c41bbb69dbbe338121130a",
2218
2274
  "bytes": 1594
2219
2275
  },
2220
2276
  "v2/durable-core/schemas/session/manifest.js": {
@@ -2246,7 +2302,7 @@
2246
2302
  "bytes": 77
2247
2303
  },
2248
2304
  "v2/durable-core/schemas/session/validation-event.d.ts": {
2249
- "sha256": "c912b020c966312cc27fcbdadea4b90c093020f2e77a4cffe1b1fd9d30e0251d",
2305
+ "sha256": "c5aa9b265f60edd681d07fd5252292cc89f33e822b2b59e355a7c88b55c6556f",
2250
2306
  "bytes": 2206
2251
2307
  },
2252
2308
  "v2/durable-core/schemas/session/validation-event.js": {
@@ -2286,7 +2342,7 @@
2286
2342
  "bytes": 4205
2287
2343
  },
2288
2344
  "v2/durable-core/tokens/payloads.d.ts": {
2289
- "sha256": "4b84627aeee7c8f6d4c142e9ffb3511674d74d012601731d81193dfd6b95ba1c",
2345
+ "sha256": "0b1b8c90a000b5258b852fa4ef496f86e68f493801328cc84b408bbeb937bb46",
2290
2346
  "bytes": 6921
2291
2347
  },
2292
2348
  "v2/durable-core/tokens/payloads.js": {
@@ -2866,20 +2922,20 @@
2866
2922
  "bytes": 697
2867
2923
  },
2868
2924
  "v2/usecases/console-routes.js": {
2869
- "sha256": "912f03e9d590bd8af912a624ee67792e15baad542c7c58b04e398b4b554e8965",
2870
- "bytes": 22081
2925
+ "sha256": "411338d53f59a88cf1157b66bc15f772844d8e06b4c94e66c0d847ee505ea920",
2926
+ "bytes": 22102
2871
2927
  },
2872
2928
  "v2/usecases/console-service.d.ts": {
2873
2929
  "sha256": "fc8fe65427fa9f4f3535344b385b36f66ca06b7e3bfaea708931817a3edcad2b",
2874
2930
  "bytes": 1701
2875
2931
  },
2876
2932
  "v2/usecases/console-service.js": {
2877
- "sha256": "bb394fbad8dd703896aa1593f87487d742a090016e4debe9c8527b984ccd6a1d",
2878
- "bytes": 31112
2933
+ "sha256": "5cdef324f7f596d6fc31093646e395858be7ae1bf8a6b76f1ed68edc6c5fa57c",
2934
+ "bytes": 36184
2879
2935
  },
2880
2936
  "v2/usecases/console-types.d.ts": {
2881
- "sha256": "a7b7ecd30ef7532f6b71aa1280c1bc150225d0558b89a19858a9b760ff834d8a",
2882
- "bytes": 7452
2937
+ "sha256": "f25576a77f9be887b9a6e41192c1fb26c7f9433b4bbc851393a2e3a708948d72",
2938
+ "bytes": 7685
2883
2939
  },
2884
2940
  "v2/usecases/console-types.js": {
2885
2941
  "sha256": "d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230",
@@ -63,12 +63,12 @@ export declare const WorkflowNextOutputSchema: z.ZodObject<{
63
63
  next: z.ZodNullable<z.ZodType<JsonValue, z.ZodTypeDef, JsonValue>>;
64
64
  isComplete: z.ZodBoolean;
65
65
  }, "strip", z.ZodTypeAny, {
66
- state: import("../domain/execution/state.js").ExecutionState;
67
66
  isComplete: boolean;
67
+ state: import("../domain/execution/state.js").ExecutionState;
68
68
  next: JsonValue;
69
69
  }, {
70
- state: import("../domain/execution/state.js").ExecutionState;
71
70
  isComplete: boolean;
71
+ state: import("../domain/execution/state.js").ExecutionState;
72
72
  next: JsonValue;
73
73
  }>;
74
74
  export declare const WorkflowValidateJsonOutputSchema: z.ZodObject<{
@@ -1123,22 +1123,22 @@ export declare const V2ResumeNextCallSchema: z.ZodObject<{
1123
1123
  continueToken: z.ZodString;
1124
1124
  intent: z.ZodLiteral<"rehydrate">;
1125
1125
  }, "strip", z.ZodTypeAny, {
1126
- continueToken: string;
1127
1126
  intent: "rehydrate";
1128
- }, {
1129
1127
  continueToken: string;
1128
+ }, {
1130
1129
  intent: "rehydrate";
1130
+ continueToken: string;
1131
1131
  }>;
1132
1132
  }, "strip", z.ZodTypeAny, {
1133
1133
  params: {
1134
- continueToken: string;
1135
1134
  intent: "rehydrate";
1135
+ continueToken: string;
1136
1136
  };
1137
1137
  tool: "continue_workflow";
1138
1138
  }, {
1139
1139
  params: {
1140
- continueToken: string;
1141
1140
  intent: "rehydrate";
1141
+ continueToken: string;
1142
1142
  };
1143
1143
  tool: "continue_workflow";
1144
1144
  }>;
@@ -2237,66 +2237,66 @@ export declare const V2ResumeSessionOutputSchema: z.ZodObject<{
2237
2237
  continueToken: z.ZodString;
2238
2238
  intent: z.ZodLiteral<"rehydrate">;
2239
2239
  }, "strip", z.ZodTypeAny, {
2240
- continueToken: string;
2241
2240
  intent: "rehydrate";
2242
- }, {
2243
2241
  continueToken: string;
2242
+ }, {
2244
2243
  intent: "rehydrate";
2244
+ continueToken: string;
2245
2245
  }>;
2246
2246
  }, "strip", z.ZodTypeAny, {
2247
2247
  params: {
2248
- continueToken: string;
2249
2248
  intent: "rehydrate";
2249
+ continueToken: string;
2250
2250
  };
2251
2251
  tool: "continue_workflow";
2252
2252
  }, {
2253
2253
  params: {
2254
- continueToken: string;
2255
2254
  intent: "rehydrate";
2255
+ continueToken: string;
2256
2256
  };
2257
2257
  tool: "continue_workflow";
2258
2258
  }>;
2259
2259
  }, "strip", z.ZodTypeAny, {
2260
2260
  confidence: "strong" | "weak" | "medium";
2261
2261
  workflowId: string;
2262
- runId: string;
2263
2262
  sessionId: string;
2264
- gitBranch: string | null;
2263
+ runId: string;
2265
2264
  isComplete: boolean;
2265
+ sessionTitle: string | null;
2266
+ gitBranch: string | null;
2267
+ lastModifiedMs: number | null;
2266
2268
  nextCall: {
2267
2269
  params: {
2268
- continueToken: string;
2269
2270
  intent: "rehydrate";
2271
+ continueToken: string;
2270
2272
  };
2271
2273
  tool: "continue_workflow";
2272
2274
  };
2273
- sessionTitle: string | null;
2274
2275
  resumeToken: string;
2275
2276
  snippet: string;
2276
2277
  matchExplanation: string;
2277
2278
  pendingStepId: string | null;
2278
- lastModifiedMs: number | null;
2279
2279
  whyMatched: ("matched_exact_id" | "matched_notes" | "matched_notes_partial" | "matched_workflow_id" | "matched_head_sha" | "matched_branch" | "matched_repo_root" | "recency_fallback")[];
2280
2280
  }, {
2281
2281
  confidence: "strong" | "weak" | "medium";
2282
2282
  workflowId: string;
2283
- runId: string;
2284
2283
  sessionId: string;
2285
- gitBranch: string | null;
2284
+ runId: string;
2286
2285
  isComplete: boolean;
2286
+ sessionTitle: string | null;
2287
+ gitBranch: string | null;
2288
+ lastModifiedMs: number | null;
2287
2289
  nextCall: {
2288
2290
  params: {
2289
- continueToken: string;
2290
2291
  intent: "rehydrate";
2292
+ continueToken: string;
2291
2293
  };
2292
2294
  tool: "continue_workflow";
2293
2295
  };
2294
- sessionTitle: string | null;
2295
2296
  resumeToken: string;
2296
2297
  snippet: string;
2297
2298
  matchExplanation: string;
2298
2299
  pendingStepId: string | null;
2299
- lastModifiedMs: number | null;
2300
2300
  whyMatched: ("matched_exact_id" | "matched_notes" | "matched_notes_partial" | "matched_workflow_id" | "matched_head_sha" | "matched_branch" | "matched_repo_root" | "recency_fallback")[];
2301
2301
  }>, "many">;
2302
2302
  totalEligible: z.ZodNumber;
@@ -2304,23 +2304,23 @@ export declare const V2ResumeSessionOutputSchema: z.ZodObject<{
2304
2304
  candidates: {
2305
2305
  confidence: "strong" | "weak" | "medium";
2306
2306
  workflowId: string;
2307
- runId: string;
2308
2307
  sessionId: string;
2309
- gitBranch: string | null;
2308
+ runId: string;
2310
2309
  isComplete: boolean;
2310
+ sessionTitle: string | null;
2311
+ gitBranch: string | null;
2312
+ lastModifiedMs: number | null;
2311
2313
  nextCall: {
2312
2314
  params: {
2313
- continueToken: string;
2314
2315
  intent: "rehydrate";
2316
+ continueToken: string;
2315
2317
  };
2316
2318
  tool: "continue_workflow";
2317
2319
  };
2318
- sessionTitle: string | null;
2319
2320
  resumeToken: string;
2320
2321
  snippet: string;
2321
2322
  matchExplanation: string;
2322
2323
  pendingStepId: string | null;
2323
- lastModifiedMs: number | null;
2324
2324
  whyMatched: ("matched_exact_id" | "matched_notes" | "matched_notes_partial" | "matched_workflow_id" | "matched_head_sha" | "matched_branch" | "matched_repo_root" | "recency_fallback")[];
2325
2325
  }[];
2326
2326
  totalEligible: number;
@@ -2328,23 +2328,23 @@ export declare const V2ResumeSessionOutputSchema: z.ZodObject<{
2328
2328
  candidates: {
2329
2329
  confidence: "strong" | "weak" | "medium";
2330
2330
  workflowId: string;
2331
- runId: string;
2332
2331
  sessionId: string;
2333
- gitBranch: string | null;
2332
+ runId: string;
2334
2333
  isComplete: boolean;
2334
+ sessionTitle: string | null;
2335
+ gitBranch: string | null;
2336
+ lastModifiedMs: number | null;
2335
2337
  nextCall: {
2336
2338
  params: {
2337
- continueToken: string;
2338
2339
  intent: "rehydrate";
2340
+ continueToken: string;
2339
2341
  };
2340
2342
  tool: "continue_workflow";
2341
2343
  };
2342
- sessionTitle: string | null;
2343
2344
  resumeToken: string;
2344
2345
  snippet: string;
2345
2346
  matchExplanation: string;
2346
2347
  pendingStepId: string | null;
2347
- lastModifiedMs: number | null;
2348
2348
  whyMatched: ("matched_exact_id" | "matched_notes" | "matched_notes_partial" | "matched_workflow_id" | "matched_head_sha" | "matched_branch" | "matched_repo_root" | "recency_fallback")[];
2349
2349
  }[];
2350
2350
  totalEligible: number;
@@ -1,4 +1,8 @@
1
1
  export type BridgeEvent = {
2
+ readonly kind: 'primary_started';
3
+ readonly transport: 'stdio' | 'http';
4
+ readonly port?: number;
5
+ } | {
2
6
  readonly kind: 'started';
3
7
  readonly primaryPort: number;
4
8
  readonly ppid: number;
@@ -86,6 +86,10 @@ function fatalExit(label, reason) {
86
86
  }
87
87
  function registerFatalHandlers(transport) {
88
88
  registeredTransport = transport;
89
+ process.stderr.on('error', () => { });
90
+ if (process.stdout.listenerCount('error') === 0) {
91
+ process.stdout.on('error', () => { });
92
+ }
89
93
  process.on('uncaughtException', (err) => fatalExit('Uncaught exception', err));
90
94
  process.on('unhandledRejection', (reason) => fatalExit('Unhandled promise rejection', reason));
91
95
  }
@@ -42,12 +42,14 @@ const http_listener_js_1 = require("./http-listener.js");
42
42
  const shutdown_hooks_js_1 = require("./shutdown-hooks.js");
43
43
  const fatal_exit_js_1 = require("./fatal-exit.js");
44
44
  const primary_tombstone_js_1 = require("./primary-tombstone.js");
45
+ const bridge_events_js_1 = require("./bridge-events.js");
45
46
  const crypto = __importStar(require("crypto"));
46
47
  const express_1 = __importDefault(require("express"));
47
48
  const HTTP_PORT_SCAN_END = 3199;
48
49
  async function startHttpServer(port) {
49
50
  (0, fatal_exit_js_1.registerFatalHandlers)('http');
50
51
  (0, fatal_exit_js_1.logStartup)('http', { port });
52
+ (0, bridge_events_js_1.logBridgeEvent)({ kind: 'primary_started', transport: 'http', port });
51
53
  (0, primary_tombstone_js_1.clearTombstone)();
52
54
  const { server, ctx } = await (0, server_js_1.composeServer)();
53
55
  const scanEnd = Math.max(port, HTTP_PORT_SCAN_END);
@@ -38,6 +38,7 @@ const server_js_1 = require("../server.js");
38
38
  const shutdown_hooks_js_1 = require("./shutdown-hooks.js");
39
39
  const fatal_exit_js_1 = require("./fatal-exit.js");
40
40
  const primary_tombstone_js_1 = require("./primary-tombstone.js");
41
+ const bridge_events_js_1 = require("./bridge-events.js");
41
42
  const INITIAL_ROOTS_TIMEOUT_MS = 1000;
42
43
  async function fetchInitialRootsWithTimeout(server) {
43
44
  return Promise.race([
@@ -50,6 +51,7 @@ async function fetchInitialRootsWithTimeout(server) {
50
51
  async function startStdioServer() {
51
52
  (0, fatal_exit_js_1.registerFatalHandlers)('stdio');
52
53
  (0, fatal_exit_js_1.logStartup)('stdio');
54
+ (0, bridge_events_js_1.logBridgeEvent)({ kind: 'primary_started', transport: 'stdio' });
53
55
  (0, primary_tombstone_js_1.clearTombstone)();
54
56
  const { server, ctx, rootsManager } = await (0, server_js_1.composeServer)();
55
57
  (0, fatal_exit_js_1.registerGracefulShutdown)(async () => { await ctx.httpServer?.stop(); });
@@ -59,27 +61,45 @@ async function startStdioServer() {
59
61
  try {
60
62
  const result = await server.listRoots();
61
63
  rootsManager.updateRootUris(result.roots.map((r) => r.uri));
62
- console.error(`[Roots] Updated workspace roots: ${result.roots.map((r) => r.uri).join(', ') || '(none)'}`);
64
+ try {
65
+ process.stderr.write(`[Roots] Updated workspace roots: ${result.roots.map((r) => r.uri).join(', ') || '(none)'}\n`);
66
+ }
67
+ catch { }
63
68
  }
64
69
  catch {
65
- console.error('[Roots] Failed to fetch updated roots after change notification');
70
+ try {
71
+ process.stderr.write('[Roots] Failed to fetch updated roots after change notification\n');
72
+ }
73
+ catch { }
66
74
  }
67
75
  });
68
76
  (0, shutdown_hooks_js_1.wireStdoutShutdown)();
69
77
  const transport = new StdioServerTransport();
70
78
  await server.connect(transport);
71
- console.error('[Transport] WorkRail MCP Server running on stdio');
79
+ try {
80
+ process.stderr.write('[Transport] WorkRail MCP Server running on stdio\n');
81
+ }
82
+ catch { }
72
83
  void fetchInitialRootsWithTimeout(server)
73
84
  .then((result) => {
74
85
  if (result == null) {
75
- console.error('[Roots] Initial roots probe timed out; workspace context will use server CWD fallback');
86
+ try {
87
+ process.stderr.write('[Roots] Initial roots probe timed out; workspace context will use server CWD fallback\n');
88
+ }
89
+ catch { }
76
90
  return;
77
91
  }
78
92
  rootsManager.updateRootUris(result.roots.map((r) => r.uri));
79
- console.error(`[Roots] Initial workspace roots: ${result.roots.map((r) => r.uri).join(', ') || '(none)'}`);
93
+ try {
94
+ process.stderr.write(`[Roots] Initial workspace roots: ${result.roots.map((r) => r.uri).join(', ') || '(none)'}\n`);
95
+ }
96
+ catch { }
80
97
  })
81
98
  .catch(() => {
82
- console.error('[Roots] Client does not support roots/list; workspace context will use server CWD fallback');
99
+ try {
100
+ process.stderr.write('[Roots] Client does not support roots/list; workspace context will use server CWD fallback\n');
101
+ }
102
+ catch { }
83
103
  });
84
104
  (0, shutdown_hooks_js_1.wireStdinShutdown)();
85
105
  (0, shutdown_hooks_js_1.wireShutdownHooks)({