@exaudeus/workrail 3.40.0 → 3.41.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.
- package/dist/cli/commands/init.js +0 -3
- package/dist/cli-worktrain.js +8 -0
- package/dist/cli.js +0 -18
- package/dist/config/app-config.d.ts +0 -16
- package/dist/config/app-config.js +0 -14
- package/dist/config/config-file.js +0 -3
- package/dist/console-ui/assets/index-CQt4UhPB.js +28 -0
- package/dist/console-ui/assets/index-DGj8EsFR.css +1 -0
- package/dist/console-ui/index.html +2 -2
- package/dist/coordinators/pr-review.d.ts +17 -0
- package/dist/coordinators/pr-review.js +164 -0
- package/dist/daemon/daemon-events.d.ts +9 -1
- package/dist/daemon/soul-template.d.ts +2 -2
- package/dist/daemon/soul-template.js +11 -1
- package/dist/daemon/workflow-runner.d.ts +14 -1
- package/dist/daemon/workflow-runner.js +395 -25
- package/dist/di/container.js +1 -25
- package/dist/di/tokens.d.ts +0 -3
- package/dist/di/tokens.js +0 -3
- package/dist/engine/engine-factory.js +0 -1
- package/dist/infrastructure/console-defaults.d.ts +1 -0
- package/dist/infrastructure/console-defaults.js +4 -0
- package/dist/infrastructure/session/index.d.ts +0 -1
- package/dist/infrastructure/session/index.js +1 -3
- package/dist/manifest.json +87 -103
- package/dist/mcp/handlers/session.d.ts +1 -0
- package/dist/mcp/handlers/session.js +61 -13
- package/dist/mcp/server.js +1 -18
- package/dist/mcp/transports/http-entry.js +0 -2
- package/dist/mcp/transports/stdio-entry.js +1 -2
- package/dist/mcp/types.d.ts +0 -2
- package/dist/trigger/daemon-console.d.ts +2 -0
- package/dist/trigger/daemon-console.js +1 -1
- package/dist/trigger/trigger-listener.d.ts +2 -0
- package/dist/trigger/trigger-listener.js +3 -1
- package/dist/trigger/trigger-router.d.ts +4 -3
- package/dist/trigger/trigger-router.js +4 -3
- package/dist/trigger/trigger-store.js +17 -4
- package/dist/v2/usecases/console-routes.d.ts +2 -1
- package/dist/v2/usecases/console-routes.js +29 -5
- package/dist/v2/usecases/console-service.js +14 -0
- package/dist/v2/usecases/console-types.d.ts +1 -0
- package/docs/authoring.md +16 -16
- package/docs/design/coordinator-message-queue-drain-plan.md +241 -0
- package/docs/design/coordinator-message-queue-drain-review.md +120 -0
- package/docs/design/coordinator-message-queue-drain.md +289 -0
- package/docs/design/shaping-workflow-external-research.md +119 -0
- package/docs/discovery/late-bound-goals-impl-plan.md +147 -0
- package/docs/discovery/late-bound-goals-review.md +82 -0
- package/docs/discovery/late-bound-goals.md +118 -0
- package/docs/discovery/steer-endpoint-design-candidates.md +288 -0
- package/docs/discovery/steer-endpoint-design-review-findings.md +104 -0
- package/docs/discovery/steer-endpoint-implementation-plan.md +284 -0
- package/docs/ideas/backlog.md +292 -0
- package/docs/ideas/design-candidates-console-session-tree-impl.md +64 -0
- package/docs/ideas/design-candidates-session-tree-view.md +196 -0
- package/docs/ideas/design-review-findings-console-session-tree-impl.md +75 -0
- package/docs/ideas/design-review-findings-session-tree-view.md +88 -0
- package/docs/ideas/implementation_plan_session_tree_view.md +238 -0
- package/package.json +2 -1
- package/spec/authoring-spec.json +16 -16
- package/spec/shape.schema.json +178 -0
- package/spec/workflow-tags.json +232 -47
- package/workflows/coding-task-workflow-agentic.json +491 -480
- package/workflows/wr.shaping.json +182 -0
- package/dist/console-ui/assets/index-8dh0Psu-.css +0 -1
- package/dist/console-ui/assets/index-CXWCAonr.js +0 -28
- package/dist/infrastructure/session/DashboardHeartbeat.d.ts +0 -8
- package/dist/infrastructure/session/DashboardHeartbeat.js +0 -39
- package/dist/infrastructure/session/DashboardLockRelease.d.ts +0 -2
- package/dist/infrastructure/session/DashboardLockRelease.js +0 -29
- package/dist/infrastructure/session/HttpServer.d.ts +0 -60
- package/dist/infrastructure/session/HttpServer.js +0 -912
- package/workflows/coding-task-workflow-agentic.lean.v2.json +0 -648
- package/workflows/coding-task-workflow-agentic.v2.json +0 -324
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_CONSOLE_PORT = 3456;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SessionManager = void 0;
|
|
4
4
|
var SessionManager_js_1 = require("./SessionManager.js");
|
|
5
5
|
Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return SessionManager_js_1.SessionManager; } });
|
|
6
|
-
var HttpServer_js_1 = require("./HttpServer.js");
|
|
7
|
-
Object.defineProperty(exports, "HttpServer", { enumerable: true, get: function () { return HttpServer_js_1.HttpServer; } });
|
package/dist/manifest.json
CHANGED
|
@@ -238,16 +238,16 @@
|
|
|
238
238
|
"bytes": 31
|
|
239
239
|
},
|
|
240
240
|
"cli-worktrain.js": {
|
|
241
|
-
"sha256": "
|
|
242
|
-
"bytes":
|
|
241
|
+
"sha256": "d2b9e9e4f6d58be3a548d77cbd8a1d029693f4b1b3c4592ebe063ddb19c5f1f8",
|
|
242
|
+
"bytes": 45440
|
|
243
243
|
},
|
|
244
244
|
"cli.d.ts": {
|
|
245
245
|
"sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
|
|
246
246
|
"bytes": 31
|
|
247
247
|
},
|
|
248
248
|
"cli.js": {
|
|
249
|
-
"sha256": "
|
|
250
|
-
"bytes":
|
|
249
|
+
"sha256": "026b67f26c6b1153a98c8212723d9791b8f15be83fa04fc670bccae44dbfc4af",
|
|
250
|
+
"bytes": 11599
|
|
251
251
|
},
|
|
252
252
|
"cli/commands/cleanup.d.ts": {
|
|
253
253
|
"sha256": "efe1f9e2ecd58e92007ed38b9581a3852c2babe4b3f2a97237dccd878eebe7ec",
|
|
@@ -270,8 +270,8 @@
|
|
|
270
270
|
"bytes": 996
|
|
271
271
|
},
|
|
272
272
|
"cli/commands/init.js": {
|
|
273
|
-
"sha256": "
|
|
274
|
-
"bytes":
|
|
273
|
+
"sha256": "39a7dc7461fc4ad546db11bd0f7443e74120dd939e8e5b52d799e5b49dd096ba",
|
|
274
|
+
"bytes": 4599
|
|
275
275
|
},
|
|
276
276
|
"cli/commands/list.d.ts": {
|
|
277
277
|
"sha256": "b1fd33d3ec871bf1d544b2580c6b25720b747620bc690ec0e1fe4cb8af638504",
|
|
@@ -426,20 +426,20 @@
|
|
|
426
426
|
"bytes": 1081
|
|
427
427
|
},
|
|
428
428
|
"config/app-config.d.ts": {
|
|
429
|
-
"sha256": "
|
|
430
|
-
"bytes":
|
|
429
|
+
"sha256": "0cff34253cca35af8f435784fa367259b61b10029dca970ce91448f4e5352336",
|
|
430
|
+
"bytes": 1037
|
|
431
431
|
},
|
|
432
432
|
"config/app-config.js": {
|
|
433
|
-
"sha256": "
|
|
434
|
-
"bytes":
|
|
433
|
+
"sha256": "43827b728a0cda31d71de962413e8ffcb233cd636102d97b2117ebc578b11dc1",
|
|
434
|
+
"bytes": 1503
|
|
435
435
|
},
|
|
436
436
|
"config/config-file.d.ts": {
|
|
437
437
|
"sha256": "13deb48a994605c4fe3336e47c20790dfa9f32f6760a46d1c4b2bbac6eb52dc4",
|
|
438
438
|
"bytes": 506
|
|
439
439
|
},
|
|
440
440
|
"config/config-file.js": {
|
|
441
|
-
"sha256": "
|
|
442
|
-
"bytes":
|
|
441
|
+
"sha256": "0cc52af9582758062c0de48ec44d34bf4d012a4831d5075543a40b79125aa7e2",
|
|
442
|
+
"bytes": 7170
|
|
443
443
|
},
|
|
444
444
|
"config/feature-flags.d.ts": {
|
|
445
445
|
"sha256": "49cdf81a9c4f31eca560af5257c569143d2138ec996468b949f9807b7ad7802e",
|
|
@@ -449,16 +449,16 @@
|
|
|
449
449
|
"sha256": "5fe866e54f796975dec5d8ba9983aefd86074db212d3fccd64eed04bc9f0b3da",
|
|
450
450
|
"bytes": 8011
|
|
451
451
|
},
|
|
452
|
-
"console-ui/assets/index-
|
|
453
|
-
"sha256": "
|
|
454
|
-
"bytes":
|
|
452
|
+
"console-ui/assets/index-CQt4UhPB.js": {
|
|
453
|
+
"sha256": "401861d73e3e6a62d6fa42977fd52b20e114a68947a7bcb83b090cbd526fdeb3",
|
|
454
|
+
"bytes": 760528
|
|
455
455
|
},
|
|
456
|
-
"console-ui/assets/index-
|
|
457
|
-
"sha256": "
|
|
458
|
-
"bytes":
|
|
456
|
+
"console-ui/assets/index-DGj8EsFR.css": {
|
|
457
|
+
"sha256": "3bdb55ec0957928e0ebbb86a7d6b36d28f7ba7d5c0f3e236fd8f2e2aacee2fa4",
|
|
458
|
+
"bytes": 60631
|
|
459
459
|
},
|
|
460
460
|
"console-ui/index.html": {
|
|
461
|
-
"sha256": "
|
|
461
|
+
"sha256": "109c9d143b49794ec3b0a1ed4afb8a6a5c9cf7243c5c7ddc4865413ab12a9e10",
|
|
462
462
|
"bytes": 417
|
|
463
463
|
},
|
|
464
464
|
"console/standalone-console.d.ts": {
|
|
@@ -470,12 +470,12 @@
|
|
|
470
470
|
"bytes": 6325
|
|
471
471
|
},
|
|
472
472
|
"coordinators/pr-review.d.ts": {
|
|
473
|
-
"sha256": "
|
|
474
|
-
"bytes":
|
|
473
|
+
"sha256": "15bb232eceb035d137b996590f44692a03d05674dfd7a7bd6bb5299345d55fd3",
|
|
474
|
+
"bytes": 3667
|
|
475
475
|
},
|
|
476
476
|
"coordinators/pr-review.js": {
|
|
477
|
-
"sha256": "
|
|
478
|
-
"bytes":
|
|
477
|
+
"sha256": "c58a423eab61e1f210f6952129a9a0ab1ac21c648103149887328f71efb8b5b2",
|
|
478
|
+
"bytes": 31196
|
|
479
479
|
},
|
|
480
480
|
"core/error-handler.d.ts": {
|
|
481
481
|
"sha256": "80451f12ac8e185133ec3dc4c57285491a785f27525ed21e729db1da3f61010d",
|
|
@@ -494,8 +494,8 @@
|
|
|
494
494
|
"bytes": 9803
|
|
495
495
|
},
|
|
496
496
|
"daemon/daemon-events.d.ts": {
|
|
497
|
-
"sha256": "
|
|
498
|
-
"bytes":
|
|
497
|
+
"sha256": "8157d89411cb535d3c08d1f0a94a7bd9b5fa4934777133c0217917f83e56d95e",
|
|
498
|
+
"bytes": 4488
|
|
499
499
|
},
|
|
500
500
|
"daemon/daemon-events.js": {
|
|
501
501
|
"sha256": "b6841eef4634bb266faf81961c1e387b535dd64a74d58582f3f2bad8c3469d95",
|
|
@@ -510,36 +510,36 @@
|
|
|
510
510
|
"bytes": 14
|
|
511
511
|
},
|
|
512
512
|
"daemon/soul-template.d.ts": {
|
|
513
|
-
"sha256": "
|
|
514
|
-
"bytes":
|
|
513
|
+
"sha256": "abe720ac2d0bdc23b6e0a2b4aed78ae241b6553fd8f6784d0961a915f54d13c2",
|
|
514
|
+
"bytes": 2245
|
|
515
515
|
},
|
|
516
516
|
"daemon/soul-template.js": {
|
|
517
|
-
"sha256": "
|
|
518
|
-
"bytes":
|
|
517
|
+
"sha256": "d7c425a03d9a39994a2a961470a892bc8c5936b697b6a59fa161d19d72825015",
|
|
518
|
+
"bytes": 1512
|
|
519
519
|
},
|
|
520
520
|
"daemon/workflow-runner.d.ts": {
|
|
521
|
-
"sha256": "
|
|
522
|
-
"bytes":
|
|
521
|
+
"sha256": "7025b0023c763c6899511c5d3635e9ab99bdc361616249aa25b36508753bf3a0",
|
|
522
|
+
"bytes": 6154
|
|
523
523
|
},
|
|
524
524
|
"daemon/workflow-runner.js": {
|
|
525
|
-
"sha256": "
|
|
526
|
-
"bytes":
|
|
525
|
+
"sha256": "53db37bda845975ca06f81e4df9db458bb5edc6a531f9574a4aeee08f06041bb",
|
|
526
|
+
"bytes": 84353
|
|
527
527
|
},
|
|
528
528
|
"di/container.d.ts": {
|
|
529
529
|
"sha256": "003bb7fb7478d627524b9b1e76bd0a963a243794a687ff233b96dc0e33a06d9f",
|
|
530
530
|
"bytes": 620
|
|
531
531
|
},
|
|
532
532
|
"di/container.js": {
|
|
533
|
-
"sha256": "
|
|
534
|
-
"bytes":
|
|
533
|
+
"sha256": "55c5218cb3a7e7a5735c475430e6d865b5d3d538c5680d872da0f1eb2e23acba",
|
|
534
|
+
"bytes": 20676
|
|
535
535
|
},
|
|
536
536
|
"di/tokens.d.ts": {
|
|
537
|
-
"sha256": "
|
|
538
|
-
"bytes":
|
|
537
|
+
"sha256": "66ac822b61508e3f9e92f8ccbefe4e86ed15315cde7cbdb19ff794cf7a9cfc4c",
|
|
538
|
+
"bytes": 1964
|
|
539
539
|
},
|
|
540
540
|
"di/tokens.js": {
|
|
541
|
-
"sha256": "
|
|
542
|
-
"bytes":
|
|
541
|
+
"sha256": "f38db2853a1b299025f7226d80443ae3205ce80f7509f1b5a5c3f876fb671caa",
|
|
542
|
+
"bytes": 2422
|
|
543
543
|
},
|
|
544
544
|
"domain/execution/error.d.ts": {
|
|
545
545
|
"sha256": "2eac85c42ec399a23724f868641eeadd0d196b4d324ee4caaff82a6b46155bd9",
|
|
@@ -594,8 +594,8 @@
|
|
|
594
594
|
"bytes": 213
|
|
595
595
|
},
|
|
596
596
|
"engine/engine-factory.js": {
|
|
597
|
-
"sha256": "
|
|
598
|
-
"bytes":
|
|
597
|
+
"sha256": "2a920f5266fbaaa8bb7535bdc60e39472fad95e31d851ce402a0181c86afa2b7",
|
|
598
|
+
"bytes": 13964
|
|
599
599
|
},
|
|
600
600
|
"engine/index.d.ts": {
|
|
601
601
|
"sha256": "91e12882c565e96a9809fdf43a0dc0a77fdffdfd562aaf43d2e86e6590ed0b16",
|
|
@@ -653,6 +653,14 @@
|
|
|
653
653
|
"sha256": "1eca695e42de62caceca46ca6721af36b3756bc3bf8ae211c7d96ab14f396d3d",
|
|
654
654
|
"bytes": 1361
|
|
655
655
|
},
|
|
656
|
+
"infrastructure/console-defaults.d.ts": {
|
|
657
|
+
"sha256": "2af729f7876b47df5a590f385d4a949eeae1718488d283a5fa9e7f0e735577ad",
|
|
658
|
+
"bytes": 50
|
|
659
|
+
},
|
|
660
|
+
"infrastructure/console-defaults.js": {
|
|
661
|
+
"sha256": "cbec2e7764df68767403d9e46219d046ee0552a70ae06a380aeaea728507519d",
|
|
662
|
+
"bytes": 153
|
|
663
|
+
},
|
|
656
664
|
"infrastructure/index.d.ts": {
|
|
657
665
|
"sha256": "af0c8fc5a595bc00e3bcc400a9ce8b5a0cb3f4d1a8acf880bcd4d5a3099a594e",
|
|
658
666
|
"bytes": 27
|
|
@@ -661,30 +669,6 @@
|
|
|
661
669
|
"sha256": "ad16f3653a4de77225915108de61fa1eca6c86734a402d6f0d3e2408da65a139",
|
|
662
670
|
"bytes": 802
|
|
663
671
|
},
|
|
664
|
-
"infrastructure/session/DashboardHeartbeat.d.ts": {
|
|
665
|
-
"sha256": "d265457c0305cd34e7c7d1db52c3c16b4014465dc9258f614c75589fbb760727",
|
|
666
|
-
"bytes": 224
|
|
667
|
-
},
|
|
668
|
-
"infrastructure/session/DashboardHeartbeat.js": {
|
|
669
|
-
"sha256": "9f07b14090e5dd1d142164150680e1fdb8154f4ac2d41baac39fac0ffde3b060",
|
|
670
|
-
"bytes": 1287
|
|
671
|
-
},
|
|
672
|
-
"infrastructure/session/DashboardLockRelease.d.ts": {
|
|
673
|
-
"sha256": "409ed0524d32b2dcbb144148975839d8976e70aff230cf482d84ba76de4da3da",
|
|
674
|
-
"bytes": 143
|
|
675
|
-
},
|
|
676
|
-
"infrastructure/session/DashboardLockRelease.js": {
|
|
677
|
-
"sha256": "24f4e4236299d4ae329fab6bfbe0da762ef1c04c4137aecbcccdcd05b4c91d94",
|
|
678
|
-
"bytes": 818
|
|
679
|
-
},
|
|
680
|
-
"infrastructure/session/HttpServer.d.ts": {
|
|
681
|
-
"sha256": "79c0d8855d9437084756186f5e115aab82c829f48bafc1a5742903a1e7d808b6",
|
|
682
|
-
"bytes": 2025
|
|
683
|
-
},
|
|
684
|
-
"infrastructure/session/HttpServer.js": {
|
|
685
|
-
"sha256": "5ff243e7daf8fb84667ab395a0b1ec4b78dc516d5279e69e6f02dae168070438",
|
|
686
|
-
"bytes": 35586
|
|
687
|
-
},
|
|
688
672
|
"infrastructure/session/SessionDataNormalizer.d.ts": {
|
|
689
673
|
"sha256": "c89bb5e00d7d01fb4aa6d0095602541de53c425c6b99b67fa8367eb29cb63e9e",
|
|
690
674
|
"bytes": 1859
|
|
@@ -710,12 +694,12 @@
|
|
|
710
694
|
"bytes": 21438
|
|
711
695
|
},
|
|
712
696
|
"infrastructure/session/index.d.ts": {
|
|
713
|
-
"sha256": "
|
|
714
|
-
"bytes":
|
|
697
|
+
"sha256": "1a1727565eb51ca32da6e0595f9b5c16f3b32f626c0be1198b7ccdd8c74aebd7",
|
|
698
|
+
"bytes": 80
|
|
715
699
|
},
|
|
716
700
|
"infrastructure/session/index.js": {
|
|
717
|
-
"sha256": "
|
|
718
|
-
"bytes":
|
|
701
|
+
"sha256": "67548e0e96b01f0cc987b8f10f937779d84f8bc31f0525cd77c3e3902726fa38",
|
|
702
|
+
"bytes": 305
|
|
719
703
|
},
|
|
720
704
|
"infrastructure/storage/caching-workflow-storage.d.ts": {
|
|
721
705
|
"sha256": "27431341a28424c78a882f9de03ba0e9d904ea0a79cf8d29dae5d460c56cec36",
|
|
@@ -854,12 +838,12 @@
|
|
|
854
838
|
"bytes": 6122
|
|
855
839
|
},
|
|
856
840
|
"mcp/handlers/session.d.ts": {
|
|
857
|
-
"sha256": "
|
|
858
|
-
"bytes":
|
|
841
|
+
"sha256": "79170e84eeeea60e8b79e1f04d1b302418fb4b77cfac6e61b8895222122409e1",
|
|
842
|
+
"bytes": 1417
|
|
859
843
|
},
|
|
860
844
|
"mcp/handlers/session.js": {
|
|
861
|
-
"sha256": "
|
|
862
|
-
"bytes":
|
|
845
|
+
"sha256": "be770b456c0ae0381bc5159d27f115c7829da5f0236736aad7ee237f77e0fa58",
|
|
846
|
+
"bytes": 7675
|
|
863
847
|
},
|
|
864
848
|
"mcp/handlers/shared/remembered-roots.d.ts": {
|
|
865
849
|
"sha256": "d98e4c6dbce6333248fd2e015efe482aab2882db61855e9b0576d50881bb0ea2",
|
|
@@ -1170,8 +1154,8 @@
|
|
|
1170
1154
|
"bytes": 960
|
|
1171
1155
|
},
|
|
1172
1156
|
"mcp/server.js": {
|
|
1173
|
-
"sha256": "
|
|
1174
|
-
"bytes":
|
|
1157
|
+
"sha256": "b4bb802ebe0fe7374ff0c60062bc9950fc2aba9aef21934805d16d531c0e8313",
|
|
1158
|
+
"bytes": 15911
|
|
1175
1159
|
},
|
|
1176
1160
|
"mcp/step-content-envelope.d.ts": {
|
|
1177
1161
|
"sha256": "19bd63c4d4de1d5d93393d346625d28ffd1bebdc320d4ba4e694cb740ec97d3b",
|
|
@@ -1234,8 +1218,8 @@
|
|
|
1234
1218
|
"bytes": 70
|
|
1235
1219
|
},
|
|
1236
1220
|
"mcp/transports/http-entry.js": {
|
|
1237
|
-
"sha256": "
|
|
1238
|
-
"bytes":
|
|
1221
|
+
"sha256": "3f75378532c8780b11ab040a3617062e467be3dae85a7964b89e7df577b83507",
|
|
1222
|
+
"bytes": 3556
|
|
1239
1223
|
},
|
|
1240
1224
|
"mcp/transports/http-listener.d.ts": {
|
|
1241
1225
|
"sha256": "6c6cd6dcfe110ed8fa1dc2f9c96caba55959555f98048d3694ac104f42d6d51a",
|
|
@@ -1258,8 +1242,8 @@
|
|
|
1258
1242
|
"bytes": 59
|
|
1259
1243
|
},
|
|
1260
1244
|
"mcp/transports/stdio-entry.js": {
|
|
1261
|
-
"sha256": "
|
|
1262
|
-
"bytes":
|
|
1245
|
+
"sha256": "6250cc570b42d7f9fdd570429a131065bf3278728a9cf595ab03d3fef54908fe",
|
|
1246
|
+
"bytes": 4288
|
|
1263
1247
|
},
|
|
1264
1248
|
"mcp/transports/transport-mode.d.ts": {
|
|
1265
1249
|
"sha256": "1c59128ab0174bd2a113fff17521e6339ca367f2b8980c2f2c164ec393c10518",
|
|
@@ -1270,8 +1254,8 @@
|
|
|
1270
1254
|
"bytes": 747
|
|
1271
1255
|
},
|
|
1272
1256
|
"mcp/types.d.ts": {
|
|
1273
|
-
"sha256": "
|
|
1274
|
-
"bytes":
|
|
1257
|
+
"sha256": "801d390c856e733b5c728d0500dffc8c40c1247892682f58655aba1a9dfb9653",
|
|
1258
|
+
"bytes": 4981
|
|
1275
1259
|
},
|
|
1276
1260
|
"mcp/types.js": {
|
|
1277
1261
|
"sha256": "d10c4070e4c3454d80f0fa9cdc0e978c69c53c13fd09baa8710fcd802fed8926",
|
|
@@ -1542,12 +1526,12 @@
|
|
|
1542
1526
|
"bytes": 2763
|
|
1543
1527
|
},
|
|
1544
1528
|
"trigger/daemon-console.d.ts": {
|
|
1545
|
-
"sha256": "
|
|
1546
|
-
"bytes":
|
|
1529
|
+
"sha256": "a33ed256bb74a98031488e5bea3ff88d97b1650ac45158e79490cd7f4139d20b",
|
|
1530
|
+
"bytes": 1048
|
|
1547
1531
|
},
|
|
1548
1532
|
"trigger/daemon-console.js": {
|
|
1549
|
-
"sha256": "
|
|
1550
|
-
"bytes":
|
|
1533
|
+
"sha256": "c5cbdb7bcf171a9c7c844a0d45f62b0fbadb44c2ff1f3c802aa82e5b652664ed",
|
|
1534
|
+
"bytes": 5471
|
|
1551
1535
|
},
|
|
1552
1536
|
"trigger/delivery-action.d.ts": {
|
|
1553
1537
|
"sha256": "58109eaa7124d2864e1d872ff0148548932d2fa4d7e672f5fd83d4bbe40afdda",
|
|
@@ -1598,28 +1582,28 @@
|
|
|
1598
1582
|
"bytes": 10255
|
|
1599
1583
|
},
|
|
1600
1584
|
"trigger/trigger-listener.d.ts": {
|
|
1601
|
-
"sha256": "
|
|
1602
|
-
"bytes":
|
|
1585
|
+
"sha256": "92e971ab8f47c3c867860cffc01f54c4aae54fcc4ae199b9469210f4ce639423",
|
|
1586
|
+
"bytes": 1639
|
|
1603
1587
|
},
|
|
1604
1588
|
"trigger/trigger-listener.js": {
|
|
1605
|
-
"sha256": "
|
|
1606
|
-
"bytes":
|
|
1589
|
+
"sha256": "347ce68b2b6d14be5277488e7d54ac0d9e80173407ee12dbb2f7df90765bac3c",
|
|
1590
|
+
"bytes": 10668
|
|
1607
1591
|
},
|
|
1608
1592
|
"trigger/trigger-router.d.ts": {
|
|
1609
|
-
"sha256": "
|
|
1610
|
-
"bytes":
|
|
1593
|
+
"sha256": "b02e4c24865fc2ede2193d5b83d12a2b25b3c368a5acfdde0f7bd91865091329",
|
|
1594
|
+
"bytes": 2123
|
|
1611
1595
|
},
|
|
1612
1596
|
"trigger/trigger-router.js": {
|
|
1613
|
-
"sha256": "
|
|
1614
|
-
"bytes":
|
|
1597
|
+
"sha256": "6584949ecc6bd8fe5d23bfe5b3b7feb3a488804987b2edd90733d2c0142aeec2",
|
|
1598
|
+
"bytes": 15973
|
|
1615
1599
|
},
|
|
1616
1600
|
"trigger/trigger-store.d.ts": {
|
|
1617
1601
|
"sha256": "7afb05127d55bc3757a550dd15d4b797766b3fff29d1bfe76b303764b93322e7",
|
|
1618
1602
|
"bytes": 1588
|
|
1619
1603
|
},
|
|
1620
1604
|
"trigger/trigger-store.js": {
|
|
1621
|
-
"sha256": "
|
|
1622
|
-
"bytes":
|
|
1605
|
+
"sha256": "4e03bf0bea132c67087d69e07f3d9abddb504396438437705c26c9e7870b0680",
|
|
1606
|
+
"bytes": 34667
|
|
1623
1607
|
},
|
|
1624
1608
|
"trigger/types.d.ts": {
|
|
1625
1609
|
"sha256": "c0f14b59c95cae52e06f8d9fe841292886587fad20497fd6686e842cc5696d3a",
|
|
@@ -2934,24 +2918,24 @@
|
|
|
2934
2918
|
"bytes": 4795
|
|
2935
2919
|
},
|
|
2936
2920
|
"v2/usecases/console-routes.d.ts": {
|
|
2937
|
-
"sha256": "
|
|
2938
|
-
"bytes":
|
|
2921
|
+
"sha256": "ac61f68638291f9ce1d7709bcfc478a74cdc41219d629bd8ed2c5c996e545736",
|
|
2922
|
+
"bytes": 798
|
|
2939
2923
|
},
|
|
2940
2924
|
"v2/usecases/console-routes.js": {
|
|
2941
|
-
"sha256": "
|
|
2942
|
-
"bytes":
|
|
2925
|
+
"sha256": "89749c3462728cd2a821af7e4cad61d2d42b8f580765f644c9f4e9d1e9187bd1",
|
|
2926
|
+
"bytes": 29558
|
|
2943
2927
|
},
|
|
2944
2928
|
"v2/usecases/console-service.d.ts": {
|
|
2945
2929
|
"sha256": "fc8fe65427fa9f4f3535344b385b36f66ca06b7e3bfaea708931817a3edcad2b",
|
|
2946
2930
|
"bytes": 1701
|
|
2947
2931
|
},
|
|
2948
2932
|
"v2/usecases/console-service.js": {
|
|
2949
|
-
"sha256": "
|
|
2950
|
-
"bytes":
|
|
2933
|
+
"sha256": "23f02155dc02d824835af7f6852182140ba391ac8df935bdc16f6871abb7de02",
|
|
2934
|
+
"bytes": 38580
|
|
2951
2935
|
},
|
|
2952
2936
|
"v2/usecases/console-types.d.ts": {
|
|
2953
|
-
"sha256": "
|
|
2954
|
-
"bytes":
|
|
2937
|
+
"sha256": "4699624ef9f22b27c74c371ca2a4c547389e5b45be47f32241aa620b57b3af33",
|
|
2938
|
+
"bytes": 7761
|
|
2955
2939
|
},
|
|
2956
2940
|
"v2/usecases/console-types.js": {
|
|
2957
2941
|
"sha256": "d43aa81f5bc89faa359e0f97c814ba25155591ff078fbb9bfd40f8c7c9683230",
|
|
@@ -27,6 +27,7 @@ export interface ReadSessionSchemaOutput {
|
|
|
27
27
|
}
|
|
28
28
|
export interface OpenDashboardOutput {
|
|
29
29
|
url: string;
|
|
30
|
+
guidance?: string;
|
|
30
31
|
}
|
|
31
32
|
export declare function handleCreateSession(input: CreateSessionInput, ctx: ToolContext): Promise<ToolResult<CreateSessionOutput>>;
|
|
32
33
|
export declare function handleUpdateSession(input: UpdateSessionInput, ctx: ToolContext): Promise<ToolResult<UpdateSessionOutput>>;
|
|
@@ -1,10 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.handleCreateSession = handleCreateSession;
|
|
4
37
|
exports.handleUpdateSession = handleUpdateSession;
|
|
5
38
|
exports.handleReadSession = handleReadSession;
|
|
6
39
|
exports.handleOpenDashboard = handleOpenDashboard;
|
|
40
|
+
const fs = __importStar(require("fs/promises"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
7
43
|
const types_js_1 = require("../types.js");
|
|
44
|
+
const console_defaults_js_1 = require("../../infrastructure/console-defaults.js");
|
|
8
45
|
const SESSION_SCHEMA_OVERVIEW = {
|
|
9
46
|
description: 'Bug Investigation Session Data Structure',
|
|
10
47
|
mainSections: {
|
|
@@ -39,7 +76,7 @@ const SESSION_SCHEMA_OVERVIEW = {
|
|
|
39
76
|
fullSchemaDoc: 'See docs/dashboard-architecture/bug-investigation-session-schema.md for complete details',
|
|
40
77
|
};
|
|
41
78
|
function requireSessionTools(ctx) {
|
|
42
|
-
if (!ctx.sessionManager
|
|
79
|
+
if (!ctx.sessionManager) {
|
|
43
80
|
return (0, types_js_1.errNotRetryable)('PRECONDITION_FAILED', 'Session tools are not enabled', { suggestion: 'Set WORKRAIL_ENABLE_SESSION_TOOLS=true to enable session tools' });
|
|
44
81
|
}
|
|
45
82
|
return null;
|
|
@@ -49,14 +86,12 @@ async function handleCreateSession(input, ctx) {
|
|
|
49
86
|
if (guardError)
|
|
50
87
|
return guardError;
|
|
51
88
|
const sessionManager = ctx.sessionManager;
|
|
52
|
-
const httpServer = ctx.httpServer;
|
|
53
89
|
const res = await sessionManager.createSession(input.workflowId, input.sessionId, input.initialData);
|
|
54
90
|
if (res.isErr()) {
|
|
55
91
|
return (0, types_js_1.errNotRetryable)('INTERNAL_ERROR', res.error.message);
|
|
56
92
|
}
|
|
57
93
|
const session = res.value;
|
|
58
|
-
const
|
|
59
|
-
const dashboardUrl = baseUrl ? `${baseUrl}?session=${input.sessionId}` : null;
|
|
94
|
+
const dashboardUrl = `http://localhost:${console_defaults_js_1.DEFAULT_CONSOLE_PORT}?session=${input.sessionId}`;
|
|
60
95
|
const payload = {
|
|
61
96
|
sessionId: session.id,
|
|
62
97
|
workflowId: session.workflowId,
|
|
@@ -110,17 +145,30 @@ async function handleReadSession(input, ctx) {
|
|
|
110
145
|
};
|
|
111
146
|
return (0, types_js_1.success)(payload);
|
|
112
147
|
}
|
|
148
|
+
async function readConsoleLockPort() {
|
|
149
|
+
const lockPath = path.join(os.homedir(), '.workrail', 'daemon-console.lock');
|
|
150
|
+
try {
|
|
151
|
+
const raw = await fs.readFile(lockPath, 'utf-8');
|
|
152
|
+
const data = JSON.parse(raw);
|
|
153
|
+
if (data !== null && typeof data === 'object' && 'port' in data && typeof data.port === 'number') {
|
|
154
|
+
return data.port;
|
|
155
|
+
}
|
|
156
|
+
return console_defaults_js_1.DEFAULT_CONSOLE_PORT;
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
return console_defaults_js_1.DEFAULT_CONSOLE_PORT;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
113
162
|
async function handleOpenDashboard(input, ctx) {
|
|
114
163
|
const guardError = requireSessionTools(ctx);
|
|
115
164
|
if (guardError)
|
|
116
165
|
return guardError;
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
166
|
+
const port = await readConsoleLockPort();
|
|
167
|
+
const sessionQuery = input.sessionId ? `?session=${input.sessionId}` : '';
|
|
168
|
+
const url = `http://localhost:${port}${sessionQuery}`;
|
|
169
|
+
const payload = {
|
|
170
|
+
url,
|
|
171
|
+
guidance: "Run 'worktrain console' to start the dashboard UI if it's not already running.",
|
|
172
|
+
};
|
|
173
|
+
return (0, types_js_1.success)(payload);
|
|
126
174
|
}
|
package/dist/mcp/server.js
CHANGED
|
@@ -59,11 +59,9 @@ async function createToolContext() {
|
|
|
59
59
|
const workflowService = container_js_1.container.resolve(tokens_js_1.DI.Services.Workflow);
|
|
60
60
|
const featureFlags = container_js_1.container.resolve(tokens_js_1.DI.Infra.FeatureFlags);
|
|
61
61
|
let sessionManager = null;
|
|
62
|
-
let httpServer = null;
|
|
63
62
|
if (featureFlags.isEnabled('sessionTools')) {
|
|
64
63
|
sessionManager = container_js_1.container.resolve(tokens_js_1.DI.Infra.SessionManager);
|
|
65
|
-
|
|
66
|
-
console.error('[FeatureFlags] Session tools enabled');
|
|
64
|
+
console.error('[FeatureFlags] Session tools enabled (use \'worktrain console\' for the dashboard UI)');
|
|
67
65
|
}
|
|
68
66
|
else {
|
|
69
67
|
console.error('[FeatureFlags] Session tools disabled (enable with WORKRAIL_ENABLE_SESSION_TOOLS=true)');
|
|
@@ -150,7 +148,6 @@ async function createToolContext() {
|
|
|
150
148
|
workflowService,
|
|
151
149
|
featureFlags,
|
|
152
150
|
sessionManager,
|
|
153
|
-
httpServer,
|
|
154
151
|
v2,
|
|
155
152
|
};
|
|
156
153
|
}
|
|
@@ -178,20 +175,6 @@ async function composeServer() {
|
|
|
178
175
|
const toolCallsPerfFile = ctx.v2?.dataDir
|
|
179
176
|
? path.join(ctx.v2.dataDir.perfDir(), 'tool-calls.jsonl')
|
|
180
177
|
: null;
|
|
181
|
-
if (ctx.v2 && ctx.httpServer && ctx.v2.dataDir && ctx.v2.directoryListing) {
|
|
182
|
-
const { ConsoleService } = await Promise.resolve().then(() => __importStar(require('../v2/usecases/console-service.js')));
|
|
183
|
-
const { mountConsoleRoutes } = await Promise.resolve().then(() => __importStar(require('../v2/usecases/console-routes.js')));
|
|
184
|
-
const consoleService = new ConsoleService({
|
|
185
|
-
directoryListing: ctx.v2.directoryListing,
|
|
186
|
-
dataDir: ctx.v2.dataDir,
|
|
187
|
-
sessionStore: ctx.v2.sessionStore,
|
|
188
|
-
snapshotStore: ctx.v2.snapshotStore,
|
|
189
|
-
pinnedWorkflowStore: ctx.v2.pinnedStore,
|
|
190
|
-
});
|
|
191
|
-
ctx.httpServer.mountRoutes((app) => mountConsoleRoutes(app, consoleService, ctx.workflowService, timingRingBuffer, toolCallsPerfFile ?? undefined, serverVersion, ctx.v2 ? ctx : undefined));
|
|
192
|
-
console.error('[Console] v2 Console API routes mounted at /api/v2/');
|
|
193
|
-
}
|
|
194
|
-
ctx.httpServer?.finalize();
|
|
195
178
|
const descriptionProvider = container_js_1.container.resolve(tokens_js_1.DI.Mcp.DescriptionProvider);
|
|
196
179
|
const buildTool = (0, tool_factory_js_1.createToolFactory)(descriptionProvider);
|
|
197
180
|
const workflowEdition = (0, workflow_tool_edition_selector_js_1.selectWorkflowToolEdition)(ctx.featureFlags, buildTool);
|
|
@@ -52,7 +52,6 @@ async function startHttpServer(port) {
|
|
|
52
52
|
const listener = await (0, http_listener_js_1.bindWithPortFallback)(port, scanEnd);
|
|
53
53
|
(0, fatal_exit_js_1.registerGracefulShutdown)(async () => {
|
|
54
54
|
await listener.stop();
|
|
55
|
-
await ctx.httpServer?.stop();
|
|
56
55
|
});
|
|
57
56
|
const { StreamableHTTPServerTransport } = await Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/streamableHttp.js')));
|
|
58
57
|
const transport = new StreamableHTTPServerTransport({
|
|
@@ -73,7 +72,6 @@ async function startHttpServer(port) {
|
|
|
73
72
|
(0, shutdown_hooks_js_1.wireShutdownHooks)({
|
|
74
73
|
onBeforeTerminate: async () => {
|
|
75
74
|
await listener.stop();
|
|
76
|
-
await ctx.httpServer?.stop();
|
|
77
75
|
},
|
|
78
76
|
});
|
|
79
77
|
}
|
|
@@ -50,7 +50,7 @@ async function startStdioServer() {
|
|
|
50
50
|
(0, fatal_exit_js_1.registerFatalHandlers)('stdio');
|
|
51
51
|
(0, fatal_exit_js_1.logStartup)('stdio');
|
|
52
52
|
const { server, ctx, rootsManager } = await (0, server_js_1.composeServer)();
|
|
53
|
-
(0, fatal_exit_js_1.registerGracefulShutdown)(async () => {
|
|
53
|
+
(0, fatal_exit_js_1.registerGracefulShutdown)(async () => { });
|
|
54
54
|
const { StdioServerTransport } = await Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/stdio.js')));
|
|
55
55
|
const { RootsListChangedNotificationSchema, } = await Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/types.js')));
|
|
56
56
|
server.setNotificationHandler(RootsListChangedNotificationSchema, async () => {
|
|
@@ -100,7 +100,6 @@ async function startStdioServer() {
|
|
|
100
100
|
(0, shutdown_hooks_js_1.wireStdinShutdown)();
|
|
101
101
|
(0, shutdown_hooks_js_1.wireShutdownHooks)({
|
|
102
102
|
onBeforeTerminate: async () => {
|
|
103
|
-
await ctx.httpServer?.stop();
|
|
104
103
|
},
|
|
105
104
|
});
|
|
106
105
|
}
|
package/dist/mcp/types.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { WorkflowService } from '../application/services/workflow-service.js';
|
|
2
2
|
import type { IFeatureFlagProvider } from '../config/feature-flags.js';
|
|
3
3
|
import type { SessionManager } from '../infrastructure/session/SessionManager.js';
|
|
4
|
-
import type { HttpServer } from '../infrastructure/session/HttpServer.js';
|
|
5
4
|
import type { SessionHealthV2 } from '../v2/durable-core/schemas/session/session-health.js';
|
|
6
5
|
import type { ExecutionSessionGateV2 } from '../v2/usecases/execution-session-gate.js';
|
|
7
6
|
import type { SessionEventLogAppendStorePortV2, SessionEventLogReadonlyStorePortV2 } from '../v2/ports/session-event-log-store.port.js';
|
|
@@ -75,7 +74,6 @@ export interface ToolContext {
|
|
|
75
74
|
readonly workflowService: WorkflowService;
|
|
76
75
|
readonly featureFlags: IFeatureFlagProvider;
|
|
77
76
|
readonly sessionManager: SessionManager | null;
|
|
78
|
-
readonly httpServer: HttpServer | null;
|
|
79
77
|
readonly v2: V2Dependencies | null;
|
|
80
78
|
}
|
|
81
79
|
export interface V2ToolContext extends ToolContext {
|
|
@@ -2,6 +2,7 @@ import 'reflect-metadata';
|
|
|
2
2
|
import type { V2ToolContext } from '../mcp/types.js';
|
|
3
3
|
import type { TriggerRouter } from './trigger-router.js';
|
|
4
4
|
import type { WorkflowService } from '../application/services/workflow-service.js';
|
|
5
|
+
import type { SteerRegistry } from '../daemon/workflow-runner.js';
|
|
5
6
|
import type { Result } from '../runtime/result.js';
|
|
6
7
|
export interface DaemonConsoleHandle {
|
|
7
8
|
readonly port: number;
|
|
@@ -20,5 +21,6 @@ export interface StartDaemonConsoleOptions {
|
|
|
20
21
|
readonly serverVersion?: string;
|
|
21
22
|
readonly workflowService?: WorkflowService;
|
|
22
23
|
readonly lockFilePath?: string;
|
|
24
|
+
readonly steerRegistry?: SteerRegistry;
|
|
23
25
|
}
|
|
24
26
|
export declare function startDaemonConsole(ctx: V2ToolContext, options?: StartDaemonConsoleOptions): Promise<Result<DaemonConsoleHandle, DaemonConsoleError>>;
|
|
@@ -68,7 +68,7 @@ async function startDaemonConsole(ctx, options = {}) {
|
|
|
68
68
|
snapshotStore: ctx.v2.snapshotStore,
|
|
69
69
|
pinnedWorkflowStore: ctx.v2.pinnedStore,
|
|
70
70
|
});
|
|
71
|
-
const stopWatcher = mountConsoleRoutes(app, consoleService, options.workflowService, undefined, undefined, options.serverVersion, ctx, options.triggerRouter);
|
|
71
|
+
const stopWatcher = mountConsoleRoutes(app, consoleService, options.workflowService, undefined, undefined, options.serverVersion, ctx, options.triggerRouter, options.steerRegistry);
|
|
72
72
|
app.use((req, res) => {
|
|
73
73
|
res.status(404).json({ success: false, error: 'Not found', path: req.path });
|
|
74
74
|
});
|