opencode-swarm 7.159.3 → 7.160.1
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 +28 -29
- package/.opencode/skills/swarm-pr-review/references/prompt-templates.md +21 -5
- package/dist/background/delegation-health.d.ts +1 -1
- package/dist/background/pending-delegations.d.ts +46 -1
- package/dist/background/pr-review-contract.d.ts +245 -2
- package/dist/cli/{coder-settlement-50p7dsya.js → coder-settlement-678ccmnf.js} +11 -10
- package/dist/cli/{config-doctor-a7drgs33.js → config-doctor-fr8dfrt2.js} +3 -3
- package/dist/cli/{core-madqgdsc.js → core-4j1hbhey.js} +2 -2
- package/dist/cli/{curation-policy-ray8h55z.js → curation-policy-47przjwg.js} +6 -6
- package/dist/cli/{curator-3sz7refy.js → curator-85d97240.js} +33 -32
- package/dist/cli/curator-llm-factory-s9s4s0q3.js +67 -0
- package/dist/cli/{evidence-summary-service-cwyjkdsa.js → evidence-summary-service-9dyt2kzh.js} +15 -14
- package/dist/cli/{gate-evidence-95k5ap1z.js → gate-evidence-a6paafg8.js} +7 -7
- package/dist/cli/guardrail-explain-4a2xdtew.js +68 -0
- package/dist/cli/{guardrail-log-nerqk9qb.js → guardrail-log-27nkntrx.js} +9 -6
- package/dist/cli/{guardrail-reset-chbc0mep.js → guardrail-reset-xn7k3hn8.js} +33 -32
- package/dist/cli/{hive-promoter-4rtxhw7n.js → hive-promoter-k57j3kp6.js} +33 -32
- package/dist/cli/{index-515nwvdp.js → index-497a3hhj.js} +19 -10
- package/dist/cli/{index-h96xp4t0.js → index-61c3d769.js} +875 -37
- package/dist/cli/{index-ve0xj03m.js → index-7ezv5j23.js} +4 -4
- package/dist/cli/{index-0zerbq1v.js → index-7h2armwf.js} +23 -14
- package/dist/cli/{index-ebxmfr4j.js → index-7npz9n4s.js} +5 -4
- package/dist/cli/{index-m9m3emns.js → index-7v0ex0jt.js} +2 -2
- package/dist/cli/{index-ebz97mks.js → index-8c9qzpy7.js} +1 -0
- package/dist/cli/{index-5hfqc3h3.js → index-98jmggma.js} +24 -7
- package/dist/cli/{index-8fyebh3w.js → index-awjx0wgk.js} +1 -1
- package/dist/cli/{index-av3gnekk.js → index-b5adxpy6.js} +1 -1
- package/dist/cli/{index-t3wk7q51.js → index-bqxffayb.js} +1 -1
- package/dist/cli/{index-yt75r1er.js → index-c9zp4xwc.js} +13 -2
- package/dist/cli/{index-9qw4sbg1.js → index-dh5q6z7y.js} +7 -7
- package/dist/cli/{index-prknc0xn.js → index-dke4wzkn.js} +108 -44
- package/dist/cli/{index-nvz4mp5w.js → index-dq93ar40.js} +6 -6
- package/dist/cli/{index-zswy6xgb.js → index-drqvph47.js} +7 -7
- package/dist/cli/{index-sn6mtxxc.js → index-e1ygmd4q.js} +35 -34
- package/dist/cli/{index-6jp5yxye.js → index-f72612zc.js} +16 -2
- package/dist/cli/{index-y2d381ce.js → index-gjx53y3c.js} +1 -1
- package/dist/cli/{index-xs32znyz.js → index-j3ss86kf.js} +1 -1
- package/dist/cli/{index-p3ym3y8b.js → index-jszabr0r.js} +4 -4
- package/dist/cli/{index-wwpe4am7.js → index-m1cw9fsh.js} +8 -8
- package/dist/cli/{index-8zw60wya.js → index-m84z3aa8.js} +13 -4
- package/dist/cli/index-mmr96pwr.js +785 -0
- package/dist/cli/{index-gk6gpe7r.js → index-nk498mx6.js} +2 -2
- package/dist/cli/{index-2jzmg2km.js → index-nnzdayvk.js} +6 -6
- package/dist/cli/{index-fnxmg8sz.js → index-ny0g8fdg.js} +5 -5
- package/dist/cli/{index-40t6s98s.js → index-pkz91fwm.js} +3 -3
- package/dist/cli/{index-bxpqq9th.js → index-pqjcyj0p.js} +3 -3
- package/dist/cli/{index-nhhek8yw.js → index-prv20xq6.js} +1 -1
- package/dist/cli/{index-mqfs5f8a.js → index-qc53dfzh.js} +2 -2
- package/dist/cli/{index-xqjhbfbx.js → index-v8dsmee1.js} +4 -4
- package/dist/cli/{index-qxpfmryw.js → index-wccdm7jv.js} +5 -5
- package/dist/cli/{index-rq4jcw64.js → index-z0bxbb9g.js} +4 -4
- package/dist/cli/{index-txwx9p21.js → index-zdv914xa.js} +585 -471
- package/dist/cli/{index-2fq4a3vk.js → index-znf683sm.js} +1 -1
- package/dist/cli/{index-v3ybemb1.js → index-zpzvpybn.js} +2 -2
- package/dist/cli/index.js +33 -32
- package/dist/cli/{knowledge-escalator-f80n84ch.js → knowledge-escalator-3q2x34cg.js} +14 -13
- package/dist/cli/{knowledge-events-1d7v2krw.js → knowledge-events-5y34w84b.js} +12 -11
- package/dist/cli/{knowledge-link-vm4caewt.js → knowledge-link-xezm8hr3.js} +5 -5
- package/dist/cli/{knowledge-store-66yxeet7.js → knowledge-store-fqv89q5k.js} +6 -6
- package/dist/cli/{knowledge-validator-p0xcx7jx.js → knowledge-validator-fsdx14tk.js} +8 -8
- package/dist/cli/{model-preflight-w85ecyxh.js → model-preflight-yqqchzjn.js} +1 -1
- package/dist/cli/{pending-delegations-vad1z71d.js → pending-delegations-6ae7wy5q.js} +7 -3
- package/dist/cli/{pr-review-reentry-authorization-kn3nny7h.js → pr-review-reentry-authorization-986tk381.js} +35 -33
- package/dist/cli/{pr-subscriptions-482gzvt6.js → pr-subscriptions-asjevc5p.js} +5 -4
- package/dist/cli/{runner-sn7a6zd0.js → runner-wsdcy2d6.js} +6 -6
- package/dist/cli/{scan-cursor-2v7995nb.js → scan-cursor-shn926r6.js} +7 -7
- package/dist/cli/{schema-dy8fqycb.js → schema-98tdb9h0.js} +4 -2
- package/dist/cli/{scope-persistence-baty62vx.js → scope-persistence-cn34xnwr.js} +10 -9
- package/dist/cli/{skill-generator-nwrvtqbz.js → skill-generator-kck7087c.js} +16 -15
- package/dist/cli/{telemetry-3rh94wv3.js → telemetry-gpr9s3sm.js} +3 -1
- package/dist/cli/{worktree-collision-ownership-cy24p5mr.js → worktree-collision-ownership-6b3kshcv.js} +6 -5
- package/dist/cli/{worktree-isolation-8jbx0s8d.js → worktree-isolation-he01qhss.js} +33 -32
- package/dist/config/constants.d.ts +8 -0
- package/dist/config/context-window.d.ts +11 -4
- package/dist/config/evidence-schema.d.ts +9 -6
- package/dist/config/schema.d.ts +8 -0
- package/dist/context-map/telemetry.d.ts +1 -1
- package/dist/health/learning-health.d.ts +356 -0
- package/dist/hooks/context-budget.d.ts +10 -1
- package/dist/hooks/curator.d.ts +2 -0
- package/dist/hooks/final-context-accounting.d.ts +2 -0
- package/dist/hooks/model-limits.d.ts +56 -25
- package/dist/hooks/pr-workflow-gate.d.ts +25 -1
- package/dist/hooks/skill-usage-pending.d.ts +1 -1
- package/dist/index.js +623 -609
- package/dist/observability/catalog.d.ts +2 -2
- package/dist/observability/ids.d.ts +17 -0
- package/dist/prm/trajectory-store.d.ts +1 -1
- package/dist/services/diagnose-service.d.ts +7 -0
- package/dist/services/status-service.d.ts +18 -0
- package/dist/telemetry.d.ts +52 -1
- package/dist/tools/context-status.d.ts +15 -1
- package/dist/tools/dispatch-lanes.d.ts +27 -3
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/manifest.d.ts +1 -0
- package/dist/tools/repo-graph/ontology.d.ts +6 -0
- package/dist/tools/repo-graph/pack-query.d.ts +36 -0
- package/dist/tools/repo-graph/types.d.ts +198 -1
- package/dist/tools/repo-graph.d.ts +5 -3
- package/dist/tools/sast-baseline.d.ts +2 -0
- package/dist/tools/sast-scan.d.ts +2 -2
- package/dist/tools/submit-pr-review-result.d.ts +5 -0
- package/dist/tools/tool-metadata.d.ts +8 -0
- package/opencode-swarm.schema.json +4 -0
- package/package.json +1 -1
- package/dist/cli/curator-llm-factory-pyp5kmra.js +0 -66
- package/dist/cli/guardrail-explain-a13kbmrt.js +0 -67
package/dist/hooks/curator.d.ts
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
* This dual dispatch means agent lists are incomplete — they capture factory-dispatched
|
|
25
25
|
* curators but omit hook-dispatched ones. This is by design for hook-internal operations.
|
|
26
26
|
*/
|
|
27
|
+
import { observeCuratorCompliance } from '../health/learning-health';
|
|
27
28
|
import { checkRecommendations, recordEmittedRecommendations } from '../services/recommendation-ledger.js';
|
|
28
29
|
import { listSkills, parseDraftFrontmatter, retireOrMarkStale, retireSkill } from '../services/skill-generator.js';
|
|
29
30
|
import { getSkillVersion, reviseSkill } from '../services/skill-reviser.js';
|
|
@@ -51,6 +52,7 @@ export declare const _internals: {
|
|
|
51
52
|
checkPhaseCompliance: typeof checkPhaseCompliance;
|
|
52
53
|
normalizeAgentName: typeof normalizeAgentName;
|
|
53
54
|
autoRetireSkills: typeof autoRetireSkills;
|
|
55
|
+
observeCuratorCompliance: typeof observeCuratorCompliance;
|
|
54
56
|
/**
|
|
55
57
|
* Retained deliberately (issue #2038 §7). The three curator decision sites
|
|
56
58
|
* now read through `readSkillUsageEntriesWithCoverage` because a coverage
|
|
@@ -43,6 +43,8 @@ interface FinalAccountingOptions {
|
|
|
43
43
|
/** Same seam createContextBudgetHandler uses: resolves the
|
|
44
44
|
* configured target model for an agent name. */
|
|
45
45
|
resolveAgentModelFn?: (agentName: string) => string | undefined;
|
|
46
|
+
/** Project directory (#2044): scopes the model-limit health observation. */
|
|
47
|
+
directory?: string;
|
|
46
48
|
}
|
|
47
49
|
/**
|
|
48
50
|
* One-shot-per-band warning suppression (#2107 §3), backed by the
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
* live derivation replaced. They exist so a first-turn `messages.transform`
|
|
26
26
|
* consumer degrades to a plausible number instead of the flat 128 000 floor.
|
|
27
27
|
*/
|
|
28
|
+
import { type ContextWindowSource } from '../config/context-window';
|
|
29
|
+
import { observeModelLimitResolution } from '../health/learning-health';
|
|
28
30
|
/**
|
|
29
31
|
* Native model context limits (in tokens) when used on their native platform.
|
|
30
32
|
*
|
|
@@ -85,21 +87,46 @@ export declare function extractModelInfo(messages: MessageWithParts[]): {
|
|
|
85
87
|
* @returns the sessionID, or `undefined` when no message carries one.
|
|
86
88
|
*/
|
|
87
89
|
export declare function extractSessionId(messages: MessageWithParts[] | undefined): string | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Coarse provenance class for a resolved model limit (issue #2044 item 1).
|
|
92
|
+
* Maps the fine-grained {@link ContextWindowSource} rung onto the five classes
|
|
93
|
+
* the issue names: `host` (the live `model.limit.context`), `override` (any
|
|
94
|
+
* user-authored `model_limits` entry), `provider_cap` / `native` (the two
|
|
95
|
+
* known-stale static tables), and `fallback` (the flat 128k default).
|
|
96
|
+
*/
|
|
97
|
+
export type ModelLimitSource = 'host' | 'override' | 'provider_cap' | 'native' | 'fallback';
|
|
98
|
+
/** Provenance-bearing result of {@link resolveModelLimit} (issue #2044). */
|
|
99
|
+
export interface ModelLimitResolution {
|
|
100
|
+
/** The resolved context limit in tokens. */
|
|
101
|
+
limit: number;
|
|
102
|
+
/** Coarse provenance class — the issue's enum. */
|
|
103
|
+
source: ModelLimitSource;
|
|
104
|
+
/** Which fine-grained resolution rung produced the limit. */
|
|
105
|
+
resolution: ContextWindowSource;
|
|
106
|
+
}
|
|
107
|
+
export declare function classifyModelLimitSource(resolution: ContextWindowSource): ModelLimitSource;
|
|
88
108
|
/**
|
|
89
109
|
* Static-table lookup used as `fallbackLookup` for
|
|
90
|
-
* {@link resolveContextWindow}. Preserves the historical precedence of
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* `
|
|
110
|
+
* {@link resolveContextWindow}. Preserves the historical precedence of the two
|
|
111
|
+
* tables relative to each other (provider cap first, then a longest-prefix
|
|
112
|
+
* native match), and says WHICH table matched so the resolution source can
|
|
113
|
+
* distinguish `static_provider_cap` from `static_native` (issue #2044).
|
|
114
|
+
* Reachable only when no live `model.limit.context` was available.
|
|
94
115
|
*/
|
|
95
|
-
export declare function lookupStaticModelLimit(modelID?: string, providerID?: string):
|
|
116
|
+
export declare function lookupStaticModelLimit(modelID?: string, providerID?: string): {
|
|
117
|
+
tokens: number;
|
|
118
|
+
table: 'provider_cap' | 'native';
|
|
119
|
+
} | undefined;
|
|
96
120
|
/**
|
|
97
|
-
* Resolves the context limit for a given model/provider combination
|
|
121
|
+
* Resolves the context limit for a given model/provider combination WITH
|
|
122
|
+
* provenance (issue #2044).
|
|
98
123
|
*
|
|
99
124
|
* Thin adapter over the single derivation in `src/config/context-window.ts` —
|
|
100
125
|
* this function exists so the `experimental.chat.messages.transform` consumers
|
|
101
|
-
* (`context-budget.ts`, `knowledge-injector.ts`, `tools/context-status.ts
|
|
102
|
-
* keep their existing
|
|
126
|
+
* (`context-budget.ts`, `knowledge-injector.ts`, `tools/context-status.ts`,
|
|
127
|
+
* `final-context-accounting.ts`) keep their existing
|
|
128
|
+
* `(modelID, providerID, overrides)` call shape while receiving the typed
|
|
129
|
+
* `{ limit, source }` provenance the observability series requires. All
|
|
103
130
|
* ordering logic lives in the shared resolver; see its module header.
|
|
104
131
|
*
|
|
105
132
|
* Resolution order (first usable value wins):
|
|
@@ -111,44 +138,48 @@ export declare function lookupStaticModelLimit(modelID?: string, providerID?: st
|
|
|
111
138
|
* match (both known-stale; see the module header)
|
|
112
139
|
* 6. `DEFAULT_MODEL_CONTEXT_TOKENS` (128000)
|
|
113
140
|
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* already outranked the tables.
|
|
119
|
-
* - The live `model.limit.context` was inserted above both tables, which is
|
|
120
|
-
* the entire point of this change.
|
|
121
|
-
*
|
|
122
|
-
* Any value that is not a finite number ≥ 1000 is skipped rather than used, so
|
|
123
|
-
* a malformed override or a catalog entry with `limit.context: 0` can never
|
|
124
|
-
* produce a `NaN` / `Infinity` percentage.
|
|
141
|
+
* Any value that is not a finite number ≥ 1000 (untrusted rungs) / ≥ 1 (user
|
|
142
|
+
* rungs) is SKIPPED, never coerced; skipped user overrides are surfaced via a
|
|
143
|
+
* bounded `invalid_override_skipped` observation instead of silently
|
|
144
|
+
* disappearing (issue #2044 item 2).
|
|
125
145
|
*
|
|
126
146
|
* @param modelID - The model identifier (e.g., "claude-sonnet-4-6", "gpt-5")
|
|
127
147
|
* @param providerID - The provider identifier (e.g., "github-copilot", "anthropic")
|
|
128
148
|
* @param configOverrides - User configuration overrides (`context_budget.model_limits`)
|
|
129
149
|
* @param liveContextLimit - The live `model.limit.context` recorded for this
|
|
130
150
|
* session by the `system.transform` hook, when one has been seen
|
|
131
|
-
* @returns The resolved
|
|
151
|
+
* @returns The resolved limit with coarse source class and fine-grained rung
|
|
132
152
|
*
|
|
133
153
|
* @example
|
|
134
154
|
* // Live value wins over the stale static tables
|
|
135
155
|
* resolveModelLimit("claude-sonnet-4-6", "github-copilot", {}, 200000)
|
|
136
|
-
* // Returns: 200000
|
|
156
|
+
* // Returns: { limit: 200000, source: 'host', resolution: 'live_model_limit' }
|
|
137
157
|
*
|
|
138
158
|
* @example
|
|
139
159
|
* // Explicit user override beats the live value
|
|
140
160
|
* resolveModelLimit("gpt-5", "github-copilot", { "github-copilot/gpt-5": 60000 }, 400000)
|
|
141
|
-
* // Returns: 60000
|
|
161
|
+
* // Returns: { limit: 60000, source: 'override', resolution: 'user_provider_model' }
|
|
142
162
|
*
|
|
143
163
|
* @example
|
|
144
164
|
* // No live value: falls back to the static table (prefix match)
|
|
145
165
|
* resolveModelLimit("claude-sonnet-4-6-20260301", "anthropic", {})
|
|
146
|
-
* // Returns: 200000
|
|
166
|
+
* // Returns: { limit: 200000, source: 'native', resolution: 'static_native' }
|
|
147
167
|
*
|
|
148
168
|
* @example
|
|
149
169
|
* // Malformed live value is ignored, not divided by
|
|
150
170
|
* resolveModelLimit(undefined, undefined, {}, 0)
|
|
151
|
-
* // Returns: 128000
|
|
171
|
+
* // Returns: { limit: 128000, source: 'fallback', resolution: 'static_default' }
|
|
152
172
|
*/
|
|
153
|
-
export declare function resolveModelLimit(modelID?: string, providerID?: string, configOverrides?: Record<string, number>, liveContextLimit?: unknown
|
|
173
|
+
export declare function resolveModelLimit(modelID?: string, providerID?: string, configOverrides?: Record<string, number>, liveContextLimit?: unknown,
|
|
174
|
+
/** Project directory (threaded from the consumers) — scopes the #2044
|
|
175
|
+
* fallback-health observation to the owning project. */
|
|
176
|
+
directory?: string): ModelLimitResolution;
|
|
177
|
+
/**
|
|
178
|
+
* Bounded observation seam (invariant-7 DI): routes the model-limit fallback
|
|
179
|
+
* fact into the learning-health registry. Tests replace this to avoid touching
|
|
180
|
+
* global health state; production uses the real observer.
|
|
181
|
+
*/
|
|
182
|
+
export declare const _internals: {
|
|
183
|
+
observeResolution: typeof observeModelLimitResolution;
|
|
184
|
+
};
|
|
154
185
|
export {};
|
|
@@ -3,7 +3,7 @@ import { z } from 'zod';
|
|
|
3
3
|
import { type CandidateSeverity, type FindingsSeverity, type RowFormatFamily } from '../background/candidate-contract.js';
|
|
4
4
|
import { type LaneOutputArtifact } from '../background/lane-output-store.js';
|
|
5
5
|
import { type BackgroundDelegationRecord, type BackgroundDelegationResult, type BackgroundDelegationWorkflowLaneFailureClass, type BackgroundDelegationWorkflowLaneRecovery, findByBatchId, sweepStaleDelegations } from '../background/pending-delegations.js';
|
|
6
|
-
import { PR_REVIEW_BASE_DIMENSION_IDS, type PrReviewRiskImpact, type PrReviewRiskTag } from '../background/pr-review-contract.js';
|
|
6
|
+
import { PR_REVIEW_BASE_DIMENSION_IDS, type PrReviewLaneResultEnvelope, type PrReviewRiskImpact, type PrReviewRiskTag } from '../background/pr-review-contract.js';
|
|
7
7
|
import { type PrReviewInlineTriggerRow } from '../background/pr-review-trigger-contract.js';
|
|
8
8
|
import { type RevisionDigestResult, resolveCommitCountSince, resolveCommitCountSinceAsync, resolveCurrentGitHead, resolveCurrentGitHeadAsync, resolveCurrentLocalHeadRefAsync, resolveCurrentUpstreamPushTarget, resolveCurrentUpstreamPushTargetAsync, resolveCurrentUpstreamRemoteRef, resolveExactRemoteBranchHead, resolveExactRemoteBranchHeadAsync, resolveIsExactSingleChildCommit, resolveIsExactSingleChildCommitAsync, resolveIsWorkingTreeClean, resolveIsWorkingTreeCleanAsync, resolvePrReviewDiffStats, resolvePrReviewDiffStatsAsync, resolvePrWorkflowRevisionDigest, resolvePrWorkflowRevisionDigestDetailed, resolveRemoteRefsContainingHead, resolveRemoteRefsContainingHeadAsync, resolveRemoteUrlIdentity, resolveRemoteUrlIdentityAsync } from '../background/workspace-snapshot.js';
|
|
9
9
|
import { type PrReviewResilienceConfig } from '../config/schema.js';
|
|
@@ -50,6 +50,9 @@ export interface PrReviewDiscoveryLaneValidationInput {
|
|
|
50
50
|
prHeadSha: string;
|
|
51
51
|
gitHead: string;
|
|
52
52
|
revisionDigest: string;
|
|
53
|
+
workflowInstanceId?: string;
|
|
54
|
+
workflowRevision?: number;
|
|
55
|
+
baseSha?: string;
|
|
53
56
|
reviewScope?: string;
|
|
54
57
|
checkWorkflowLane?: boolean;
|
|
55
58
|
};
|
|
@@ -666,6 +669,25 @@ export declare function activatePrWorkflow(directory: string, sessionID: string,
|
|
|
666
669
|
prUrl?: string;
|
|
667
670
|
}): Promise<PrWorkflowGateState>;
|
|
668
671
|
export declare function readPrWorkflowGateState(directory: string, sessionID: string): Promise<PrWorkflowGateState | null>;
|
|
672
|
+
export type SubmitPrReviewResultOutcome = {
|
|
673
|
+
status: 'recorded' | 'duplicate';
|
|
674
|
+
receiptDigest: string;
|
|
675
|
+
} | {
|
|
676
|
+
status: 'rejected';
|
|
677
|
+
reason: string;
|
|
678
|
+
};
|
|
679
|
+
/**
|
|
680
|
+
* Publish one structured base/micro discovery result from the exact child
|
|
681
|
+
* session that owns the live delegation. Lock order is deliberately
|
|
682
|
+
* workflow-session -> delegation-evidence; clear/abort takes the same outer
|
|
683
|
+
* lock and terminalization takes the same inner lock.
|
|
684
|
+
*/
|
|
685
|
+
export declare function submitPrReviewResult(directory: string, childSessionId: string, input: {
|
|
686
|
+
batchId: string;
|
|
687
|
+
laneId: string;
|
|
688
|
+
revisionDigest: string;
|
|
689
|
+
result: PrReviewLaneResultEnvelope;
|
|
690
|
+
}): Promise<SubmitPrReviewResultOutcome>;
|
|
669
691
|
/**
|
|
670
692
|
* Serialize a pre-bind checkout-preservation controller with every terminal
|
|
671
693
|
* PR-workflow transition for the raw parent session. The caller's action may
|
|
@@ -1128,6 +1150,7 @@ export declare function assertPrFeedbackGatePhaseSettled(directory: string, sess
|
|
|
1128
1150
|
export declare function assertPrFeedbackReadyToPublish(directory: string, sessionID: string): Promise<PrWorkflowGateState>;
|
|
1129
1151
|
/** Build the evidence join for a freshly armed generation. */
|
|
1130
1152
|
declare function buildPublicationEvidenceJoin(state: PrWorkflowGateState, currentDigest: string): PrFeedbackPublicationEvidenceJoin | null;
|
|
1153
|
+
declare function boundPublicationDiagnostic(text: string): string;
|
|
1131
1154
|
/**
|
|
1132
1155
|
* Snapshot of the publication container with bounded history trimming.
|
|
1133
1156
|
* History keeps the last {@link MAX_PUBLICATION_HISTORY_GENERATIONS}
|
|
@@ -1379,6 +1402,7 @@ export declare const _test_exports: {
|
|
|
1379
1402
|
parseCanonicalCandidateRows: typeof parseCanonicalCandidateRows;
|
|
1380
1403
|
resolvePrReviewRowFamily: typeof resolvePrReviewRowFamily;
|
|
1381
1404
|
pipeFieldsCapped: typeof pipeFieldsCapped;
|
|
1405
|
+
boundPublicationDiagnostic: typeof boundPublicationDiagnostic;
|
|
1382
1406
|
indexVerdictRows: typeof indexVerdictRows;
|
|
1383
1407
|
reviewerVerdictRowDigest: typeof reviewerVerdictRowDigest;
|
|
1384
1408
|
workflowGateStateRelativePath: typeof workflowGateStateRelativePath;
|
|
@@ -389,4 +389,4 @@ export declare function buildSkillUsageHealthPayload(doc: SkillUsagePendingDocum
|
|
|
389
389
|
export declare function emitSkillUsageHealth(doc: SkillUsagePendingDocument, trigger: SkillUsageHealthPayload['trigger'], gauges: {
|
|
390
390
|
bytes: number;
|
|
391
391
|
limitBytes: number;
|
|
392
|
-
}): void;
|
|
392
|
+
}, directory?: string): void;
|