@t4h.framework/dev 0.0.0-experimental-29d0277 → 0.0.0-experimental-20261009202408

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 (130) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +19 -95
  3. package/dist/AppProcess.d.ts +2 -16
  4. package/dist/AppProcess.js +4 -31
  5. package/dist/AppProcess.js.map +1 -1
  6. package/dist/Server.d.ts +0 -5
  7. package/dist/Server.js +0 -15
  8. package/dist/Server.js.map +1 -1
  9. package/dist/constants/server.d.ts +1 -14
  10. package/dist/constants/server.js +1 -14
  11. package/dist/constants/server.js.map +1 -1
  12. package/dist/index.d.ts +0 -6
  13. package/dist/index.js +0 -5
  14. package/dist/index.js.map +1 -1
  15. package/dist/integrations/orm.js +1 -12
  16. package/dist/integrations/orm.js.map +1 -1
  17. package/dist/models/FrameworkConfig.d.ts +0 -20
  18. package/dist/models/FrameworkConfig.js +0 -2
  19. package/dist/models/FrameworkConfig.js.map +1 -1
  20. package/dist/models/claims/DevCacheClaim.d.ts +1 -2
  21. package/dist/models/claims/DevCacheClaim.js +6 -17
  22. package/dist/models/claims/DevCacheClaim.js.map +1 -1
  23. package/dist/models/claims/DevORMClaim.d.ts +8 -5
  24. package/dist/models/claims/DevORMClaim.js +55 -22
  25. package/dist/models/claims/DevORMClaim.js.map +1 -1
  26. package/dist/models/claims/DevWorkflowClaim.d.ts +1 -1
  27. package/dist/models/claims/DevWorkflowClaim.js +3 -2
  28. package/dist/models/claims/DevWorkflowClaim.js.map +1 -1
  29. package/dist/services/CallbackToken.service.d.ts +1 -4
  30. package/dist/services/CallbackToken.service.js +3 -10
  31. package/dist/services/CallbackToken.service.js.map +1 -1
  32. package/dist/services/Database.service.d.ts +0 -8
  33. package/dist/services/Database.service.js +3 -18
  34. package/dist/services/Database.service.js.map +1 -1
  35. package/dist/services/WorkflowRunAsyncActivityFacade.service.d.ts +0 -2
  36. package/dist/services/WorkflowRunAsyncActivityFacade.service.js +0 -6
  37. package/dist/services/WorkflowRunAsyncActivityFacade.service.js.map +1 -1
  38. package/dist/services/WorkflowRunEvents.service.d.ts +0 -9
  39. package/dist/services/WorkflowRunEvents.service.js +2 -13
  40. package/dist/services/WorkflowRunEvents.service.js.map +1 -1
  41. package/dist/services/WorkflowRunFacade.service.d.ts +0 -1
  42. package/dist/services/WorkflowRunFacade.service.js +0 -3
  43. package/dist/services/WorkflowRunFacade.service.js.map +1 -1
  44. package/dist/transport/AppProcessJsonRpc.js +4 -17
  45. package/dist/transport/AppProcessJsonRpc.js.map +1 -1
  46. package/dist/use-cases/BuildWorkflowRunActivityHistory.usecase.js +1 -7
  47. package/dist/use-cases/BuildWorkflowRunActivityHistory.usecase.js.map +1 -1
  48. package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.d.ts +5 -3
  49. package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js +10 -6
  50. package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js.map +1 -1
  51. package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.d.ts +9 -3
  52. package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js +39 -7
  53. package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js.map +1 -1
  54. package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.d.ts +5 -5
  55. package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js +15 -29
  56. package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js.map +1 -1
  57. package/dist/use-cases/NextTickWorkflowRun.usecase.d.ts +1 -6
  58. package/dist/use-cases/NextTickWorkflowRun.usecase.js +3 -54
  59. package/dist/use-cases/NextTickWorkflowRun.usecase.js.map +1 -1
  60. package/dist/use-cases/ReceiveWorkflowEvent.usecase.d.ts +2 -10
  61. package/dist/use-cases/ReceiveWorkflowEvent.usecase.js +5 -35
  62. package/dist/use-cases/ReceiveWorkflowEvent.usecase.js.map +1 -1
  63. package/dist/workers/app-process.d.ts +0 -8
  64. package/dist/workers/app-process.js +14 -114
  65. package/dist/workers/app-process.js.map +1 -1
  66. package/package.json +24 -26
  67. package/LICENSE +0 -21
  68. package/dist/HeadlessApp.d.ts +0 -65
  69. package/dist/HeadlessApp.js +0 -166
  70. package/dist/HeadlessApp.js.map +0 -1
  71. package/dist/models/DevORMStore.d.ts +0 -18
  72. package/dist/models/DevORMStore.js +0 -7
  73. package/dist/models/DevORMStore.js.map +0 -1
  74. package/dist/models/LocalWorkflowRunJobExecutor.d.ts +0 -10
  75. package/dist/models/LocalWorkflowRunJobExecutor.js +0 -23
  76. package/dist/models/LocalWorkflowRunJobExecutor.js.map +0 -1
  77. package/dist/models/PostgresDevORMStore.d.ts +0 -23
  78. package/dist/models/PostgresDevORMStore.js +0 -94
  79. package/dist/models/PostgresDevORMStore.js.map +0 -1
  80. package/dist/models/RuntimeControlServer.d.ts +0 -32
  81. package/dist/models/RuntimeControlServer.js +0 -75
  82. package/dist/models/RuntimeControlServer.js.map +0 -1
  83. package/dist/models/RuntimeDebugLog.d.ts +0 -10
  84. package/dist/models/RuntimeDebugLog.js +0 -32
  85. package/dist/models/RuntimeDebugLog.js.map +0 -1
  86. package/dist/models/RuntimeEvent.d.ts +0 -95
  87. package/dist/models/RuntimeEvent.js +0 -2
  88. package/dist/models/RuntimeEvent.js.map +0 -1
  89. package/dist/models/SqliteDevORMStore.d.ts +0 -16
  90. package/dist/models/SqliteDevORMStore.js +0 -69
  91. package/dist/models/SqliteDevORMStore.js.map +0 -1
  92. package/dist/models/WorkflowRunJob.d.ts +0 -95
  93. package/dist/models/WorkflowRunJob.js +0 -2
  94. package/dist/models/WorkflowRunJob.js.map +0 -1
  95. package/dist/models/WorkflowWorkerPool.d.ts +0 -39
  96. package/dist/models/WorkflowWorkerPool.js +0 -154
  97. package/dist/models/WorkflowWorkerPool.js.map +0 -1
  98. package/dist/services/RuntimeEvents.service.d.ts +0 -16
  99. package/dist/services/RuntimeEvents.service.js +0 -35
  100. package/dist/services/RuntimeEvents.service.js.map +0 -1
  101. package/dist/services/WorkflowRunScheduler.service.d.ts +0 -62
  102. package/dist/services/WorkflowRunScheduler.service.js +0 -278
  103. package/dist/services/WorkflowRunScheduler.service.js.map +0 -1
  104. package/dist/tools/format-runtime-event.d.ts +0 -3
  105. package/dist/tools/format-runtime-event.js +0 -51
  106. package/dist/tools/format-runtime-event.js.map +0 -1
  107. package/dist/tools/run-workflow-run-job.d.ts +0 -3
  108. package/dist/tools/run-workflow-run-job.js +0 -25
  109. package/dist/tools/run-workflow-run-job.js.map +0 -1
  110. package/dist/tools/runtime-control-client.d.ts +0 -15
  111. package/dist/tools/runtime-control-client.js +0 -54
  112. package/dist/tools/runtime-control-client.js.map +0 -1
  113. package/dist/tools/runtime-registry.d.ts +0 -28
  114. package/dist/tools/runtime-registry.js +0 -57
  115. package/dist/tools/runtime-registry.js.map +0 -1
  116. package/dist/tools/start-runtime-monitor.d.ts +0 -13
  117. package/dist/tools/start-runtime-monitor.js +0 -70
  118. package/dist/tools/start-runtime-monitor.js.map +0 -1
  119. package/dist/tools/to-orm-config.d.ts +0 -3
  120. package/dist/tools/to-orm-config.js +0 -13
  121. package/dist/tools/to-orm-config.js.map +0 -1
  122. package/dist/tools/to-runtime-config.d.ts +0 -3
  123. package/dist/tools/to-runtime-config.js +0 -13
  124. package/dist/tools/to-runtime-config.js.map +0 -1
  125. package/dist/use-cases/RejectAbandonedWorkflowRuns.usecase.d.ts +0 -14
  126. package/dist/use-cases/RejectAbandonedWorkflowRuns.usecase.js +0 -55
  127. package/dist/use-cases/RejectAbandonedWorkflowRuns.usecase.js.map +0 -1
  128. package/dist/workers/workflow-worker.d.ts +0 -1
  129. package/dist/workers/workflow-worker.js +0 -58
  130. package/dist/workers/workflow-worker.js.map +0 -1
@@ -1,25 +0,0 @@
1
- import { container } from 'pleroma';
2
- import { WorkflowRunAsyncActivityFacade } from '../services/WorkflowRunAsyncActivityFacade.service.js';
3
- import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
4
- /** Runs a job on the current thread through the matching use case. */
5
- export function runWorkflowRunJob(job) {
6
- const workflowRun = container.resolve(WorkflowRunFacade);
7
- const asyncActivity = container.resolve(WorkflowRunAsyncActivityFacade);
8
- switch (job.kind) {
9
- case 'run.tick':
10
- return workflowRun.nextTick(job.runId);
11
- case 'run.settle-parent':
12
- return workflowRun.settleParent(job.childRunId);
13
- case 'pending.execute':
14
- return asyncActivity.execute(job.pendingId);
15
- case 'activity.advance':
16
- return asyncActivity.advance(job.activityId, job.payload);
17
- case 'callback.create':
18
- return asyncActivity.createPendingCallback(job.activityId, job.token, job.request);
19
- case 'event.deliver':
20
- return asyncActivity.deliverEvent(job.activityId, job.pendingId, job.delivery);
21
- case 'event.correlate':
22
- return asyncActivity.correlateEvent(job.event);
23
- }
24
- }
25
- //# sourceMappingURL=run-workflow-run-job.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-workflow-run-job.js","sourceRoot":"","sources":["../../src/tools/run-workflow-run-job.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAE5E,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACxD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAEvE,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAExC,KAAK,mBAAmB;YACtB,OAAO,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAEjD,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAE7C,KAAK,kBAAkB;YACrB,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAE3D,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,qBAAqB,CACxC,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,OAAO,CACZ,CAAA;QAEH,KAAK,eAAe;YAClB,OAAO,aAAa,CAAC,YAAY,CAC/B,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,QAAQ,CACb,CAAA;QAEH,KAAK,iBAAiB;YACpB,OAAO,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC;AACH,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { RuntimeInfo, RuntimeStatus } from './runtime-registry.js';
2
- import type { RuntimeEvent } from '../models/RuntimeEvent.js';
3
- export interface RuntimeWatcher {
4
- /** Resolves when the runtime closes the connection (or `close()` is called). */
5
- readonly closed: Promise<void>;
6
- close(): void;
7
- }
8
- export interface RuntimeWatchHandlers {
9
- onStatus?: (status: RuntimeStatus) => void;
10
- onEvent: (event: RuntimeEvent) => void;
11
- }
12
- /** Reads the queue and run counts of a running app process. */
13
- export declare function requestRuntimeStatus(runtime: Pick<RuntimeInfo, 'socket'>): Promise<RuntimeStatus>;
14
- /** Follows the events of a running app process until it closes. */
15
- export declare function watchRuntime(runtime: Pick<RuntimeInfo, 'socket'>, { onStatus, onEvent }: RuntimeWatchHandlers): RuntimeWatcher;
@@ -1,54 +0,0 @@
1
- import net from 'node:net';
2
- const toStatus = ({ runtime, queue, runs }) => ({
3
- runtime,
4
- queue,
5
- runs,
6
- });
7
- function connect(runtime, request, onMessage) {
8
- const socket = net.createConnection(runtime.socket);
9
- const closed = Promise.withResolvers();
10
- let buffer = '';
11
- socket.setEncoding('utf8');
12
- socket.on('connect', () => socket.write(`${JSON.stringify(request)}\n`));
13
- socket.on('data', (chunk) => {
14
- buffer += chunk;
15
- let end;
16
- while ((end = buffer.indexOf('\n')) !== -1) {
17
- const line = buffer.slice(0, end);
18
- buffer = buffer.slice(end + 1);
19
- if (line)
20
- onMessage(JSON.parse(line));
21
- }
22
- });
23
- socket.on('error', closed.reject);
24
- socket.on('close', () => closed.resolve());
25
- return { socket, closed: closed.promise };
26
- }
27
- /** Reads the queue and run counts of a running app process. */
28
- export async function requestRuntimeStatus(runtime) {
29
- let status = null;
30
- let failure = null;
31
- const { closed } = connect(runtime, { method: 'status' }, message => {
32
- if (message.type === 'status')
33
- status = toStatus(message);
34
- if (message.type === 'error')
35
- failure = message.message;
36
- });
37
- await closed;
38
- if (failure)
39
- throw new Error(failure);
40
- if (!status)
41
- throw new Error('The runtime closed without a status');
42
- return status;
43
- }
44
- /** Follows the events of a running app process until it closes. */
45
- export function watchRuntime(runtime, { onStatus, onEvent }) {
46
- const { socket, closed } = connect(runtime, { method: 'watch' }, message => {
47
- if (message.type === 'status')
48
- onStatus?.(toStatus(message));
49
- if (message.type === 'event')
50
- onEvent(message.event);
51
- });
52
- return { closed, close: () => socket.end() };
53
- }
54
- //# sourceMappingURL=runtime-control-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-control-client.js","sourceRoot":"","sources":["../../src/tools/runtime-control-client.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import type { RuntimeQueueSnapshot } from '../models/RuntimeEvent.js';
2
- export type RuntimeKind = 'dev' | 'headless' | 'app';
3
- /** What a running app process advertises about itself. */
4
- export interface RuntimeInfo {
5
- pid: number;
6
- /** The `framework dev` / `framework workflows` process that forked it. */
7
- parentPid: number;
8
- kind: RuntimeKind;
9
- projectDir: string | null;
10
- entrypoint: string;
11
- socket: string;
12
- startedAt: string;
13
- /** HTTP URL of the dev server; null headless, absent before 0.23. */
14
- serverUrl?: string | null;
15
- }
16
- export interface RuntimeStatus {
17
- runtime: RuntimeInfo;
18
- queue: RuntimeQueueSnapshot;
19
- runs: {
20
- running: number;
21
- };
22
- }
23
- /** Per-user directory where running app processes register. */
24
- export declare function runtimeRegistryDir(): string;
25
- export declare function runtimeRegistryFile(pid: number): string;
26
- export declare function runtimeSocketPath(pid: number): string;
27
- /** Runtimes still running, oldest first; leftovers of dead ones are removed. */
28
- export declare function listRuntimes(): Promise<RuntimeInfo[]>;
@@ -1,57 +0,0 @@
1
- import fs from 'node:fs';
2
- import os from 'node:os';
3
- import path from 'node:path';
4
- /** Per-user directory where running app processes register. */
5
- export function runtimeRegistryDir() {
6
- return path.join(os.tmpdir(), 't4h-framework', 'runtimes');
7
- }
8
- export function runtimeRegistryFile(pid) {
9
- return path.join(runtimeRegistryDir(), `${pid}.json`);
10
- }
11
- export function runtimeSocketPath(pid) {
12
- if (process.platform === 'win32')
13
- return `\\\\.\\pipe\\t4h-framework-runtime-${pid}`;
14
- return path.join(runtimeRegistryDir(), `${pid}.sock`);
15
- }
16
- function isAlive(pid) {
17
- try {
18
- process.kill(pid, 0);
19
- return true;
20
- }
21
- catch (error) {
22
- return error.code === 'EPERM';
23
- }
24
- }
25
- /** Runtimes still running, oldest first; leftovers of dead ones are removed. */
26
- export async function listRuntimes() {
27
- const dir = runtimeRegistryDir();
28
- let names;
29
- try {
30
- names = await fs.promises.readdir(dir);
31
- }
32
- catch {
33
- return [];
34
- }
35
- const runtimes = [];
36
- for (const name of names) {
37
- if (!name.endsWith('.json'))
38
- continue;
39
- const file = path.join(dir, name);
40
- let info;
41
- try {
42
- info = JSON.parse(await fs.promises.readFile(file, 'utf8'));
43
- }
44
- catch {
45
- continue;
46
- }
47
- if (isAlive(info.pid)) {
48
- runtimes.push(info);
49
- continue;
50
- }
51
- await fs.promises.rm(file, { force: true });
52
- if (process.platform !== 'win32')
53
- await fs.promises.rm(info.socket, { force: true });
54
- }
55
- return runtimes.sort((a, b) => a.startedAt.localeCompare(b.startedAt));
56
- }
57
- //# sourceMappingURL=runtime-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-registry.js","sourceRoot":"","sources":["../../src/tools/runtime-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AA0B5B,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,UAAU,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC9B,OAAO,sCAAsC,GAAG,EAAE,CAAA;IAEpD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAA;IAC1D,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAA;IAEhC,IAAI,KAAe,CAAA;IAEnB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAQ;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAEjC,IAAI,IAAiB,CAAA;QAErB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEnB,SAAQ;QACV,CAAC;QAED,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AACxE,CAAC"}
@@ -1,13 +0,0 @@
1
- import { type RuntimeKind } from './runtime-registry.js';
2
- export interface RuntimeMonitorOptions {
3
- kind: RuntimeKind;
4
- projectDir: string | null;
5
- entrypoint: string;
6
- serverUrl?: string | null;
7
- /** `-` (stderr), a file path (NDJSON) or `null` for no debug log. */
8
- debugLog: string | null;
9
- }
10
- /** Turns run events into runtime events and opens the debug log. */
11
- export declare function startRuntimeEvents(debugLog: string | null): void;
12
- /** Registers this app process so `framework runtime` can find and watch it. */
13
- export declare function startRuntimeControl({ kind, projectDir, entrypoint, serverUrl, }: Omit<RuntimeMonitorOptions, 'debugLog'>): Promise<void>;
@@ -1,70 +0,0 @@
1
- import { styleText } from 'node:util';
2
- import { container } from 'pleroma';
3
- import { runtimeSocketPath, } from './runtime-registry.js';
4
- import { RuntimeControlServer } from '../models/RuntimeControlServer.js';
5
- import { RuntimeDebugLog } from '../models/RuntimeDebugLog.js';
6
- import { RuntimeEventsService } from '../services/RuntimeEvents.service.js';
7
- import { WorkflowRunEventsService } from '../services/WorkflowRunEvents.service.js';
8
- import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
9
- import { WorkflowRunSchedulerService } from '../services/WorkflowRunScheduler.service.js';
10
- /** Turns run events into runtime events and opens the debug log. */
11
- export function startRuntimeEvents(debugLog) {
12
- const runtimeEvents = container.resolve(RuntimeEventsService);
13
- const runEvents = container.resolve(WorkflowRunEventsService);
14
- const settled = new Set();
15
- runEvents.on('run:created', (run) => runtimeEvents.publish({
16
- type: 'run:created',
17
- runId: run.id,
18
- workflow: run.workflow,
19
- parentRunId: run.parentWorkflowRun,
20
- }));
21
- runEvents.on('run:updated', (run) => {
22
- if (run.status === 'running' || settled.has(run.id))
23
- return;
24
- settled.add(run.id);
25
- runtimeEvents.publish({
26
- type: 'run:settled',
27
- runId: run.id,
28
- workflow: run.workflow,
29
- status: run.status,
30
- });
31
- });
32
- if (!debugLog)
33
- return;
34
- const log = new RuntimeDebugLog(debugLog);
35
- runtimeEvents.on('event', log.write);
36
- process.once('exit', () => log.close());
37
- }
38
- /** Registers this app process so `framework runtime` can find and watch it. */
39
- export async function startRuntimeControl({ kind, projectDir, entrypoint, serverUrl = null, }) {
40
- const scheduler = container.resolve(WorkflowRunSchedulerService);
41
- const info = {
42
- pid: process.pid,
43
- parentPid: process.ppid,
44
- kind,
45
- projectDir,
46
- entrypoint,
47
- socket: runtimeSocketPath(process.pid),
48
- startedAt: new Date().toISOString(),
49
- serverUrl,
50
- };
51
- const control = new RuntimeControlServer(info, async () => ({
52
- runtime: info,
53
- queue: scheduler.snapshot(),
54
- runs: {
55
- running: (await container
56
- .resolve(WorkflowRunFacade)
57
- .find({ status: 'running', limit: 1 })).count,
58
- },
59
- }), container.resolve(RuntimeEventsService));
60
- try {
61
- await control.start();
62
- process.once('exit', () => control.close());
63
- }
64
- catch (error) {
65
- console.warn(styleText('yellow', '[runtime] control socket unavailable:', {
66
- stream: process.stderr,
67
- }), error);
68
- }
69
- }
70
- //# sourceMappingURL=start-runtime-monitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-runtime-monitor.js","sourceRoot":"","sources":["../../src/tools/start-runtime-monitor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { FrameworkORMConfig } from '../models/FrameworkConfig.js';
2
- /** Validates `orm` from `framework.config.*`. */
3
- export declare function toORMConfig(orm: FrameworkORMConfig | undefined): FrameworkORMConfig | undefined;
@@ -1,13 +0,0 @@
1
- const POSTGRES_URL = /^postgres(?:ql)?:\/\//;
2
- /** Validates `orm` from `framework.config.*`. */
3
- export function toORMConfig(orm) {
4
- // `process.env.X` left unset in the config keeps the SQLite file.
5
- if (!orm?.connectionString)
6
- return undefined;
7
- const { connectionString } = orm;
8
- if (typeof connectionString !== 'string' ||
9
- !POSTGRES_URL.test(connectionString))
10
- throw new Error('framework.config orm.connectionString must be a postgres:// or postgresql:// URL');
11
- return { connectionString };
12
- }
13
- //# sourceMappingURL=to-orm-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-orm-config.js","sourceRoot":"","sources":["../../src/tools/to-orm-config.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,uBAAuB,CAAA;AAE5C,iDAAiD;AACjD,MAAM,UAAU,WAAW,CACzB,GAAmC;IAEnC,kEAAkE;IAClE,IAAI,CAAC,GAAG,EAAE,gBAAgB;QAAE,OAAO,SAAS,CAAA;IAE5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAA;IAEhC,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAEpC,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IAEH,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC7B,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { FrameworkRuntimeConfig } from '../models/FrameworkConfig.js';
2
- /** Validates `runtime` from `framework.config.*`. */
3
- export declare function toRuntimeConfig(runtime: FrameworkRuntimeConfig | undefined): FrameworkRuntimeConfig | undefined;
@@ -1,13 +0,0 @@
1
- /** Validates `runtime` from `framework.config.*`. */
2
- export function toRuntimeConfig(runtime) {
3
- if (!runtime)
4
- return undefined;
5
- const { workers, concurrency } = runtime;
6
- if (workers !== undefined && !(Number.isInteger(workers) && workers >= 0))
7
- throw new Error(`framework.config runtime.workers must be an integer >= 0, got ${workers}`);
8
- if (concurrency !== undefined &&
9
- !(Number.isInteger(concurrency) && concurrency >= 1))
10
- throw new Error(`framework.config runtime.concurrency must be an integer >= 1, got ${concurrency}`);
11
- return { workers, concurrency };
12
- }
13
- //# sourceMappingURL=to-runtime-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-runtime-config.js","sourceRoot":"","sources":["../../src/tools/to-runtime-config.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAC7B,OAA2C;IAE3C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAExC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,iEAAiE,OAAO,EAAE,CAC3E,CAAA;IAEH,IACE,WAAW,KAAK,SAAS;QACzB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC;QAEpD,MAAM,IAAI,KAAK,CACb,qEAAqE,WAAW,EAAE,CACnF,CAAA;IAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;AACjC,CAAC"}
@@ -1,14 +0,0 @@
1
- import { WorkflowRunRepository } from '../repositories/WorkflowRun.repository.js';
2
- import { WorkflowRunEventsService } from '../services/WorkflowRunEvents.service.js';
3
- import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
4
- /**
5
- * Rejects runs pinned to a workflow worker that died: the activity classes
6
- * they pushed lived only in that thread, so they cannot be resumed.
7
- */
8
- export declare class RejectAbandonedWorkflowRuns {
9
- private readonly workflowRunRepository;
10
- private readonly workflowRun;
11
- private readonly events;
12
- constructor(workflowRunRepository: WorkflowRunRepository, workflowRun: WorkflowRunFacade, events: WorkflowRunEventsService);
13
- reject(runIds: readonly string[], cause: Error): Promise<void>;
14
- }
@@ -1,55 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __param = (this && this.__param) || function (paramIndex, decorator) {
8
- return function (target, key) { decorator(target, key, paramIndex); }
9
- };
10
- import { styleText } from 'node:util';
11
- import { Inject, Injectable } from 'pleroma';
12
- import { WorkflowRunRepository } from '../repositories/WorkflowRun.repository.js';
13
- import { WorkflowRunEventsService } from '../services/WorkflowRunEvents.service.js';
14
- import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
15
- import { toRejectedReason } from '../tools/to-rejected-reason.js';
16
- /**
17
- * Rejects runs pinned to a workflow worker that died: the activity classes
18
- * they pushed lived only in that thread, so they cannot be resumed.
19
- */
20
- let RejectAbandonedWorkflowRuns = class RejectAbandonedWorkflowRuns {
21
- workflowRunRepository;
22
- workflowRun;
23
- events;
24
- constructor(workflowRunRepository, workflowRun, events) {
25
- this.workflowRunRepository = workflowRunRepository;
26
- this.workflowRun = workflowRun;
27
- this.events = events;
28
- }
29
- async reject(runIds, cause) {
30
- const reason = toRejectedReason(new Error('The workflow worker running this run stopped', { cause }));
31
- for (const runId of runIds) {
32
- try {
33
- const run = await this.workflowRunRepository.findById(runId);
34
- if (run?.status !== 'running')
35
- continue;
36
- await this.workflowRunRepository.reject(runId, reason);
37
- this.events.runUpdated(runId);
38
- await this.workflowRun.onWorkflowRunFinished(runId);
39
- }
40
- catch (error) {
41
- console.error(styleText('red', `[Runtime] could not reject run ${runId}:`, {
42
- stream: process.stderr,
43
- }), error);
44
- }
45
- }
46
- }
47
- };
48
- RejectAbandonedWorkflowRuns = __decorate([
49
- Injectable(),
50
- __param(0, Inject(() => WorkflowRunRepository)),
51
- __param(1, Inject(() => WorkflowRunFacade)),
52
- __param(2, Inject(() => WorkflowRunEventsService))
53
- ], RejectAbandonedWorkflowRuns);
54
- export { RejectAbandonedWorkflowRuns };
55
- //# sourceMappingURL=RejectAbandonedWorkflowRuns.usecase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RejectAbandonedWorkflowRuns.usecase.js","sourceRoot":"","sources":["../../src/use-cases/RejectAbandonedWorkflowRuns.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAA;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE;;;GAGG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAGnB;IAGA;IAGA;IARnB,YAEmB,qBAA4C,EAG5C,WAA8B,EAG9B,MAAgC;QANhC,0BAAqB,GAArB,qBAAqB,CAAuB;QAG5C,gBAAW,GAAX,WAAW,CAAmB;QAG9B,WAAM,GAAN,MAAM,CAA0B;IAChD,CAAC;IAEG,KAAK,CAAC,MAAM,CAAC,MAAyB,EAAE,KAAY;QACzD,MAAM,MAAM,GAAG,gBAAgB,CAC7B,IAAI,KAAK,CAAC,8CAA8C,EAAE,EAAE,KAAK,EAAE,CAAC,CACrE,CAAA;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAE5D,IAAI,GAAG,EAAE,MAAM,KAAK,SAAS;oBAAE,SAAQ;gBAEvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gBAEtD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBAE7B,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,SAAS,CAAC,KAAK,EAAE,kCAAkC,KAAK,GAAG,EAAE;oBAC3D,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,EACF,KAAK,CACN,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAtCY,2BAA2B;IADvC,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAA;IAGnC,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAA;IAG/B,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAA;GAR9B,2BAA2B,CAsCvC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,58 +0,0 @@
1
- import { parentPort, workerData } from 'node:worker_threads';
2
- import { Env } from '@t4h.framework/core';
3
- import { container } from 'pleroma';
4
- import { env, loadApp } from './app-process.js';
5
- import { getClaims } from '../claims.js';
6
- import { toSerializedJobError } from '../models/WorkflowWorkerPool.js';
7
- import { CallbackTokenService } from '../services/CallbackToken.service.js';
8
- import { configureDatabase } from '../services/Database.service.js';
9
- import { RuntimeEventsService } from '../services/RuntimeEvents.service.js';
10
- import { WorkflowRunEventsService } from '../services/WorkflowRunEvents.service.js';
11
- import { WorkflowRunSchedulerService } from '../services/WorkflowRunScheduler.service.js';
12
- import { getJsonCodec } from '../tools/json-codec.js';
13
- import { runWorkflowRunJob } from '../tools/run-workflow-run-job.js';
14
- if (!parentPort)
15
- throw new Error('workflow-worker must run as a worker thread');
16
- const port = parentPort;
17
- const post = (message) => port.postMessage(message);
18
- const data = workerData;
19
- try {
20
- configureDatabase({ location: data.databaseLocation, createSchema: false });
21
- container.resolve(CallbackTokenService).useSecret(data.callbackSecret);
22
- container.resolve(WorkflowRunSchedulerService).forwardTo({
23
- enqueue: job => post({ type: 'queue:enqueue', job }),
24
- scheduleTimeout: (runId, pendingId, timeoutAt) => post({
25
- type: 'timeout:schedule',
26
- runId,
27
- pendingId,
28
- timeoutAt: timeoutAt.getTime(),
29
- }),
30
- cancelTimeout: pendingId => post({ type: 'timeout:cancel', pendingId }),
31
- });
32
- container
33
- .resolve(RuntimeEventsService)
34
- .forwardTo(event => post({ type: 'runtime:event', event }));
35
- container.resolve(WorkflowRunEventsService).forwardTo({
36
- runCreated: payload => post({ type: 'events:run-created', payload }),
37
- runUpdated: runId => post({ type: 'events:run-updated', runId }),
38
- });
39
- await loadApp(data.entrypoint, data);
40
- // Load lazily built integrations now, not on the first job.
41
- await Promise.all([getClaims(), getJsonCodec()]);
42
- port.on('message', ({ id, job }) => {
43
- const reject = (error) => post({ type: 'job:rejected', id, error: toSerializedJobError(error) });
44
- Env.run(env, () => runWorkflowRunJob(job)).then(value => {
45
- try {
46
- post({ type: 'job:fulfilled', id, value });
47
- }
48
- catch (error) {
49
- reject(error);
50
- }
51
- }, reject);
52
- });
53
- post({ type: 'ready' });
54
- }
55
- catch (error) {
56
- post({ type: 'boot-failed', error: toSerializedJobError(error) });
57
- }
58
- //# sourceMappingURL=workflow-worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-worker.js","sourceRoot":"","sources":["../../src/workers/workflow-worker.ts"],"names":[],"mappings":"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"}