@cat-factory/worker 0.161.1 → 0.162.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/infrastructure/containers/CloudflareContainerTransport.d.ts +14 -2
- package/dist/infrastructure/containers/CloudflareContainerTransport.d.ts.map +1 -1
- package/dist/infrastructure/containers/CloudflareContainerTransport.js +57 -1
- package/dist/infrastructure/containers/CloudflareContainerTransport.js.map +1 -1
- package/package.json +18 -18
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RunnerDispatchKind, type RunnerJobRef, type RunnerJobView, type RunnerTransport } from '@cat-factory/kernel';
|
|
1
|
+
import { type RunnerDispatchAck, type RunnerDispatchKind, type RunnerJobRef, type RunnerJobStopOutcome, type RunnerJobView, type RunnerTransport } from '@cat-factory/kernel';
|
|
2
2
|
import type { DurableObjectNamespace } from '@cloudflare/workers-types';
|
|
3
3
|
import type { DeployContainer } from './DeployContainer';
|
|
4
4
|
import { type ExecutionContainer } from './ExecutionContainer';
|
|
@@ -30,7 +30,7 @@ export declare class CloudflareContainerTransport implements RunnerTransport {
|
|
|
30
30
|
sharedSecret?: string | undefined);
|
|
31
31
|
/** Header bag for a harness call: the shared secret when configured, else empty. */
|
|
32
32
|
private secretHeader;
|
|
33
|
-
dispatch(ref: RunnerJobRef, spec: Record<string, unknown>, kind?: RunnerDispatchKind): Promise<
|
|
33
|
+
dispatch(ref: RunnerJobRef, spec: Record<string, unknown>, kind?: RunnerDispatchKind): Promise<RunnerDispatchAck | undefined>;
|
|
34
34
|
poll(ref: RunnerJobRef): Promise<RunnerJobView>;
|
|
35
35
|
/**
|
|
36
36
|
* Reclaim the per-run container now (SIGKILL via the DO's `shutdown` RPC) instead
|
|
@@ -39,5 +39,17 @@ export declare class CloudflareContainerTransport implements RunnerTransport {
|
|
|
39
39
|
* Best-effort and idempotent: shutting down an already-gone container is a no-op.
|
|
40
40
|
*/
|
|
41
41
|
release(ref: RunnerJobRef): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Stop ONE job and confirm it. Always answers `stopped`, because this backend owns the container
|
|
44
|
+
* the job runs in: the graceful path asks the harness to abort that job and wait for it to
|
|
45
|
+
* settle, and anything else escalates to reclaiming the container, which stops everything inside
|
|
46
|
+
* it.
|
|
47
|
+
*
|
|
48
|
+
* Escalating is right here and only here. A per-run container serves ONE run, and the caller
|
|
49
|
+
* that reaches for this has already failed the run, so there is no sibling step left to protect;
|
|
50
|
+
* what the escalation buys is the difference between telling a human "the agent is stopped" and
|
|
51
|
+
* telling them to go and look.
|
|
52
|
+
*/
|
|
53
|
+
stopJob(ref: RunnerJobRef): Promise<RunnerJobStopOutcome>;
|
|
42
54
|
}
|
|
43
55
|
//# sourceMappingURL=CloudflareContainerTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudflareContainerTransport.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/containers/CloudflareContainerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"CloudflareContainerTransport.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/containers/CloudflareContainerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,sBAAsB,CAAA;AAC/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AA2C5E,qBAAa,4BAA6B,YAAW,eAAe;IAUhE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IArBhC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,0BAAyB;IAEzC,YAMmB,SAAS,EACtB,sBAAsB,CAAC,kBAAkB,CAAC,GAC1C,sBAAsB,CAAC,eAAe,CAAC;IAC3C,kFAAkF;IACjE,QAAQ,CAAC,EAAE,yBAAyB,YAAA;IACrD;;;;;;OAMG;IACc,YAAY,CAAC,EAAE,MAAM,YAAA,EACpC;IAEJ,oFAAoF;IACpF,OAAO,CAAC,YAAY;IAUd,QAAQ,CACZ,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE,kBAA4B,GACjC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA+BxC;IAEK,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CA6CpD;IAED;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9C;IAED;;;;;;;;;;OAUG;IACG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqB9D;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CONTAINER_EVICTION_ERROR, harnessDispatchError, } from '@cat-factory/kernel';
|
|
1
|
+
import { CONTAINER_EVICTION_ERROR, harnessDispatchError, readRunnerDispatchAck, } from '@cat-factory/kernel';
|
|
2
2
|
import { isRolloutSignal } from './ExecutionContainer';
|
|
3
3
|
// The human-readable message for a failed poll the transport maps to a container eviction. The
|
|
4
4
|
// eviction verdict the engine acts on rides the STRUCTURED `RunnerJobView.evicted` field
|
|
@@ -29,6 +29,10 @@ const ROLLOUT_EVICTION_ERROR = `${EVICTION_ERROR} (transient infrastructure evic
|
|
|
29
29
|
// container-side by the job's inactivity + max-duration watchdogs.
|
|
30
30
|
const DISPATCH_TIMEOUT_MS = 30_000;
|
|
31
31
|
const POLL_TIMEOUT_MS = 30_000;
|
|
32
|
+
// A stop, unlike those two, deliberately WAITS: the harness holds the response until the aborted
|
|
33
|
+
// job has actually settled (up to its own ~6s force-kill window), because the caller's whole
|
|
34
|
+
// question is whether the agent is still running. Sized to clear that with room to spare.
|
|
35
|
+
const STOP_TIMEOUT_MS = 30_000;
|
|
32
36
|
// Inbound-auth header the harness checks when HARNESS_SHARED_SECRET is configured
|
|
33
37
|
// (matches the harness server + the local Docker transport). Sent on every harness
|
|
34
38
|
// call so a container that requires the secret accepts the Worker's dispatch/poll.
|
|
@@ -98,6 +102,9 @@ export class CloudflareContainerTransport {
|
|
|
98
102
|
// across a run's steps — the store preserves the earliest startedAt for a key.
|
|
99
103
|
// Best-effort — the registry swallows store errors.
|
|
100
104
|
await this.registry?.register(ref.runId, kind);
|
|
105
|
+
// The harness's capability handshake rides the acceptance body. Read AFTER the registry
|
|
106
|
+
// write so a malformed/absent body can never cost the reaper its record of a live container.
|
|
107
|
+
return readRunnerDispatchAck(await safeJson(res));
|
|
101
108
|
}
|
|
102
109
|
async poll(ref) {
|
|
103
110
|
// The per-run container is the Durable Object addressed by the run id; its DO id is
|
|
@@ -163,6 +170,55 @@ export class CloudflareContainerTransport {
|
|
|
163
170
|
const stub = this.namespace.get(this.namespace.idFromName(ref.runId));
|
|
164
171
|
await stub.shutdown();
|
|
165
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Stop ONE job and confirm it. Always answers `stopped`, because this backend owns the container
|
|
175
|
+
* the job runs in: the graceful path asks the harness to abort that job and wait for it to
|
|
176
|
+
* settle, and anything else escalates to reclaiming the container, which stops everything inside
|
|
177
|
+
* it.
|
|
178
|
+
*
|
|
179
|
+
* Escalating is right here and only here. A per-run container serves ONE run, and the caller
|
|
180
|
+
* that reaches for this has already failed the run, so there is no sibling step left to protect;
|
|
181
|
+
* what the escalation buys is the difference between telling a human "the agent is stopped" and
|
|
182
|
+
* telling them to go and look.
|
|
183
|
+
*/
|
|
184
|
+
async stopJob(ref) {
|
|
185
|
+
const stub = this.namespace.get(this.namespace.idFromName(ref.runId));
|
|
186
|
+
try {
|
|
187
|
+
const res = await stub.fetch(`http://container/jobs/${encodeURIComponent(ref.jobId)}`, {
|
|
188
|
+
method: 'DELETE',
|
|
189
|
+
headers: this.secretHeader(),
|
|
190
|
+
signal: AbortSignal.timeout(STOP_TIMEOUT_MS),
|
|
191
|
+
});
|
|
192
|
+
// A 404 is not a stop: the container may simply have been recreated under the same DO name,
|
|
193
|
+
// in which case nothing here has been asked to stop anything. Fall through to the reclaim.
|
|
194
|
+
if (res.ok) {
|
|
195
|
+
const body = (await safeJson(res));
|
|
196
|
+
if (body?.state !== 'running')
|
|
197
|
+
return 'stopped';
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
// A drained/rolled-out container throws rather than answering; its job is gone with it, so
|
|
202
|
+
// that IS the stop. Anything else falls through to the reclaim below.
|
|
203
|
+
if (isRolloutSignal(error))
|
|
204
|
+
return 'stopped';
|
|
205
|
+
}
|
|
206
|
+
await this.release(ref);
|
|
207
|
+
return 'stopped';
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* The acceptance body as JSON, or undefined for anything unreadable. Never throws: the job is
|
|
212
|
+
* already accepted by the time this runs, so a body this transport cannot parse must degrade to
|
|
213
|
+
* "no handshake" (which the dispatch site reads as unknown) rather than fail a live dispatch.
|
|
214
|
+
*/
|
|
215
|
+
async function safeJson(res) {
|
|
216
|
+
try {
|
|
217
|
+
return await res.json();
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
166
222
|
}
|
|
167
223
|
async function safeText(res) {
|
|
168
224
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudflareContainerTransport.js","sourceRoot":"","sources":["../../../src/infrastructure/containers/CloudflareContainerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"CloudflareContainerTransport.js","sourceRoot":"","sources":["../../../src/infrastructure/containers/CloudflareContainerTransport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.162.0",
|
|
4
4
|
"description": "Reusable Cloudflare Worker library (Hono + D1) exposing the Agent Architecture Board core: the `createApp()` Hono factory, the default fetch/scheduled/queue handler, and the Durable Object + Workflow classes. Deployments (see deploy/backend) supply the wrangler.toml + config and re-export these.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -43,22 +43,22 @@
|
|
|
43
43
|
"pino": "^10.3.1",
|
|
44
44
|
"valibot": "^1.4.2",
|
|
45
45
|
"workers-ai-provider": "^4.0.0",
|
|
46
|
-
"@cat-factory/agents": "0.114.
|
|
47
|
-
"@cat-factory/caching": "0.15.
|
|
48
|
-
"@cat-factory/consensus": "0.14.
|
|
49
|
-
"@cat-factory/contracts": "0.
|
|
50
|
-
"@cat-factory/eks": "0.1.
|
|
51
|
-
"@cat-factory/gates": "0.9.
|
|
52
|
-
"@cat-factory/gitlab": "0.16.
|
|
53
|
-
"@cat-factory/
|
|
54
|
-
"@cat-factory/
|
|
55
|
-
"@cat-factory/
|
|
56
|
-
"@cat-factory/observability-otel": "0.
|
|
57
|
-
"@cat-factory/orchestration": "0.
|
|
58
|
-
"@cat-factory/prompt-fragments": "0.15.
|
|
59
|
-
"@cat-factory/provider-cloudflare": "0.7.
|
|
60
|
-
"@cat-factory/server": "0.
|
|
61
|
-
"@cat-factory/spend": "0.15.
|
|
46
|
+
"@cat-factory/agents": "0.114.4",
|
|
47
|
+
"@cat-factory/caching": "0.15.4",
|
|
48
|
+
"@cat-factory/consensus": "0.14.32",
|
|
49
|
+
"@cat-factory/contracts": "0.251.0",
|
|
50
|
+
"@cat-factory/eks": "0.1.244",
|
|
51
|
+
"@cat-factory/gates": "0.9.11",
|
|
52
|
+
"@cat-factory/gitlab": "0.16.3",
|
|
53
|
+
"@cat-factory/kernel": "0.249.0",
|
|
54
|
+
"@cat-factory/observability-langfuse": "0.10.16",
|
|
55
|
+
"@cat-factory/integrations": "0.136.0",
|
|
56
|
+
"@cat-factory/observability-otel": "0.14.0",
|
|
57
|
+
"@cat-factory/orchestration": "0.218.0",
|
|
58
|
+
"@cat-factory/prompt-fragments": "0.15.77",
|
|
59
|
+
"@cat-factory/provider-cloudflare": "0.7.394",
|
|
60
|
+
"@cat-factory/server": "0.229.0",
|
|
61
|
+
"@cat-factory/spend": "0.15.14"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@cloudflare/vitest-pool-workers": "^0.20.1",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"typescript": "7.0.2",
|
|
67
67
|
"vitest": "^4.1.10",
|
|
68
68
|
"wrangler": "^4.118.0",
|
|
69
|
-
"@cat-factory/conformance": "0.31.
|
|
69
|
+
"@cat-factory/conformance": "0.31.7"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"build": "tsc -b tsconfig.build.json",
|