@stigmer/runner 3.0.7 → 3.0.8-dev.20260612062921
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/README.md +12 -0
- package/dist/.build-fingerprint +1 -1
- package/dist/runner-manager.js +19 -9
- package/dist/runner-manager.js.map +1 -1
- package/dist/worker.js +12 -5
- package/dist/worker.js.map +1 -1
- package/dist/workflow-source.d.ts +38 -0
- package/dist/workflow-source.js +53 -0
- package/dist/workflow-source.js.map +1 -0
- package/dist/workflows/index.d.ts +4 -3
- package/dist/workflows/index.js +4 -3
- package/dist/workflows/index.js.map +1 -1
- package/package.json +9 -6
- package/src/runner-manager.ts +27 -13
- package/src/worker.ts +15 -10
- package/src/workflow-source.ts +72 -0
- package/src/workflows/index.ts +4 -3
package/README.md
CHANGED
|
@@ -26,6 +26,18 @@ This runs `npm run build` in `backend/services/runner` (`tsc -p tsconfig.build.j
|
|
|
26
26
|
|
|
27
27
|
Requires Node.js `>= 20`.
|
|
28
28
|
|
|
29
|
+
### The slim embedding artifact
|
|
30
|
+
|
|
31
|
+
The plain `dist/` resolves its dependencies from `node_modules` at runtime — ~508 MB unpacked, which is unshippable inside a desktop app ([#170](https://github.com/stigmer/stigmer/issues/170)). For embedding, build the **slim artifact**:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
make build-runner-slim # or: npm run build:slim
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This produces `dist-slim/`: a tree-shaken esbuild bundle of the whole runner (`main.js`), a build-time-prebuilt Temporal workflow bundle, and a staged `node_modules` containing only the packages that genuinely cannot be bundled (the platform-pruned Temporal native bridge, `@cursor/sdk` and its native binaries, `jq-wasm`) — **~85 MB per platform**. `node dist-slim/main.js` accepts the same modes, environment variables, and IPC protocol as `dist/main.js`. See `scripts/bundle-slim.mjs` for the full layout, `scripts/verify-slim-artifact.mjs` for the boot verification that gates releases, and the [embedding guide](https://docs.stigmer.ai/guides/runners/embedding) for how apps stage it.
|
|
38
|
+
|
|
39
|
+
The slim build is also published to npm as `@stigmer/runner-slim` (with per-platform `@stigmer/runner-slim-<platform>` support packages) alongside the full `@stigmer/runner` package on every release.
|
|
40
|
+
|
|
29
41
|
## Run modes
|
|
30
42
|
|
|
31
43
|
The runner has two **run modes**, selected by the `STIGMER_RUNNER_MODE` environment variable. Do not confuse the run mode (process topology) with the execution location (`MODE=local|cloud`) or the transport (`STIGMER_PROXY_ENDPOINT`) — those are independent axes covered in [Execution location vs transport](#execution-location-vs-transport).
|
package/dist/.build-fingerprint
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"hash":"
|
|
1
|
+
{"hash":"fbb008e1ad9ac26c","builtAt":"2026-06-12T06:30:27.043Z","fileCount":193}
|
package/dist/runner-manager.js
CHANGED
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
import { mkdirSync } from "node:fs";
|
|
13
13
|
import { join } from "node:path";
|
|
14
14
|
import { homedir, tmpdir } from "node:os";
|
|
15
|
-
import { fileURLToPath } from "node:url";
|
|
16
15
|
import { createRequire } from "node:module";
|
|
17
16
|
import { NativeConnection, Worker, bundleWorkflowCode, } from "@temporalio/worker";
|
|
17
|
+
import { resolveWorkflowSource, OTEL_WORKFLOW_INTERCEPTOR_MODULE } from "./workflow-source.js";
|
|
18
18
|
import { resolveRunnerBootstrap, refreshRunnerAccessToken } from "./bootstrap.js";
|
|
19
19
|
import { createRunnerTokenCoordinator } from "./runner-token-coordinator.js";
|
|
20
20
|
const SESSION_QUEUE_PREFIX = "session:";
|
|
@@ -137,10 +137,22 @@ export async function createStigmerRunnerManager(options) {
|
|
|
137
137
|
address: config.temporalAddress,
|
|
138
138
|
});
|
|
139
139
|
const interceptorConfig = await buildInterceptorConfig();
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
const
|
|
143
|
-
|
|
140
|
+
// Prefer the build-time workflow bundle (slim/packaged artifacts ship it and
|
|
141
|
+
// cannot bundle at runtime); fall back to bundle-on-boot for dev and tests.
|
|
142
|
+
const workflowSource = resolveWorkflowSource();
|
|
143
|
+
let workflowBundle;
|
|
144
|
+
if (workflowSource.kind === "prebuilt") {
|
|
145
|
+
console.log(`[runner-manager] Using pre-built workflow bundle: ${workflowSource.codePath}`);
|
|
146
|
+
workflowBundle = { codePath: workflowSource.codePath };
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
console.log("[runner-manager] Pre-bundling workflow code...");
|
|
150
|
+
workflowBundle = await bundleWorkflowCode({
|
|
151
|
+
workflowsPath: workflowSource.workflowsPath,
|
|
152
|
+
workflowInterceptorModules: interceptorConfig.workflowInterceptorModules,
|
|
153
|
+
});
|
|
154
|
+
console.log("[runner-manager] Workflow code bundled successfully");
|
|
155
|
+
}
|
|
144
156
|
const sessions = new Map();
|
|
145
157
|
const workflowExecutions = new Map();
|
|
146
158
|
const shutdownSignals = new Map();
|
|
@@ -374,7 +386,7 @@ async function buildInterceptorConfig() {
|
|
|
374
386
|
const otelSinks = makeWorkflowExporter(exporter, resource);
|
|
375
387
|
sinks = { ...sinks, ...otelSinks };
|
|
376
388
|
const esmRequire = createRequire(import.meta.url);
|
|
377
|
-
workflowInterceptorModules.push(esmRequire.resolve(
|
|
389
|
+
workflowInterceptorModules.push(esmRequire.resolve(OTEL_WORKFLOW_INTERCEPTOR_MODULE));
|
|
378
390
|
}
|
|
379
391
|
return {
|
|
380
392
|
sinks,
|
|
@@ -382,10 +394,8 @@ async function buildInterceptorConfig() {
|
|
|
382
394
|
...(activityInterceptors.length > 0
|
|
383
395
|
? { activity: activityInterceptors }
|
|
384
396
|
: {}),
|
|
385
|
-
...(workflowInterceptorModules.length > 0
|
|
386
|
-
? { workflowModules: workflowInterceptorModules }
|
|
387
|
-
: {}),
|
|
388
397
|
},
|
|
398
|
+
workflowInterceptorModules,
|
|
389
399
|
};
|
|
390
400
|
}
|
|
391
401
|
function resolveDefaultWorkspaceDir() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-manager.js","sourceRoot":"","sources":["../src/runner-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner-manager.js","sourceRoot":"","sources":["../src/runner-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.js
CHANGED
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
* - This TypeScript worker handles both workflow and activity tasks
|
|
14
14
|
* - Activities are dispatched by name within the same queue
|
|
15
15
|
*/
|
|
16
|
-
import { fileURLToPath } from "node:url";
|
|
17
16
|
import { createRequire } from "node:module";
|
|
18
17
|
import { NativeConnection, Worker } from "@temporalio/worker";
|
|
18
|
+
import { resolveWorkflowSource, OTEL_WORKFLOW_INTERCEPTOR_MODULE } from "./workflow-source.js";
|
|
19
19
|
export async function startWorker(opts) {
|
|
20
20
|
const { config, activities, payloadCodec } = opts;
|
|
21
21
|
const connection = await NativeConnection.connect({
|
|
22
22
|
address: config.temporalAddress,
|
|
23
23
|
});
|
|
24
24
|
const { createWorkflowMetricsSinks } = await import("./interceptors/workflow-metrics-sink.js");
|
|
25
|
+
const workflowSource = resolveWorkflowSource();
|
|
25
26
|
const activityInterceptors = [];
|
|
26
27
|
let sinks = { ...createWorkflowMetricsSinks() };
|
|
27
28
|
const workflowInterceptorModules = [];
|
|
@@ -39,17 +40,23 @@ export async function startWorker(opts) {
|
|
|
39
40
|
// Runtime types are compatible — this is a pure type-system issue.
|
|
40
41
|
const otelSinks = makeWorkflowExporter(exporter, resource);
|
|
41
42
|
sinks = { ...sinks, ...otelSinks };
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
// Workflow-side interceptors must live inside the workflow bundle. With a
|
|
44
|
+
// pre-built bundle they were baked in at build time; only the runtime
|
|
45
|
+
// (bundle-on-boot) path registers them here.
|
|
46
|
+
if (workflowSource.kind === "runtime") {
|
|
47
|
+
const esmRequire = createRequire(import.meta.url);
|
|
48
|
+
workflowInterceptorModules.push(esmRequire.resolve(OTEL_WORKFLOW_INTERCEPTOR_MODULE));
|
|
49
|
+
}
|
|
44
50
|
console.log("Temporal OpenTelemetry interceptors enabled (activity + workflow)");
|
|
45
51
|
}
|
|
46
|
-
const workflowsPath = fileURLToPath(new URL("./workflows/index.js", import.meta.url));
|
|
47
52
|
const worker = await Worker.create({
|
|
48
53
|
connection,
|
|
49
54
|
namespace: config.temporalNamespace,
|
|
50
55
|
taskQueue: config.taskQueue,
|
|
51
56
|
activities,
|
|
52
|
-
|
|
57
|
+
...(workflowSource.kind === "prebuilt"
|
|
58
|
+
? { workflowBundle: { codePath: workflowSource.codePath } }
|
|
59
|
+
: { workflowsPath: workflowSource.workflowsPath }),
|
|
53
60
|
maxConcurrentActivityTaskExecutions: config.maxConcurrentActivities,
|
|
54
61
|
dataConverter: payloadCodec
|
|
55
62
|
? { payloadCodecs: [payloadCodec] }
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAwD,MAAM,oBAAoB,CAAC;AAGpH,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAY/F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAwB;IACxD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAElD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;QAChD,OAAO,EAAE,MAAM,CAAC,eAAe;KAChC,CAAC,CAAC;IAEH,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IAE/F,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;IAE/C,MAAM,oBAAoB,GAAkC,EAAE,CAAC;IAC/D,IAAI,KAAK,GAAuB,EAAE,GAAG,0BAA0B,EAAE,EAAE,CAAC;IACpE,MAAM,0BAA0B,GAAa,EAAE,CAAC;IAEhD,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC;QAC5C,MAAM,EACJ,uCAAuC,EACvC,oBAAoB,GACrB,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;QACtF,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAE5E,oBAAoB,CAAC,IAAI,CACvB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,uCAAuC,CAAC,GAAG,CAAC,EAAE,CAAC,CACzE,CAAC;QAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;YACrC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;SAC7C,CAAC,CAAC;QACH,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAe,EAAE,QAAe,CAAkC,CAAC;QAC1G,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;QAEnC,0EAA0E;QAC1E,sEAAsE;QACtE,6CAA6C;QAC7C,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,0BAA0B,CAAC,IAAI,CAC7B,UAAU,CAAC,OAAO,CAAC,gCAAgC,CAAC,CACrD,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACjC,UAAU;QACV,SAAS,EAAE,MAAM,CAAC,iBAAiB;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU;QACV,GAAG,CAAC,cAAc,CAAC,IAAI,KAAK,UAAU;YACpC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE;YAC3D,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC;QACpD,mCAAmC,EAAE,MAAM,CAAC,uBAAuB;QACnE,aAAa,EAAE,YAAY;YACzB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE;YACnC,CAAC,CAAC,SAAS;QACb,KAAK;QACL,YAAY,EAAE;YACZ,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClG;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves where the Temporal *workflow* code comes from.
|
|
3
|
+
*
|
|
4
|
+
* Workflow code (src/workflows/) runs inside Temporal's deterministic
|
|
5
|
+
* sandbox, so it must be bundled separately from the activity/host code.
|
|
6
|
+
* That bundle can be produced at two different times:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Pre-built** — `scripts/bundle-slim.mjs` runs Temporal's bundler at
|
|
9
|
+
* build time and emits `workflow-bundle.js` next to the entry point.
|
|
10
|
+
* The slim embedding artifact ships WITHOUT webpack/@swc (they account
|
|
11
|
+
* for ~45 MB of node_modules), so runtime bundling is impossible there;
|
|
12
|
+
* the pre-built file is authoritative whenever it exists. The OTel
|
|
13
|
+
* workflow interceptor is baked in at build time and stays inert unless
|
|
14
|
+
* the host configures the OTel sink.
|
|
15
|
+
*
|
|
16
|
+
* 2. **Runtime** — dev loops (`tsx`, plain `tsc` dist) and tests fall back
|
|
17
|
+
* to Temporal's on-boot webpack bundling, exactly as before the slim
|
|
18
|
+
* artifact existed.
|
|
19
|
+
*
|
|
20
|
+
* `STIGMER_WORKFLOW_BUNDLE` overrides discovery with an explicit path —
|
|
21
|
+
* useful for tests and for embedders that stage the bundle elsewhere.
|
|
22
|
+
*/
|
|
23
|
+
export type WorkflowSource = {
|
|
24
|
+
/** Pre-built bundle on disk; interceptors are already baked in. */
|
|
25
|
+
readonly kind: "prebuilt";
|
|
26
|
+
readonly codePath: string;
|
|
27
|
+
} | {
|
|
28
|
+
/** Bundle on boot from the compiled workflows entry module. */
|
|
29
|
+
readonly kind: "runtime";
|
|
30
|
+
readonly workflowsPath: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Module specifier of the OTel workflow interceptor. Exported so the build
|
|
34
|
+
* script and the runtime fallback agree on what gets baked into / registered
|
|
35
|
+
* with the workflow bundle.
|
|
36
|
+
*/
|
|
37
|
+
export declare const OTEL_WORKFLOW_INTERCEPTOR_MODULE = "@temporalio/interceptors-opentelemetry/lib/workflow-interceptors";
|
|
38
|
+
export declare function resolveWorkflowSource(): WorkflowSource;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves where the Temporal *workflow* code comes from.
|
|
3
|
+
*
|
|
4
|
+
* Workflow code (src/workflows/) runs inside Temporal's deterministic
|
|
5
|
+
* sandbox, so it must be bundled separately from the activity/host code.
|
|
6
|
+
* That bundle can be produced at two different times:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Pre-built** — `scripts/bundle-slim.mjs` runs Temporal's bundler at
|
|
9
|
+
* build time and emits `workflow-bundle.js` next to the entry point.
|
|
10
|
+
* The slim embedding artifact ships WITHOUT webpack/@swc (they account
|
|
11
|
+
* for ~45 MB of node_modules), so runtime bundling is impossible there;
|
|
12
|
+
* the pre-built file is authoritative whenever it exists. The OTel
|
|
13
|
+
* workflow interceptor is baked in at build time and stays inert unless
|
|
14
|
+
* the host configures the OTel sink.
|
|
15
|
+
*
|
|
16
|
+
* 2. **Runtime** — dev loops (`tsx`, plain `tsc` dist) and tests fall back
|
|
17
|
+
* to Temporal's on-boot webpack bundling, exactly as before the slim
|
|
18
|
+
* artifact existed.
|
|
19
|
+
*
|
|
20
|
+
* `STIGMER_WORKFLOW_BUNDLE` overrides discovery with an explicit path —
|
|
21
|
+
* useful for tests and for embedders that stage the bundle elsewhere.
|
|
22
|
+
*/
|
|
23
|
+
import { existsSync } from "node:fs";
|
|
24
|
+
import { fileURLToPath } from "node:url";
|
|
25
|
+
/**
|
|
26
|
+
* Module specifier of the OTel workflow interceptor. Exported so the build
|
|
27
|
+
* script and the runtime fallback agree on what gets baked into / registered
|
|
28
|
+
* with the workflow bundle.
|
|
29
|
+
*/
|
|
30
|
+
export const OTEL_WORKFLOW_INTERCEPTOR_MODULE = "@temporalio/interceptors-opentelemetry/lib/workflow-interceptors";
|
|
31
|
+
export function resolveWorkflowSource() {
|
|
32
|
+
const explicit = process.env.STIGMER_WORKFLOW_BUNDLE;
|
|
33
|
+
if (explicit) {
|
|
34
|
+
if (!existsSync(explicit)) {
|
|
35
|
+
throw new Error(`STIGMER_WORKFLOW_BUNDLE points to a non-existent file: ${explicit}`);
|
|
36
|
+
}
|
|
37
|
+
return { kind: "prebuilt", codePath: explicit };
|
|
38
|
+
}
|
|
39
|
+
// In the slim artifact every src/ module collapses into the single bundled
|
|
40
|
+
// entry, so import.meta.url resolves next to main.js — exactly where the
|
|
41
|
+
// build script emits workflow-bundle.js. In the tsc dist this resolves to
|
|
42
|
+
// dist/workflow-bundle.js, which never exists (the build script writes only
|
|
43
|
+
// into dist-slim/), so dev builds always take the runtime path.
|
|
44
|
+
const sibling = new URL("./workflow-bundle.js", import.meta.url);
|
|
45
|
+
if (existsSync(fileURLToPath(sibling))) {
|
|
46
|
+
return { kind: "prebuilt", codePath: fileURLToPath(sibling) };
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
kind: "runtime",
|
|
50
|
+
workflowsPath: fileURLToPath(new URL("./workflows/index.js", import.meta.url)),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=workflow-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-source.js","sourceRoot":"","sources":["../src/workflow-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAC3C,kEAAkE,CAAC;AAErE,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,0DAA0D,QAAQ,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAClD,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,aAAa,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* us map TypeScript function names to the slash-delimited Temporal
|
|
14
14
|
* workflow type names that the backend expects.
|
|
15
15
|
*
|
|
16
|
-
* OTel workflow interceptors are registered
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* OTel workflow interceptors are registered at bundle time — not
|
|
17
|
+
* imported here. Pre-built bundles (scripts/bundle-slim.mjs) bake them
|
|
18
|
+
* in; the runtime-bundling fallback passes them to the bundler (see
|
|
19
|
+
* src/workflow-source.ts).
|
|
19
20
|
*/
|
|
20
21
|
export { connectMcpServer as "stigmer/mcp-server/connect", discoverMcpServerLegacy as "stigmer/mcp-server/discover", } from "./connect-mcp-server.js";
|
|
21
22
|
export { executeServerlessWorkflow as "stigmer/workflow/execute", } from "./execute-serverless-workflow.js";
|
package/dist/workflows/index.js
CHANGED
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* us map TypeScript function names to the slash-delimited Temporal
|
|
14
14
|
* workflow type names that the backend expects.
|
|
15
15
|
*
|
|
16
|
-
* OTel workflow interceptors are registered
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* OTel workflow interceptors are registered at bundle time — not
|
|
17
|
+
* imported here. Pre-built bundles (scripts/bundle-slim.mjs) bake them
|
|
18
|
+
* in; the runtime-bundling fallback passes them to the bundler (see
|
|
19
|
+
* src/workflow-source.ts).
|
|
19
20
|
*/
|
|
20
21
|
export { connectMcpServer as "stigmer/mcp-server/connect", discoverMcpServerLegacy as "stigmer/mcp-server/discover", } from "./connect-mcp-server.js";
|
|
21
22
|
export { executeServerlessWorkflow as "stigmer/workflow/execute", } from "./execute-serverless-workflow.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,gBAAgB,IAAI,4BAA4B,EAChD,uBAAuB,IAAI,6BAA6B,GACzD,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,yBAAyB,IAAI,0BAA0B,GACxD,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,oBAAoB,IAAI,yCAAyC,GAClE,MAAM,6BAA6B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/runner",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.8-dev.20260612062921",
|
|
4
4
|
"description": "Embeddable Temporal worker for the Stigmer AI agent platform — handles agent execution, workflow orchestration, and MCP server management",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -25,13 +25,15 @@
|
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "rm -rf dist && tsc -p tsconfig.build.json && node scripts/build-fingerprint.js",
|
|
28
|
+
"build:slim": "npm run build && node scripts/bundle-slim.mjs",
|
|
29
|
+
"verify:slim": "node scripts/verify-slim-artifact.mjs",
|
|
28
30
|
"gen:ipc-fixtures": "tsx scripts/generate-ipc-fixtures.ts",
|
|
29
31
|
"start": "tsx src/main.ts",
|
|
30
32
|
"typecheck": "tsc --noEmit",
|
|
31
33
|
"test": "vitest run",
|
|
32
34
|
"test:watch": "vitest",
|
|
33
35
|
"check-deps": "bash scripts/check-langchain-deps.sh",
|
|
34
|
-
"clean": "rm -rf dist"
|
|
36
|
+
"clean": "rm -rf dist dist-slim"
|
|
35
37
|
},
|
|
36
38
|
"files": [
|
|
37
39
|
"dist",
|
|
@@ -75,16 +77,15 @@
|
|
|
75
77
|
"@langchain/langgraph": "^1.3.0",
|
|
76
78
|
"@langchain/mcp-adapters": "^1.1.3",
|
|
77
79
|
"@langchain/openai": "^1.4.0",
|
|
78
|
-
"zod-to-json-schema": "^3.24.0",
|
|
79
80
|
"@opentelemetry/api": "^1.9.0",
|
|
80
81
|
"@opentelemetry/core": "^2.0.0",
|
|
81
82
|
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.218.0",
|
|
82
|
-
"@opentelemetry/sdk-metrics": "^2.0.0",
|
|
83
83
|
"@opentelemetry/exporter-trace-otlp-grpc": "^0.218.0",
|
|
84
84
|
"@opentelemetry/resources": "^2.0.0",
|
|
85
|
+
"@opentelemetry/sdk-metrics": "^2.0.0",
|
|
85
86
|
"@opentelemetry/sdk-trace-base": "^2.0.0",
|
|
86
87
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
87
|
-
"@stigmer/protos": "3.0.
|
|
88
|
+
"@stigmer/protos": "3.0.8-dev.20260612062921",
|
|
88
89
|
"@temporalio/activity": "^1.11.0",
|
|
89
90
|
"@temporalio/client": "^1.11.0",
|
|
90
91
|
"@temporalio/common": "^1.11.0",
|
|
@@ -95,12 +96,14 @@
|
|
|
95
96
|
"jq-wasm": "^1.1.0-jq-1.8.1",
|
|
96
97
|
"js-yaml": "^4.1.1",
|
|
97
98
|
"semver": "^7.8.0",
|
|
98
|
-
"zod": "^3.25.0"
|
|
99
|
+
"zod": "^3.25.0",
|
|
100
|
+
"zod-to-json-schema": "^3.24.0"
|
|
99
101
|
},
|
|
100
102
|
"devDependencies": {
|
|
101
103
|
"@temporalio/testing": "^1.16.2",
|
|
102
104
|
"@types/js-yaml": "^4.0.9",
|
|
103
105
|
"@types/semver": "^7.7.1",
|
|
106
|
+
"esbuild": "^0.28.1",
|
|
104
107
|
"tsx": "^4.21.0",
|
|
105
108
|
"typescript": "^5.7.0",
|
|
106
109
|
"vitest": "^3.2.4"
|
package/src/runner-manager.ts
CHANGED
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
import { mkdirSync } from "node:fs";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { homedir, tmpdir } from "node:os";
|
|
16
|
-
import { fileURLToPath } from "node:url";
|
|
17
16
|
import { createRequire } from "node:module";
|
|
18
17
|
import {
|
|
19
18
|
NativeConnection,
|
|
@@ -21,10 +20,12 @@ import {
|
|
|
21
20
|
bundleWorkflowCode,
|
|
22
21
|
type ActivityInterceptorsFactory,
|
|
23
22
|
type InjectedSinks,
|
|
23
|
+
type WorkflowBundleOption,
|
|
24
24
|
} from "@temporalio/worker";
|
|
25
25
|
import type { PayloadCodec } from "@temporalio/common";
|
|
26
26
|
import type { Config } from "./config.js";
|
|
27
27
|
import type { WorkerActivities } from "./worker.js";
|
|
28
|
+
import { resolveWorkflowSource, OTEL_WORKFLOW_INTERCEPTOR_MODULE } from "./workflow-source.js";
|
|
28
29
|
import { resolveRunnerBootstrap, refreshRunnerAccessToken } from "./bootstrap.js";
|
|
29
30
|
import { createRunnerTokenCoordinator } from "./runner-token-coordinator.js";
|
|
30
31
|
|
|
@@ -275,13 +276,22 @@ export async function createStigmerRunnerManager(
|
|
|
275
276
|
});
|
|
276
277
|
|
|
277
278
|
const interceptorConfig = await buildInterceptorConfig();
|
|
278
|
-
const workflowsPath = fileURLToPath(
|
|
279
|
-
new URL("./workflows/index.js", import.meta.url),
|
|
280
|
-
);
|
|
281
279
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
280
|
+
// Prefer the build-time workflow bundle (slim/packaged artifacts ship it and
|
|
281
|
+
// cannot bundle at runtime); fall back to bundle-on-boot for dev and tests.
|
|
282
|
+
const workflowSource = resolveWorkflowSource();
|
|
283
|
+
let workflowBundle: WorkflowBundleOption;
|
|
284
|
+
if (workflowSource.kind === "prebuilt") {
|
|
285
|
+
console.log(`[runner-manager] Using pre-built workflow bundle: ${workflowSource.codePath}`);
|
|
286
|
+
workflowBundle = { codePath: workflowSource.codePath };
|
|
287
|
+
} else {
|
|
288
|
+
console.log("[runner-manager] Pre-bundling workflow code...");
|
|
289
|
+
workflowBundle = await bundleWorkflowCode({
|
|
290
|
+
workflowsPath: workflowSource.workflowsPath,
|
|
291
|
+
workflowInterceptorModules: interceptorConfig.workflowInterceptorModules,
|
|
292
|
+
});
|
|
293
|
+
console.log("[runner-manager] Workflow code bundled successfully");
|
|
294
|
+
}
|
|
285
295
|
|
|
286
296
|
const sessions = new Map<string, ManagedSession>();
|
|
287
297
|
const workflowExecutions = new Map<string, ManagedSession>();
|
|
@@ -571,6 +581,14 @@ async function createPayloadCodec(
|
|
|
571
581
|
interface InterceptorConfig {
|
|
572
582
|
sinks: InjectedSinks<any>;
|
|
573
583
|
interceptors: Record<string, any>;
|
|
584
|
+
/**
|
|
585
|
+
* Workflow-side interceptor modules. These must be compiled INTO the
|
|
586
|
+
* workflow bundle (Worker.create ignores `interceptors.workflowModules`
|
|
587
|
+
* when a pre-built `workflowBundle` is supplied), so the runtime-bundling
|
|
588
|
+
* path passes them to `bundleWorkflowCode` and the pre-built path relies
|
|
589
|
+
* on the build script having baked them in.
|
|
590
|
+
*/
|
|
591
|
+
workflowInterceptorModules: string[];
|
|
574
592
|
}
|
|
575
593
|
|
|
576
594
|
async function buildInterceptorConfig(): Promise<InterceptorConfig> {
|
|
@@ -610,9 +628,7 @@ async function buildInterceptorConfig(): Promise<InterceptorConfig> {
|
|
|
610
628
|
|
|
611
629
|
const esmRequire = createRequire(import.meta.url);
|
|
612
630
|
workflowInterceptorModules.push(
|
|
613
|
-
esmRequire.resolve(
|
|
614
|
-
"@temporalio/interceptors-opentelemetry/lib/workflow-interceptors",
|
|
615
|
-
),
|
|
631
|
+
esmRequire.resolve(OTEL_WORKFLOW_INTERCEPTOR_MODULE),
|
|
616
632
|
);
|
|
617
633
|
}
|
|
618
634
|
|
|
@@ -622,10 +638,8 @@ async function buildInterceptorConfig(): Promise<InterceptorConfig> {
|
|
|
622
638
|
...(activityInterceptors.length > 0
|
|
623
639
|
? { activity: activityInterceptors }
|
|
624
640
|
: {}),
|
|
625
|
-
...(workflowInterceptorModules.length > 0
|
|
626
|
-
? { workflowModules: workflowInterceptorModules }
|
|
627
|
-
: {}),
|
|
628
641
|
},
|
|
642
|
+
workflowInterceptorModules,
|
|
629
643
|
};
|
|
630
644
|
}
|
|
631
645
|
|
package/src/worker.ts
CHANGED
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
* - Activities are dispatched by name within the same queue
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { fileURLToPath } from "node:url";
|
|
18
17
|
import { createRequire } from "node:module";
|
|
19
18
|
import { NativeConnection, Worker, type ActivityInterceptorsFactory, type InjectedSinks } from "@temporalio/worker";
|
|
20
19
|
import type { PayloadCodec } from "@temporalio/common";
|
|
21
20
|
import type { Config } from "./config.js";
|
|
21
|
+
import { resolveWorkflowSource, OTEL_WORKFLOW_INTERCEPTOR_MODULE } from "./workflow-source.js";
|
|
22
22
|
|
|
23
23
|
export interface WorkerActivities {
|
|
24
24
|
[key: string]: (...args: any[]) => Promise<unknown>;
|
|
@@ -39,6 +39,8 @@ export async function startWorker(opts: StartWorkerOptions): Promise<Worker> {
|
|
|
39
39
|
|
|
40
40
|
const { createWorkflowMetricsSinks } = await import("./interceptors/workflow-metrics-sink.js");
|
|
41
41
|
|
|
42
|
+
const workflowSource = resolveWorkflowSource();
|
|
43
|
+
|
|
42
44
|
const activityInterceptors: ActivityInterceptorsFactory[] = [];
|
|
43
45
|
let sinks: InjectedSinks<any> = { ...createWorkflowMetricsSinks() };
|
|
44
46
|
const workflowInterceptorModules: string[] = [];
|
|
@@ -65,24 +67,27 @@ export async function startWorker(opts: StartWorkerOptions): Promise<Worker> {
|
|
|
65
67
|
const otelSinks = makeWorkflowExporter(exporter as any, resource as any) as unknown as InjectedSinks<any>;
|
|
66
68
|
sinks = { ...sinks, ...otelSinks };
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
)
|
|
70
|
+
// Workflow-side interceptors must live inside the workflow bundle. With a
|
|
71
|
+
// pre-built bundle they were baked in at build time; only the runtime
|
|
72
|
+
// (bundle-on-boot) path registers them here.
|
|
73
|
+
if (workflowSource.kind === "runtime") {
|
|
74
|
+
const esmRequire = createRequire(import.meta.url);
|
|
75
|
+
workflowInterceptorModules.push(
|
|
76
|
+
esmRequire.resolve(OTEL_WORKFLOW_INTERCEPTOR_MODULE),
|
|
77
|
+
);
|
|
78
|
+
}
|
|
72
79
|
|
|
73
80
|
console.log("Temporal OpenTelemetry interceptors enabled (activity + workflow)");
|
|
74
81
|
}
|
|
75
82
|
|
|
76
|
-
const workflowsPath = fileURLToPath(
|
|
77
|
-
new URL("./workflows/index.js", import.meta.url),
|
|
78
|
-
);
|
|
79
|
-
|
|
80
83
|
const worker = await Worker.create({
|
|
81
84
|
connection,
|
|
82
85
|
namespace: config.temporalNamespace,
|
|
83
86
|
taskQueue: config.taskQueue,
|
|
84
87
|
activities,
|
|
85
|
-
|
|
88
|
+
...(workflowSource.kind === "prebuilt"
|
|
89
|
+
? { workflowBundle: { codePath: workflowSource.codePath } }
|
|
90
|
+
: { workflowsPath: workflowSource.workflowsPath }),
|
|
86
91
|
maxConcurrentActivityTaskExecutions: config.maxConcurrentActivities,
|
|
87
92
|
dataConverter: payloadCodec
|
|
88
93
|
? { payloadCodecs: [payloadCodec] }
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves where the Temporal *workflow* code comes from.
|
|
3
|
+
*
|
|
4
|
+
* Workflow code (src/workflows/) runs inside Temporal's deterministic
|
|
5
|
+
* sandbox, so it must be bundled separately from the activity/host code.
|
|
6
|
+
* That bundle can be produced at two different times:
|
|
7
|
+
*
|
|
8
|
+
* 1. **Pre-built** — `scripts/bundle-slim.mjs` runs Temporal's bundler at
|
|
9
|
+
* build time and emits `workflow-bundle.js` next to the entry point.
|
|
10
|
+
* The slim embedding artifact ships WITHOUT webpack/@swc (they account
|
|
11
|
+
* for ~45 MB of node_modules), so runtime bundling is impossible there;
|
|
12
|
+
* the pre-built file is authoritative whenever it exists. The OTel
|
|
13
|
+
* workflow interceptor is baked in at build time and stays inert unless
|
|
14
|
+
* the host configures the OTel sink.
|
|
15
|
+
*
|
|
16
|
+
* 2. **Runtime** — dev loops (`tsx`, plain `tsc` dist) and tests fall back
|
|
17
|
+
* to Temporal's on-boot webpack bundling, exactly as before the slim
|
|
18
|
+
* artifact existed.
|
|
19
|
+
*
|
|
20
|
+
* `STIGMER_WORKFLOW_BUNDLE` overrides discovery with an explicit path —
|
|
21
|
+
* useful for tests and for embedders that stage the bundle elsewhere.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { existsSync } from "node:fs";
|
|
25
|
+
import { fileURLToPath } from "node:url";
|
|
26
|
+
|
|
27
|
+
export type WorkflowSource =
|
|
28
|
+
| {
|
|
29
|
+
/** Pre-built bundle on disk; interceptors are already baked in. */
|
|
30
|
+
readonly kind: "prebuilt";
|
|
31
|
+
readonly codePath: string;
|
|
32
|
+
}
|
|
33
|
+
| {
|
|
34
|
+
/** Bundle on boot from the compiled workflows entry module. */
|
|
35
|
+
readonly kind: "runtime";
|
|
36
|
+
readonly workflowsPath: string;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Module specifier of the OTel workflow interceptor. Exported so the build
|
|
41
|
+
* script and the runtime fallback agree on what gets baked into / registered
|
|
42
|
+
* with the workflow bundle.
|
|
43
|
+
*/
|
|
44
|
+
export const OTEL_WORKFLOW_INTERCEPTOR_MODULE =
|
|
45
|
+
"@temporalio/interceptors-opentelemetry/lib/workflow-interceptors";
|
|
46
|
+
|
|
47
|
+
export function resolveWorkflowSource(): WorkflowSource {
|
|
48
|
+
const explicit = process.env.STIGMER_WORKFLOW_BUNDLE;
|
|
49
|
+
if (explicit) {
|
|
50
|
+
if (!existsSync(explicit)) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
`STIGMER_WORKFLOW_BUNDLE points to a non-existent file: ${explicit}`,
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
return { kind: "prebuilt", codePath: explicit };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// In the slim artifact every src/ module collapses into the single bundled
|
|
59
|
+
// entry, so import.meta.url resolves next to main.js — exactly where the
|
|
60
|
+
// build script emits workflow-bundle.js. In the tsc dist this resolves to
|
|
61
|
+
// dist/workflow-bundle.js, which never exists (the build script writes only
|
|
62
|
+
// into dist-slim/), so dev builds always take the runtime path.
|
|
63
|
+
const sibling = new URL("./workflow-bundle.js", import.meta.url);
|
|
64
|
+
if (existsSync(fileURLToPath(sibling))) {
|
|
65
|
+
return { kind: "prebuilt", codePath: fileURLToPath(sibling) };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
kind: "runtime",
|
|
70
|
+
workflowsPath: fileURLToPath(new URL("./workflows/index.js", import.meta.url)),
|
|
71
|
+
};
|
|
72
|
+
}
|
package/src/workflows/index.ts
CHANGED
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* us map TypeScript function names to the slash-delimited Temporal
|
|
14
14
|
* workflow type names that the backend expects.
|
|
15
15
|
*
|
|
16
|
-
* OTel workflow interceptors are registered
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* OTel workflow interceptors are registered at bundle time — not
|
|
17
|
+
* imported here. Pre-built bundles (scripts/bundle-slim.mjs) bake them
|
|
18
|
+
* in; the runtime-bundling fallback passes them to the bundler (see
|
|
19
|
+
* src/workflow-source.ts).
|
|
19
20
|
*/
|
|
20
21
|
|
|
21
22
|
export {
|