@cat-factory/integrations 0.109.6 → 0.110.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.
|
@@ -30,9 +30,12 @@ export declare class ValidationConfigService {
|
|
|
30
30
|
/** Every configured service's checks in the workspace (the inspector store's hydrate read). */
|
|
31
31
|
list(workspaceId: string): Promise<ServiceValidationConfig[]>;
|
|
32
32
|
/**
|
|
33
|
-
* Set/replace a service frame's validation checks
|
|
34
|
-
*
|
|
35
|
-
* behaviour rather than leaving an empty config that still has to be resolved
|
|
33
|
+
* Set/replace a service frame's validation checks AND its dependency-prepopulation install.
|
|
34
|
+
* The row is deleted only when BOTH are empty, so a cleared inspector restores the exact
|
|
35
|
+
* pre-feature behaviour rather than leaving an empty config that still has to be resolved —
|
|
36
|
+
* while a service that declares only an install (prepopulate the checkout, verify nothing)
|
|
37
|
+
* still persists. Keying the delete on `checks` alone would silently discard that service's
|
|
38
|
+
* install the moment it saved with no checks.
|
|
36
39
|
*/
|
|
37
40
|
set(workspaceId: string, blockId: string, input: UpsertServiceValidationConfigInput): Promise<ServiceValidationConfig>;
|
|
38
41
|
/** Remove a service frame's validation checks. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationConfigService.d.ts","sourceRoot":"","sources":["../../../src/modules/validation/ValidationConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kCAAkC,EACnC,MAAM,wBAAwB,CAAA;AAG/B,MAAM,WAAW,mCAAmC;IAClD,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,gGAAgG;IAChG,eAAe,EAAE,eAAe,CAAA;IAChC,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B,YAAY,IAAI,EAAE,mCAAmC,EAIpD;IAED,0EAA0E;IACpE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAGpF;IAED,+FAA+F;IACzF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAGlE;IAED
|
|
1
|
+
{"version":3,"file":"ValidationConfigService.d.ts","sourceRoot":"","sources":["../../../src/modules/validation/ValidationConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kCAAkC,EACnC,MAAM,wBAAwB,CAAA;AAG/B,MAAM,WAAW,mCAAmC;IAClD,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,gGAAgG;IAChG,eAAe,EAAE,eAAe,CAAA;IAChC,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B,YAAY,IAAI,EAAE,mCAAmC,EAIpD;IAED,0EAA0E;IACpE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAGpF;IAED,+FAA+F;IACzF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAGlE;IAED;;;;;;;OAOG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,uBAAuB,CAAC,CA8BlC;IAED,kDAAkD;IAC5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;IAED;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAW1C;CACF"}
|
|
@@ -34,9 +34,12 @@ export class ValidationConfigService {
|
|
|
34
34
|
return rows.map((r) => toView(r.blockId, r));
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Set/replace a service frame's validation checks
|
|
38
|
-
*
|
|
39
|
-
* behaviour rather than leaving an empty config that still has to be resolved
|
|
37
|
+
* Set/replace a service frame's validation checks AND its dependency-prepopulation install.
|
|
38
|
+
* The row is deleted only when BOTH are empty, so a cleared inspector restores the exact
|
|
39
|
+
* pre-feature behaviour rather than leaving an empty config that still has to be resolved —
|
|
40
|
+
* while a service that declares only an install (prepopulate the checkout, verify nothing)
|
|
41
|
+
* still persists. Keying the delete on `checks` alone would silently discard that service's
|
|
42
|
+
* install the moment it saved with no checks.
|
|
40
43
|
*/
|
|
41
44
|
async set(workspaceId, blockId, input) {
|
|
42
45
|
// Checks are keyed by (and resolved up to) the SERVICE FRAME, so storing them against a
|
|
@@ -49,7 +52,10 @@ export class ValidationConfigService {
|
|
|
49
52
|
if (block.level !== 'frame') {
|
|
50
53
|
throw new ValidationError('Validation checks can only be set on a service frame');
|
|
51
54
|
}
|
|
52
|
-
|
|
55
|
+
// The schema trims, so a whitespace-only submission arrives as `''` — normalise it to
|
|
56
|
+
// "declared nothing" here rather than persisting a command the harness would try to run.
|
|
57
|
+
const dependencyInstall = input.dependencyInstall?.trim() || undefined;
|
|
58
|
+
if (input.checks.length === 0 && !dependencyInstall) {
|
|
53
59
|
await this.repo.delete(workspaceId, blockId);
|
|
54
60
|
return toView(blockId, null);
|
|
55
61
|
}
|
|
@@ -60,6 +66,7 @@ export class ValidationConfigService {
|
|
|
60
66
|
blockId,
|
|
61
67
|
checks: input.checks.map((c) => ({ label: c.label, command: c.command })),
|
|
62
68
|
maxAttempts: input.maxAttempts ?? VALIDATION_DEFAULT_MAX_ATTEMPTS,
|
|
69
|
+
...(dependencyInstall ? { dependencyInstall } : {}),
|
|
63
70
|
createdAt: existing?.createdAt ?? now,
|
|
64
71
|
updatedAt: now,
|
|
65
72
|
};
|
|
@@ -84,11 +91,15 @@ export class ValidationConfigService {
|
|
|
84
91
|
*/
|
|
85
92
|
async resolveForFrame(workspaceId, frameId) {
|
|
86
93
|
const record = await this.repo.getByBlock(workspaceId, frameId);
|
|
87
|
-
|
|
94
|
+
// A frame that declares ONLY a dependency install still resolves — prepopulation and the
|
|
95
|
+
// checks are independent, and gating on `checks` would make the install unreachable for
|
|
96
|
+
// exactly the service that wanted prepopulation without a verification suite.
|
|
97
|
+
if (!record || (record.checks.length === 0 && !record.dependencyInstall))
|
|
88
98
|
return null;
|
|
89
99
|
return {
|
|
90
100
|
checks: record.checks.map((c) => ({ label: c.label, command: c.command })),
|
|
91
101
|
maxAttempts: record.maxAttempts,
|
|
102
|
+
...(record.dependencyInstall ? { dependencyInstall: record.dependencyInstall } : {}),
|
|
92
103
|
};
|
|
93
104
|
}
|
|
94
105
|
}
|
|
@@ -98,6 +109,7 @@ function toView(blockId, record) {
|
|
|
98
109
|
blockId,
|
|
99
110
|
checks: record?.checks ?? [],
|
|
100
111
|
maxAttempts: record?.maxAttempts ?? VALIDATION_DEFAULT_MAX_ATTEMPTS,
|
|
112
|
+
...(record?.dependencyInstall ? { dependencyInstall: record.dependencyInstall } : {}),
|
|
101
113
|
};
|
|
102
114
|
}
|
|
103
115
|
//# sourceMappingURL=ValidationConfigService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationConfigService.js","sourceRoot":"","sources":["../../../src/modules/validation/ValidationConfigService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAMpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAA;AASxE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,uBAAuB;IACjB,IAAI,CAA4B;IAChC,MAAM,CAAiB;IACvB,KAAK,CAAO;IAE7B,YAAY,IAAyC;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACzB,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,OAAe;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC/D,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"ValidationConfigService.js","sourceRoot":"","sources":["../../../src/modules/validation/ValidationConfigService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/integrations",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.110.0",
|
|
4
4
|
"description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"ai": "^7.0.37",
|
|
28
28
|
"p-map": "^7.0.6",
|
|
29
29
|
"yaml": "^2.9.0",
|
|
30
|
-
"@cat-factory/contracts": "0.
|
|
31
|
-
"@cat-factory/kernel": "0.
|
|
30
|
+
"@cat-factory/contracts": "0.192.0",
|
|
31
|
+
"@cat-factory/kernel": "0.187.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"typescript": "7.0.2",
|
|
35
35
|
"undici": "^8.9.0",
|
|
36
36
|
"valibot": "^1.4.2",
|
|
37
37
|
"vitest": "^4.1.10",
|
|
38
|
-
"@cat-factory/caching": "0.11.
|
|
38
|
+
"@cat-factory/caching": "0.11.16"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "tsc -b tsconfig.build.json",
|