opencode-swarm 7.138.1 → 7.138.3
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/.opencode/skills/swarm-pr-review/SKILL.md +5 -1
- package/dist/background/candidate-contract.d.ts +31 -0
- package/dist/background/pending-delegations.d.ts +7 -0
- package/dist/background/pr-review-trigger-contract.d.ts +38 -1
- package/dist/cli/{config-doctor-m79sx8b2.js → config-doctor-2mwgdbsn.js} +2 -2
- package/dist/cli/{curation-policy-dkx4s5va.js → curation-policy-5dqexw5j.js} +2 -2
- package/dist/cli/{curator-jjf5x6bn.js → curator-jjtp9hn2.js} +13 -13
- package/dist/cli/{curator-llm-factory-sprc6pm3.js → curator-llm-factory-wkjme59b.js} +13 -13
- package/dist/cli/{guardrail-explain-zs3hq02c.js → guardrail-explain-xppwfnxr.js} +14 -14
- package/dist/cli/{guardrail-log-90dnv508.js → guardrail-log-swet7rch.js} +3 -3
- package/dist/cli/{hive-promoter-zkay2ffy.js → hive-promoter-xvq8jzbs.js} +13 -13
- package/dist/cli/{index-8xqnp3gw.js → index-1djv5684.js} +4 -4
- package/dist/cli/{index-vmff7b40.js → index-1v89yst3.js} +2 -2
- package/dist/cli/{index-e2eedz1b.js → index-31vfewmn.js} +1 -1
- package/dist/cli/{index-kqzzdxc1.js → index-93ky909v.js} +1 -1
- package/dist/cli/{index-mnw8g9bs.js → index-99af5gvd.js} +153 -56
- package/dist/cli/{index-e78pqbkj.js → index-ab57h0yq.js} +1 -1
- package/dist/cli/{index-navw2ezf.js → index-adde7nm2.js} +5 -5
- package/dist/cli/{index-vp3mwsd1.js → index-btx8j39p.js} +1 -1
- package/dist/cli/{index-5fdztrpt.js → index-gda7cwqz.js} +2 -2
- package/dist/cli/{index-mzqgtzxq.js → index-jhb8kjc5.js} +3 -3
- package/dist/cli/{index-06zw53mf.js → index-js7th5my.js} +1 -1
- package/dist/cli/{index-0s4gr6qh.js → index-q344kj84.js} +2 -1
- package/dist/cli/{index-aeyktf9q.js → index-rjratees.js} +1 -1
- package/dist/cli/{index-d4t92fa3.js → index-tc61fybd.js} +2 -2
- package/dist/cli/{index-9vvskh03.js → index-wqg74mwj.js} +1 -1
- package/dist/cli/{index-6f6nt0c9.js → index-xgmx9had.js} +15 -15
- package/dist/cli/{index-p7fn5byt.js → index-y6dvs5tt.js} +1 -1
- package/dist/cli/index.js +13 -13
- package/dist/cli/{knowledge-escalator-6y5x8vat.js → knowledge-escalator-7n384ys1.js} +3 -3
- package/dist/cli/{knowledge-events-bnr4weyn.js → knowledge-events-yaj0yjd6.js} +1 -1
- package/dist/cli/{knowledge-store-4mcmb2rj.js → knowledge-store-d99k0z2d.js} +1 -1
- package/dist/cli/{knowledge-validator-pf377mtx.js → knowledge-validator-e5fqy9h4.js} +4 -4
- package/dist/cli/{pending-delegations-ztb67amh.js → pending-delegations-7dbc0j2a.js} +1 -1
- package/dist/cli/{scan-cursor-we0561wc.js → scan-cursor-9y9msabt.js} +2 -2
- package/dist/cli/{schema-1xtxr4d9.js → schema-xg5f11md.js} +1 -1
- package/dist/cli/{skill-generator-kns0dae2.js → skill-generator-arvwfdfh.js} +5 -5
- package/dist/cli/{worktree-collision-ownership-rc6pe17g.js → worktree-collision-ownership-hjrt5hx2.js} +1 -1
- package/dist/hooks/pr-workflow-gate.d.ts +41 -1
- package/dist/index.js +24 -11
- package/dist/tools/dispatch-lanes.d.ts +7 -0
- package/dist/tools/write-pr-review-trigger-eval.d.ts +2 -2
- package/package.json +1 -1
|
@@ -16,13 +16,13 @@ import {
|
|
|
16
16
|
} from "./index-rrxcfxrd.js";
|
|
17
17
|
import {
|
|
18
18
|
stableCanonicalStringify
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-31vfewmn.js";
|
|
20
20
|
import {
|
|
21
21
|
detectStraySwarmDirs,
|
|
22
22
|
readDoctorArtifact,
|
|
23
23
|
removeStraySwarmDir,
|
|
24
24
|
runConfigDoctor
|
|
25
|
-
} from "./index-
|
|
25
|
+
} from "./index-btx8j39p.js";
|
|
26
26
|
import {
|
|
27
27
|
MAX_TRANSIENT_RETRIES,
|
|
28
28
|
archiveEvidence,
|
|
@@ -114,15 +114,15 @@ import {
|
|
|
114
114
|
retireSkill,
|
|
115
115
|
selectCandidateEntries,
|
|
116
116
|
syncBundledProjectSkillsIfMissingAsync
|
|
117
|
-
} from "./index-
|
|
117
|
+
} from "./index-jhb8kjc5.js";
|
|
118
118
|
import {
|
|
119
119
|
readRecentEscalations
|
|
120
|
-
} from "./index-
|
|
120
|
+
} from "./index-adde7nm2.js";
|
|
121
121
|
import {
|
|
122
122
|
alreadyCuratedThisGeneration,
|
|
123
123
|
claimNextScanBatch,
|
|
124
124
|
resolveCohortId
|
|
125
|
-
} from "./index-
|
|
125
|
+
} from "./index-rjratees.js";
|
|
126
126
|
import {
|
|
127
127
|
CURATOR_INIT_PROMPT,
|
|
128
128
|
CURATOR_PHASE_PROMPT,
|
|
@@ -175,11 +175,11 @@ import {
|
|
|
175
175
|
validateActionableFields,
|
|
176
176
|
validateLesson,
|
|
177
177
|
validateSkillPath
|
|
178
|
-
} from "./index-
|
|
178
|
+
} from "./index-tc61fybd.js";
|
|
179
179
|
import {
|
|
180
180
|
authorizeCuration,
|
|
181
181
|
buildConfigFingerprintInput
|
|
182
|
-
} from "./index-
|
|
182
|
+
} from "./index-wqg74mwj.js";
|
|
183
183
|
import {
|
|
184
184
|
cohortConfigFingerprint
|
|
185
185
|
} from "./index-rtry5xyf.js";
|
|
@@ -212,7 +212,7 @@ import {
|
|
|
212
212
|
transactFile,
|
|
213
213
|
transactKnowledge,
|
|
214
214
|
wordBigrams
|
|
215
|
-
} from "./index-
|
|
215
|
+
} from "./index-1djv5684.js";
|
|
216
216
|
import {
|
|
217
217
|
MAX_EVENT_LOG_ENTRIES,
|
|
218
218
|
_internals,
|
|
@@ -222,7 +222,7 @@ import {
|
|
|
222
222
|
recordHiveKnowledgeEvent,
|
|
223
223
|
recordKnowledgeEvent,
|
|
224
224
|
resolveKnowledgeEventsPath
|
|
225
|
-
} from "./index-
|
|
225
|
+
} from "./index-93ky909v.js";
|
|
226
226
|
import {
|
|
227
227
|
resolveHiveDataDir,
|
|
228
228
|
resolveHiveEventsPath,
|
|
@@ -247,7 +247,7 @@ import {
|
|
|
247
247
|
init_loader,
|
|
248
248
|
loadPluginConfig,
|
|
249
249
|
loadPluginConfigWithMeta
|
|
250
|
-
} from "./index-
|
|
250
|
+
} from "./index-y6dvs5tt.js";
|
|
251
251
|
import {
|
|
252
252
|
RetrospectiveEvidenceSchema
|
|
253
253
|
} from "./index-gprxjmm7.js";
|
|
@@ -263,7 +263,7 @@ import {
|
|
|
263
263
|
package_default,
|
|
264
264
|
resolveAutoReviewConfig,
|
|
265
265
|
stripKnownSwarmPrefix
|
|
266
|
-
} from "./index-
|
|
266
|
+
} from "./index-ab57h0yq.js";
|
|
267
267
|
import {
|
|
268
268
|
KNOWLEDGE_SCHEMA_VERSION,
|
|
269
269
|
OUTCOME_BLOCK_THRESHOLD,
|
|
@@ -320,7 +320,7 @@ import {
|
|
|
320
320
|
import {
|
|
321
321
|
findByBatchId,
|
|
322
322
|
readDelegations
|
|
323
|
-
} from "./index-
|
|
323
|
+
} from "./index-q344kj84.js";
|
|
324
324
|
import {
|
|
325
325
|
readSwarmFileAsync,
|
|
326
326
|
safeHook,
|
|
@@ -477,6 +477,52 @@ function removeCandidateCodeFences(text) {
|
|
|
477
477
|
return lines.join(`
|
|
478
478
|
`);
|
|
479
479
|
}
|
|
480
|
+
function declaredCanonicalFamilies(source) {
|
|
481
|
+
const families = [];
|
|
482
|
+
for (const line of source.split(/\r?\n/)) {
|
|
483
|
+
const family = candidateHeaderFamily(splitPipeFields(line).map((field) => field.trim()));
|
|
484
|
+
if (family && !families.includes(family))
|
|
485
|
+
families.push(family);
|
|
486
|
+
}
|
|
487
|
+
return families;
|
|
488
|
+
}
|
|
489
|
+
function normalizeCandidateArtifact(rawText, fallbackFamily) {
|
|
490
|
+
const text = removeCandidateCodeFences(rawText);
|
|
491
|
+
const header = selectCandidateHeader(text.split(/\r?\n/));
|
|
492
|
+
if (header?.markerBearing && header.family !== null) {
|
|
493
|
+
return { text, synthesizedHeader: false };
|
|
494
|
+
}
|
|
495
|
+
if (declaredCanonicalFamilies(text).length > 0) {
|
|
496
|
+
return { text, synthesizedHeader: false };
|
|
497
|
+
}
|
|
498
|
+
if (declaredCanonicalFamilies(rawText).some((family) => family !== fallbackFamily)) {
|
|
499
|
+
return { text, synthesizedHeader: false };
|
|
500
|
+
}
|
|
501
|
+
const lines = text.split(/\r?\n/);
|
|
502
|
+
const hasSalvageableRow = lines.some((line) => {
|
|
503
|
+
if (analyzeCandidateLine(line, fallbackFamily)?.valid === true)
|
|
504
|
+
return true;
|
|
505
|
+
const fields = splitPipeFields(line).map((field) => field.trim());
|
|
506
|
+
if (fields[0] !== CLEAN_MARKER)
|
|
507
|
+
return false;
|
|
508
|
+
return analyzeCleanFields(fields, fallbackFamily).valid;
|
|
509
|
+
});
|
|
510
|
+
if (!hasSalvageableRow)
|
|
511
|
+
return { text, synthesizedHeader: false };
|
|
512
|
+
const firstSalvageableIndex = lines.findIndex((line) => {
|
|
513
|
+
const marker = splitPipeFields(line)[0]?.trim();
|
|
514
|
+
return marker === CANDIDATE_MARKER || marker === CLEAN_MARKER;
|
|
515
|
+
});
|
|
516
|
+
return {
|
|
517
|
+
text: [
|
|
518
|
+
...lines.slice(0, firstSalvageableIndex),
|
|
519
|
+
CANDIDATE_HEADERS[fallbackFamily],
|
|
520
|
+
...lines.slice(firstSalvageableIndex)
|
|
521
|
+
].join(`
|
|
522
|
+
`),
|
|
523
|
+
synthesizedHeader: true
|
|
524
|
+
};
|
|
525
|
+
}
|
|
480
526
|
function analyzeCandidateLaneContext(context) {
|
|
481
527
|
const issues = [];
|
|
482
528
|
const baseBound = Boolean(context.expected_lane || context.expected_lanes);
|
|
@@ -687,6 +733,12 @@ function analyzeCleanFields(fields, family, expectedLane) {
|
|
|
687
733
|
evidence
|
|
688
734
|
};
|
|
689
735
|
}
|
|
736
|
+
function analyzeCandidateLine(line, family) {
|
|
737
|
+
const fields = splitPipeFields(line).map((field) => field.trim());
|
|
738
|
+
if (fields[0] !== "[CANDIDATE]")
|
|
739
|
+
return null;
|
|
740
|
+
return analyzeCandidateFields(fields.slice(1), family);
|
|
741
|
+
}
|
|
690
742
|
|
|
691
743
|
// src/background/candidate-parser.ts
|
|
692
744
|
init_zod();
|
|
@@ -1276,7 +1328,7 @@ ${trimmed}`;
|
|
|
1276
1328
|
if (cleanAttestation) {
|
|
1277
1329
|
formatFamiliesDetected.add(cleanAttestation.row_format_family);
|
|
1278
1330
|
}
|
|
1279
|
-
const acceptedCandidates =
|
|
1331
|
+
const acceptedCandidates = candidates;
|
|
1280
1332
|
const parseErrors = parseErrorDetails.length;
|
|
1281
1333
|
const envelope = buildInvocationEnvelope(input, flags, Array.from(formatFamiliesDetected), acceptedCandidates.length, parseErrors, malformedRows, cleanAttestation ? 1 : 0);
|
|
1282
1334
|
const diagnostics = {
|
|
@@ -1488,6 +1540,20 @@ var PrReviewPersistedInputRowSchema = exports_external.discriminatedUnion("resul
|
|
|
1488
1540
|
evidence: TriggerEvidenceSchema
|
|
1489
1541
|
}).strict()
|
|
1490
1542
|
]);
|
|
1543
|
+
var PrReviewWriterInputRowSchema = exports_external.discriminatedUnion("result", [
|
|
1544
|
+
exports_external.object({
|
|
1545
|
+
trigger_id: TriggerIdSchema,
|
|
1546
|
+
result: exports_external.literal("MATCHED"),
|
|
1547
|
+
evidence: TriggerEvidenceSchema.optional(),
|
|
1548
|
+
source_batch_id: exports_external.string().trim().min(1),
|
|
1549
|
+
source_lane_id: exports_external.string().trim().min(1)
|
|
1550
|
+
}).strict(),
|
|
1551
|
+
exports_external.object({
|
|
1552
|
+
trigger_id: TriggerIdSchema,
|
|
1553
|
+
result: exports_external.literal("NOT_TRIGGERED"),
|
|
1554
|
+
evidence: TriggerEvidenceSchema.optional()
|
|
1555
|
+
}).strict()
|
|
1556
|
+
]);
|
|
1491
1557
|
function rawTriggerIds(input) {
|
|
1492
1558
|
if (!Array.isArray(input))
|
|
1493
1559
|
return null;
|
|
@@ -2811,6 +2877,9 @@ var _test_exports = {
|
|
|
2811
2877
|
minimumConsolidatedLaneCover,
|
|
2812
2878
|
analyzePrReviewBatchRecordIntegrity,
|
|
2813
2879
|
MAX_COVER_UNIVERSE_BITS,
|
|
2880
|
+
extractCandidateIds,
|
|
2881
|
+
parseCanonicalCandidateRows,
|
|
2882
|
+
resolvePrReviewRowFamily,
|
|
2814
2883
|
workflowGateStateRelativePath,
|
|
2815
2884
|
workflowGateStateLockRelativePath,
|
|
2816
2885
|
workflowCheckoutMutationLockRelativePath,
|
|
@@ -3138,13 +3207,13 @@ function derivePrReviewCandidateInventory(directory, state, ctx) {
|
|
|
3138
3207
|
const recordOwnedLanes = record.ownedWorkflowLanes?.length ? record.ownedWorkflowLanes : record.workflowLane ? [record.workflowLane] : undefined;
|
|
3139
3208
|
if (!artifact || !workflowArtifactHasContractMarker(directory, state, record, source.mode, record.workflowLane ?? source.workflowLane ?? source.laneId, undefined, ctx.revisionDigest, recordOwnedLanes))
|
|
3140
3209
|
continue;
|
|
3141
|
-
if (source.workflowLane && (!recordOwnedLanes?.includes(source.workflowLane) || !prReviewDiscoveryArtifactCoversLane(artifact.text, source.workflowLane, recordOwnedLanes)))
|
|
3210
|
+
if (source.workflowLane && (!recordOwnedLanes?.includes(source.workflowLane) || !prReviewDiscoveryArtifactCoversLane(artifact.text, source.workflowLane, recordOwnedLanes, source.mode)))
|
|
3142
3211
|
continue;
|
|
3143
3212
|
resolvedArtifact = true;
|
|
3144
3213
|
const laneKey = `${source.batchId}\x00${source.laneId}`;
|
|
3145
3214
|
if (!extractedLaneKeys.has(laneKey)) {
|
|
3146
3215
|
extractedLaneKeys.add(laneKey);
|
|
3147
|
-
candidateIds.push(...extractCandidateIds(artifact.text, source.mode
|
|
3216
|
+
candidateIds.push(...extractCandidateIds(artifact.text, resolvePrReviewRowFamily(source.workflowLane, source.mode), source.creditedLanes));
|
|
3148
3217
|
}
|
|
3149
3218
|
}
|
|
3150
3219
|
if (source.mode === "swarm-pr-review:micro" && !resolvedArtifact) {
|
|
@@ -3164,11 +3233,19 @@ function appendBoundedCandidateIssue(issues, message) {
|
|
|
3164
3233
|
issues.push("additional malformed candidate diagnostics omitted");
|
|
3165
3234
|
}
|
|
3166
3235
|
}
|
|
3236
|
+
function resolvePrReviewRowFamily(workflowLane, mode) {
|
|
3237
|
+
if (mode === "swarm-pr-review:base")
|
|
3238
|
+
return "base_explorer";
|
|
3239
|
+
if (mode === "swarm-pr-review:micro" || mode === "swarm-pr-review:council") {
|
|
3240
|
+
return "micro_lane";
|
|
3241
|
+
}
|
|
3242
|
+
return workflowLane !== undefined && PR_REVIEW_BASE_DIMENSION_IDS.includes(workflowLane) ? "base_explorer" : "micro_lane";
|
|
3243
|
+
}
|
|
3167
3244
|
function parseCanonicalCandidateRows(text, fallbackFamily) {
|
|
3168
3245
|
const rows = [];
|
|
3169
3246
|
const issues = [];
|
|
3170
3247
|
let headerFamily = null;
|
|
3171
|
-
for (const [index, line] of
|
|
3248
|
+
for (const [index, line] of normalizeCandidateArtifact(text, fallbackFamily).text.split(/\r?\n/).entries()) {
|
|
3172
3249
|
const fields = splitPipeFields(line).map((field) => field.trim());
|
|
3173
3250
|
const detectedHeaderFamily = candidateHeaderFamily(fields);
|
|
3174
3251
|
if (detectedHeaderFamily) {
|
|
@@ -3699,7 +3776,7 @@ function workflowArtifactHasContractMarker(directory, state, record, expectedMod
|
|
|
3699
3776
|
const coveredLanes = ownedWorkflowLanes?.length ? ownedWorkflowLanes : [expectedWorkflowLane];
|
|
3700
3777
|
const coverageAnalyses = coveredLanes.map((coveredLane) => ({
|
|
3701
3778
|
coveredLane,
|
|
3702
|
-
analysis: analyzePrReviewDiscoveryArtifact(artifact.text, coveredLane, coveredLanes)
|
|
3779
|
+
analysis: analyzePrReviewDiscoveryArtifact(artifact.text, coveredLane, coveredLanes, expectedMode)
|
|
3703
3780
|
}));
|
|
3704
3781
|
if (coverageAnalyses.some(({ analysis }) => !analysis.covered)) {
|
|
3705
3782
|
for (const { coveredLane, analysis } of coverageAnalyses) {
|
|
@@ -3715,7 +3792,7 @@ function workflowArtifactHasContractMarker(directory, state, record, expectedMod
|
|
|
3715
3792
|
if (coveredLanes.length > 1) {
|
|
3716
3793
|
const seenEvidence = new Map;
|
|
3717
3794
|
for (const coveredLane of coveredLanes) {
|
|
3718
|
-
const evidence2 = extractLaneCoverageEvidenceText(artifact.text, coveredLane, coveredLanes);
|
|
3795
|
+
const evidence2 = extractLaneCoverageEvidenceText(artifact.text, coveredLane, coveredLanes, expectedMode);
|
|
3719
3796
|
if (evidence2 === null)
|
|
3720
3797
|
continue;
|
|
3721
3798
|
const priorLane = seenEvidence.get(evidence2);
|
|
@@ -3726,10 +3803,12 @@ function workflowArtifactHasContractMarker(directory, state, record, expectedMod
|
|
|
3726
3803
|
}
|
|
3727
3804
|
return true;
|
|
3728
3805
|
}
|
|
3729
|
-
function analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkflowLanes = [expectedWorkflowLane]) {
|
|
3730
|
-
const fallbackFamily =
|
|
3806
|
+
function analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkflowLanes = [expectedWorkflowLane], mode) {
|
|
3807
|
+
const fallbackFamily = resolvePrReviewRowFamily(expectedWorkflowLane, mode);
|
|
3731
3808
|
const issues = [];
|
|
3732
|
-
const
|
|
3809
|
+
const normalized = normalizeCandidateArtifact(text, fallbackFamily);
|
|
3810
|
+
const canonicalText = normalized.text;
|
|
3811
|
+
const salvaged = normalized.synthesizedHeader;
|
|
3733
3812
|
const header = selectCandidateHeader(canonicalText.split(/\r?\n/));
|
|
3734
3813
|
if (header === null || !header.markerBearing || header.family !== fallbackFamily) {
|
|
3735
3814
|
appendBoundedCandidateIssue(issues, `field header: expected one exact canonical ${fallbackFamily} [CANDIDATE] header before discovery rows`);
|
|
@@ -3737,6 +3816,7 @@ function analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkf
|
|
|
3737
3816
|
covered: false,
|
|
3738
3817
|
evidence: null,
|
|
3739
3818
|
issues,
|
|
3819
|
+
salvaged,
|
|
3740
3820
|
failurePredicate: "discovery.header"
|
|
3741
3821
|
};
|
|
3742
3822
|
}
|
|
@@ -3771,11 +3851,15 @@ function analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkf
|
|
|
3771
3851
|
for (const detail of parsed.diagnostics.parse_error_details) {
|
|
3772
3852
|
appendBoundedCandidateIssue(issues, `row ${detail.row_index + 1} field ${detail.field}: ${detail.message}`);
|
|
3773
3853
|
}
|
|
3774
|
-
|
|
3854
|
+
const hasParseFailure = Boolean(parsed.error) || parsed.diagnostics.parse_error_details.length > 0;
|
|
3855
|
+
const extractedCandidateIds = parseCanonicalCandidateRows(canonicalText, fallbackFamily).rows.map((row) => row.candidateId);
|
|
3856
|
+
const hasDuplicateCandidateId = new Set(extractedCandidateIds).size !== extractedCandidateIds.length;
|
|
3857
|
+
if (hasDuplicateCandidateId) {
|
|
3775
3858
|
return {
|
|
3776
3859
|
covered: false,
|
|
3777
3860
|
evidence: null,
|
|
3778
3861
|
issues,
|
|
3862
|
+
salvaged,
|
|
3779
3863
|
failurePredicate: "discovery.row"
|
|
3780
3864
|
};
|
|
3781
3865
|
}
|
|
@@ -3792,7 +3876,8 @@ function analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkf
|
|
|
3792
3876
|
matchingCandidate.impact_context ?? matchingCandidate.invariant_violated,
|
|
3793
3877
|
matchingCandidate.confidence
|
|
3794
3878
|
].join("\x00"),
|
|
3795
|
-
issues
|
|
3879
|
+
issues,
|
|
3880
|
+
salvaged
|
|
3796
3881
|
};
|
|
3797
3882
|
}
|
|
3798
3883
|
const clean = parsed.clean_attestation;
|
|
@@ -3800,14 +3885,16 @@ function analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkf
|
|
|
3800
3885
|
return {
|
|
3801
3886
|
covered: true,
|
|
3802
3887
|
evidence: `${clean.coverage_scope}\x00${clean.evidence}`,
|
|
3803
|
-
issues
|
|
3888
|
+
issues,
|
|
3889
|
+
salvaged
|
|
3804
3890
|
};
|
|
3805
3891
|
}
|
|
3806
3892
|
return {
|
|
3807
3893
|
covered: false,
|
|
3808
3894
|
evidence: null,
|
|
3809
3895
|
issues,
|
|
3810
|
-
|
|
3896
|
+
salvaged,
|
|
3897
|
+
failurePredicate: hasParseFailure ? "discovery.row" : "discovery.coverage"
|
|
3811
3898
|
};
|
|
3812
3899
|
}
|
|
3813
3900
|
function validatePrReviewDiscoveryLaneCompletion(input) {
|
|
@@ -3845,8 +3932,18 @@ function validatePrReviewDiscoveryLaneCompletion(input) {
|
|
|
3845
3932
|
const artifact = input.artifact;
|
|
3846
3933
|
const analyses = ownedWorkflowLanes.map((workflowLane) => ({
|
|
3847
3934
|
workflowLane,
|
|
3848
|
-
analysis: analyzePrReviewDiscoveryArtifact(artifact.text, workflowLane, ownedWorkflowLanes)
|
|
3935
|
+
analysis: analyzePrReviewDiscoveryArtifact(artifact.text, workflowLane, ownedWorkflowLanes, input.expected.mode)
|
|
3849
3936
|
}));
|
|
3937
|
+
const salvagedLanes = [];
|
|
3938
|
+
for (const { workflowLane, analysis } of analyses) {
|
|
3939
|
+
if (!analysis.covered)
|
|
3940
|
+
continue;
|
|
3941
|
+
if (!analysis.salvaged && analysis.issues.length === 0)
|
|
3942
|
+
continue;
|
|
3943
|
+
salvagedLanes.push(workflowLane);
|
|
3944
|
+
const reason = analysis.salvaged ? `canonical ${resolvePrReviewRowFamily(workflowLane, input.expected.mode)} header was absent and was synthesized from valid marker rows` : "one or more rows were dropped as malformed or out-of-ownership";
|
|
3945
|
+
warn(`[pr-workflow-gate] discovery artifact salvaged: batch=${input.record.batchId ?? "(missing)"} lane=${input.record.laneId ?? "(missing)"} workflow_lane=${workflowLane} \u2014 ${reason}; retained coverage from the valid rows. Dropped-row diagnostics: ${analysis.issues.join("; ") || "(none)"}`);
|
|
3946
|
+
}
|
|
3850
3947
|
const failedCoverage = analyses.find(({ analysis }) => !analysis.covered);
|
|
3851
3948
|
if (failedCoverage) {
|
|
3852
3949
|
return failedLaneValidation(failedCoverage.analysis.failurePredicate ?? "discovery.coverage", `one valid ${input.expected.mode === "swarm-pr-review:base" ? "base_explorer" : "micro_lane"} [CANDIDATE] row or [CLEAN] attestation for ${failedCoverage.workflowLane}`, failedCoverage.analysis.issues.join("; ") || "no matching lane row");
|
|
@@ -3863,13 +3960,13 @@ function validatePrReviewDiscoveryLaneCompletion(input) {
|
|
|
3863
3960
|
seenEvidence.set(analysis.evidence, workflowLane);
|
|
3864
3961
|
}
|
|
3865
3962
|
}
|
|
3866
|
-
return { ok: true };
|
|
3963
|
+
return salvagedLanes.length > 0 ? { ok: true, salvaged: salvagedLanes } : { ok: true };
|
|
3867
3964
|
}
|
|
3868
|
-
function prReviewDiscoveryArtifactCoversLane(text, expectedWorkflowLane, ownedWorkflowLanes = [expectedWorkflowLane]) {
|
|
3869
|
-
return analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkflowLanes).covered;
|
|
3965
|
+
function prReviewDiscoveryArtifactCoversLane(text, expectedWorkflowLane, ownedWorkflowLanes = [expectedWorkflowLane], mode) {
|
|
3966
|
+
return analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkflowLanes, mode).covered;
|
|
3870
3967
|
}
|
|
3871
|
-
function extractLaneCoverageEvidenceText(text, expectedWorkflowLane, ownedWorkflowLanes = [expectedWorkflowLane]) {
|
|
3872
|
-
return analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkflowLanes).evidence;
|
|
3968
|
+
function extractLaneCoverageEvidenceText(text, expectedWorkflowLane, ownedWorkflowLanes = [expectedWorkflowLane], mode) {
|
|
3969
|
+
return analyzePrReviewDiscoveryArtifact(text, expectedWorkflowLane, ownedWorkflowLanes, mode).evidence;
|
|
3873
3970
|
}
|
|
3874
3971
|
var REVIEWER_CLASSIFICATIONS = new Set([
|
|
3875
3972
|
"CONFIRMED",
|
|
@@ -18784,7 +18881,7 @@ function planMerges(active, threshold, maxComparisons, maxMerges) {
|
|
|
18784
18881
|
};
|
|
18785
18882
|
}
|
|
18786
18883
|
async function sweepActiveNearDuplicates(directory, options = {}) {
|
|
18787
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
18884
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-1v89yst3.js");
|
|
18788
18885
|
const { config } = loadPluginConfigWithMeta2(directory);
|
|
18789
18886
|
const sweepConfig = config.learning?.dedup_sweep;
|
|
18790
18887
|
if (sweepConfig?.enabled === false)
|
|
@@ -20377,7 +20474,7 @@ async function runCuratorPhase(directory, phase, agentsDispatched, config, knowl
|
|
|
20377
20474
|
}
|
|
20378
20475
|
if (config.skill_generation_enabled === true && skillCandidates.length > 0) {
|
|
20379
20476
|
try {
|
|
20380
|
-
const skillModule = await import("./skill-generator-
|
|
20477
|
+
const skillModule = await import("./skill-generator-arvwfdfh.js");
|
|
20381
20478
|
for (const cand of skillCandidates) {
|
|
20382
20479
|
if (cand.confidence < (config.min_skill_confidence ?? DEFAULT_SKILL_MIN_CONFIDENCE)) {
|
|
20383
20480
|
continue;
|
|
@@ -20837,7 +20934,7 @@ async function applyCuratorKnowledgeUpdates(directory, recommendations, knowledg
|
|
|
20837
20934
|
} catch {}
|
|
20838
20935
|
}
|
|
20839
20936
|
if (contradictedEntries.length > 0 && knowledgeConfig.contradiction_threshold_action === "quarantine") {
|
|
20840
|
-
const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-
|
|
20937
|
+
const { maybeQuarantineOnContradiction } = await import("./knowledge-escalator-7n384ys1.js");
|
|
20841
20938
|
for (const { id } of contradictedEntries) {
|
|
20842
20939
|
try {
|
|
20843
20940
|
await maybeQuarantineOnContradiction(directory, id, knowledgeConfig.contradiction_quarantine_threshold, knowledgeConfig.contradiction_quarantine_window_days);
|
|
@@ -21656,7 +21753,7 @@ async function runCuratorPostMortem(directory, options = {}) {
|
|
|
21656
21753
|
warnings.push("Failed to collect knowledge summary.");
|
|
21657
21754
|
}
|
|
21658
21755
|
try {
|
|
21659
|
-
const { getScanStatus } = await import("./scan-cursor-
|
|
21756
|
+
const { getScanStatus } = await import("./scan-cursor-9y9msabt.js");
|
|
21660
21757
|
const scanStatus = await getScanStatus(directory);
|
|
21661
21758
|
if (scanStatus.remaining_estimate > 0) {
|
|
21662
21759
|
warnings.push(`Fair scan: reviewed ${knowledgeSummary.length} entries this sweep (generation ${scanStatus.generation}); ${scanStatus.remaining_estimate} more eligible entries will be visited in future curation sweeps.`);
|
|
@@ -21828,9 +21925,9 @@ var _internals24 = {
|
|
|
21828
21925
|
verifyPostMortemKnowledgeActions,
|
|
21829
21926
|
repairPostMortemActions,
|
|
21830
21927
|
loadDefaultKnowledgeConfig: async (directory) => {
|
|
21831
|
-
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-
|
|
21928
|
+
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-xg5f11md.js");
|
|
21832
21929
|
try {
|
|
21833
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
21930
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-1v89yst3.js");
|
|
21834
21931
|
const loaded = loadPluginConfigWithMeta2(directory);
|
|
21835
21932
|
return KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
|
|
21836
21933
|
} catch {
|
|
@@ -21838,11 +21935,11 @@ var _internals24 = {
|
|
|
21838
21935
|
}
|
|
21839
21936
|
},
|
|
21840
21937
|
applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig, generation) => {
|
|
21841
|
-
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-
|
|
21938
|
+
const { applyCuratorKnowledgeUpdates: applyCuratorKnowledgeUpdates2 } = await import("./curator-jjtp9hn2.js");
|
|
21842
21939
|
return applyCuratorKnowledgeUpdates2(directory, recommendations, knowledgeConfig, generation);
|
|
21843
21940
|
},
|
|
21844
21941
|
checkHivePromotions: async (entries, knowledgeConfig, directory) => {
|
|
21845
|
-
const { checkHivePromotions } = await import("./hive-promoter-
|
|
21942
|
+
const { checkHivePromotions } = await import("./hive-promoter-xvq8jzbs.js");
|
|
21846
21943
|
return checkHivePromotions(entries, knowledgeConfig, directory);
|
|
21847
21944
|
},
|
|
21848
21945
|
applyProposalTriage: async (directory, triage) => {
|
|
@@ -21851,7 +21948,7 @@ var _internals24 = {
|
|
|
21851
21948
|
activateProposal,
|
|
21852
21949
|
listSkills: listSkills2,
|
|
21853
21950
|
sanitizeSlug
|
|
21854
|
-
} = await import("./skill-generator-
|
|
21951
|
+
} = await import("./skill-generator-arvwfdfh.js");
|
|
21855
21952
|
const result = {
|
|
21856
21953
|
approved: [],
|
|
21857
21954
|
rejected: [],
|
|
@@ -24478,9 +24575,9 @@ function hashContent(content) {
|
|
|
24478
24575
|
return createHash9("sha1").update(content).digest("hex");
|
|
24479
24576
|
}
|
|
24480
24577
|
async function loadConfigForPolicyCurator(directory) {
|
|
24481
|
-
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-
|
|
24578
|
+
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-xg5f11md.js");
|
|
24482
24579
|
try {
|
|
24483
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
24580
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-1v89yst3.js");
|
|
24484
24581
|
const { config: loadedConfig } = loadPluginConfigWithMeta2(directory);
|
|
24485
24582
|
return KnowledgeConfigSchema2.parse(loadedConfig.knowledge ?? {});
|
|
24486
24583
|
} catch {
|
|
@@ -28440,7 +28537,7 @@ async function runFinalizeStage(ctx) {
|
|
|
28440
28537
|
}
|
|
28441
28538
|
}
|
|
28442
28539
|
try {
|
|
28443
|
-
const { CuratorConfigSchema: CCS } = await import("./schema-
|
|
28540
|
+
const { CuratorConfigSchema: CCS } = await import("./schema-xg5f11md.js");
|
|
28444
28541
|
const { config: pmLoadedConfig } = _internals36.loadPluginConfigWithMeta(ctx.directory);
|
|
28445
28542
|
const curatorCfg = CCS.parse(pmLoadedConfig.curator ?? {});
|
|
28446
28543
|
if (curatorCfg.enabled && curatorCfg.postmortem_enabled) {
|
|
@@ -30711,9 +30808,9 @@ var _internals41 = {
|
|
|
30711
30808
|
loadPluginConfigWithMeta,
|
|
30712
30809
|
loadCuratorDeps: async () => {
|
|
30713
30810
|
const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
|
|
30714
|
-
import("./schema-
|
|
30715
|
-
import("./curator-
|
|
30716
|
-
import("./curator-llm-factory-
|
|
30811
|
+
import("./schema-xg5f11md.js"),
|
|
30812
|
+
import("./curator-jjtp9hn2.js"),
|
|
30813
|
+
import("./curator-llm-factory-wkjme59b.js")
|
|
30717
30814
|
]);
|
|
30718
30815
|
return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
|
|
30719
30816
|
}
|
|
@@ -31618,7 +31715,7 @@ async function computeCurationDiagnostics(directory, entries) {
|
|
|
31618
31715
|
let scanCompleted = false;
|
|
31619
31716
|
let scanRemaining = 0;
|
|
31620
31717
|
try {
|
|
31621
|
-
const { getScanStatus } = await import("./scan-cursor-
|
|
31718
|
+
const { getScanStatus } = await import("./scan-cursor-9y9msabt.js");
|
|
31622
31719
|
const status = await getScanStatus(directory);
|
|
31623
31720
|
scanGeneration = status.generation;
|
|
31624
31721
|
scanCompleted = status.completed;
|
|
@@ -31628,17 +31725,17 @@ async function computeCurationDiagnostics(directory, entries) {
|
|
|
31628
31725
|
try {
|
|
31629
31726
|
const { isLinked: isLinked2 } = await import("./knowledge-link-xc6yhxmz.js");
|
|
31630
31727
|
if (isLinked2(directory)) {
|
|
31631
|
-
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-
|
|
31728
|
+
const { KnowledgeConfigSchema: KnowledgeConfigSchema2 } = await import("./schema-xg5f11md.js");
|
|
31632
31729
|
let config;
|
|
31633
31730
|
try {
|
|
31634
|
-
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-
|
|
31731
|
+
const { loadPluginConfigWithMeta: loadPluginConfigWithMeta2 } = await import("./index-1v89yst3.js");
|
|
31635
31732
|
const loaded = loadPluginConfigWithMeta2(directory);
|
|
31636
31733
|
config = KnowledgeConfigSchema2.parse(loaded.config.knowledge ?? {});
|
|
31637
31734
|
} catch {
|
|
31638
31735
|
config = KnowledgeConfigSchema2.parse({});
|
|
31639
31736
|
}
|
|
31640
31737
|
const { cohortConfigFingerprint: cohortConfigFingerprint2 } = await import("./config-fingerprint-v22xh5a2.js");
|
|
31641
|
-
const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-
|
|
31738
|
+
const { buildConfigFingerprintInput: buildConfigFingerprintInput2, readCohortConfigFingerprint } = await import("./curation-policy-5dqexw5j.js");
|
|
31642
31739
|
const currentFp = cohortConfigFingerprint2(buildConfigFingerprintInput2(config));
|
|
31643
31740
|
const cohortFp = await readCohortConfigFingerprint(directory);
|
|
31644
31741
|
configMatch = cohortFp === null ? null : currentFp === cohortFp;
|
|
@@ -32849,7 +32946,7 @@ async function handleDoctorCommand(directory, args) {
|
|
|
32849
32946
|
const result = runConfigDoctor(config, directory);
|
|
32850
32947
|
let output;
|
|
32851
32948
|
if (enableAutoFix && result.hasAutoFixableIssues) {
|
|
32852
|
-
const { runConfigDoctorWithFixes } = await import("./config-doctor-
|
|
32949
|
+
const { runConfigDoctorWithFixes } = await import("./config-doctor-2mwgdbsn.js");
|
|
32853
32950
|
const fixResult = await runConfigDoctorWithFixes(directory, config, true, {
|
|
32854
32951
|
applyLossy: true
|
|
32855
32952
|
});
|
|
@@ -55992,7 +56089,7 @@ function buildDetailedHelp(commandName, entry) {
|
|
|
55992
56089
|
async function handleHelpCommand(ctx) {
|
|
55993
56090
|
const targetCommand = ctx.args.join(" ");
|
|
55994
56091
|
if (!targetCommand) {
|
|
55995
|
-
const { buildHelpText } = await import("./index-
|
|
56092
|
+
const { buildHelpText } = await import("./index-xgmx9had.js");
|
|
55996
56093
|
return buildHelpText();
|
|
55997
56094
|
}
|
|
55998
56095
|
const tokens = targetCommand.split(/\s+/);
|
|
@@ -56001,7 +56098,7 @@ async function handleHelpCommand(ctx) {
|
|
|
56001
56098
|
return _internals14.buildDetailedHelp(resolved.key, resolved.entry);
|
|
56002
56099
|
}
|
|
56003
56100
|
const similar = _internals14.findSimilarCommands(targetCommand);
|
|
56004
|
-
const { buildHelpText: fullHelp } = await import("./index-
|
|
56101
|
+
const { buildHelpText: fullHelp } = await import("./index-xgmx9had.js");
|
|
56005
56102
|
if (similar.length > 0) {
|
|
56006
56103
|
return `Command '/swarm ${targetCommand}' not found.
|
|
56007
56104
|
|
|
@@ -56178,7 +56275,7 @@ var COMMAND_REGISTRY = {
|
|
|
56178
56275
|
},
|
|
56179
56276
|
"guardrail explain": {
|
|
56180
56277
|
handler: async (ctx) => {
|
|
56181
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
56278
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-xppwfnxr.js");
|
|
56182
56279
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
56183
56280
|
},
|
|
56184
56281
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -56188,7 +56285,7 @@ var COMMAND_REGISTRY = {
|
|
|
56188
56285
|
},
|
|
56189
56286
|
"guardrail-explain": {
|
|
56190
56287
|
handler: async (ctx) => {
|
|
56191
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
56288
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-xppwfnxr.js");
|
|
56192
56289
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
56193
56290
|
},
|
|
56194
56291
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -56198,7 +56295,7 @@ var COMMAND_REGISTRY = {
|
|
|
56198
56295
|
},
|
|
56199
56296
|
"guardrail-log": {
|
|
56200
56297
|
handler: async (ctx) => {
|
|
56201
|
-
const { handleGuardrailLog } = await import("./guardrail-log-
|
|
56298
|
+
const { handleGuardrailLog } = await import("./guardrail-log-swet7rch.js");
|
|
56202
56299
|
return handleGuardrailLog(ctx.directory, ctx.args);
|
|
56203
56300
|
},
|
|
56204
56301
|
description: "Read the guardrail decision log (use --blocks-only for blocks)",
|
|
@@ -21,7 +21,7 @@ var package_default;
|
|
|
21
21
|
var init_package = __esm(() => {
|
|
22
22
|
package_default = {
|
|
23
23
|
name: "opencode-swarm",
|
|
24
|
-
version: "7.138.
|
|
24
|
+
version: "7.138.3",
|
|
25
25
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
26
26
|
main: "dist/index.js",
|
|
27
27
|
types: "dist/index.d.ts",
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
resolveSwarmKnowledgePath,
|
|
7
7
|
transactKnowledge,
|
|
8
8
|
wordBigrams
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-1djv5684.js";
|
|
10
10
|
import {
|
|
11
11
|
countEntryContradictionsInWindow,
|
|
12
12
|
countEntryViolationsInWindow,
|
|
13
13
|
readKnowledgeEvents,
|
|
14
14
|
recordKnowledgeEvent
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-93ky909v.js";
|
|
16
16
|
import {
|
|
17
17
|
init_knowledge_types,
|
|
18
18
|
isActiveStatus
|
|
@@ -190,11 +190,11 @@ async function maybeQuarantineOnContradiction(directory, entryId, threshold, win
|
|
|
190
190
|
alreadyInactive: true
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
|
-
const { quarantineEntry } = await import("./knowledge-validator-
|
|
193
|
+
const { quarantineEntry } = await import("./knowledge-validator-e5fqy9h4.js");
|
|
194
194
|
let policyConfig;
|
|
195
195
|
try {
|
|
196
|
-
const { KnowledgeConfigSchema } = await import("./schema-
|
|
197
|
-
const { loadPluginConfigWithMeta } = await import("./index-
|
|
196
|
+
const { KnowledgeConfigSchema } = await import("./schema-xg5f11md.js");
|
|
197
|
+
const { loadPluginConfigWithMeta } = await import("./index-1v89yst3.js");
|
|
198
198
|
const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
|
|
199
199
|
policyConfig = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
|
|
200
200
|
} catch {
|
|
@@ -12,14 +12,14 @@ import {
|
|
|
12
12
|
detectPosixWrites,
|
|
13
13
|
detectWindowsWrites,
|
|
14
14
|
resolveWriteTargets
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-99af5gvd.js";
|
|
16
16
|
import {
|
|
17
17
|
checkFileAuthority,
|
|
18
18
|
classifyFile,
|
|
19
19
|
isInDeclaredScope,
|
|
20
20
|
redactPath,
|
|
21
21
|
redactShellCommand
|
|
22
|
-
} from "./index-
|
|
22
|
+
} from "./index-31vfewmn.js";
|
|
23
23
|
|
|
24
24
|
// src/services/guardrail-explain-service.ts
|
|
25
25
|
import path from "path";
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ALLOWED_SKILL_PATH_PREFIXES,
|
|
4
4
|
validateSkillPath
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-tc61fybd.js";
|
|
6
6
|
import {
|
|
7
7
|
computeOutcomeSignal,
|
|
8
8
|
readKnowledge,
|
|
9
9
|
resolveHiveKnowledgePath,
|
|
10
10
|
resolveSwarmKnowledgePath,
|
|
11
11
|
transactKnowledge
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-1djv5684.js";
|
|
13
13
|
import {
|
|
14
14
|
effectiveRetrievalOutcomes,
|
|
15
15
|
readKnowledgeCounterRollups
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-93ky909v.js";
|
|
17
17
|
import {
|
|
18
18
|
init_knowledge_types,
|
|
19
19
|
isActiveStatus
|
|
@@ -52,7 +52,8 @@ var ResultSchema = exports_external.object({
|
|
|
52
52
|
outputDegraded: exports_external.boolean().optional(),
|
|
53
53
|
outputArtifactError: exports_external.string().optional(),
|
|
54
54
|
transcriptIncomplete: exports_external.boolean().optional(),
|
|
55
|
-
messageCount: exports_external.number().optional()
|
|
55
|
+
messageCount: exports_external.number().optional(),
|
|
56
|
+
salvagedWorkflowLanes: exports_external.array(exports_external.string()).optional()
|
|
56
57
|
}).strict();
|
|
57
58
|
var WorkspaceSchema = exports_external.object({
|
|
58
59
|
directory: exports_external.string(),
|