@cat-factory/orchestration 0.261.2 → 0.263.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/modules/board/riskPolicySelectionGuard.d.ts.map +1 -1
- package/dist/modules/board/riskPolicySelectionGuard.js +52 -17
- package/dist/modules/board/riskPolicySelectionGuard.js.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.js +5 -44
- package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
- package/dist/modules/execution/CompanionController.d.ts +26 -1
- package/dist/modules/execution/CompanionController.d.ts.map +1 -1
- package/dist/modules/execution/CompanionController.js +54 -1
- package/dist/modules/execution/CompanionController.js.map +1 -1
- package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
- package/dist/modules/execution/ExecutionService.js +15 -7
- package/dist/modules/execution/ExecutionService.js.map +1 -1
- package/dist/modules/execution/FollowUpGateController.d.ts +35 -1
- package/dist/modules/execution/FollowUpGateController.d.ts.map +1 -1
- package/dist/modules/execution/FollowUpGateController.js +65 -2
- package/dist/modules/execution/FollowUpGateController.js.map +1 -1
- package/dist/modules/execution/GateStepController.d.ts +2 -1
- package/dist/modules/execution/GateStepController.d.ts.map +1 -1
- package/dist/modules/execution/GateStepController.js +1 -1
- package/dist/modules/execution/GateStepController.js.map +1 -1
- package/dist/modules/execution/HumanTestController.d.ts +2 -1
- package/dist/modules/execution/HumanTestController.d.ts.map +1 -1
- package/dist/modules/execution/HumanTestController.js +2 -1
- package/dist/modules/execution/HumanTestController.js.map +1 -1
- package/dist/modules/execution/JudgeStepController.d.ts +23 -2
- package/dist/modules/execution/JudgeStepController.d.ts.map +1 -1
- package/dist/modules/execution/JudgeStepController.js +66 -3
- package/dist/modules/execution/JudgeStepController.js.map +1 -1
- package/dist/modules/execution/MergeResolver.d.ts +2 -1
- package/dist/modules/execution/MergeResolver.d.ts.map +1 -1
- package/dist/modules/execution/MergeResolver.js +1 -1
- package/dist/modules/execution/MergeResolver.js.map +1 -1
- package/dist/modules/execution/ReviewGateController.d.ts +50 -3
- package/dist/modules/execution/ReviewGateController.d.ts.map +1 -1
- package/dist/modules/execution/ReviewGateController.js +83 -7
- package/dist/modules/execution/ReviewGateController.js.map +1 -1
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +5 -3
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/RunDispatcherDependencies.d.ts +5 -2
- package/dist/modules/execution/RunDispatcherDependencies.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcherDependencies.js.map +1 -1
- package/dist/modules/execution/RunLifecycleController.d.ts +2 -1
- package/dist/modules/execution/RunLifecycleController.d.ts.map +1 -1
- package/dist/modules/execution/RunLifecycleController.js +4 -1
- package/dist/modules/execution/RunLifecycleController.js.map +1 -1
- package/dist/modules/execution/RunMergePolicy.d.ts +12 -5
- package/dist/modules/execution/RunMergePolicy.d.ts.map +1 -1
- package/dist/modules/execution/RunMergePolicy.js +13 -4
- package/dist/modules/execution/RunMergePolicy.js.map +1 -1
- package/dist/modules/execution/RunStateMachine.d.ts +40 -0
- package/dist/modules/execution/RunStateMachine.d.ts.map +1 -1
- package/dist/modules/execution/RunStateMachine.js +100 -2
- package/dist/modules/execution/RunStateMachine.js.map +1 -1
- package/dist/modules/execution/StepDecisionController.d.ts.map +1 -1
- package/dist/modules/execution/StepDecisionController.js +3 -1
- package/dist/modules/execution/StepDecisionController.js.map +1 -1
- package/dist/modules/execution/TesterController.d.ts +2 -1
- package/dist/modules/execution/TesterController.d.ts.map +1 -1
- package/dist/modules/execution/TesterController.js +1 -1
- package/dist/modules/execution/TesterController.js.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.d.ts +2 -1
- package/dist/modules/execution/VisualConfirmationController.d.ts.map +1 -1
- package/dist/modules/execution/VisualConfirmationController.js +2 -1
- package/dist/modules/execution/VisualConfirmationController.js.map +1 -1
- package/dist/modules/execution/companion-review-context.d.ts +48 -0
- package/dist/modules/execution/companion-review-context.d.ts.map +1 -0
- package/dist/modules/execution/companion-review-context.js +143 -0
- package/dist/modules/execution/companion-review-context.js.map +1 -0
- package/dist/modules/execution/gate-window-controllers.d.ts +2 -1
- package/dist/modules/execution/gate-window-controllers.d.ts.map +1 -1
- package/dist/modules/execution/gate-window-controllers.js.map +1 -1
- package/dist/modules/execution/policy-types.d.ts +33 -1
- package/dist/modules/execution/policy-types.d.ts.map +1 -1
- package/dist/modules/execution/policy-types.js +13 -1
- package/dist/modules/execution/policy-types.js.map +1 -1
- package/dist/modules/merge/RiskPolicyService.d.ts +1 -1
- package/dist/modules/merge/RiskPolicyService.d.ts.map +1 -1
- package/dist/modules/merge/RiskPolicyService.js +29 -3
- package/dist/modules/merge/RiskPolicyService.js.map +1 -1
- package/dist/modules/merge/riskPolicyResolution.d.ts +8 -1
- package/dist/modules/merge/riskPolicyResolution.d.ts.map +1 -1
- package/dist/modules/merge/riskPolicyResolution.js +15 -6
- package/dist/modules/merge/riskPolicyResolution.js.map +1 -1
- package/package.json +11 -11
|
@@ -60,8 +60,13 @@ export class RiskPolicyService {
|
|
|
60
60
|
classRulesByRole: input.classRulesByRole,
|
|
61
61
|
dryRunRoles: input.dryRunRoles,
|
|
62
62
|
submissionClassesByRole: input.submissionClassesByRole,
|
|
63
|
-
|
|
63
|
+
autonomy: input.autonomy,
|
|
64
|
+
// The very first preset must be BOTH defaults; otherwise honour the request. A workspace
|
|
65
|
+
// with exactly one policy has no other row either scope could resolve, and a scope with no
|
|
66
|
+
// default falls through to `FALLBACK_RISK_POLICY`, which merges nothing: the empty-library
|
|
67
|
+
// case must not leave a workspace unable to land anything through one of its two doors.
|
|
64
68
|
isDefault: existing.length === 0 ? true : input.isDefault,
|
|
69
|
+
isUnattendedDefault: existing.length === 0 ? true : input.isUnattendedDefault,
|
|
65
70
|
createdAt: this.clock.now(),
|
|
66
71
|
};
|
|
67
72
|
await this.presets.upsert(workspaceId, preset);
|
|
@@ -75,6 +80,12 @@ export class RiskPolicyService {
|
|
|
75
80
|
if (existing.isDefault && patch.isDefault === false) {
|
|
76
81
|
throw new ConflictError('Cannot unset the default preset; promote another preset instead.');
|
|
77
82
|
}
|
|
83
|
+
// The same rule for the second scope, and it needs its own check rather than sharing the one
|
|
84
|
+
// above: a scope left with no default resolves `FALLBACK_RISK_POLICY`, which auto-merges
|
|
85
|
+
// nothing, so demoting the unattended default silently stops every API-started task landing.
|
|
86
|
+
if (existing.isUnattendedDefault && patch.isUnattendedDefault === false) {
|
|
87
|
+
throw new ConflictError('Cannot unset the unattended default preset; promote another preset instead.');
|
|
88
|
+
}
|
|
78
89
|
const updated = {
|
|
79
90
|
...existing,
|
|
80
91
|
...(patch.name !== undefined ? { name: patch.name } : {}),
|
|
@@ -115,19 +126,26 @@ export class RiskPolicyService {
|
|
|
115
126
|
...(patch.submissionClassesByRole !== undefined
|
|
116
127
|
? { submissionClassesByRole: patch.submissionClassesByRole }
|
|
117
128
|
: {}),
|
|
129
|
+
...(patch.autonomy !== undefined ? { autonomy: patch.autonomy } : {}),
|
|
118
130
|
...(patch.isDefault !== undefined ? { isDefault: patch.isDefault } : {}),
|
|
131
|
+
...(patch.isUnattendedDefault !== undefined
|
|
132
|
+
? { isUnattendedDefault: patch.isUnattendedDefault }
|
|
133
|
+
: {}),
|
|
119
134
|
};
|
|
120
135
|
await this.presets.upsert(workspaceId, updated);
|
|
121
136
|
await this.invalidate(workspaceId);
|
|
122
137
|
return updated;
|
|
123
138
|
}
|
|
124
|
-
/** Remove a preset.
|
|
139
|
+
/** Remove a preset. Neither scope's default preset can be removed. */
|
|
125
140
|
async remove(workspaceId, id) {
|
|
126
141
|
await requireWorkspace(this.workspaceRepository, workspaceId);
|
|
127
142
|
const existing = await this.presets.get(workspaceId, id);
|
|
128
143
|
if (existing?.isDefault) {
|
|
129
144
|
throw new ConflictError('Cannot delete the default preset; promote another preset first.');
|
|
130
145
|
}
|
|
146
|
+
if (existing?.isUnattendedDefault) {
|
|
147
|
+
throw new ConflictError('Cannot delete the unattended default preset; promote another preset first.');
|
|
148
|
+
}
|
|
131
149
|
await this.presets.remove(workspaceId, id);
|
|
132
150
|
await this.invalidate(workspaceId);
|
|
133
151
|
}
|
|
@@ -155,10 +173,18 @@ export class RiskPolicyService {
|
|
|
155
173
|
// otherwise the seed's `isDefault` would silently demote the user's chosen default.
|
|
156
174
|
const isDefault = existing
|
|
157
175
|
? existing.isDefault
|
|
158
|
-
: seed.isDefault && (await this.presets.getDefault(workspaceId)) === null;
|
|
176
|
+
: seed.isDefault && (await this.presets.getDefault(workspaceId, 'interactive')) === null;
|
|
177
|
+
// The same rule per scope, asked separately: a workspace can have an in-app default and no
|
|
178
|
+
// unattended one (its library predates the unattended scope), and re-materialising
|
|
179
|
+
// `mp_unattended` there SHOULD claim the empty scope while still not touching the other.
|
|
180
|
+
const isUnattendedDefault = existing
|
|
181
|
+
? existing.isUnattendedDefault
|
|
182
|
+
: seed.isUnattendedDefault &&
|
|
183
|
+
(await this.presets.getDefault(workspaceId, 'unattended')) === null;
|
|
159
184
|
const preset = {
|
|
160
185
|
...riskPolicyFromSeed(seed, existing?.createdAt ?? this.clock.now()),
|
|
161
186
|
isDefault,
|
|
187
|
+
isUnattendedDefault,
|
|
162
188
|
};
|
|
163
189
|
await this.presets.upsert(workspaceId, preset);
|
|
164
190
|
await this.invalidate(workspaceId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskPolicyService.js","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAe5B;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IACX,OAAO,CAAsB;IAC7B,mBAAmB,CAAqB;IACxC,WAAW,CAAa;IACxB,KAAK,CAAO;IACZ,KAAK,CAAyC;IAE/D,YAAY,IAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAA;QACxC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAA;QACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,UAAU,CAAC,WAAmB;QAC1C,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvC,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,KAA4B;QAC5D,MAAM,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACrD,MAAM,MAAM,GAAe;YACzB,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;YACxD,4BAA4B,EAAE,KAAK,CAAC,4BAA4B;YAChE,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;YAC5D,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;YAC1D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;YACtD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;YACtD,
|
|
1
|
+
{"version":3,"file":"RiskPolicyService.js","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GroupCacheHandle, RiskPolicy, RiskPolicyCacheValue } from '@cat-factory/kernel';
|
|
1
|
+
import type { GroupCacheHandle, RiskPolicy, RiskPolicyCacheValue, RiskPolicyDefaultScope } from '@cat-factory/kernel';
|
|
2
2
|
import type { RiskPolicyRepository } from '@cat-factory/kernel';
|
|
3
3
|
import type { ResolvedRunRiskPolicy } from '../execution/policy-types.js';
|
|
4
4
|
/**
|
|
@@ -14,6 +14,7 @@ export type RiskPolicyTarget = {
|
|
|
14
14
|
id: string;
|
|
15
15
|
} | {
|
|
16
16
|
kind: 'default';
|
|
17
|
+
scope: RiskPolicyDefaultScope;
|
|
17
18
|
};
|
|
18
19
|
/** Reads one preset row, possibly through a cache slice or a preloaded library. */
|
|
19
20
|
export type RiskPolicyRead = (target: RiskPolicyTarget, load: () => Promise<RiskPolicy | null>) => Promise<RiskPolicy | null>;
|
|
@@ -55,6 +56,12 @@ export declare function resolveRiskPolicy(input: {
|
|
|
55
56
|
repository: RiskPolicyRepository | undefined;
|
|
56
57
|
workspaceId: string;
|
|
57
58
|
riskPolicyId: string | null | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* WHICH default a task that pinned nothing falls back to. Required, because the two scopes are
|
|
61
|
+
* different rows with different postures and a caller that has not decided which kind of run it
|
|
62
|
+
* is resolving for has not finished asking the question.
|
|
63
|
+
*/
|
|
64
|
+
scope: RiskPolicyDefaultScope;
|
|
58
65
|
read?: RiskPolicyRead;
|
|
59
66
|
}): Promise<ResolvedRunRiskPolicy>;
|
|
60
67
|
//# sourceMappingURL=riskPolicyResolution.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskPolicyResolution.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/riskPolicyResolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"riskPolicyResolution.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/riskPolicyResolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAkBzE;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAEtD,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,KACnC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;AAE/B,kGAAkG;AAClG,eAAO,MAAM,oBAAoB,EAAE,cAA0C,CAAA;AAa7E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,SAAS,EACzD,WAAW,EAAE,MAAM,GAClB,cAAc,CAKhB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,cAAc,CAUtF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACvC;;;;OAIG;IACH,KAAK,EAAE,sBAAsB,CAAA;IAC7B,IAAI,CAAC,EAAE,cAAc,CAAA;CACtB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAcjC"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { FALLBACK_RISK_POLICY } from '@cat-factory/kernel';
|
|
2
2
|
/** Read straight from the repository, for the paths with no cache slice wired to read through. */
|
|
3
3
|
export const directRiskPolicyRead = (_target, load) => load();
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* The cache key one target resolves under; the ONE place that spelling lives.
|
|
6
|
+
*
|
|
7
|
+
* The scope is part of the DEFAULT key because a workspace has two of them and they are different
|
|
8
|
+
* rows: sharing one `default` key would serve whichever scope asked first to the other, which is
|
|
9
|
+
* silent and intermittent (it depends on which kind of run reached the cache first).
|
|
10
|
+
*/
|
|
5
11
|
function cacheKeyOf(target) {
|
|
6
|
-
return target.kind === 'picked' ? `picked:${target.id}` :
|
|
12
|
+
return target.kind === 'picked' ? `picked:${target.id}` : `default:${target.scope}`;
|
|
7
13
|
}
|
|
8
14
|
/**
|
|
9
15
|
* Read through the `AppCaches.riskPolicy` slice, grouped by workspace (one preset write drops the
|
|
@@ -32,8 +38,11 @@ export function cachedRiskPolicyRead(cache, workspaceId) {
|
|
|
32
38
|
*/
|
|
33
39
|
export function preloadedRiskPolicyRead(library) {
|
|
34
40
|
const byId = new Map(library.map((preset) => [preset.id, preset]));
|
|
35
|
-
const
|
|
36
|
-
|
|
41
|
+
const defaults = {
|
|
42
|
+
interactive: library.find((preset) => preset.isDefault) ?? null,
|
|
43
|
+
unattended: library.find((preset) => preset.isUnattendedDefault) ?? null,
|
|
44
|
+
};
|
|
45
|
+
return (target) => Promise.resolve(target.kind === 'picked' ? (byId.get(target.id) ?? null) : defaults[target.scope]);
|
|
37
46
|
}
|
|
38
47
|
/**
|
|
39
48
|
* Resolve the preset governing `riskPolicyId` in a workspace.
|
|
@@ -47,7 +56,7 @@ export function preloadedRiskPolicyRead(library) {
|
|
|
47
56
|
* the fallback is a deployment-level fact rather than a question of who had read what first.
|
|
48
57
|
*/
|
|
49
58
|
export async function resolveRiskPolicy(input) {
|
|
50
|
-
const { repository, workspaceId, riskPolicyId } = input;
|
|
59
|
+
const { repository, workspaceId, riskPolicyId, scope } = input;
|
|
51
60
|
if (!repository)
|
|
52
61
|
return FALLBACK_RISK_POLICY;
|
|
53
62
|
const read = input.read ?? directRiskPolicyRead;
|
|
@@ -56,7 +65,7 @@ export async function resolveRiskPolicy(input) {
|
|
|
56
65
|
if (picked)
|
|
57
66
|
return picked;
|
|
58
67
|
}
|
|
59
|
-
return ((await read({ kind: 'default' }, () => repository.getDefault(workspaceId))) ??
|
|
68
|
+
return ((await read({ kind: 'default', scope }, () => repository.getDefault(workspaceId, scope))) ??
|
|
60
69
|
FALLBACK_RISK_POLICY);
|
|
61
70
|
}
|
|
62
71
|
//# sourceMappingURL=riskPolicyResolution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"riskPolicyResolution.js","sourceRoot":"","sources":["../../../src/modules/merge/riskPolicyResolution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"riskPolicyResolution.js","sourceRoot":"","sources":["../../../src/modules/merge/riskPolicyResolution.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAqC1D,kGAAkG;AAClG,MAAM,CAAC,MAAM,oBAAoB,GAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;AAE7E;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,MAAwB;IAC1C,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,KAAK,EAAE,CAAA;AACrF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAyD,EACzD,WAAmB;IAEnB,IAAI,CAAC,KAAK;QAAE,OAAO,oBAAoB,CAAA;IACvC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAC5B,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;SACvF,MAAM,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAA8B;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAsD;QAClE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI;QAC/D,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,IAAI;KACzE,CAAA;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,OAAO,CAAC,OAAO,CACb,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAClF,CAAA;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAWvC;IACC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,oBAAoB,CAAA;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,oBAAoB,CAAA;IAC/C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CACnE,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAC1C,CAAA;QACD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;IAC3B,CAAC;IACD,OAAO,CACL,CAAC,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACzF,oBAAoB,CACrB,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/orchestration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.263.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,20 +25,20 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^7.0.58",
|
|
28
|
-
"@cat-factory/agents": "0.126.
|
|
29
|
-
"@cat-factory/caching": "0.20.
|
|
30
|
-
"@cat-factory/
|
|
31
|
-
"@cat-factory/
|
|
32
|
-
"@cat-factory/kernel": "0.
|
|
33
|
-
"@cat-factory/prompt-fragments": "1.0.
|
|
34
|
-
"@cat-factory/sandbox": "0.11.
|
|
35
|
-
"@cat-factory/spend": "0.15.
|
|
36
|
-
"@cat-factory/workspaces": "0.27.
|
|
28
|
+
"@cat-factory/agents": "0.126.6",
|
|
29
|
+
"@cat-factory/caching": "0.20.6",
|
|
30
|
+
"@cat-factory/integrations": "0.160.4",
|
|
31
|
+
"@cat-factory/contracts": "0.301.0",
|
|
32
|
+
"@cat-factory/kernel": "0.292.0",
|
|
33
|
+
"@cat-factory/prompt-fragments": "1.0.61",
|
|
34
|
+
"@cat-factory/sandbox": "0.11.138",
|
|
35
|
+
"@cat-factory/spend": "0.15.79",
|
|
36
|
+
"@cat-factory/workspaces": "0.27.23"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"typescript": "7.0.2",
|
|
40
40
|
"vitest": "^4.1.10",
|
|
41
|
-
"@cat-factory/sandbox-fixtures": "0.7.
|
|
41
|
+
"@cat-factory/sandbox-fixtures": "0.7.342"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc -b tsconfig.build.json",
|