@cat-factory/orchestration 0.262.0 → 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 +8 -6
- 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/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
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { companionTargets, isCompanionKind } from '@cat-factory/agents';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// The companion loop's MEMORY, resolved for whichever side of it is about to be dispatched.
|
|
4
|
+
//
|
|
5
|
+
// `step.companion.verdicts` has always accumulated one entry per grading cycle, and nothing ever
|
|
6
|
+
// read it into a prompt. So a companion re-graded a revised document knowing nothing about what it
|
|
7
|
+
// had asked for last time: each round was an independent draw, it spent its attention on a fresh
|
|
8
|
+
// subset of problems, and the rating wandered (72% → 77% → 72% → 78% on a real run) while the work
|
|
9
|
+
// genuinely improved. A rework budget buys nothing under those conditions — the loop is not
|
|
10
|
+
// converging on anything, it is resampling.
|
|
11
|
+
//
|
|
12
|
+
// The state was already there and already survives `resetStepForRerun`; this is the read.
|
|
13
|
+
//
|
|
14
|
+
// It resolves for BOTH sides from the same place, because they are the same fact seen twice: the
|
|
15
|
+
// grader needs its own asks to check them off, and the producer needs the ones from rounds before
|
|
16
|
+
// the current feedback so a fix from round 1 is not quietly undone in round 3.
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
/** One cycle as the prompt renders it, numbered from the order the verdicts were appended. */
|
|
19
|
+
function toRounds(verdicts) {
|
|
20
|
+
return verdicts.map((verdict, index) => ({
|
|
21
|
+
round: index + 1,
|
|
22
|
+
rating: verdict.rating,
|
|
23
|
+
passed: verdict.passed,
|
|
24
|
+
summary: verdict.feedback,
|
|
25
|
+
...(verdict.comments?.length
|
|
26
|
+
? {
|
|
27
|
+
comments: verdict.comments.map((comment) => ({
|
|
28
|
+
...(comment.quotedSource ? { quotedSource: comment.quotedSource } : {}),
|
|
29
|
+
body: comment.body,
|
|
30
|
+
})),
|
|
31
|
+
}
|
|
32
|
+
: {}),
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The `priorReview` slice for the step at `stepIndex`, or `undefined` when there is no history to
|
|
37
|
+
* show (the first grading of a step, a step no companion reviews, a human "request changes" —
|
|
38
|
+
* one person's review is not a loop with rounds).
|
|
39
|
+
*
|
|
40
|
+
* Two shapes, from one piece of state:
|
|
41
|
+
*
|
|
42
|
+
* - The step IS a companion ⇒ `grader`, carrying EVERY verdict it has given. The current cycle
|
|
43
|
+
* has not been graded yet, so the whole list is genuinely "what I said before".
|
|
44
|
+
* - The step is a companion's PRODUCER ⇒ `producer`, carrying every round EXCEPT the last. That
|
|
45
|
+
* last one is already in `context.revision`, phrased as the work to do now; repeating it here
|
|
46
|
+
* would have the agent read the same asks twice in two different framings.
|
|
47
|
+
*
|
|
48
|
+
* The producer is found by looking at the NEXT step, which is exactly what
|
|
49
|
+
* `assertValidCompanionPlacement` guarantees: a companion must run immediately after a step whose
|
|
50
|
+
* kind it targets, so a companion's producer is its immediate predecessor and vice versa.
|
|
51
|
+
*/
|
|
52
|
+
export function priorReviewFor(instance, stepIndex, registry) {
|
|
53
|
+
const step = instance.steps[stepIndex];
|
|
54
|
+
if (!step)
|
|
55
|
+
return undefined;
|
|
56
|
+
if (isCompanionKind(step.agentKind, registry)) {
|
|
57
|
+
const companion = step.companion;
|
|
58
|
+
if (!companion?.verdicts.length)
|
|
59
|
+
return undefined;
|
|
60
|
+
return {
|
|
61
|
+
role: 'grader',
|
|
62
|
+
threshold: companion.threshold,
|
|
63
|
+
roundsRemaining: Math.max(0, companion.maxAttempts - companion.attempts),
|
|
64
|
+
rounds: toRounds(companion.verdicts),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const next = instance.steps[stepIndex + 1];
|
|
68
|
+
if (!next || !companionTargets(next.agentKind, registry).includes(step.agentKind)) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const companion = next.companion;
|
|
72
|
+
// Nothing to add on the FIRST loop-back: `revision` already carries that single round, and an
|
|
73
|
+
// empty "everything previously raised" section reads as a loop with no history rather than one
|
|
74
|
+
// whose only round is in the paragraph above.
|
|
75
|
+
const earlier = companion?.verdicts.slice(0, -1) ?? [];
|
|
76
|
+
if (!earlier.length)
|
|
77
|
+
return undefined;
|
|
78
|
+
return {
|
|
79
|
+
role: 'producer',
|
|
80
|
+
threshold: companion.threshold,
|
|
81
|
+
roundsRemaining: Math.max(0, companion.maxAttempts - companion.attempts),
|
|
82
|
+
rounds: toRounds(earlier),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The `revision` slice: what a step being RE-RUN with feedback is answering now — a human's
|
|
87
|
+
* "request changes" on its approval gate, or a downstream companion's automatic rework
|
|
88
|
+
* (`step.rework`, which wins when both are present). Empty when neither applies.
|
|
89
|
+
*/
|
|
90
|
+
function revisionSlice(step) {
|
|
91
|
+
const source = step.rework
|
|
92
|
+
? {
|
|
93
|
+
previousProposal: step.rework.previousProposal,
|
|
94
|
+
feedback: step.rework.feedback,
|
|
95
|
+
comments: step.rework.comments,
|
|
96
|
+
}
|
|
97
|
+
: step.approval?.status === 'changes_requested'
|
|
98
|
+
? {
|
|
99
|
+
previousProposal: step.approval.proposal,
|
|
100
|
+
feedback: step.approval.feedback ?? '',
|
|
101
|
+
comments: step.approval.comments,
|
|
102
|
+
}
|
|
103
|
+
: undefined;
|
|
104
|
+
if (!source)
|
|
105
|
+
return {};
|
|
106
|
+
return {
|
|
107
|
+
revision: {
|
|
108
|
+
previousProposal: source.previousProposal,
|
|
109
|
+
feedback: source.feedback,
|
|
110
|
+
...(source.comments?.length
|
|
111
|
+
? {
|
|
112
|
+
comments: source.comments.map((c) => ({
|
|
113
|
+
...(c.quotedSource ? { quotedSource: c.quotedSource } : {}),
|
|
114
|
+
body: c.body,
|
|
115
|
+
})),
|
|
116
|
+
}
|
|
117
|
+
: {}),
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* EVERYTHING a re-run of this step is told about the feedback it is answering: the current round
|
|
123
|
+
* ({@link revisionSlice}) and the rounds before it ({@link priorReviewFor}).
|
|
124
|
+
*
|
|
125
|
+
* One call rather than two spreads, because they are one concern seen at two distances and a
|
|
126
|
+
* caller has no reason to take either alone — the current round without its history is exactly the
|
|
127
|
+
* amnesia this exists to fix, and the history without the current round is a step told what to
|
|
128
|
+
* preserve and not what to do.
|
|
129
|
+
*
|
|
130
|
+
* Folded in the CONTEXT BUILDER rather than in either controller, because that is the one place
|
|
131
|
+
* both sides of the loop pass through: an inline companion, a container-backed one, a companion a
|
|
132
|
+
* deployment registered, and the producer being reworked all take their context from
|
|
133
|
+
* `buildContext`. Wired anywhere else, the memory would arrive for some of them and not others,
|
|
134
|
+
* and the one it went missing for would be the one nobody thought to check.
|
|
135
|
+
*
|
|
136
|
+
* Each half is present only when it has something to say, so an absent slice stays absent rather
|
|
137
|
+
* than becoming an empty one (a `priorReview` with no rounds would render a heading over nothing).
|
|
138
|
+
*/
|
|
139
|
+
export function buildReworkContext(instance, step, registry) {
|
|
140
|
+
const priorReview = priorReviewFor(instance, instance.currentStep, registry);
|
|
141
|
+
return { ...revisionSlice(step), ...(priorReview ? { priorReview } : {}) };
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=companion-review-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"companion-review-context.js","sourceRoot":"","sources":["../../../src/modules/execution/companion-review-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import type { AgentExecutor } from '@cat-factory/kernel';
|
|
|
15
15
|
import type { AgentContextBuilder } from './AgentContextBuilder.js';
|
|
16
16
|
import type { Block } from '@cat-factory/contracts';
|
|
17
17
|
import type { ExecutionServiceDependencies, ResolvedRunRiskPolicy } from './ExecutionService.js';
|
|
18
|
+
import type { RunPolicyScope } from './policy-types.js';
|
|
18
19
|
import type { RunStateMachine } from './RunStateMachine.js';
|
|
19
20
|
import type { StepGraph } from './StepGraph.js';
|
|
20
21
|
import { TesterController } from './TesterController.js';
|
|
@@ -45,7 +46,7 @@ export interface GateWindowControllerDeps {
|
|
|
45
46
|
clock: Clock;
|
|
46
47
|
/** The engine clock's `now()`, bound (gate verdicts are stamped with it). */
|
|
47
48
|
clockNow: () => number;
|
|
48
|
-
resolveRiskPolicy: (workspaceId: string, block: Block) => Promise<ResolvedRunRiskPolicy>;
|
|
49
|
+
resolveRiskPolicy: (workspaceId: string, block: Block, run: RunPolicyScope) => Promise<ResolvedRunRiskPolicy>;
|
|
49
50
|
dispatchIterationCap: ReviewGateControllerDeps['dispatchIterationCap'];
|
|
50
51
|
notificationService: ExecutionServiceDependencies['notificationService'];
|
|
51
52
|
testerQualityReviewer: ExecutionServiceDependencies['testerQualityReviewer'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-window-controllers.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,mBAAmB,EACnB,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAQpE;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,EAAE,mBAAmB,CAAA;IACnC,YAAY,EAAE,eAAe,CAAA;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,MAAM,CAAA;IACtB,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"gate-window-controllers.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"gate-window-controllers.js","sourceRoot":"","sources":["../../../src/modules/execution/gate-window-controllers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import type { ClassRulesByRole, MergeClassRules, RequirementConcernLevel, StepGating, SubmissionClassesByRole, WorkspaceRole } from '@cat-factory/kernel';
|
|
1
|
+
import type { ExecutionInstance, ClassRulesByRole, MergeClassRules, RequirementConcernLevel, RunAutonomy, StepGating, SubmissionClassesByRole, WorkspaceRole } from '@cat-factory/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* What policy resolution needs to know about the RUN, as opposed to the task: which of the
|
|
4
|
+
* workspace's two defaults applies when the task pinned no policy of its own.
|
|
5
|
+
*
|
|
6
|
+
* A structural `Pick` rather than the whole instance, so a caller holding only the run's
|
|
7
|
+
* provenance can satisfy it, and so a call site that has not threaded the run through fails to
|
|
8
|
+
* compile naming the one field that matters. It lives here, beside the resolved policy, for the
|
|
9
|
+
* reason the resolved policy does: every gate window has to name it and none of them may import
|
|
10
|
+
* the engine.
|
|
11
|
+
*/
|
|
12
|
+
export type RunPolicyScope = Pick<ExecutionInstance, 'intakeOrigin'>;
|
|
2
13
|
/**
|
|
3
14
|
* The effective risk/merge policy for one run, as {@link RunMergePolicy.resolve} resolves it
|
|
4
15
|
* (the block's selected preset, else the workspace default, else the built-in
|
|
@@ -31,6 +42,16 @@ export interface ResolvedRunRiskPolicy {
|
|
|
31
42
|
judgeMinScore: number;
|
|
32
43
|
judgeMaxBounces: number;
|
|
33
44
|
autoMergeEnabled: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether this run answers the parks its own AUTOMATIC loops raise when they give up (a
|
|
47
|
+
* companion at its rework cap, an iterative review at its pass cap, untriaged Coder follow-ups),
|
|
48
|
+
* or stops for a person. Never touches a gate a pipeline asked for.
|
|
49
|
+
*
|
|
50
|
+
* Optional here alone: the field is required on a stored policy, and a hand-built subset in a
|
|
51
|
+
* test that gates on nothing else should not have to state a posture it never reads. Absent is
|
|
52
|
+
* read as `attended` everywhere, which is the historical behaviour.
|
|
53
|
+
*/
|
|
54
|
+
autonomy?: RunAutonomy;
|
|
34
55
|
forkDecision?: StepGating | null;
|
|
35
56
|
/**
|
|
36
57
|
* Per-change-class auto-merge rules. Absent on the built-in fallback ⇒ every class uses the
|
|
@@ -58,4 +79,15 @@ export interface ResolvedRunRiskPolicy {
|
|
|
58
79
|
*/
|
|
59
80
|
submissionClassesByRole?: SubmissionClassesByRole;
|
|
60
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Whether this policy lets a run ANSWER the parks its own automatic loops raise, rather than
|
|
84
|
+
* stopping for a person who may not be there.
|
|
85
|
+
*
|
|
86
|
+
* Stated once, and as `=== 'unattended'` rather than `!== 'attended'`, because the vocabulary is
|
|
87
|
+
* closed and PERSISTED: a row written under a member later retired reads back as neither, and the
|
|
88
|
+
* two spellings disagree about it in the one direction that matters. Not knowing what a policy
|
|
89
|
+
* says is not a licence to proceed unattended, so an unrecognised value parks like every policy
|
|
90
|
+
* did before this existed.
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolvesOwnCaps(policy: Pick<ResolvedRunRiskPolicy, 'autonomy'>): boolean;
|
|
61
93
|
//# sourceMappingURL=policy-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-types.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/policy-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,uBAAuB,EACvB,aAAa,EACd,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,4BAA4B,EAAE,uBAAuB,CAAA;IACrD,0BAA0B,EAAE,MAAM,CAAA;IAClC,yBAAyB,EAAE,MAAM,CAAA;IACjC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD"}
|
|
1
|
+
{"version":3,"file":"policy-types.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/policy-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,aAAa,EACd,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;AAEpE;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB,EAAE,MAAM,CAAA;IAChC,4BAA4B,EAAE,uBAAuB,CAAA;IACrD,0BAA0B,EAAE,MAAM,CAAA;IAClC,yBAAyB,EAAE,MAAM,CAAA;IACjC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,GAAG,OAAO,CAExF"}
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Whether this policy lets a run ANSWER the parks its own automatic loops raise, rather than
|
|
3
|
+
* stopping for a person who may not be there.
|
|
4
|
+
*
|
|
5
|
+
* Stated once, and as `=== 'unattended'` rather than `!== 'attended'`, because the vocabulary is
|
|
6
|
+
* closed and PERSISTED: a row written under a member later retired reads back as neither, and the
|
|
7
|
+
* two spellings disagree about it in the one direction that matters. Not knowing what a policy
|
|
8
|
+
* says is not a licence to proceed unattended, so an unrecognised value parks like every policy
|
|
9
|
+
* did before this existed.
|
|
10
|
+
*/
|
|
11
|
+
export function resolvesOwnCaps(policy) {
|
|
12
|
+
return policy.autonomy === 'unattended';
|
|
13
|
+
}
|
|
2
14
|
//# sourceMappingURL=policy-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-types.js","sourceRoot":"","sources":["../../../src/modules/execution/policy-types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"policy-types.js","sourceRoot":"","sources":["../../../src/modules/execution/policy-types.ts"],"names":[],"mappings":"AA6FA;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+C;IAC7E,OAAO,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAA;AACzC,CAAC"}
|
|
@@ -39,7 +39,7 @@ export declare class RiskPolicyService {
|
|
|
39
39
|
create(workspaceId: string, input: CreateRiskPolicyInput): Promise<RiskPolicy>;
|
|
40
40
|
/** Patch a preset. Demoting the only default is rejected (one must remain). */
|
|
41
41
|
update(workspaceId: string, id: string, patch: UpdateRiskPolicyInput): Promise<RiskPolicy>;
|
|
42
|
-
/** Remove a preset.
|
|
42
|
+
/** Remove a preset. Neither scope's default preset can be removed. */
|
|
43
43
|
remove(workspaceId: string, id: string): Promise<void>;
|
|
44
44
|
/**
|
|
45
45
|
* Restore a built-in preset to its current catalog definition ({@link seedRiskPolicies}).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskPolicyService.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CACzD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAwC;IAE/D,YAAY,IAAI,EAAE,6BAA6B,EAM9C;IAED;;;;OAIG;YACW,UAAU;IAIxB,yFAAyF;IACnF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAIrD;IAED,uFAAuF;IACjF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"RiskPolicyService.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/RiskPolicyService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CACzD;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAwC;IAE/D,YAAY,IAAI,EAAE,6BAA6B,EAM9C;IAED;;;;OAIG;YACW,UAAU;IAIxB,yFAAyF;IACnF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAIrD;IAED,uFAAuF;IACjF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoCnF;IAED,+EAA+E;IACzE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+D/F;IAED,sEAAsE;IAChE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3D;IAED;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA8BjE;IAED;;;;;;;;;;;;;OAaG;YACW,YAAY;CAU3B"}
|
|
@@ -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/
|
|
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",
|