@telora/daemon 0.17.88 → 0.17.98
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/build-info.json +7 -3
- package/dist/capability-pointer.d.ts +49 -0
- package/dist/capability-pointer.d.ts.map +1 -0
- package/dist/capability-pointer.js +54 -0
- package/dist/capability-pointer.js.map +1 -0
- package/dist/cli/codex-provision.d.ts +12 -21
- package/dist/cli/codex-provision.d.ts.map +1 -1
- package/dist/cli/codex-provision.js +13 -19
- package/dist/cli/codex-provision.js.map +1 -1
- package/dist/cli/session-state.d.ts +12 -9
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +14 -9
- package/dist/cli/session-state.js.map +1 -1
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +1 -0
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +1 -0
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/delivery-advance-block.d.ts +70 -13
- package/dist/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery-advance-block.js +200 -21
- package/dist/delivery-advance-block.js.map +1 -1
- package/dist/delivery-lifecycle.d.ts +1 -1
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +1 -1
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/discovery-poll.d.ts +9 -0
- package/dist/discovery-poll.d.ts.map +1 -1
- package/dist/discovery-poll.js +21 -4
- package/dist/discovery-poll.js.map +1 -1
- package/dist/focus-executor.d.ts +10 -9
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +36 -23
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus-lifecycle.js +1 -0
- package/dist/focus-lifecycle.js.map +1 -1
- package/dist/focus-merge.d.ts +27 -17
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +84 -45
- package/dist/focus-merge.js.map +1 -1
- package/dist/queries/issues.d.ts +72 -0
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +131 -0
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/local-models.d.ts +15 -5
- package/dist/queries/local-models.d.ts.map +1 -1
- package/dist/queries/local-models.js +15 -6
- package/dist/queries/local-models.js.map +1 -1
- package/dist/queries/schemas.d.ts +4 -2
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +15 -5
- package/dist/queries/schemas.js.map +1 -1
- package/dist/resolvers/focus-context.d.ts +14 -3
- package/dist/resolvers/focus-context.d.ts.map +1 -1
- package/dist/resolvers/focus-context.js +21 -15
- package/dist/resolvers/focus-context.js.map +1 -1
- package/dist/resolvers/shared/wiki.d.ts +23 -4
- package/dist/resolvers/shared/wiki.d.ts.map +1 -1
- package/dist/resolvers/shared/wiki.js +32 -4
- package/dist/resolvers/shared/wiki.js.map +1 -1
- package/dist/supabase.d.ts +1 -1
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +1 -1
- package/dist/supabase.js.map +1 -1
- package/dist/worktree-safety.d.ts +36 -0
- package/dist/worktree-safety.d.ts.map +1 -1
- package/dist/worktree-safety.js +69 -0
- package/dist/worktree-safety.js.map +1 -1
- package/package.json +3 -3
package/dist/focus-merge.js
CHANGED
|
@@ -9,25 +9,21 @@ import { fetchEffectiveWorkflow, reportGitState, getMergeConflictDeliveries } fr
|
|
|
9
9
|
import { mergeToIntegration } from './git.js';
|
|
10
10
|
import { mergeBackFromIntegration } from './git-merge.js';
|
|
11
11
|
import { mergeDeliveryBranch } from './delivery-lifecycle.js';
|
|
12
|
-
import { createEscalation } from './queries/issues.js';
|
|
12
|
+
import { createEscalation, hasOpenWorktreeDirtyEscalation, resolveOpenWorktreeDirtyEscalations, MERGE_CONFLICT_ESCALATION_KIND, MERGE_REFUSED_DIRTY_ESCALATION_KIND, } from './queries/issues.js';
|
|
13
13
|
import { updateDeliveryMergeCommitSha } from './queries/deliveries.js';
|
|
14
14
|
import { withRetry, sendMessage, ESCALATION_REASONS, ESCALATION_DISPOSITIONS } from '@telora/daemon-core';
|
|
15
15
|
import { spawnResolutionAgent } from './spawner/index.js';
|
|
16
16
|
import { getFocusWorktree } from './focus-worktree-state.js';
|
|
17
17
|
import { worktreeHasUncommittedChanges } from './worktree-safety.js';
|
|
18
|
-
// Track deliveries with pending merge conflict escalations to avoid duplicates
|
|
19
|
-
const pendingMergeConflictDeliveries = new Set();
|
|
20
|
-
// Track deliveries with a pending dirty-worktree merge-refusal escalation, to
|
|
21
|
-
// avoid filing a duplicate on every merge tick while the worktree stays dirty.
|
|
22
|
-
const pendingDirtyWorktreeDeliveries = new Set();
|
|
23
18
|
/**
|
|
24
19
|
* Refuse a focus-branch merge when the worktree still has uncommitted changes.
|
|
25
20
|
*
|
|
26
21
|
* A merge of a dirty worktree would either silently drop the uncommitted work
|
|
27
22
|
* or merge an unintended tree -- never acceptable. This guard runs before any
|
|
28
23
|
* merge attempt: if the worktree is dirty it files an escalation (deduped
|
|
29
|
-
*
|
|
30
|
-
*
|
|
24
|
+
* durably at focus grain across the sibling classes -- see
|
|
25
|
+
* hasOpenWorktreeDirtyEscalation) and returns refused=true so the caller aborts
|
|
26
|
+
* the merge. A read-only audit worktree that an agent dirtied is the canonical
|
|
31
27
|
* case, but the guard is generic -- any dirty worktree refuses.
|
|
32
28
|
*
|
|
33
29
|
* Returns refused=false (proceed) when the worktree is clean or no path is
|
|
@@ -36,18 +32,30 @@ const pendingDirtyWorktreeDeliveries = new Set();
|
|
|
36
32
|
export async function refuseMergeIfWorktreeDirty(params, deps = {}) {
|
|
37
33
|
const hasUncommitted = deps.worktreeHasUncommittedChanges ?? worktreeHasUncommittedChanges;
|
|
38
34
|
const createEsc = deps.createEscalation ?? createEscalation;
|
|
39
|
-
const
|
|
35
|
+
const hasOpenEsc = deps.hasOpenWorktreeDirtyEscalation ?? hasOpenWorktreeDirtyEscalation;
|
|
36
|
+
const { worktreePath, organizationId, sessionId, deliveryId, deliveryName, focusId, branchName, integrationBranch } = params;
|
|
40
37
|
if (!worktreePath || !hasUncommitted(worktreePath)) {
|
|
41
38
|
return { refused: false };
|
|
42
39
|
}
|
|
43
40
|
console.warn(`[focus-merge] REFUSING merge of "${deliveryName}" (${branchName} -> ${integrationBranch}): ` +
|
|
44
41
|
`worktree ${worktreePath} has uncommitted changes.`);
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
42
|
+
// Durable, focus-grain dedup: at most one open worktree-dirty escalation per
|
|
43
|
+
// FOCUS, collapsed across the sibling classes (advance_blocked /
|
|
44
|
+
// merge_conflict / merge_refused_dirty). If any sibling is already open for
|
|
45
|
+
// the focus, suppress -- one physical dirty-worktree fact yields one row,
|
|
46
|
+
// and the suppression survives a daemon restart (it reads the DB, holds no
|
|
47
|
+
// in-memory state). Fail open: if the lookup errors we still refuse the
|
|
48
|
+
// merge, and proceed to file rather than swallow a genuine first escalation.
|
|
49
|
+
let alreadyOpen = false;
|
|
50
|
+
try {
|
|
51
|
+
alreadyOpen = await hasOpenEsc(focusId);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
console.warn(`[focus-merge] Open worktree-dirty escalation lookup failed for "${deliveryName}", proceeding to file: ${err.message}`);
|
|
55
|
+
}
|
|
56
|
+
if (alreadyOpen) {
|
|
48
57
|
return { refused: true };
|
|
49
58
|
}
|
|
50
|
-
pendingDirtyWorktreeDeliveries.add(deliveryId);
|
|
51
59
|
try {
|
|
52
60
|
await withRetry(() => createEsc({
|
|
53
61
|
organizationId,
|
|
@@ -55,7 +63,8 @@ export async function refuseMergeIfWorktreeDirty(params, deps = {}) {
|
|
|
55
63
|
issueId: null,
|
|
56
64
|
reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
|
|
57
65
|
disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
|
|
58
|
-
|
|
66
|
+
escalationKind: MERGE_REFUSED_DIRTY_ESCALATION_KIND,
|
|
67
|
+
anchor: { deliveryId, focusId, branch: branchName },
|
|
59
68
|
description: `Merge refused: focus worktree has uncommitted changes.\n\n` +
|
|
60
69
|
`**Focus/Delivery:** ${deliveryName}\n` +
|
|
61
70
|
`**Source branch:** ${branchName}\n` +
|
|
@@ -71,18 +80,9 @@ export async function refuseMergeIfWorktreeDirty(params, deps = {}) {
|
|
|
71
80
|
}
|
|
72
81
|
catch (err) {
|
|
73
82
|
console.error(`[focus-merge] Failed to file dirty-worktree merge-refusal escalation for "${deliveryName}": ${err.message}`);
|
|
74
|
-
// Remove from pending so a later tick can retry filing.
|
|
75
|
-
pendingDirtyWorktreeDeliveries.delete(deliveryId);
|
|
76
83
|
}
|
|
77
84
|
return { refused: true };
|
|
78
85
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Clear the pending dirty-worktree merge-refusal flag for a delivery (e.g.,
|
|
81
|
-
* after the worktree is cleaned and a merge succeeds).
|
|
82
|
-
*/
|
|
83
|
-
export function clearDirtyWorktreeFlag(deliveryId) {
|
|
84
|
-
pendingDirtyWorktreeDeliveries.delete(deliveryId);
|
|
85
|
-
}
|
|
86
86
|
/**
|
|
87
87
|
* Report merge_conflict git state for a delivery.
|
|
88
88
|
*
|
|
@@ -99,30 +99,51 @@ export async function reportMergeConflictState(deliveryId, branchName) {
|
|
|
99
99
|
/**
|
|
100
100
|
* Create an escalation for a merge conflict and report the git state.
|
|
101
101
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
102
|
+
* Durable, focus-grain dedup: skips escalation creation if any sibling
|
|
103
|
+
* worktree-dirty escalation (advance_blocked / merge_conflict /
|
|
104
|
+
* merge_refused_dirty) is already open for the FOCUS. Because the lookup
|
|
105
|
+
* queries the DB rather than an in-memory Set, the suppression survives a
|
|
106
|
+
* daemon restart and collapses across the sibling paths. Always reports
|
|
107
|
+
* merge_conflict git state regardless (git-state surfacing is not deduped --
|
|
108
|
+
* only the human-facing escalation row is).
|
|
105
109
|
*
|
|
106
110
|
* Called by all focus-level merge callers when mergeToIntegration fails.
|
|
107
111
|
*/
|
|
108
|
-
export async function escalateMergeConflict(params) {
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
export async function escalateMergeConflict(params, deps = {}) {
|
|
113
|
+
const createEsc = deps.createEscalation ?? createEscalation;
|
|
114
|
+
const hasOpenEsc = deps.hasOpenWorktreeDirtyEscalation ?? hasOpenWorktreeDirtyEscalation;
|
|
115
|
+
const reportState = deps.reportGitState ?? reportGitState;
|
|
116
|
+
const { organizationId, sessionId, deliveryId, deliveryName, focusId, branchName, integrationBranch, mergeError } = params;
|
|
117
|
+
// Always report merge_conflict git state (git-state surfacing is not deduped).
|
|
118
|
+
try {
|
|
119
|
+
await reportState(deliveryId, 'merge_conflict', branchName);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
console.warn(`[focus-merge] reportGitState merge_conflict failed for ${deliveryId}:`, err.message);
|
|
123
|
+
}
|
|
124
|
+
// Durable, focus-grain dedup across the sibling classes. Fail open: if the
|
|
125
|
+
// lookup errors we proceed to file rather than swallow a genuine first
|
|
126
|
+
// escalation.
|
|
127
|
+
let alreadyOpen = false;
|
|
128
|
+
try {
|
|
129
|
+
alreadyOpen = await hasOpenEsc(focusId);
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
console.warn(`[focus-merge] Open worktree-dirty escalation lookup failed for "${deliveryName}", proceeding to file: ${err.message}`);
|
|
133
|
+
}
|
|
134
|
+
if (alreadyOpen) {
|
|
135
|
+
console.log(`[focus-merge] Worktree-dirty escalation already open for focus ${focusId}, skipping duplicate merge-conflict row`);
|
|
115
136
|
return;
|
|
116
137
|
}
|
|
117
|
-
pendingMergeConflictDeliveries.add(deliveryId);
|
|
118
138
|
try {
|
|
119
|
-
await withRetry(() =>
|
|
139
|
+
await withRetry(() => createEsc({
|
|
120
140
|
organizationId,
|
|
121
141
|
sessionId,
|
|
122
142
|
issueId: null,
|
|
123
143
|
reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
|
|
124
144
|
disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
|
|
125
|
-
|
|
145
|
+
escalationKind: MERGE_CONFLICT_ESCALATION_KIND,
|
|
146
|
+
anchor: { deliveryId, focusId, branch: branchName },
|
|
126
147
|
description: `Merge conflict merging focus branch into integration.\n\n` +
|
|
127
148
|
`**Delivery:** ${deliveryName}\n` +
|
|
128
149
|
`**Source branch:** ${branchName}\n` +
|
|
@@ -136,15 +157,27 @@ export async function escalateMergeConflict(params) {
|
|
|
136
157
|
}
|
|
137
158
|
catch (err) {
|
|
138
159
|
console.error(`[focus-merge] Failed to create merge conflict escalation for "${deliveryName}": ${err.message}`);
|
|
139
|
-
// Remove from pending set so a retry can create it later
|
|
140
|
-
pendingMergeConflictDeliveries.delete(deliveryId);
|
|
141
160
|
}
|
|
142
161
|
}
|
|
143
162
|
/**
|
|
144
|
-
*
|
|
163
|
+
* Best-effort: close any open merge_conflict escalation for the focuses behind a
|
|
164
|
+
* branch group once the merge has actually gone through. A clean worktree does
|
|
165
|
+
* NOT clear a content conflict -- only a successful merge does -- so the
|
|
166
|
+
* merge-success path (not the advance-block clean path) owns merge_conflict
|
|
167
|
+
* auto-resolution. Fire-and-forget with a logged catch so it never blocks the
|
|
168
|
+
* merge bookkeeping.
|
|
145
169
|
*/
|
|
146
|
-
|
|
147
|
-
|
|
170
|
+
function resolveMergeConflictEscalations(deliveries) {
|
|
171
|
+
const focusIds = new Set(deliveries.map((d) => d.focus_id).filter((id) => !!id));
|
|
172
|
+
for (const focusId of focusIds) {
|
|
173
|
+
resolveOpenWorktreeDirtyEscalations(focusId, [MERGE_CONFLICT_ESCALATION_KIND])
|
|
174
|
+
.then((n) => {
|
|
175
|
+
if (n > 0) {
|
|
176
|
+
console.log(`[focus-merge] Merge resolved for focus ${focusId}; auto-resolved ${n} merge-conflict escalation(s).`);
|
|
177
|
+
}
|
|
178
|
+
})
|
|
179
|
+
.catch((err) => console.warn(`[focus-merge] Auto-resolve of merge-conflict escalation failed for focus ${focusId}: ${err.message}`));
|
|
180
|
+
}
|
|
148
181
|
}
|
|
149
182
|
/**
|
|
150
183
|
* Check for deliveries stuck in merge_conflict state and retry the merge.
|
|
@@ -154,7 +187,7 @@ export function clearMergeConflictFlag(deliveryId) {
|
|
|
154
187
|
* merges), and retries mergeToIntegration for each unique branch.
|
|
155
188
|
*
|
|
156
189
|
* On success: reports merged_to_integration for all deliveries on that
|
|
157
|
-
* branch and
|
|
190
|
+
* branch and auto-resolves their open merge_conflict escalations.
|
|
158
191
|
* On failure: logs quietly (the existing escalation remains active).
|
|
159
192
|
*/
|
|
160
193
|
export async function checkResolvedMergeConflicts(config) {
|
|
@@ -189,11 +222,14 @@ export async function checkResolvedMergeConflicts(config) {
|
|
|
189
222
|
});
|
|
190
223
|
if (mergeResult.success) {
|
|
191
224
|
console.log(`[focus-merge] Merge retry succeeded for branch ${branchName}`);
|
|
192
|
-
// Update all deliveries in this branch group
|
|
225
|
+
// Update all deliveries in this branch group. Dedup is durable now (an
|
|
226
|
+
// open escalation suppresses re-filing); now that the merge succeeded we
|
|
227
|
+
// also auto-resolve the open merge_conflict escalation(s) for the focus so
|
|
228
|
+
// a resolved-in-fact conflict stops sitting in the human inbox.
|
|
193
229
|
for (const d of deliveries) {
|
|
194
|
-
clearMergeConflictFlag(d.delivery_id);
|
|
195
230
|
reportGitState(d.delivery_id, 'merged_to_integration').catch((err) => console.warn(`[focus-merge] reportGitState merged_to_integration failed for ${d.delivery_id}:`, err.message));
|
|
196
231
|
}
|
|
232
|
+
resolveMergeConflictEscalations(deliveries);
|
|
197
233
|
}
|
|
198
234
|
else {
|
|
199
235
|
console.log(`[focus-merge] Merge retry still failing for branch ${branchName}: ${mergeResult.error ?? 'unknown'}`);
|
|
@@ -228,9 +264,9 @@ export async function checkResolvedMergeConflicts(config) {
|
|
|
228
264
|
if (retryResult.success) {
|
|
229
265
|
console.log(`[focus-merge] Merge succeeded after fallback resolution for branch ${branchName}`);
|
|
230
266
|
for (const d of deliveries) {
|
|
231
|
-
clearMergeConflictFlag(d.delivery_id);
|
|
232
267
|
reportGitState(d.delivery_id, 'merged_to_integration').catch((err) => console.warn(`[focus-merge] reportGitState failed for ${d.delivery_id}:`, err.message));
|
|
233
268
|
}
|
|
269
|
+
resolveMergeConflictEscalations(deliveries);
|
|
234
270
|
}
|
|
235
271
|
}
|
|
236
272
|
}
|
|
@@ -339,6 +375,7 @@ export async function mergeFocusBranch(config, teamState, sessionId, branchName,
|
|
|
339
375
|
sessionId,
|
|
340
376
|
deliveryId: representativeDeliveryId,
|
|
341
377
|
deliveryName: teamState.focusName,
|
|
378
|
+
focusId: teamState.focusId,
|
|
342
379
|
branchName,
|
|
343
380
|
integrationBranch: config.integrationBranch,
|
|
344
381
|
});
|
|
@@ -380,6 +417,7 @@ export async function mergeFocusBranch(config, teamState, sessionId, branchName,
|
|
|
380
417
|
sessionId,
|
|
381
418
|
deliveryId: representativeDeliveryId,
|
|
382
419
|
deliveryName: teamState.focusName,
|
|
420
|
+
focusId: teamState.focusId,
|
|
383
421
|
branchName,
|
|
384
422
|
integrationBranch: config.integrationBranch,
|
|
385
423
|
mergeError: `Merge-back conflict unresolved: ${resolution.reason ?? 'unknown'}`,
|
|
@@ -414,6 +452,7 @@ export async function mergeFocusBranch(config, teamState, sessionId, branchName,
|
|
|
414
452
|
sessionId,
|
|
415
453
|
deliveryId: representativeDeliveryId,
|
|
416
454
|
deliveryName: teamState.focusName,
|
|
455
|
+
focusId: teamState.focusId,
|
|
417
456
|
branchName,
|
|
418
457
|
integrationBranch: config.integrationBranch,
|
|
419
458
|
mergeError: `Fallback resolution agent failed: ${fallbackResult.error ?? 'unknown'}`,
|
package/dist/focus-merge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-merge.js","sourceRoot":"","sources":["../src/focus-merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAErE,+EAA+E;AAC/E,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzD,8EAA8E;AAC9E,+EAA+E;AAC/E,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAU,CAAC;AAYzD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAQC,EACD,OAA+B,EAAE;IAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,IAAI,6BAA6B,CAAC;IAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IAE5D,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;IACpH,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAAI,CACV,oCAAoC,YAAY,MAAM,UAAU,OAAO,iBAAiB,KAAK;QAC7F,YAAY,YAAY,2BAA2B,CACpD,CAAC;IAEF,2EAA2E;IAC3E,2CAA2C;IAC3C,IAAI,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,SAAS,CAAC;YACd,cAAc;YACd,SAAS;YACT,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,kBAAkB,CAAC,iBAAiB;YAChD,WAAW,EAAE,uBAAuB,CAAC,cAAc;YACnD,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YAC1C,WAAW,EACT,4DAA4D;gBAC5D,uBAAuB,YAAY,IAAI;gBACvC,sBAAsB,UAAU,IAAI;gBACpC,sBAAsB,iBAAiB,IAAI;gBAC3C,iBAAiB,YAAY,MAAM;gBACnC,oEAAoE;gBACpE,sEAAsE;gBACtE,8CAA8C;YAChD,YAAY,EAAE,6BAA6B,UAAU,SAAS,iBAAiB,mEAAmE,YAAY,GAAG;YACjK,UAAU,EAAE,WAAW,YAAY,mHAAmH;SACvJ,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,mCAAmC,UAAU,EAAE,EAAE,CAC3E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,oEAAoE,YAAY,GAAG,CAAC,CAAC;IACnG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,6EAA6E,YAAY,MAAO,GAAa,CAAC,OAAO,EAAE,CACxH,CAAC;QACF,wDAAwD;QACxD,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC;AAeD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,0DAA0D,UAAU,GAAG,EACtE,GAAa,CAAC,OAAO,CACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAElH,yCAAyC;IACzC,MAAM,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvD,4BAA4B;IAC5B,IAAI,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,wEAAwE,UAAU,sBAAsB,CAAC,CAAC;QACtH,OAAO;IACT,CAAC;IAED,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,SAAS,CACb,GAAG,EAAE,CAAC,gBAAgB,CAAC;YACrB,cAAc;YACd,SAAS;YACT,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,kBAAkB,CAAC,iBAAiB;YAChD,WAAW,EAAE,uBAAuB,CAAC,cAAc;YACnD,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YAC1C,WAAW,EACT,2DAA2D;gBAC3D,iBAAiB,YAAY,IAAI;gBACjC,sBAAsB,UAAU,IAAI;gBACpC,sBAAsB,iBAAiB,IAAI;gBAC3C,cAAc,UAAU,MAAM;gBAC9B,6GAA6G;YAC/G,YAAY,EAAE,gCAAgC,UAAU,SAAS,iBAAiB,GAAG;YACrF,UAAU,EAAE,uCAAuC,UAAU,QAAQ,iBAAiB,0CAA0C;SACjI,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,mCAAmC,UAAU,EAAE,EAAE,CAC3E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,iEAAiE,YAAY,GAAG,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,iEAAiE,YAAY,MAAO,GAAa,CAAC,OAAO,EAAE,CAC5G,CAAC;QACF,yDAAyD;QACzD,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAoB;IAEpB,IAAI,kBAAkB,CAAC;IACvB,IAAI,CAAC;QACH,kBAAkB,GAAG,MAAM,0BAA0B,CACnD,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,SAAS,CACjB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,0DAA0D,EACzD,GAAa,CAAC,OAAO,CACvB,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE5C,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,eAAe;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;QAChD,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,2CAA2C,UAAU,GAAG;YACxD,IAAI,UAAU,CAAC,MAAM,wCAAwC,CAC9D,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC;YAC3C,MAAM;YACN,UAAU;YACV,YAAY,EAAE,cAAc,CAAC,aAAa;YAC1C,UAAU,EAAE,cAAc,CAAC,WAAW;SACvC,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CACT,kDAAkD,UAAU,EAAE,CAC/D,CAAC;YACF,6CAA6C;YAC7C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;gBACtC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,KAAK,CAC1D,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,CAAC,IAAI,CACV,iEAAiE,CAAC,CAAC,WAAW,GAAG,EAChF,GAAa,CAAC,OAAO,CACvB,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,sDAAsD,UAAU,KAAK,WAAW,CAAC,KAAK,IAAI,SAAS,EAAE,CACtG,CAAC;YAEF,wEAAwE;YACxE,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC/D,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CACT,+DAA+D,UAAU,EAAE,CAC5E,CAAC;oBAEF,sEAAsE;oBACtE,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC;wBACrD,YAAY,EAAE,YAAY,CAAC,YAAY;wBACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;qBAC5C,CAAC,CAAC;oBAEH,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC1C,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;4BAChD,MAAM;4BACN,YAAY,EAAE,YAAY,CAAC,YAAY;4BACvC,UAAU;4BACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;4BAC3C,aAAa,EAAE,eAAe,CAAC,aAAa,IAAI,EAAE;4BAClD,gBAAgB,EAAE,YAAY,CAAC,SAAS,IAAI,UAAU;4BACtD,KAAK,EAAE,cAAc,CAAC,eAAe,EAAE,KAAK,IAAI,IAAI;yBACrD,CAAC,CAAC;wBAEH,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;4BAC3B,+BAA+B;4BAC/B,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC;gCAC3C,MAAM;gCACN,UAAU;gCACV,YAAY,EAAE,cAAc,CAAC,aAAa;gCAC1C,UAAU,EAAE,cAAc,CAAC,WAAW;6BACvC,CAAC,CAAC;4BAEH,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gCACxB,OAAO,CAAC,GAAG,CAAC,sEAAsE,UAAU,EAAE,CAAC,CAAC;gCAChG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;oCAC3B,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;oCACtC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACnE,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,WAAW,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAClG,CAAC;gCACJ,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,oEAAoE;AAEpE,4EAA4E;AAC5E,MAAM,oCAAoC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3D,sEAAsE;AACtE,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,SAAyB,EACzB,aAAuB,EACvB,UAAkB,EAClB,iBAAyB,EACzB,YAAoB,oCAAoC;IAExD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IAEzD,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IAC9E,CAAC;IAED,wBAAwB;IACxB,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAExC,IAAI,CAAC;QACH,yDAAyD;QACzD,MAAM,OAAO,GACX,sCAAsC;YACtC,8EAA8E;YAC9E,0BAA0B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YAC3E,sBAAsB,iBAAiB,IAAI;YAC3C,eAAe,UAAU,MAAM;YAC/B,qBAAqB;YACrB,+FAA+F;YAC/F,oDAAoD;YACpD,wDAAwD;YACxD,qCAAqC;YACrC,gEAAgE;YAChE,yGAAyG,CAAC;QAE5G,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,0EAA0E,SAAS,GAAG,CAAC,CAAC;QAEpG,sCAAsC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC;QAEjF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;YAE/E,iCAAiC;YACjC,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;YAC5F,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO;gBAC1C,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACnD,CAAC,CAAC,EAAE,CAAC;YAEP,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,qEAAqE;gBACrE,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC;gBAC3E,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,yDAAyD,SAAS,GAAG,CAAC,CAAC;oBACnF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,IAAI,CACV,kEAAkE,SAAS,GAAG,IAAI,UAAU,SAAS,GAAG,CACzG,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAClF,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,sBAAsB,GAAG,KAAK,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAoB,EACpB,SAAyB,EACzB,SAAiB,EACjB,UAAkB,EAClB,iBAA2B;IAE3B,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,4DAA4D;IAC5D,MAAM,wBAAwB,GAC5B,iBAAiB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,iDAAiD,EAAE,CAAC;IAClG,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,qEAAqE;IACrE,sEAAsE;IACtE,4CAA4C;IAC5C,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC;QAClD,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,SAAS;QACT,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,SAAS,CAAC,SAAS;QACjC,UAAU;QACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,8BAA8B,EAAE,CAAC;IAC/E,CAAC;IAED,qFAAqF;IACrF,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,sEAAsE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAC7G,QAAQ,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAE1E,0EAA0E;IAC1E,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC;YACrD,YAAY;YACZ,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;SAC5C,CAAC,CAAC;QAEH,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,IAAI,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CACT,oDAAoD,SAAS,CAAC,SAAS,KAAK;gBAC5E,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CACjD,CAAC;YAEF,qDAAqD;YACrD,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC3D,MAAM,UAAU,GAAG,MAAM,yBAAyB,CAChD,SAAS,EACT,aAAa,EACb,UAAU,EACV,MAAM,CAAC,iBAAiB,CACzB,CAAC;gBAEF,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACxB,qEAAqE;oBACrE,OAAO,CAAC,GAAG,CAAC,qDAAqD,SAAS,CAAC,SAAS,eAAe,CAAC,CAAC;gBACvG,CAAC;qBAAM,CAAC;oBACN,0CAA0C;oBAC1C,MAAM,qBAAqB,CAAC;wBAC1B,cAAc,EAAE,SAAS,CAAC,cAAc;wBACxC,SAAS;wBACT,UAAU,EAAE,wBAAwB;wBACpC,YAAY,EAAE,SAAS,CAAC,SAAS;wBACjC,UAAU;wBACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;wBAC3C,UAAU,EAAE,mCAAmC,UAAU,CAAC,MAAM,IAAI,SAAS,EAAE;qBAChF,CAAC,CAAC;oBACH,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,gCAAgC,EAAE,CAAC;gBACjF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,8DAA8D;gBAC9D,OAAO,CAAC,GAAG,CAAC,0CAA0C,SAAS,CAAC,SAAS,uCAAuC,CAAC,CAAC;gBAElH,8DAA8D;gBAC9D,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;oBACpD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjD,cAAc,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC3D,OAAO,CAAC,IAAI,CAAC,8DAA8D,UAAU,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAClH,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;oBAChD,MAAM;oBACN,YAAY;oBACZ,UAAU;oBACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;oBAC3C,aAAa;oBACb,gBAAgB,EAAE,SAAS,CAAC,SAAS;oBACrC,KAAK,EAAE,SAAS,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI;iBAC/C,CAAC,CAAC;gBAEH,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,mEAAmE,SAAS,CAAC,SAAS,eAAe,CAAC,CAAC;gBACrH,CAAC;qBAAM,CAAC;oBACN,MAAM,qBAAqB,CAAC;wBAC1B,cAAc,EAAE,SAAS,CAAC,cAAc;wBACxC,SAAS;wBACT,UAAU,EAAE,wBAAwB;wBACpC,YAAY,EAAE,SAAS,CAAC,SAAS;wBACjC,UAAU;wBACV,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;wBAC3C,UAAU,EAAE,qCAAqC,cAAc,CAAC,KAAK,IAAI,SAAS,EAAE;qBACrF,CAAC,CAAC;oBACH,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,gCAAgC,EAAE,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CACX,uCAAuC,SAAS,CAAC,SAAS,MAAM,eAAe,CAAC,OAAO,EAAE,CAC1F,CAAC;YACF,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC;QACxE,CAAC;QAED,wDAAwD;QACxD,OAAO,CAAC,GAAG,CAAC,uCAAuC,SAAS,CAAC,SAAS,oCAAoC,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;QAC7C,MAAM;QACN,UAAU;QACV,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,SAAS,CAAC,SAAS;QACjC,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAC;IAEH,sEAAsE;IACtE,+EAA+E;IAC/E,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE1D,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAChC,KAAK,MAAM,UAAU,IAAI,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjD,cAAc,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC9D,OAAO,CAAC,IAAI,CAAC,oEAAoE,UAAU,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CACxH,CAAC;gBACF,oEAAoE;gBACpE,qEAAqE;gBACrE,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;oBAC3B,4BAA4B,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC3E,OAAO,CAAC,IAAI,CAAC,yDAAyD,UAAU,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAC7G,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,yDAAyD;QACzD,KAAK,MAAM,UAAU,IAAI,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjD,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC3D,OAAO,CAAC,IAAI,CAAC,qDAAqD,UAAU,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CACzG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"focus-merge.js","sourceRoot":"","sources":["../src/focus-merge.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/issues.d.ts
CHANGED
|
@@ -147,6 +147,78 @@ export declare function hasOpenTeamFailureEscalation(focusId: string): Promise<b
|
|
|
147
147
|
* polls files exactly one open escalation instead of one per tick.
|
|
148
148
|
*/
|
|
149
149
|
export declare function hasOpenEscalationForDelivery(deliveryId: string, escalationKind: string): Promise<boolean>;
|
|
150
|
+
/**
|
|
151
|
+
* escalation_kind discriminators for the two focus-merge worktree-dirty
|
|
152
|
+
* classes. Declared as daemon-local string constants (not imported from
|
|
153
|
+
* @telora/daemon-core's ESCALATION_KINDS) on purpose: the daemon consumes the
|
|
154
|
+
* registry-PUBLISHED daemon-core, so it cannot reference newly-added enum
|
|
155
|
+
* members until a build that depends on a daemon-core publish carrying them.
|
|
156
|
+
* They ARE now in daemon-core (ESCALATION_KINDS.MERGE_CONFLICT /
|
|
157
|
+
* .MERGE_REFUSED_DIRTY, shipped in 0.2.45) for other consumers (frontend, MCP),
|
|
158
|
+
* but the daemon keeps the local strings so this code does not depend on the
|
|
159
|
+
* publish ordering. The DB CHECK is the real constraint -- loosened by the
|
|
160
|
+
* agent_escalations_kind_merge_classes migration to admit these two values --
|
|
161
|
+
* and the daemon stamps them as plain strings.
|
|
162
|
+
* (advance_blocked already shipped in daemon-core as ESCALATION_KINDS.ADVANCE_BLOCKED.)
|
|
163
|
+
*/
|
|
164
|
+
export declare const MERGE_CONFLICT_ESCALATION_KIND = "merge_conflict";
|
|
165
|
+
export declare const MERGE_REFUSED_DIRTY_ESCALATION_KIND = "merge_refused_dirty";
|
|
166
|
+
/**
|
|
167
|
+
* The worktree-dirty escalation classes: a single physical fact (one focus
|
|
168
|
+
* worktree with uncommitted changes) can be observed by three independent
|
|
169
|
+
* daemon paths -- the delivery advance-block guard (advance_blocked), the
|
|
170
|
+
* focus-merge dirty-worktree refusal (merge_refused_dirty), and the
|
|
171
|
+
* focus-merge conflict path (merge_conflict). They are siblings: when one is
|
|
172
|
+
* already open for a focus, the others should suppress rather than pile on.
|
|
173
|
+
*/
|
|
174
|
+
export declare const WORKTREE_DIRTY_ESCALATION_KINDS: readonly string[];
|
|
175
|
+
/**
|
|
176
|
+
* Returns true when an open (status pending or in_review) worktree-dirty-class
|
|
177
|
+
* escalation exists for the given FOCUS.
|
|
178
|
+
*
|
|
179
|
+
* This generalizes hasOpenEscalationForDelivery from per-delivery to
|
|
180
|
+
* focus/worktree grain. A dirty worktree is a property of one focus worktree
|
|
181
|
+
* shared by all of the focus's deliveries, so deduping per delivery emits N
|
|
182
|
+
* rows for one physical fact. Keying on the focus collapses them to one.
|
|
183
|
+
*
|
|
184
|
+
* It also collapses ACROSS escalation classes: by default the sibling set is
|
|
185
|
+
* { advance_blocked, merge_conflict, merge_refused_dirty }, so an open
|
|
186
|
+
* advance-block escalation suppresses a merge-refuse one (and vice versa) --
|
|
187
|
+
* one dirty-worktree fact yields at most one open escalation regardless of how
|
|
188
|
+
* many code paths observe it. Pass `kinds` to narrow the sibling set.
|
|
189
|
+
*
|
|
190
|
+
* Dedup matches on the typed `focus_id` + `escalation_kind` COLUMNS in
|
|
191
|
+
* preference to the metadata bag, with a metadata fallback (metadata.focusId /
|
|
192
|
+
* metadata.kind) for rows already open at deploy time. Because it queries the
|
|
193
|
+
* DB rather than an in-memory Set, the dedup survives a daemon restart.
|
|
194
|
+
*
|
|
195
|
+
* The request narrows server-side by `focusId` + open `statuses` (both honored
|
|
196
|
+
* by the live escalation_list handler) so the 500-row page is scoped to this
|
|
197
|
+
* focus's open rows, not the org's newest 500 -- closing the gap where a busy
|
|
198
|
+
* org could push the matching sibling off the page. The status + focus + kind
|
|
199
|
+
* predicate is ALSO applied client-side (isOpenWorktreeDirtyMatch) as
|
|
200
|
+
* defense-in-depth.
|
|
201
|
+
*/
|
|
202
|
+
export declare function hasOpenWorktreeDirtyEscalation(focusId: string, kinds?: readonly string[]): Promise<boolean>;
|
|
203
|
+
/**
|
|
204
|
+
* Auto-resolve the open worktree-dirty escalations for a focus once their
|
|
205
|
+
* underlying condition has cleared (the worktree is observed clean again, or a
|
|
206
|
+
* merge conflict has been merged through). Lists the open rows for the focus
|
|
207
|
+
* narrowed to `kinds`, resolves each with a daemon-remediation note, and
|
|
208
|
+
* returns the count resolved.
|
|
209
|
+
*
|
|
210
|
+
* This is the close half of the disposition-aware model: an agent_resolvable
|
|
211
|
+
* condition that auto-remediates should also stop showing in the human inbox
|
|
212
|
+
* the moment it clears, instead of lingering as a resolved-in-fact but
|
|
213
|
+
* still-pending row. Best-effort: a resolve failure for one row is logged and
|
|
214
|
+
* skipped, never thrown, so the caller's primary work is not blocked.
|
|
215
|
+
*
|
|
216
|
+
* Callers MUST pass `kinds` narrowed to the conditions the clearing event
|
|
217
|
+
* actually resolves -- e.g. a clean worktree clears advance_blocked /
|
|
218
|
+
* merge_refused_dirty but NOT merge_conflict (a content conflict is not a dirty
|
|
219
|
+
* worktree), and a successful merge clears merge_conflict.
|
|
220
|
+
*/
|
|
221
|
+
export declare function resolveOpenWorktreeDirtyEscalations(focusId: string, kinds: readonly string[], resolutionNotes?: string): Promise<number>;
|
|
150
222
|
/**
|
|
151
223
|
* Mark an escalation as resolved with optional notes.
|
|
152
224
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/issues.js
CHANGED
|
@@ -154,6 +154,137 @@ export async function hasOpenEscalationForDelivery(deliveryId, escalationKind) {
|
|
|
154
154
|
return meta?.kind === escalationKind && meta?.deliveryId === deliveryId;
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* escalation_kind discriminators for the two focus-merge worktree-dirty
|
|
159
|
+
* classes. Declared as daemon-local string constants (not imported from
|
|
160
|
+
* @telora/daemon-core's ESCALATION_KINDS) on purpose: the daemon consumes the
|
|
161
|
+
* registry-PUBLISHED daemon-core, so it cannot reference newly-added enum
|
|
162
|
+
* members until a build that depends on a daemon-core publish carrying them.
|
|
163
|
+
* They ARE now in daemon-core (ESCALATION_KINDS.MERGE_CONFLICT /
|
|
164
|
+
* .MERGE_REFUSED_DIRTY, shipped in 0.2.45) for other consumers (frontend, MCP),
|
|
165
|
+
* but the daemon keeps the local strings so this code does not depend on the
|
|
166
|
+
* publish ordering. The DB CHECK is the real constraint -- loosened by the
|
|
167
|
+
* agent_escalations_kind_merge_classes migration to admit these two values --
|
|
168
|
+
* and the daemon stamps them as plain strings.
|
|
169
|
+
* (advance_blocked already shipped in daemon-core as ESCALATION_KINDS.ADVANCE_BLOCKED.)
|
|
170
|
+
*/
|
|
171
|
+
export const MERGE_CONFLICT_ESCALATION_KIND = 'merge_conflict';
|
|
172
|
+
export const MERGE_REFUSED_DIRTY_ESCALATION_KIND = 'merge_refused_dirty';
|
|
173
|
+
/**
|
|
174
|
+
* The worktree-dirty escalation classes: a single physical fact (one focus
|
|
175
|
+
* worktree with uncommitted changes) can be observed by three independent
|
|
176
|
+
* daemon paths -- the delivery advance-block guard (advance_blocked), the
|
|
177
|
+
* focus-merge dirty-worktree refusal (merge_refused_dirty), and the
|
|
178
|
+
* focus-merge conflict path (merge_conflict). They are siblings: when one is
|
|
179
|
+
* already open for a focus, the others should suppress rather than pile on.
|
|
180
|
+
*/
|
|
181
|
+
export const WORKTREE_DIRTY_ESCALATION_KINDS = [
|
|
182
|
+
'advance_blocked',
|
|
183
|
+
MERGE_CONFLICT_ESCALATION_KIND,
|
|
184
|
+
MERGE_REFUSED_DIRTY_ESCALATION_KIND,
|
|
185
|
+
];
|
|
186
|
+
/** Open escalation statuses (anything not yet resolved/dismissed). */
|
|
187
|
+
const OPEN_ESCALATION_STATUSES = new Set(['pending', 'in_review']);
|
|
188
|
+
/**
|
|
189
|
+
* True when `e` is an OPEN worktree-dirty-class escalation for `focusId` whose
|
|
190
|
+
* kind is in `kindSet`. Shared by hasOpenWorktreeDirtyEscalation (dedup) and
|
|
191
|
+
* resolveOpenWorktreeDirtyEscalations (auto-close) so both agree on what counts.
|
|
192
|
+
*
|
|
193
|
+
* The status re-check is defense-in-depth. The live escalation_list handler
|
|
194
|
+
* (issue-handlers.listEscalations) already honors the `statuses` filter
|
|
195
|
+
* server-side, so the daemon normally receives only pending/in_review rows --
|
|
196
|
+
* but we re-check here so the invariant "a RESOLVED worktree-dirty row must
|
|
197
|
+
* never suppress (or be re-resolved as) a legitimate new escalation" holds
|
|
198
|
+
* regardless of how the rows were fetched (custom `kinds`, a future caller that
|
|
199
|
+
* forgets the statuses filter, etc.).
|
|
200
|
+
*/
|
|
201
|
+
function isOpenWorktreeDirtyMatch(e, focusId, kindSet) {
|
|
202
|
+
if (e.status && !OPEN_ESCALATION_STATUSES.has(e.status))
|
|
203
|
+
return false;
|
|
204
|
+
// Preferred: match on the typed columns.
|
|
205
|
+
if (e.focusId === focusId && e.escalationKind && kindSet.has(e.escalationKind)) {
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
// Back-compat: rows filed before the column promotion carry the focus / kind
|
|
209
|
+
// in the metadata bag.
|
|
210
|
+
const meta = e.metadata ?? null;
|
|
211
|
+
const metaKind = meta?.kind;
|
|
212
|
+
return (meta?.focusId === focusId &&
|
|
213
|
+
typeof metaKind === 'string' &&
|
|
214
|
+
kindSet.has(metaKind));
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Returns true when an open (status pending or in_review) worktree-dirty-class
|
|
218
|
+
* escalation exists for the given FOCUS.
|
|
219
|
+
*
|
|
220
|
+
* This generalizes hasOpenEscalationForDelivery from per-delivery to
|
|
221
|
+
* focus/worktree grain. A dirty worktree is a property of one focus worktree
|
|
222
|
+
* shared by all of the focus's deliveries, so deduping per delivery emits N
|
|
223
|
+
* rows for one physical fact. Keying on the focus collapses them to one.
|
|
224
|
+
*
|
|
225
|
+
* It also collapses ACROSS escalation classes: by default the sibling set is
|
|
226
|
+
* { advance_blocked, merge_conflict, merge_refused_dirty }, so an open
|
|
227
|
+
* advance-block escalation suppresses a merge-refuse one (and vice versa) --
|
|
228
|
+
* one dirty-worktree fact yields at most one open escalation regardless of how
|
|
229
|
+
* many code paths observe it. Pass `kinds` to narrow the sibling set.
|
|
230
|
+
*
|
|
231
|
+
* Dedup matches on the typed `focus_id` + `escalation_kind` COLUMNS in
|
|
232
|
+
* preference to the metadata bag, with a metadata fallback (metadata.focusId /
|
|
233
|
+
* metadata.kind) for rows already open at deploy time. Because it queries the
|
|
234
|
+
* DB rather than an in-memory Set, the dedup survives a daemon restart.
|
|
235
|
+
*
|
|
236
|
+
* The request narrows server-side by `focusId` + open `statuses` (both honored
|
|
237
|
+
* by the live escalation_list handler) so the 500-row page is scoped to this
|
|
238
|
+
* focus's open rows, not the org's newest 500 -- closing the gap where a busy
|
|
239
|
+
* org could push the matching sibling off the page. The status + focus + kind
|
|
240
|
+
* predicate is ALSO applied client-side (isOpenWorktreeDirtyMatch) as
|
|
241
|
+
* defense-in-depth.
|
|
242
|
+
*/
|
|
243
|
+
export async function hasOpenWorktreeDirtyEscalation(focusId, kinds = WORKTREE_DIRTY_ESCALATION_KINDS) {
|
|
244
|
+
const kindSet = new Set(kinds);
|
|
245
|
+
const result = await callApi('escalation_list', {
|
|
246
|
+
fields: { statuses: ['pending', 'in_review'], focusId },
|
|
247
|
+
limit: 500,
|
|
248
|
+
});
|
|
249
|
+
return (result.escalations ?? []).some((e) => isOpenWorktreeDirtyMatch(e, focusId, kindSet));
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Auto-resolve the open worktree-dirty escalations for a focus once their
|
|
253
|
+
* underlying condition has cleared (the worktree is observed clean again, or a
|
|
254
|
+
* merge conflict has been merged through). Lists the open rows for the focus
|
|
255
|
+
* narrowed to `kinds`, resolves each with a daemon-remediation note, and
|
|
256
|
+
* returns the count resolved.
|
|
257
|
+
*
|
|
258
|
+
* This is the close half of the disposition-aware model: an agent_resolvable
|
|
259
|
+
* condition that auto-remediates should also stop showing in the human inbox
|
|
260
|
+
* the moment it clears, instead of lingering as a resolved-in-fact but
|
|
261
|
+
* still-pending row. Best-effort: a resolve failure for one row is logged and
|
|
262
|
+
* skipped, never thrown, so the caller's primary work is not blocked.
|
|
263
|
+
*
|
|
264
|
+
* Callers MUST pass `kinds` narrowed to the conditions the clearing event
|
|
265
|
+
* actually resolves -- e.g. a clean worktree clears advance_blocked /
|
|
266
|
+
* merge_refused_dirty but NOT merge_conflict (a content conflict is not a dirty
|
|
267
|
+
* worktree), and a successful merge clears merge_conflict.
|
|
268
|
+
*/
|
|
269
|
+
export async function resolveOpenWorktreeDirtyEscalations(focusId, kinds, resolutionNotes = 'Auto-resolved by the daemon: the worktree-dirty condition cleared.') {
|
|
270
|
+
const kindSet = new Set(kinds);
|
|
271
|
+
const result = await callApi('escalation_list', {
|
|
272
|
+
fields: { statuses: ['pending', 'in_review'], focusId },
|
|
273
|
+
limit: 500,
|
|
274
|
+
});
|
|
275
|
+
const open = (result.escalations ?? []).filter((e) => isOpenWorktreeDirtyMatch(e, focusId, kindSet));
|
|
276
|
+
let resolved = 0;
|
|
277
|
+
for (const e of open) {
|
|
278
|
+
try {
|
|
279
|
+
await markEscalationResolved(e.id, resolutionNotes);
|
|
280
|
+
resolved++;
|
|
281
|
+
}
|
|
282
|
+
catch (err) {
|
|
283
|
+
console.warn(`[escalations] Failed to auto-resolve worktree-dirty escalation ${e.id} for focus ${focusId}: ${err.message}`);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return resolved;
|
|
287
|
+
}
|
|
157
288
|
/**
|
|
158
289
|
* Mark an escalation as resolved with optional notes.
|
|
159
290
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Local model registry queries.
|
|
3
3
|
*
|
|
4
4
|
* The daemon resolves a per-pass localModelOverride ref (a local_models row id)
|
|
5
|
-
* to non-secret connection coordinates at spawn (D3). The
|
|
6
|
-
*
|
|
7
|
-
* the daemon
|
|
5
|
+
* to non-secret connection coordinates at spawn (D3). The bearer key VALUE is
|
|
6
|
+
* stored in Telora (service-role-only) and fetched separately via
|
|
7
|
+
* getLocalModelSecret on the daemon's authenticated path -- no host env var (D8).
|
|
8
8
|
*/
|
|
9
9
|
/** Non-secret coordinates of a registered local model. */
|
|
10
10
|
export interface LocalModelCoordinates {
|
|
@@ -14,8 +14,6 @@ export interface LocalModelCoordinates {
|
|
|
14
14
|
model: string;
|
|
15
15
|
wireApi: string | null;
|
|
16
16
|
engine: string | null;
|
|
17
|
-
/** NAME of the env var holding the server's API key -- never the value. */
|
|
18
|
-
apiKeyEnv: string | null;
|
|
19
17
|
}
|
|
20
18
|
/**
|
|
21
19
|
* Resolve a local_models row by id to its coordinates, org-scoped server-side.
|
|
@@ -23,10 +21,22 @@ export interface LocalModelCoordinates {
|
|
|
23
21
|
* engine-default behavior rather than failing the spawn).
|
|
24
22
|
*/
|
|
25
23
|
export declare function getLocalModel(localModelId: string): Promise<LocalModelCoordinates | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve a local model's bearer key VALUE from Telora (D8), org-scoped
|
|
26
|
+
* server-side. Returns null when no secret is configured -- the caller fails
|
|
27
|
+
* closed rather than spawning unauthenticated. The value is fetched only on the
|
|
28
|
+
* daemon's tracker-authenticated path and never persisted on disk by the daemon.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getLocalModelSecret(localModelId: string): Promise<string | null>;
|
|
26
31
|
/** A discovery request claimed by the daemon (D5). */
|
|
27
32
|
export interface PendingDiscoveryRequest {
|
|
28
33
|
id: string;
|
|
29
34
|
baseUrl: string;
|
|
35
|
+
/**
|
|
36
|
+
* The resolved bearer key VALUE for an authenticated probe (D8). Null/absent
|
|
37
|
+
* => unauthenticated. Fetched server-side from the discovery secret store.
|
|
38
|
+
*/
|
|
39
|
+
apiKey: string | null;
|
|
30
40
|
}
|
|
31
41
|
/**
|
|
32
42
|
* Atomically claim the org's pending discovery requests (pending -> processing)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-models.d.ts","sourceRoot":"","sources":["../../src/queries/local-models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"local-models.d.ts","sourceRoot":"","sources":["../../src/queries/local-models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAgB/F;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOtF;AAED,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAOtF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED,6DAA6D;AAC7D,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhB"}
|