@exaudeus/workrail 3.59.6 → 3.59.8
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/index.d.ts +0 -1
- package/dist/cli/commands/index.js +1 -3
- package/dist/cli-worktrain.js +2 -51
- package/dist/console/standalone-console.js +1 -1
- package/dist/console-ui/assets/{index-xMwhHmR2.js → index-CtUfpXCx.js} +1 -1
- package/dist/console-ui/index.html +1 -1
- package/dist/daemon/workflow-runner.js +1 -1
- package/dist/manifest.json +21 -37
- package/dist/trigger/polling-scheduler.js +1 -1
- package/dist/v2/usecases/console-routes.d.ts +1 -3
- package/dist/v2/usecases/console-routes.js +28 -107
- package/docs/design/dispatch-dedup-prealloc-bypass-implementation-plan.md +2 -0
- package/docs/ideas/backlog.md +91 -0
- package/package.json +1 -1
- package/dist/cli/commands/worktrain-trigger-poll.d.ts +0 -23
- package/dist/cli/commands/worktrain-trigger-poll.js +0 -94
- package/dist/trigger/daemon-console.d.ts +0 -28
- package/dist/trigger/daemon-console.js +0 -120
|
@@ -15,5 +15,4 @@ export { executeWorktrainDaemonCommand, type WorktrainDaemonCommandDeps, type Wo
|
|
|
15
15
|
export { executeWorktrainOverviewCommand, buildConsoleServiceFromDataDir, type WorktrainOverviewCommandDeps, type WorktrainOverviewCommandOpts, type StatusDataPacket, type StatusSession, } from './worktrain-overview.js';
|
|
16
16
|
export { executeWorktrainPipelineCommand, type WorktrainPipelineCommandDeps, type WorktrainPipelineCommandOpts, } from './worktrain-pipeline.js';
|
|
17
17
|
export { executeWorktrainTriggerTestCommand, type WorktrainTriggerTestDeps, type WorktrainTriggerTestOpts, } from './worktrain-trigger-test.js';
|
|
18
|
-
export { executeWorktrainTriggerPollCommand, type WorktrainTriggerPollDeps, type WorktrainTriggerPollOpts, } from './worktrain-trigger-poll.js';
|
|
19
18
|
export { executeWorktrainTriggerValidateCommand, type WorktrainTriggerValidateDeps, } from './worktrain-trigger-validate.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.executeWorktrainTriggerValidateCommand = exports.
|
|
3
|
+
exports.executeWorktrainTriggerValidateCommand = exports.executeWorktrainTriggerTestCommand = exports.executeWorktrainPipelineCommand = exports.buildConsoleServiceFromDataDir = exports.executeWorktrainOverviewCommand = exports.executeWorktrainDaemonCommand = exports.parseDurationMs = exports.executeWorktrainAwaitCommand = exports.executeWorktrainSpawnCommand = exports.executeWorktrainInboxCommand = exports.executeWorktrainTellCommand = exports.executeWorktrainInitCommand = exports.detectWorkflowVersion = exports.migrateWorkflowFile = exports.migrateWorkflow = exports.executeMigrateCommand = exports.executeVersionCommand = exports.executeCleanupCommand = exports.executeStartCommand = exports.executeValidateCommand = exports.executeListCommand = exports.getWorkflowSources = exports.executeSourcesCommand = exports.executeInitConfigCommand = exports.executeInitCommand = void 0;
|
|
4
4
|
var init_js_1 = require("./init.js");
|
|
5
5
|
Object.defineProperty(exports, "executeInitCommand", { enumerable: true, get: function () { return init_js_1.executeInitCommand; } });
|
|
6
6
|
Object.defineProperty(exports, "executeInitConfigCommand", { enumerable: true, get: function () { return init_js_1.executeInitConfigCommand; } });
|
|
@@ -42,7 +42,5 @@ var worktrain_pipeline_js_1 = require("./worktrain-pipeline.js");
|
|
|
42
42
|
Object.defineProperty(exports, "executeWorktrainPipelineCommand", { enumerable: true, get: function () { return worktrain_pipeline_js_1.executeWorktrainPipelineCommand; } });
|
|
43
43
|
var worktrain_trigger_test_js_1 = require("./worktrain-trigger-test.js");
|
|
44
44
|
Object.defineProperty(exports, "executeWorktrainTriggerTestCommand", { enumerable: true, get: function () { return worktrain_trigger_test_js_1.executeWorktrainTriggerTestCommand; } });
|
|
45
|
-
var worktrain_trigger_poll_js_1 = require("./worktrain-trigger-poll.js");
|
|
46
|
-
Object.defineProperty(exports, "executeWorktrainTriggerPollCommand", { enumerable: true, get: function () { return worktrain_trigger_poll_js_1.executeWorktrainTriggerPollCommand; } });
|
|
47
45
|
var worktrain_trigger_validate_js_1 = require("./worktrain-trigger-validate.js");
|
|
48
46
|
Object.defineProperty(exports, "executeWorktrainTriggerValidateCommand", { enumerable: true, get: function () { return worktrain_trigger_validate_js_1.executeWorktrainTriggerValidateCommand; } });
|
package/dist/cli-worktrain.js
CHANGED
|
@@ -287,10 +287,8 @@ program
|
|
|
287
287
|
startDaemon: async () => {
|
|
288
288
|
await (0, daemon_env_js_1.loadDaemonEnv)();
|
|
289
289
|
const { startTriggerListener } = await Promise.resolve().then(() => __importStar(require('./trigger/trigger-listener.js')));
|
|
290
|
-
const { startDaemonConsole } = await Promise.resolve().then(() => __importStar(require('./trigger/daemon-console.js')));
|
|
291
290
|
const { DaemonEventEmitter } = await Promise.resolve().then(() => __importStar(require('./daemon/daemon-events.js')));
|
|
292
|
-
const { initializeContainer
|
|
293
|
-
const { DI } = await Promise.resolve().then(() => __importStar(require('./di/tokens.js')));
|
|
291
|
+
const { initializeContainer } = await Promise.resolve().then(() => __importStar(require('./di/container.js')));
|
|
294
292
|
await initializeContainer({ runtimeMode: { kind: 'cli' } });
|
|
295
293
|
const { createToolContext } = await Promise.resolve().then(() => __importStar(require('./mcp/server.js')));
|
|
296
294
|
const { requireV2Context } = await Promise.resolve().then(() => __importStar(require('./mcp/types.js')));
|
|
@@ -329,26 +327,7 @@ program
|
|
|
329
327
|
console.log(`WorkRail daemon running on port ${handle.port}`);
|
|
330
328
|
console.log(`Workspace: ${workspacePath}`);
|
|
331
329
|
console.log('Waiting for webhook triggers...');
|
|
332
|
-
|
|
333
|
-
const workflowService = container.resolve(DI.Services.Workflow);
|
|
334
|
-
const consoleResult = await startDaemonConsole(ctx, {
|
|
335
|
-
triggerRouter: handle.router,
|
|
336
|
-
serverVersion: pkg.version,
|
|
337
|
-
workflowService,
|
|
338
|
-
steerRegistry: handle.steerRegistry,
|
|
339
|
-
pollingScheduler: handle.scheduler,
|
|
340
|
-
});
|
|
341
|
-
let consoleHandle = null;
|
|
342
|
-
if (consoleResult.kind === 'ok') {
|
|
343
|
-
consoleHandle = consoleResult.value;
|
|
344
|
-
}
|
|
345
|
-
else if (consoleResult.error.kind === 'port_conflict') {
|
|
346
|
-
console.warn(`[DaemonConsole] Port ${consoleResult.error.port} is already held. ` +
|
|
347
|
-
`The daemon is running but the console is unavailable.`);
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
console.warn(`[DaemonConsole] Could not start console: ${consoleResult.error.message}`);
|
|
351
|
-
}
|
|
330
|
+
console.log("[Daemon] Run 'worktrain console' to start the dashboard");
|
|
352
331
|
await new Promise((resolve) => {
|
|
353
332
|
const heartbeatInterval = setInterval(() => {
|
|
354
333
|
const sessionsDir = path_1.default.join(os_1.default.homedir(), '.workrail', 'daemon-sessions');
|
|
@@ -377,9 +356,6 @@ program
|
|
|
377
356
|
});
|
|
378
357
|
}
|
|
379
358
|
emitter.emit({ kind: 'daemon_stopped', reason: 'graceful', ts: Date.now() });
|
|
380
|
-
if (consoleHandle) {
|
|
381
|
-
await consoleHandle.stop();
|
|
382
|
-
}
|
|
383
359
|
await handle.stop();
|
|
384
360
|
resolve();
|
|
385
361
|
};
|
|
@@ -1244,31 +1220,6 @@ triggerCommand
|
|
|
1244
1220
|
process.exit(1);
|
|
1245
1221
|
}
|
|
1246
1222
|
});
|
|
1247
|
-
triggerCommand
|
|
1248
|
-
.command('poll <triggerId>')
|
|
1249
|
-
.description('Force an immediate poll cycle on a queue trigger (does not wait for interval)')
|
|
1250
|
-
.option('-p, --port <n>', 'Console server port', parseInt)
|
|
1251
|
-
.action(async (triggerId, options) => {
|
|
1252
|
-
const result = await (0, index_js_2.executeWorktrainTriggerPollCommand)({
|
|
1253
|
-
fetch: (url, opts) => globalThis.fetch(url, opts),
|
|
1254
|
-
readFile: (p) => fs_1.default.promises.readFile(p, 'utf-8'),
|
|
1255
|
-
deleteFile: (p) => fs_1.default.promises.unlink(p),
|
|
1256
|
-
isPidAlive: (pid) => {
|
|
1257
|
-
try {
|
|
1258
|
-
process.kill(pid, 0);
|
|
1259
|
-
return true;
|
|
1260
|
-
}
|
|
1261
|
-
catch {
|
|
1262
|
-
return false;
|
|
1263
|
-
}
|
|
1264
|
-
},
|
|
1265
|
-
print: (line) => process.stdout.write(line + '\n'),
|
|
1266
|
-
stderr: (line) => process.stderr.write(line + '\n'),
|
|
1267
|
-
homedir: os_1.default.homedir,
|
|
1268
|
-
joinPath: path_1.default.join,
|
|
1269
|
-
}, { triggerId, port: options.port });
|
|
1270
|
-
(0, interpret_result_js_1.interpretCliResultWithoutDI)(result);
|
|
1271
|
-
});
|
|
1272
1223
|
triggerCommand
|
|
1273
1224
|
.command('validate')
|
|
1274
1225
|
.description('Static analysis of triggers.yml -- reports issues without running anything. Exits 1 if any errors found.')
|
|
@@ -87,7 +87,7 @@ async function startStandaloneConsole(options = {}) {
|
|
|
87
87
|
allowedHeaders: ['Content-Type', 'If-None-Match'],
|
|
88
88
|
}));
|
|
89
89
|
app.set('etag', 'strong');
|
|
90
|
-
const stopWatcher = (0, console_routes_js_1.mountConsoleRoutes)(app, consoleService, undefined, undefined, undefined, undefined, undefined
|
|
90
|
+
const stopWatcher = (0, console_routes_js_1.mountConsoleRoutes)(app, consoleService, undefined, undefined, undefined, undefined, undefined);
|
|
91
91
|
app.get('/', (_req, res) => {
|
|
92
92
|
res.redirect('/console');
|
|
93
93
|
});
|