@cat-factory/orchestration 0.46.0 → 0.47.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/container.d.ts +0 -14
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.d.ts +3 -11
- package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.js +6 -26
- package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts +16 -32
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +35 -30
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/ci.logic.d.ts +1 -1
- package/dist/modules/execution/ci.logic.js +1 -1
- package/dist/modules/execution/tester-infra.logic.d.ts +20 -39
- package/dist/modules/execution/tester-infra.logic.d.ts.map +1 -1
- package/dist/modules/execution/tester-infra.logic.js +22 -60
- package/dist/modules/execution/tester-infra.logic.js.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsService.d.ts.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsService.js +0 -1
- package/dist/modules/settings/WorkspaceSettingsService.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,69 +1,31 @@
|
|
|
1
|
-
// Pure decision for the Tester's start-time infra gate — no IO, no ports. Given the
|
|
2
|
-
// runtime's Docker-in-Docker capability and the task/service test-infra config, decide
|
|
3
|
-
// whether a Tester pipeline may start, and if not, why. ExecutionService resolves the
|
|
4
|
-
// inputs (service config, environment-provider presence) and translates the verdict
|
|
5
|
-
// into an actionable ConflictError; keeping the branching here makes the whole matrix
|
|
6
|
-
// (incl. the "limited mode" of a runtime without nesting) trivially testable.
|
|
7
1
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* it. The fallback lets a facade choose the floor — local mode passes `local` (host
|
|
13
|
-
* Docker / DinD) by default, flipping to `ephemeral` only when the workspace opts into
|
|
14
|
-
* its environment provider. Pure so both the start-time gate and the agent-context
|
|
15
|
-
* materialisation agree on one answer.
|
|
16
|
-
*/
|
|
17
|
-
export function resolveTesterEnvironment(taskValue, serviceDefault, fallbackDefault = 'ephemeral') {
|
|
18
|
-
if (taskValue === 'local' || taskValue === 'ephemeral')
|
|
19
|
-
return taskValue;
|
|
20
|
-
if (serviceDefault === 'local' || serviceDefault === 'ephemeral')
|
|
21
|
-
return serviceDefault;
|
|
22
|
-
return fallbackDefault;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Decide whether a Tester pipeline may start.
|
|
26
|
-
*
|
|
27
|
-
* - **Limited mode** (runtime can't nest containers, e.g. Apple `container`): a `local`
|
|
28
|
-
* run is allowed only when the service stands nothing up (`noInfraDependencies`); an
|
|
29
|
-
* `ephemeral` run is allowed only when a provider is configured (else there's no URL,
|
|
30
|
-
* and no local fallback on this runtime).
|
|
31
|
-
* - **Capable runtime**: `ephemeral` always passes (zero-config default); `local`
|
|
32
|
-
* requires the service to declare a compose path or no infra.
|
|
2
|
+
* Decide whether a Tester pipeline may start, from the service's declared provision type.
|
|
3
|
+
* `infraless`/none always passes (the Tester stands nothing up); `docker-compose` passes
|
|
4
|
+
* only on a DinD-capable runtime AND when a compose path is declared; `kubernetes`/`custom`
|
|
5
|
+
* passes only when a workspace handler resolves for the type.
|
|
33
6
|
*/
|
|
34
7
|
export function decideTesterInfra(input) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
if (input.environment !== 'local') {
|
|
44
|
-
return !input.requireEnvironmentProvider || input.hasEnvironmentProvider
|
|
45
|
-
? { ok: true }
|
|
46
|
-
: { ok: false, reason: 'ephemeral-no-provider' };
|
|
8
|
+
const type = input.provisionType;
|
|
9
|
+
if (!type || type === 'infraless')
|
|
10
|
+
return { ok: true };
|
|
11
|
+
if (type === 'docker-compose') {
|
|
12
|
+
if (!input.localTestInfraSupported)
|
|
13
|
+
return { ok: false, reason: 'limited-local' };
|
|
14
|
+
return input.hasComposePath ? { ok: true } : { ok: false, reason: 'compose-unconfigured' };
|
|
47
15
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
: { ok: false, reason: 'local-unconfigured' };
|
|
16
|
+
// `kubernetes` | `custom` — provisioned externally by a workspace handler.
|
|
17
|
+
return input.handlerResolves ? { ok: true } : { ok: false, reason: 'provision-type-unhandled' };
|
|
51
18
|
}
|
|
52
19
|
/** The actionable error message for each refusal reason. */
|
|
53
20
|
export const TESTER_INFRA_MESSAGES = {
|
|
54
|
-
'limited-local': "This deployment's container runtime can't run the Tester's local docker-compose " +
|
|
55
|
-
'
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
'
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"configured. Set the service's docker-compose path, or mark it as having no infra " +
|
|
64
|
-
'dependencies, before starting — or switch the Tester to the ephemeral environment.',
|
|
65
|
-
'ephemeral-no-provider': 'This workspace is set to run Tester environments on its registered environment ' +
|
|
66
|
-
'provider, but none is connected. Connect one (Settings → Ephemeral environments) or ' +
|
|
67
|
-
'turn delegation off to test locally, before starting.',
|
|
21
|
+
'limited-local': "This deployment's container runtime can't run the Tester's local docker-compose infra " +
|
|
22
|
+
'(no Docker-in-Docker). Mark the service as `infraless`, or run it on a runtime that ' +
|
|
23
|
+
'supports nested containers, before starting.',
|
|
24
|
+
'compose-unconfigured': 'This service is `docker-compose` but declares no compose path, so the Tester has no ' +
|
|
25
|
+
'infra to stand up. Set the service’s docker-compose path, or mark it `infraless`, ' +
|
|
26
|
+
'before starting.',
|
|
27
|
+
'provision-type-unhandled': "This workspace has no handler configured for the service's provision type, so the " +
|
|
28
|
+
'Tester has no environment to run against. Configure an infrastructure handler for the ' +
|
|
29
|
+
'type (Settings → Infrastructure), or mark the service `infraless`, before starting.',
|
|
68
30
|
};
|
|
69
31
|
//# sourceMappingURL=tester-infra.logic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tester-infra.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/tester-infra.logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tester-infra.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/tester-infra.logic.ts"],"names":[],"mappings":"AAgDA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAA;IAChC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACtD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,uBAAuB;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAA;QACjF,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAA;IAC5F,CAAC;IACD,2EAA2E;IAC3E,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAA;AACjG,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,eAAe,EACb,wFAAwF;QACxF,sFAAsF;QACtF,8CAA8C;IAChD,sBAAsB,EACpB,sFAAsF;QACtF,oFAAoF;QACpF,kBAAkB;IACpB,0BAA0B,EACxB,oFAAoF;QACpF,wFAAwF;QACxF,qFAAqF;CACxF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAG5B,MAAM,WAAW,oCAAoC;IACnD,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,mBAAmB,EAAE,mBAAmB,CAAA;CACzC;AAED;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,YAAY,IAAI,EAAE,oCAAoC,EAGrD;IAED,0FAA0F;IACpF,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEzD;IAED,kEAAkE;IAC5D,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkspaceSettingsService.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAG5B,MAAM,WAAW,oCAAoC;IACnD,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,mBAAmB,EAAE,mBAAmB,CAAA;CACzC;AAED;;;;;;GAMG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IAEzD,YAAY,IAAI,EAAE,oCAAoC,EAGrD;IAED,0FAA0F;IACpF,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEzD;IAED,kEAAkE;IAC5D,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAkC5B;CACF"}
|
|
@@ -30,7 +30,6 @@ export class WorkspaceSettingsService {
|
|
|
30
30
|
artifactRetentionDays: patch.artifactRetentionDays ?? current.artifactRetentionDays,
|
|
31
31
|
kaizenEnabled: patch.kaizenEnabled ?? current.kaizenEnabled,
|
|
32
32
|
delegateAgentsToRunnerPool: patch.delegateAgentsToRunnerPool ?? current.delegateAgentsToRunnerPool,
|
|
33
|
-
delegateTestEnvToProvider: patch.delegateTestEnvToProvider ?? current.delegateTestEnvToProvider,
|
|
34
33
|
spendCurrency: patch.spendCurrency !== undefined ? patch.spendCurrency : current.spendCurrency,
|
|
35
34
|
spendMonthlyLimit: patch.spendMonthlyLimit !== undefined ? patch.spendMonthlyLimit : current.spendMonthlyLimit,
|
|
36
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceSettingsService.js","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAOlF;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAClB,QAAQ,CAA6B;IACrC,mBAAmB,CAAqB;IAEzD,YAAY,IAA0C;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAA;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAA;IACrD,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,GAAG,CAAC,WAAmB;QAC3B,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,0BAA0B,EAAE,CAAA;IACpF,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,MAAM,CACV,WAAmB,EACnB,KAAmC;QAEnC,MAAM,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAsB;YAC9B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,IAAI,OAAO,CAAC,wBAAwB;YAC5F,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa;YAC3D,eAAe,EACb,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe;YACvF,gBAAgB,EACd,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB;YAC1F,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB;YACvE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,OAAO,CAAC,qBAAqB;YACnF,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa;YAC3D,0BAA0B,EACxB,KAAK,CAAC,0BAA0B,IAAI,OAAO,CAAC,0BAA0B;YACxE,
|
|
1
|
+
{"version":3,"file":"WorkspaceSettingsService.js","sourceRoot":"","sources":["../../../src/modules/settings/WorkspaceSettingsService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAOlF;;;;;;GAMG;AACH,MAAM,OAAO,wBAAwB;IAClB,QAAQ,CAA6B;IACrC,mBAAmB,CAAqB;IAEzD,YAAY,IAA0C;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAA;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAA;IACrD,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,GAAG,CAAC,WAAmB;QAC3B,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,0BAA0B,EAAE,CAAA;IACpF,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,MAAM,CACV,WAAmB,EACnB,KAAmC;QAEnC,MAAM,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAsB;YAC9B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,IAAI,OAAO,CAAC,wBAAwB;YAC5F,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa;YAC3D,eAAe,EACb,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe;YACvF,gBAAgB,EACd,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB;YAC1F,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB;YACvE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,OAAO,CAAC,qBAAqB;YACnF,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa;YAC3D,0BAA0B,EACxB,KAAK,CAAC,0BAA0B,IAAI,OAAO,CAAC,0BAA0B;YACxE,aAAa,EACX,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa;YACjF,iBAAiB,EACf,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB;SAC9F,CAAA;QACD,qFAAqF;QACrF,0CAA0C;QAC1C,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;gBAAE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC3B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI;gBAAE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC/D,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.0",
|
|
4
4
|
"description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,19 +25,19 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^6.0.214",
|
|
28
|
-
"@cat-factory/agents": "0.
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
30
|
-
"@cat-factory/integrations": "0.
|
|
31
|
-
"@cat-factory/kernel": "0.
|
|
32
|
-
"@cat-factory/prompt-fragments": "0.9.
|
|
33
|
-
"@cat-factory/sandbox": "0.8.
|
|
34
|
-
"@cat-factory/spend": "0.10.
|
|
35
|
-
"@cat-factory/workspaces": "0.9.
|
|
28
|
+
"@cat-factory/agents": "0.24.0",
|
|
29
|
+
"@cat-factory/contracts": "0.62.0",
|
|
30
|
+
"@cat-factory/integrations": "0.42.0",
|
|
31
|
+
"@cat-factory/kernel": "0.60.0",
|
|
32
|
+
"@cat-factory/prompt-fragments": "0.9.15",
|
|
33
|
+
"@cat-factory/sandbox": "0.8.53",
|
|
34
|
+
"@cat-factory/spend": "0.10.45",
|
|
35
|
+
"@cat-factory/workspaces": "0.9.36"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"typescript": "7.0.1-rc",
|
|
39
39
|
"vitest": "^4.1.9",
|
|
40
|
-
"@cat-factory/sandbox-fixtures": "0.7.
|
|
40
|
+
"@cat-factory/sandbox-fixtures": "0.7.68"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "tsc -b tsconfig.build.json",
|