@ordewell/core 0.10.3 → 0.10.5
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/dist/{IFileSystem-DCd-rkeH.d.ts → IFileSystem-ClBdp59f.d.ts} +1 -1
- package/dist/{IFileSystem-B8Nkgg4e.d.mts → IFileSystem-Db34maxC.d.mts} +1 -1
- package/dist/{IRunner-CXdYyIZo.d.mts → IRunner-Crkt3tHD.d.ts} +64 -3
- package/dist/{IRunner-QBdYcatb.d.ts → IRunner-lMQIa5Wc.d.mts} +64 -3
- package/dist/{ModeResolver-geqjKkLY.d.mts → ModeResolver-B4hhABNf.d.mts} +1 -1
- package/dist/{ModeResolver-BOU90Nn-.d.ts → ModeResolver-CUR5jCSU.d.ts} +1 -1
- package/dist/{Task-CRVIqSfy.d.mts → Task-D4QHjdGv.d.mts} +93 -11
- package/dist/{Task-CRVIqSfy.d.ts → Task-D4QHjdGv.d.ts} +93 -11
- package/dist/{chunk-A57ITQE7.mjs → chunk-4QLFM73A.mjs} +34 -5
- package/dist/chunk-4QLFM73A.mjs.map +1 -0
- package/dist/{chunk-FH6M5QZG.mjs → chunk-6LEA6WAM.mjs} +88 -7
- package/dist/chunk-6LEA6WAM.mjs.map +1 -0
- package/dist/{chunk-645FALZX.mjs → chunk-F3KIX7WR.mjs} +3 -3
- package/dist/{chunk-OYUSADFM.mjs → chunk-NJGID6BG.mjs} +3 -1
- package/dist/chunk-NJGID6BG.mjs.map +1 -0
- package/dist/{chunk-SM6BV6XS.mjs → chunk-RT4NQ2BZ.mjs} +3 -1
- package/dist/chunk-RT4NQ2BZ.mjs.map +1 -0
- package/dist/index.d.mts +307 -66
- package/dist/index.d.ts +307 -66
- package/dist/index.js +1688 -402
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1567 -388
- package/dist/index.mjs.map +1 -1
- package/dist/parsing.d.mts +2 -2
- package/dist/parsing.d.ts +2 -2
- package/dist/parsing.js.map +1 -1
- package/dist/parsing.mjs +3 -3
- package/dist/{plan-utils-oC8bO4pN.d.ts → plan-utils-BVJCzNvm.d.ts} +204 -19
- package/dist/{plan-utils-KU1Rse82.d.mts → plan-utils-wI8MuDBC.d.mts} +204 -19
- package/dist/plan-utils.d.mts +4 -4
- package/dist/plan-utils.d.ts +4 -4
- package/dist/plan-utils.js +94 -5
- package/dist/plan-utils.js.map +1 -1
- package/dist/plan-utils.mjs +13 -3
- package/dist/testing.d.mts +6 -3
- package/dist/testing.d.ts +6 -3
- package/dist/testing.js +7 -0
- package/dist/testing.js.map +1 -1
- package/dist/testing.mjs +7 -2
- package/dist/testing.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-A57ITQE7.mjs.map +0 -1
- package/dist/chunk-FH6M5QZG.mjs.map +0 -1
- package/dist/chunk-OYUSADFM.mjs.map +0 -1
- package/dist/chunk-SM6BV6XS.mjs.map +0 -1
- /package/dist/{chunk-645FALZX.mjs.map → chunk-F3KIX7WR.mjs.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { A as ApprovalRecord, a as AttemptUsage, b as AwaitingReason, B as BUILTIN_SKILL_NAMES, D as DEFAULT_RUNNERS, c as DEFAULT_SUPERVISOR_RETRY_LIMIT, h as IntegrationDisposal, i as InvalidSkill, j as IsolationAvailability, k as IsolationHandoff, l as IsolationHandoffRepo, m as IsolationInactiveReason, o as IsolationLanding, p as IsolationMergeBlock, q as IsolationMergeBlockReason, s as IsolationOutcome, t as IsolationPruneResult, u as IsolationRemoval, v as IsolationRepo, w as IsolationRun, x as IsolationTaskRecord, y as IsolationTaskRef, z as IsolationTaskRepo, M as ModelUsage, O as PlanUsage,
|
|
3
|
-
import {
|
|
4
|
-
export { A as ACT_RISK, a as AUTORUN_RISK, c as ApprovalBlock, d as ApprovalStatus, e as AutoMergeTrigger, B as BlockingSubject, C as CHECKPOINT_TRUNCATE_LENGTH,
|
|
5
|
-
import { I as IApproval, y as IConfig, d as AgentProcessDeps, a as AgentAdapter, _ as OrdewellMcpServer, a6 as PlannerToolHandler, ad as ResearchShell, p as ApprovalRequest, j as ApprovalDecision, i as ApprovalAnswer, z as IRunner, a3 as PlannerBackendId, a9 as ProviderModelLists, f as AiProvider, m as ApprovalModeSetting,
|
|
6
|
-
export { A as AUTO_COMMANDS, b as AgentAdapterFactory, g as AllProviderModels, h as AnswerApprovalArgs, k as ApprovalKind, l as ApprovalMode, o as ApprovalPolicyOptions, q as ApprovalSource, C as CatalogModel, s as CheckpointArgs, t as CommandClassification, u as CommandTier, v as CommandWords, D as DEFAULT_PLANNER_ALLOWLIST, w as DENY_ALL, x as DiscoveryCommand, E as EditPlanArgs, F as FetchAllProviderModelsOptions, G as GIT_READONLY_SUBCOMMANDS, H as InvokedCommand, L as LineBuffer, J as ListModelsArgs, K as ListRunnersArgs, M as LoadSkillArgs, N as McpClientConfig, O as McpCredential, P as McpTool, Q as McpToolContext, R as McpToolReply, S as MessageTaskArgs, T as ModelCatalog, U as ModelShortcut, V as ORCHESTRATOR_SHORTCUTS, W as ORDEWELL_MCP_PATH, X as ORDEWELL_MCP_SERVER_NAME, Y as OneTaskArgs, $ as OwnerOnlyFile, a0 as PLANNER_EXECUTION_TOOLS, a1 as PLANNER_TOOLS, a2 as PlannerAllowlist, a4 as PlannerStartOptions, a5 as PlannerTokenScope, a8 as ProviderCredentialSource, aa as ProviderModelsResult, ac as REFUSED_COMMANDS, ae as ResearchShellDeps, af as RetryTaskArgs, ag as RunCommandArgs, ah as RunPlanArgs, aj as RunnerCommandKind, ak as RunnerEntry, al as RunnerFeatures, an as RunnerMcpServer, ao as RunnerMode, ap as RunnerModelDiscovery,
|
|
7
|
-
import { T as ToolOutcome, I as IFileSystem, R as ReadFileOpts, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-
|
|
8
|
-
export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-
|
|
9
|
-
import { R as RunnerModeInfo } from './ModeResolver-
|
|
10
|
-
export { a as autonomyLevelLabel, p as parseAutonomyLevel, r as runnerModesFrom } from './ModeResolver-
|
|
1
|
+
import { ah as Task, E as ExecutionActor, r as IsolationMergeResult, f as ExecutionRecord, g as GuardTrip, ag as SupervisorLevel, e as ExecutionCommandName, G as GuardTarget, a3 as RunnerId, d as DiscoveredModel, _ as ResearchProgress, Z as ResearchLogEntry, C as ConversationMessage, a9 as SkillInfo, aa as SkillLoad, ae as SkillsService, L as LegacyPlanState, N as PlanStatus, n as IsolationLandedTask, I as IWorktreeIsolation, F as IsolationTaskStatus, J as PlanIsolation, au as UsageRecord, a4 as RunnerSessionCost, a1 as ResearchToolType, R as PlannerUsage, ao as TaskSkillSnapshot, ap as TaskSnapshot, K as PlanState, H as IsolationView, aw as Verdict } from './Task-D4QHjdGv.js';
|
|
2
|
+
export { A as ApprovalRecord, a as AttemptUsage, b as AwaitingReason, B as BUILTIN_SKILL_NAMES, D as DEFAULT_RUNNERS, c as DEFAULT_SUPERVISOR_RETRY_LIMIT, h as IntegrationDisposal, i as InvalidSkill, j as IsolationAvailability, k as IsolationHandoff, l as IsolationHandoffRepo, m as IsolationInactiveReason, o as IsolationLanding, p as IsolationMergeBlock, q as IsolationMergeBlockReason, s as IsolationOutcome, t as IsolationPruneResult, u as IsolationRemoval, v as IsolationRepo, w as IsolationRun, x as IsolationTaskRecord, y as IsolationTaskRef, z as IsolationTaskRepo, M as ModelUsage, O as PlanUsage, Q as PlannerResendState, S as PrepareIntent, T as PreparedTask, U as PreservedWork, V as PreviousWork, W as RefusedRemoval, X as RepairEvidence, Y as RepoGroupLayout, $ as ResearchStep, a0 as ResearchStepOutcome, a2 as RunSettings, a5 as SetupFailure, a6 as ShadowedSkill, a7 as SkillAppliesTo, a8 as SkillCatalog, ab as SkillLoadNotice, ac as SkillMetadata, ad as SkillSource, ak as TaskIsolation, al as TaskIsolationState, am as TaskModelAssignment, aq as TaskStatus, ar as TaskUsageSummary, as as TreeSnapshot, at as UsageLine, av as UsageTotals, ax as VerificationCheck, ay as addAttemptUsage, az as addModelUsage, aA as addPlannerUsage, aB as addUsage, aC as addUsageTotals, aD as countedSessionCost, aE as createEmptyPlan, aF as createSkillsService, aG as createTask, aH as endAttemptUsage, aI as flattenTasks, aJ as flattenTasksWithParents, aK as isAwaitingReason, aL as isMeasured, aM as isSupervisorLevel, aN as isUserMessage, aO as migratePlanState, aP as partedPromptUsage, aQ as pausedOnLimit, aR as planUsage, aS as plannerContextFill, aT as rejoinPlanTree, aU as resumedSessionWindow, aV as startAttemptUsage, aW as taskUsageSummary, aX as usageLine, aY as waitsForApproval } from './Task-D4QHjdGv.js';
|
|
3
|
+
import { aj as StartAdmission, y as LiveTailOptions, L as LiveTail, W as PlannerModes, av as TaskOp, w as IsolatedExecution, f as AssignmentScope, ac as SessionBroadcaster, b as ApplyTaskOpsResult, ah as SkillLookup, ae as SessionNotice, s as EditCatalog, ad as SessionMessage, V as PlanStore, aw as TaskOrchestrator, x as IsolationRunController, Q as OrchestratorObserver, at as TaskLogEvent, I as INotification, u as GlobalRunSettings, a3 as RunView, $ as RunMergeView, az as TaskOutputSource, aQ as UserSettings, an as SurfacePlan, ao as SurfacePlanState } from './plan-utils-BVJCzNvm.js';
|
|
4
|
+
export { A as ACT_RISK, a as AUTORUN_RISK, c as ApprovalBlock, d as ApprovalStatus, e as AssignmentIssue, g as AutoMergeTrigger, B as BlockingSubject, C as CHECKPOINT_TRUNCATE_LENGTH, h as CommandBlock, i as CommandStatus, j as CompactionBlock, k as ConversationInput, l as ConversationView, D as DiffRow, m as DiffRowKind, n as DiffStat, o as DisplayBlock, E as EMPTY_CONVERSATION, p as EMPTY_HOLD, q as EMPTY_RUN, r as EMPTY_TASK_LOG, t as ExecutionSummary, G as GatedConversation, H as HeldEdit, v as HeldEditMark, z as LocalEntry, M as MarkdownToken, F as MessageBlock, J as MessageRole, N as NOT_STARTED, K as NO_TURN, O as NewTaskFields, P as NotificationAction, R as OutputPreview, S as PlanBlock, T as PlanMarkerStatus, U as PlanSnapshot, X as PromptHold, Y as RUN_SETTINGS_DEFAULTS, _ as RunInput, a0 as RunSettingsError, a1 as RunTask, a2 as RunTaskStatus, a4 as RunnerLoadedBlock, a5 as STOPPED_BEFORE_START, a6 as SUPERVISOR_LEVEL_LABEL, a7 as SerializedConversationMessage, a8 as SerializedPendingTurn, a9 as SerializedPlan, aa as SerializedTask, ab as SerializedTaskStatus, af as SettingsService, ag as SkillLoadBlock, ai as SkillToken, ak as SubagentBlock, al as SubagentChild, am as SubagentStatus, ap as SurfaceTask, aq as TakenPrompt, ar as TaskAttemptSnapshot, as as TaskControlError, au as TaskLogView, ax as TaskOrchestratorDeps, ay as TaskOrchestratorOptions, aA as TaskRef, aB as TaskRowAction, aC as TaskRowContext, aD as TaskRowIsolation, aE as TaskRowKind, aF as TaskRowPlacement, aG as TaskRowSubject, aH as TaskRowUsage, aI as TaskRowView, aJ as TaskStatusKind, aK as ThinkingDisplayBlock, aL as ToolBlock, aM as ToolHeadline, aN as ToolStatus, aO as TurnGate, aP as UsageBlock, aR as WAITS_FOR_APPROVAL_LABEL, aS as aheadOfDraft, aT as applyTaskOps, aU as approvalLabel, aV as assignmentIssue, aW as assignmentIssueText, aX as automergeSummary, aY as autorunSummary, aZ as awaitingLabel, a_ as blockedByLabel, a$ as blockingFailures, b0 as canMergeTasks, b1 as canSetDependencies, b2 as canSplitTask, b3 as capConflictFiles, b4 as classifyOutcome, b5 as coalesceTaskLog, b6 as dependencyCandidates, b7 as dependentsNotice, b8 as dependentsOf, b9 as diffRows, ba as diffStat, bb as diffSummary, bc as digestTaskLog, bd as drainNext, be as executionSummary, bf as followTurn, bg as fromTranscript, bh as getSettingsPath, bi as hasHiddenDetail, bj as holdPrompt, bk as isTaskRunning, bl as loadedSkillTokens, bm as markAction, bn as markRequestFor, bo as markdownHtml, bp as markdownTokens, bq as namedRepos, br as newTaskFields, bs as opsEditable, bt as outputLines, bu as outputPreview, bv as parseCount, bw as parseSwitch, bx as parseTaskOpsJson, by as pastGateConfirmation, bz as reconcileApprovals, bA as reduceConversation, bB as reduceRun, bC as reduceTaskLog, bD as replayTaskLog, bE as resolveTaskRef, bF as resumeLabel, bG as resumeTime, bH as runSettingsOf, bI as runnerToolSubject, bJ as serializePlan, bK as serializeTask, bL as serializeTaskStatus, bM as skillTokens, bN as skippedLabel, bO as stopTurn, bP as summarizeToolCall, bQ as supervisorSummary, bR as surfacePlan, bS as surfacePlanState, bT as takeAt, bU as taskLogForSurface, bV as taskOrderLabel, bW as taskRef, bX as taskRefOf, bY as taskRowActions, bZ as taskRowView, b_ as taskStartedNotice, b$ as taskStatusKind, c0 as textHasTaskOps, c1 as titledRefs, c2 as titledTaskRef, c3 as titledTaskRefOf, c4 as toTaskLogEvent, c5 as toolHeadline, c6 as trimToolOutput, c7 as truncateCheckpointSummary, c8 as unsendAll, c9 as unsendLatest } from './plan-utils-BVJCzNvm.js';
|
|
5
|
+
import { I as IApproval, y as IConfig, d as AgentProcessDeps, a as AgentAdapter, _ as OrdewellMcpServer, aM as UsageLimitSignal, a6 as PlannerToolHandler, ad as ResearchShell, p as ApprovalRequest, j as ApprovalDecision, i as ApprovalAnswer, z as IRunner, a3 as PlannerBackendId, a9 as ProviderModelLists, f as AiProvider, m as ApprovalModeSetting, ar as RunnerRegistry, Z as OrchestratorOption, aE as TaskModeAgentAdapter, e as AgentStartOptions, c as AgentEvent, ai as RunnerCommand, a7 as ProjectMcpServer, B as IRunnerSession, n as ApprovalPolicy, aB as TaskCompleteArgs, r as CheckpointAnswer, aw as StructuredTurnEnd, av as StructuredEvent, aD as TaskMessageFrom, ab as QueuedTaskMessage, aJ as TaskStartOptions, aK as TaskTokenScope, am as RunnerManifest, aI as TaskRunnerFlags } from './IRunner-Crkt3tHD.js';
|
|
6
|
+
export { A as AUTO_COMMANDS, b as AgentAdapterFactory, g as AllProviderModels, h as AnswerApprovalArgs, k as ApprovalKind, l as ApprovalMode, o as ApprovalPolicyOptions, q as ApprovalSource, C as CatalogModel, s as CheckpointArgs, t as CommandClassification, u as CommandTier, v as CommandWords, D as DEFAULT_PLANNER_ALLOWLIST, w as DENY_ALL, x as DiscoveryCommand, E as EditPlanArgs, F as FetchAllProviderModelsOptions, G as GIT_READONLY_SUBCOMMANDS, H as InvokedCommand, L as LineBuffer, J as ListModelsArgs, K as ListRunnersArgs, M as LoadSkillArgs, N as McpClientConfig, O as McpCredential, P as McpTool, Q as McpToolContext, R as McpToolReply, S as MessageTaskArgs, T as ModelCatalog, U as ModelShortcut, V as ORCHESTRATOR_SHORTCUTS, W as ORDEWELL_MCP_PATH, X as ORDEWELL_MCP_SERVER_NAME, Y as OneTaskArgs, $ as OwnerOnlyFile, a0 as PLANNER_EXECUTION_TOOLS, a1 as PLANNER_TOOLS, a2 as PlannerAllowlist, a4 as PlannerStartOptions, a5 as PlannerTokenScope, a8 as ProviderCredentialSource, aa as ProviderModelsResult, ac as REFUSED_COMMANDS, ae as ResearchShellDeps, af as RetryTaskArgs, ag as RunCommandArgs, ah as RunPlanArgs, aj as RunnerCommandKind, ak as RunnerEntry, al as RunnerFeatures, an as RunnerMcpServer, ao as RunnerMode, ap as RunnerModelDiscovery, aq as RunnerModelRef, as as ShellDialect, at as SpawnFn, au as StandingDecision, ax as SubmitPlanArgs, ay as TASK_COMPLETE_TOOL, az as TASK_COMPLETION_CONTRACT, aA as TASK_TOOLS, aC as TaskDiffArgs, aF as TaskModeUnsupportedError, aG as TaskOutputArgs, aH as TaskQueryArgs, aL as TaskToolHandler, aN as approvalScopes, aO as classifyCommand, aP as clearResearchShellCache, aQ as collectProviderCredentials, aR as commandAllowedBy, aS as effectiveApprovalMode, aT as enabledRunners, aU as fetchAllProviderModels, aV as findRunnerCommand, aW as isGranted, aX as isRunnerApproval, aY as knownModelId, aZ as mcpClientConfig, a_ as ownerOnlyConfigFile, a$ as parseAllowlist, b0 as parseApprovalModeSetting, b1 as researchShellWarning, b2 as researchToolsPath, b3 as resolveModelShortcut, b4 as resolveProvider, b5 as resolveResearchShell, b6 as scopeAllowed, b7 as sharedMcpServer, b8 as toApprovalDecision, b9 as toOrchestratorOptions, ba as toolAllowed } from './IRunner-Crkt3tHD.js';
|
|
7
|
+
import { T as ToolOutcome, I as IFileSystem, R as ReadFileOpts, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-ClBdp59f.js';
|
|
8
|
+
export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-ClBdp59f.js';
|
|
9
|
+
import { R as RunnerModeInfo } from './ModeResolver-CUR5jCSU.js';
|
|
10
|
+
export { a as autonomyLevelLabel, p as parseAutonomyLevel, r as runnerModesFrom } from './ModeResolver-CUR5jCSU.js';
|
|
11
11
|
import { ChildProcess } from 'child_process';
|
|
12
12
|
import { EventEmitter } from 'events';
|
|
13
13
|
import 'zod/v4';
|
|
@@ -125,6 +125,8 @@ interface ExecutionHost {
|
|
|
125
125
|
planApproved(): boolean;
|
|
126
126
|
/** The user approved this task: it was in the plan they executed, or they started it themselves. */
|
|
127
127
|
taskApproved(taskId: string): boolean;
|
|
128
|
+
/** A task the scheduler leaves for the user to approve: added to the plan since they approved it (ADR-0035). */
|
|
129
|
+
waitsForApproval(taskId: string): boolean;
|
|
128
130
|
/** A start the user consented to approves these tasks, before it acts. */
|
|
129
131
|
approve(taskIds: readonly string[]): void;
|
|
130
132
|
/** Full autonomy: starts follow plan approval without a question. */
|
|
@@ -156,6 +158,12 @@ interface ExecutionHost {
|
|
|
156
158
|
waitingRequests(taskId: string): readonly WaitingRequest[];
|
|
157
159
|
/** A start is told who asked: whether a run it opens continues the last one depends on it (ADR-0029). */
|
|
158
160
|
runPlan(actor: ExecutionActor): Promise<void>;
|
|
161
|
+
/**
|
|
162
|
+
* The user's Execute while a run is under way, once it approved every task:
|
|
163
|
+
* the run takes them in, each starting once its dependencies finish. Answers
|
|
164
|
+
* the line that says so, naming how many had waited for approval.
|
|
165
|
+
*/
|
|
166
|
+
joinRun(approved: number): Promise<string>;
|
|
159
167
|
startTask(taskId: string, actor: ExecutionActor): Promise<void>;
|
|
160
168
|
stopTask(taskId: string): Promise<void>;
|
|
161
169
|
stopRun(): void;
|
|
@@ -680,12 +688,6 @@ interface ConversationRequest {
|
|
|
680
688
|
fetcher?: IWebFetcher;
|
|
681
689
|
runnerModes?: Record<RunnerId, RunnerModeInfo[]>;
|
|
682
690
|
autonomousDefault?: boolean;
|
|
683
|
-
/**
|
|
684
|
-
* The planner model's context window when the catalog knows it. Threaded here
|
|
685
|
-
* so a usage record can carry it (and the UI can show context fill); absent
|
|
686
|
-
* when unknown, never guessed (#49).
|
|
687
|
-
*/
|
|
688
|
-
contextWindow?: number;
|
|
689
691
|
/** Where tasks will run (ADR-0013, ADR-0014): in worktrees, the prompt drops file-overlap ordering and describes a repo group. */
|
|
690
692
|
isolatedExecution?: IsolatedExecution;
|
|
691
693
|
/** A plan the planner submits starts at once (ADR-0030), so the opening prompt has no outline gate. */
|
|
@@ -730,7 +732,8 @@ type ConversationTurn =
|
|
|
730
732
|
/**
|
|
731
733
|
* `aborted`: the call was stopped, and `text` is only what it had by then.
|
|
732
734
|
* `failed`: the call ended without a reply (a dead agent, a usage limit),
|
|
733
|
-
* and `text` says why
|
|
735
|
+
* and `text` says why; `usageLimit`, where the runner also said in a field
|
|
736
|
+
* whether that was its usage limit (see {@link TurnFailure}).
|
|
734
737
|
*/
|
|
735
738
|
{
|
|
736
739
|
kind: 'message';
|
|
@@ -738,6 +741,7 @@ type ConversationTurn =
|
|
|
738
741
|
researchLog: ResearchLogEntry[];
|
|
739
742
|
aborted?: boolean;
|
|
740
743
|
failed?: boolean;
|
|
744
|
+
usageLimit?: UsageLimitSignal | false;
|
|
741
745
|
} | {
|
|
742
746
|
kind: 'plan';
|
|
743
747
|
tasks: Task[];
|
|
@@ -874,9 +878,35 @@ declare function plannerMessage(text: string, loads: readonly SkillLoad[]): stri
|
|
|
874
878
|
* carries the skills loaded after it, composed by {@link plannerMessage}, and
|
|
875
879
|
* the load entries themselves are folded away. Sessions saved before skill
|
|
876
880
|
* loads existed hold the expanded text in the message and replay unchanged.
|
|
881
|
+
* A failed turn's entry is left out: the planner never said it.
|
|
877
882
|
*/
|
|
878
883
|
declare function plannerTranscript(history: readonly ConversationMessage[]): ConversationMessage[];
|
|
879
884
|
|
|
885
|
+
/**
|
|
886
|
+
* What a stopped runner says about why it stopped, and what ending an attempt
|
|
887
|
+
* does to the runner it leaves behind. TaskOrchestrator acts on the answers.
|
|
888
|
+
*/
|
|
889
|
+
|
|
890
|
+
/**
|
|
891
|
+
* A turn's failure as its runner reported it: its words, and `usageLimit`
|
|
892
|
+
* where its protocol also says in a field whether it was the limit (Codex's
|
|
893
|
+
* `codexErrorInfo`).
|
|
894
|
+
*/
|
|
895
|
+
interface TurnFailure {
|
|
896
|
+
message: string;
|
|
897
|
+
usageLimit?: UsageLimitSignal | false;
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
/** What a usage limit that ended a planner turn led to. */
|
|
901
|
+
interface PlannerLimit {
|
|
902
|
+
/** The line the transcript keeps, drawn as a failure. */
|
|
903
|
+
text: string;
|
|
904
|
+
/** When what the turn took goes again on its own; null when it waits for the user's next message. */
|
|
905
|
+
resendAt: Date | null;
|
|
906
|
+
/** Why nothing goes again on its own, when nothing does: what the planner did, as in "the planner hit its usage limit and …". */
|
|
907
|
+
held?: string;
|
|
908
|
+
}
|
|
909
|
+
|
|
880
910
|
/**
|
|
881
911
|
* The planner turn (see CONTEXT.md): the one piece of planner work that holds
|
|
882
912
|
* the conversation, from its claim to its settled outcome. Its signal is what a
|
|
@@ -947,6 +977,8 @@ interface PlannerConversationHost {
|
|
|
947
977
|
catalog(): TaskQueryCatalog;
|
|
948
978
|
/** Whether autorun is on now (ADR-0030); the planner is told in the turn after it changes. */
|
|
949
979
|
autorun(): boolean;
|
|
980
|
+
/** The enabled runners and allowlist as of now; the planner is told in the turn after either changes. */
|
|
981
|
+
assignmentScope(): AssignmentScope;
|
|
950
982
|
/** Run updates no turn has carried yet, taken by the turn that asks: the next turn is told, whoever opens it. */
|
|
951
983
|
takeRunUpdates(): string[];
|
|
952
984
|
tasks(): readonly Task[];
|
|
@@ -975,6 +1007,8 @@ interface PlannerConversationHost {
|
|
|
975
1007
|
turnAborted(): void;
|
|
976
1008
|
/** A planner turn let the conversation go, so the next one may take it. */
|
|
977
1009
|
turnReleased?(): void;
|
|
1010
|
+
/** A turn ended on the planner's usage limit, which it reported as `said`: what is sent again, and when. */
|
|
1011
|
+
usageLimit(said: TurnFailure): PlannerLimit;
|
|
978
1012
|
}
|
|
979
1013
|
/**
|
|
980
1014
|
* A conversation edit (rewind, fork) the conversation refused because the
|
|
@@ -1003,6 +1037,26 @@ declare class ConversationBusyError extends ConversationEditError {
|
|
|
1003
1037
|
declare class PlannerTurnDiscardedError extends Error {
|
|
1004
1038
|
constructor(options?: ErrorOptions);
|
|
1005
1039
|
}
|
|
1040
|
+
/**
|
|
1041
|
+
* A wake-up turn's backend ended without a reply — a dead agent, a usage
|
|
1042
|
+
* limit — and said why. A user's turn shows that in the chat instead; a
|
|
1043
|
+
* wake-up has nobody waiting on it, so its supervisor is told (ADR-0029).
|
|
1044
|
+
*/
|
|
1045
|
+
declare class PlannerTurnFailedError extends Error {
|
|
1046
|
+
constructor(message: string);
|
|
1047
|
+
}
|
|
1048
|
+
/**
|
|
1049
|
+
* A planner turn ended on the planner's usage limit (#84). Nothing of it
|
|
1050
|
+
* lands: the transcript keeps the failure instead, out of the planner's own
|
|
1051
|
+
* dialogue, and the turn's inputs wait to be sent again — at `resendAt`, or
|
|
1052
|
+
* with the next input when it is null.
|
|
1053
|
+
*/
|
|
1054
|
+
declare class PlannerUsageLimitError extends PlannerTurnFailedError {
|
|
1055
|
+
readonly resendAt: Date | null;
|
|
1056
|
+
/** Why nothing is sent again on its own, when nothing is. */
|
|
1057
|
+
readonly held?: string;
|
|
1058
|
+
constructor(limit: PlannerLimit);
|
|
1059
|
+
}
|
|
1006
1060
|
/**
|
|
1007
1061
|
* The user stopped the turn and the backend reported that as a thrown error
|
|
1008
1062
|
* rather than a settled reply. Typed so a surface can stay quiet for it without
|
|
@@ -1039,6 +1093,8 @@ interface TranscriptSnapshot {
|
|
|
1039
1093
|
readonly researchLog: ResearchLogEntry[] | undefined;
|
|
1040
1094
|
readonly persisted: number;
|
|
1041
1095
|
readonly savedInBackground: number;
|
|
1096
|
+
/** What the planner had been told of the user's runners when the turn began. */
|
|
1097
|
+
readonly toldScope: AssignmentScope | null;
|
|
1042
1098
|
}
|
|
1043
1099
|
interface ReplyOptions {
|
|
1044
1100
|
signal?: AbortSignal;
|
|
@@ -1079,6 +1135,8 @@ declare class PlannerConversation {
|
|
|
1079
1135
|
private savedInBackground;
|
|
1080
1136
|
/** What the planner was last told of autorun: by its opening prompt, or a turn's block since. */
|
|
1081
1137
|
private toldAutorun;
|
|
1138
|
+
/** The runners and allowlist the planner was last told of: its opening prompt, or a turn's block since. Null until a conversation opens. */
|
|
1139
|
+
private toldScope;
|
|
1082
1140
|
private live;
|
|
1083
1141
|
private openTurn;
|
|
1084
1142
|
constructor(host: PlannerConversationHost);
|
|
@@ -1250,6 +1308,19 @@ declare class PlannerConversation {
|
|
|
1250
1308
|
* (ADR-0029).
|
|
1251
1309
|
*/
|
|
1252
1310
|
private assertWakeUpAnswered;
|
|
1311
|
+
/**
|
|
1312
|
+
* A turn that ended on the planner's usage limit lands nothing. What it
|
|
1313
|
+
* wrote is taken back, its failure is kept in its place, and the limit's
|
|
1314
|
+
* wait is armed in the same save. Only a turn Ordewell started gets here,
|
|
1315
|
+
* so a limit is never acted on for a planner nobody asked anything of.
|
|
1316
|
+
*/
|
|
1317
|
+
private assertNotLimited;
|
|
1318
|
+
/**
|
|
1319
|
+
* A failure kept in the transcript, drawn as one on reload too, and never
|
|
1320
|
+
* replayed to the planner. Stamped after the newest entry: surfaces take
|
|
1321
|
+
* only entries newer than the last they synced.
|
|
1322
|
+
*/
|
|
1323
|
+
private recordFailure;
|
|
1253
1324
|
private assertIdle;
|
|
1254
1325
|
/**
|
|
1255
1326
|
* Refuse to land a turn that no longer belongs here: it was abandoned, its
|
|
@@ -1349,6 +1420,16 @@ declare class PlannerConversation {
|
|
|
1349
1420
|
* conversation reaches its next turn without repeating in every one.
|
|
1350
1421
|
*/
|
|
1351
1422
|
private autorunBlock;
|
|
1423
|
+
/**
|
|
1424
|
+
* The user's runner or allowlist change, when the planner was not told yet —
|
|
1425
|
+
* the same once-per-change rule as autorun, for API and harness planners
|
|
1426
|
+
* alike. Tasks the change leaves outside the scope are named, not touched.
|
|
1427
|
+
*
|
|
1428
|
+
* A reloaded session is not told: {@link resume} takes the scope as it is
|
|
1429
|
+
* then, as it does the autorun rule, since the catalog the first turn carries
|
|
1430
|
+
* and `list_runners` already show the runners as they are now.
|
|
1431
|
+
*/
|
|
1432
|
+
private runnersChangedBlock;
|
|
1352
1433
|
private runUpdatesBlock;
|
|
1353
1434
|
/**
|
|
1354
1435
|
* The catalog the planner may actually draw from — model ids and task-mode
|
|
@@ -2157,6 +2238,35 @@ interface Adr0013PlanIsolation {
|
|
|
2157
2238
|
*/
|
|
2158
2239
|
declare function migratePlanIsolation(state: PlanIsolation | Adr0013PlanIsolation): PlanIsolation;
|
|
2159
2240
|
|
|
2241
|
+
/** The part of a run's handoff a Merge confirmation is worded from; structural, so each surface passes the handoff it holds. */
|
|
2242
|
+
interface MergeWordingHandoff {
|
|
2243
|
+
repos: readonly {
|
|
2244
|
+
path: string;
|
|
2245
|
+
baseBranch?: string;
|
|
2246
|
+
landed: readonly unknown[];
|
|
2247
|
+
}[];
|
|
2248
|
+
}
|
|
2249
|
+
/**
|
|
2250
|
+
* Whether the run spans more than a lone repo at the workspace root. A group of
|
|
2251
|
+
* one at `.` is worded and drawn exactly as it was before repo groups; anything
|
|
2252
|
+
* else names its repos.
|
|
2253
|
+
*/
|
|
2254
|
+
declare function isRepoGroup(handoff: {
|
|
2255
|
+
repos: readonly {
|
|
2256
|
+
path: string;
|
|
2257
|
+
}[];
|
|
2258
|
+
}): boolean;
|
|
2259
|
+
/** The repos Merge all will merge: those with work on their integration branch, else all of them. */
|
|
2260
|
+
declare function reposWithWork(handoff: MergeWordingHandoff): string[];
|
|
2261
|
+
/**
|
|
2262
|
+
* What a Merge confirmation says the branch lands on: the branch the run
|
|
2263
|
+
* started on, which Merge all insists is checked out. A repo that started
|
|
2264
|
+
* detached has none, and keeps the old wording.
|
|
2265
|
+
*/
|
|
2266
|
+
declare function mergeTarget(handoff: MergeWordingHandoff): string;
|
|
2267
|
+
/** The refusal Merge all makes when a repo is on another branch, for a confirmation to warn of; empty when no repo named a branch. */
|
|
2268
|
+
declare function checkoutRule(handoff: MergeWordingHandoff): string;
|
|
2269
|
+
|
|
2160
2270
|
interface ILogger {
|
|
2161
2271
|
warn(scope: string, message: string, err?: unknown): void;
|
|
2162
2272
|
}
|
|
@@ -2285,8 +2395,12 @@ declare class GeminiService extends BaseAiService implements IAiService {
|
|
|
2285
2395
|
private genAI;
|
|
2286
2396
|
private genAIKey;
|
|
2287
2397
|
private model;
|
|
2398
|
+
/** The id `model` was made for; the SDK's own `model.model` is its `models/…` resource path. */
|
|
2399
|
+
private modelId;
|
|
2288
2400
|
constructor(config: IConfig);
|
|
2289
2401
|
private init;
|
|
2402
|
+
/** The planner model picked for this session, as the API names it. */
|
|
2403
|
+
private plannerModel;
|
|
2290
2404
|
private getPlanningModel;
|
|
2291
2405
|
ensureInit(): void;
|
|
2292
2406
|
reset(): void;
|
|
@@ -2441,13 +2555,15 @@ declare class ModelResolver {
|
|
|
2441
2555
|
getCachedRunnerModels(runner: string): DiscoveredModel[];
|
|
2442
2556
|
getCachedPickerOptions(): OrchestratorOption[];
|
|
2443
2557
|
/**
|
|
2444
|
-
*
|
|
2445
|
-
*
|
|
2446
|
-
*
|
|
2447
|
-
*
|
|
2448
|
-
*
|
|
2558
|
+
* A model's context window from whatever catalog is already cached (#49),
|
|
2559
|
+
* for a usage record whose reporter stated none: a vendor's model from the
|
|
2560
|
+
* picker catalog (its own `/models` endpoint), a runner's model from that
|
|
2561
|
+
* runner's own discovered listing. `source` is the record's reporter, and
|
|
2562
|
+
* `model` the id it named. Reads only — never triggers a fetch or discovery
|
|
2563
|
+
* of its own, so an unknown window stays unknown and context fill is
|
|
2564
|
+
* omitted rather than guessed.
|
|
2449
2565
|
*/
|
|
2450
|
-
contextWindowFor(
|
|
2566
|
+
contextWindowFor(source: string, model: string): number | undefined;
|
|
2451
2567
|
invalidate(): void;
|
|
2452
2568
|
}
|
|
2453
2569
|
|
|
@@ -2462,9 +2578,17 @@ declare class RunnerInstallation {
|
|
|
2462
2578
|
private inflight;
|
|
2463
2579
|
private registry;
|
|
2464
2580
|
private execImpl;
|
|
2465
|
-
|
|
2581
|
+
private now;
|
|
2582
|
+
constructor(registry: RunnerRegistry, execImpl?: ExecImpl, now?: () => number);
|
|
2466
2583
|
/** True if the runner's CLI responds to `--version`. Cached per process. */
|
|
2467
2584
|
isInstalled(runner: string): Promise<boolean>;
|
|
2585
|
+
/**
|
|
2586
|
+
* Forget cached "not installed" verdicts so the next probe re-runs them. A
|
|
2587
|
+
* runner-list refresh calls this, so a CLI installed while the host runs is
|
|
2588
|
+
* offered without a restart. An installed verdict stays: it cannot have
|
|
2589
|
+
* changed without the binary going away, and re-probing one costs a spawn.
|
|
2590
|
+
*/
|
|
2591
|
+
refresh(): void;
|
|
2468
2592
|
/**
|
|
2469
2593
|
* Whether this runner can serve as a harness planner (ADR-0009, T9), and why
|
|
2470
2594
|
* not when it cannot. Surfaces call this to grey out an unusable agent in the
|
|
@@ -2522,7 +2646,8 @@ declare function recordedInstalledPlanner(): PlannerBackendId | null;
|
|
|
2522
2646
|
* latest probe found installed, so a Codex-only or OpenCode-only host can plan
|
|
2523
2647
|
* and run on its first start; DEFAULT_RUNNERS while none was found or no probe
|
|
2524
2648
|
* has answered. Read on each call and never saved, so an agent installed later
|
|
2525
|
-
* joins on the next probe
|
|
2649
|
+
* joins on the next probe — a runner-list refresh asks again — and a saved
|
|
2650
|
+
* choice, even an empty one, still wins.
|
|
2526
2651
|
* Every host's config reads it here, so the daemon, CLI, TUI and VS Code agree.
|
|
2527
2652
|
*/
|
|
2528
2653
|
declare function defaultEnabledRunners(): RunnerId[];
|
|
@@ -2813,9 +2938,9 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2813
2938
|
/** The model answering the planner's current message, as its `message_start` named it. */
|
|
2814
2939
|
private plannerModel;
|
|
2815
2940
|
/**
|
|
2816
|
-
* The session's `total_cost_usd` as last
|
|
2817
|
-
*
|
|
2818
|
-
*
|
|
2941
|
+
* The session's `total_cost_usd` as last counted. A resume starts from what
|
|
2942
|
+
* was counted of that session before, and is undefined without it: the CLI
|
|
2943
|
+
* restores the session's running total, which holds turns counted earlier.
|
|
2819
2944
|
*/
|
|
2820
2945
|
private reportedCostUsd;
|
|
2821
2946
|
private reportedModelCostUsd;
|
|
@@ -2856,7 +2981,23 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2856
2981
|
private terminalOnly;
|
|
2857
2982
|
/** Whether this process's `runner_loaded` went out: its first `init` sends it. */
|
|
2858
2983
|
private loadedReported;
|
|
2984
|
+
/** The models `initialize` listed, which turn the ids the CLI reports back into the ones a plan holds. */
|
|
2985
|
+
private listedModels;
|
|
2986
|
+
/** The id the task's main thread last reported answering on. */
|
|
2987
|
+
private mainModel;
|
|
2988
|
+
/** What the plan should say the task runs: its spawn's model, then each switch followed. */
|
|
2989
|
+
private followedModel;
|
|
2990
|
+
/**
|
|
2991
|
+
* Model commands sent through the chat whose switch has not been seen yet,
|
|
2992
|
+
* oldest first, each with the turns still to end before its own has. Several
|
|
2993
|
+
* can be pending: a command's switch is first reported by the next turn's
|
|
2994
|
+
* `init`, which can be another `/model`'s.
|
|
2995
|
+
*/
|
|
2996
|
+
private modelCommands;
|
|
2859
2997
|
protected spawnSpec(opts: AgentStartOptions, workspace: Record<string, string>): SpawnSpec;
|
|
2998
|
+
sessionCost(): RunnerSessionCost | null;
|
|
2999
|
+
/** A count kept for another session says nothing of this one's. */
|
|
3000
|
+
private countFrom;
|
|
2860
3001
|
savedOutput(abs: string): boolean;
|
|
2861
3002
|
/**
|
|
2862
3003
|
* A task's run: the manifest decides what its mode and effort mean
|
|
@@ -2928,6 +3069,12 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2928
3069
|
dispose(): void;
|
|
2929
3070
|
private clearFollowOnTimer;
|
|
2930
3071
|
protected turnPayload(message: string): string;
|
|
3072
|
+
/**
|
|
3073
|
+
* The CLI runs a message that starts with a slash command as that command,
|
|
3074
|
+
* whether the surface sent it as one or as plain text, so the message
|
|
3075
|
+
* itself says a model switch was asked for: every way into the chat counts.
|
|
3076
|
+
*/
|
|
3077
|
+
private noteModelCommand;
|
|
2931
3078
|
private openTurnState;
|
|
2932
3079
|
/**
|
|
2933
3080
|
* The echo of a steered message: the model has it. After a closed turn it
|
|
@@ -2936,6 +3083,29 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2936
3083
|
*/
|
|
2937
3084
|
private steerDelivered;
|
|
2938
3085
|
protected handleLine(line: string, emit: (event: AgentEvent) => void): void;
|
|
3086
|
+
/**
|
|
3087
|
+
* A task's main thread reported the model it answers on. A change is the
|
|
3088
|
+
* user's own switch when a model command went out before it: Ordewell never
|
|
3089
|
+
* passes `--fallback-model`, so nothing else should move it. A change with
|
|
3090
|
+
* no command before it is reported as drift, and the plan does not follow
|
|
3091
|
+
* it. A command whose turn ended with the model unchanged switched nothing,
|
|
3092
|
+
* and is let go.
|
|
3093
|
+
*
|
|
3094
|
+
* Effort is never reported (recorded on 2.1.302, `task-effort-command`):
|
|
3095
|
+
* `init` names the model alone, its `per_turn_effort_active` says effort is
|
|
3096
|
+
* on, not which; `/effort low` only prints that it set it; and `/model`
|
|
3097
|
+
* takes no effort (`/model haiku high` is "not found"). So a switch carries
|
|
3098
|
+
* no effort and the plan's stays as planned.
|
|
3099
|
+
*/
|
|
3100
|
+
private followModel;
|
|
3101
|
+
/** Whether the model value `asked` runs as the id `resolved`, by what `initialize` lists. */
|
|
3102
|
+
private runsAs;
|
|
3103
|
+
/**
|
|
3104
|
+
* The value `initialize` lists for the id a model runs as. Several can share
|
|
3105
|
+
* one (`sonnet`, `default`); the one asked for wins, and `default` only as a
|
|
3106
|
+
* last resort, since it names whatever the CLI's default becomes.
|
|
3107
|
+
*/
|
|
3108
|
+
private listedModel;
|
|
2939
3109
|
/**
|
|
2940
3110
|
* `--permission-mode auto` on a model or account without auto mode is not
|
|
2941
3111
|
* refused: the CLI says nothing and starts in `default`, then asks about every
|
|
@@ -2975,7 +3145,8 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2975
3145
|
* What only the result line knows: the cost, which covers every call the
|
|
2976
3146
|
* session made — subagents included, since none of their lines carries one —
|
|
2977
3147
|
* and the planner model's window. `total_cost_usd` is a running total, so a
|
|
2978
|
-
* turn reports its growth.
|
|
3148
|
+
* turn reports its growth. After a resume it grows from what was counted of
|
|
3149
|
+
* the session before; with no count kept, the first turn only sets the
|
|
2979
3150
|
* baseline: its total includes turns counted before, and a turn's own share
|
|
2980
3151
|
* cannot be told apart from them.
|
|
2981
3152
|
*/
|
|
@@ -3014,6 +3185,11 @@ declare class CodexAdapter extends StdioAgentAdapter implements TaskModeAgentAda
|
|
|
3014
3185
|
private turn;
|
|
3015
3186
|
/** The last turn this adapter ended — so its second end signal, landing late, ends nothing. */
|
|
3016
3187
|
private endedTurnId;
|
|
3188
|
+
/**
|
|
3189
|
+
* The account's limit windows as Codex last reported them. Only read when a
|
|
3190
|
+
* turn fails on the usage limit; an update on its own acts on nothing.
|
|
3191
|
+
*/
|
|
3192
|
+
private rateLimits;
|
|
3017
3193
|
/** An interrupt was asked for during this turn, so however it ends, it was cut short. */
|
|
3018
3194
|
private interruptRequested;
|
|
3019
3195
|
/**
|
|
@@ -3107,6 +3283,7 @@ declare class CodexAdapter extends StdioAgentAdapter implements TaskModeAgentAda
|
|
|
3107
3283
|
/** `turn/start`'s answer. One for a turn that has since closed or been replaced names and closes nothing. */
|
|
3108
3284
|
private turnAnswered;
|
|
3109
3285
|
protected handleLine(line: string, emit: (event: AgentEvent) => void): void;
|
|
3286
|
+
private turnFailed;
|
|
3110
3287
|
private turnStarted;
|
|
3111
3288
|
/**
|
|
3112
3289
|
* Ahead of the event that ends the turn: a steer Codex accepted and the turn
|
|
@@ -3482,6 +3659,8 @@ interface SessionCatalogDeps {
|
|
|
3482
3659
|
};
|
|
3483
3660
|
/** The runners of the plan being edited; empty while the session has none. */
|
|
3484
3661
|
planRunners: () => RunnerId[];
|
|
3662
|
+
/** Whether a task's runner is up: an attempt claimed, running, quiet or waiting on someone. */
|
|
3663
|
+
liveRunner?: (taskId: string) => boolean;
|
|
3485
3664
|
}
|
|
3486
3665
|
/**
|
|
3487
3666
|
* What a session may assign: the enabled runners, their modes, the models
|
|
@@ -3505,6 +3684,8 @@ declare class SessionCatalog {
|
|
|
3505
3684
|
* has since cleared.
|
|
3506
3685
|
*/
|
|
3507
3686
|
allowlist(): Record<string, string[]>;
|
|
3687
|
+
/** The enabled runners and allowlist together, for whoever compares an assignment with them. */
|
|
3688
|
+
scope(): AssignmentScope;
|
|
3508
3689
|
/** The models the user allows on one runner; unset means no restriction. */
|
|
3509
3690
|
allowlistFor(runner: RunnerId): string[] | undefined;
|
|
3510
3691
|
/**
|
|
@@ -3535,6 +3716,12 @@ declare class SessionCatalog {
|
|
|
3535
3716
|
* asked for.
|
|
3536
3717
|
*/
|
|
3537
3718
|
live(): Promise<TaskQueryCatalog>;
|
|
3719
|
+
/**
|
|
3720
|
+
* What {@link live} answers, from what is cached and without discovering:
|
|
3721
|
+
* the enabled runners, however the plan was started. The per-turn block
|
|
3722
|
+
* reads this, so it can never offer a different set than `list_runners`.
|
|
3723
|
+
*/
|
|
3724
|
+
current(): TaskQueryCatalog;
|
|
3538
3725
|
queryCatalog(runners: RunnerId[]): TaskQueryCatalog;
|
|
3539
3726
|
/**
|
|
3540
3727
|
* The catalog a model/task-mode edit is checked against — the same
|
|
@@ -3560,6 +3747,13 @@ declare class SessionCatalog {
|
|
|
3560
3747
|
}>;
|
|
3561
3748
|
}
|
|
3562
3749
|
|
|
3750
|
+
/**
|
|
3751
|
+
* A model's context window from a catalog Ordewell already holds — a runner's
|
|
3752
|
+
* own model listing or a provider's own models endpoint, never a table kept in
|
|
3753
|
+
* Ordewell. `source` is the record's reporter: a runner id or a vendor id.
|
|
3754
|
+
*/
|
|
3755
|
+
type CatalogWindow = (source: string, model: string) => number | undefined;
|
|
3756
|
+
|
|
3563
3757
|
/** The `planner_usage` member of the session broadcast union. */
|
|
3564
3758
|
type PlannerUsageMessage = Extract<SessionMessage, {
|
|
3565
3759
|
type: 'planner_usage';
|
|
@@ -3574,7 +3768,11 @@ type PlannerUsageMessage = Extract<SessionMessage, {
|
|
|
3574
3768
|
* defined — this module just holds the state and the broadcast shape.
|
|
3575
3769
|
*/
|
|
3576
3770
|
declare class PlannerUsageLedger {
|
|
3771
|
+
private readonly catalogWindow;
|
|
3577
3772
|
private usage;
|
|
3773
|
+
private windows;
|
|
3774
|
+
/** `catalogWindow` serves the window of a planner model whose backend reports none. */
|
|
3775
|
+
constructor(catalogWindow?: CatalogWindow);
|
|
3578
3776
|
/** Fold one model call's record into the totals; returns the running ledger. */
|
|
3579
3777
|
record(record: UsageRecord): PlannerUsage;
|
|
3580
3778
|
/** Adopt a persisted ledger (a reopened session) or start from zero. */
|
|
@@ -3612,9 +3810,10 @@ interface SessionEventRelayDeps {
|
|
|
3612
3810
|
* observers. A wait on a usage limit, and a task gone idle, reach surfaces as
|
|
3613
3811
|
* the task's status; `onUsageLimitWait` and `onTaskIdle` themselves are for
|
|
3614
3812
|
* the supervisor to wake on. The end-of-run handoff is marked by supervision
|
|
3615
|
-
* and remembered for a surface joining late, so Session announces it too.
|
|
3813
|
+
* and remembered for a surface joining late, so Session announces it too. A
|
|
3814
|
+
* model switch is a plan edit, which Session's editor announces as one.
|
|
3616
3815
|
*/
|
|
3617
|
-
type RelayObserver = Required<Omit<OrchestratorObserver, 'onTaskSettled' | 'onRunStarted' | 'onAutoMerge' | 'onUsageLimitWait' | 'onTaskIdle' | 'onIsolationHandoff'>>;
|
|
3816
|
+
type RelayObserver = Required<Omit<OrchestratorObserver, 'onTaskSettled' | 'onRunStarted' | 'onAutoMerge' | 'onUsageLimitWait' | 'onModelSwitched' | 'onTaskIdle' | 'onIsolationHandoff'>>;
|
|
3618
3817
|
/**
|
|
3619
3818
|
* Turns orchestrator and planner events into {@link SessionMessage}
|
|
3620
3819
|
* broadcasts — the one place a surface's view of a Session is produced. It
|
|
@@ -3698,11 +3897,12 @@ interface TaskLogFile {
|
|
|
3698
3897
|
/** The attempts a task has a log for, oldest first. */
|
|
3699
3898
|
declare function listTaskLogAttempts(location: TaskLogLocation, taskId: string): number[];
|
|
3700
3899
|
/**
|
|
3701
|
-
* Start
|
|
3702
|
-
*
|
|
3703
|
-
*
|
|
3900
|
+
* Start an attempt's file, under the attempt's own number so its log and its
|
|
3901
|
+
* usage ledger name the same attempt. Without one, or when that file already
|
|
3902
|
+
* exists, it takes the next number after what is on disk: nothing saved is
|
|
3903
|
+
* ever overwritten.
|
|
3704
3904
|
*/
|
|
3705
|
-
declare function openTaskLog(location: TaskLogLocation, taskId: string): TaskLogFile;
|
|
3905
|
+
declare function openTaskLog(location: TaskLogLocation, taskId: string, attempt?: number): TaskLogFile;
|
|
3706
3906
|
/**
|
|
3707
3907
|
* One attempt's events, in order; empty when it has no log. A line that does
|
|
3708
3908
|
* not parse is skipped — the last one, most likely, cut off by a crash
|
|
@@ -3710,6 +3910,42 @@ declare function openTaskLog(location: TaskLogLocation, taskId: string): TaskLog
|
|
|
3710
3910
|
*/
|
|
3711
3911
|
declare function readTaskLog(location: TaskLogLocation, taskId: string, attempt: number): TaskLogEvent[];
|
|
3712
3912
|
|
|
3913
|
+
interface TaskLogRecorderDeps {
|
|
3914
|
+
broadcast: SessionBroadcaster;
|
|
3915
|
+
/** Where the session's logs go, read as each attempt starts: a session's id can change between plans. */
|
|
3916
|
+
location: () => TaskLogLocation;
|
|
3917
|
+
/** Opens an attempt's file, under the attempt's number when the spawn named one; tests pass one that never touches the disk. */
|
|
3918
|
+
open?: (location: TaskLogLocation, taskId: string, attempt?: number) => TaskLogFile;
|
|
3919
|
+
flushMs?: number;
|
|
3920
|
+
logger?: ILogger;
|
|
3921
|
+
}
|
|
3922
|
+
/**
|
|
3923
|
+
* Keeps each structured task's log (ADR-0018, P1): every event of an attempt
|
|
3924
|
+
* is appended to that attempt's file and broadcast as `task_log`, in the same
|
|
3925
|
+
* batches, so what a surface saw live and what it reloads are one sequence.
|
|
3926
|
+
*
|
|
3927
|
+
* It sits around the runner rather than inside the orchestrator, which stays
|
|
3928
|
+
* unaware of logs.
|
|
3929
|
+
*/
|
|
3930
|
+
declare class TaskLogRecorder {
|
|
3931
|
+
private readonly deps;
|
|
3932
|
+
private readonly open;
|
|
3933
|
+
private readonly flushMs;
|
|
3934
|
+
private readonly logger;
|
|
3935
|
+
/** Each task's latest attempt, by the session it records: its log takes a {@link note} until the next attempt starts. */
|
|
3936
|
+
private readonly latest;
|
|
3937
|
+
constructor(deps: TaskLogRecorderDeps);
|
|
3938
|
+
wrap(runner: IRunner): IRunner;
|
|
3939
|
+
/**
|
|
3940
|
+
* An entry the session did not emit, written into the log of the attempt
|
|
3941
|
+
* that runs `sessionId` and sent at once: what Ordewell made of one of its
|
|
3942
|
+
* events once that settled. Dropped once the task's next attempt started.
|
|
3943
|
+
*/
|
|
3944
|
+
note(sessionId: string, taskId: string, entry: TaskLogEvent): void;
|
|
3945
|
+
/** Start a new attempt's log for `session`, opening with the skills it was given, and keep it until the session exits. */
|
|
3946
|
+
record(taskId: string, session: IRunnerSession, skills?: readonly TaskSkillSnapshot[], attemptNumber?: number): void;
|
|
3947
|
+
}
|
|
3948
|
+
|
|
3713
3949
|
/**
|
|
3714
3950
|
* Options for plan generation. Progress is not overridable: every planner
|
|
3715
3951
|
* progress event is translated to a SessionMessage inside the Session and
|
|
@@ -3794,7 +4030,7 @@ interface SessionDeps {
|
|
|
3794
4030
|
/** Persistence seam. Defaults to the saved-session store under the workspace. */
|
|
3795
4031
|
saveSession?: SaveSession;
|
|
3796
4032
|
/** Where a structured task's log is saved (ADR-0018, P1). Defaults to a file per attempt beside the session's. */
|
|
3797
|
-
openTaskLog?: (location: TaskLogLocation, taskId: string) => TaskLogFile;
|
|
4033
|
+
openTaskLog?: (location: TaskLogLocation, taskId: string, attempt?: number) => TaskLogFile;
|
|
3798
4034
|
/** The Ordewell MCP server a harness planner's tools are served from (ADR-0022). Defaults to the process's one. */
|
|
3799
4035
|
mcpServer?: OrdewellMcpServer;
|
|
3800
4036
|
}
|
|
@@ -3826,6 +4062,8 @@ interface SessionParts {
|
|
|
3826
4062
|
usage: PlannerUsageLedger;
|
|
3827
4063
|
approvals: PendingApprovals;
|
|
3828
4064
|
approvalPolicy: ApprovalPolicy;
|
|
4065
|
+
/** Where the Session writes what it made of a task's event into that attempt's log. */
|
|
4066
|
+
taskLogs: Pick<TaskLogRecorder, 'note'>;
|
|
3829
4067
|
fetcher: IWebFetcher;
|
|
3830
4068
|
skillsService: Pick<SkillsService, 'findSkill' | 'listSkills' | 'searchedDirs' | 'forRoot'>;
|
|
3831
4069
|
saveSession: SaveSession;
|
|
@@ -3873,6 +4111,7 @@ declare class Session {
|
|
|
3873
4111
|
private readonly fsAdapter;
|
|
3874
4112
|
private readonly approvals;
|
|
3875
4113
|
private readonly approvalPolicy;
|
|
4114
|
+
private readonly taskLogs;
|
|
3876
4115
|
private readonly fetcher;
|
|
3877
4116
|
private readonly settingsFn;
|
|
3878
4117
|
private readonly save;
|
|
@@ -4072,6 +4311,8 @@ declare class Session {
|
|
|
4072
4311
|
* boundary rewrites `in_progress` to `pending` — nothing is running when a
|
|
4073
4312
|
* session comes off a file — so a surface that re-reads the plan mid-run must
|
|
4074
4313
|
* come here instead, or every task it is watching reads as never started.
|
|
4314
|
+
* An archived snapshot carries the task as it is now: a retry or continue
|
|
4315
|
+
* keeps the archive while the live task runs on and spends more.
|
|
4075
4316
|
*/
|
|
4076
4317
|
get currentPlanState(): PlanState | null;
|
|
4077
4318
|
get currentGoal(): string;
|
|
@@ -4248,8 +4489,16 @@ declare class Session {
|
|
|
4248
4489
|
executePlan(): Promise<void>;
|
|
4249
4490
|
private idlePlan;
|
|
4250
4491
|
private runWholePlan;
|
|
4492
|
+
/**
|
|
4493
|
+
* Execute while a run is under way (#95): the seam has approved every task,
|
|
4494
|
+
* as executing does, and the run takes them in. A run the scheduler was not
|
|
4495
|
+
* driving, one task started on its own, becomes the plan's run, as Execute
|
|
4496
|
+
* would make it.
|
|
4497
|
+
*/
|
|
4498
|
+
private joinRun;
|
|
4251
4499
|
approveReview(): Promise<LegacyPlanState>;
|
|
4252
|
-
|
|
4500
|
+
/** Answers the line saying the task waits for its dependencies, when it was queued behind them rather than started. */
|
|
4501
|
+
forceStartTask(taskId: string): Promise<string | undefined>;
|
|
4253
4502
|
private startOneTask;
|
|
4254
4503
|
runTask(taskId: string): Promise<void>;
|
|
4255
4504
|
/**
|
|
@@ -4274,8 +4523,22 @@ declare class Session {
|
|
|
4274
4523
|
markTaskIncomplete(taskId: string): Promise<void>;
|
|
4275
4524
|
/** Resume a task paused on a usage limit now, once the user says it has reset; see {@link TaskOrchestrator.resumeNow}. */
|
|
4276
4525
|
resumeNow(taskId: string): Promise<void>;
|
|
4526
|
+
/**
|
|
4527
|
+
* Keep what waits on the planner's usage limit from being sent at the reset:
|
|
4528
|
+
* it goes with the user's next message instead. False when nothing waits on
|
|
4529
|
+
* a reset.
|
|
4530
|
+
*/
|
|
4531
|
+
cancelPlannerResend(): boolean;
|
|
4277
4532
|
/** Keep a task paused on a usage limit from resuming on its own; see {@link TaskOrchestrator.cancelScheduledResume}. */
|
|
4278
4533
|
cancelScheduledResume(taskId: string): boolean;
|
|
4534
|
+
/**
|
|
4535
|
+
* The plan follows a model switch the user made in the runner (#106), and
|
|
4536
|
+
* the task's log says what the plan holds once that settled: a write-back
|
|
4537
|
+
* not made — no model command asked for the change, or the edit failed — is
|
|
4538
|
+
* stated, never shown as made. Once the switch's attempt has ended, the plan
|
|
4539
|
+
* may be another one, so nothing of it is said.
|
|
4540
|
+
*/
|
|
4541
|
+
private followRunnerModel;
|
|
4279
4542
|
/** Said through both channels: a host shows one or the other, never both (the daemon's toasts are no-ops). */
|
|
4280
4543
|
private notice;
|
|
4281
4544
|
approveCheckpoint(taskId: string): void;
|
|
@@ -4575,6 +4838,10 @@ interface ErrorBody {
|
|
|
4575
4838
|
interface OkResponse {
|
|
4576
4839
|
ok: boolean;
|
|
4577
4840
|
}
|
|
4841
|
+
/** A task start's answer: `queued` says why it did not start now, when the task waits for its dependencies instead. */
|
|
4842
|
+
interface TaskStartResponse extends OkResponse {
|
|
4843
|
+
queued?: string;
|
|
4844
|
+
}
|
|
4578
4845
|
/**
|
|
4579
4846
|
* A plan as the planner routes return it: the session's plan state, not the
|
|
4580
4847
|
* `SerializedPlan` a websocket `plan_generated` carries. The two differ —
|
|
@@ -5006,6 +5273,7 @@ declare class StructuredSession extends AbstractRunnerSession {
|
|
|
5006
5273
|
private messageCount;
|
|
5007
5274
|
private interrupting;
|
|
5008
5275
|
private lastSessionId;
|
|
5276
|
+
private lastSessionCost;
|
|
5009
5277
|
private readonly structuredEmitter;
|
|
5010
5278
|
private permissionCount;
|
|
5011
5279
|
/**
|
|
@@ -5080,6 +5348,7 @@ declare class StructuredSession extends AbstractRunnerSession {
|
|
|
5080
5348
|
removeQueued(id: string): boolean;
|
|
5081
5349
|
queued(): QueuedTaskMessage[];
|
|
5082
5350
|
nativeSessionId(): string | null;
|
|
5351
|
+
sessionCost(): RunnerSessionCost | null;
|
|
5083
5352
|
answerPermission(id: string, decision: ApprovalDecision): boolean;
|
|
5084
5353
|
/** Every open request goes unanswered once the process that asked is gone. */
|
|
5085
5354
|
private withdrawPermissions;
|
|
@@ -5164,34 +5433,6 @@ type Continuability = {
|
|
|
5164
5433
|
declare function continuability(task: Task): Continuability;
|
|
5165
5434
|
declare function canContinue(task: Task): boolean;
|
|
5166
5435
|
|
|
5167
|
-
interface TaskLogRecorderDeps {
|
|
5168
|
-
broadcast: SessionBroadcaster;
|
|
5169
|
-
/** Where the session's logs go, read as each attempt starts: a session's id can change between plans. */
|
|
5170
|
-
location: () => TaskLogLocation;
|
|
5171
|
-
/** Opens an attempt's file; tests pass one that never touches the disk. */
|
|
5172
|
-
open?: (location: TaskLogLocation, taskId: string) => TaskLogFile;
|
|
5173
|
-
flushMs?: number;
|
|
5174
|
-
logger?: ILogger;
|
|
5175
|
-
}
|
|
5176
|
-
/**
|
|
5177
|
-
* Keeps each structured task's log (ADR-0018, P1): every event of an attempt
|
|
5178
|
-
* is appended to that attempt's file and broadcast as `task_log`, in the same
|
|
5179
|
-
* batches, so what a surface saw live and what it reloads are one sequence.
|
|
5180
|
-
*
|
|
5181
|
-
* It sits around the runner rather than inside the orchestrator, which stays
|
|
5182
|
-
* unaware of logs.
|
|
5183
|
-
*/
|
|
5184
|
-
declare class TaskLogRecorder {
|
|
5185
|
-
private readonly deps;
|
|
5186
|
-
private readonly open;
|
|
5187
|
-
private readonly flushMs;
|
|
5188
|
-
private readonly logger;
|
|
5189
|
-
constructor(deps: TaskLogRecorderDeps);
|
|
5190
|
-
wrap(runner: IRunner): IRunner;
|
|
5191
|
-
/** Start a new attempt's log for `session`, opening with the skills it was given, and keep it until the session exits. */
|
|
5192
|
-
record(taskId: string, session: IRunnerSession, skills?: readonly TaskSkillSnapshot[]): void;
|
|
5193
|
-
}
|
|
5194
|
-
|
|
5195
5436
|
declare function stripAnsi(text: string): string;
|
|
5196
5437
|
|
|
5197
5438
|
/**
|
|
@@ -5607,4 +5848,4 @@ declare const DEFAULT_MAX_PARALLEL = 5;
|
|
|
5607
5848
|
*/
|
|
5608
5849
|
declare function parseMaxParallel(value: unknown): number | null;
|
|
5609
5850
|
|
|
5610
|
-
export { ALL_PROVIDERS, AbstractRunner, AbstractRunnerSession, type AdoptSessionResponse, type Adr0013IsolationRun, type Adr0013PlanIsolation, type Adr0013TaskRecord, AgentAdapter, AgentEvent, AgentProcessDeps, AgentStartOptions, AiProvider, AlreadyExecutingError, ApplyTaskOpsResult, ApprovalAnswer, type ApprovalAnswerResponse, ApprovalDecision, ApprovalModeSetting, ApprovalPolicy, ApprovalRequest, type ApprovalRequestMessage, type ApprovalsResponse, type AskOptions, BaseAiService, BaseConfig, BaseFileSystem, BufferedTaskOutputSource, type ByPlannerBackend, CHAT_COMMANDS, CLAUDE_CODE_MANIFEST, CLI_PROVIDERS, CMD_EXE_MAX_COMMAND_LINE, CODEX_SANDBOX_DOCS, CODEX_SANDBOX_OFF_LINE, type CachedPage, type CancelPlanningResponse, type CancelResumeResponse, type CappedRows, CheckpointAnswer, type CheckpointListener, ClaudeCodeAdapter, CliAgentAiService, type CliAgentAiServiceDeps, CodexAdapter, CodexSandboxAvailability, type CommandDescriptor, CommandLineTooLongError, type CommandOutcome, type CommandsResponse, type ConfiguredPlanner, type Consent, ConsoleLogger, ContextCollector, type Continuability, ConversationBusyError, type ConversationCompactResponse, type ConversationCompaction, ConversationEditError, type ConversationFork, type ConversationForkResponse, ConversationMessage, type ConversationRequest, type ConversationRewind, type ConversationRewindResponse, type ConversationTurn, DAEMON_SUBPROTOCOL, DAEMON_TOKEN_SUBPROTOCOL_PREFIX, DEFAULT_MAX_PARALLEL, DEFAULT_WEB_READ_BUDGET, type DaemonErrorCode, type DecideOptions, type DirEntry, DiscoveredModel, DuckDuckGoSearchProvider, EmbeddedNewlineError, type EnvAdmission, EnvConfig, type ErrorBody, type ExecImpl, ExecutableNotFoundError, type ExecuteResponse, ExecutionActor, type ExecutionCommand, ExecutionCommandName, ExecutionCommands, type ExecutionHost, ExecutionRecord, FindSymbolOptions, type ForceSendResponse, GREP_PCRE_PROBE_ARGS, GeminiService, type GeneratePlanResponse, type GitExecFn, GlobOptions, GlobalRunSettings, type GrepInvocation, GrepOptions, type GrepRegex, GuardTarget, GuardTrip, HARNESS_PLANNER_REASON, HEADLESS_CLI_COMMANDS, type HasBinFn, HttpWebFetcher, type HttpWebFetcherOptions, type IAiService, IApproval, IConfig, IFileSystem, type ILogger, INotification, IRunner, IRunnerSession, type ISearchProvider, IWorktreeIsolation, type IsolationDiffResponse, IsolationLandedTask, type IsolationMergeResponse, IsolationMergeResult, IsolationTaskStatus, IsolationView, type KillTreeDeps, type LaunchDeps, type LaunchPlan, LegacyPlanState, type LiveOutputLookup, LiveTail, LiveTailOptions, type LoopGuard, type MappedTool, type MergeGateEntry, type MergeGateResponse, ModelResolver, type ModelResolverDeps, type ModelsResponse, NoPlanError, OPENCODE_MANIFEST, ORDEWELL_SETTABLE_ENV, OUTPUT_LINES_DEFAULT, OUTPUT_LINES_MAX, type OkResponse, OpenAiService, OpenCodeAdapter, OrchestratorObserver, OrchestratorOption, OrdewellMcpServer, PROVIDER_CREDENTIAL_ENV, PROVIDER_DETECT_PRIORITY, PROVIDER_LABEL, PROVIDER_PRIORITY, PROVIDER_SHORT_LABEL, type PendingApproval, PendingApprovals, type PendingApprovalsOptions, PlanEditError, PlanIsolation, type PlanRequest, type PlanResponse, PlanState, PlanStatus, PlanStore, Planner, type PlannerBackendEntry, PlannerBackendId, type PlannerChoice, type PlannerCommandSyntax, type PlannerModelCandidate, type PlannerModelChoice, type PlannerModelLookup, PlannerModelMemory, type PlannerModelRecall, type PlannerModelSource, type PlannerModelStore, type PlannerNotReady, PlannerNotReadyError, type PlannerReadinessConfig, type PlannerSelectionChange, type PlannerSelectionCurrent, type PlannerSelectionResult, type PlannerSelectionState, type PlannerSubmission, PlannerToolHandler, PlannerTurnDiscardedError, PlannerTurnStoppedError, type PlannerUsability, PlannerUsage, type PrdBlock, type PrdResponse, ProviderModelLists, type ProviderRegistration, QueuedTaskMessage, ReadFileOpts, type RemoveMessageResponse, type ResearchChat, ResearchLogEntry, ResearchShell, type ResearchTurn, type ResolveConflictResponse, type ResolvedChoice, type ResolvedPlanner, type RewindTarget, type RewindTargetsResponse, RunMergeView, type RunSnapshotFrame, RunView, RunnerApprovals, RunnerCommand, RunnerId, RunnerInstallation, RunnerManifest, RunnerModeInfo, RunnerRegistry, type RunnerSpawnOptions, type RunnersResponse, SETTINGS_ENV_ALLOWLIST, SETTINGS_ENV_REFUSED, STATE_DIR, STATE_DIR_IGNORE, STOPPED_TOOL_RESULT, SUPERVISOR_LEVELS, SYMBOL_LANGUAGES, type SaveSession, type SearchHit, type SearchOutcome, type SearchPage, type SearchTransport, Session, SessionBroadcaster, type SessionData, type SessionDeps, type SessionFrame, type SessionListResponse, SessionMessage, type SessionMeta, SessionNotFoundError, SessionNotice, type SessionPlanner, type SessionResponse, type SessionRuntimeSettings, type SettingsResponse, type SettingsUpdateResponse, SkillInfo, type SkillInvocation, SkillLoad, SkillsService, type SpawnSpec, StartAdmission, StdioAgentAdapter, type StopResponse, type StreamStamp, StructuredEvent, StructuredRunner, type StructuredRunnerDeps, StructuredSession, StructuredTurnEnd, SupervisorLevel, type SupervisorPolicy, SurfacePlan, SurfacePlanState, TASK_QUERY_ANSWER_MAX_CHARS, TASK_QUERY_ANSWER_OR_OPS, TASK_QUERY_FIELDS, TASK_QUERY_PROTOCOL, TASK_QUERY_REMINDER, TERMINAL_UI_COMMANDS, Task, TaskCompleteArgs, type TaskLogAttemptsResponse, TaskLogEvent, type TaskLogFile, type TaskLogLocation, TaskLogRecorder, type TaskLogRecorderDeps, type TaskLogResponse, TaskMessageFrom, type TaskMessageResponse, TaskModeAgentAdapter, TaskOp, TaskOrchestrator, TaskOutputSource, type TaskQuery, type TaskQueryCatalog, type TaskQueryField, TaskRunnerFlags, TaskStartOptions, TaskTokenScope, type TokenCarriers, type ToolCall, ToolOutcome, type ToolResult, UsageRecord, UserSettings, VerdictEngine, type VerdictListener, WINDOWS_MAX_COMMAND_LINE, type WebRead, type WebReadDecision, type WebResponse, WebResponseCache, type WebResponseCacheOptions, type WebTransport, type WorkspaceCheckDeps, WorkspaceNotAProjectError, WorkspaceNotFoundError, type WorkspaceProjectCheckDeps, type WorkspacesResponse, type WorktreeIsolationDeps, abbreviateHome, admitSettingsEnv, applyHeadLimit, assertWorkspaceExists, assertWorkspaceIsProject, augmentedPath, bearerHeaderValue, buildFallbackGrepArgs, buildGlobArgs, buildGrepArgs, canContinue, clearAugmentedPathCache, clearDaemonToken, clearState, clipboardCopyCommand, codexSandboxNotice, configuredProviders, continuability, createAiService, createSession, createTaskAdapter, createWorktreeIsolation, daemonTokenPath, defaultEnabledRunners, defaultLogger, definitionPattern, deleteSession, describeMergeResult, describePlannerNotReady, detectInstalledPlanner, discoverGeminiModels, ensureDir, ensurePrivateDir, ensureStateDirIgnored, extractPrdBlock, extractPresentedToken, filterFallbackByAnchoredInclude, findInstalledPlanner, formatSearchOutput, getLatestSession, getProviderMeta, getStateDir, globalDataDir, grantScopeFor, grepRegexFromProbe, idSegment, includeGlobFor, installedPlannerAnswered, installedPlannerDetected, isApiProvider, isCliProvider, isExecutableResolved, isOpenAiProvider, isPlannerBackend, isVendorModelFor, killTree, languageForId, listSessions, listTaskLogAttempts, listTree, loadSession, loadSessionPlanState, loadState, looksLikeChallenge, mapAgentTool, migrateOldConfigDir, migratePlanIsolation, mintDaemonToken, mintSessionId, normalizeAgentArgs, normalizeGeminiModel, openTaskLog, parseMaxParallel, parseSearchHits, parseTaskQueryJson, planDirectLaunch, plannerBackendEntries, plannerMessage, plannerNotReady, plannerNotReadyFor, plannerTranscript, prefixModelId, providerForRunner, readDaemonToken, readTaskLog, recordInstalledPlanner, recordedInstalledPlanner, referencePattern, removedPluginNotice, renderTaskQueryAnswer, resetInstalledPlanner, resolveProviderFromPrefix, resolveSkillInvocation, resolveTaskRunnerFlags, resolveWithin, runnerForProvider, sanitizeSlug, savePrdMarkdown, saveSession, saveState, selectPlanner, sessionDataDir, sessionRuntimeSettings, sharedSearchProvider, sharedWebResponseCache, stateExists, stripAnsi, stripModelPrefix, supportsTaskMode, taskQuerySignature, textHasTaskQuery, tokenSubprotocols, tokensMatch, wellKnownBinDirs, windowsCommandLine, withPath, writePrivateFile };
|
|
5851
|
+
export { ALL_PROVIDERS, AbstractRunner, AbstractRunnerSession, type AdoptSessionResponse, type Adr0013IsolationRun, type Adr0013PlanIsolation, type Adr0013TaskRecord, AgentAdapter, AgentEvent, AgentProcessDeps, AgentStartOptions, AiProvider, AlreadyExecutingError, ApplyTaskOpsResult, ApprovalAnswer, type ApprovalAnswerResponse, ApprovalDecision, ApprovalModeSetting, ApprovalPolicy, ApprovalRequest, type ApprovalRequestMessage, type ApprovalsResponse, type AskOptions, AssignmentScope, BaseAiService, BaseConfig, BaseFileSystem, BufferedTaskOutputSource, type ByPlannerBackend, CHAT_COMMANDS, CLAUDE_CODE_MANIFEST, CLI_PROVIDERS, CMD_EXE_MAX_COMMAND_LINE, CODEX_SANDBOX_DOCS, CODEX_SANDBOX_OFF_LINE, type CachedPage, type CancelPlanningResponse, type CancelResumeResponse, type CappedRows, CheckpointAnswer, type CheckpointListener, ClaudeCodeAdapter, CliAgentAiService, type CliAgentAiServiceDeps, CodexAdapter, CodexSandboxAvailability, type CommandDescriptor, CommandLineTooLongError, type CommandOutcome, type CommandsResponse, type ConfiguredPlanner, type Consent, ConsoleLogger, ContextCollector, type Continuability, ConversationBusyError, type ConversationCompactResponse, type ConversationCompaction, ConversationEditError, type ConversationFork, type ConversationForkResponse, ConversationMessage, type ConversationRequest, type ConversationRewind, type ConversationRewindResponse, type ConversationTurn, DAEMON_SUBPROTOCOL, DAEMON_TOKEN_SUBPROTOCOL_PREFIX, DEFAULT_MAX_PARALLEL, DEFAULT_WEB_READ_BUDGET, type DaemonErrorCode, type DecideOptions, type DirEntry, DiscoveredModel, DuckDuckGoSearchProvider, EmbeddedNewlineError, type EnvAdmission, EnvConfig, type ErrorBody, type ExecImpl, ExecutableNotFoundError, type ExecuteResponse, ExecutionActor, type ExecutionCommand, ExecutionCommandName, ExecutionCommands, type ExecutionHost, ExecutionRecord, FindSymbolOptions, type ForceSendResponse, GREP_PCRE_PROBE_ARGS, GeminiService, type GeneratePlanResponse, type GitExecFn, GlobOptions, GlobalRunSettings, type GrepInvocation, GrepOptions, type GrepRegex, GuardTarget, GuardTrip, HARNESS_PLANNER_REASON, HEADLESS_CLI_COMMANDS, type HasBinFn, HttpWebFetcher, type HttpWebFetcherOptions, type IAiService, IApproval, IConfig, IFileSystem, type ILogger, INotification, IRunner, IRunnerSession, type ISearchProvider, IWorktreeIsolation, type IsolationDiffResponse, IsolationLandedTask, type IsolationMergeResponse, IsolationMergeResult, IsolationTaskStatus, IsolationView, type KillTreeDeps, type LaunchDeps, type LaunchPlan, LegacyPlanState, type LiveOutputLookup, LiveTail, LiveTailOptions, type LoopGuard, type MappedTool, type MergeGateEntry, type MergeGateResponse, type MergeWordingHandoff, ModelResolver, type ModelResolverDeps, type ModelsResponse, NoPlanError, OPENCODE_MANIFEST, ORDEWELL_SETTABLE_ENV, OUTPUT_LINES_DEFAULT, OUTPUT_LINES_MAX, type OkResponse, OpenAiService, OpenCodeAdapter, OrchestratorObserver, OrchestratorOption, OrdewellMcpServer, PROVIDER_CREDENTIAL_ENV, PROVIDER_DETECT_PRIORITY, PROVIDER_LABEL, PROVIDER_PRIORITY, PROVIDER_SHORT_LABEL, type PendingApproval, PendingApprovals, type PendingApprovalsOptions, PlanEditError, PlanIsolation, type PlanRequest, type PlanResponse, PlanState, PlanStatus, PlanStore, Planner, type PlannerBackendEntry, PlannerBackendId, type PlannerChoice, type PlannerCommandSyntax, type PlannerModelCandidate, type PlannerModelChoice, type PlannerModelLookup, PlannerModelMemory, type PlannerModelRecall, type PlannerModelSource, type PlannerModelStore, type PlannerNotReady, PlannerNotReadyError, type PlannerReadinessConfig, type PlannerSelectionChange, type PlannerSelectionCurrent, type PlannerSelectionResult, type PlannerSelectionState, type PlannerSubmission, PlannerToolHandler, PlannerTurnDiscardedError, PlannerTurnStoppedError, type PlannerUsability, PlannerUsage, PlannerUsageLimitError, type PrdBlock, type PrdResponse, ProviderModelLists, type ProviderRegistration, QueuedTaskMessage, ReadFileOpts, type RemoveMessageResponse, type ResearchChat, ResearchLogEntry, ResearchShell, type ResearchTurn, type ResolveConflictResponse, type ResolvedChoice, type ResolvedPlanner, type RewindTarget, type RewindTargetsResponse, RunMergeView, type RunSnapshotFrame, RunView, RunnerApprovals, RunnerCommand, RunnerId, RunnerInstallation, RunnerManifest, RunnerModeInfo, RunnerRegistry, RunnerSessionCost, type RunnerSpawnOptions, type RunnersResponse, SETTINGS_ENV_ALLOWLIST, SETTINGS_ENV_REFUSED, STATE_DIR, STATE_DIR_IGNORE, STOPPED_TOOL_RESULT, SUPERVISOR_LEVELS, SYMBOL_LANGUAGES, type SaveSession, type SearchHit, type SearchOutcome, type SearchPage, type SearchTransport, Session, SessionBroadcaster, type SessionData, type SessionDeps, type SessionFrame, type SessionListResponse, SessionMessage, type SessionMeta, SessionNotFoundError, SessionNotice, type SessionPlanner, type SessionResponse, type SessionRuntimeSettings, type SettingsResponse, type SettingsUpdateResponse, SkillInfo, type SkillInvocation, SkillLoad, SkillsService, type SpawnSpec, StartAdmission, StdioAgentAdapter, type StopResponse, type StreamStamp, StructuredEvent, StructuredRunner, type StructuredRunnerDeps, StructuredSession, StructuredTurnEnd, SupervisorLevel, type SupervisorPolicy, SurfacePlan, SurfacePlanState, TASK_QUERY_ANSWER_MAX_CHARS, TASK_QUERY_ANSWER_OR_OPS, TASK_QUERY_FIELDS, TASK_QUERY_PROTOCOL, TASK_QUERY_REMINDER, TERMINAL_UI_COMMANDS, Task, TaskCompleteArgs, type TaskLogAttemptsResponse, TaskLogEvent, type TaskLogFile, type TaskLogLocation, TaskLogRecorder, type TaskLogRecorderDeps, type TaskLogResponse, TaskMessageFrom, type TaskMessageResponse, TaskModeAgentAdapter, TaskOp, TaskOrchestrator, TaskOutputSource, type TaskQuery, type TaskQueryCatalog, type TaskQueryField, TaskRunnerFlags, TaskStartOptions, type TaskStartResponse, TaskTokenScope, type TokenCarriers, type ToolCall, ToolOutcome, type ToolResult, UsageRecord, UserSettings, VerdictEngine, type VerdictListener, WINDOWS_MAX_COMMAND_LINE, type WebRead, type WebReadDecision, type WebResponse, WebResponseCache, type WebResponseCacheOptions, type WebTransport, type WorkspaceCheckDeps, WorkspaceNotAProjectError, WorkspaceNotFoundError, type WorkspaceProjectCheckDeps, type WorkspacesResponse, type WorktreeIsolationDeps, abbreviateHome, admitSettingsEnv, applyHeadLimit, assertWorkspaceExists, assertWorkspaceIsProject, augmentedPath, bearerHeaderValue, buildFallbackGrepArgs, buildGlobArgs, buildGrepArgs, canContinue, checkoutRule, clearAugmentedPathCache, clearDaemonToken, clearState, clipboardCopyCommand, codexSandboxNotice, configuredProviders, continuability, createAiService, createSession, createTaskAdapter, createWorktreeIsolation, daemonTokenPath, defaultEnabledRunners, defaultLogger, definitionPattern, deleteSession, describeMergeResult, describePlannerNotReady, detectInstalledPlanner, discoverGeminiModels, ensureDir, ensurePrivateDir, ensureStateDirIgnored, extractPrdBlock, extractPresentedToken, filterFallbackByAnchoredInclude, findInstalledPlanner, formatSearchOutput, getLatestSession, getProviderMeta, getStateDir, globalDataDir, grantScopeFor, grepRegexFromProbe, idSegment, includeGlobFor, installedPlannerAnswered, installedPlannerDetected, isApiProvider, isCliProvider, isExecutableResolved, isOpenAiProvider, isPlannerBackend, isRepoGroup, isVendorModelFor, killTree, languageForId, listSessions, listTaskLogAttempts, listTree, loadSession, loadSessionPlanState, loadState, looksLikeChallenge, mapAgentTool, mergeTarget, migrateOldConfigDir, migratePlanIsolation, mintDaemonToken, mintSessionId, normalizeAgentArgs, normalizeGeminiModel, openTaskLog, parseMaxParallel, parseSearchHits, parseTaskQueryJson, planDirectLaunch, plannerBackendEntries, plannerMessage, plannerNotReady, plannerNotReadyFor, plannerTranscript, prefixModelId, providerForRunner, readDaemonToken, readTaskLog, recordInstalledPlanner, recordedInstalledPlanner, referencePattern, removedPluginNotice, renderTaskQueryAnswer, reposWithWork, resetInstalledPlanner, resolveProviderFromPrefix, resolveSkillInvocation, resolveTaskRunnerFlags, resolveWithin, runnerForProvider, sanitizeSlug, savePrdMarkdown, saveSession, saveState, selectPlanner, sessionDataDir, sessionRuntimeSettings, sharedSearchProvider, sharedWebResponseCache, stateExists, stripAnsi, stripModelPrefix, supportsTaskMode, taskQuerySignature, textHasTaskQuery, tokenSubprotocols, tokensMatch, wellKnownBinDirs, windowsCommandLine, withPath, writePrivateFile };
|