baxian 1.2.61 → 2.0.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/README.md +7 -4
- package/README.zh-CN.md +7 -4
- package/dist/agent/bootstrap-poller.d.ts +1 -1
- package/dist/agent/bootstrap-poller.d.ts.map +1 -1
- package/dist/agent/bootstrap-poller.js.map +1 -1
- package/dist/agent/bootstrap.d.ts +1 -1
- package/dist/agent/bootstrap.d.ts.map +1 -1
- package/dist/agent/bootstrap.js +6 -2
- package/dist/agent/bootstrap.js.map +1 -1
- package/dist/agent/branch.d.ts +1 -3
- package/dist/agent/branch.d.ts.map +1 -1
- package/dist/agent/branch.js +2 -2
- package/dist/agent/branch.js.map +1 -1
- package/dist/agent/dispatch-reconciler.d.ts +0 -1
- package/dist/agent/dispatch-reconciler.d.ts.map +1 -1
- package/dist/agent/dispatch-reconciler.js +15 -49
- package/dist/agent/dispatch-reconciler.js.map +1 -1
- package/dist/agent/manager.d.ts +212 -90
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +2983 -1574
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/net-exec.d.ts +3 -0
- package/dist/agent/net-exec.d.ts.map +1 -1
- package/dist/agent/net-exec.js +6 -0
- package/dist/agent/net-exec.js.map +1 -1
- package/dist/agent/pane-streamer-manager.d.ts +6 -6
- package/dist/agent/pane-streamer-manager.d.ts.map +1 -1
- package/dist/agent/pane-streamer-manager.js.map +1 -1
- package/dist/agent/pane-streamer.d.ts +2 -2
- package/dist/agent/pane-streamer.d.ts.map +1 -1
- package/dist/agent/pane-streamer.js +46 -36
- package/dist/agent/pane-streamer.js.map +1 -1
- package/dist/agent/phase-signal-watcher.d.ts +20 -2
- package/dist/agent/phase-signal-watcher.d.ts.map +1 -1
- package/dist/agent/phase-signal-watcher.js +135 -17
- package/dist/agent/phase-signal-watcher.js.map +1 -1
- package/dist/agent/phase-signal.d.ts +9 -7
- package/dist/agent/phase-signal.d.ts.map +1 -1
- package/dist/agent/phase-signal.js +18 -9
- package/dist/agent/phase-signal.js.map +1 -1
- package/dist/agent/preflight.d.ts +4 -1
- package/dist/agent/preflight.d.ts.map +1 -1
- package/dist/agent/preflight.js +46 -45
- package/dist/agent/preflight.js.map +1 -1
- package/dist/agent/prompt.d.ts +8 -5
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +34 -30
- package/dist/agent/prompt.js.map +1 -1
- package/dist/agent/repo-store.d.ts +8 -1
- package/dist/agent/repo-store.d.ts.map +1 -1
- package/dist/agent/repo-store.js +70 -15
- package/dist/agent/repo-store.js.map +1 -1
- package/dist/agent/review-transport.d.ts +20 -1
- package/dist/agent/review-transport.d.ts.map +1 -1
- package/dist/agent/review-transport.js +68 -20
- package/dist/agent/review-transport.js.map +1 -1
- package/dist/agent/root-agent-runtime.d.ts +80 -0
- package/dist/agent/root-agent-runtime.d.ts.map +1 -0
- package/dist/agent/root-agent-runtime.js +635 -0
- package/dist/agent/root-agent-runtime.js.map +1 -0
- package/dist/agent/root-recovery-coordinator.d.ts +125 -0
- package/dist/agent/root-recovery-coordinator.d.ts.map +1 -0
- package/dist/agent/root-recovery-coordinator.js +1579 -0
- package/dist/agent/root-recovery-coordinator.js.map +1 -0
- package/dist/agent/runner.d.ts +1 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +103 -7
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tmux-probe-poller.d.ts +1 -0
- package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
- package/dist/agent/tmux-probe-poller.js +16 -10
- package/dist/agent/tmux-probe-poller.js.map +1 -1
- package/dist/agent/tmux.d.ts +3 -0
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +11 -5
- package/dist/agent/tmux.js.map +1 -1
- package/dist/api/agents.d.ts.map +1 -1
- package/dist/api/agents.js +42 -1
- package/dist/api/agents.js.map +1 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +88 -17
- package/dist/api/config.js.map +1 -1
- package/dist/api/hosts.d.ts.map +1 -1
- package/dist/api/hosts.js +71 -15
- package/dist/api/hosts.js.map +1 -1
- package/dist/api/platform-guard.d.ts +10 -2
- package/dist/api/platform-guard.d.ts.map +1 -1
- package/dist/api/platform-guard.js +112 -10
- package/dist/api/platform-guard.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +57 -16
- package/dist/api/projects.js.map +1 -1
- package/dist/api/tasks.d.ts.map +1 -1
- package/dist/api/tasks.js +21 -36
- package/dist/api/tasks.js.map +1 -1
- package/dist/app.d.ts +6 -4
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +6 -0
- package/dist/app.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -7
- package/dist/cli.js.map +1 -1
- package/dist/config/hot-reload.d.ts +11 -2
- package/dist/config/hot-reload.d.ts.map +1 -1
- package/dist/config/hot-reload.js +43 -8
- package/dist/config/hot-reload.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +23 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/normalizer.d.ts.map +1 -1
- package/dist/config/normalizer.js +18 -0
- package/dist/config/normalizer.js.map +1 -1
- package/dist/config/validator.d.ts +3 -1
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +247 -54
- package/dist/config/validator.js.map +1 -1
- package/dist/event/handlers.d.ts.map +1 -1
- package/dist/event/handlers.js +615 -1069
- package/dist/event/handlers.js.map +1 -1
- package/dist/event/server-handlers.d.ts.map +1 -1
- package/dist/event/server-handlers.js +787 -487
- package/dist/event/server-handlers.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +99 -79
- package/dist/index.js.map +1 -1
- package/dist/platform/command-renderer.d.ts +1 -0
- package/dist/platform/command-renderer.d.ts.map +1 -1
- package/dist/platform/command-renderer.js +16 -2
- package/dist/platform/command-renderer.js.map +1 -1
- package/dist/platform/comment-cursor.d.ts +9 -0
- package/dist/platform/comment-cursor.d.ts.map +1 -1
- package/dist/platform/comment-cursor.js +63 -5
- package/dist/platform/comment-cursor.js.map +1 -1
- package/dist/platform/driver-host.d.ts.map +1 -1
- package/dist/platform/driver-host.js +0 -2
- package/dist/platform/driver-host.js.map +1 -1
- package/dist/platform/driver-spec.d.ts.map +1 -1
- package/dist/platform/driver-spec.js +17 -6
- package/dist/platform/driver-spec.js.map +1 -1
- package/dist/platform/feedback.d.ts.map +1 -1
- package/dist/platform/feedback.js +0 -9
- package/dist/platform/feedback.js.map +1 -1
- package/dist/platform/git-driver.d.ts +3 -0
- package/dist/platform/git-driver.d.ts.map +1 -1
- package/dist/platform/git-driver.js +45 -3
- package/dist/platform/git-driver.js.map +1 -1
- package/dist/platform/platform-poller.d.ts +18 -5
- package/dist/platform/platform-poller.d.ts.map +1 -1
- package/dist/platform/platform-poller.js +283 -38
- package/dist/platform/platform-poller.js.map +1 -1
- package/dist/platform/plugins/github/baxian-plugin.json +1 -1
- package/dist/platform/plugins/github/driver.json +14 -3
- package/dist/platform/plugins/github/skills/baxian-cli-gh/SKILL.md +7 -6
- package/dist/platform/plugins/github/skills/baxian-cli-gh/agents/openai.yaml +2 -0
- package/dist/platform/pr-binding.d.ts.map +1 -1
- package/dist/platform/pr-binding.js +0 -2
- package/dist/platform/pr-binding.js.map +1 -1
- package/dist/platform/pr-conversation-cache.d.ts.map +1 -0
- package/dist/platform/pr-conversation-cache.js.map +1 -0
- package/dist/platform/row-schema.d.ts.map +1 -1
- package/dist/platform/row-schema.js +1 -0
- package/dist/platform/row-schema.js.map +1 -1
- package/dist/platform/startup.d.ts +29 -1
- package/dist/platform/startup.d.ts.map +1 -1
- package/dist/platform/startup.js +82 -4
- package/dist/platform/startup.js.map +1 -1
- package/dist/platform/types.d.ts +2 -0
- package/dist/platform/types.d.ts.map +1 -1
- package/dist/platform/types.js +6 -4
- package/dist/platform/types.js.map +1 -1
- package/dist/platform/verdict-engine.d.ts.map +1 -1
- package/dist/platform/verdict-engine.js +0 -2
- package/dist/platform/verdict-engine.js.map +1 -1
- package/dist/shared/constants.d.ts +7 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +5 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +98 -7
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +18 -0
- package/dist/shared/types.js.map +1 -1
- package/dist/skills/baxian-pr-feedback/SKILL.md +5 -15
- package/dist/skills/baxian-pr-recheck/SKILL.md +5 -44
- package/dist/skills/baxian-pr-review/SKILL.md +6 -43
- package/dist/skills/baxian-research/SKILL.md +1 -1
- package/dist/skills/baxian-server-feedback/SKILL.md +7 -5
- package/dist/skills/baxian-server-review/SKILL.md +2 -2
- package/dist/skills/baxian-signals/SKILL.md +11 -7
- package/dist/skills/baxian-task-check/SKILL.md +3 -5
- package/dist/state/agent-store.js +0 -2
- package/dist/state/agent-store.js.map +1 -1
- package/dist/state/init.d.ts.map +1 -1
- package/dist/state/init.js +1 -0
- package/dist/state/init.js.map +1 -1
- package/dist/state/lock.d.ts +6 -0
- package/dist/state/lock.d.ts.map +1 -1
- package/dist/state/lock.js +8 -0
- package/dist/state/lock.js.map +1 -1
- package/dist/state/review-store.d.ts +21 -1
- package/dist/state/review-store.d.ts.map +1 -1
- package/dist/state/review-store.js +132 -0
- package/dist/state/review-store.js.map +1 -1
- package/dist/state/root-recovery-store.d.ts +107 -0
- package/dist/state/root-recovery-store.d.ts.map +1 -0
- package/dist/state/root-recovery-store.js +400 -0
- package/dist/state/root-recovery-store.js.map +1 -0
- package/dist/state/task-store.d.ts +6 -0
- package/dist/state/task-store.d.ts.map +1 -1
- package/dist/state/task-store.js +266 -21
- package/dist/state/task-store.js.map +1 -1
- package/dist/terminal/attach.d.ts +3 -3
- package/dist/terminal/attach.d.ts.map +1 -1
- package/dist/terminal/attach.js.map +1 -1
- package/dist/terminal/stream-ws.d.ts.map +1 -1
- package/dist/terminal/stream-ws.js.map +1 -1
- package/dist/web/assets/index-BXfgaFNm.js +18 -0
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/github/mapper.d.ts +0 -9
- package/dist/github/mapper.d.ts.map +0 -1
- package/dist/github/mapper.js +0 -25
- package/dist/github/mapper.js.map +0 -1
- package/dist/github/poller.d.ts +0 -73
- package/dist/github/poller.d.ts.map +0 -1
- package/dist/github/poller.js +0 -556
- package/dist/github/poller.js.map +0 -1
- package/dist/github/pr-conversation-cache.d.ts.map +0 -1
- package/dist/github/pr-conversation-cache.js.map +0 -1
- package/dist/github/pr-conversation.d.ts +0 -7
- package/dist/github/pr-conversation.d.ts.map +0 -1
- package/dist/github/pr-conversation.js +0 -175
- package/dist/github/pr-conversation.js.map +0 -1
- package/dist/github/resolver.d.ts +0 -8
- package/dist/github/resolver.d.ts.map +0 -1
- package/dist/github/resolver.js +0 -28
- package/dist/github/resolver.js.map +0 -1
- package/dist/state/post-approve-store.d.ts +0 -23
- package/dist/state/post-approve-store.d.ts.map +0 -1
- package/dist/state/post-approve-store.js +0 -82
- package/dist/state/post-approve-store.js.map +0 -1
- package/dist/web/assets/index-CUJtd0bC.js +0 -16
- /package/dist/{github → platform}/pr-conversation-cache.d.ts +0 -0
- /package/dist/{github → platform}/pr-conversation-cache.js +0 -0
package/dist/agent/manager.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type AgentGitPreflight } from './preflight.js';
|
|
2
|
-
import type { AfterDone, BaxianConfig, AgentConfig, AgentBindingFacts, HostConfig, ProjectConfig, ReviewMode, ReviewPhase, SpecDocument, TaskState, TaskStatus } from '../shared/index.js';
|
|
2
|
+
import type { AfterDone, BaxianConfig, AgentConfig, AgentRuntimeConfig, AgentBindingFacts, HostConfig, ProjectConfig, ReviewMode, ReviewDispatchLease, ReviewPhase, ReviewRound, ServerSignalKind, ServerSignalRecovery, ServerSignalRecoveryReason, SpecDocument, TaskPhase, TaskGenerationGuard, TaskState, TaskStatus } from '../shared/index.js';
|
|
3
3
|
import { GitDriver } from '../platform/git-driver.js';
|
|
4
4
|
import type { PluginRegistry } from '../platform/plugin-registry.js';
|
|
5
5
|
import type { NormalizedRow } from '../platform/row-schema.js';
|
|
6
6
|
import { type PrRejection } from '../platform/pr-binding.js';
|
|
7
7
|
import { type PendingFeedbackResult } from '../platform/feedback.js';
|
|
8
|
+
import { type PlatformBindingMismatch } from '../platform/startup.js';
|
|
8
9
|
import type { AgentStore } from '../state/agent-store.js';
|
|
9
10
|
import type { TaskStore } from '../state/task-store.js';
|
|
10
|
-
import { PostApproveStore, type PostApproveCompletion } from '../state/post-approve-store.js';
|
|
11
11
|
import type { LockManager } from '../state/lock.js';
|
|
12
12
|
import type { EventBus } from '../event/bus.js';
|
|
13
13
|
import type { ErrorRecordStore } from '../state/error-record-store.js';
|
|
@@ -20,8 +20,10 @@ import type { PaneStreamerManager } from './pane-streamer-manager.js';
|
|
|
20
20
|
import { PhaseSignalWatcher, type NeedInputCommitIntent, type NeedInputCommitResult } from './phase-signal-watcher.js';
|
|
21
21
|
import type { PhaseSignalKind } from './phase-signal.js';
|
|
22
22
|
import { ReviewTransport } from './review-transport.js';
|
|
23
|
-
import type
|
|
24
|
-
import { type PostMergeCleanupContext, type PlatformCliDescriptor } from './prompt.js';
|
|
23
|
+
import { type ReviewStore } from '../state/review-store.js';
|
|
24
|
+
import { type PostMergeCleanupContext, type PlatformCliDescriptor, type ServerFeedbackCorrectionPrompt } from './prompt.js';
|
|
25
|
+
import { ApiError } from '../errors.js';
|
|
26
|
+
export declare function isBenignDispatchConflict(err: unknown): err is ApiError;
|
|
25
27
|
export interface EnsureSessionResult {
|
|
26
28
|
ok: true;
|
|
27
29
|
createdSession: boolean;
|
|
@@ -73,6 +75,8 @@ export declare class DispatchTerminalError extends Error {
|
|
|
73
75
|
constructor(reason: DispatchTerminalReason, message: string, replDrained?: boolean);
|
|
74
76
|
}
|
|
75
77
|
export type EnsureSessionMode = 'create' | 'runtime' | 'recover';
|
|
78
|
+
export type RedispatchCurrentPhaseGuard = TaskGenerationGuard;
|
|
79
|
+
export type RedispatchCurrentPhaseResult = 'dispatched' | 'stale' | 'unsupported';
|
|
76
80
|
export type DeletionClaimOutcome = {
|
|
77
81
|
ok: true;
|
|
78
82
|
} | {
|
|
@@ -93,9 +97,9 @@ export type DeletionClaimOutcome = {
|
|
|
93
97
|
code: 'already-deleting';
|
|
94
98
|
agentId: string;
|
|
95
99
|
};
|
|
96
|
-
export declare function buildLaunchCommand(agent:
|
|
97
|
-
export declare function launchCommandIn(dir: string, agent:
|
|
98
|
-
export declare function skillSubdirFor(runtime:
|
|
100
|
+
export declare function buildLaunchCommand(agent: AgentRuntimeConfig): string;
|
|
101
|
+
export declare function launchCommandIn(dir: string, agent: AgentRuntimeConfig): string;
|
|
102
|
+
export declare function skillSubdirFor(runtime: AgentRuntimeConfig['runtime']): string;
|
|
99
103
|
export interface AgentManagerDeps {
|
|
100
104
|
config: BaxianConfig;
|
|
101
105
|
agentStore: AgentStore;
|
|
@@ -108,7 +112,6 @@ export interface AgentManagerDeps {
|
|
|
108
112
|
imageStagingRoot?: string;
|
|
109
113
|
repoStoreFactory?: (runner: CommandRunner, repoSlug: string, mode: AgentConfig['mode'], host: HostConfig | undefined, cache: RepoStoreCache, agentId: string, workdir?: string) => RepoStore;
|
|
110
114
|
paneStreamerManager?: PaneStreamerManager;
|
|
111
|
-
postApproveStore?: PostApproveStore;
|
|
112
115
|
pluginRegistry?: PluginRegistry;
|
|
113
116
|
platformDefaultBranchOf?: (projectId: string) => string | undefined;
|
|
114
117
|
phaseSignalWatcher?: PhaseSignalWatcher;
|
|
@@ -123,13 +126,10 @@ export interface AgentManagerDeps {
|
|
|
123
126
|
needInputRetryIntervalMs?: number;
|
|
124
127
|
dispatchSettleTimeoutMs?: number;
|
|
125
128
|
}
|
|
126
|
-
export declare class PlatformCloseError extends Error {
|
|
127
|
-
readonly step: 'close' | 'deleteBranch';
|
|
128
|
-
constructor(step: 'close' | 'deleteBranch', cause: unknown);
|
|
129
|
-
}
|
|
130
129
|
export declare class PlatformMergeRecheckError extends Error {
|
|
130
|
+
readonly kind: 'pending-feedback' | 'provenance-invalid';
|
|
131
131
|
readonly reason: string;
|
|
132
|
-
constructor(reason: string);
|
|
132
|
+
constructor(kind: 'pending-feedback' | 'provenance-invalid', reason: string);
|
|
133
133
|
}
|
|
134
134
|
export interface TransitionResult {
|
|
135
135
|
task: TaskState;
|
|
@@ -151,6 +151,8 @@ interface SessionDispatchOpts {
|
|
|
151
151
|
total: number;
|
|
152
152
|
};
|
|
153
153
|
serverPriorFindings?: string;
|
|
154
|
+
serverFindingsDigest?: string;
|
|
155
|
+
serverFeedbackCorrection?: ServerFeedbackCorrectionPrompt;
|
|
154
156
|
serverPriorResponse?: string;
|
|
155
157
|
specDocuments?: readonly SpecDocument[];
|
|
156
158
|
armBeforeInject?: (ctx: DispatchArmContext) => Promise<boolean>;
|
|
@@ -158,13 +160,15 @@ interface SessionDispatchOpts {
|
|
|
158
160
|
interface StartSessionOpts extends SessionDispatchOpts {
|
|
159
161
|
preserveBindingOnFailure?: boolean;
|
|
160
162
|
dispatchPassToken?: string;
|
|
163
|
+
dispatchReviewLease?: Pick<ReviewDispatchLease, 'generation' | 'claimId' | 'signalToken' | 'headSha' | 'passToken' | 'failToken' | 'effectiveRound' | 'qaPhase'>;
|
|
161
164
|
dispatchPendingBudget?: {
|
|
162
165
|
since: number;
|
|
163
166
|
budgetAlerted?: boolean;
|
|
164
167
|
};
|
|
165
168
|
}
|
|
166
169
|
export interface ContinueSessionOpts extends SessionDispatchOpts {
|
|
167
|
-
|
|
170
|
+
postApproveEpisode?: PostApproveEpisodeKey;
|
|
171
|
+
serverReviewCheckout?: 'base';
|
|
168
172
|
serverAfterDone?: {
|
|
169
173
|
kind: 'branch' | 'pr';
|
|
170
174
|
branch: string;
|
|
@@ -185,6 +189,12 @@ export interface MergePrOpts {
|
|
|
185
189
|
matchHeadSha?: string;
|
|
186
190
|
humanOverride?: boolean;
|
|
187
191
|
}
|
|
192
|
+
export interface PostApproveEpisodeKey {
|
|
193
|
+
generation: string;
|
|
194
|
+
token: string;
|
|
195
|
+
headSha: string;
|
|
196
|
+
}
|
|
197
|
+
type ReviewDispatchFence = Pick<ReviewDispatchLease, 'generation' | 'signalToken' | 'headSha' | 'passToken' | 'failToken' | 'effectiveRound' | 'qaPhase'>;
|
|
188
198
|
export type CodeInterdiffResult = {
|
|
189
199
|
ok: true;
|
|
190
200
|
diff: string;
|
|
@@ -196,8 +206,18 @@ export type CodeInterdiffResult = {
|
|
|
196
206
|
reason: 'released';
|
|
197
207
|
};
|
|
198
208
|
export interface ServerReviewDriver {
|
|
199
|
-
dispatchCodeReview(task: TaskState
|
|
200
|
-
|
|
209
|
+
dispatchCodeReview(task: TaskState, opts?: {
|
|
210
|
+
bumpRound?: boolean;
|
|
211
|
+
expectedTask?: TaskGenerationGuard;
|
|
212
|
+
onSideEffect?: () => void;
|
|
213
|
+
settlePermit?: unknown;
|
|
214
|
+
}): Promise<boolean>;
|
|
215
|
+
dispatchSpecReview(task: TaskState, opts?: {
|
|
216
|
+
bumpRound?: boolean;
|
|
217
|
+
expectedTask?: TaskGenerationGuard;
|
|
218
|
+
onSideEffect?: () => void;
|
|
219
|
+
settlePermit?: unknown;
|
|
220
|
+
}): Promise<boolean>;
|
|
201
221
|
}
|
|
202
222
|
export declare function canDispatchWithBinding(binding: AgentBindingFacts | null | undefined): boolean;
|
|
203
223
|
export declare const RECOVERABLE_QA_DISPATCH_HOLD_PHASES: Set<string>;
|
|
@@ -210,6 +230,14 @@ export interface PendingDispatchRetry {
|
|
|
210
230
|
since: number;
|
|
211
231
|
budgetAlerted?: boolean;
|
|
212
232
|
}
|
|
233
|
+
export interface PostApproveCompletion {
|
|
234
|
+
token: string;
|
|
235
|
+
approvedHeadSha: string;
|
|
236
|
+
generation: string;
|
|
237
|
+
updatedAt: string;
|
|
238
|
+
redispatchCount?: number;
|
|
239
|
+
pendingRedispatch?: boolean;
|
|
240
|
+
}
|
|
213
241
|
export declare class AgentManager {
|
|
214
242
|
private config;
|
|
215
243
|
protected agentStore: AgentStore;
|
|
@@ -221,7 +249,6 @@ export declare class AgentManager {
|
|
|
221
249
|
protected repoStoreFactory?: AgentManagerDeps['repoStoreFactory'];
|
|
222
250
|
protected repoCache: RepoStoreCache;
|
|
223
251
|
protected paneStreamerManager?: PaneStreamerManager;
|
|
224
|
-
protected postApproveStore: PostApproveStore;
|
|
225
252
|
protected pluginRegistry?: PluginRegistry;
|
|
226
253
|
private platformDefaultBranchOf?;
|
|
227
254
|
private readonly platformDriverExec;
|
|
@@ -235,6 +262,7 @@ export declare class AgentManager {
|
|
|
235
262
|
protected dispatchSettleTimeoutMs: number;
|
|
236
263
|
protected dispatchAckResendIntervalMs: number;
|
|
237
264
|
private taskMutationQueue;
|
|
265
|
+
private agentOperationQueues;
|
|
238
266
|
private agentIndex;
|
|
239
267
|
private platformRunner;
|
|
240
268
|
private imageStagingRoot;
|
|
@@ -247,6 +275,7 @@ export declare class AgentManager {
|
|
|
247
275
|
protected manualCompactWaitMs: number;
|
|
248
276
|
protected runtimeLivenessProbeMs: number;
|
|
249
277
|
protected cleanComposerWaitMs: number;
|
|
278
|
+
protected platformVerificationRetryDelayMs: number;
|
|
250
279
|
protected readyStableSamples: number;
|
|
251
280
|
protected readyStableSpacingMs: number;
|
|
252
281
|
private pendingDispatchRetryByTask;
|
|
@@ -260,22 +289,36 @@ export declare class AgentManager {
|
|
|
260
289
|
private divergedAgents;
|
|
261
290
|
private deletionGeneration;
|
|
262
291
|
private compactInFlight;
|
|
292
|
+
private configInterventionKeys;
|
|
263
293
|
constructor(deps: AgentManagerDeps);
|
|
264
294
|
private withTaskLock;
|
|
295
|
+
private withAgentOperationLease;
|
|
265
296
|
private resolveTaskLockToken;
|
|
266
297
|
private assertTaskLockOwner;
|
|
267
298
|
private assertTaskGeneration;
|
|
268
299
|
getReviewStore(): ReviewStore | undefined;
|
|
300
|
+
putReviewRoundIfCurrent(taskId: string, data: ReviewRound, expectedTask: TaskGenerationGuard): Promise<boolean>;
|
|
301
|
+
deleteReviewExchangeIfCurrent(taskId: string, agent: AgentConfig, artifact: 'findings' | 'response', expectedTask: TaskGenerationGuard, expectedRecovery?: Pick<ServerSignalRecovery, 'mode' | 'signalKind' | 'phase' | 'round' | 'sourceToken' | 'failureSignature' | 'createdAt'>): Promise<boolean>;
|
|
269
302
|
setServerReviewDriver(driver: ServerReviewDriver): void;
|
|
270
303
|
effectiveReviewMode(projectId: string): ReviewMode;
|
|
271
304
|
resolveAfterDone(task: TaskState): AfterDone;
|
|
272
305
|
private coerceAfterDone;
|
|
306
|
+
commitServerAfterDone(taskId: string, expectedTask?: TaskGenerationGuard): Promise<AfterDone>;
|
|
273
307
|
getReviewTransport(): ReviewTransport;
|
|
274
308
|
private prepareDispatchArtifacts;
|
|
275
309
|
private bindingWorkdirCache;
|
|
276
310
|
refreshWorkdirCacheFor(agentId: string): Promise<string | undefined>;
|
|
277
311
|
private safeEmit;
|
|
278
312
|
private emitIntervention;
|
|
313
|
+
emitConfigIntervention(projectId: string, data: Record<string, unknown> & {
|
|
314
|
+
phase: string;
|
|
315
|
+
}): Promise<void>;
|
|
316
|
+
configInterventionKey(projectId: string, data: Record<string, unknown> & {
|
|
317
|
+
phase: string;
|
|
318
|
+
}): string;
|
|
319
|
+
platformBindingInterventionKey(task: TaskState, mismatch: PlatformBindingMismatch): string;
|
|
320
|
+
retainConfigInterventionKeys(keys: ReadonlySet<string>): void;
|
|
321
|
+
emitPlatformBindingIntervention(task: TaskState, mismatch: PlatformBindingMismatch): Promise<void>;
|
|
279
322
|
private recordError;
|
|
280
323
|
replaceConfig(validated: BaxianConfig): void;
|
|
281
324
|
getConfig(): BaxianConfig;
|
|
@@ -285,6 +328,14 @@ export declare class AgentManager {
|
|
|
285
328
|
tryClaimDeletion(agentIds: readonly string[]): string | null;
|
|
286
329
|
scanActiveThenClaimDeletion(targets: readonly string[]): Promise<DeletionClaimOutcome>;
|
|
287
330
|
releaseDeletionClaim(agentIds: readonly string[]): void;
|
|
331
|
+
listActiveParticipantSeats(): Promise<Array<{
|
|
332
|
+
taskId: string;
|
|
333
|
+
projectId: string;
|
|
334
|
+
participants: Array<{
|
|
335
|
+
agentId: string;
|
|
336
|
+
expectedRole?: AgentConfig['role'];
|
|
337
|
+
}>;
|
|
338
|
+
}>>;
|
|
288
339
|
bumpDeletionGeneration(agentId: string): void;
|
|
289
340
|
deletionGenerationOf(agentId: string): number;
|
|
290
341
|
private deletionGateOpen;
|
|
@@ -341,7 +392,9 @@ export declare class AgentManager {
|
|
|
341
392
|
allowAwaitingHuman?: boolean;
|
|
342
393
|
clearAwaitingHuman?: boolean;
|
|
343
394
|
fromCancelCleanup?: boolean;
|
|
344
|
-
expectedTask?:
|
|
395
|
+
expectedTask?: Partial<TaskGenerationGuard>;
|
|
396
|
+
expectedReviewDispatch?: Pick<ReviewDispatchLease, 'generation' | 'claimId' | 'signalToken'>;
|
|
397
|
+
expectedPostApproveEpisode?: PostApproveEpisodeKey;
|
|
345
398
|
expectedHold?: {
|
|
346
399
|
phase: string | undefined;
|
|
347
400
|
since: string | undefined;
|
|
@@ -355,6 +408,7 @@ export declare class AgentManager {
|
|
|
355
408
|
reconcileTaskBranches(): Promise<void>;
|
|
356
409
|
private readonly needInputRetry;
|
|
357
410
|
private readonly needInputRetryInFlight;
|
|
411
|
+
private readonly gitReviewQaConfigAlerted;
|
|
358
412
|
private readonly needInputWritesInFlight;
|
|
359
413
|
private needInputWriteSeq;
|
|
360
414
|
private readonly needInputArmLocks;
|
|
@@ -376,6 +430,7 @@ export declare class AgentManager {
|
|
|
376
430
|
private confirmNeedInputAnswered;
|
|
377
431
|
notifyHumanTerminalInput(agentId: string): Promise<void>;
|
|
378
432
|
clearAwaitingHuman(agentId: string, opts?: {
|
|
433
|
+
expectedTaskId?: string;
|
|
379
434
|
expectedHold?: {
|
|
380
435
|
phase?: string;
|
|
381
436
|
since?: string;
|
|
@@ -407,7 +462,12 @@ export declare class AgentManager {
|
|
|
407
462
|
private markPaneCancelClearing;
|
|
408
463
|
private claimCancelCleanup;
|
|
409
464
|
private releaseCancelCleanup;
|
|
410
|
-
failTaskForDispatchError(taskId: string, phase: string, agentId: string, err: DispatchTerminalError
|
|
465
|
+
failTaskForDispatchError(taskId: string, phase: string, agentId: string, err: DispatchTerminalError, opts?: {
|
|
466
|
+
expectedPostApproveEpisode?: PostApproveEpisodeKey;
|
|
467
|
+
expectedReviewDispatch?: ReviewDispatchFence;
|
|
468
|
+
expectedTask?: TaskGenerationGuard;
|
|
469
|
+
expectedLockToken?: string;
|
|
470
|
+
}): Promise<void>;
|
|
411
471
|
failTasksForAgent(agentId: string, reason: string, opts?: {
|
|
412
472
|
deferPartnerCleanup?: boolean;
|
|
413
473
|
}): Promise<{
|
|
@@ -423,10 +483,12 @@ export declare class AgentManager {
|
|
|
423
483
|
phase: string | undefined;
|
|
424
484
|
since: string | undefined;
|
|
425
485
|
nonce: string | undefined;
|
|
426
|
-
}): Promise<boolean>;
|
|
427
|
-
|
|
486
|
+
}, extraCurrent?: (fresh: TaskState) => Promise<boolean>): Promise<boolean>;
|
|
487
|
+
private runRotatedReplay;
|
|
488
|
+
redispatchTaskPromptAfterReplRestart(agentId: string, taskId: string, expected?: RedispatchCurrentPhaseGuard): Promise<boolean>;
|
|
489
|
+
redispatchCurrentTaskPhase(taskId: string, expected: RedispatchCurrentPhaseGuard): Promise<RedispatchCurrentPhaseResult>;
|
|
428
490
|
private replayApprovedHolderAfterReplRestart;
|
|
429
|
-
private
|
|
491
|
+
private holdIncompleteGitPostApproveEpisode;
|
|
430
492
|
prepareRemoveTargets(agentId: string): {
|
|
431
493
|
targets: string[];
|
|
432
494
|
};
|
|
@@ -440,26 +502,23 @@ export declare class AgentManager {
|
|
|
440
502
|
projectId: string;
|
|
441
503
|
}>;
|
|
442
504
|
getProjectConfig(projectId: string): ProjectConfig | undefined;
|
|
443
|
-
getProjectByRepo(repo: string): ProjectConfig | undefined;
|
|
444
|
-
getProjectByRepoIdentity(repoKey: string): ProjectConfig | undefined;
|
|
445
505
|
platformDriverFor(projectId: string): GitDriver | undefined;
|
|
446
506
|
private findAgentGroup;
|
|
447
507
|
private longestDevWorkdirInProject;
|
|
448
508
|
getTask(taskId: string): Promise<TaskState | null>;
|
|
449
509
|
getAgentState(agentId: string): Promise<AgentBindingFacts | null>;
|
|
450
510
|
getPostApproveCompletion(taskId: string): Promise<PostApproveCompletion | null>;
|
|
451
|
-
private
|
|
452
|
-
private
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
approvedHeadSha: string;
|
|
456
|
-
redispatchCount?: number;
|
|
457
|
-
pendingRedispatch?: boolean;
|
|
458
|
-
}, opts?: {
|
|
459
|
-
clearRevocation?: boolean;
|
|
511
|
+
private completionOf;
|
|
512
|
+
private postApproveEpisodeMatches;
|
|
513
|
+
armGitPostApproveEpisode(taskId: string, expected: PostApproveEpisodeKey, opts?: {
|
|
514
|
+
recovered?: boolean;
|
|
460
515
|
}): Promise<boolean>;
|
|
461
|
-
|
|
462
|
-
|
|
516
|
+
rotateGitPostApproveEpisode(taskId: string, expected: PostApproveEpisodeKey, redispatchCount: number): Promise<PostApproveEpisodeKey | null>;
|
|
517
|
+
private stripPostApproveFields;
|
|
518
|
+
private stripPostApproveEpisodeFields;
|
|
519
|
+
private stripGitStatusScopedState;
|
|
520
|
+
confirmPostApprovePromptDelivered(taskId: string, expected: string | PostApproveEpisodeKey): Promise<void>;
|
|
521
|
+
markPostApproveSignalReceived(taskId: string, expected: string | PostApproveEpisodeKey): Promise<void>;
|
|
463
522
|
clearPostApproveCompletion(taskId: string): Promise<void>;
|
|
464
523
|
updatePostApproveCompletionIfToken(taskId: string, expectedToken: string, patch: {
|
|
465
524
|
redispatchCount?: number;
|
|
@@ -469,13 +528,16 @@ export declare class AgentManager {
|
|
|
469
528
|
key: string;
|
|
470
529
|
versionTime: number;
|
|
471
530
|
};
|
|
531
|
+
expectedGeneration?: string;
|
|
532
|
+
expectedHeadSha?: string;
|
|
472
533
|
}): Promise<boolean>;
|
|
473
534
|
revokePostApproveCompletion(taskId: string, reason: 'request-changes' | 'redispatch-cap', opts?: {
|
|
474
535
|
expectedToken?: string;
|
|
475
536
|
expectedHeadSha?: string;
|
|
537
|
+
expectedGeneration?: string;
|
|
476
538
|
}): Promise<boolean>;
|
|
477
|
-
clearPostApproveCompletionIfMatches(taskId: string,
|
|
478
|
-
completeApprovedPassToMergeReady(taskId: string,
|
|
539
|
+
clearPostApproveCompletionIfMatches(taskId: string, expected: string | PostApproveEpisodeKey): Promise<boolean>;
|
|
540
|
+
completeApprovedPassToMergeReady(taskId: string, expected: string | PostApproveEpisodeKey): Promise<{
|
|
479
541
|
task: TaskState;
|
|
480
542
|
} | {
|
|
481
543
|
refused: 'stale' | 'pending';
|
|
@@ -500,10 +562,44 @@ export declare class AgentManager {
|
|
|
500
562
|
taskIds: string[];
|
|
501
563
|
}>;
|
|
502
564
|
}>;
|
|
503
|
-
|
|
504
|
-
|
|
565
|
+
flushTaskOutboxes(): Promise<void>;
|
|
566
|
+
private gitReviewLeaseMatches;
|
|
567
|
+
private gitReviewQaConfigUsable;
|
|
568
|
+
beginGitReviewPass(taskId: string, opts: {
|
|
569
|
+
fromStatus: TaskStatus[];
|
|
570
|
+
headSha: string;
|
|
571
|
+
bumpRound: boolean;
|
|
572
|
+
qaPhase?: 'review' | 'recheck';
|
|
573
|
+
expectSignalToken?: string;
|
|
574
|
+
expectPhase?: TaskPhase;
|
|
575
|
+
expectedTask?: TaskGenerationGuard;
|
|
576
|
+
allowDuringComplete?: boolean;
|
|
577
|
+
patch?: Partial<Pick<TaskState, 'prNumber' | 'prUrl' | 'latestHeadSha' | 'branch' | 'baseBranch' | 'replyActorId' | 'replyActorStatus' | 'pendingPrSignalToken'>>;
|
|
578
|
+
}): Promise<TransitionResult | null>;
|
|
579
|
+
claimGitReviewDispatch(taskId: string, expectedGeneration?: string, expectedTask?: TaskGenerationGuard): Promise<{
|
|
580
|
+
task: TaskState;
|
|
581
|
+
lease: ReviewDispatchLease & {
|
|
582
|
+
phase: 'claimed';
|
|
583
|
+
claimId: string;
|
|
584
|
+
claimedAt: string;
|
|
585
|
+
};
|
|
586
|
+
} | null>;
|
|
587
|
+
approveGitReviewPass(taskId: string, opts: {
|
|
588
|
+
expectedSignalToken: string;
|
|
589
|
+
headSha: string;
|
|
590
|
+
reviewRound: number;
|
|
591
|
+
prNumber?: number;
|
|
592
|
+
prUrl?: string;
|
|
593
|
+
provenance: NonNullable<TaskState['passProvenance']>;
|
|
594
|
+
}): Promise<TaskState | null>;
|
|
595
|
+
private resetGitReviewDispatchClaim;
|
|
596
|
+
private markGitReviewDispatchUncertain;
|
|
597
|
+
private confirmUncertainGitReviewDispatch;
|
|
598
|
+
private completeGitReviewDispatch;
|
|
599
|
+
private recoverPendingGitReviewDispatchHold;
|
|
600
|
+
recoverClaimedGitReviewDispatches(): Promise<void>;
|
|
505
601
|
retryPendingGitReviewDispatches(): Promise<void>;
|
|
506
|
-
|
|
602
|
+
retryGitRemoteCleanupIntents(): Promise<void>;
|
|
507
603
|
consumeGitFeedbackRevision(taskId: string, consume: {
|
|
508
604
|
key: string;
|
|
509
605
|
versionTime: number;
|
|
@@ -515,26 +611,17 @@ export declare class AgentManager {
|
|
|
515
611
|
kind: 'returned' | 'pending';
|
|
516
612
|
task: TaskState;
|
|
517
613
|
}>;
|
|
518
|
-
returnMergeReadyToApproved(taskId: string, consume: {
|
|
519
|
-
key: string;
|
|
520
|
-
versionTime: number;
|
|
521
|
-
}): Promise<TaskState | null>;
|
|
522
614
|
setupRecoveredPostApproveSignals(): Promise<void>;
|
|
523
615
|
setupRecoveredSpecSignals(): Promise<void>;
|
|
616
|
+
private recoverServerSignalRecovery;
|
|
524
617
|
private setupRecoveredWatcherForMapping;
|
|
525
|
-
prHasDevReplySince(taskId: string, sinceIso: string): Promise<boolean>;
|
|
526
|
-
private ghCreatedAt;
|
|
527
|
-
fetchPrHeadSha(taskId: string): Promise<string>;
|
|
528
618
|
verifyPaneSignalPrNumber(taskId: string, prNumber: number): Promise<{
|
|
529
619
|
headRefName: string;
|
|
530
620
|
headSha: string;
|
|
531
|
-
|
|
532
|
-
fetchPrHeadRef(prNumber: number, projectId: string): Promise<{
|
|
533
|
-
headRefName: string;
|
|
534
|
-
headSha: string;
|
|
535
|
-
body: string;
|
|
621
|
+
targetBranch: string;
|
|
536
622
|
} | undefined>;
|
|
537
623
|
platformBindingFields(projectId: string): Partial<TaskState>;
|
|
624
|
+
private platformBindingFor;
|
|
538
625
|
agentGitPreflightContext(projectId: string): AgentGitPreflight | undefined;
|
|
539
626
|
platformCliContextOf(task: TaskState): PlatformCliDescriptor | undefined;
|
|
540
627
|
ensureGitBaseSnapshot(task: TaskState, phase: string): Promise<TaskState>;
|
|
@@ -543,6 +630,7 @@ export declare class AgentManager {
|
|
|
543
630
|
private platformTaskAndDriver;
|
|
544
631
|
listActiveGitTasks(projectId?: string): Promise<TaskState[]>;
|
|
545
632
|
platformFetchPrView(taskId: string): Promise<NormalizedRow>;
|
|
633
|
+
platformFetchPrHeadSha(taskId: string): Promise<string>;
|
|
546
634
|
platformVerifyPrBinding(taskId: string, prNumber: number, opts?: {
|
|
547
635
|
branchOverride?: string;
|
|
548
636
|
}): Promise<{
|
|
@@ -556,15 +644,19 @@ export declare class AgentManager {
|
|
|
556
644
|
prBranch?: string;
|
|
557
645
|
}>;
|
|
558
646
|
stopPhaseSignalWatcherAgent(taskId: string, agentId: string): void;
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
647
|
+
private mutateRemoteCleanup;
|
|
648
|
+
private recordRemoteCleanupFailure;
|
|
649
|
+
private markRemoteCleanupManual;
|
|
650
|
+
processGitRemoteCleanup(taskId: string, expectedGeneration?: string): Promise<void>;
|
|
562
651
|
private platformScanComments;
|
|
563
652
|
platformVerifyAcceptedPass(taskId: string): Promise<{
|
|
564
|
-
|
|
653
|
+
kind: 'valid';
|
|
565
654
|
pendingCount: number;
|
|
566
655
|
} | {
|
|
567
|
-
|
|
656
|
+
kind: 'retryable';
|
|
657
|
+
reason: string;
|
|
658
|
+
} | {
|
|
659
|
+
kind: 'provenance-invalid';
|
|
568
660
|
reason: string;
|
|
569
661
|
}>;
|
|
570
662
|
platformPendingFeedback(taskId: string): Promise<PendingFeedbackResult>;
|
|
@@ -576,17 +668,39 @@ export declare class AgentManager {
|
|
|
576
668
|
passToken: string;
|
|
577
669
|
failToken: string;
|
|
578
670
|
};
|
|
579
|
-
|
|
671
|
+
private taskBelongsToPlatformEntry;
|
|
672
|
+
listTasksForPlatformEntry(projectId: string): Promise<TaskState[]>;
|
|
580
673
|
findTaskByBranch(branch: string, projectId: string): Promise<TaskState | undefined>;
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
674
|
+
adoptServerPr(taskId: string, pr: {
|
|
675
|
+
prNumber: number;
|
|
676
|
+
prUrl?: string;
|
|
677
|
+
headSha?: string;
|
|
678
|
+
targetBranch?: string;
|
|
679
|
+
}): Promise<boolean>;
|
|
680
|
+
updateTaskIfStatus(taskId: string, expectedStatus: TaskStatus, updates: Partial<TaskState>, alsoExpect?: Partial<Pick<TaskState, 'signalToken' | 'phase' | 'agentId' | 'reviewRound' | 'specReviewRound'>>): Promise<boolean>;
|
|
681
|
+
claimServerSignalRecovery(taskAtEntry: TaskState, agentId: string, signalKind: ServerSignalKind, input: Omit<ServerSignalRecovery, 'signalKind' | 'sourceToken' | 'createdAt'>): Promise<TaskState | null>;
|
|
682
|
+
holdConsumedServerSignal(taskAtEntry: TaskState, agentId: string, signalKind: ServerSignalKind, input: {
|
|
683
|
+
phase: 'spec' | 'code';
|
|
684
|
+
round: number;
|
|
685
|
+
reason: ServerSignalRecoveryReason;
|
|
686
|
+
failurePhase: string;
|
|
687
|
+
}): Promise<TaskState | null>;
|
|
688
|
+
setServerSignalRecoveryMode(taskId: string, successorToken: string, mode: 'correct-response' | 'hold'): Promise<TaskState | null>;
|
|
689
|
+
holdServerSignalRecovery(taskId: string, agentId: string, successorToken: string, holdPhase: string, reason: string): Promise<TaskState | null>;
|
|
690
|
+
dispatchServerFeedbackCorrection(taskId: string, findingsJson: string): Promise<boolean>;
|
|
584
691
|
updateTask(taskId: string, updates: Partial<TaskState>): Promise<void>;
|
|
585
692
|
transitionTaskStatus(taskId: string, toStatus: TaskStatus, guard: {
|
|
586
693
|
fromStatus: TaskStatus[];
|
|
694
|
+
expectTask?: TaskGenerationGuard;
|
|
587
695
|
expectSignalToken?: string;
|
|
588
|
-
|
|
589
|
-
|
|
696
|
+
expectPhase?: TaskPhase;
|
|
697
|
+
expectPostApproveEpisode?: PostApproveEpisodeKey;
|
|
698
|
+
expectReviewDispatch?: ReviewDispatchFence;
|
|
699
|
+
expectAgentLock?: {
|
|
700
|
+
agentId: string;
|
|
701
|
+
token: string;
|
|
702
|
+
};
|
|
703
|
+
}, patch?: Partial<Pick<TaskState, 'reviewRound' | 'agentId' | 'prNumber' | 'prUrl' | 'baseBranch' | 'qaAgentId' | 'latestHeadSha' | 'reviewHeadAnchorSha' | 'reviewDispatchedAt' | 'fixDispatchedAt' | 'specReviewRound' | 'signalToken' | 'passToken' | 'failToken' | 'reviewRoundPending' | 'reviewDispatch' | 'phase' | 'batchIndex' | 'batchTotal' | 'reviewCheckoutMode' | 'branch' | 'maxRoundsContinues'>>): Promise<TransitionResult | null>;
|
|
590
704
|
private createRunnerFor;
|
|
591
705
|
private createRepoStore;
|
|
592
706
|
private ensureWorkdir;
|
|
@@ -659,7 +773,9 @@ export declare class AgentManager {
|
|
|
659
773
|
markAgentWaiting(agentId: string, expectedTaskId: string, opts?: {
|
|
660
774
|
allowAwaitingHuman?: boolean;
|
|
661
775
|
clearAwaitingHuman?: boolean;
|
|
662
|
-
expectedTask?:
|
|
776
|
+
expectedTask?: Partial<TaskGenerationGuard>;
|
|
777
|
+
expectedReviewDispatch?: Pick<ReviewDispatchLease, 'generation' | 'claimId' | 'signalToken'>;
|
|
778
|
+
expectedPostApproveEpisode?: PostApproveEpisodeKey;
|
|
663
779
|
expectedHold?: {
|
|
664
780
|
phase: string | undefined;
|
|
665
781
|
since: string | undefined;
|
|
@@ -680,22 +796,36 @@ export declare class AgentManager {
|
|
|
680
796
|
description: string;
|
|
681
797
|
preferredAgentId: string;
|
|
682
798
|
}): Promise<void>;
|
|
799
|
+
private gitReviewClaimMatches;
|
|
800
|
+
private gitReviewDispatchMatches;
|
|
801
|
+
dispatchGitReviewLease(taskId: string, opts?: {
|
|
802
|
+
expectedGeneration?: string;
|
|
803
|
+
expectedTask?: TaskGenerationGuard;
|
|
804
|
+
pendingBudget?: {
|
|
805
|
+
since: number;
|
|
806
|
+
budgetAlerted?: boolean;
|
|
807
|
+
};
|
|
808
|
+
onQaAcquired?: (lockToken: string) => void;
|
|
809
|
+
onSideEffect?: () => void;
|
|
810
|
+
}): Promise<TaskState>;
|
|
683
811
|
dispatchReviewToQa(taskId: string, opts?: {
|
|
684
812
|
fromStatus?: TaskStatus[];
|
|
685
813
|
bumpRound?: boolean;
|
|
686
814
|
expectSignalToken?: string;
|
|
815
|
+
expectPhase?: TaskPhase;
|
|
816
|
+
expectedTask?: TaskGenerationGuard;
|
|
687
817
|
qaPhase?: 'review' | 'recheck';
|
|
688
818
|
pendingBudget?: {
|
|
689
819
|
since: number;
|
|
690
820
|
budgetAlerted?: boolean;
|
|
691
821
|
};
|
|
692
|
-
expectReviewDispatchPending?: boolean;
|
|
693
822
|
onPassArmed?: (armedToken: string) => void;
|
|
823
|
+
onQaAcquired?: (lockToken: string) => void;
|
|
824
|
+
onSideEffect?: () => void;
|
|
825
|
+
confirmUncertainNotDelivered?: boolean;
|
|
694
826
|
}): Promise<TaskState>;
|
|
695
827
|
private runManualServerReview;
|
|
696
828
|
continueDevRound(taskId: string): Promise<TaskState>;
|
|
697
|
-
private rollbackDispatchReviewPhase1;
|
|
698
|
-
private tearDownWatcherIfTaskTerminal;
|
|
699
829
|
private devInitialSignalKinds;
|
|
700
830
|
private resolveInitialDispatch;
|
|
701
831
|
private mapTaskStateToExpectedWatchers;
|
|
@@ -706,7 +836,6 @@ export declare class AgentManager {
|
|
|
706
836
|
replaceScope?: 'task' | 'agent';
|
|
707
837
|
tokenOverride?: string;
|
|
708
838
|
}): Promise<boolean>;
|
|
709
|
-
private emitManualReviewDevParkedQaFailedIntervention;
|
|
710
839
|
retryTask(taskId: string): Promise<TaskState>;
|
|
711
840
|
editTask(taskId: string, patch: {
|
|
712
841
|
title?: string;
|
|
@@ -738,31 +867,16 @@ export declare class AgentManager {
|
|
|
738
867
|
rearmGitReconciliationWatcher(taskId: string, opts?: {
|
|
739
868
|
skipSnapshot?: boolean;
|
|
740
869
|
}): Promise<void>;
|
|
741
|
-
rotateAndSetupPhaseSignal(taskId: string, agentId: string, expectedKinds: PhaseSignalKind | readonly PhaseSignalKind[]
|
|
870
|
+
rotateAndSetupPhaseSignal(taskId: string, agentId: string, expectedKinds: PhaseSignalKind | readonly PhaseSignalKind[], guard?: {
|
|
871
|
+
expectedStatus: TaskStatus;
|
|
872
|
+
expectedToken?: string;
|
|
873
|
+
}): Promise<{
|
|
742
874
|
token: string;
|
|
743
875
|
armed: boolean;
|
|
744
876
|
}>;
|
|
745
|
-
rollbackVerdictArmFailure(taskId: string, restore: {
|
|
746
|
-
status: TaskStatus;
|
|
747
|
-
signalToken?: string;
|
|
748
|
-
reviewHeadAnchorSha?: string;
|
|
749
|
-
reviewDispatchedAt?: string;
|
|
750
|
-
reviewRoundPending?: boolean;
|
|
751
|
-
passToken?: string;
|
|
752
|
-
failToken?: string;
|
|
753
|
-
restorePair?: boolean;
|
|
754
|
-
}, opts?: {
|
|
755
|
-
expect?: {
|
|
756
|
-
status: TaskStatus;
|
|
757
|
-
signalToken?: string;
|
|
758
|
-
};
|
|
759
|
-
rearmSkipSnapshot?: boolean;
|
|
760
|
-
}): Promise<boolean>;
|
|
761
|
-
rearmPhaseSignalForCurrentPass(taskId: string, opts?: {
|
|
762
|
-
skipSnapshot?: boolean;
|
|
763
|
-
}): Promise<void>;
|
|
764
877
|
parkTaskAtSpecReady(taskId: string, opts?: {
|
|
765
878
|
specReviewRound?: number;
|
|
879
|
+
expectedTask?: TaskGenerationGuard;
|
|
766
880
|
}): Promise<TaskState | null>;
|
|
767
881
|
submitSpecVerdict(taskId: string, verdict: 'approve' | 'request-changes' | 'archive', comments?: string): Promise<TaskState>;
|
|
768
882
|
private executeSpecVerdict;
|
|
@@ -773,11 +887,12 @@ export declare class AgentManager {
|
|
|
773
887
|
private synthesizeEmptyCodeRound;
|
|
774
888
|
private isResearchHandoff;
|
|
775
889
|
private dispatchCodePhasePrompt;
|
|
776
|
-
transitionToCodePhase(taskId: string): Promise<TaskState | null>;
|
|
890
|
+
transitionToCodePhase(taskId: string, expectedTask?: TaskGenerationGuard): Promise<TaskState | null>;
|
|
777
891
|
dispatchServerReviewToQa(taskId: string, opts: {
|
|
778
892
|
phase: ReviewPhase;
|
|
779
893
|
recheck?: boolean;
|
|
780
894
|
continuation?: boolean;
|
|
895
|
+
bumpRound?: boolean;
|
|
781
896
|
content: string;
|
|
782
897
|
interdiff?: string;
|
|
783
898
|
diffstat?: string;
|
|
@@ -790,8 +905,15 @@ export declare class AgentManager {
|
|
|
790
905
|
priorFindingsJson?: string;
|
|
791
906
|
priorResponseJson?: string;
|
|
792
907
|
reviewHeadAnchorSha?: string;
|
|
908
|
+
callerOwnsConsumedSignalFailure?: boolean;
|
|
909
|
+
settlePermit?: unknown;
|
|
910
|
+
expectedTask?: TaskGenerationGuard;
|
|
911
|
+
onSideEffect?: () => void;
|
|
912
|
+
}): Promise<TaskState | null>;
|
|
913
|
+
dispatchServerFixToDev(taskId: string, _findingsJson: string, opts?: {
|
|
914
|
+
callerOwnsConsumedSignalFailure?: boolean;
|
|
915
|
+
expectedTask?: TaskGenerationGuard;
|
|
793
916
|
}): Promise<TaskState | null>;
|
|
794
|
-
dispatchServerFixToDev(taskId: string, findingsJson: string): Promise<TaskState | null>;
|
|
795
917
|
private projectRepoKey;
|
|
796
918
|
computeCodeInterdiff(taskId: string, round: number): Promise<CodeInterdiffResult>;
|
|
797
919
|
findLineageViolation(taskId: string, baseSha?: string): Promise<LineageViolation | null>;
|