@ordewell/core 0.6.1 → 0.6.2

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/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { aG as RunnerId, ag as PlanStatus, a6 as LegacyPlanState, I as IApproval, k as ApprovalDecision, p as ApprovalRequest, j as ApprovalAnswer, L as ITerminalRunner, J as IConfig, h as AiProvider, as as ProviderModelLists, m as ApprovalMode, X as IsolationMergeResult, T as IsolationLandedTask, N as IWorktreeIsolation, a2 as IsolationTaskStatus, ad as PlanIsolation, aL as RunnerTransport, az as RepoGroupLayout, M as ITerminalSession, w as DiscoveredModel, aU as Task, f as AgentProcessDeps, c as AgentAdapter, aB as ResearchProgress, aA as ResearchLogEntry, u as ConversationMessage, ba as UsageRecord, b1 as TaskSnapshot, r as AwaitingReason, Q as IsolationHandoff, $ as IsolationRun, a0 as IsolationTaskRecord, aV as TaskIsolation, a3 as IsolationView, Y as IsolationOutcome, ay as RepairEvidence, b8 as TreeSnapshot, bh as Verdict, aJ as RunnerRegistry, ax as QueuedTaskMessage, aw as QueuedMessage, b as ActiveTaskSession, ac as OrchestratorOption, aY as TaskModeAgentAdapter, g as AgentStartOptions, e as AgentEvent, aE as ResearchToolType, ai as PlannerUsage, n as ApprovalPolicy, af as PlanState, aH as RunnerInvocation, A as AbstractRunner, a as AbstractTerminalSession, aQ as StructuredSessionCapability, b2 as TaskStartOptions, aR as StructuredTurnEnd, aP as StructuredEvent, aK as RunnerSpawnOptions, K as IPluginStore, aI as RunnerPluginManifest, aF as ResolveContext, b0 as TaskRunnerFlags } from './Task-ib_U0YP7.mjs';
2
2
  export { d as AgentAdapterFactory, i as AllProviderModels, l as ApprovalKind, o as ApprovalPolicyOptions, q as ApprovalSource, B as BlockingPrompt, C as CMD_EXE_MAX_COMMAND_LINE, s as CatalogModel, t as CommandLineTooLongError, D as DENY_ALL, v as DiscoveredMode, x as DiscoveryCommand, E as EmbeddedNewlineError, y as ExecutableNotFoundError, F as FetchAllProviderModelsOptions, H as HeadlessRunner, z as HeadlessRunnerDeps, G as HeadlessSession, O as IntegrationDisposal, P as IsolationAvailability, R as IsolationHandoffRepo, S as IsolationInactiveReason, U as IsolationLanding, V as IsolationMergeBlock, W as IsolationMergeBlockReason, Z as IsolationPruneResult, _ as IsolationRepo, a1 as IsolationTaskRepo, a4 as LaunchDeps, a5 as LaunchPlan, a7 as LineBuffer, a8 as Message, a9 as ModelCatalog, aa as ModelShortcut, ab as ORCHESTRATOR_SHORTCUTS, ae as PlanModificationWarnings, ah as PlannerStartOptions, aj as PluginCloneFn, ak as PluginEntry, al as PluginFeatures, am as PluginMode, an as PluginModelDiscovery, ao as PluginRunnerDef, ap as PreparedLaunch, aq as PreparedTask, ar as ProviderCredentialSource, at as ProviderModelsResult, au as PtySize, av as PtyWrapOptions, aC as ResearchStep, aD as ResearchStepOutcome, aM as StreamEvent, aN as StreamStepEvent, aO as StreamThinkingEvent, aS as SubagentLogEntry, aT as SubagentOutcome, aW as TaskIsolationState, aX as TaskMode, aZ as TaskModeUnsupportedError, a_ as TaskModelAssignment, a$ as TaskOutputSummary, b3 as TaskStatus, b4 as TaskTransport, b5 as TaskType, b6 as TaskWithParent, b7 as ThinkingBlock, b9 as UsageLine, bb as UsageTotals, bc as UserPromptEntry, bd as UserStep, be as ValidationCheck, bf as ValidationContext, bg as ValidationResult, bi as VerificationCheck, bj as WINDOWS_MAX_COMMAND_LINE, bk as addPlannerUsage, bl as addTaskToPlan, bm as addUsage, bn as approvalScopes, bo as buildShellInvocation, bp as collectProviderCredentials, bq as createEmptyPlan, br as createTask, bs as emptyWarnings, bt as enabledRunners, bu as fetchAllProviderModels, bv as flattenTasks, bw as flattenTasksWithParents, bx as isAwaitingReason, by as isExecutableResolved, bz as isGranted, bA as isMeasured, bB as isReservedRunnerName, bC as isRunnerApproval, bD as isRunnerTransport, bE as isStructuredSession, bF as keepExecutionState, bG as knownModelId, bH as migrateLegacyPlan, bI as migratePlanState, bJ as migrateTask, bK as partedPromptUsage, bL as planDirectLaunch, bM as planShellLaunch, bN as plannerContextFill, bO as posixShellQuote, bP as removeTaskFromPlan, bQ as renumberTasks, bR as resolveModelShortcut, bS as resolveProvider, bT as stripAnsi, bU as toApprovalDecision, bV as toOrchestratorOptions, bW as updateTaskInPlan, bX as usageLine, bY as validateModifiedPlan, bZ as warningsText, b_ as windowsCommandLine, b$ as wrapWithPty } from './Task-ib_U0YP7.mjs';
3
- import { u as TaskOp, M as MergeGateView, m as SessionBroadcaster, A as ApplyTaskOpsResult, n as SessionMessage, o as SessionNotice, s as TaskLogEvent } from './plan-utils-D4ioaM8q.mjs';
4
- export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DisplayBlock, E as EMPTY_CONVERSATION, e as EMPTY_HOLD, f as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry, g as MessageBlock, h as MessageRole, N as NO_TURN, O as OutputPreview, P as PlanBlock, i as PlanMarkerStatus, j as PromptHold, S as SerializedPlan, k as SerializedTask, l as SerializedTaskStatus, p as SubagentBlock, q as SubagentChild, r as SubagentStatus, T as TakenPrompt, t as TaskLogView, v as TaskRef, w as ThinkingDisplayBlock, x as ToolBlock, y as ToolHeadline, z as ToolStatus, B as TurnGate, U as UsageBlock, F as aheadOfDraft, H as applyTaskOps, I as canMergeTasks, J as canSetDependencies, K as canSplitTask, Q as capConflictFiles, R as classifyOutcome, V as coalesceTaskLog, W as dependencyCandidates, X as dependentsOf, Y as drainNext, Z as executionSummary, _ as followTurn, $ as fromTranscript, a0 as hasHiddenDetail, a1 as holdPrompt, a2 as outputLines, a3 as outputPreview, a4 as parseTaskOpsJson, a5 as reduceConversation, a6 as reduceTaskLog, a7 as replayTaskLog, a8 as runnerToolSubject, a9 as serializePlan, aa as serializeTask, ab as serializeTaskStatus, ac as stopTurn, ad as summarizeToolCall, ae as taskStartedNotice, af as textHasTaskOps, ag as toTaskLogEvent, ah as toolHeadline, ai as trimToolOutput, aj as truncateCheckpointSummary, ak as unsendAll, al as unsendLatest } from './plan-utils-D4ioaM8q.mjs';
3
+ import { u as TaskOp, M as MergeGateView, m as SessionBroadcaster, A as ApplyTaskOpsResult, n as SessionMessage, o as SessionNotice, s as TaskLogEvent } from './plan-utils-D94CJ7CA.mjs';
4
+ export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DisplayBlock, E as EMPTY_CONVERSATION, e as EMPTY_HOLD, f as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry, g as MessageBlock, h as MessageRole, N as NO_TURN, O as OutputPreview, P as PlanBlock, i as PlanMarkerStatus, j as PromptHold, S as SerializedPlan, k as SerializedTask, l as SerializedTaskStatus, p as SubagentBlock, q as SubagentChild, r as SubagentStatus, T as TakenPrompt, t as TaskLogView, v as TaskRef, w as ThinkingDisplayBlock, x as ToolBlock, y as ToolHeadline, z as ToolStatus, B as TurnGate, U as UsageBlock, F as aheadOfDraft, H as applyTaskOps, I as canMergeTasks, J as canSetDependencies, K as canSplitTask, Q as capConflictFiles, R as classifyOutcome, V as coalesceTaskLog, W as dependencyCandidates, X as dependentsOf, Y as digestTaskLog, Z as drainNext, _ as executionSummary, $ as followTurn, a0 as fromTranscript, a1 as hasHiddenDetail, a2 as holdPrompt, a3 as outputLines, a4 as outputPreview, a5 as parseTaskOpsJson, a6 as reduceConversation, a7 as reduceTaskLog, a8 as replayTaskLog, a9 as runnerToolSubject, aa as serializePlan, ab as serializeTask, ac as serializeTaskStatus, ad as stopTurn, ae as summarizeToolCall, af as taskStartedNotice, ag as textHasTaskOps, ah as toTaskLogEvent, ai as toolHeadline, aj as trimToolOutput, ak as truncateCheckpointSummary, al as unsendAll, am as unsendLatest } from './plan-utils-D94CJ7CA.mjs';
5
5
  import { I as IFileSystem, R as ReadFileOpts, T as ToolOutcome, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-d_SV7jAH.mjs';
6
6
  export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-d_SV7jAH.mjs';
7
7
  import { R as RunnerModeInfo } from './ModeResolver-DIReYAOq.mjs';
@@ -189,6 +189,12 @@ declare const REFUSED_COMMANDS: string[];
189
189
  */
190
190
  interface CommandPolicyOptions {
191
191
  dialect?: ShellDialect;
192
+ /**
193
+ * `CDPATH` is set in the environment the command will run in. A relative
194
+ * `cd` may then land in a directory the command line never names, so `cd`
195
+ * stops being navigation the classifier can follow.
196
+ */
197
+ cdpathSet?: boolean;
192
198
  }
193
199
  type CommandTier = 'auto' | 'ask' | 'refuse';
194
200
  interface CommandClassification {
@@ -265,6 +271,7 @@ declare abstract class BaseFileSystem implements IFileSystem {
265
271
  * containing directory, one entry per distinct scope.
266
272
  */
267
273
  private outsidePaths;
274
+ private policyOptions;
268
275
  /**
269
276
  * Three tiers (see `commandPolicy.ts`): read-only inspection runs silently,
270
277
  * anything else asks once and is remembered, and writes are refused outright
@@ -312,7 +319,8 @@ interface ResolvedPath {
312
319
  abs: string;
313
320
  inside: boolean;
314
321
  }
315
- declare function resolveWithin(root: string, target: string): ResolvedPath;
322
+ /** `from` is where a relative `target` starts; containment is still judged against `root`. */
323
+ declare function resolveWithin(root: string, target: string, from?: string): ResolvedPath;
316
324
  /** The directory a grant covers for `target` — its parent for files, itself for directories. */
317
325
  declare function grantScopeFor(abs: string, kind: 'file' | 'directory'): string;
318
326
 
@@ -469,19 +477,27 @@ interface GrepInvocation {
469
477
  declare function buildGrepArgs(pattern: string, opts: GrepOptions, root: string): GrepInvocation;
470
478
  /** Build the ripgrep invocation that lists files matching a glob. */
471
479
  declare function buildGlobArgs(pattern: string, root: string): string[];
480
+ /**
481
+ * Which regex dialect the machine's `grep` can run: GNU grep has `-P` (PCRE);
482
+ * BSD grep (macOS) rejects it, but its `-E` is the enhanced regex library and
483
+ * reads the same non-capturing groups, `\b`, `\s` and `\d`.
484
+ */
485
+ type GrepRegex = 'pcre' | 'ere';
486
+ /** Run `grep` with these args: it exits 1 ("no match") when `-P` exists and 2 when it does not. */
487
+ declare const GREP_PCRE_PROBE_ARGS: string[];
488
+ declare function grepRegexFromProbe(exitCode: number | null): GrepRegex;
472
489
  /**
473
490
  * The POSIX-grep fallback for machines without ripgrep. Ordering and `--sort`
474
491
  * are unavailable.
475
492
  *
476
- * `-P` (PCRE) is required, not optional: patterns built in core — most
493
+ * A regex mode is required, not optional: patterns built in core — most
477
494
  * notably `find_symbol`'s `definitionPattern` — use non-capturing groups and
478
- * `\b`, which BRE has no syntax for and ERE (`-E`) still cannot express
479
- * ((?:...) is a PCRE construct). Without `-P`, GNU grep either errors
480
- * ("Unmatched \{") or, worse, silently treats `(`/`)`/`|` as literal
481
- * characters and reports a confident empty result. `-P` and `-F` are
482
- * mutually exclusive, so literal mode skips it.
495
+ * `\b`, which BRE has no syntax for. Without `-P` or an enhanced `-E`, grep
496
+ * either errors ("Unmatched \{") or, worse, silently treats `(`/`)`/`|` as
497
+ * literal characters and reports a confident empty result. The regex flags and
498
+ * `-F` are mutually exclusive, so literal mode skips them.
483
499
  */
484
- declare function buildFallbackGrepArgs(pattern: string, opts: GrepOptions, root: string): string[];
500
+ declare function buildFallbackGrepArgs(pattern: string, opts: GrepOptions, root: string, regex?: GrepRegex): string[];
485
501
  /**
486
502
  * GNU grep's own `--include` glob only ever matches a basename, so it silently
487
503
  * matches nothing against an anchored pattern like `subdir/*.txt` (there is no
@@ -1892,6 +1908,8 @@ interface TaskOrchestratorDeps {
1892
1908
  tddEnabled: () => boolean;
1893
1909
  /** Read once as a run opens, never per spawn (ADR-0018, S1). */
1894
1910
  runnerTransport: () => RunnerTransport;
1911
+ /** What the task's last saved attempt did, or null when it left no log (ADR-0020). */
1912
+ previousAttemptFromLog: (taskId: string) => string | null;
1895
1913
  }
1896
1914
  /**
1897
1915
  * What a caller supplies to {@link createTaskOrchestrator}; every optional one
@@ -1910,6 +1928,7 @@ interface TaskOrchestratorOptions {
1910
1928
  workspaceEnv?: (cwd: string) => Promise<WorkspaceEnv>;
1911
1929
  tddEnabled?: () => boolean;
1912
1930
  runnerTransport?: () => RunnerTransport;
1931
+ previousAttemptFromLog?: (taskId: string) => string | null;
1913
1932
  }
1914
1933
  /**
1915
1934
  * The pure scheduler. Owns execution state (`running`, `planStatus`,
@@ -1967,6 +1986,7 @@ declare class TaskOrchestrator {
1967
1986
  private observers;
1968
1987
  private tddEnabled;
1969
1988
  private readRunnerTransport;
1989
+ private previousAttemptFromLog;
1970
1990
  /**
1971
1991
  * The setting as the latest run copied it when it opened. Every spawn of
1972
1992
  * that run uses this, so flipping the setting mid-run changes the next run
@@ -1984,6 +2004,14 @@ declare class TaskOrchestrator {
1984
2004
  static compose(options: TaskOrchestratorOptions): TaskOrchestrator;
1985
2005
  /** Advisory silence timestamp for a task's live runner, or null if not idle. */
1986
2006
  getIdleSince(taskId: string): string | null;
2007
+ /**
2008
+ * What an ops retry is told about the attempt before. The saved log is read
2009
+ * whether or not the session was reloaded, so both behave alike; the terminal
2010
+ * buffer is the fallback for a runner that has no log. A reload clears the
2011
+ * attempt count along with the buffer, so a retry made since is what says
2012
+ * there was an attempt to report on.
2013
+ */
2014
+ private opsPreviousAttempt;
1987
2015
  /** Recent clean output of a task's latest attempt, running or ended; null if it never ran. */
1988
2016
  getLiveOutput(taskId: string, opts: LiveTailOptions): LiveTail | null;
1989
2017
  get storeInstance(): PlanStore;
@@ -3015,6 +3043,8 @@ declare class OpenCodeAdapter implements TaskModeAgentAdapter {
3015
3043
  private interruptRequested;
3016
3044
  /** A task's requests waiting for an answer, by request id, with the session that asked. */
3017
3045
  private readonly openPermissions;
3046
+ /** Set once the server turns out to speak the 2.x API, which then owns the session. */
3047
+ private v2;
3018
3048
  constructor(deps: AgentProcessDeps);
3019
3049
  start(opts: AgentStartOptions): Promise<void>;
3020
3050
  send(message: string, onEvent: (event: AgentEvent) => void, signal?: AbortSignal, onActivity?: () => void): Promise<void>;
@@ -3055,6 +3085,12 @@ declare class OpenCodeAdapter implements TaskModeAgentAdapter {
3055
3085
  interrupt(timeoutMs: number): Promise<boolean>;
3056
3086
  onProcessExit(listener: (code: number) => void): void;
3057
3087
  answerPermission(id: string, decision: ApprovalDecision): boolean;
3088
+ /**
3089
+ * OpenCode 2.x replaced the 1.x HTTP surface rather than extending it, and
3090
+ * only 2.x answers `/api/info` with its version. A 1.x server — or one that
3091
+ * answers with anything else — keeps the 1.x protocol this class speaks.
3092
+ */
3093
+ private speaksV2;
3058
3094
  private role;
3059
3095
  /**
3060
3096
  * Turn one settled assistant message into events. The settled response is
@@ -3657,13 +3693,6 @@ interface SessionRuntimeSettings {
3657
3693
  /** Read once as a run starts, never per spawn (ADR-0018, S1). Absent means terminal. */
3658
3694
  runnerTransport?: RunnerTransport;
3659
3695
  }
3660
- /**
3661
- * The whole of what a host reads off disk for a Session. Both hosts used to
3662
- * assemble this by hand, mapping each toggle's settings key to its runtime key
3663
- * in two blocks nothing kept in step — which is how one toggle came to be
3664
- * dropped. `MODE_TOGGLES` holds the mapping now; this adds the one field that
3665
- * is not a toggle.
3666
- */
3667
3696
  declare function sessionRuntimeSettings(settings: UserSettings): SessionRuntimeSettings;
3668
3697
  /**
3669
3698
  * Resolve `/skill-name` invocations to their skill's markdown content. Pure
@@ -4261,6 +4290,12 @@ declare class VerdictEngine {
4261
4290
  private idleSince;
4262
4291
  /** Tasks waiting on the user, whose silence is expected rather than a sign of a stuck runner. */
4263
4292
  private idlePaused;
4293
+ /**
4294
+ * Open tool approvals per structured task. They arrive mid-turn and leave the
4295
+ * status alone (ADR-0018, W1), but a task waiting on one is waiting on the
4296
+ * user, so it is not idle either.
4297
+ */
4298
+ private openApprovals;
4264
4299
  onVerdict(listener: VerdictListener): void;
4265
4300
  onCheckpoint(listener: CheckpointListener): void;
4266
4301
  onIdleChange(listener: IdleListener): void;
@@ -4293,6 +4328,8 @@ declare class VerdictEngine {
4293
4328
  * when the marker was never observed.
4294
4329
  */
4295
4330
  watch(task: Task, session: ITerminalSession): void;
4331
+ private approvalOpened;
4332
+ private approvalClosed;
4296
4333
  /** Scan only the new text plus the unmatched carry, so a long run stays linear. */
4297
4334
  private scanCheckpoints;
4298
4335
  private bumpGeneration;
@@ -5403,4 +5440,4 @@ declare const DEFAULT_MAX_PARALLEL = 3;
5403
5440
  */
5404
5441
  declare function parseMaxParallel(value: unknown): number | null;
5405
5442
 
5406
- export { ALLOWED_PLUGIN_HOSTS, ALL_PROVIDERS, AUTO_COMMANDS, AbstractRunner, AbstractTerminalSession, ActiveTaskSession, type Adr0013IsolationRun, type Adr0013PlanIsolation, type Adr0013TaskRecord, AgentAdapter, AgentEvent, AgentProcessDeps, AgentStartOptions, AiProvider, ApplyTaskOpsResult, ApprovalAnswer, ApprovalDecision, ApprovalMode, ApprovalPolicy, ApprovalRequest, type AskOptions, AwaitingReason, BUILTIN_SKILL_NAMES, BaseAiService, BaseConfig, BaseFileSystem, BufferedTaskOutputSource, CLAUDE_CODE_MANIFEST, CLI_PROVIDERS, CORE_PLANNER_PROMPT, type CappedRows, type CheckpointListener, ClaudeCodeAdapter, CliAgentAiService, type CliAgentAiServiceDeps, CodexAdapter, type CommandClassification, type CommandTier, type ComposeOptions, ConsoleLogger, ContextCollector, type Continuability, ConversationBusyError, type ConversationCompaction, ConversationEditError, type ConversationFork, ConversationMessage, type ConversationRequest, type ConversationRewind, type ConversationTurn, type ConversationVariant, DAEMON_SUBPROTOCOL, DAEMON_TOKEN_SUBPROTOCOL_PREFIX, DEFAULT_MAX_PARALLEL, DiscoveredModel, type EnvAdmission, EnvConfig, type ExecFileFn, type ExecImpl, FindSymbolOptions, FsPluginStore, GIT_READONLY_SUBCOMMANDS, GeminiService, type GitExecFn, GlobOptions, type GrepInvocation, GrepOptions, type HasBinFn, HomeTranscriptReader, type IAiService, IApproval, IConfig, IFileSystem, type ILogger, type INotification, IPluginStore, ITerminalRunner, ITerminalSession, IWorktreeIsolation, IsolationHandoff, IsolationLandedTask, IsolationMergeResult, IsolationOutcome, IsolationRun, IsolationTaskRecord, IsolationTaskStatus, IsolationView, JSON_REPAIR_INSTRUCTION, type KillTreeDeps, LegacyPlanState, type LiveOutputLookup, type LiveTail, type LiveTailOptions, type MappedTool, MergeGateView, ModelResolver, type ModelResolverDeps, type ModifyPlanRequest, type NotificationAction, OPENCODE_MANIFEST, ORDEWELL_SETTABLE_ENV, OUTPUT_LINES_DEFAULT, OUTPUT_LINES_MAX, OpenAiService, OpenCodeAdapter, type OrchestratorObserver, OrchestratorOption, PLUGIN_NAME_PATTERN, PROVIDER_CREDENTIAL_ENV, PROVIDER_DETECT_PRIORITY, PROVIDER_LABEL, PROVIDER_PRIORITY, PROVIDER_SHORT_LABEL, type PendingApproval, PendingApprovals, type PendingApprovalsOptions, PlanEditError, PlanIsolation, PlanParseError, type PlanRequest, PlanState, PlanStatus, PlanStore, Planner, type PlannerModelCandidate, type PlannerModelChoice, PlannerModelMemory, type PlannerModelRecall, type PlannerModelStore, type PlannerReplyClassification, type PlannerRuntimeToggles, PlannerUsage, type PluginSource, type PrdBlock, type PriorOutput, type ProbeFn, ProviderModelLists, type ProviderRegistration, QueuedMessage, QueuedTaskMessage, REFUSED_COMMANDS, ReadFileOpts, RepairEvidence, type RepairLoopOpts, type RepairVerdict, RepoGroupLayout, type ResearchChat, ResearchLogEntry, ResearchProgress, type ResearchShell, type ResearchShellDeps, ResearchToolType, type ResearchTurn, ResolveContext, type RewindTarget, RunnerApprovals, type RunnerCatalog, RunnerId, RunnerInstallation, RunnerInvocation, type RunnerMode, RunnerModeInfo, RunnerPluginManifest, RunnerRegistry, RunnerSpawnOptions, RunnerTransport, SETTINGS_ENV_ALLOWLIST, SETTINGS_ENV_REFUSED, STATE_DIR, STOPPED_TOOL_RESULT, SYMBOL_LANGUAGES, type SaveSession, Session, SessionBroadcaster, type SessionData, type SessionDeps, SessionMessage, type SessionMeta, SessionNotice, type SessionPlanner, type SessionRuntimeSettings, SettingsService, type ShellDialect, type SkillInfo, type SkillMetadata, SkillsService, type SpawnSpec, StdioAgentAdapter, StructuredEvent, StructuredRunner, type StructuredRunnerDeps, StructuredSession, StructuredSessionCapability, StructuredTurnEnd, TASK_QUERY_ANSWER_MAX_CHARS, TASK_QUERY_ANSWER_OR_OPS, TASK_QUERY_FIELDS, TASK_QUERY_PROTOCOL, TASK_QUERY_REMINDER, TRUNCATED_PLAN_REPAIR_INSTRUCTION, Task, type TaskAttemptSnapshot, TaskControlError, TaskIsolation, TaskLogEvent, type TaskLogFile, type TaskLogLocation, TaskLogRecorder, type TaskLogRecorderDeps, TaskModeAgentAdapter, TaskOp, TaskOrchestrator, type TaskOrchestratorDeps, type TaskOrchestratorOptions, type TaskOutputAttempt, type TaskOutputSource, type TaskQuery, type TaskQueryCatalog, type TaskQueryField, TaskRunnerFlags, TaskSnapshot, TaskStartOptions, TmuxRunner, type TmuxRunnerDeps, type TokenCarriers, type ToolCall, ToolOutcome, type ToolResult, type TranscriptQuery, type TranscriptReader, type TransportRoute, TransportRouter, TreeSnapshot, UsageRecord, type UserSettings, Verdict, VerdictEngine, type VerdictListener, type WorkspaceCheckDeps, WorkspaceNotAProjectError, WorkspaceNotFoundError, type WorkspaceProjectCheckDeps, type WorktreeIsolationDeps, admitSettingsEnv, applyHeadLimit, assertInstallablePluginUrl, assertPlainPluginName, assertWorkspaceExists, assertWorkspaceIsProject, augmentPromptWithPriorOutputs, augmentedPath, bearerHeaderValue, buildConflictRepairPrompt, buildConflictResolutionPrompt, buildConversationSystemPrompt, buildFallbackGrepArgs, buildGlobArgs, buildGrepArgs, buildMergePrompt, buildModifyDuringExecutionPrompt, buildModifyPlanPrompt, buildPlanWithResults, buildResearchPrompt, buildResearchToolsPrompt, buildRunnerInvocation, buildSplitPrompt, buildSubagentSystemPrompt, canContinue, clampThinkingEffort, classifyCommand, classifyPlannerReply, classifyPluginSource, clearAugmentedPathCache, clearDaemonToken, clearResearchShellCache, clearState, clipboardCopyCommand, coerceAssignments, collectDirectDependencyOutputs, composeAugmentedPrompt, composeContinuationPrompt, configuredProviders, continuability, createAiService, createSession, createSkillsService, createTaskAdapter, createTaskOrchestrator, createWorktreeIsolation, daemonTokenPath, defaultLogger, definitionPattern, deleteSession, describeMergeResult, discoverGeminiModels, effectiveAllowlist, ensureDir, ensurePrivateDir, ensureStateDirIgnored, executionLogBlock, extractPrdBlock, extractPresentedToken, filterFallbackByAnchoredInclude, filterModelsForPrompt, formatSearchOutput, generatePlanWithRepair, getLatestSession, getProviderMeta, getSettingsPath, getStateDir, globalDataDir, grantScopeFor, hasTmux, idSegment, includeGlobFor, isCliProvider, isOpenAiProvider, isPlainPluginName, isValidManifest, killTree, languageForId, listSessions, listTaskLogAttempts, loadSession, loadSessionPlanState, loadState, mapAgentTool, migrateOldConfigDir, migratePlanIsolation, mintDaemonToken, mintSessionId, modelContextBlock, modifyValidationFeedback, normalizeAgentArgs, normalizeGeminiModel, openTaskLog, parseMaxParallel, parseTaskQueryJson, pendingEditRulesBlock, prefixModelId, providerForRunner, reEmitPlanPrompt, reEmitTaskOpsPrompt, reEmitTaskQueryPrompt, readDaemonToken, readTaskLog, referencePattern, renderPlanMap, renderPriorOutputs, renderTaskQueryAnswer, repairLoop, researchShellWarning, researchToolsPath, resolveArgs, resolvePluginInstallDir, resolveProviderFromPrefix, resolveResearchShell, resolveSkillInvocation, resolveTaskRunnerFlags, resolveWithin, retargetTaskRunner, routeTransport, runnerAssignment, runnerForProvider, sanitizeSlug, savePrdMarkdown, saveSession, saveState, sessionDataDir, sessionRuntimeSettings, stateExists, stripModelPrefix, summarizeOutput, supportsTaskMode, taskOpsRejectedPrompt, taskQuerySignature, textHasTaskQuery, tmuxSessionName, tmuxSocketName, tmuxWindowName, tokenSubprotocols, tokensMatch, truncatedPlanReEmitPrompt, wellKnownBinDirs, withPath, writePrivateFile };
5443
+ export { ALLOWED_PLUGIN_HOSTS, ALL_PROVIDERS, AUTO_COMMANDS, AbstractRunner, AbstractTerminalSession, ActiveTaskSession, type Adr0013IsolationRun, type Adr0013PlanIsolation, type Adr0013TaskRecord, AgentAdapter, AgentEvent, AgentProcessDeps, AgentStartOptions, AiProvider, ApplyTaskOpsResult, ApprovalAnswer, ApprovalDecision, ApprovalMode, ApprovalPolicy, ApprovalRequest, type AskOptions, AwaitingReason, BUILTIN_SKILL_NAMES, BaseAiService, BaseConfig, BaseFileSystem, BufferedTaskOutputSource, CLAUDE_CODE_MANIFEST, CLI_PROVIDERS, CORE_PLANNER_PROMPT, type CappedRows, type CheckpointListener, ClaudeCodeAdapter, CliAgentAiService, type CliAgentAiServiceDeps, CodexAdapter, type CommandClassification, type CommandTier, type ComposeOptions, ConsoleLogger, ContextCollector, type Continuability, ConversationBusyError, type ConversationCompaction, ConversationEditError, type ConversationFork, ConversationMessage, type ConversationRequest, type ConversationRewind, type ConversationTurn, type ConversationVariant, DAEMON_SUBPROTOCOL, DAEMON_TOKEN_SUBPROTOCOL_PREFIX, DEFAULT_MAX_PARALLEL, DiscoveredModel, type EnvAdmission, EnvConfig, type ExecFileFn, type ExecImpl, FindSymbolOptions, FsPluginStore, GIT_READONLY_SUBCOMMANDS, GREP_PCRE_PROBE_ARGS, GeminiService, type GitExecFn, GlobOptions, type GrepInvocation, GrepOptions, type GrepRegex, type HasBinFn, HomeTranscriptReader, type IAiService, IApproval, IConfig, IFileSystem, type ILogger, type INotification, IPluginStore, ITerminalRunner, ITerminalSession, IWorktreeIsolation, IsolationHandoff, IsolationLandedTask, IsolationMergeResult, IsolationOutcome, IsolationRun, IsolationTaskRecord, IsolationTaskStatus, IsolationView, JSON_REPAIR_INSTRUCTION, type KillTreeDeps, LegacyPlanState, type LiveOutputLookup, type LiveTail, type LiveTailOptions, type MappedTool, MergeGateView, ModelResolver, type ModelResolverDeps, type ModifyPlanRequest, type NotificationAction, OPENCODE_MANIFEST, ORDEWELL_SETTABLE_ENV, OUTPUT_LINES_DEFAULT, OUTPUT_LINES_MAX, OpenAiService, OpenCodeAdapter, type OrchestratorObserver, OrchestratorOption, PLUGIN_NAME_PATTERN, PROVIDER_CREDENTIAL_ENV, PROVIDER_DETECT_PRIORITY, PROVIDER_LABEL, PROVIDER_PRIORITY, PROVIDER_SHORT_LABEL, type PendingApproval, PendingApprovals, type PendingApprovalsOptions, PlanEditError, PlanIsolation, PlanParseError, type PlanRequest, PlanState, PlanStatus, PlanStore, Planner, type PlannerModelCandidate, type PlannerModelChoice, PlannerModelMemory, type PlannerModelRecall, type PlannerModelStore, type PlannerReplyClassification, type PlannerRuntimeToggles, PlannerUsage, type PluginSource, type PrdBlock, type PriorOutput, type ProbeFn, ProviderModelLists, type ProviderRegistration, QueuedMessage, QueuedTaskMessage, REFUSED_COMMANDS, ReadFileOpts, RepairEvidence, type RepairLoopOpts, type RepairVerdict, RepoGroupLayout, type ResearchChat, ResearchLogEntry, ResearchProgress, type ResearchShell, type ResearchShellDeps, ResearchToolType, type ResearchTurn, ResolveContext, type RewindTarget, RunnerApprovals, type RunnerCatalog, RunnerId, RunnerInstallation, RunnerInvocation, type RunnerMode, RunnerModeInfo, RunnerPluginManifest, RunnerRegistry, RunnerSpawnOptions, RunnerTransport, SETTINGS_ENV_ALLOWLIST, SETTINGS_ENV_REFUSED, STATE_DIR, STOPPED_TOOL_RESULT, SYMBOL_LANGUAGES, type SaveSession, Session, SessionBroadcaster, type SessionData, type SessionDeps, SessionMessage, type SessionMeta, SessionNotice, type SessionPlanner, type SessionRuntimeSettings, SettingsService, type ShellDialect, type SkillInfo, type SkillMetadata, SkillsService, type SpawnSpec, StdioAgentAdapter, StructuredEvent, StructuredRunner, type StructuredRunnerDeps, StructuredSession, StructuredSessionCapability, StructuredTurnEnd, TASK_QUERY_ANSWER_MAX_CHARS, TASK_QUERY_ANSWER_OR_OPS, TASK_QUERY_FIELDS, TASK_QUERY_PROTOCOL, TASK_QUERY_REMINDER, TRUNCATED_PLAN_REPAIR_INSTRUCTION, Task, type TaskAttemptSnapshot, TaskControlError, TaskIsolation, TaskLogEvent, type TaskLogFile, type TaskLogLocation, TaskLogRecorder, type TaskLogRecorderDeps, TaskModeAgentAdapter, TaskOp, TaskOrchestrator, type TaskOrchestratorDeps, type TaskOrchestratorOptions, type TaskOutputAttempt, type TaskOutputSource, type TaskQuery, type TaskQueryCatalog, type TaskQueryField, TaskRunnerFlags, TaskSnapshot, TaskStartOptions, TmuxRunner, type TmuxRunnerDeps, type TokenCarriers, type ToolCall, ToolOutcome, type ToolResult, type TranscriptQuery, type TranscriptReader, type TransportRoute, TransportRouter, TreeSnapshot, UsageRecord, type UserSettings, Verdict, VerdictEngine, type VerdictListener, type WorkspaceCheckDeps, WorkspaceNotAProjectError, WorkspaceNotFoundError, type WorkspaceProjectCheckDeps, type WorktreeIsolationDeps, admitSettingsEnv, applyHeadLimit, assertInstallablePluginUrl, assertPlainPluginName, assertWorkspaceExists, assertWorkspaceIsProject, augmentPromptWithPriorOutputs, augmentedPath, bearerHeaderValue, buildConflictRepairPrompt, buildConflictResolutionPrompt, buildConversationSystemPrompt, buildFallbackGrepArgs, buildGlobArgs, buildGrepArgs, buildMergePrompt, buildModifyDuringExecutionPrompt, buildModifyPlanPrompt, buildPlanWithResults, buildResearchPrompt, buildResearchToolsPrompt, buildRunnerInvocation, buildSplitPrompt, buildSubagentSystemPrompt, canContinue, clampThinkingEffort, classifyCommand, classifyPlannerReply, classifyPluginSource, clearAugmentedPathCache, clearDaemonToken, clearResearchShellCache, clearState, clipboardCopyCommand, coerceAssignments, collectDirectDependencyOutputs, composeAugmentedPrompt, composeContinuationPrompt, configuredProviders, continuability, createAiService, createSession, createSkillsService, createTaskAdapter, createTaskOrchestrator, createWorktreeIsolation, daemonTokenPath, defaultLogger, definitionPattern, deleteSession, describeMergeResult, discoverGeminiModels, effectiveAllowlist, ensureDir, ensurePrivateDir, ensureStateDirIgnored, executionLogBlock, extractPrdBlock, extractPresentedToken, filterFallbackByAnchoredInclude, filterModelsForPrompt, formatSearchOutput, generatePlanWithRepair, getLatestSession, getProviderMeta, getSettingsPath, getStateDir, globalDataDir, grantScopeFor, grepRegexFromProbe, hasTmux, idSegment, includeGlobFor, isCliProvider, isOpenAiProvider, isPlainPluginName, isValidManifest, killTree, languageForId, listSessions, listTaskLogAttempts, loadSession, loadSessionPlanState, loadState, mapAgentTool, migrateOldConfigDir, migratePlanIsolation, mintDaemonToken, mintSessionId, modelContextBlock, modifyValidationFeedback, normalizeAgentArgs, normalizeGeminiModel, openTaskLog, parseMaxParallel, parseTaskQueryJson, pendingEditRulesBlock, prefixModelId, providerForRunner, reEmitPlanPrompt, reEmitTaskOpsPrompt, reEmitTaskQueryPrompt, readDaemonToken, readTaskLog, referencePattern, renderPlanMap, renderPriorOutputs, renderTaskQueryAnswer, repairLoop, researchShellWarning, researchToolsPath, resolveArgs, resolvePluginInstallDir, resolveProviderFromPrefix, resolveResearchShell, resolveSkillInvocation, resolveTaskRunnerFlags, resolveWithin, retargetTaskRunner, routeTransport, runnerAssignment, runnerForProvider, sanitizeSlug, savePrdMarkdown, saveSession, saveState, sessionDataDir, sessionRuntimeSettings, stateExists, stripModelPrefix, summarizeOutput, supportsTaskMode, taskOpsRejectedPrompt, taskQuerySignature, textHasTaskQuery, tmuxSessionName, tmuxSocketName, tmuxWindowName, tokenSubprotocols, tokensMatch, truncatedPlanReEmitPrompt, wellKnownBinDirs, withPath, writePrivateFile };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { aG as RunnerId, ag as PlanStatus, a6 as LegacyPlanState, I as IApproval, k as ApprovalDecision, p as ApprovalRequest, j as ApprovalAnswer, L as ITerminalRunner, J as IConfig, h as AiProvider, as as ProviderModelLists, m as ApprovalMode, X as IsolationMergeResult, T as IsolationLandedTask, N as IWorktreeIsolation, a2 as IsolationTaskStatus, ad as PlanIsolation, aL as RunnerTransport, az as RepoGroupLayout, M as ITerminalSession, w as DiscoveredModel, aU as Task, f as AgentProcessDeps, c as AgentAdapter, aB as ResearchProgress, aA as ResearchLogEntry, u as ConversationMessage, ba as UsageRecord, b1 as TaskSnapshot, r as AwaitingReason, Q as IsolationHandoff, $ as IsolationRun, a0 as IsolationTaskRecord, aV as TaskIsolation, a3 as IsolationView, Y as IsolationOutcome, ay as RepairEvidence, b8 as TreeSnapshot, bh as Verdict, aJ as RunnerRegistry, ax as QueuedTaskMessage, aw as QueuedMessage, b as ActiveTaskSession, ac as OrchestratorOption, aY as TaskModeAgentAdapter, g as AgentStartOptions, e as AgentEvent, aE as ResearchToolType, ai as PlannerUsage, n as ApprovalPolicy, af as PlanState, aH as RunnerInvocation, A as AbstractRunner, a as AbstractTerminalSession, aQ as StructuredSessionCapability, b2 as TaskStartOptions, aR as StructuredTurnEnd, aP as StructuredEvent, aK as RunnerSpawnOptions, K as IPluginStore, aI as RunnerPluginManifest, aF as ResolveContext, b0 as TaskRunnerFlags } from './Task-ib_U0YP7.js';
2
2
  export { d as AgentAdapterFactory, i as AllProviderModels, l as ApprovalKind, o as ApprovalPolicyOptions, q as ApprovalSource, B as BlockingPrompt, C as CMD_EXE_MAX_COMMAND_LINE, s as CatalogModel, t as CommandLineTooLongError, D as DENY_ALL, v as DiscoveredMode, x as DiscoveryCommand, E as EmbeddedNewlineError, y as ExecutableNotFoundError, F as FetchAllProviderModelsOptions, H as HeadlessRunner, z as HeadlessRunnerDeps, G as HeadlessSession, O as IntegrationDisposal, P as IsolationAvailability, R as IsolationHandoffRepo, S as IsolationInactiveReason, U as IsolationLanding, V as IsolationMergeBlock, W as IsolationMergeBlockReason, Z as IsolationPruneResult, _ as IsolationRepo, a1 as IsolationTaskRepo, a4 as LaunchDeps, a5 as LaunchPlan, a7 as LineBuffer, a8 as Message, a9 as ModelCatalog, aa as ModelShortcut, ab as ORCHESTRATOR_SHORTCUTS, ae as PlanModificationWarnings, ah as PlannerStartOptions, aj as PluginCloneFn, ak as PluginEntry, al as PluginFeatures, am as PluginMode, an as PluginModelDiscovery, ao as PluginRunnerDef, ap as PreparedLaunch, aq as PreparedTask, ar as ProviderCredentialSource, at as ProviderModelsResult, au as PtySize, av as PtyWrapOptions, aC as ResearchStep, aD as ResearchStepOutcome, aM as StreamEvent, aN as StreamStepEvent, aO as StreamThinkingEvent, aS as SubagentLogEntry, aT as SubagentOutcome, aW as TaskIsolationState, aX as TaskMode, aZ as TaskModeUnsupportedError, a_ as TaskModelAssignment, a$ as TaskOutputSummary, b3 as TaskStatus, b4 as TaskTransport, b5 as TaskType, b6 as TaskWithParent, b7 as ThinkingBlock, b9 as UsageLine, bb as UsageTotals, bc as UserPromptEntry, bd as UserStep, be as ValidationCheck, bf as ValidationContext, bg as ValidationResult, bi as VerificationCheck, bj as WINDOWS_MAX_COMMAND_LINE, bk as addPlannerUsage, bl as addTaskToPlan, bm as addUsage, bn as approvalScopes, bo as buildShellInvocation, bp as collectProviderCredentials, bq as createEmptyPlan, br as createTask, bs as emptyWarnings, bt as enabledRunners, bu as fetchAllProviderModels, bv as flattenTasks, bw as flattenTasksWithParents, bx as isAwaitingReason, by as isExecutableResolved, bz as isGranted, bA as isMeasured, bB as isReservedRunnerName, bC as isRunnerApproval, bD as isRunnerTransport, bE as isStructuredSession, bF as keepExecutionState, bG as knownModelId, bH as migrateLegacyPlan, bI as migratePlanState, bJ as migrateTask, bK as partedPromptUsage, bL as planDirectLaunch, bM as planShellLaunch, bN as plannerContextFill, bO as posixShellQuote, bP as removeTaskFromPlan, bQ as renumberTasks, bR as resolveModelShortcut, bS as resolveProvider, bT as stripAnsi, bU as toApprovalDecision, bV as toOrchestratorOptions, bW as updateTaskInPlan, bX as usageLine, bY as validateModifiedPlan, bZ as warningsText, b_ as windowsCommandLine, b$ as wrapWithPty } from './Task-ib_U0YP7.js';
3
- import { u as TaskOp, M as MergeGateView, m as SessionBroadcaster, A as ApplyTaskOpsResult, n as SessionMessage, o as SessionNotice, s as TaskLogEvent } from './plan-utils-DvHPzAfV.js';
4
- export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DisplayBlock, E as EMPTY_CONVERSATION, e as EMPTY_HOLD, f as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry, g as MessageBlock, h as MessageRole, N as NO_TURN, O as OutputPreview, P as PlanBlock, i as PlanMarkerStatus, j as PromptHold, S as SerializedPlan, k as SerializedTask, l as SerializedTaskStatus, p as SubagentBlock, q as SubagentChild, r as SubagentStatus, T as TakenPrompt, t as TaskLogView, v as TaskRef, w as ThinkingDisplayBlock, x as ToolBlock, y as ToolHeadline, z as ToolStatus, B as TurnGate, U as UsageBlock, F as aheadOfDraft, H as applyTaskOps, I as canMergeTasks, J as canSetDependencies, K as canSplitTask, Q as capConflictFiles, R as classifyOutcome, V as coalesceTaskLog, W as dependencyCandidates, X as dependentsOf, Y as drainNext, Z as executionSummary, _ as followTurn, $ as fromTranscript, a0 as hasHiddenDetail, a1 as holdPrompt, a2 as outputLines, a3 as outputPreview, a4 as parseTaskOpsJson, a5 as reduceConversation, a6 as reduceTaskLog, a7 as replayTaskLog, a8 as runnerToolSubject, a9 as serializePlan, aa as serializeTask, ab as serializeTaskStatus, ac as stopTurn, ad as summarizeToolCall, ae as taskStartedNotice, af as textHasTaskOps, ag as toTaskLogEvent, ah as toolHeadline, ai as trimToolOutput, aj as truncateCheckpointSummary, ak as unsendAll, al as unsendLatest } from './plan-utils-DvHPzAfV.js';
3
+ import { u as TaskOp, M as MergeGateView, m as SessionBroadcaster, A as ApplyTaskOpsResult, n as SessionMessage, o as SessionNotice, s as TaskLogEvent } from './plan-utils-2K_N5ZJe.js';
4
+ export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DisplayBlock, E as EMPTY_CONVERSATION, e as EMPTY_HOLD, f as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry, g as MessageBlock, h as MessageRole, N as NO_TURN, O as OutputPreview, P as PlanBlock, i as PlanMarkerStatus, j as PromptHold, S as SerializedPlan, k as SerializedTask, l as SerializedTaskStatus, p as SubagentBlock, q as SubagentChild, r as SubagentStatus, T as TakenPrompt, t as TaskLogView, v as TaskRef, w as ThinkingDisplayBlock, x as ToolBlock, y as ToolHeadline, z as ToolStatus, B as TurnGate, U as UsageBlock, F as aheadOfDraft, H as applyTaskOps, I as canMergeTasks, J as canSetDependencies, K as canSplitTask, Q as capConflictFiles, R as classifyOutcome, V as coalesceTaskLog, W as dependencyCandidates, X as dependentsOf, Y as digestTaskLog, Z as drainNext, _ as executionSummary, $ as followTurn, a0 as fromTranscript, a1 as hasHiddenDetail, a2 as holdPrompt, a3 as outputLines, a4 as outputPreview, a5 as parseTaskOpsJson, a6 as reduceConversation, a7 as reduceTaskLog, a8 as replayTaskLog, a9 as runnerToolSubject, aa as serializePlan, ab as serializeTask, ac as serializeTaskStatus, ad as stopTurn, ae as summarizeToolCall, af as taskStartedNotice, ag as textHasTaskOps, ah as toTaskLogEvent, ai as toolHeadline, aj as trimToolOutput, ak as truncateCheckpointSummary, al as unsendAll, am as unsendLatest } from './plan-utils-2K_N5ZJe.js';
5
5
  import { I as IFileSystem, R as ReadFileOpts, T as ToolOutcome, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-DuEiG_kA.js';
6
6
  export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-DuEiG_kA.js';
7
7
  import { R as RunnerModeInfo } from './ModeResolver-DXxV4n_V.js';
@@ -189,6 +189,12 @@ declare const REFUSED_COMMANDS: string[];
189
189
  */
190
190
  interface CommandPolicyOptions {
191
191
  dialect?: ShellDialect;
192
+ /**
193
+ * `CDPATH` is set in the environment the command will run in. A relative
194
+ * `cd` may then land in a directory the command line never names, so `cd`
195
+ * stops being navigation the classifier can follow.
196
+ */
197
+ cdpathSet?: boolean;
192
198
  }
193
199
  type CommandTier = 'auto' | 'ask' | 'refuse';
194
200
  interface CommandClassification {
@@ -265,6 +271,7 @@ declare abstract class BaseFileSystem implements IFileSystem {
265
271
  * containing directory, one entry per distinct scope.
266
272
  */
267
273
  private outsidePaths;
274
+ private policyOptions;
268
275
  /**
269
276
  * Three tiers (see `commandPolicy.ts`): read-only inspection runs silently,
270
277
  * anything else asks once and is remembered, and writes are refused outright
@@ -312,7 +319,8 @@ interface ResolvedPath {
312
319
  abs: string;
313
320
  inside: boolean;
314
321
  }
315
- declare function resolveWithin(root: string, target: string): ResolvedPath;
322
+ /** `from` is where a relative `target` starts; containment is still judged against `root`. */
323
+ declare function resolveWithin(root: string, target: string, from?: string): ResolvedPath;
316
324
  /** The directory a grant covers for `target` — its parent for files, itself for directories. */
317
325
  declare function grantScopeFor(abs: string, kind: 'file' | 'directory'): string;
318
326
 
@@ -469,19 +477,27 @@ interface GrepInvocation {
469
477
  declare function buildGrepArgs(pattern: string, opts: GrepOptions, root: string): GrepInvocation;
470
478
  /** Build the ripgrep invocation that lists files matching a glob. */
471
479
  declare function buildGlobArgs(pattern: string, root: string): string[];
480
+ /**
481
+ * Which regex dialect the machine's `grep` can run: GNU grep has `-P` (PCRE);
482
+ * BSD grep (macOS) rejects it, but its `-E` is the enhanced regex library and
483
+ * reads the same non-capturing groups, `\b`, `\s` and `\d`.
484
+ */
485
+ type GrepRegex = 'pcre' | 'ere';
486
+ /** Run `grep` with these args: it exits 1 ("no match") when `-P` exists and 2 when it does not. */
487
+ declare const GREP_PCRE_PROBE_ARGS: string[];
488
+ declare function grepRegexFromProbe(exitCode: number | null): GrepRegex;
472
489
  /**
473
490
  * The POSIX-grep fallback for machines without ripgrep. Ordering and `--sort`
474
491
  * are unavailable.
475
492
  *
476
- * `-P` (PCRE) is required, not optional: patterns built in core — most
493
+ * A regex mode is required, not optional: patterns built in core — most
477
494
  * notably `find_symbol`'s `definitionPattern` — use non-capturing groups and
478
- * `\b`, which BRE has no syntax for and ERE (`-E`) still cannot express
479
- * ((?:...) is a PCRE construct). Without `-P`, GNU grep either errors
480
- * ("Unmatched \{") or, worse, silently treats `(`/`)`/`|` as literal
481
- * characters and reports a confident empty result. `-P` and `-F` are
482
- * mutually exclusive, so literal mode skips it.
495
+ * `\b`, which BRE has no syntax for. Without `-P` or an enhanced `-E`, grep
496
+ * either errors ("Unmatched \{") or, worse, silently treats `(`/`)`/`|` as
497
+ * literal characters and reports a confident empty result. The regex flags and
498
+ * `-F` are mutually exclusive, so literal mode skips them.
483
499
  */
484
- declare function buildFallbackGrepArgs(pattern: string, opts: GrepOptions, root: string): string[];
500
+ declare function buildFallbackGrepArgs(pattern: string, opts: GrepOptions, root: string, regex?: GrepRegex): string[];
485
501
  /**
486
502
  * GNU grep's own `--include` glob only ever matches a basename, so it silently
487
503
  * matches nothing against an anchored pattern like `subdir/*.txt` (there is no
@@ -1892,6 +1908,8 @@ interface TaskOrchestratorDeps {
1892
1908
  tddEnabled: () => boolean;
1893
1909
  /** Read once as a run opens, never per spawn (ADR-0018, S1). */
1894
1910
  runnerTransport: () => RunnerTransport;
1911
+ /** What the task's last saved attempt did, or null when it left no log (ADR-0020). */
1912
+ previousAttemptFromLog: (taskId: string) => string | null;
1895
1913
  }
1896
1914
  /**
1897
1915
  * What a caller supplies to {@link createTaskOrchestrator}; every optional one
@@ -1910,6 +1928,7 @@ interface TaskOrchestratorOptions {
1910
1928
  workspaceEnv?: (cwd: string) => Promise<WorkspaceEnv>;
1911
1929
  tddEnabled?: () => boolean;
1912
1930
  runnerTransport?: () => RunnerTransport;
1931
+ previousAttemptFromLog?: (taskId: string) => string | null;
1913
1932
  }
1914
1933
  /**
1915
1934
  * The pure scheduler. Owns execution state (`running`, `planStatus`,
@@ -1967,6 +1986,7 @@ declare class TaskOrchestrator {
1967
1986
  private observers;
1968
1987
  private tddEnabled;
1969
1988
  private readRunnerTransport;
1989
+ private previousAttemptFromLog;
1970
1990
  /**
1971
1991
  * The setting as the latest run copied it when it opened. Every spawn of
1972
1992
  * that run uses this, so flipping the setting mid-run changes the next run
@@ -1984,6 +2004,14 @@ declare class TaskOrchestrator {
1984
2004
  static compose(options: TaskOrchestratorOptions): TaskOrchestrator;
1985
2005
  /** Advisory silence timestamp for a task's live runner, or null if not idle. */
1986
2006
  getIdleSince(taskId: string): string | null;
2007
+ /**
2008
+ * What an ops retry is told about the attempt before. The saved log is read
2009
+ * whether or not the session was reloaded, so both behave alike; the terminal
2010
+ * buffer is the fallback for a runner that has no log. A reload clears the
2011
+ * attempt count along with the buffer, so a retry made since is what says
2012
+ * there was an attempt to report on.
2013
+ */
2014
+ private opsPreviousAttempt;
1987
2015
  /** Recent clean output of a task's latest attempt, running or ended; null if it never ran. */
1988
2016
  getLiveOutput(taskId: string, opts: LiveTailOptions): LiveTail | null;
1989
2017
  get storeInstance(): PlanStore;
@@ -3015,6 +3043,8 @@ declare class OpenCodeAdapter implements TaskModeAgentAdapter {
3015
3043
  private interruptRequested;
3016
3044
  /** A task's requests waiting for an answer, by request id, with the session that asked. */
3017
3045
  private readonly openPermissions;
3046
+ /** Set once the server turns out to speak the 2.x API, which then owns the session. */
3047
+ private v2;
3018
3048
  constructor(deps: AgentProcessDeps);
3019
3049
  start(opts: AgentStartOptions): Promise<void>;
3020
3050
  send(message: string, onEvent: (event: AgentEvent) => void, signal?: AbortSignal, onActivity?: () => void): Promise<void>;
@@ -3055,6 +3085,12 @@ declare class OpenCodeAdapter implements TaskModeAgentAdapter {
3055
3085
  interrupt(timeoutMs: number): Promise<boolean>;
3056
3086
  onProcessExit(listener: (code: number) => void): void;
3057
3087
  answerPermission(id: string, decision: ApprovalDecision): boolean;
3088
+ /**
3089
+ * OpenCode 2.x replaced the 1.x HTTP surface rather than extending it, and
3090
+ * only 2.x answers `/api/info` with its version. A 1.x server — or one that
3091
+ * answers with anything else — keeps the 1.x protocol this class speaks.
3092
+ */
3093
+ private speaksV2;
3058
3094
  private role;
3059
3095
  /**
3060
3096
  * Turn one settled assistant message into events. The settled response is
@@ -3657,13 +3693,6 @@ interface SessionRuntimeSettings {
3657
3693
  /** Read once as a run starts, never per spawn (ADR-0018, S1). Absent means terminal. */
3658
3694
  runnerTransport?: RunnerTransport;
3659
3695
  }
3660
- /**
3661
- * The whole of what a host reads off disk for a Session. Both hosts used to
3662
- * assemble this by hand, mapping each toggle's settings key to its runtime key
3663
- * in two blocks nothing kept in step — which is how one toggle came to be
3664
- * dropped. `MODE_TOGGLES` holds the mapping now; this adds the one field that
3665
- * is not a toggle.
3666
- */
3667
3696
  declare function sessionRuntimeSettings(settings: UserSettings): SessionRuntimeSettings;
3668
3697
  /**
3669
3698
  * Resolve `/skill-name` invocations to their skill's markdown content. Pure
@@ -4261,6 +4290,12 @@ declare class VerdictEngine {
4261
4290
  private idleSince;
4262
4291
  /** Tasks waiting on the user, whose silence is expected rather than a sign of a stuck runner. */
4263
4292
  private idlePaused;
4293
+ /**
4294
+ * Open tool approvals per structured task. They arrive mid-turn and leave the
4295
+ * status alone (ADR-0018, W1), but a task waiting on one is waiting on the
4296
+ * user, so it is not idle either.
4297
+ */
4298
+ private openApprovals;
4264
4299
  onVerdict(listener: VerdictListener): void;
4265
4300
  onCheckpoint(listener: CheckpointListener): void;
4266
4301
  onIdleChange(listener: IdleListener): void;
@@ -4293,6 +4328,8 @@ declare class VerdictEngine {
4293
4328
  * when the marker was never observed.
4294
4329
  */
4295
4330
  watch(task: Task, session: ITerminalSession): void;
4331
+ private approvalOpened;
4332
+ private approvalClosed;
4296
4333
  /** Scan only the new text plus the unmatched carry, so a long run stays linear. */
4297
4334
  private scanCheckpoints;
4298
4335
  private bumpGeneration;
@@ -5403,4 +5440,4 @@ declare const DEFAULT_MAX_PARALLEL = 3;
5403
5440
  */
5404
5441
  declare function parseMaxParallel(value: unknown): number | null;
5405
5442
 
5406
- export { ALLOWED_PLUGIN_HOSTS, ALL_PROVIDERS, AUTO_COMMANDS, AbstractRunner, AbstractTerminalSession, ActiveTaskSession, type Adr0013IsolationRun, type Adr0013PlanIsolation, type Adr0013TaskRecord, AgentAdapter, AgentEvent, AgentProcessDeps, AgentStartOptions, AiProvider, ApplyTaskOpsResult, ApprovalAnswer, ApprovalDecision, ApprovalMode, ApprovalPolicy, ApprovalRequest, type AskOptions, AwaitingReason, BUILTIN_SKILL_NAMES, BaseAiService, BaseConfig, BaseFileSystem, BufferedTaskOutputSource, CLAUDE_CODE_MANIFEST, CLI_PROVIDERS, CORE_PLANNER_PROMPT, type CappedRows, type CheckpointListener, ClaudeCodeAdapter, CliAgentAiService, type CliAgentAiServiceDeps, CodexAdapter, type CommandClassification, type CommandTier, type ComposeOptions, ConsoleLogger, ContextCollector, type Continuability, ConversationBusyError, type ConversationCompaction, ConversationEditError, type ConversationFork, ConversationMessage, type ConversationRequest, type ConversationRewind, type ConversationTurn, type ConversationVariant, DAEMON_SUBPROTOCOL, DAEMON_TOKEN_SUBPROTOCOL_PREFIX, DEFAULT_MAX_PARALLEL, DiscoveredModel, type EnvAdmission, EnvConfig, type ExecFileFn, type ExecImpl, FindSymbolOptions, FsPluginStore, GIT_READONLY_SUBCOMMANDS, GeminiService, type GitExecFn, GlobOptions, type GrepInvocation, GrepOptions, type HasBinFn, HomeTranscriptReader, type IAiService, IApproval, IConfig, IFileSystem, type ILogger, type INotification, IPluginStore, ITerminalRunner, ITerminalSession, IWorktreeIsolation, IsolationHandoff, IsolationLandedTask, IsolationMergeResult, IsolationOutcome, IsolationRun, IsolationTaskRecord, IsolationTaskStatus, IsolationView, JSON_REPAIR_INSTRUCTION, type KillTreeDeps, LegacyPlanState, type LiveOutputLookup, type LiveTail, type LiveTailOptions, type MappedTool, MergeGateView, ModelResolver, type ModelResolverDeps, type ModifyPlanRequest, type NotificationAction, OPENCODE_MANIFEST, ORDEWELL_SETTABLE_ENV, OUTPUT_LINES_DEFAULT, OUTPUT_LINES_MAX, OpenAiService, OpenCodeAdapter, type OrchestratorObserver, OrchestratorOption, PLUGIN_NAME_PATTERN, PROVIDER_CREDENTIAL_ENV, PROVIDER_DETECT_PRIORITY, PROVIDER_LABEL, PROVIDER_PRIORITY, PROVIDER_SHORT_LABEL, type PendingApproval, PendingApprovals, type PendingApprovalsOptions, PlanEditError, PlanIsolation, PlanParseError, type PlanRequest, PlanState, PlanStatus, PlanStore, Planner, type PlannerModelCandidate, type PlannerModelChoice, PlannerModelMemory, type PlannerModelRecall, type PlannerModelStore, type PlannerReplyClassification, type PlannerRuntimeToggles, PlannerUsage, type PluginSource, type PrdBlock, type PriorOutput, type ProbeFn, ProviderModelLists, type ProviderRegistration, QueuedMessage, QueuedTaskMessage, REFUSED_COMMANDS, ReadFileOpts, RepairEvidence, type RepairLoopOpts, type RepairVerdict, RepoGroupLayout, type ResearchChat, ResearchLogEntry, ResearchProgress, type ResearchShell, type ResearchShellDeps, ResearchToolType, type ResearchTurn, ResolveContext, type RewindTarget, RunnerApprovals, type RunnerCatalog, RunnerId, RunnerInstallation, RunnerInvocation, type RunnerMode, RunnerModeInfo, RunnerPluginManifest, RunnerRegistry, RunnerSpawnOptions, RunnerTransport, SETTINGS_ENV_ALLOWLIST, SETTINGS_ENV_REFUSED, STATE_DIR, STOPPED_TOOL_RESULT, SYMBOL_LANGUAGES, type SaveSession, Session, SessionBroadcaster, type SessionData, type SessionDeps, SessionMessage, type SessionMeta, SessionNotice, type SessionPlanner, type SessionRuntimeSettings, SettingsService, type ShellDialect, type SkillInfo, type SkillMetadata, SkillsService, type SpawnSpec, StdioAgentAdapter, StructuredEvent, StructuredRunner, type StructuredRunnerDeps, StructuredSession, StructuredSessionCapability, StructuredTurnEnd, TASK_QUERY_ANSWER_MAX_CHARS, TASK_QUERY_ANSWER_OR_OPS, TASK_QUERY_FIELDS, TASK_QUERY_PROTOCOL, TASK_QUERY_REMINDER, TRUNCATED_PLAN_REPAIR_INSTRUCTION, Task, type TaskAttemptSnapshot, TaskControlError, TaskIsolation, TaskLogEvent, type TaskLogFile, type TaskLogLocation, TaskLogRecorder, type TaskLogRecorderDeps, TaskModeAgentAdapter, TaskOp, TaskOrchestrator, type TaskOrchestratorDeps, type TaskOrchestratorOptions, type TaskOutputAttempt, type TaskOutputSource, type TaskQuery, type TaskQueryCatalog, type TaskQueryField, TaskRunnerFlags, TaskSnapshot, TaskStartOptions, TmuxRunner, type TmuxRunnerDeps, type TokenCarriers, type ToolCall, ToolOutcome, type ToolResult, type TranscriptQuery, type TranscriptReader, type TransportRoute, TransportRouter, TreeSnapshot, UsageRecord, type UserSettings, Verdict, VerdictEngine, type VerdictListener, type WorkspaceCheckDeps, WorkspaceNotAProjectError, WorkspaceNotFoundError, type WorkspaceProjectCheckDeps, type WorktreeIsolationDeps, admitSettingsEnv, applyHeadLimit, assertInstallablePluginUrl, assertPlainPluginName, assertWorkspaceExists, assertWorkspaceIsProject, augmentPromptWithPriorOutputs, augmentedPath, bearerHeaderValue, buildConflictRepairPrompt, buildConflictResolutionPrompt, buildConversationSystemPrompt, buildFallbackGrepArgs, buildGlobArgs, buildGrepArgs, buildMergePrompt, buildModifyDuringExecutionPrompt, buildModifyPlanPrompt, buildPlanWithResults, buildResearchPrompt, buildResearchToolsPrompt, buildRunnerInvocation, buildSplitPrompt, buildSubagentSystemPrompt, canContinue, clampThinkingEffort, classifyCommand, classifyPlannerReply, classifyPluginSource, clearAugmentedPathCache, clearDaemonToken, clearResearchShellCache, clearState, clipboardCopyCommand, coerceAssignments, collectDirectDependencyOutputs, composeAugmentedPrompt, composeContinuationPrompt, configuredProviders, continuability, createAiService, createSession, createSkillsService, createTaskAdapter, createTaskOrchestrator, createWorktreeIsolation, daemonTokenPath, defaultLogger, definitionPattern, deleteSession, describeMergeResult, discoverGeminiModels, effectiveAllowlist, ensureDir, ensurePrivateDir, ensureStateDirIgnored, executionLogBlock, extractPrdBlock, extractPresentedToken, filterFallbackByAnchoredInclude, filterModelsForPrompt, formatSearchOutput, generatePlanWithRepair, getLatestSession, getProviderMeta, getSettingsPath, getStateDir, globalDataDir, grantScopeFor, hasTmux, idSegment, includeGlobFor, isCliProvider, isOpenAiProvider, isPlainPluginName, isValidManifest, killTree, languageForId, listSessions, listTaskLogAttempts, loadSession, loadSessionPlanState, loadState, mapAgentTool, migrateOldConfigDir, migratePlanIsolation, mintDaemonToken, mintSessionId, modelContextBlock, modifyValidationFeedback, normalizeAgentArgs, normalizeGeminiModel, openTaskLog, parseMaxParallel, parseTaskQueryJson, pendingEditRulesBlock, prefixModelId, providerForRunner, reEmitPlanPrompt, reEmitTaskOpsPrompt, reEmitTaskQueryPrompt, readDaemonToken, readTaskLog, referencePattern, renderPlanMap, renderPriorOutputs, renderTaskQueryAnswer, repairLoop, researchShellWarning, researchToolsPath, resolveArgs, resolvePluginInstallDir, resolveProviderFromPrefix, resolveResearchShell, resolveSkillInvocation, resolveTaskRunnerFlags, resolveWithin, retargetTaskRunner, routeTransport, runnerAssignment, runnerForProvider, sanitizeSlug, savePrdMarkdown, saveSession, saveState, sessionDataDir, sessionRuntimeSettings, stateExists, stripModelPrefix, summarizeOutput, supportsTaskMode, taskOpsRejectedPrompt, taskQuerySignature, textHasTaskQuery, tmuxSessionName, tmuxSocketName, tmuxWindowName, tokenSubprotocols, tokensMatch, truncatedPlanReEmitPrompt, wellKnownBinDirs, withPath, writePrivateFile };
5443
+ export { ALLOWED_PLUGIN_HOSTS, ALL_PROVIDERS, AUTO_COMMANDS, AbstractRunner, AbstractTerminalSession, ActiveTaskSession, type Adr0013IsolationRun, type Adr0013PlanIsolation, type Adr0013TaskRecord, AgentAdapter, AgentEvent, AgentProcessDeps, AgentStartOptions, AiProvider, ApplyTaskOpsResult, ApprovalAnswer, ApprovalDecision, ApprovalMode, ApprovalPolicy, ApprovalRequest, type AskOptions, AwaitingReason, BUILTIN_SKILL_NAMES, BaseAiService, BaseConfig, BaseFileSystem, BufferedTaskOutputSource, CLAUDE_CODE_MANIFEST, CLI_PROVIDERS, CORE_PLANNER_PROMPT, type CappedRows, type CheckpointListener, ClaudeCodeAdapter, CliAgentAiService, type CliAgentAiServiceDeps, CodexAdapter, type CommandClassification, type CommandTier, type ComposeOptions, ConsoleLogger, ContextCollector, type Continuability, ConversationBusyError, type ConversationCompaction, ConversationEditError, type ConversationFork, ConversationMessage, type ConversationRequest, type ConversationRewind, type ConversationTurn, type ConversationVariant, DAEMON_SUBPROTOCOL, DAEMON_TOKEN_SUBPROTOCOL_PREFIX, DEFAULT_MAX_PARALLEL, DiscoveredModel, type EnvAdmission, EnvConfig, type ExecFileFn, type ExecImpl, FindSymbolOptions, FsPluginStore, GIT_READONLY_SUBCOMMANDS, GREP_PCRE_PROBE_ARGS, GeminiService, type GitExecFn, GlobOptions, type GrepInvocation, GrepOptions, type GrepRegex, type HasBinFn, HomeTranscriptReader, type IAiService, IApproval, IConfig, IFileSystem, type ILogger, type INotification, IPluginStore, ITerminalRunner, ITerminalSession, IWorktreeIsolation, IsolationHandoff, IsolationLandedTask, IsolationMergeResult, IsolationOutcome, IsolationRun, IsolationTaskRecord, IsolationTaskStatus, IsolationView, JSON_REPAIR_INSTRUCTION, type KillTreeDeps, LegacyPlanState, type LiveOutputLookup, type LiveTail, type LiveTailOptions, type MappedTool, MergeGateView, ModelResolver, type ModelResolverDeps, type ModifyPlanRequest, type NotificationAction, OPENCODE_MANIFEST, ORDEWELL_SETTABLE_ENV, OUTPUT_LINES_DEFAULT, OUTPUT_LINES_MAX, OpenAiService, OpenCodeAdapter, type OrchestratorObserver, OrchestratorOption, PLUGIN_NAME_PATTERN, PROVIDER_CREDENTIAL_ENV, PROVIDER_DETECT_PRIORITY, PROVIDER_LABEL, PROVIDER_PRIORITY, PROVIDER_SHORT_LABEL, type PendingApproval, PendingApprovals, type PendingApprovalsOptions, PlanEditError, PlanIsolation, PlanParseError, type PlanRequest, PlanState, PlanStatus, PlanStore, Planner, type PlannerModelCandidate, type PlannerModelChoice, PlannerModelMemory, type PlannerModelRecall, type PlannerModelStore, type PlannerReplyClassification, type PlannerRuntimeToggles, PlannerUsage, type PluginSource, type PrdBlock, type PriorOutput, type ProbeFn, ProviderModelLists, type ProviderRegistration, QueuedMessage, QueuedTaskMessage, REFUSED_COMMANDS, ReadFileOpts, RepairEvidence, type RepairLoopOpts, type RepairVerdict, RepoGroupLayout, type ResearchChat, ResearchLogEntry, ResearchProgress, type ResearchShell, type ResearchShellDeps, ResearchToolType, type ResearchTurn, ResolveContext, type RewindTarget, RunnerApprovals, type RunnerCatalog, RunnerId, RunnerInstallation, RunnerInvocation, type RunnerMode, RunnerModeInfo, RunnerPluginManifest, RunnerRegistry, RunnerSpawnOptions, RunnerTransport, SETTINGS_ENV_ALLOWLIST, SETTINGS_ENV_REFUSED, STATE_DIR, STOPPED_TOOL_RESULT, SYMBOL_LANGUAGES, type SaveSession, Session, SessionBroadcaster, type SessionData, type SessionDeps, SessionMessage, type SessionMeta, SessionNotice, type SessionPlanner, type SessionRuntimeSettings, SettingsService, type ShellDialect, type SkillInfo, type SkillMetadata, SkillsService, type SpawnSpec, StdioAgentAdapter, StructuredEvent, StructuredRunner, type StructuredRunnerDeps, StructuredSession, StructuredSessionCapability, StructuredTurnEnd, TASK_QUERY_ANSWER_MAX_CHARS, TASK_QUERY_ANSWER_OR_OPS, TASK_QUERY_FIELDS, TASK_QUERY_PROTOCOL, TASK_QUERY_REMINDER, TRUNCATED_PLAN_REPAIR_INSTRUCTION, Task, type TaskAttemptSnapshot, TaskControlError, TaskIsolation, TaskLogEvent, type TaskLogFile, type TaskLogLocation, TaskLogRecorder, type TaskLogRecorderDeps, TaskModeAgentAdapter, TaskOp, TaskOrchestrator, type TaskOrchestratorDeps, type TaskOrchestratorOptions, type TaskOutputAttempt, type TaskOutputSource, type TaskQuery, type TaskQueryCatalog, type TaskQueryField, TaskRunnerFlags, TaskSnapshot, TaskStartOptions, TmuxRunner, type TmuxRunnerDeps, type TokenCarriers, type ToolCall, ToolOutcome, type ToolResult, type TranscriptQuery, type TranscriptReader, type TransportRoute, TransportRouter, TreeSnapshot, UsageRecord, type UserSettings, Verdict, VerdictEngine, type VerdictListener, type WorkspaceCheckDeps, WorkspaceNotAProjectError, WorkspaceNotFoundError, type WorkspaceProjectCheckDeps, type WorktreeIsolationDeps, admitSettingsEnv, applyHeadLimit, assertInstallablePluginUrl, assertPlainPluginName, assertWorkspaceExists, assertWorkspaceIsProject, augmentPromptWithPriorOutputs, augmentedPath, bearerHeaderValue, buildConflictRepairPrompt, buildConflictResolutionPrompt, buildConversationSystemPrompt, buildFallbackGrepArgs, buildGlobArgs, buildGrepArgs, buildMergePrompt, buildModifyDuringExecutionPrompt, buildModifyPlanPrompt, buildPlanWithResults, buildResearchPrompt, buildResearchToolsPrompt, buildRunnerInvocation, buildSplitPrompt, buildSubagentSystemPrompt, canContinue, clampThinkingEffort, classifyCommand, classifyPlannerReply, classifyPluginSource, clearAugmentedPathCache, clearDaemonToken, clearResearchShellCache, clearState, clipboardCopyCommand, coerceAssignments, collectDirectDependencyOutputs, composeAugmentedPrompt, composeContinuationPrompt, configuredProviders, continuability, createAiService, createSession, createSkillsService, createTaskAdapter, createTaskOrchestrator, createWorktreeIsolation, daemonTokenPath, defaultLogger, definitionPattern, deleteSession, describeMergeResult, discoverGeminiModels, effectiveAllowlist, ensureDir, ensurePrivateDir, ensureStateDirIgnored, executionLogBlock, extractPrdBlock, extractPresentedToken, filterFallbackByAnchoredInclude, filterModelsForPrompt, formatSearchOutput, generatePlanWithRepair, getLatestSession, getProviderMeta, getSettingsPath, getStateDir, globalDataDir, grantScopeFor, grepRegexFromProbe, hasTmux, idSegment, includeGlobFor, isCliProvider, isOpenAiProvider, isPlainPluginName, isValidManifest, killTree, languageForId, listSessions, listTaskLogAttempts, loadSession, loadSessionPlanState, loadState, mapAgentTool, migrateOldConfigDir, migratePlanIsolation, mintDaemonToken, mintSessionId, modelContextBlock, modifyValidationFeedback, normalizeAgentArgs, normalizeGeminiModel, openTaskLog, parseMaxParallel, parseTaskQueryJson, pendingEditRulesBlock, prefixModelId, providerForRunner, reEmitPlanPrompt, reEmitTaskOpsPrompt, reEmitTaskQueryPrompt, readDaemonToken, readTaskLog, referencePattern, renderPlanMap, renderPriorOutputs, renderTaskQueryAnswer, repairLoop, researchShellWarning, researchToolsPath, resolveArgs, resolvePluginInstallDir, resolveProviderFromPrefix, resolveResearchShell, resolveSkillInvocation, resolveTaskRunnerFlags, resolveWithin, retargetTaskRunner, routeTransport, runnerAssignment, runnerForProvider, sanitizeSlug, savePrdMarkdown, saveSession, saveState, sessionDataDir, sessionRuntimeSettings, stateExists, stripModelPrefix, summarizeOutput, supportsTaskMode, taskOpsRejectedPrompt, taskQuerySignature, textHasTaskQuery, tmuxSessionName, tmuxSocketName, tmuxWindowName, tokenSubprotocols, tokensMatch, truncatedPlanReEmitPrompt, wellKnownBinDirs, withPath, writePrivateFile };