@ordewell/core 0.10.4 → 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-_effm8-b.d.ts → IFileSystem-ClBdp59f.d.ts} +1 -1
- package/dist/{IFileSystem-vyqMdL-x.d.mts → IFileSystem-Db34maxC.d.mts} +1 -1
- package/dist/{IRunner-D_UkkMbJ.d.ts → IRunner-Crkt3tHD.d.ts} +64 -3
- package/dist/{IRunner-NtTHQgLR.d.mts → IRunner-lMQIa5Wc.d.mts} +64 -3
- package/dist/{ModeResolver-wnTFsDnF.d.mts → ModeResolver-B4hhABNf.d.mts} +1 -1
- package/dist/{ModeResolver-Dy3Ef6p-.d.ts → ModeResolver-CUR5jCSU.d.ts} +1 -1
- package/dist/{Task-DZs9eKgg.d.mts → Task-D4QHjdGv.d.mts} +92 -10
- package/dist/{Task-DZs9eKgg.d.ts → Task-D4QHjdGv.d.ts} +92 -10
- 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 +296 -64
- package/dist/index.d.ts +296 -64
- package/dist/index.js +1576 -376
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1455 -362
- 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-POIz5d8z.d.ts → plan-utils-BVJCzNvm.d.ts} +204 -19
- package/dist/{plan-utils-CtKceSsQ.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.mts
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.mjs';
|
|
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.mjs';
|
|
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-wI8MuDBC.mjs';
|
|
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-wI8MuDBC.mjs';
|
|
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-lMQIa5Wc.mjs';
|
|
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-lMQIa5Wc.mjs';
|
|
7
|
+
import { T as ToolOutcome, I as IFileSystem, R as ReadFileOpts, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-Db34maxC.mjs';
|
|
8
|
+
export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-Db34maxC.mjs';
|
|
9
|
+
import { R as RunnerModeInfo } from './ModeResolver-B4hhABNf.mjs';
|
|
10
|
+
export { a as autonomyLevelLabel, p as parseAutonomyLevel, r as runnerModesFrom } from './ModeResolver-B4hhABNf.mjs';
|
|
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
|
|
|
@@ -2822,9 +2938,9 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2822
2938
|
/** The model answering the planner's current message, as its `message_start` named it. */
|
|
2823
2939
|
private plannerModel;
|
|
2824
2940
|
/**
|
|
2825
|
-
* The session's `total_cost_usd` as last
|
|
2826
|
-
*
|
|
2827
|
-
*
|
|
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.
|
|
2828
2944
|
*/
|
|
2829
2945
|
private reportedCostUsd;
|
|
2830
2946
|
private reportedModelCostUsd;
|
|
@@ -2865,7 +2981,23 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2865
2981
|
private terminalOnly;
|
|
2866
2982
|
/** Whether this process's `runner_loaded` went out: its first `init` sends it. */
|
|
2867
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;
|
|
2868
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;
|
|
2869
3001
|
savedOutput(abs: string): boolean;
|
|
2870
3002
|
/**
|
|
2871
3003
|
* A task's run: the manifest decides what its mode and effort mean
|
|
@@ -2937,6 +3069,12 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2937
3069
|
dispose(): void;
|
|
2938
3070
|
private clearFollowOnTimer;
|
|
2939
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;
|
|
2940
3078
|
private openTurnState;
|
|
2941
3079
|
/**
|
|
2942
3080
|
* The echo of a steered message: the model has it. After a closed turn it
|
|
@@ -2945,6 +3083,29 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2945
3083
|
*/
|
|
2946
3084
|
private steerDelivered;
|
|
2947
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;
|
|
2948
3109
|
/**
|
|
2949
3110
|
* `--permission-mode auto` on a model or account without auto mode is not
|
|
2950
3111
|
* refused: the CLI says nothing and starts in `default`, then asks about every
|
|
@@ -2984,7 +3145,8 @@ declare class ClaudeCodeAdapter extends StdioAgentAdapter implements TaskModeAge
|
|
|
2984
3145
|
* What only the result line knows: the cost, which covers every call the
|
|
2985
3146
|
* session made — subagents included, since none of their lines carries one —
|
|
2986
3147
|
* and the planner model's window. `total_cost_usd` is a running total, so a
|
|
2987
|
-
* 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
|
|
2988
3150
|
* baseline: its total includes turns counted before, and a turn's own share
|
|
2989
3151
|
* cannot be told apart from them.
|
|
2990
3152
|
*/
|
|
@@ -3023,6 +3185,11 @@ declare class CodexAdapter extends StdioAgentAdapter implements TaskModeAgentAda
|
|
|
3023
3185
|
private turn;
|
|
3024
3186
|
/** The last turn this adapter ended — so its second end signal, landing late, ends nothing. */
|
|
3025
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;
|
|
3026
3193
|
/** An interrupt was asked for during this turn, so however it ends, it was cut short. */
|
|
3027
3194
|
private interruptRequested;
|
|
3028
3195
|
/**
|
|
@@ -3116,6 +3283,7 @@ declare class CodexAdapter extends StdioAgentAdapter implements TaskModeAgentAda
|
|
|
3116
3283
|
/** `turn/start`'s answer. One for a turn that has since closed or been replaced names and closes nothing. */
|
|
3117
3284
|
private turnAnswered;
|
|
3118
3285
|
protected handleLine(line: string, emit: (event: AgentEvent) => void): void;
|
|
3286
|
+
private turnFailed;
|
|
3119
3287
|
private turnStarted;
|
|
3120
3288
|
/**
|
|
3121
3289
|
* Ahead of the event that ends the turn: a steer Codex accepted and the turn
|
|
@@ -3491,6 +3659,8 @@ interface SessionCatalogDeps {
|
|
|
3491
3659
|
};
|
|
3492
3660
|
/** The runners of the plan being edited; empty while the session has none. */
|
|
3493
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;
|
|
3494
3664
|
}
|
|
3495
3665
|
/**
|
|
3496
3666
|
* What a session may assign: the enabled runners, their modes, the models
|
|
@@ -3514,6 +3684,8 @@ declare class SessionCatalog {
|
|
|
3514
3684
|
* has since cleared.
|
|
3515
3685
|
*/
|
|
3516
3686
|
allowlist(): Record<string, string[]>;
|
|
3687
|
+
/** The enabled runners and allowlist together, for whoever compares an assignment with them. */
|
|
3688
|
+
scope(): AssignmentScope;
|
|
3517
3689
|
/** The models the user allows on one runner; unset means no restriction. */
|
|
3518
3690
|
allowlistFor(runner: RunnerId): string[] | undefined;
|
|
3519
3691
|
/**
|
|
@@ -3544,6 +3716,12 @@ declare class SessionCatalog {
|
|
|
3544
3716
|
* asked for.
|
|
3545
3717
|
*/
|
|
3546
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;
|
|
3547
3725
|
queryCatalog(runners: RunnerId[]): TaskQueryCatalog;
|
|
3548
3726
|
/**
|
|
3549
3727
|
* The catalog a model/task-mode edit is checked against — the same
|
|
@@ -3569,6 +3747,13 @@ declare class SessionCatalog {
|
|
|
3569
3747
|
}>;
|
|
3570
3748
|
}
|
|
3571
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
|
+
|
|
3572
3757
|
/** The `planner_usage` member of the session broadcast union. */
|
|
3573
3758
|
type PlannerUsageMessage = Extract<SessionMessage, {
|
|
3574
3759
|
type: 'planner_usage';
|
|
@@ -3583,7 +3768,11 @@ type PlannerUsageMessage = Extract<SessionMessage, {
|
|
|
3583
3768
|
* defined — this module just holds the state and the broadcast shape.
|
|
3584
3769
|
*/
|
|
3585
3770
|
declare class PlannerUsageLedger {
|
|
3771
|
+
private readonly catalogWindow;
|
|
3586
3772
|
private usage;
|
|
3773
|
+
private windows;
|
|
3774
|
+
/** `catalogWindow` serves the window of a planner model whose backend reports none. */
|
|
3775
|
+
constructor(catalogWindow?: CatalogWindow);
|
|
3587
3776
|
/** Fold one model call's record into the totals; returns the running ledger. */
|
|
3588
3777
|
record(record: UsageRecord): PlannerUsage;
|
|
3589
3778
|
/** Adopt a persisted ledger (a reopened session) or start from zero. */
|
|
@@ -3621,9 +3810,10 @@ interface SessionEventRelayDeps {
|
|
|
3621
3810
|
* observers. A wait on a usage limit, and a task gone idle, reach surfaces as
|
|
3622
3811
|
* the task's status; `onUsageLimitWait` and `onTaskIdle` themselves are for
|
|
3623
3812
|
* the supervisor to wake on. The end-of-run handoff is marked by supervision
|
|
3624
|
-
* 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.
|
|
3625
3815
|
*/
|
|
3626
|
-
type RelayObserver = Required<Omit<OrchestratorObserver, 'onTaskSettled' | 'onRunStarted' | 'onAutoMerge' | 'onUsageLimitWait' | 'onTaskIdle' | 'onIsolationHandoff'>>;
|
|
3816
|
+
type RelayObserver = Required<Omit<OrchestratorObserver, 'onTaskSettled' | 'onRunStarted' | 'onAutoMerge' | 'onUsageLimitWait' | 'onModelSwitched' | 'onTaskIdle' | 'onIsolationHandoff'>>;
|
|
3627
3817
|
/**
|
|
3628
3818
|
* Turns orchestrator and planner events into {@link SessionMessage}
|
|
3629
3819
|
* broadcasts — the one place a surface's view of a Session is produced. It
|
|
@@ -3707,11 +3897,12 @@ interface TaskLogFile {
|
|
|
3707
3897
|
/** The attempts a task has a log for, oldest first. */
|
|
3708
3898
|
declare function listTaskLogAttempts(location: TaskLogLocation, taskId: string): number[];
|
|
3709
3899
|
/**
|
|
3710
|
-
* Start
|
|
3711
|
-
*
|
|
3712
|
-
*
|
|
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.
|
|
3713
3904
|
*/
|
|
3714
|
-
declare function openTaskLog(location: TaskLogLocation, taskId: string): TaskLogFile;
|
|
3905
|
+
declare function openTaskLog(location: TaskLogLocation, taskId: string, attempt?: number): TaskLogFile;
|
|
3715
3906
|
/**
|
|
3716
3907
|
* One attempt's events, in order; empty when it has no log. A line that does
|
|
3717
3908
|
* not parse is skipped — the last one, most likely, cut off by a crash
|
|
@@ -3719,6 +3910,42 @@ declare function openTaskLog(location: TaskLogLocation, taskId: string): TaskLog
|
|
|
3719
3910
|
*/
|
|
3720
3911
|
declare function readTaskLog(location: TaskLogLocation, taskId: string, attempt: number): TaskLogEvent[];
|
|
3721
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
|
+
|
|
3722
3949
|
/**
|
|
3723
3950
|
* Options for plan generation. Progress is not overridable: every planner
|
|
3724
3951
|
* progress event is translated to a SessionMessage inside the Session and
|
|
@@ -3803,7 +4030,7 @@ interface SessionDeps {
|
|
|
3803
4030
|
/** Persistence seam. Defaults to the saved-session store under the workspace. */
|
|
3804
4031
|
saveSession?: SaveSession;
|
|
3805
4032
|
/** Where a structured task's log is saved (ADR-0018, P1). Defaults to a file per attempt beside the session's. */
|
|
3806
|
-
openTaskLog?: (location: TaskLogLocation, taskId: string) => TaskLogFile;
|
|
4033
|
+
openTaskLog?: (location: TaskLogLocation, taskId: string, attempt?: number) => TaskLogFile;
|
|
3807
4034
|
/** The Ordewell MCP server a harness planner's tools are served from (ADR-0022). Defaults to the process's one. */
|
|
3808
4035
|
mcpServer?: OrdewellMcpServer;
|
|
3809
4036
|
}
|
|
@@ -3835,6 +4062,8 @@ interface SessionParts {
|
|
|
3835
4062
|
usage: PlannerUsageLedger;
|
|
3836
4063
|
approvals: PendingApprovals;
|
|
3837
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'>;
|
|
3838
4067
|
fetcher: IWebFetcher;
|
|
3839
4068
|
skillsService: Pick<SkillsService, 'findSkill' | 'listSkills' | 'searchedDirs' | 'forRoot'>;
|
|
3840
4069
|
saveSession: SaveSession;
|
|
@@ -3882,6 +4111,7 @@ declare class Session {
|
|
|
3882
4111
|
private readonly fsAdapter;
|
|
3883
4112
|
private readonly approvals;
|
|
3884
4113
|
private readonly approvalPolicy;
|
|
4114
|
+
private readonly taskLogs;
|
|
3885
4115
|
private readonly fetcher;
|
|
3886
4116
|
private readonly settingsFn;
|
|
3887
4117
|
private readonly save;
|
|
@@ -4081,6 +4311,8 @@ declare class Session {
|
|
|
4081
4311
|
* boundary rewrites `in_progress` to `pending` — nothing is running when a
|
|
4082
4312
|
* session comes off a file — so a surface that re-reads the plan mid-run must
|
|
4083
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.
|
|
4084
4316
|
*/
|
|
4085
4317
|
get currentPlanState(): PlanState | null;
|
|
4086
4318
|
get currentGoal(): string;
|
|
@@ -4257,8 +4489,16 @@ declare class Session {
|
|
|
4257
4489
|
executePlan(): Promise<void>;
|
|
4258
4490
|
private idlePlan;
|
|
4259
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;
|
|
4260
4499
|
approveReview(): Promise<LegacyPlanState>;
|
|
4261
|
-
|
|
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>;
|
|
4262
4502
|
private startOneTask;
|
|
4263
4503
|
runTask(taskId: string): Promise<void>;
|
|
4264
4504
|
/**
|
|
@@ -4283,8 +4523,22 @@ declare class Session {
|
|
|
4283
4523
|
markTaskIncomplete(taskId: string): Promise<void>;
|
|
4284
4524
|
/** Resume a task paused on a usage limit now, once the user says it has reset; see {@link TaskOrchestrator.resumeNow}. */
|
|
4285
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;
|
|
4286
4532
|
/** Keep a task paused on a usage limit from resuming on its own; see {@link TaskOrchestrator.cancelScheduledResume}. */
|
|
4287
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;
|
|
4288
4542
|
/** Said through both channels: a host shows one or the other, never both (the daemon's toasts are no-ops). */
|
|
4289
4543
|
private notice;
|
|
4290
4544
|
approveCheckpoint(taskId: string): void;
|
|
@@ -4584,6 +4838,10 @@ interface ErrorBody {
|
|
|
4584
4838
|
interface OkResponse {
|
|
4585
4839
|
ok: boolean;
|
|
4586
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
|
+
}
|
|
4587
4845
|
/**
|
|
4588
4846
|
* A plan as the planner routes return it: the session's plan state, not the
|
|
4589
4847
|
* `SerializedPlan` a websocket `plan_generated` carries. The two differ —
|
|
@@ -5015,6 +5273,7 @@ declare class StructuredSession extends AbstractRunnerSession {
|
|
|
5015
5273
|
private messageCount;
|
|
5016
5274
|
private interrupting;
|
|
5017
5275
|
private lastSessionId;
|
|
5276
|
+
private lastSessionCost;
|
|
5018
5277
|
private readonly structuredEmitter;
|
|
5019
5278
|
private permissionCount;
|
|
5020
5279
|
/**
|
|
@@ -5089,6 +5348,7 @@ declare class StructuredSession extends AbstractRunnerSession {
|
|
|
5089
5348
|
removeQueued(id: string): boolean;
|
|
5090
5349
|
queued(): QueuedTaskMessage[];
|
|
5091
5350
|
nativeSessionId(): string | null;
|
|
5351
|
+
sessionCost(): RunnerSessionCost | null;
|
|
5092
5352
|
answerPermission(id: string, decision: ApprovalDecision): boolean;
|
|
5093
5353
|
/** Every open request goes unanswered once the process that asked is gone. */
|
|
5094
5354
|
private withdrawPermissions;
|
|
@@ -5173,34 +5433,6 @@ type Continuability = {
|
|
|
5173
5433
|
declare function continuability(task: Task): Continuability;
|
|
5174
5434
|
declare function canContinue(task: Task): boolean;
|
|
5175
5435
|
|
|
5176
|
-
interface TaskLogRecorderDeps {
|
|
5177
|
-
broadcast: SessionBroadcaster;
|
|
5178
|
-
/** Where the session's logs go, read as each attempt starts: a session's id can change between plans. */
|
|
5179
|
-
location: () => TaskLogLocation;
|
|
5180
|
-
/** Opens an attempt's file; tests pass one that never touches the disk. */
|
|
5181
|
-
open?: (location: TaskLogLocation, taskId: string) => TaskLogFile;
|
|
5182
|
-
flushMs?: number;
|
|
5183
|
-
logger?: ILogger;
|
|
5184
|
-
}
|
|
5185
|
-
/**
|
|
5186
|
-
* Keeps each structured task's log (ADR-0018, P1): every event of an attempt
|
|
5187
|
-
* is appended to that attempt's file and broadcast as `task_log`, in the same
|
|
5188
|
-
* batches, so what a surface saw live and what it reloads are one sequence.
|
|
5189
|
-
*
|
|
5190
|
-
* It sits around the runner rather than inside the orchestrator, which stays
|
|
5191
|
-
* unaware of logs.
|
|
5192
|
-
*/
|
|
5193
|
-
declare class TaskLogRecorder {
|
|
5194
|
-
private readonly deps;
|
|
5195
|
-
private readonly open;
|
|
5196
|
-
private readonly flushMs;
|
|
5197
|
-
private readonly logger;
|
|
5198
|
-
constructor(deps: TaskLogRecorderDeps);
|
|
5199
|
-
wrap(runner: IRunner): IRunner;
|
|
5200
|
-
/** Start a new attempt's log for `session`, opening with the skills it was given, and keep it until the session exits. */
|
|
5201
|
-
record(taskId: string, session: IRunnerSession, skills?: readonly TaskSkillSnapshot[]): void;
|
|
5202
|
-
}
|
|
5203
|
-
|
|
5204
5436
|
declare function stripAnsi(text: string): string;
|
|
5205
5437
|
|
|
5206
5438
|
/**
|
|
@@ -5616,4 +5848,4 @@ declare const DEFAULT_MAX_PARALLEL = 5;
|
|
|
5616
5848
|
*/
|
|
5617
5849
|
declare function parseMaxParallel(value: unknown): number | null;
|
|
5618
5850
|
|
|
5619
|
-
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 };
|