opencode-swarm 7.140.1 → 7.140.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-feedback/SKILL.md +19 -3
- package/.opencode/skills/swarm-pr-review/SKILL.md +61 -14
- package/dist/background/candidate-contract.d.ts +3 -0
- package/dist/cli/{config-doctor-0b5z13vq.js → config-doctor-fnmfd35x.js} +3 -3
- package/dist/cli/{core-m5y25n0j.js → core-p5cyej3r.js} +2 -2
- package/dist/cli/{curation-policy-bn7g8n40.js → curation-policy-d52h4g8t.js} +2 -2
- package/dist/cli/{curator-b7f6nt8h.js → curator-3zpdqt9r.js} +14 -14
- package/dist/cli/{curator-llm-factory-0mkbw2hg.js → curator-llm-factory-2h0xb62t.js} +14 -14
- package/dist/cli/{guardrail-explain-p2htdqkz.js → guardrail-explain-yktan15c.js} +15 -15
- package/dist/cli/{guardrail-log-rqt9wrzw.js → guardrail-log-82da8y5a.js} +4 -4
- package/dist/cli/{hive-promoter-61sjdrgt.js → hive-promoter-af5yaxvt.js} +14 -14
- package/dist/cli/{index-jq7n7w9y.js → index-7d5jseea.js} +2 -2
- package/dist/cli/{index-yf6p4wc5.js → index-7kdd75se.js} +3 -3
- package/dist/cli/{index-vw75bhf3.js → index-898f16j9.js} +1 -1
- package/dist/cli/{index-0an7an2s.js → index-8bnzzv3b.js} +2 -2
- package/dist/cli/{index-hnprx6qv.js → index-8n4c3vec.js} +2 -2
- package/dist/cli/{index-6fwr2w8v.js → index-95bj4kaw.js} +2 -2
- package/dist/cli/{index-7nhrn9sy.js → index-gtbmabws.js} +1 -1
- package/dist/cli/{index-hgrzjhsf.js → index-j1xmren9.js} +3 -3
- package/dist/cli/{index-r7tg8kjh.js → index-jvk119ck.js} +5 -5
- package/dist/cli/{index-v1d4qz8y.js → index-n408rw7n.js} +1 -1
- package/dist/cli/{index-wysn7pcz.js → index-n8jncheh.js} +1 -1
- package/dist/cli/{index-a98msw3z.js → index-p9dsb0tw.js} +1 -1
- package/dist/cli/{index-dn3nkwbc.js → index-pg7n141e.js} +1 -1
- package/dist/cli/{index-ff7b0cr5.js → index-pj9h75cc.js} +16 -16
- package/dist/cli/{index-7f72x6nv.js → index-q1q8b85k.js} +435 -172
- package/dist/cli/{index-dbg3agxz.js → index-qksjaxpd.js} +4 -4
- package/dist/cli/{index-m9csth1h.js → index-wf35ka4z.js} +2 -2
- package/dist/cli/{index-acc18zrj.js → index-xz8f1n1a.js} +2 -2
- package/dist/cli/index.js +14 -14
- package/dist/cli/{knowledge-escalator-twwz5a0d.js → knowledge-escalator-7q59skqg.js} +3 -3
- package/dist/cli/{knowledge-events-hgaz06m8.js → knowledge-events-3nwfdpq7.js} +1 -1
- package/dist/cli/{knowledge-store-46jrzgvm.js → knowledge-store-0d83rhh3.js} +1 -1
- package/dist/cli/{knowledge-validator-7vnqwjtv.js → knowledge-validator-6mfx91a2.js} +4 -4
- package/dist/cli/{scan-cursor-acsjpv2n.js → scan-cursor-rc8q12ss.js} +2 -2
- package/dist/cli/{schema-4dy7emnw.js → schema-n9eaxp3a.js} +2 -2
- package/dist/cli/{skill-generator-a48t83hf.js → skill-generator-q7c6vadg.js} +5 -5
- package/dist/commands/registry.d.ts +1 -1
- package/dist/git/pr-workflow-state.d.ts +3 -1
- package/dist/hooks/compaction-customizer.d.ts +8 -0
- package/dist/hooks/pr-workflow-gate.d.ts +19 -13
- package/dist/index.js +108 -103
- package/dist/tools/complete-pr-workflow.d.ts +6 -0
- package/dist/tools/gh-evidence.d.ts +6 -0
- package/dist/tools/prepare-pr-workflow-checkout.d.ts +11 -0
- package/package.json +1 -1
|
@@ -702,7 +702,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
|
|
|
702
702
|
const recovered = touched.filter((e) => e.confidence > CONFIDENCE_FLOOR + FLOOR_EPSILON && e.confidence_floor_demoted);
|
|
703
703
|
if (atFloor.length === 0 && recovered.length === 0)
|
|
704
704
|
return;
|
|
705
|
-
const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-
|
|
705
|
+
const { readKnowledgeCounterRollups, effectiveRetrievalOutcomes } = await import("./knowledge-events-3nwfdpq7.js");
|
|
706
706
|
const rollups = await readKnowledgeCounterRollups(directory);
|
|
707
707
|
const flagIds = new Set;
|
|
708
708
|
for (const e of atFloor) {
|
|
@@ -769,11 +769,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
|
|
|
769
769
|
});
|
|
770
770
|
}
|
|
771
771
|
if (action === "quarantine" && toQuarantine.length > 0) {
|
|
772
|
-
const { quarantineEntry } = await import("./knowledge-validator-
|
|
773
|
-
const { KnowledgeConfigSchema } = await import("./schema-
|
|
772
|
+
const { quarantineEntry } = await import("./knowledge-validator-6mfx91a2.js");
|
|
773
|
+
const { KnowledgeConfigSchema } = await import("./schema-n9eaxp3a.js");
|
|
774
774
|
let config;
|
|
775
775
|
try {
|
|
776
|
-
const { loadPluginConfigWithMeta } = await import("./index-
|
|
776
|
+
const { loadPluginConfigWithMeta } = await import("./index-j1xmren9.js");
|
|
777
777
|
const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
|
|
778
778
|
config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
|
|
779
779
|
} catch {
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
init_schema,
|
|
17
17
|
stripKnownSwarmPrefix
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-7d5jseea.js";
|
|
19
19
|
import {
|
|
20
20
|
init_constants
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-n408rw7n.js";
|
|
22
22
|
import {
|
|
23
23
|
__commonJS,
|
|
24
24
|
__toESM
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
PluginConfigSchema,
|
|
10
10
|
init_schema,
|
|
11
11
|
stripKnownSwarmPrefix
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-7d5jseea.js";
|
|
13
13
|
import {
|
|
14
14
|
ALL_AGENT_NAMES,
|
|
15
15
|
init_constants
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-n408rw7n.js";
|
|
17
17
|
|
|
18
18
|
// src/services/config-doctor.ts
|
|
19
19
|
init_constants();
|
package/dist/cli/index.js
CHANGED
|
@@ -6,19 +6,19 @@ import {
|
|
|
6
6
|
getPluginConfigDir,
|
|
7
7
|
getPluginLockFilePaths,
|
|
8
8
|
resolveCommand
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-q1q8b85k.js";
|
|
10
10
|
import"./index-41hkt36g.js";
|
|
11
11
|
import"./index-1m1ksyqt.js";
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
12
|
+
import"./index-wf35ka4z.js";
|
|
13
|
+
import"./index-xz8f1n1a.js";
|
|
14
14
|
import"./index-brh827g0.js";
|
|
15
15
|
import"./index-yyyk63kk.js";
|
|
16
16
|
import"./index-y8552snf.js";
|
|
17
17
|
import"./index-4905hd2m.js";
|
|
18
18
|
import"./index-134d35c1.js";
|
|
19
|
-
import"./index-
|
|
20
|
-
import"./index-
|
|
21
|
-
import"./index-
|
|
19
|
+
import"./index-7kdd75se.js";
|
|
20
|
+
import"./index-jvk119ck.js";
|
|
21
|
+
import"./index-gtbmabws.js";
|
|
22
22
|
import"./index-v2xrer41.js";
|
|
23
23
|
import"./index-c8s9a3zh.js";
|
|
24
24
|
import"./index-9ss2m4rs.js";
|
|
@@ -28,7 +28,7 @@ import"./index-556ja8an.js";
|
|
|
28
28
|
import"./index-kbfsp07d.js";
|
|
29
29
|
import"./index-1kyex7z2.js";
|
|
30
30
|
import"./index-b8zgtz81.js";
|
|
31
|
-
import"./index-
|
|
31
|
+
import"./index-898f16j9.js";
|
|
32
32
|
import"./index-b9rd29ge.js";
|
|
33
33
|
import"./index-k46me75h.js";
|
|
34
34
|
import"./index-ee3x66a5.js";
|
|
@@ -36,11 +36,11 @@ import"./index-74hpm6sh.js";
|
|
|
36
36
|
import"./index-n0pja0qs.js";
|
|
37
37
|
import"./index-8fwhhayc.js";
|
|
38
38
|
import"./index-q1exe2b3.js";
|
|
39
|
-
import"./index-
|
|
40
|
-
import"./index-
|
|
39
|
+
import"./index-8n4c3vec.js";
|
|
40
|
+
import"./index-p9dsb0tw.js";
|
|
41
41
|
import"./index-rtry5xyf.js";
|
|
42
|
-
import"./index-
|
|
43
|
-
import"./index-
|
|
42
|
+
import"./index-qksjaxpd.js";
|
|
43
|
+
import"./index-n8jncheh.js";
|
|
44
44
|
import"./index-ae75rja9.js";
|
|
45
45
|
import"./index-rs1f1bh0.js";
|
|
46
46
|
import"./index-h2waehqq.js";
|
|
@@ -48,7 +48,7 @@ import"./index-ed5ykebp.js";
|
|
|
48
48
|
import"./index-hfvxhk4z.js";
|
|
49
49
|
import"./index-7g4c7s5r.js";
|
|
50
50
|
import"./index-4nt52yr9.js";
|
|
51
|
-
import"./index-
|
|
51
|
+
import"./index-8bnzzv3b.js";
|
|
52
52
|
import"./index-gprxjmm7.js";
|
|
53
53
|
import"./index-n832052r.js";
|
|
54
54
|
import"./index-d181x9zr.js";
|
|
@@ -57,11 +57,11 @@ import"./index-zgwm4ryv.js";
|
|
|
57
57
|
import {
|
|
58
58
|
init_package,
|
|
59
59
|
package_default
|
|
60
|
-
} from "./index-
|
|
60
|
+
} from "./index-7d5jseea.js";
|
|
61
61
|
import {
|
|
62
62
|
DEFAULT_AGENT_CONFIGS,
|
|
63
63
|
init_constants
|
|
64
|
-
} from "./index-
|
|
64
|
+
} from "./index-n408rw7n.js";
|
|
65
65
|
import"./index-zjygnfay.js";
|
|
66
66
|
import"./index-bk5tah7q.js";
|
|
67
67
|
import"./index-ry0hgg3m.js";
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
maybeEscalateOnViolation,
|
|
9
9
|
maybeQuarantineOnContradiction,
|
|
10
10
|
readRecentEscalations
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
11
|
+
} from "./index-jvk119ck.js";
|
|
12
|
+
import"./index-qksjaxpd.js";
|
|
13
|
+
import"./index-n8jncheh.js";
|
|
14
14
|
import"./index-ae75rja9.js";
|
|
15
15
|
import"./index-rs1f1bh0.js";
|
|
16
16
|
import"./index-h2waehqq.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
resolveKnowledgeCounterBaselinePath,
|
|
29
29
|
resolveKnowledgeEventsPath,
|
|
30
30
|
resolveLegacyApplicationLogPath
|
|
31
|
-
} from "./index-
|
|
31
|
+
} from "./index-n8jncheh.js";
|
|
32
32
|
import"./index-ae75rja9.js";
|
|
33
33
|
import"./index-rs1f1bh0.js";
|
|
34
34
|
import"./index-h2waehqq.js";
|
|
@@ -23,11 +23,11 @@ import {
|
|
|
23
23
|
validateLesson,
|
|
24
24
|
validateSkillCandidatePath,
|
|
25
25
|
validateSkillPath
|
|
26
|
-
} from "./index-
|
|
27
|
-
import"./index-
|
|
26
|
+
} from "./index-8n4c3vec.js";
|
|
27
|
+
import"./index-p9dsb0tw.js";
|
|
28
28
|
import"./index-rtry5xyf.js";
|
|
29
|
-
import"./index-
|
|
30
|
-
import"./index-
|
|
29
|
+
import"./index-qksjaxpd.js";
|
|
30
|
+
import"./index-n8jncheh.js";
|
|
31
31
|
import"./index-ae75rja9.js";
|
|
32
32
|
import"./index-rs1f1bh0.js";
|
|
33
33
|
import"./index-h2waehqq.js";
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
alreadyCuratedThisGeneration,
|
|
5
5
|
claimNextScanBatch,
|
|
6
6
|
getScanStatus
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
7
|
+
} from "./index-gtbmabws.js";
|
|
8
|
+
import"./index-qksjaxpd.js";
|
|
9
9
|
import"./index-ae75rja9.js";
|
|
10
10
|
import"./index-rs1f1bh0.js";
|
|
11
11
|
import"./index-h2waehqq.js";
|
|
@@ -96,8 +96,8 @@ import {
|
|
|
96
96
|
resolveGeneratedAgentRole,
|
|
97
97
|
resolveGuardrailsConfig,
|
|
98
98
|
stripKnownSwarmPrefix
|
|
99
|
-
} from "./index-
|
|
100
|
-
import"./index-
|
|
99
|
+
} from "./index-7d5jseea.js";
|
|
100
|
+
import"./index-n408rw7n.js";
|
|
101
101
|
import"./index-zjygnfay.js";
|
|
102
102
|
import"./index-bk5tah7q.js";
|
|
103
103
|
import"./index-bpmtbmy9.js";
|
|
@@ -33,12 +33,12 @@ import {
|
|
|
33
33
|
sanitizeSlug,
|
|
34
34
|
selectCandidateEntries,
|
|
35
35
|
writeEvalStub
|
|
36
|
-
} from "./index-
|
|
37
|
-
import"./index-
|
|
38
|
-
import"./index-
|
|
36
|
+
} from "./index-7kdd75se.js";
|
|
37
|
+
import"./index-8n4c3vec.js";
|
|
38
|
+
import"./index-p9dsb0tw.js";
|
|
39
39
|
import"./index-rtry5xyf.js";
|
|
40
|
-
import"./index-
|
|
41
|
-
import"./index-
|
|
40
|
+
import"./index-qksjaxpd.js";
|
|
41
|
+
import"./index-n8jncheh.js";
|
|
42
42
|
import"./index-ae75rja9.js";
|
|
43
43
|
import"./index-rs1f1bh0.js";
|
|
44
44
|
import"./index-h2waehqq.js";
|
|
@@ -619,7 +619,7 @@ export declare const COMMAND_REGISTRY: {
|
|
|
619
619
|
readonly handler: (ctx: CommandContext) => Promise<string>;
|
|
620
620
|
readonly description: "Clear a stuck PR_REVIEW/PR_FEEDBACK mechanical gate and stop the auto-resume loop [mode] [reason]";
|
|
621
621
|
readonly args: "[PR_REVIEW|PR_FEEDBACK] [reason...]";
|
|
622
|
-
readonly details: "Human-only escape hatch for an unrecoverable PR_REVIEW or PR_FEEDBACK mechanical gate. When the architect cannot reach complete_pr_workflow — for example a compound `git fetch && git checkout` was rejected as read-only shell syntax, the PR head cannot be fetched, or the working tree is on the wrong branch — running this clears the durable gate state for the current session and stops the auto-resume loop without depending on the trapped model. The agent itself cannot run this command; it must call the abort_pr_workflow tool (or ask you to run this command). Both paths funnel into the same fail-closed abortPrWorkflow hook, which refuses while the workflow is armed for publication or while PR workflow lanes are still in flight. An audit event is appended to .swarm/events.jsonl.";
|
|
622
|
+
readonly details: "Human-only escape hatch for an unrecoverable PR_REVIEW or PR_FEEDBACK mechanical gate. When the architect cannot reach complete_pr_workflow — for example a compound `git fetch && git checkout` was rejected as read-only shell syntax, the PR head cannot be fetched, or the working tree is on the wrong branch — running this clears the durable gate state for the current session and stops the auto-resume loop without depending on the trapped model. The agent itself cannot run this command; it must call the abort_pr_workflow tool (or ask you to run this command). Both paths funnel into the same fail-closed abortPrWorkflow hook, which refuses while the workflow is armed for publication or while PR workflow lanes are still in flight. When checkout preparation preserved a stash, the result instructs the caller to run prepare_pr_workflow_checkout operation=restore after the clear. An audit event is appended to .swarm/events.jsonl.";
|
|
623
623
|
readonly category: "utility";
|
|
624
624
|
readonly toolPolicy: "restricted";
|
|
625
625
|
};
|
|
@@ -28,7 +28,9 @@ declare function activeOperations(gitDir: string): Promise<string[]>;
|
|
|
28
28
|
* Unknown Git state fails closed; ordinary tracked/untracked dirt is explicitly
|
|
29
29
|
* distinguished from conflict and in-progress-operation recovery states.
|
|
30
30
|
*/
|
|
31
|
-
export declare function classifyPrWorkflowGitState(directory: string
|
|
31
|
+
export declare function classifyPrWorkflowGitState(directory: string, options?: {
|
|
32
|
+
ignoredPaths?: readonly string[];
|
|
33
|
+
}): Promise<PrWorkflowGitState>;
|
|
32
34
|
export declare const _internals: {
|
|
33
35
|
runGitCapture: typeof runGitCapture;
|
|
34
36
|
activeOperations: typeof activeOperations;
|
|
@@ -13,6 +13,14 @@ import type { PluginConfig } from '../config';
|
|
|
13
13
|
* (`- [ ] <id>: ... ← CURRENT`), and the legacy `extractIncompleteTasks` path
|
|
14
14
|
* relays it verbatim whenever plan.md was derived from or hand-written in the
|
|
15
15
|
* canonical ` ← CURRENT` format, so the strip is applied to both paths.
|
|
16
|
+
*
|
|
17
|
+
* Callers must pass TASK_EXTRACT_PRE_STRIP_CHARS to the extractor so the full
|
|
18
|
+
* marker always fits before this function runs. `(?:\.\.\.)?` is defense-in-depth
|
|
19
|
+
* for hand-authored plan.md lines that end with `← CURRENT...` — the programmatic
|
|
20
|
+
* extractor never appends `...` when TASK_EXTRACT_PRE_STRIP_CHARS is MAX_SAFE_INTEGER.
|
|
21
|
+
*
|
|
22
|
+
* Uses `[^\S\r\n]*` (horizontal whitespace only) to avoid O(n²) regex backtracking
|
|
23
|
+
* across line boundaries that `\s*` would cause on large inputs.
|
|
16
24
|
*/
|
|
17
25
|
declare function stripTaskActionMarkers(value: string): string;
|
|
18
26
|
interface CompactionFact {
|
|
@@ -4,7 +4,7 @@ import { type LaneOutputArtifact } from '../background/lane-output-store.js';
|
|
|
4
4
|
import { type BackgroundDelegationRecord, type BackgroundDelegationResult, findByBatchId } from '../background/pending-delegations.js';
|
|
5
5
|
import { type PrReviewInlineTriggerRow } from '../background/pr-review-trigger-contract.js';
|
|
6
6
|
import { type RevisionDigestResult, resolveCommitCountSince, resolveCommitCountSinceAsync, resolveCurrentGitHead, resolveCurrentGitHeadAsync, resolveCurrentUpstreamPushTarget, resolveCurrentUpstreamPushTargetAsync, resolveCurrentUpstreamRemoteRef, resolveExactRemoteBranchHead, resolveExactRemoteBranchHeadAsync, resolveIsExactSingleChildCommit, resolveIsExactSingleChildCommitAsync, resolveIsWorkingTreeClean, resolveIsWorkingTreeCleanAsync, resolvePrReviewDiffStats, resolvePrReviewDiffStatsAsync, resolvePrWorkflowRevisionDigest, resolvePrWorkflowRevisionDigestDetailed, resolveRemoteRefsContainingHead, resolveRemoteRefsContainingHeadAsync } from '../background/workspace-snapshot.js';
|
|
7
|
-
import { type PrWorkflowGitState } from '../git/pr-workflow-state.js';
|
|
7
|
+
import { classifyPrWorkflowGitState, type PrWorkflowGitState } from '../git/pr-workflow-state.js';
|
|
8
8
|
export declare const PR_REVIEW_BASE_DIMENSION_IDS: readonly ["intent-architecture", "correctness-state", "tests-falsifiability", "security-trust", "reliability-performance", "compatibility-delivery"];
|
|
9
9
|
export declare const PR_REVIEW_REQUIRED_MICRO_LANE_IDS: ("auth-identity-secrets" | "untrusted-input-boundaries" | "subprocess-platform" | "concurrency-state" | "dependencies-build-release" | "api-schema-migrations" | "test-infrastructure" | "ui-accessibility-i18n" | "privacy-observability" | "generated-provenance" | "unclassified-risk")[];
|
|
10
10
|
export type PrReviewBaseDimensionId = (typeof PR_REVIEW_BASE_DIMENSION_IDS)[number];
|
|
@@ -33,7 +33,7 @@ export interface PrReviewDiscoveryLaneValidationInput {
|
|
|
33
33
|
result: BackgroundDelegationResult;
|
|
34
34
|
artifact: LaneOutputArtifact | null;
|
|
35
35
|
expected: {
|
|
36
|
-
mode: 'swarm-pr-review:base' | 'swarm-pr-review:micro';
|
|
36
|
+
mode: 'swarm-pr-review:base' | 'swarm-pr-review:micro' | 'swarm-pr-review:council';
|
|
37
37
|
workflowLane: string;
|
|
38
38
|
ownedWorkflowLanes?: readonly string[];
|
|
39
39
|
prHeadSha: string;
|
|
@@ -359,6 +359,13 @@ export declare function readPrWorkflowGateState(directory: string, sessionID: st
|
|
|
359
359
|
export declare function withPrWorkflowCheckoutPreparationLock<T>(directory: string, sessionID: string, action: (state: PrWorkflowGateState, controls: {
|
|
360
360
|
markRecoveryRequired: (gitState: PrWorkflowGitState) => Promise<PrWorkflowGateState>;
|
|
361
361
|
}) => Promise<T>): Promise<T>;
|
|
362
|
+
/**
|
|
363
|
+
* Serialize post-terminal checkout restoration against both checkout mutations
|
|
364
|
+
* and same-session gate activation. Holding the session-state lock while the
|
|
365
|
+
* caller restores makes the inactive-gate check atomic with respect to a new
|
|
366
|
+
* activatePrWorkflow/persistState call.
|
|
367
|
+
*/
|
|
368
|
+
export declare function withInactivePrWorkflowCheckoutRestoreLock<T>(directory: string, sessionID: string, action: () => Promise<T>): Promise<T>;
|
|
362
369
|
export declare function clearPrWorkflowGateState(directory: string, sessionID: string, expectedRevision?: number): Promise<void>;
|
|
363
370
|
/**
|
|
364
371
|
* Abort an active PR workflow gate without reaching terminal completion.
|
|
@@ -380,13 +387,11 @@ export declare function clearPrWorkflowGateState(directory: string, sessionID: s
|
|
|
380
387
|
* commit. The tool gate refuses armed abort too (defense in depth).
|
|
381
388
|
* 4. Refuses while open `swarm-pr-*` delegations exist, matching
|
|
382
389
|
* `completePrWorkflow` — aborting mid-flight would orphan running lanes.
|
|
383
|
-
* 5.
|
|
384
|
-
*
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
* `force` abort. `force` may clear a bound gate without a recovery
|
|
389
|
-
* condition (explicit user override).
|
|
390
|
+
* 5. A `recovery` abort may clear an unbound or bound gate once every lane
|
|
391
|
+
* has settled. This is the bounded escape hatch for exhausted discovery,
|
|
392
|
+
* validation, or checkout recovery; requiring a pre-bind
|
|
393
|
+
* `checkoutRecovery` marker here would strand failures discovered only
|
|
394
|
+
* after the head was bound. `force` remains the explicit user override.
|
|
390
395
|
*
|
|
391
396
|
* Records a non-fatal audit event into the existing `.swarm/events.jsonl`
|
|
392
397
|
* (no new ledger file), then delegates to `clearPrWorkflowGateState`.
|
|
@@ -536,6 +541,7 @@ export declare const _test_exports: {
|
|
|
536
541
|
openCheckoutLock: typeof openCheckoutLockFile;
|
|
537
542
|
removeCheckoutLock: typeof removeCheckoutLockFile;
|
|
538
543
|
checkoutMutationActionTimeoutMs: number;
|
|
544
|
+
classifyPrWorkflowGitStateAsync: typeof classifyPrWorkflowGitState;
|
|
539
545
|
resolveCurrentGitHead: typeof resolveCurrentGitHead;
|
|
540
546
|
resolveCurrentGitHeadAsync: typeof resolveCurrentGitHeadAsync;
|
|
541
547
|
resolveCurrentUpstreamPushTarget: typeof resolveCurrentUpstreamPushTarget;
|
|
@@ -796,10 +802,10 @@ declare function analyzePrReviewBatchRecordIntegrity(args: {
|
|
|
796
802
|
expectedPrHeadSha?: string;
|
|
797
803
|
}): BatchRecordIntegrityAnalysis[];
|
|
798
804
|
/**
|
|
799
|
-
* Validate a just-collected base
|
|
800
|
-
* ledger publishes it as completed. The caller supplies the
|
|
801
|
-
* and
|
|
802
|
-
* accept stale terminal state or a different output reference.
|
|
805
|
+
* Validate a just-collected base, micro, or council discovery result before the
|
|
806
|
+
* delegation ledger publishes it as completed. The caller supplies the
|
|
807
|
+
* prospective result and exact stored artifact, so this pure validator cannot
|
|
808
|
+
* accidentally accept stale terminal state or a different output reference.
|
|
803
809
|
*/
|
|
804
810
|
export declare function validatePrReviewDiscoveryLaneCompletion(input: PrReviewDiscoveryLaneValidationInput): PrReviewLaneValidationResult;
|
|
805
811
|
/** Require at least one semantically valid discovery row or CLEAN attestation. */
|