@cat-factory/orchestration 0.191.0 → 0.193.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/dependencies.d.ts +19 -2
- package/dist/container/dependencies.d.ts.map +1 -1
- package/dist/container/engine-collaborators.d.ts.map +1 -1
- package/dist/container/engine-collaborators.js +4 -7
- package/dist/container/engine-collaborators.js.map +1 -1
- package/dist/container/execution-service.d.ts.map +1 -1
- package/dist/container/execution-service.js +3 -0
- package/dist/container/execution-service.js.map +1 -1
- package/dist/container/inline-model-deps.d.ts +20 -0
- package/dist/container/inline-model-deps.d.ts.map +1 -0
- package/dist/container/inline-model-deps.js +38 -0
- package/dist/container/inline-model-deps.js.map +1 -0
- package/dist/container/modules.d.ts.map +1 -1
- package/dist/container/modules.js +23 -39
- package/dist/container/modules.js.map +1 -1
- package/dist/container/platform-modules.d.ts.map +1 -1
- package/dist/container/platform-modules.js +1 -0
- package/dist/container/platform-modules.js.map +1 -1
- package/dist/container/review-modules.d.ts.map +1 -1
- package/dist/container/review-modules.js +10 -28
- package/dist/container/review-modules.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/inlineBlockModel.d.ts +51 -0
- package/dist/inlineBlockModel.d.ts.map +1 -0
- package/dist/inlineBlockModel.js +31 -0
- package/dist/inlineBlockModel.js.map +1 -0
- package/dist/modules/bugHunt/BugHuntAssessorService.d.ts +8 -4
- package/dist/modules/bugHunt/BugHuntAssessorService.d.ts.map +1 -1
- package/dist/modules/bugHunt/BugHuntAssessorService.js +6 -10
- package/dist/modules/bugHunt/BugHuntAssessorService.js.map +1 -1
- package/dist/modules/docInterview/DocInterviewService.d.ts +8 -4
- package/dist/modules/docInterview/DocInterviewService.d.ts.map +1 -1
- package/dist/modules/docInterview/DocInterviewService.js +4 -13
- package/dist/modules/docInterview/DocInterviewService.js.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.d.ts +14 -12
- package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
- package/dist/modules/execution/AgentContextBuilder.js +8 -28
- package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
- package/dist/modules/execution/ExecutionServiceDependencies.d.ts +26 -3
- package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -1
- package/dist/modules/execution/ForkChatService.d.ts +8 -4
- package/dist/modules/execution/ForkChatService.d.ts.map +1 -1
- package/dist/modules/execution/ForkChatService.js +4 -13
- package/dist/modules/execution/ForkChatService.js.map +1 -1
- package/dist/modules/execution/GateStepController.d.ts +15 -0
- package/dist/modules/execution/GateStepController.d.ts.map +1 -1
- package/dist/modules/execution/GateStepController.js +19 -0
- package/dist/modules/execution/GateStepController.js.map +1 -1
- package/dist/modules/execution/JudgeService.d.ts +8 -4
- package/dist/modules/execution/JudgeService.d.ts.map +1 -1
- package/dist/modules/execution/JudgeService.js +4 -13
- package/dist/modules/execution/JudgeService.js.map +1 -1
- package/dist/modules/execution/PollRunningController.d.ts +8 -0
- package/dist/modules/execution/PollRunningController.d.ts.map +1 -1
- package/dist/modules/execution/PollRunningController.js +14 -0
- package/dist/modules/execution/PollRunningController.js.map +1 -1
- package/dist/modules/execution/RunAdmission.d.ts +1 -1
- package/dist/modules/execution/RunAdmission.d.ts.map +1 -1
- package/dist/modules/execution/RunAdmission.js +5 -2
- package/dist/modules/execution/RunAdmission.js.map +1 -1
- package/dist/modules/execution/RunDispatcher.d.ts +7 -21
- package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
- package/dist/modules/execution/RunDispatcher.js +30 -7
- package/dist/modules/execution/RunDispatcher.js.map +1 -1
- package/dist/modules/execution/TesterQualityReviewService.d.ts +8 -4
- package/dist/modules/execution/TesterQualityReviewService.d.ts.map +1 -1
- package/dist/modules/execution/TesterQualityReviewService.js +4 -13
- package/dist/modules/execution/TesterQualityReviewService.js.map +1 -1
- package/dist/modules/execution/dispatchPromptSettings.d.ts +42 -2
- package/dist/modules/execution/dispatchPromptSettings.d.ts.map +1 -1
- package/dist/modules/execution/dispatchPromptSettings.js +37 -0
- package/dist/modules/execution/dispatchPromptSettings.js.map +1 -1
- package/dist/modules/execution/run-context-admission.d.ts +1 -1
- package/dist/modules/execution/run-context-admission.d.ts.map +1 -1
- package/dist/modules/execution/run-context-admission.js +2 -0
- package/dist/modules/execution/run-context-admission.js.map +1 -1
- package/dist/modules/initiative/InitiativeInterviewService.d.ts +8 -4
- package/dist/modules/initiative/InitiativeInterviewService.d.ts.map +1 -1
- package/dist/modules/initiative/InitiativeInterviewService.js +4 -13
- package/dist/modules/initiative/InitiativeInterviewService.js.map +1 -1
- package/dist/modules/kaizen/KaizenService.d.ts +14 -9
- package/dist/modules/kaizen/KaizenService.d.ts.map +1 -1
- package/dist/modules/kaizen/KaizenService.js +11 -16
- package/dist/modules/kaizen/KaizenService.js.map +1 -1
- package/dist/modules/modelPresets/ModelPresetService.d.ts +54 -2
- package/dist/modules/modelPresets/ModelPresetService.d.ts.map +1 -1
- package/dist/modules/modelPresets/ModelPresetService.js +103 -4
- package/dist/modules/modelPresets/ModelPresetService.js.map +1 -1
- package/dist/modules/observability/GateOutcomeRecorder.d.ts +33 -0
- package/dist/modules/observability/GateOutcomeRecorder.d.ts.map +1 -0
- package/dist/modules/observability/GateOutcomeRecorder.js +45 -0
- package/dist/modules/observability/GateOutcomeRecorder.js.map +1 -0
- package/dist/modules/observability/PlatformObservabilityService.d.ts +32 -1
- package/dist/modules/observability/PlatformObservabilityService.d.ts.map +1 -1
- package/dist/modules/observability/PlatformObservabilityService.js +71 -10
- package/dist/modules/observability/PlatformObservabilityService.js.map +1 -1
- package/dist/modules/observability/platform-health.logic.d.ts +35 -4
- package/dist/modules/observability/platform-health.logic.d.ts.map +1 -1
- package/dist/modules/observability/platform-health.logic.js +45 -0
- package/dist/modules/observability/platform-health.logic.js.map +1 -1
- package/dist/modules/observability/platform-observability.logic.d.ts +41 -4
- package/dist/modules/observability/platform-observability.logic.d.ts.map +1 -1
- package/dist/modules/observability/platform-observability.logic.js +88 -6
- package/dist/modules/observability/platform-observability.logic.js.map +1 -1
- package/dist/modules/observability/retentionPass.d.ts +22 -0
- package/dist/modules/observability/retentionPass.d.ts.map +1 -1
- package/dist/modules/observability/retentionPass.js +12 -0
- package/dist/modules/observability/retentionPass.js.map +1 -1
- package/dist/modules/review/IterativeReviewService.d.ts +8 -4
- package/dist/modules/review/IterativeReviewService.d.ts.map +1 -1
- package/dist/modules/review/IterativeReviewService.js +4 -13
- package/dist/modules/review/IterativeReviewService.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BlockRepository, Clock, ExecutionEventPublisher, ExecutionInstance, IdGenerator, KaizenGrading, KaizenGradingRepository, KaizenOverview, KaizenVerifiedComboRepository, LlmCallMetricRepository, ModelProvider, ModelProviderResolver, ModelRef, WorkspaceSettingsRepository } from '@cat-factory/kernel';
|
|
2
2
|
import type { AgentContextObservabilityService } from '../observability/AgentContextObservabilityService.js';
|
|
3
|
+
import { type InlineBlockModelDeps } from '../../inlineBlockModel.js';
|
|
3
4
|
export interface KaizenServiceDependencies {
|
|
4
5
|
kaizenGradingRepository: KaizenGradingRepository;
|
|
5
6
|
kaizenVerifiedComboRepository: KaizenVerifiedComboRepository;
|
|
@@ -19,15 +20,18 @@ export interface KaizenServiceDependencies {
|
|
|
19
20
|
modelProvider?: ModelProvider;
|
|
20
21
|
/** Default model ref when nothing else resolves — the agents' routing default. */
|
|
21
22
|
modelRef?: ModelRef;
|
|
22
|
-
/** Resolve a pinned model id to a ref
|
|
23
|
-
resolveBlockModel?:
|
|
23
|
+
/** Resolve a pinned model id to a ref, under the preset's route order. */
|
|
24
|
+
resolveBlockModel?: InlineBlockModelDeps['resolveBlockModel'];
|
|
24
25
|
/**
|
|
25
26
|
* Whether a subscription harness ref can run as an INLINE call in this deployment (local
|
|
26
27
|
* mode's ambient CLI). Keeps it instead of degrading to the routing default. Absent → degrade.
|
|
27
28
|
*/
|
|
28
29
|
runsInline?: (ref: ModelRef) => boolean;
|
|
29
|
-
/**
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* The workspace's per-kind default MODEL for `kaizen` and the ROUTE order the preset in force
|
|
32
|
+
* states, from ONE read. Absent ⇒ block pin plus the routing default, on the default order.
|
|
33
|
+
*/
|
|
34
|
+
resolvePresetRouting?: InlineBlockModelDeps['resolvePresetRouting'];
|
|
31
35
|
}
|
|
32
36
|
/**
|
|
33
37
|
* The Kaizen agent: after a run completes, it grades each completed agent step by how
|
|
@@ -68,11 +72,12 @@ export declare class KaizenService {
|
|
|
68
72
|
private snapshotForStep;
|
|
69
73
|
private resolveModel;
|
|
70
74
|
/**
|
|
71
|
-
* The grader's model. Kaizen grading is just another inline LLM step, so it resolves its
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* subscription harness ref instead of degrading it) rather than
|
|
75
|
-
* here. Returns undefined only when no routing default is wired
|
|
75
|
+
* The grader's model. Kaizen grading is just another inline LLM step, so it resolves its model
|
|
76
|
+
* through the SAME shared seam every inline agent uses ({@link resolveInlineBlockModelRef} —
|
|
77
|
+
* block pin > workspace per-kind default > routing default, under the preset's route order,
|
|
78
|
+
* keeping an ambient-eligible subscription harness ref instead of degrading it) rather than
|
|
79
|
+
* re-deriving that precedence here. Returns undefined only when no routing default is wired
|
|
80
|
+
* (grader disabled), which is why the guard short-circuits the block read.
|
|
76
81
|
*/
|
|
77
82
|
private modelFor;
|
|
78
83
|
private updateCombo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaizenService.d.ts","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,KAAK,EACL,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,6BAA6B,EAE7B,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,QAAQ,EAER,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"KaizenService.d.ts","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,KAAK,EACL,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,6BAA6B,EAE7B,uBAAuB,EACvB,aAAa,EACb,qBAAqB,EACrB,QAAQ,EAER,2BAA2B,EAC5B,MAAM,qBAAqB,CAAA;AAY5B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAA;AAC5G,OAAO,EAAE,KAAK,oBAAoB,EAA8B,MAAM,2BAA2B,CAAA;AASjG,MAAM,WAAW,yBAAyB;IACxC,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,6BAA6B,EAAE,6BAA6B,CAAA;IAC5D,eAAe,EAAE,eAAe,CAAA;IAChC,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,6FAA6F;IAC7F,yBAAyB,EAAE,gCAAgC,CAAA;IAC3D,gFAAgF;IAChF,2BAA2B,CAAC,EAAE,2BAA2B,CAAA;IACzD,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,qFAAqF;IACrF,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAChC,qFAAqF;IACrF,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,kFAAkF;IAClF,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;IAC7D;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAA;IACvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,sBAAsB,CAAC,CAAA;CACpE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,yBAAyB,EAAI;IAEhE,qFAAqF;IACrF,IAAI,OAAO,IAAI,OAAO,CAErB;IAID;;;;OAIG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDpF;IAID;;;OAGG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpE;IAED,+FAA+F;IACzF,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E3E;IAID,8EAA8E;IACxE,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAM3E;IAED,8EAA8E;IAC9E,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAEnF;YAIa,aAAa;IAM3B,yFAAyF;IACzF,OAAO,CAAC,WAAW;YAIL,eAAe;YAef,YAAY;IAe1B;;;;;;;OAOG;YACW,QAAQ;YASR,WAAW;YAaX,IAAI;YAWJ,IAAI;CAOnB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DEFAULT_WORKSPACE_SETTINGS, extractJson, resolveScopedModelProvider, } from '@cat-factory/kernel';
|
|
2
2
|
import { generateText } from 'ai';
|
|
3
|
-
import { catFactoryObservability, KAIZEN_SYSTEM_PROMPT, promptVersionForKind,
|
|
3
|
+
import { catFactoryObservability, KAIZEN_SYSTEM_PROMPT, promptVersionForKind, } from '@cat-factory/agents';
|
|
4
|
+
import { resolveInlineBlockModelRef } from '../../inlineBlockModel.js';
|
|
4
5
|
import { comboKeyFor, isVerified, nextComboState } from './kaizen.logic.js';
|
|
5
6
|
/** The agent kind keying the workspace default model + observability for the grader. */
|
|
6
7
|
const KAIZEN_AGENT_KIND = 'kaizen';
|
|
@@ -209,26 +210,20 @@ export class KaizenService {
|
|
|
209
210
|
return { provider, ref };
|
|
210
211
|
}
|
|
211
212
|
/**
|
|
212
|
-
* The grader's model. Kaizen grading is just another inline LLM step, so it resolves its
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* subscription harness ref instead of degrading it) rather than
|
|
216
|
-
* here. Returns undefined only when no routing default is wired
|
|
213
|
+
* The grader's model. Kaizen grading is just another inline LLM step, so it resolves its model
|
|
214
|
+
* through the SAME shared seam every inline agent uses ({@link resolveInlineBlockModelRef} —
|
|
215
|
+
* block pin > workspace per-kind default > routing default, under the preset's route order,
|
|
216
|
+
* keeping an ambient-eligible subscription harness ref instead of degrading it) rather than
|
|
217
|
+
* re-deriving that precedence here. Returns undefined only when no routing default is wired
|
|
218
|
+
* (grader disabled), which is why the guard short-circuits the block read.
|
|
217
219
|
*/
|
|
218
220
|
async modelFor(workspaceId, blockId) {
|
|
219
221
|
if (!this.deps.modelRef)
|
|
220
222
|
return undefined;
|
|
221
223
|
const block = await this.deps.blockRepository.get(workspaceId, blockId);
|
|
222
|
-
return
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
resolveWorkspaceModelDefault: this.deps.resolveWorkspaceModelDefault,
|
|
226
|
-
...(this.deps.runsInline ? { runsInline: this.deps.runsInline } : {}),
|
|
227
|
-
}, {
|
|
228
|
-
agentKind: KAIZEN_AGENT_KIND,
|
|
229
|
-
blockModelId: block?.modelId,
|
|
230
|
-
modelPresetId: block?.modelPresetId,
|
|
231
|
-
workspaceId,
|
|
224
|
+
return resolveInlineBlockModelRef(this.deps, workspaceId, KAIZEN_AGENT_KIND, {
|
|
225
|
+
...(block?.modelId ? { modelId: block.modelId } : {}),
|
|
226
|
+
...(block?.modelPresetId ? { modelPresetId: block.modelPresetId } : {}),
|
|
232
227
|
});
|
|
233
228
|
}
|
|
234
229
|
async updateCombo(workspaceId, grading, now) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaizenService.js","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenService.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,0BAA0B,GAC3B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE3E,wFAAwF;AACxF,MAAM,iBAAiB,GAAG,QAAQ,CAAA;AAElC,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAoC7B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACK,IAAI;IAAjC,YAA6B,IAA+B;oBAA/B,IAAI;IAA8B,CAAC;IAEhE,qFAAqF;IACrF,IAAI,OAAO;QACT,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;IACjG,CAAC;IAED,6EAA6E;IAE7E;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,QAA2B;QACnE,wFAAwF;QACxF,qFAAqF;QACrF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QACzB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAAE,OAAM;QACpD,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACtC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,SAAQ;YAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC1D,4FAA4F;YAC5F,oFAAoF;YACpF,uFAAuF;YACvF,4FAA4F;YAC5F,2FAA2F;YAC3F,sFAAsF;YACtF,MAAM,QAAQ,GAAG,WAAW,CAC1B,IAAI,CAAC,SAAS,EACd,KAAK,EACL,aAAa,EACb,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,aAAa,CACnB,CAAA;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC3F,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAQ;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAChE,WAAW,EACX,QAAQ,CAAC,EAAE,EACX,SAAS,CACV,CAAA;YACD,IAAI,QAAQ;gBAAE,SAAQ;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YACjC,MAAM,OAAO,GAAkB;gBAC7B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;gBACrC,WAAW,EAAE,QAAQ,CAAC,EAAE;gBACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS;gBACT,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK;gBACL,aAAa;gBACb,QAAQ;gBACR,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,EAAE;gBACnB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf,CAAA;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACpE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,KAAa;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACvF,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,KAAK,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC;YAC/C,sFAAsF;YACtF,qFAAqF;YACrF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAC3D,WAAW,EACX,OAAO,CAAC,EAAE,EACV,WAAW,EACX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CACtB,CAAA;YACD,IAAI,CAAC,OAAO;gBAAE,SAAQ;YACtB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;gBAC3C,SAAS,EAAE,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,wFAAwF;YAC1F,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAsB;QAC1D,MAAM,OAAO,GAAkB;YAC7B,GAAG,OAAO;YACV,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;SACjC,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACpE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAErC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,6CAA6C,CAAC,CAAA;YACpF,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,iFAAiF;YACjF,oFAAoF;YACpF,oFAAoF;YACpF,8EAA8E;YAC9E,2EAA2E;YAC3E,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAC/C,WAAW,EACX,OAAO,CAAC,WAAW,EACnB,kBAAkB,EAClB,OAAO,CAAC,SAAS,CAClB;aACF,CAAC,CAAA;YACF,mFAAmF;YACnF,sFAAsF;YACtF,yFAAyF;YACzF,yFAAyF;YACzF,uFAAuF;YACvF,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,IAAI,CACb,WAAW,EACX,OAAO,EACP,+FAA+F,CAChG,CAAA;gBACD,OAAM;YACR,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAC/C,WAAW,EACX,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,WAAW,CACpB,CAAA;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,KAAK;gBACL,MAAM,EAAE,oBAAoB;gBAC5B,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;gBACvD,WAAW,EAAE,GAAG;gBAChB,eAAe,EAAE,IAAI;gBACrB,eAAe,EAAE,uBAAuB,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;aACxF,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YACjC,MAAM,QAAQ,GAAkB;gBAC9B,GAAG,OAAO;gBACV,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,WAAW,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE;gBAC3C,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,GAAG;aACf,CAAA;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YACrE,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAClD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACnF,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E,8EAA8E;IAC9E,KAAK,CAAC,WAAW,CAAC,WAAmB,EAAE,KAAK,GAAG,GAAG;QAChD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,eAAe,CAAC,WAAW,CAAC;SACrE,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAED,8EAA8E;IAC9E,gBAAgB,CAAC,WAAmB,EAAE,WAAmB;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACpF,CAAC;IAED,4EAA4E;IAEpE,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B;YAAE,OAAO,0BAA0B,CAAC,aAAa,CAAA;QAC3F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7E,OAAO,QAAQ,EAAE,aAAa,IAAI,0BAA0B,CAAC,aAAa,CAAA;IAC5E,CAAC;IAED,yFAAyF;IACjF,WAAW,CAAC,IAAkB;QACpC,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;IAC/D,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,WAAmB,EACnB,OAAsB;QAEtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,eAAe,CACzE,WAAW,EACX,OAAO,CAAC,WAAW,CACpB,CAAA;QACD,OAAO,CACL,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;YACxD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;YACxD,IAAI,CACL,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,WAAmB,EACnB,OAAe,EACf,WAAmB;QAEnB,6FAA6F;QAC7F,4FAA4F;QAC5F,4FAA4F;QAC5F,wFAAwF;QACxF,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACrD,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QACrF,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,QAAQ,CAAC,WAAmB,EAAE,OAAe;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACvE,OAAO,qBAAqB,CAC1B;YACE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAClE,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YACnE,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B;YACpE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,EACD;YACE,SAAS,EAAE,iBAAiB;YAC5B,YAAY,EAAE,KAAK,EAAE,OAAO;YAC5B,aAAa,EAAE,KAAK,EAAE,aAAa;YACnC,WAAW;SACZ,CACF,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,WAAmB,EACnB,OAAsB,EACtB,GAAW;QAEX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CACjE,WAAW,EACX,OAAO,CAAC,QAAQ,CACjB,CAAA;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IACzE,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,OAAsB,EAAE,OAAe;QAC7E,MAAM,MAAM,GAAkB;YAC5B,GAAG,OAAO;YACV,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;SACjC,CAAA;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACnE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,OAAsB;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;CACF;AASD,uFAAuF;AACvF,SAAS,YAAY,CAAC,IAAY;IAChC,kFAAkF;IAClF,+EAA+E;IAC/E,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,IAAI,GACR,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5D,CAAC,CAAE,MAAkC;QACrC,CAAC,CAAC,IAAI,CAAA;IACV,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/F,CAAC,CAAC,EAAE,CAAA;IACN,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAA;AAC5C,CAAC;AAED,8FAA8F;AAC9F,SAAS,iBAAiB,CACxB,OAAsB,EACtB,QAAqC,EACrC,KAAsB;IAEtB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CACR,oCAAoC;QAClC,eAAe,OAAO,CAAC,SAAS,YAAY,OAAO,CAAC,KAAK,qBAAqB,OAAO,CAAC,aAAa,EAAE,CACxG,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,YAAY;YACvB,KAAK,CAAC,IAAI,CAAC,6CAA6C,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAA;QAClF,IAAI,QAAQ,CAAC,UAAU;YACrB,KAAK,CAAC,IAAI,CAAC,2CAA2C,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAC9E,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,6CAA6C;gBAC3C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxD,CAAA;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CACR,kCAAkC;gBAChC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACzF,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,yFAAyF;YACvF,uDAAuD,CAC1D,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,kCAAkC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,KAAsB;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,2CAA2C,CAAA;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAA;IACzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAA;IACpF,MAAM,KAAK,GAAG;QACZ,sBAAsB,KAAK,CAAC,MAAM,EAAE;QACpC,uCAAuC,SAAS,EAAE;QAClD,iBAAiB,MAAM,EAAE;QACzB,wBAAwB,YAAY,EAAE;QACtC,4BAA4B,gBAAgB,EAAE;QAC9C,mBAAmB,aAAa,EAAE;KACnC,CAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,eAAe;IACrC,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,sDAAsD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CACzF,CAAA;IACH,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC;aACtC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,CAAA;QACpC,IAAI,QAAQ,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,eAAe,CAAC,MAAgB;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;IACxC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtE,CAAC"}
|
|
1
|
+
{"version":3,"file":"KaizenService.js","sourceRoot":"","sources":["../../../src/modules/kaizen/KaizenService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Clock, CreateModelPresetInput, IdGenerator, ModelPreset, ModelPresetRepository, UpdateModelPresetInput, WorkspaceRepository } from '@cat-factory/kernel';
|
|
1
|
+
import type { Clock, CreateModelPresetInput, GroupCacheHandle, IdGenerator, ModelFlavor, ModelPreset, ModelPresetCacheValue, ModelPresetRepository, UpdateModelPresetInput, WorkspaceRepository } from '@cat-factory/kernel';
|
|
2
2
|
export interface ModelPresetServiceDependencies {
|
|
3
3
|
modelPresetRepository: ModelPresetRepository;
|
|
4
4
|
workspaceRepository: WorkspaceRepository;
|
|
@@ -11,6 +11,13 @@ export interface ModelPresetServiceDependencies {
|
|
|
11
11
|
* choice is always preserved. Defaults to {@link DEFAULT_MODEL_PRESET_ID} (Kimi).
|
|
12
12
|
*/
|
|
13
13
|
defaultPresetId?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Optional: the `AppCaches.modelPreset` slice the run path resolves a block's preset through
|
|
16
|
+
* (its model for the kind AND its route order). Every write below invalidates the workspace
|
|
17
|
+
* group so a preset edit is visible on the very next dispatch. Absent → the run path reads live
|
|
18
|
+
* (tests / no cache wired).
|
|
19
|
+
*/
|
|
20
|
+
modelPresetCache?: GroupCacheHandle<ModelPresetCacheValue>;
|
|
14
21
|
}
|
|
15
22
|
/**
|
|
16
23
|
* CRUD for a workspace's model presets (the library a task picks its model→agent
|
|
@@ -30,7 +37,20 @@ export declare class ModelPresetService {
|
|
|
30
37
|
private readonly idGenerator;
|
|
31
38
|
private readonly clock;
|
|
32
39
|
private readonly defaultPresetId;
|
|
40
|
+
private readonly cache?;
|
|
33
41
|
constructor(deps: ModelPresetServiceDependencies);
|
|
42
|
+
/**
|
|
43
|
+
* Drop the workspace's cached preset library after a write commits. Coarse (one group == one
|
|
44
|
+
* workspace) because a write can flip which preset is the default, so a single edit's blast
|
|
45
|
+
* radius is the whole library — over-invalidation is always safe (CLAUDE.md caching rule).
|
|
46
|
+
*/
|
|
47
|
+
private invalidate;
|
|
48
|
+
/**
|
|
49
|
+
* The route order the preset in force states, for a caller that holds the service rather than
|
|
50
|
+
* the repository (the `/models` catalog). Side-effect-free and never seeds, like the free
|
|
51
|
+
* function it delegates to — see {@link resolvePresetProviderPreference}.
|
|
52
|
+
*/
|
|
53
|
+
providerPreferenceFor(workspaceId: string, modelPresetId?: string): Promise<readonly ModelFlavor[] | undefined>;
|
|
34
54
|
/** List a workspace's presets, seeding the built-in presets if none exist yet. */
|
|
35
55
|
list(workspaceId: string): Promise<ModelPreset[]>;
|
|
36
56
|
/** Create a new preset. The first one (or one flagged default) becomes the default. */
|
|
@@ -46,6 +66,9 @@ export declare class ModelPresetService {
|
|
|
46
66
|
* old presets but not the new one). The canonical base model / overrides / `version`
|
|
47
67
|
* overwrite (or create) the stored row; an existing copy's `isDefault` + `createdAt` are
|
|
48
68
|
* preserved so reseeding never silently changes which preset is the default or its ordering.
|
|
69
|
+
* A built-in declares no route preference, so a reseed also RESETS one the workspace had set on
|
|
70
|
+
* it — the same disposition as its base model and overrides, which is what "restore the canonical
|
|
71
|
+
* definition" means (a workspace wanting to keep a route order copies the preset instead).
|
|
49
72
|
* When re-materialising a built-in the workspace had deleted, it only (re)claims the default
|
|
50
73
|
* if the seed is THIS deployment's default preset AND the workspace currently has none — so
|
|
51
74
|
* reseeding never steals the default away from the user's chosen preset. Rejects an id not in
|
|
@@ -73,5 +96,34 @@ export declare class ModelPresetService {
|
|
|
73
96
|
* (never seeds), so it's safe on the hot dispatch path. Shared by both runtime facades
|
|
74
97
|
* to back `resolveWorkspaceModelDefault`.
|
|
75
98
|
*/
|
|
76
|
-
export declare function resolvePresetModelForKind(repo: ModelPresetRepository, workspaceId: string, agentKind: string, modelPresetId?: string): Promise<string>;
|
|
99
|
+
export declare function resolvePresetModelForKind(repo: ModelPresetRepository, workspaceId: string, agentKind: string, modelPresetId?: string, cache?: GroupCacheHandle<ModelPresetCacheValue>): Promise<string>;
|
|
100
|
+
/**
|
|
101
|
+
* The route order the preset in force states, or undefined for the deployment's default order.
|
|
102
|
+
* The `providerPreference` sibling of {@link resolvePresetModelForKind}: same preset selection
|
|
103
|
+
* (selected id else the workspace default), same side-effect-free contract, so the hot dispatch
|
|
104
|
+
* path and the start guard resolve the order from the same row the model id came from.
|
|
105
|
+
*
|
|
106
|
+
* Undefined covers three facts that need no distinguishing, because all three mean "nothing
|
|
107
|
+
* reorders the routes": the preset states no preference, the library is not yet seeded, and the
|
|
108
|
+
* selected id no longer exists.
|
|
109
|
+
*/
|
|
110
|
+
export declare function resolvePresetProviderPreference(repo: ModelPresetRepository, workspaceId: string, modelPresetId?: string, cache?: GroupCacheHandle<ModelPresetCacheValue>): Promise<readonly ModelFlavor[] | undefined>;
|
|
111
|
+
/** Both preset-derived facts a resolution needs, from ONE row. */
|
|
112
|
+
export interface PresetRouting {
|
|
113
|
+
/** The model id `agentKind` resolves to (`overrides[kind] ?? baseModelId`). */
|
|
114
|
+
modelId: string;
|
|
115
|
+
/** The preset's route order; undefined ⇒ the deployment's default order. */
|
|
116
|
+
providerPreference?: readonly ModelFlavor[];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The model a kind runs AND the order that model's routes are tried in, resolved from a SINGLE
|
|
120
|
+
* read of the preset in force.
|
|
121
|
+
*
|
|
122
|
+
* The two facts live in one row and every caller on the run path wants both, so asking for them
|
|
123
|
+
* separately ({@link resolvePresetModelForKind} then {@link resolvePresetProviderPreference}) reads
|
|
124
|
+
* that row twice per resolution. Those two remain for the callers that genuinely want one half —
|
|
125
|
+
* the facade-wired `resolveWorkspaceModelDefault` closure, whose signature the executors share, and
|
|
126
|
+
* the `/models` catalog, which resolves no kind — and both are now folds over this.
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolvePresetRouting(repo: ModelPresetRepository, workspaceId: string, agentKind: string, modelPresetId?: string, cache?: GroupCacheHandle<ModelPresetCacheValue>): Promise<PresetRouting>;
|
|
77
129
|
//# sourceMappingURL=ModelPresetService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelPresetService.d.ts","sourceRoot":"","sources":["../../../src/modules/modelPresets/ModelPresetService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,qBAAqB,CAAA;AAY5B,MAAM,WAAW,8BAA8B;IAC7C,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"ModelPresetService.d.ts","sourceRoot":"","sources":["../../../src/modules/modelPresets/ModelPresetService.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,13 @@ export class ModelPresetService {
|
|
|
17
17
|
idGenerator;
|
|
18
18
|
clock;
|
|
19
19
|
defaultPresetId;
|
|
20
|
+
cache;
|
|
20
21
|
constructor(deps) {
|
|
21
22
|
this.presets = deps.modelPresetRepository;
|
|
22
23
|
this.workspaceRepository = deps.workspaceRepository;
|
|
23
24
|
this.idGenerator = deps.idGenerator;
|
|
24
25
|
this.clock = deps.clock;
|
|
26
|
+
this.cache = deps.modelPresetCache;
|
|
25
27
|
// Resolve the deployment's seeded-default id to a REAL catalog id up front. Only a
|
|
26
28
|
// built-in can be seeded as the first-seed default, so a `defaultPresetId` that matches no
|
|
27
29
|
// catalog seed (a stale/mistyped value from a deploy-app wrapper) is a misconfiguration:
|
|
@@ -33,6 +35,22 @@ export class ModelPresetService {
|
|
|
33
35
|
? requested
|
|
34
36
|
: DEFAULT_MODEL_PRESET_ID;
|
|
35
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Drop the workspace's cached preset library after a write commits. Coarse (one group == one
|
|
40
|
+
* workspace) because a write can flip which preset is the default, so a single edit's blast
|
|
41
|
+
* radius is the whole library — over-invalidation is always safe (CLAUDE.md caching rule).
|
|
42
|
+
*/
|
|
43
|
+
async invalidate(workspaceId) {
|
|
44
|
+
await this.cache?.invalidateGroup(workspaceId);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The route order the preset in force states, for a caller that holds the service rather than
|
|
48
|
+
* the repository (the `/models` catalog). Side-effect-free and never seeds, like the free
|
|
49
|
+
* function it delegates to — see {@link resolvePresetProviderPreference}.
|
|
50
|
+
*/
|
|
51
|
+
providerPreferenceFor(workspaceId, modelPresetId) {
|
|
52
|
+
return resolvePresetProviderPreference(this.presets, workspaceId, modelPresetId, this.cache);
|
|
53
|
+
}
|
|
36
54
|
/** List a workspace's presets, seeding the built-in presets if none exist yet. */
|
|
37
55
|
async list(workspaceId) {
|
|
38
56
|
await requireWorkspace(this.workspaceRepository, workspaceId);
|
|
@@ -50,9 +68,13 @@ export class ModelPresetService {
|
|
|
50
68
|
overrides: input.overrides,
|
|
51
69
|
// The very first preset must be the default; otherwise honour the request.
|
|
52
70
|
isDefault: existing.length === 0 ? true : input.isDefault,
|
|
71
|
+
// An empty list is the same statement as no list — "use the default order" — so it is
|
|
72
|
+
// normalised away here rather than persisted as an order over no routes.
|
|
73
|
+
...(input.providerPreference?.length ? { providerPreference: input.providerPreference } : {}),
|
|
53
74
|
createdAt: this.clock.now(),
|
|
54
75
|
};
|
|
55
76
|
await this.presets.upsert(workspaceId, preset);
|
|
77
|
+
await this.invalidate(workspaceId);
|
|
56
78
|
return preset;
|
|
57
79
|
}
|
|
58
80
|
/** Patch a preset. Demoting the only default is rejected (one must remain). */
|
|
@@ -68,8 +90,20 @@ export class ModelPresetService {
|
|
|
68
90
|
...(patch.baseModelId !== undefined ? { baseModelId: patch.baseModelId } : {}),
|
|
69
91
|
...(patch.overrides !== undefined ? { overrides: patch.overrides } : {}),
|
|
70
92
|
...(patch.isDefault !== undefined ? { isDefault: patch.isDefault } : {}),
|
|
93
|
+
// Three distinct patches, and the empty one is the reason this is not a plain spread: an
|
|
94
|
+
// ABSENT `providerPreference` leaves the stored order alone, a non-empty one replaces it,
|
|
95
|
+
// and an EMPTY one resets the preset to the default order (so "reset" needs no route of
|
|
96
|
+
// its own). `undefined` is written, not omitted, so the reset actually clears the column.
|
|
97
|
+
...(patch.providerPreference !== undefined
|
|
98
|
+
? {
|
|
99
|
+
providerPreference: patch.providerPreference.length
|
|
100
|
+
? patch.providerPreference
|
|
101
|
+
: undefined,
|
|
102
|
+
}
|
|
103
|
+
: {}),
|
|
71
104
|
};
|
|
72
105
|
await this.presets.upsert(workspaceId, updated);
|
|
106
|
+
await this.invalidate(workspaceId);
|
|
73
107
|
return updated;
|
|
74
108
|
}
|
|
75
109
|
/** Remove a preset. The default preset cannot be removed. */
|
|
@@ -80,6 +114,7 @@ export class ModelPresetService {
|
|
|
80
114
|
throw new ConflictError('Cannot delete the default preset; promote another preset first.');
|
|
81
115
|
}
|
|
82
116
|
await this.presets.remove(workspaceId, id);
|
|
117
|
+
await this.invalidate(workspaceId);
|
|
83
118
|
}
|
|
84
119
|
/**
|
|
85
120
|
* Restore a built-in preset to its current catalog definition ({@link seedModelPresets}).
|
|
@@ -88,6 +123,9 @@ export class ModelPresetService {
|
|
|
88
123
|
* old presets but not the new one). The canonical base model / overrides / `version`
|
|
89
124
|
* overwrite (or create) the stored row; an existing copy's `isDefault` + `createdAt` are
|
|
90
125
|
* preserved so reseeding never silently changes which preset is the default or its ordering.
|
|
126
|
+
* A built-in declares no route preference, so a reseed also RESETS one the workspace had set on
|
|
127
|
+
* it — the same disposition as its base model and overrides, which is what "restore the canonical
|
|
128
|
+
* definition" means (a workspace wanting to keep a route order copies the preset instead).
|
|
91
129
|
* When re-materialising a built-in the workspace had deleted, it only (re)claims the default
|
|
92
130
|
* if the seed is THIS deployment's default preset AND the workspace currently has none — so
|
|
93
131
|
* reseeding never steals the default away from the user's chosen preset. Rejects an id not in
|
|
@@ -113,6 +151,7 @@ export class ModelPresetService {
|
|
|
113
151
|
createdAt: existing?.createdAt ?? this.clock.now(),
|
|
114
152
|
};
|
|
115
153
|
await this.presets.upsert(workspaceId, preset);
|
|
154
|
+
await this.invalidate(workspaceId);
|
|
116
155
|
return preset;
|
|
117
156
|
}
|
|
118
157
|
/**
|
|
@@ -138,6 +177,9 @@ export class ModelPresetService {
|
|
|
138
177
|
createdAt: now + offset++,
|
|
139
178
|
});
|
|
140
179
|
}
|
|
180
|
+
// A dispatch that resolved before first-use seeding cached the null default; drop it so the
|
|
181
|
+
// very next one sees the seeded library rather than the deployment's routing fallback.
|
|
182
|
+
await this.invalidate(workspaceId);
|
|
141
183
|
}
|
|
142
184
|
/** A catalog seed as a persisted preset (its stable id + version, without `createdAt`/default). */
|
|
143
185
|
fromSeed(seed) {
|
|
@@ -158,9 +200,66 @@ export class ModelPresetService {
|
|
|
158
200
|
* (never seeds), so it's safe on the hot dispatch path. Shared by both runtime facades
|
|
159
201
|
* to back `resolveWorkspaceModelDefault`.
|
|
160
202
|
*/
|
|
161
|
-
export async function resolvePresetModelForKind(repo, workspaceId, agentKind, modelPresetId) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
203
|
+
export async function resolvePresetModelForKind(repo, workspaceId, agentKind, modelPresetId, cache) {
|
|
204
|
+
return (await resolvePresetRouting(repo, workspaceId, agentKind, modelPresetId, cache)).modelId;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* The route order the preset in force states, or undefined for the deployment's default order.
|
|
208
|
+
* The `providerPreference` sibling of {@link resolvePresetModelForKind}: same preset selection
|
|
209
|
+
* (selected id else the workspace default), same side-effect-free contract, so the hot dispatch
|
|
210
|
+
* path and the start guard resolve the order from the same row the model id came from.
|
|
211
|
+
*
|
|
212
|
+
* Undefined covers three facts that need no distinguishing, because all three mean "nothing
|
|
213
|
+
* reorders the routes": the preset states no preference, the library is not yet seeded, and the
|
|
214
|
+
* selected id no longer exists.
|
|
215
|
+
*/
|
|
216
|
+
export async function resolvePresetProviderPreference(repo, workspaceId, modelPresetId, cache) {
|
|
217
|
+
return preferenceOf(await presetInForce(repo, workspaceId, modelPresetId, cache));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* The model a kind runs AND the order that model's routes are tried in, resolved from a SINGLE
|
|
221
|
+
* read of the preset in force.
|
|
222
|
+
*
|
|
223
|
+
* The two facts live in one row and every caller on the run path wants both, so asking for them
|
|
224
|
+
* separately ({@link resolvePresetModelForKind} then {@link resolvePresetProviderPreference}) reads
|
|
225
|
+
* that row twice per resolution. Those two remain for the callers that genuinely want one half —
|
|
226
|
+
* the facade-wired `resolveWorkspaceModelDefault` closure, whose signature the executors share, and
|
|
227
|
+
* the `/models` catalog, which resolves no kind — and both are now folds over this.
|
|
228
|
+
*/
|
|
229
|
+
export async function resolvePresetRouting(repo, workspaceId, agentKind, modelPresetId, cache) {
|
|
230
|
+
const preset = await presetInForce(repo, workspaceId, modelPresetId, cache);
|
|
231
|
+
const preference = preferenceOf(preset);
|
|
232
|
+
return {
|
|
233
|
+
modelId: modelForKindFromPreset(preset, agentKind),
|
|
234
|
+
...(preference ? { providerPreference: preference } : {}),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/** An empty stored order is the same statement as none: "walk the deployment's default". */
|
|
238
|
+
function preferenceOf(preset) {
|
|
239
|
+
const preference = preset?.providerPreference;
|
|
240
|
+
return preference?.length ? preference : undefined;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* The preset a block resolves under: its selected one, else the workspace default.
|
|
244
|
+
*
|
|
245
|
+
* Read through the `AppCaches.modelPreset` slice when one is wired, keyed per resolved id so a
|
|
246
|
+
* selected preset and the default cache separately, grouped by workspace so one write drops the
|
|
247
|
+
* whole library. A null (deleted selected id / unseeded default) caches as a VALUE and still falls
|
|
248
|
+
* through, exactly as an uncached read would — the `ModelPresetCacheValue` wrapper, since
|
|
249
|
+
* layered-loader treats a bare null as unresolved. The shape is `RunMergePolicy.resolve`'s, one
|
|
250
|
+
* row over.
|
|
251
|
+
*/
|
|
252
|
+
async function presetInForce(repo, workspaceId, modelPresetId, cache) {
|
|
253
|
+
const read = async (key, load) => {
|
|
254
|
+
if (!cache)
|
|
255
|
+
return load();
|
|
256
|
+
return (await cache.get(key, workspaceId, async () => ({ preset: await load() }))).preset;
|
|
257
|
+
};
|
|
258
|
+
if (modelPresetId) {
|
|
259
|
+
const picked = await read(`picked:${modelPresetId}`, () => repo.get(workspaceId, modelPresetId));
|
|
260
|
+
if (picked)
|
|
261
|
+
return picked;
|
|
262
|
+
}
|
|
263
|
+
return read('default', () => repo.getDefault(workspaceId));
|
|
165
264
|
}
|
|
166
265
|
//# sourceMappingURL=ModelPresetService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelPresetService.js","sourceRoot":"","sources":["../../../src/modules/modelPresets/ModelPresetService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModelPresetService.js","sourceRoot":"","sources":["../../../src/modules/modelPresets/ModelPresetService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ExecutionInstance, GateOutcomeKind, GateOutcomeRepository, Logger, PipelineStep } from '@cat-factory/kernel';
|
|
2
|
+
/** What the caller knows at the moment a gate settles. */
|
|
3
|
+
export interface SettledGate {
|
|
4
|
+
workspaceId: string;
|
|
5
|
+
instance: ExecutionInstance;
|
|
6
|
+
step: PipelineStep;
|
|
7
|
+
/** The gate step's index, which (with the run) gives the row its replay-stable identity. */
|
|
8
|
+
stepIndex: number;
|
|
9
|
+
/** The helper agent kind this gate escalates to, or null when it has none. */
|
|
10
|
+
helperKind: string | null;
|
|
11
|
+
outcome: GateOutcomeKind;
|
|
12
|
+
}
|
|
13
|
+
export interface GateOutcomeRecorderDeps {
|
|
14
|
+
gateOutcomeRepository: GateOutcomeRepository;
|
|
15
|
+
now: () => number;
|
|
16
|
+
logger?: Logger;
|
|
17
|
+
}
|
|
18
|
+
export declare class GateOutcomeRecorder {
|
|
19
|
+
private readonly deps;
|
|
20
|
+
constructor(deps: GateOutcomeRecorderDeps);
|
|
21
|
+
/**
|
|
22
|
+
* Record a gate's terminal verdict. Never throws.
|
|
23
|
+
*
|
|
24
|
+
* The row id is DERIVED (`<runId>:<stepIndex>:<outcome>`) rather than minted, because the
|
|
25
|
+
* durable drivers replay: a minted id would let one settle become two rows and inflate every
|
|
26
|
+
* statistic the projection exists to report. Deriving it makes the write idempotent under
|
|
27
|
+
* replay while still letting a step that is RE-RUN and ends DIFFERENTLY record that second,
|
|
28
|
+
* genuinely different verdict. A re-run that ends the same way collapses onto the first row,
|
|
29
|
+
* which is the honest reading: the gate settled that way, once, on this step.
|
|
30
|
+
*/
|
|
31
|
+
record(settled: SettledGate): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=GateOutcomeRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GateOutcomeRecorder.d.ts","sourceRoot":"","sources":["../../../src/modules/observability/GateOutcomeRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,MAAM,EACN,YAAY,EACb,MAAM,qBAAqB,CAAA;AAY5B,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,eAAe,CAAA;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,GAAG,EAAE,MAAM,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,uBAAuB,EAAI;IAE9D;;;;;;;;;OASG;IACG,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhD;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { noopLogger, runBestEffort } from '@cat-factory/kernel';
|
|
2
|
+
export class GateOutcomeRecorder {
|
|
3
|
+
deps;
|
|
4
|
+
constructor(deps) {
|
|
5
|
+
this.deps = deps;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Record a gate's terminal verdict. Never throws.
|
|
9
|
+
*
|
|
10
|
+
* The row id is DERIVED (`<runId>:<stepIndex>:<outcome>`) rather than minted, because the
|
|
11
|
+
* durable drivers replay: a minted id would let one settle become two rows and inflate every
|
|
12
|
+
* statistic the projection exists to report. Deriving it makes the write idempotent under
|
|
13
|
+
* replay while still letting a step that is RE-RUN and ends DIFFERENTLY record that second,
|
|
14
|
+
* genuinely different verdict. A re-run that ends the same way collapses onto the first row,
|
|
15
|
+
* which is the honest reading: the gate settled that way, once, on this step.
|
|
16
|
+
*/
|
|
17
|
+
async record(settled) {
|
|
18
|
+
const { workspaceId, instance, step, stepIndex, helperKind, outcome } = settled;
|
|
19
|
+
const gate = step.gate;
|
|
20
|
+
if (!gate)
|
|
21
|
+
return;
|
|
22
|
+
const now = this.deps.now();
|
|
23
|
+
// A gate that never dispatched a helper has no attempt log; the count of FAILED entries is
|
|
24
|
+
// what separates "the fixer keeps crashing" from "the fixer cannot fix it".
|
|
25
|
+
const helperFailures = (gate.attemptLog ?? []).filter((a) => a.outcome === 'failed').length;
|
|
26
|
+
await runBestEffort(this.deps.logger ?? noopLogger, 'gate-outcome: record settled gate', () => this.deps.gateOutcomeRepository.record({
|
|
27
|
+
id: `${instance.id}:${stepIndex}:${outcome}`,
|
|
28
|
+
workspaceId,
|
|
29
|
+
executionId: instance.id,
|
|
30
|
+
blockId: instance.blockId,
|
|
31
|
+
gateKind: step.agentKind,
|
|
32
|
+
helperKind,
|
|
33
|
+
outcome,
|
|
34
|
+
attempts: gate.attempts,
|
|
35
|
+
maxAttempts: gate.maxAttempts,
|
|
36
|
+
helperFailures,
|
|
37
|
+
// `watchSince` is stamped on every gate's first entry (not only the time-windowed
|
|
38
|
+
// ones), so it is the gate's own start. Null rather than 0 when it is somehow unset:
|
|
39
|
+
// a duration of zero would read as an instant gate, which is a different claim.
|
|
40
|
+
durationMs: gate.watchSince != null ? Math.max(0, now - gate.watchSince) : null,
|
|
41
|
+
createdAt: now,
|
|
42
|
+
}), { workspaceId, executionId: instance.id, gateKind: step.agentKind, outcome });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=GateOutcomeRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GateOutcomeRecorder.js","sourceRoot":"","sources":["../../../src/modules/observability/GateOutcomeRecorder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AA6B/D,MAAM,OAAO,mBAAmB;IACD,IAAI;IAAjC,YAA6B,IAA6B;oBAA7B,IAAI;IAA4B,CAAC;IAE9D;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,OAAoB;QAC/B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAC3B,2FAA2F;QAC3F,4EAA4E;QAC5E,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAA;QAC3F,MAAM,aAAa,CACjB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,UAAU,EAC9B,mCAAmC,EACnC,GAAG,EAAE,CACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;YACrC,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,SAAS,IAAI,OAAO,EAAE;YAC5C,WAAW;YACX,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU;YACV,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc;YACd,kFAAkF;YAClF,qFAAqF;YACrF,gFAAgF;YAChF,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YAC/E,SAAS,EAAE,GAAG;SACf,CAAC,EACJ,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAC7E,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type { Clock, PlatformMetricsRepository } from '@cat-factory/kernel';
|
|
1
|
+
import type { Clock, GateOutcomeRepository, PlatformMetricsRepository } from '@cat-factory/kernel';
|
|
2
2
|
import type { PlatformObservability, PlatformObservabilityWindow } from '@cat-factory/contracts';
|
|
3
3
|
export interface PlatformObservabilityServiceDependencies {
|
|
4
4
|
platformMetricsRepository: PlatformMetricsRepository;
|
|
5
|
+
/**
|
|
6
|
+
* The settled-gate projection behind the attempt statistics. Optional so a facade that has
|
|
7
|
+
* not wired it (or a test) degrades to an EMPTY gate list rather than failing the whole
|
|
8
|
+
* dashboard read: the projection is the newest of the sinks and the only one whose absence
|
|
9
|
+
* costs a section rather than the page.
|
|
10
|
+
*/
|
|
11
|
+
gateOutcomeRepository?: GateOutcomeRepository;
|
|
5
12
|
clock: Clock;
|
|
6
13
|
}
|
|
7
14
|
/**
|
|
@@ -9,10 +16,34 @@ export interface PlatformObservabilityServiceDependencies {
|
|
|
9
16
|
* behind {@link PlatformMetricsRepository} into the dashboard's windowed projection. Each
|
|
10
17
|
* rollup is one SQL GROUP BY, run in parallel (independent aggregates, NOT an N+1); the
|
|
11
18
|
* reshaping into totals / trend is the pure logic in `platform-observability.logic.ts`.
|
|
19
|
+
*
|
|
20
|
+
* Two windows' worth of routing lives here: `1h`/`24h`/`7d` scan `agent_runs` live, while
|
|
21
|
+
* `30d`/`90d` read the daily rollup the retention sweep materialises. The projection SAYS
|
|
22
|
+
* which answered (`source`) and, on the rollup path, how far the rollup actually reaches
|
|
23
|
+
* (`rolledUpThrough`), because an un-materialised rollup and an idle quarter produce the same
|
|
24
|
+
* empty series and are opposite facts.
|
|
12
25
|
*/
|
|
13
26
|
export declare class PlatformObservabilityService {
|
|
14
27
|
private readonly deps;
|
|
15
28
|
constructor(deps: PlatformObservabilityServiceDependencies);
|
|
16
29
|
summarize(accountId: string, window: PlatformObservabilityWindow): Promise<PlatformObservability>;
|
|
30
|
+
/**
|
|
31
|
+
* A bounded, per-workspace-capped sample of the account's recently FAILED runs since
|
|
32
|
+
* `sinceEpochMs`: the evidence a `platform_health` alert card deep-links to.
|
|
33
|
+
*
|
|
34
|
+
* On the service rather than read straight off the port because the alert sweep is a
|
|
35
|
+
* consumer of this module, not of the store: everything else it needs already arrives
|
|
36
|
+
* through `summarize`, and reaching past the service for one query is how a second,
|
|
37
|
+
* differently-scoped copy of the account filter gets written.
|
|
38
|
+
*/
|
|
39
|
+
failingRuns(accountId: string, sinceEpochMs: number, perWorkspaceLimit: number): Promise<import("@cat-factory/kernel").PlatformFailedRunRef[]>;
|
|
40
|
+
/** The live path: three independent aggregates over `agent_runs`. */
|
|
41
|
+
private summarizeFromRuns;
|
|
42
|
+
/**
|
|
43
|
+
* The long-window path: ONE read of the daily rollup serves the totals, the trend and the
|
|
44
|
+
* failure taxonomy alike (each rollup row carries the day, the status and, for a failure,
|
|
45
|
+
* its kind), plus the watermark read that says how far the rollup reaches.
|
|
46
|
+
*/
|
|
47
|
+
private summarizeFromRollup;
|
|
17
48
|
}
|
|
18
49
|
//# sourceMappingURL=PlatformObservabilityService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformObservabilityService.d.ts","sourceRoot":"","sources":["../../../src/modules/observability/PlatformObservabilityService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"PlatformObservabilityService.d.ts","sourceRoot":"","sources":["../../../src/modules/observability/PlatformObservabilityService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAClG,OAAO,KAAK,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;AAUhG,MAAM,WAAW,wCAAwC;IACvD,yBAAyB,EAAE,yBAAyB,CAAA;IACpD;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,KAAK,EAAE,KAAK,CAAA;CACb;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,4BAA4B;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,wCAAwC,EAAI;IAEzE,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,qBAAqB,CAAC,CA6BhC;IAED;;;;;;;;OAQG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iEAMnF;IAED,qEAAqE;YACvD,iBAAiB;IAuB/B;;;;OAIG;YACW,mBAAmB;CAkBlC"}
|