@cat-factory/local-server 0.134.0 → 0.136.1
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/LocalContainerRunnerTransport.d.ts +22 -0
- package/dist/LocalContainerRunnerTransport.d.ts.map +1 -1
- package/dist/LocalContainerRunnerTransport.js +107 -25
- package/dist/LocalContainerRunnerTransport.js.map +1 -1
- package/dist/LocalPreviewTransport.js +3 -3
- package/dist/LocalPreviewTransport.js.map +1 -1
- package/dist/harnessImage.d.ts +19 -1
- package/dist/harnessImage.d.ts.map +1 -1
- package/dist/harnessImage.js +21 -1
- package/dist/harnessImage.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/mothershipRegistrations.d.ts +20 -0
- package/dist/mothershipRegistrations.d.ts.map +1 -0
- package/dist/mothershipRegistrations.js +32 -0
- package/dist/mothershipRegistrations.js.map +1 -0
- package/dist/runtimes/appleContainerRuntime.d.ts +21 -4
- package/dist/runtimes/appleContainerRuntime.d.ts.map +1 -1
- package/dist/runtimes/appleContainerRuntime.js +46 -15
- package/dist/runtimes/appleContainerRuntime.js.map +1 -1
- package/dist/runtimes/containerRuntime.d.ts +26 -14
- package/dist/runtimes/containerRuntime.d.ts.map +1 -1
- package/dist/runtimes/containerRuntime.js.map +1 -1
- package/dist/runtimes/dockerRuntime.d.ts +3 -3
- package/dist/runtimes/dockerRuntime.d.ts.map +1 -1
- package/dist/runtimes/dockerRuntime.js +22 -16
- package/dist/runtimes/dockerRuntime.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -7
- package/dist/server.js.map +1 -1
- package/package.json +14 -13
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { PipelineRegistry, defaultPipelineRegistry } from '@cat-factory/kernel';
|
|
|
14
14
|
export { TaskTypeRegistry, defaultTaskTypeRegistry } from '@cat-factory/kernel';
|
|
15
15
|
export { FoundationalServiceRegistry, type FoundationalServiceDefinition, defaultFoundationalServiceRegistry, } from '@cat-factory/kernel';
|
|
16
16
|
export { BinaryGeneratorRegistry, type BinaryGeneratorDefinition, defaultBinaryGeneratorRegistry, } from '@cat-factory/kernel';
|
|
17
|
+
export { BUILTIN_BINARY_GENERATORS, type BinaryGeneratorEntry, type BinaryGeneratorInput, NANO_BANANA_CREDENTIAL_KEY, NANO_BANANA_GENERATOR_ID, binaryGeneratorRegistryWithBuiltins, defineBinaryGenerator, openApiContract, registerBuiltinBinaryGenerators, } from '@cat-factory/binary-generators';
|
|
17
18
|
export { BinaryStoreRegistry, BinaryStoreRegistrationError, type BinaryStoreContext, type BinaryStoreDefinition, type BinaryStoreView, type BinaryBlobBackend, defaultBinaryStoreRegistry, } from '@cat-factory/kernel';
|
|
18
19
|
export { GateRegistry, defaultGateRegistry, type GateDefinition, type GateRegistration, type GateFactory, type GateProbe, type GateContext, type GateConfigFields, StepResolverRegistry, defaultStepResolverRegistry, type StepCompletionResolver, type StepResolverFactory, type StepResolution, type StepResolverContext, type ResolverContext, } from '@cat-factory/kernel';
|
|
19
20
|
export { gateRegistryWithBuiltins } from '@cat-factory/node-server';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,KAAK,oCAAoC,GAC1C,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/E,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAO7E,OAAO,EAAE,0BAA0B,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAInG,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAA;AAK5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,KAAK,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAIjG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAK/E,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAM/E,OAAO,EACL,2BAA2B,EAC3B,KAAK,6BAA6B,EAClC,kCAAkC,GACnC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -53,14 +53,20 @@ export { TaskTypeRegistry, defaultTaskTypeRegistry } from '@cat-factory/kernel';
|
|
|
53
53
|
// its first request. See backend/docs/adr/0031-foundational-services.md.
|
|
54
54
|
export { FoundationalServiceRegistry, defaultFoundationalServiceRegistry, } from '@cat-factory/kernel';
|
|
55
55
|
// Installation-level extension point for GENERATIVE BINARY INTEGRATIONS (the same DI seam once
|
|
56
|
-
// more): a deployment news a `
|
|
56
|
+
// more): a deployment news a `binaryGeneratorRegistryWithBuiltins()`, registers the image / music /
|
|
57
57
|
// video generation APIs it pays for on it, and passes it via the `binaryGeneratorRegistry`
|
|
58
58
|
// option. A pipeline step whose kind carries the `binary-output` trait then SELECTS from them
|
|
59
59
|
// (`stepOptions.binaryOutput.generatorIds`), and the engine briefs the agent on each one's
|
|
60
60
|
// content types, contract and credential variable. In MOTHERSHIP mode register them on the
|
|
61
61
|
// MOTHERSHIP's entry point rather than here: a run resolves the set from there (it is what the
|
|
62
62
|
// builder's picker offered), and this node's copy would only ever be the stale one.
|
|
63
|
+
//
|
|
64
|
+
// A bare `defaultBinaryGeneratorRegistry()` is EMPTY, and the shipped `pl_media` preset SELECTS
|
|
65
|
+
// `nano-banana`, so injecting one refuses that pipeline's runs at admission rather than degrading.
|
|
66
|
+
// Start from the built-ins and register onto the same instance unless dropping the shipped
|
|
67
|
+
// integration is the intent.
|
|
63
68
|
export { BinaryGeneratorRegistry, defaultBinaryGeneratorRegistry, } from '@cat-factory/kernel';
|
|
69
|
+
export { BUILTIN_BINARY_GENERATORS, NANO_BANANA_CREDENTIAL_KEY, NANO_BANANA_GENERATOR_ID, binaryGeneratorRegistryWithBuiltins, defineBinaryGenerator, openApiContract, registerBuiltinBinaryGenerators, } from '@cat-factory/binary-generators';
|
|
64
70
|
// Installation-level extension point for the deployment's OWN BINARY ARTIFACT STORES (parity with
|
|
65
71
|
// the Node facade): a deployment news a `defaultBinaryStoreRegistry()`, registers stores
|
|
66
72
|
// implementing the `BinaryBlobBackend` port on it, and passes it via the `binaryStoreRegistry`
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kFAAkF;AAClF,iFAAiF;AACjF,sFAAsF;AACtF,yEAAyE;AACzE,gFAAgF;AAChF,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,GAErC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAIL,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,qBAAqB,CAAA;AAC5B,qFAAqF;AACrF,gFAAgF;AAChF,sEAAsE;AACtE,OAAO,EAAE,QAAQ,EAAyC,MAAM,eAAe,CAAA;AAC/E,6EAA6E;AAC7E,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAE7E,0FAA0F;AAC1F,sFAAsF;AACtF,wFAAwF;AACxF,wFAAwF;AACxF,qCAAqC;AACrC,OAAO,EAAE,0BAA0B,EAA6B,MAAM,6BAA6B,CAAA;AACnG,sFAAsF;AACtF,mGAAmG;AACnG,uEAAuE;AACvE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,iBAAiB,CAAA;AAExB,2FAA2F;AAC3F,8FAA8F;AAC9F,4FAA4F;AAC5F,0FAA0F;AAC1F,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAEzB,MAAM,qBAAqB,CAAA;AAC5B,gGAAgG;AAChG,mGAAmG;AACnG,qGAAqG;AACrG,mFAAmF;AACnF,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAqC,MAAM,qBAAqB,CAAA;AACjG,iGAAiG;AACjG,mGAAmG;AACnG,qGAAqG;AACrG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC/E,8FAA8F;AAC9F,kGAAkG;AAClG,4FAA4F;AAC5F,4EAA4E;AAC5E,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC/E,2FAA2F;AAC3F,kGAAkG;AAClG,mGAAmG;AACnG,iGAAiG;AACjG,yEAAyE;AACzE,OAAO,EACL,2BAA2B,EAE3B,kCAAkC,GACnC,MAAM,qBAAqB,CAAA;AAC5B,+FAA+F;AAC/F
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ids of what THIS deployment registered on a code-owned registry, given everything registered
|
|
3
|
+
* and the definitions the PLATFORM ships.
|
|
4
|
+
*
|
|
5
|
+
* The shipped ones are subtracted rather than reported, because they are not something the
|
|
6
|
+
* deployment wired: every facade seeds these registries with the platform's own set, so naming them
|
|
7
|
+
* would fire the warning on every mothership-mode boot and tell an operator to undo a registration
|
|
8
|
+
* they never made.
|
|
9
|
+
*
|
|
10
|
+
* Subtracted by IDENTITY, never by id. A deployment that replaces a shipped id with its own
|
|
11
|
+
* definition is precisely the case the warning exists for: the replacement is as inert on a node as
|
|
12
|
+
* a brand-new registration is, and an id test would call it a built-in and stay silent. Identity
|
|
13
|
+
* answers it because the shipped definitions are shared, frozen constants
|
|
14
|
+
* (`PLATFORM_FOUNDATIONAL_SERVICES`, `BUILTIN_BINARY_GENERATORS`), so a definition that is not one
|
|
15
|
+
* of those objects came from the deployment's own code by construction.
|
|
16
|
+
*/
|
|
17
|
+
export declare function deploymentRegisteredIds<T extends {
|
|
18
|
+
id: string;
|
|
19
|
+
}>(registered: readonly T[], shipped: readonly T[]): string[];
|
|
20
|
+
//# sourceMappingURL=mothershipRegistrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mothershipRegistrations.d.ts","sourceRoot":"","sources":["../src/mothershipRegistrations.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9D,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,OAAO,EAAE,SAAS,CAAC,EAAE,GACpB,MAAM,EAAE,CAGV"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// What a mothership-mode boot has to say about the registries THIS node owns in code.
|
|
2
|
+
//
|
|
3
|
+
// A mothership deployment is two processes, and a node one build behind is the normal state of
|
|
4
|
+
// running one, so the org-scoped registries (the foundational-service estate, the generative binary
|
|
5
|
+
// integrations) are resolved from the MOTHERSHIP and a node consults no copy of its own. Anything
|
|
6
|
+
// registered here is therefore inert, which is worth one boot line naming the ids: the shape a
|
|
7
|
+
// deployment written before those sets crossed the machine API has is a registration on BOTH entry
|
|
8
|
+
// points, and it reads like deliberate wiring rather than the workaround it was.
|
|
9
|
+
//
|
|
10
|
+
// The line is only worth printing about what a deployment can act on, which is what this module
|
|
11
|
+
// exists to decide.
|
|
12
|
+
/**
|
|
13
|
+
* The ids of what THIS deployment registered on a code-owned registry, given everything registered
|
|
14
|
+
* and the definitions the PLATFORM ships.
|
|
15
|
+
*
|
|
16
|
+
* The shipped ones are subtracted rather than reported, because they are not something the
|
|
17
|
+
* deployment wired: every facade seeds these registries with the platform's own set, so naming them
|
|
18
|
+
* would fire the warning on every mothership-mode boot and tell an operator to undo a registration
|
|
19
|
+
* they never made.
|
|
20
|
+
*
|
|
21
|
+
* Subtracted by IDENTITY, never by id. A deployment that replaces a shipped id with its own
|
|
22
|
+
* definition is precisely the case the warning exists for: the replacement is as inert on a node as
|
|
23
|
+
* a brand-new registration is, and an id test would call it a built-in and stay silent. Identity
|
|
24
|
+
* answers it because the shipped definitions are shared, frozen constants
|
|
25
|
+
* (`PLATFORM_FOUNDATIONAL_SERVICES`, `BUILTIN_BINARY_GENERATORS`), so a definition that is not one
|
|
26
|
+
* of those objects came from the deployment's own code by construction.
|
|
27
|
+
*/
|
|
28
|
+
export function deploymentRegisteredIds(registered, shipped) {
|
|
29
|
+
const platform = new Set(shipped);
|
|
30
|
+
return registered.filter((definition) => !platform.has(definition)).map((d) => d.id);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=mothershipRegistrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mothershipRegistrations.js","sourceRoot":"","sources":["../src/mothershipRegistrations.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,+FAA+F;AAC/F,oGAAoG;AACpG,kGAAkG;AAClG,+FAA+F;AAC/F,mGAAmG;AACnG,iFAAiF;AACjF,EAAE;AACF,gGAAgG;AAChG,oBAAoB;AAEpB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAwB,EACxB,OAAqB;IAErB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAU,OAAO,CAAC,CAAA;IAC1C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACtF,CAAC"}
|
|
@@ -22,23 +22,40 @@ export declare class AppleContainerRuntimeAdapter implements ContainerRuntimeAda
|
|
|
22
22
|
hostAlias: string;
|
|
23
23
|
installId: string;
|
|
24
24
|
});
|
|
25
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* The deterministic container name (== id) for a CONTAINER KEY, scoped to this installation.
|
|
27
|
+
*
|
|
28
|
+
* The key is `<variant>:<runId>` for a non-default executor image, and `:` is not a legal
|
|
29
|
+
* container-name character — so the variant is re-encoded with a `.` rather than left to the
|
|
30
|
+
* sanitiser below. Sanitising it would map `ui:run-1` onto `ui-run-1`, which
|
|
31
|
+
* {@link listRunContainers} cannot tell from a run genuinely called `ui-run-1`: the orphan
|
|
32
|
+
* sweep then asks about a run that does not exist, finds nothing, and deletes a live UI-tester
|
|
33
|
+
* container mid-step. `.` round-trips because a run id uses `[a-zA-Z0-9_]` only.
|
|
34
|
+
*/
|
|
26
35
|
private runName;
|
|
36
|
+
/**
|
|
37
|
+
* The inverse of {@link runName}: the container key a managed container's name encodes.
|
|
38
|
+
*
|
|
39
|
+
* A leading `<variant>.` segment is decoded back to the `<variant>:` prefix
|
|
40
|
+
* `containerKeyForRef` produced, and ONLY when it names a variant this build knows — a run id
|
|
41
|
+
* that happened to contain a dot is left whole rather than split at it.
|
|
42
|
+
*/
|
|
43
|
+
private containerKeyFromName;
|
|
27
44
|
/** Whether a listed container is one THIS install manages (matched on either the id or the name). */
|
|
28
45
|
private isManaged;
|
|
29
46
|
run(exec: ContainerExec, spec: RunContainerSpec): Promise<string>;
|
|
30
|
-
find(exec: ContainerExec,
|
|
47
|
+
find(exec: ContainerExec, containerKey: string): Promise<string | undefined>;
|
|
31
48
|
endpoint(exec: ContainerExec, containerId: string, inContainerPort?: number): Promise<ContainerEndpoint | undefined>;
|
|
32
49
|
isRunning(exec: ContainerExec, containerId: string): Promise<boolean>;
|
|
33
50
|
exitState(exec: ContainerExec, containerId: string): Promise<ContainerExitState | undefined>;
|
|
34
51
|
logs(exec: ContainerExec, containerId: string): Promise<string>;
|
|
35
52
|
remove(exec: ContainerExec, containerId: string): Promise<void>;
|
|
36
|
-
removeRun(exec: ContainerExec,
|
|
53
|
+
removeRun(exec: ContainerExec, containerKey: string): Promise<void>;
|
|
37
54
|
reapExited(exec: ContainerExec): Promise<number>;
|
|
38
55
|
/** Apple `container` doesn't support the warm pool (see capabilities.pooling=false). */
|
|
39
56
|
listPoolMembers(): Promise<string[]>;
|
|
40
57
|
listRunContainers(exec: ContainerExec): Promise<Array<{
|
|
41
|
-
|
|
58
|
+
containerKey: string;
|
|
42
59
|
containerId: string;
|
|
43
60
|
}>>;
|
|
44
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appleContainerRuntime.d.ts","sourceRoot":"","sources":["../../src/runtimes/appleContainerRuntime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appleContainerRuntime.d.ts","sourceRoot":"","sources":["../../src/runtimes/appleContainerRuntime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAG5B,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAgH9B,qBAAa,4BAA6B,YAAW,uBAAuB;IAC1E,QAAQ,CAAC,EAAE,EAAG,OAAO,CAAS;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAG1B,QAAQ,CAAC,oBAAoB,SAAQ;IAIrC,QAAQ,CAAC,YAAY;QAAK,SAAS;QAAS,OAAO;MAAS;IAE5D;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC,YAAY,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAK7E;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAO;IAQf;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAU5B,qGAAqG;IACrG,OAAO,CAAC,SAAS;IAIX,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtE;IAEK,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQjF;IAEK,QAAQ,CACZ,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,MAAqB,GACrC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAWxC;IAEK,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM1E;IAEK,SAAS,CACb,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAWzC;IAEK,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQpE;IAEK,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;IAEK,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE;IAEK,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAYrD;IAED,wFAAwF;IAClF,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEzC;IAEK,iBAAiB,CACrB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAiB/D;CACF"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { isRunnerImageVariant, parseContainerKey } from '@cat-factory/kernel';
|
|
1
2
|
import { formatContainerLogs, HARNESS_PORT, } from './containerRuntime.js';
|
|
2
3
|
// The Apple `container` adapter (macOS Containerization framework). It diverges from the
|
|
3
4
|
// Docker CLI in three ways that the seam absorbs:
|
|
4
5
|
// 1. Verbs: `container run | list | inspect | delete` (no `ps`/`rm`, no `--filter`,
|
|
5
6
|
// no `inspect -f` template) — so we list-all + filter client-side and parse JSON.
|
|
6
|
-
// 2. Identity: `--name` IS the container id, so a
|
|
7
|
-
// name (`cf-<
|
|
7
|
+
// 2. Identity: `--name` IS the container id, so a container is addressed by a deterministic
|
|
8
|
+
// name (`cf-<installId>-<containerKey>`); a managed label marks ours for reaping.
|
|
8
9
|
// 3. Networking: each container runs in its own VM with its own IP — there is no
|
|
9
10
|
// published-port-on-loopback, so the orchestrator connects to `<containerIP>:8080`
|
|
10
11
|
// directly (read from `container inspect`). There is no Docker-in-Docker, so
|
|
@@ -132,18 +133,46 @@ export class AppleContainerRuntimeAdapter {
|
|
|
132
133
|
this.installId = options.installId;
|
|
133
134
|
this.namePrefix = `${NAME_PREFIX}${options.installId}-`;
|
|
134
135
|
}
|
|
135
|
-
/**
|
|
136
|
-
|
|
136
|
+
/**
|
|
137
|
+
* The deterministic container name (== id) for a CONTAINER KEY, scoped to this installation.
|
|
138
|
+
*
|
|
139
|
+
* The key is `<variant>:<runId>` for a non-default executor image, and `:` is not a legal
|
|
140
|
+
* container-name character — so the variant is re-encoded with a `.` rather than left to the
|
|
141
|
+
* sanitiser below. Sanitising it would map `ui:run-1` onto `ui-run-1`, which
|
|
142
|
+
* {@link listRunContainers} cannot tell from a run genuinely called `ui-run-1`: the orphan
|
|
143
|
+
* sweep then asks about a run that does not exist, finds nothing, and deletes a live UI-tester
|
|
144
|
+
* container mid-step. `.` round-trips because a run id uses `[a-zA-Z0-9_]` only.
|
|
145
|
+
*/
|
|
146
|
+
runName(containerKey) {
|
|
147
|
+
const { runId, image } = parseContainerKey(containerKey);
|
|
137
148
|
// Container names allow [a-zA-Z0-9][a-zA-Z0-9_.-]*; run ids are already in that set,
|
|
138
149
|
// but sanitise defensively so an unusual id can't produce an invalid name.
|
|
139
|
-
|
|
150
|
+
const sanitised = runId.replace(/[^a-zA-Z0-9_.-]/g, '-');
|
|
151
|
+
return `${this.namePrefix}${image ? `${image}.${sanitised}` : sanitised}`;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The inverse of {@link runName}: the container key a managed container's name encodes.
|
|
155
|
+
*
|
|
156
|
+
* A leading `<variant>.` segment is decoded back to the `<variant>:` prefix
|
|
157
|
+
* `containerKeyForRef` produced, and ONLY when it names a variant this build knows — a run id
|
|
158
|
+
* that happened to contain a dot is left whole rather than split at it.
|
|
159
|
+
*/
|
|
160
|
+
containerKeyFromName(name) {
|
|
161
|
+
const rest = name.slice(this.namePrefix.length);
|
|
162
|
+
const dot = rest.indexOf('.');
|
|
163
|
+
if (dot <= 0)
|
|
164
|
+
return rest;
|
|
165
|
+
const prefix = rest.slice(0, dot);
|
|
166
|
+
return isRunnerImageVariant(prefix) && prefix !== 'default'
|
|
167
|
+
? `${prefix}:${rest.slice(dot + 1)}`
|
|
168
|
+
: rest;
|
|
140
169
|
}
|
|
141
170
|
/** Whether a listed container is one THIS install manages (matched on either the id or the name). */
|
|
142
171
|
isManaged(row) {
|
|
143
172
|
return row.id.startsWith(this.namePrefix) || (row.name?.startsWith(this.namePrefix) ?? false);
|
|
144
173
|
}
|
|
145
174
|
async run(exec, spec) {
|
|
146
|
-
const name = this.runName(spec.
|
|
175
|
+
const name = this.runName(spec.containerKey);
|
|
147
176
|
const args = [
|
|
148
177
|
'run',
|
|
149
178
|
'-d',
|
|
@@ -168,8 +197,8 @@ export class AppleContainerRuntimeAdapter {
|
|
|
168
197
|
// The name IS the container id; the transport addresses everything by it.
|
|
169
198
|
return name;
|
|
170
199
|
}
|
|
171
|
-
async find(exec,
|
|
172
|
-
const name = this.runName(
|
|
200
|
+
async find(exec, containerKey) {
|
|
201
|
+
const name = this.runName(containerKey);
|
|
173
202
|
const rows = parseList((await exec(['list', '--all', '--format', 'json'])).stdout);
|
|
174
203
|
// The deterministic name is the addressable handle (inspect/delete accept it). Match it
|
|
175
204
|
// against either the `id` or the `name` field, since `container list`'s `id` may be a
|
|
@@ -226,8 +255,8 @@ export class AppleContainerRuntimeAdapter {
|
|
|
226
255
|
async remove(exec, containerId) {
|
|
227
256
|
await exec(['delete', '--force', containerId]).catch(() => undefined);
|
|
228
257
|
}
|
|
229
|
-
async removeRun(exec,
|
|
230
|
-
await this.remove(exec, this.runName(
|
|
258
|
+
async removeRun(exec, containerKey) {
|
|
259
|
+
await this.remove(exec, this.runName(containerKey));
|
|
231
260
|
}
|
|
232
261
|
async reapExited(exec) {
|
|
233
262
|
// Reap only managed containers in a recognised TERMINAL state — never one whose status
|
|
@@ -246,17 +275,19 @@ export class AppleContainerRuntimeAdapter {
|
|
|
246
275
|
}
|
|
247
276
|
async listRunContainers(exec) {
|
|
248
277
|
// Running (non-terminal) managed VMs for THIS install. The deterministic name IS
|
|
249
|
-
// `cf-<installId>-<
|
|
250
|
-
//
|
|
251
|
-
//
|
|
278
|
+
// `cf-<installId>-<containerKey>` with the key's variant separator re-encoded, so
|
|
279
|
+
// `containerKeyFromName` recovers exactly what `runName` was given. Pooling is unsupported
|
|
280
|
+
// here, so every managed container is a per-run one. The port's `runId` field carries the
|
|
281
|
+
// CONTAINER KEY (the transport maps it back to a run); a lossy recovery here is what makes
|
|
282
|
+
// the orphan sweep delete a live container, so the two functions are exact inverses.
|
|
252
283
|
const rows = parseList((await exec(['list', '--all', '--format', 'json'])).stdout).filter((r) => this.isManaged(r) && !TERMINAL_STATUSES.has(r.status));
|
|
253
284
|
return rows
|
|
254
285
|
.map((r) => {
|
|
255
286
|
const handle = r.name ?? r.id;
|
|
256
287
|
const named = handle.startsWith(this.namePrefix) ? handle : (r.id ?? handle);
|
|
257
|
-
return {
|
|
288
|
+
return { containerKey: this.containerKeyFromName(named), containerId: handle };
|
|
258
289
|
})
|
|
259
|
-
.filter((c) => c.
|
|
290
|
+
.filter((c) => c.containerKey && c.containerId);
|
|
260
291
|
}
|
|
261
292
|
}
|
|
262
293
|
//# sourceMappingURL=appleContainerRuntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appleContainerRuntime.js","sourceRoot":"","sources":["../../src/runtimes/appleContainerRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,mBAAmB,EACnB,YAAY,GAEb,MAAM,uBAAuB,CAAA;AAE9B,yFAAyF;AACzF,kDAAkD;AAClD,sFAAsF;AACtF,uFAAuF;AACvF,
|
|
1
|
+
{"version":3,"file":"appleContainerRuntime.js","sourceRoot":"","sources":["../../src/runtimes/appleContainerRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,12 +67,19 @@ export interface RuntimeCapabilities {
|
|
|
67
67
|
/** A container to start — per-run, or a reusable POOL member when `pool` is set. */
|
|
68
68
|
export interface RunContainerSpec {
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
70
|
+
* The container's IDENTITY within this install (its name and/or label). For an ordinary
|
|
71
|
+
* per-run container this is the run id; for a step on a non-default executor image it is
|
|
72
|
+
* kernel's variant-qualified `containerKeyForRef` key, since such a step gets its OWN
|
|
73
|
+
* container beside the run's. For a POOL member it is a synthetic member id used only for
|
|
74
|
+
* the container name — the member is NOT labelled with it (lease state lives in the
|
|
75
|
+
* transport), so a label lookup never finds it; the transport tracks
|
|
76
|
+
* `containerId → {repo, leasedTo}` in-process instead.
|
|
77
|
+
*
|
|
78
|
+
* Named for what it IS rather than `runId`, because an adapter that reads it as a run id
|
|
79
|
+
* writes an encoding it cannot reverse: that is how the Apple adapter's name sanitiser came
|
|
80
|
+
* to fold `ui:<runId>` onto a name the orphan sweep then read as a dead run.
|
|
74
81
|
*/
|
|
75
|
-
|
|
82
|
+
containerKey: string;
|
|
76
83
|
image: string;
|
|
77
84
|
sharedSecret: string;
|
|
78
85
|
/** Run privileged (only the Tester `test` kind, only when the runtime supports DinD). */
|
|
@@ -132,8 +139,8 @@ export interface ContainerRuntimeAdapter {
|
|
|
132
139
|
readonly publishesToLocalhost: boolean;
|
|
133
140
|
/** Start a per-run container detached; resolves to its container id/name. */
|
|
134
141
|
run(exec: ContainerExec, spec: RunContainerSpec): Promise<string>;
|
|
135
|
-
/** The (running-or-exited) container for a
|
|
136
|
-
find(exec: ContainerExec,
|
|
142
|
+
/** The (running-or-exited) container for a {@link RunContainerSpec.containerKey}, if any. */
|
|
143
|
+
find(exec: ContainerExec, containerKey: string): Promise<string | undefined>;
|
|
137
144
|
/**
|
|
138
145
|
* The host+port the orchestrator should connect to reach the container's `inContainerPort`
|
|
139
146
|
* (default {@link HARNESS_PORT}), or undefined if not ready. The preview transport passes the
|
|
@@ -179,8 +186,8 @@ export interface ContainerRuntimeAdapter {
|
|
|
179
186
|
logs(exec: ContainerExec, containerId: string): Promise<string>;
|
|
180
187
|
/** Force-remove a single container (idempotent). */
|
|
181
188
|
remove(exec: ContainerExec, containerId: string): Promise<void>;
|
|
182
|
-
/** Force-remove every container
|
|
183
|
-
removeRun(exec: ContainerExec,
|
|
189
|
+
/** Force-remove every container under a container key (idempotent). */
|
|
190
|
+
removeRun(exec: ContainerExec, containerKey: string): Promise<void>;
|
|
184
191
|
/** Reap exited managed containers left by crashes; resolves to the count removed. */
|
|
185
192
|
reapExited(exec: ContainerExec): Promise<number>;
|
|
186
193
|
/**
|
|
@@ -190,13 +197,18 @@ export interface ContainerRuntimeAdapter {
|
|
|
190
197
|
*/
|
|
191
198
|
listPoolMembers(exec: ContainerExec): Promise<string[]>;
|
|
192
199
|
/**
|
|
193
|
-
* Every managed, still-RUNNING per-run container this runtime holds, tagged by
|
|
194
|
-
*
|
|
195
|
-
* `release()` never ran because the previous
|
|
196
|
-
* by {@link reapExited}; this covers the ones still
|
|
200
|
+
* Every managed, still-RUNNING per-run container this runtime holds, tagged by the
|
|
201
|
+
* {@link RunContainerSpec.containerKey} it was started under. Used at boot to reap containers
|
|
202
|
+
* whose run has since gone terminal/away (their `release()` never ran because the previous
|
|
203
|
+
* process crashed). Exited ones are handled by {@link reapExited}; this covers the ones still
|
|
204
|
+
* up.
|
|
205
|
+
*
|
|
206
|
+
* The key must round-trip EXACTLY: the caller maps it back to a run to ask whether that run is
|
|
207
|
+
* still live, so an adapter that cannot recover what it was given reports a live container's
|
|
208
|
+
* run as unknown and the sweep deletes it mid-step.
|
|
197
209
|
*/
|
|
198
210
|
listRunContainers(exec: ContainerExec): Promise<Array<{
|
|
199
|
-
|
|
211
|
+
containerKey: string;
|
|
200
212
|
containerId: string;
|
|
201
213
|
}>>;
|
|
202
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../../src/runtimes/containerRuntime.ts"],"names":[],"mappings":"AAcA,6DAA6D;AAC7D,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAA;AAE5C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAO9F;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;OAOG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B
|
|
1
|
+
{"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../../src/runtimes/containerRuntime.ts"],"names":[],"mappings":"AAcA,6DAA6D;AAC7D,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAA;AAE5C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAO9F;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;OAOG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,yFAAyF;IACzF,UAAU,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,8EAA8E;IAC9E,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC3D;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;;;;;OASG;IACH,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IAEtC,6EAA6E;IAC7E,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACjE,6FAA6F;IAC7F,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CACN,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;IACzC,kDAAkD;IAClD,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAA;IAC5F;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/D,oDAAoD;IACpD,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,uEAAuE;IACvE,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,qFAAqF;IACrF,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACvD;;;;;;;;;;OAUG;IACH,iBAAiB,CACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CACjE;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE7E,8FAA8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,SAAS,CAAA;IACb,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,cAAc,EAAE,OAAO,CAAA;IACvB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAA;CAC3B;AAmED,uFAAuF;AACvF,eAAO,MAAM,WAAW,EAA4B,SAAS,EAAE,CAAA;AAE/D,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,cAAc,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAIlE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAI/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAO/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerRuntime.js","sourceRoot":"","sources":["../../src/runtimes/containerRuntime.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,oFAAoF;AACpF,gFAAgF;AAChF,sFAAsF;AACtF,wFAAwF;AACxF,uFAAuF;AACvF,EAAE;AACF,kFAAkF;AAClF,+EAA+E;AAC/E,6DAA6D;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAA;AAKhC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAA;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,MAAc,EAAE,SAAkB;IACpF,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAClF,OAAO,sBAAsB,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAA;AACrE,CAAC;
|
|
1
|
+
{"version":3,"file":"containerRuntime.js","sourceRoot":"","sources":["../../src/runtimes/containerRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,17 +26,17 @@ export declare class DockerRuntimeAdapter implements ContainerRuntimeAdapter {
|
|
|
26
26
|
/** The `--filter` pair scoping a daemon-wide enumeration to THIS install's containers. */
|
|
27
27
|
private installFilter;
|
|
28
28
|
run(exec: ContainerExec, spec: RunContainerSpec): Promise<string>;
|
|
29
|
-
find(exec: ContainerExec,
|
|
29
|
+
find(exec: ContainerExec, containerKey: string): Promise<string | undefined>;
|
|
30
30
|
endpoint(exec: ContainerExec, containerId: string, inContainerPort?: number): Promise<ContainerEndpoint | undefined>;
|
|
31
31
|
isRunning(exec: ContainerExec, containerId: string): Promise<boolean>;
|
|
32
32
|
exitState(exec: ContainerExec, containerId: string): Promise<ContainerExitState | undefined>;
|
|
33
33
|
logs(exec: ContainerExec, containerId: string): Promise<string>;
|
|
34
34
|
remove(exec: ContainerExec, containerId: string): Promise<void>;
|
|
35
|
-
removeRun(exec: ContainerExec,
|
|
35
|
+
removeRun(exec: ContainerExec, containerKey: string): Promise<void>;
|
|
36
36
|
reapExited(exec: ContainerExec): Promise<number>;
|
|
37
37
|
listPoolMembers(exec: ContainerExec): Promise<string[]>;
|
|
38
38
|
listRunContainers(exec: ContainerExec): Promise<Array<{
|
|
39
|
-
|
|
39
|
+
containerKey: string;
|
|
40
40
|
containerId: string;
|
|
41
41
|
}>>;
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockerRuntime.d.ts","sourceRoot":"","sources":["../../src/runtimes/dockerRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAG5B,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"dockerRuntime.d.ts","sourceRoot":"","sources":["../../src/runtimes/dockerRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAG5B,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAA;AA2B9B,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,SAAS,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,cAAc,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAA;IAChB,oGAAoG;IACpG,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,oBAAqB,YAAW,uBAAuB;IAClE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IAG/D,QAAQ,CAAC,oBAAoB,QAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC,YAAY,OAAO,EAAE,2BAA2B,EAO/C;IAED,0FAA0F;IAC1F,OAAO,CAAC,aAAa;IAIf,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCtE;IAEK,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWjF;IAEK,QAAQ,CACZ,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,EACnB,eAAe,GAAE,MAAqB,GACrC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAuBxC;IAEK,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1E;IAEK,SAAS,CACb,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAqBzC;IAEK,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpE;IAEK,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;IAEK,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBxE;IAEK,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBrD;IAEK,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe5D;IAEK,iBAAiB,CACrB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CA2B/D;CACF"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { formatContainerLogs, HARNESS_PORT, } from './containerRuntime.js';
|
|
2
2
|
// The Docker-CLI adapter — covers Docker, Podman, OrbStack and Colima, which all speak
|
|
3
3
|
// the same `run/ps/port/inspect/rm` surface. It is the behaviour the transport had
|
|
4
|
-
// inline before the seam was extracted, parameterised by binary + networking. A
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
/**
|
|
4
|
+
// inline before the seam was extracted, parameterised by binary + networking. A container
|
|
5
|
+
// is labelled with its container key and a managed marker; the harness `:8080` is published
|
|
6
|
+
// to an ephemeral host port read back with `docker port`.
|
|
7
|
+
/**
|
|
8
|
+
* Labels a per-run container by its CONTAINER KEY: the run id for the ordinary one, and the
|
|
9
|
+
* variant-qualified `ui:<runId>` for a step on another executor image. The label NAME still says
|
|
10
|
+
* `runId` (it is written into live containers, so renaming it would orphan every one a running
|
|
11
|
+
* daemon holds); what it carries is the key, which round-trips verbatim through a label.
|
|
12
|
+
*/
|
|
8
13
|
const LABEL_RUN = 'cat-factory.runId';
|
|
9
14
|
const LABEL_MANAGED = 'cat-factory.managed=local-docker';
|
|
10
15
|
/** Marks a reusable warm-pool member (not bound to any run id; leased in-process). */
|
|
@@ -40,14 +45,14 @@ export class DockerRuntimeAdapter {
|
|
|
40
45
|
return ['--filter', `label=${LABEL_INSTALL}=${this.installId}`];
|
|
41
46
|
}
|
|
42
47
|
async run(exec, spec) {
|
|
43
|
-
// A pool member is labelled `pool=1` and NOT bound to a
|
|
44
|
-
// it in-process); a classic per-run container is labelled by its
|
|
48
|
+
// A pool member is labelled `pool=1` and NOT bound to a container key (the transport leases
|
|
49
|
+
// it in-process); a classic per-run container is labelled by its key. Every container also
|
|
45
50
|
// carries the per-install label so a neighbouring install can't adopt/reap/reuse it.
|
|
46
51
|
const args = [
|
|
47
52
|
'run',
|
|
48
53
|
'-d',
|
|
49
54
|
'--label',
|
|
50
|
-
spec.pool ? LABEL_POOL : `${LABEL_RUN}=${spec.
|
|
55
|
+
spec.pool ? LABEL_POOL : `${LABEL_RUN}=${spec.containerKey}`,
|
|
51
56
|
'--label',
|
|
52
57
|
LABEL_MANAGED,
|
|
53
58
|
'--label',
|
|
@@ -79,12 +84,12 @@ export class DockerRuntimeAdapter {
|
|
|
79
84
|
throw new Error(`${this.binary} run returned no container id`);
|
|
80
85
|
return containerId;
|
|
81
86
|
}
|
|
82
|
-
async find(exec,
|
|
87
|
+
async find(exec, containerKey) {
|
|
83
88
|
const { stdout } = await exec([
|
|
84
89
|
'ps',
|
|
85
90
|
'-aq',
|
|
86
91
|
'--filter',
|
|
87
|
-
`label=${LABEL_RUN}=${
|
|
92
|
+
`label=${LABEL_RUN}=${containerKey}`,
|
|
88
93
|
'--filter',
|
|
89
94
|
`label=${LABEL_MANAGED}`,
|
|
90
95
|
...this.installFilter(),
|
|
@@ -165,12 +170,12 @@ export class DockerRuntimeAdapter {
|
|
|
165
170
|
async remove(exec, containerId) {
|
|
166
171
|
await exec(['rm', '-f', containerId]).catch(() => undefined);
|
|
167
172
|
}
|
|
168
|
-
async removeRun(exec,
|
|
173
|
+
async removeRun(exec, containerKey) {
|
|
169
174
|
const { stdout } = await exec([
|
|
170
175
|
'ps',
|
|
171
176
|
'-aq',
|
|
172
177
|
'--filter',
|
|
173
|
-
`label=${LABEL_RUN}=${
|
|
178
|
+
`label=${LABEL_RUN}=${containerKey}`,
|
|
174
179
|
'--filter',
|
|
175
180
|
`label=${LABEL_MANAGED}`,
|
|
176
181
|
...this.installFilter(),
|
|
@@ -219,9 +224,10 @@ export class DockerRuntimeAdapter {
|
|
|
219
224
|
.filter(Boolean);
|
|
220
225
|
}
|
|
221
226
|
async listRunContainers(exec) {
|
|
222
|
-
// Running (not exited) per-run containers, printed as "<
|
|
223
|
-
// both the
|
|
224
|
-
// already handles; the
|
|
227
|
+
// Running (not exited) per-run containers, printed as "<containerKey>|<containerId>" so we
|
|
228
|
+
// get both the key label and the id in one call. `status=running` excludes what reapExited
|
|
229
|
+
// already handles; the key label excludes pool members (which carry `pool=1` instead). The
|
|
230
|
+
// key rides a LABEL, so it round-trips verbatim however it is spelled.
|
|
225
231
|
const { stdout } = await exec([
|
|
226
232
|
'ps',
|
|
227
233
|
'--filter',
|
|
@@ -241,9 +247,9 @@ export class DockerRuntimeAdapter {
|
|
|
241
247
|
.filter(Boolean)
|
|
242
248
|
.map((line) => {
|
|
243
249
|
const sep = line.indexOf('|');
|
|
244
|
-
return {
|
|
250
|
+
return { containerKey: line.slice(0, sep), containerId: line.slice(sep + 1) };
|
|
245
251
|
})
|
|
246
|
-
.filter((c) => c.
|
|
252
|
+
.filter((c) => c.containerKey && c.containerId);
|
|
247
253
|
}
|
|
248
254
|
}
|
|
249
255
|
//# sourceMappingURL=dockerRuntime.js.map
|