@ordewell/core 0.6.2 → 0.6.4
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-DuEiG_kA.d.ts → IFileSystem-DQEKyC6H.d.ts} +1 -1
- package/dist/{IFileSystem-d_SV7jAH.d.mts → IFileSystem-Qj2MWHn_.d.mts} +1 -1
- package/dist/{ModeResolver-DXxV4n_V.d.ts → ModeResolver-ByNpC0EP.d.ts} +1 -1
- package/dist/{ModeResolver-DIReYAOq.d.mts → ModeResolver-rqaY_4Ex.d.mts} +1 -1
- package/dist/{Task-ib_U0YP7.d.mts → Task-xqdxugt2.d.mts} +31 -1
- package/dist/{Task-ib_U0YP7.d.ts → Task-xqdxugt2.d.ts} +31 -1
- package/dist/index.d.mts +86 -81
- package/dist/index.d.ts +86 -81
- package/dist/index.js +194 -38
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +185 -29
- package/dist/index.mjs.map +1 -1
- package/dist/order-labels.d.mts +1 -1
- package/dist/order-labels.d.ts +1 -1
- package/dist/{parsing-C8Z22twN.d.ts → parsing-COPG8-Ep.d.ts} +2 -2
- package/dist/{parsing-DjRJJX-y.d.mts → parsing-DDZ1rUYa.d.mts} +2 -2
- package/dist/parsing.d.mts +3 -3
- package/dist/parsing.d.ts +3 -3
- package/dist/{plan-utils-2K_N5ZJe.d.ts → plan-utils-Br8UAoiu.d.ts} +2 -2
- package/dist/{plan-utils-D94CJ7CA.d.mts → plan-utils-DMgajMvd.d.mts} +2 -2
- package/dist/plan-utils.d.mts +3 -3
- package/dist/plan-utils.d.ts +3 -3
- package/dist/testing.d.mts +2 -2
- package/dist/testing.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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,
|
|
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,
|
|
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-
|
|
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-
|
|
5
|
-
import { I as IFileSystem, R as ReadFileOpts, T as ToolOutcome, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-
|
|
6
|
-
export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-
|
|
7
|
-
import { R as RunnerModeInfo } from './ModeResolver-
|
|
8
|
-
export { M as ManifestLookup, a as autonomyLevelLabel, b as buildModeGuide, f as filteredBuildModes, p as parseAutonomyLevel, r as resolveDefaultMode, c as resolveTaskMode, d as runnerModesFrom } from './ModeResolver-
|
|
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, aV as Task, f as AgentProcessDeps, c as AgentAdapter, aB as ResearchProgress, aA as ResearchLogEntry, u as ConversationMessage, bb as UsageRecord, b2 as TaskSnapshot, r as AwaitingReason, Q as IsolationHandoff, $ as IsolationRun, a0 as IsolationTaskRecord, aW as TaskIsolation, a3 as IsolationView, Y as IsolationOutcome, ay as RepairEvidence, b9 as TreeSnapshot, bi as Verdict, aJ as RunnerRegistry, ax as QueuedTaskMessage, aw as QueuedMessage, b as ActiveTaskSession, ac as OrchestratorOption, aZ 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, aM as RunnerVersionProbe, aR as StructuredSessionCapability, b3 as TaskStartOptions, aS as StructuredTurnEnd, aQ as StructuredEvent, aK as RunnerSpawnOptions, K as IPluginStore, aI as RunnerPluginManifest, aF as ResolveContext, b1 as TaskRunnerFlags } from './Task-xqdxugt2.js';
|
|
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, aN as StreamEvent, aO as StreamStepEvent, aP as StreamThinkingEvent, aT as SubagentLogEntry, aU as SubagentOutcome, aX as TaskIsolationState, aY as TaskMode, a_ as TaskModeUnsupportedError, a$ as TaskModelAssignment, b0 as TaskOutputSummary, b4 as TaskStatus, b5 as TaskTransport, b6 as TaskType, b7 as TaskWithParent, b8 as ThinkingBlock, ba as UsageLine, bc as UsageTotals, bd as UserPromptEntry, be as UserStep, bf as ValidationCheck, bg as ValidationContext, bh as ValidationResult, bj as VerificationCheck, bk as WINDOWS_MAX_COMMAND_LINE, bl as addPlannerUsage, bm as addTaskToPlan, bn as addUsage, bo as approvalScopes, bp as buildShellInvocation, bq as collectProviderCredentials, br as createEmptyPlan, bs as createTask, bt as emptyWarnings, bu as enabledRunners, bv as fetchAllProviderModels, bw as flattenTasks, bx as flattenTasksWithParents, by as isAwaitingReason, bz as isExecutableResolved, bA as isGranted, bB as isMeasured, bC as isReservedRunnerName, bD as isRunnerApproval, bE as isRunnerTransport, bF as isStructuredSession, bG as keepExecutionState, bH as knownModelId, bI as migrateLegacyPlan, bJ as migratePlanState, bK as migrateTask, bL as partedPromptUsage, bM as planDirectLaunch, bN as planShellLaunch, bO as plannerContextFill, bP as posixShellQuote, bQ as removeTaskFromPlan, bR as renumberTasks, bS as resolveModelShortcut, bT as resolveProvider, bU as stripAnsi, bV as toApprovalDecision, bW as toOrchestratorOptions, bX as updateTaskInPlan, bY as usageLine, bZ as validateModifiedPlan, b_ as warningsText, b$ as windowsCommandLine, c0 as wrapWithPty } from './Task-xqdxugt2.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-Br8UAoiu.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-Br8UAoiu.js';
|
|
5
|
+
import { I as IFileSystem, R as ReadFileOpts, T as ToolOutcome, b as GrepOptions, a as GlobOptions, F as FindSymbolOptions } from './IFileSystem-DQEKyC6H.js';
|
|
6
|
+
export { G as GREP_DEFAULT_HEAD_LIMIT, c as GrepOutputMode, S as SEARCH_EXCLUSIONS } from './IFileSystem-DQEKyC6H.js';
|
|
7
|
+
import { R as RunnerModeInfo } from './ModeResolver-ByNpC0EP.js';
|
|
8
|
+
export { M as ManifestLookup, a as autonomyLevelLabel, b as buildModeGuide, f as filteredBuildModes, p as parseAutonomyLevel, r as resolveDefaultMode, c as resolveTaskMode, d as runnerModesFrom } from './ModeResolver-ByNpC0EP.js';
|
|
9
9
|
import { ChildProcess } from 'child_process';
|
|
10
|
-
import { b as PlanParseError } from './parsing-
|
|
11
|
-
export { P as PLAN_ENVELOPE_KEY, a as PartialPlanTask, T as TASK_OPS_ENVELOPE_KEY, c as TASK_QUERY_ENVELOPE_KEY, d as checkDepsResolve, e as checkImmutableLog, f as checkInProgress, g as checkNoCycles, h as checkUniqueIds, i as escapeControlCharsInStrings, j as extractJsonObject, k as extractObjectWithBalance, l as extractObjectsWithKey, m as looksLikePlanAttempt, o as opensWithJsonObject, p as parsePartialPlan, n as parsePlanJson, s as stripModelNoise, q as stripTrailingCommas, v as validatePlanModification } from './parsing-
|
|
10
|
+
import { b as PlanParseError } from './parsing-COPG8-Ep.js';
|
|
11
|
+
export { P as PLAN_ENVELOPE_KEY, a as PartialPlanTask, T as TASK_OPS_ENVELOPE_KEY, c as TASK_QUERY_ENVELOPE_KEY, d as checkDepsResolve, e as checkImmutableLog, f as checkInProgress, g as checkNoCycles, h as checkUniqueIds, i as escapeControlCharsInStrings, j as extractJsonObject, k as extractObjectWithBalance, l as extractObjectsWithKey, m as looksLikePlanAttempt, o as opensWithJsonObject, p as parsePartialPlan, n as parsePlanJson, s as stripModelNoise, q as stripTrailingCommas, v as validatePlanModification } from './parsing-COPG8-Ep.js';
|
|
12
12
|
export { resolveOrderLabel, taskOrderLabel } from './order-labels.js';
|
|
13
13
|
import 'events';
|
|
14
14
|
|
|
@@ -27,77 +27,6 @@ interface SessionData {
|
|
|
27
27
|
plan: LegacyPlanState;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
/**
|
|
31
|
-
* Which interpreter runs the planner's `bash` tool, and in which language.
|
|
32
|
-
*
|
|
33
|
-
* `AUTO_COMMANDS` — the read-only tier that runs with no prompt — is `ls`, `cat`,
|
|
34
|
-
* `wc`, `head`, `tail`, `du`, `df`, `file`, `sort`, `uniq`, `basename`, `find`,
|
|
35
|
-
* `grep`. That set is POSIX, and passing it to `shell: true` on Windows means
|
|
36
|
-
* cmd.exe, where most of those names do not exist and `find` is an unrelated
|
|
37
|
-
* program that returns plausible wrong output instead of an error. The planner's
|
|
38
|
-
* whole research surface degraded to guessing, quietly.
|
|
39
|
-
*
|
|
40
|
-
* Rather than write a Windows dialect of every research command — a second
|
|
41
|
-
* behavior to keep in step forever — this finds a POSIX shell to run the
|
|
42
|
-
* existing ones in. Git for Windows ships a full one, and git is already a
|
|
43
|
-
* prerequisite for everything Ordewell does, so in practice it is there. Failing
|
|
44
|
-
* that, cmd.exe is used and the classifier is told so, because the one thing
|
|
45
|
-
* that must never happen is classifying a command in one language and running it
|
|
46
|
-
* in another: `commandPolicy` reads {@link ResearchShell.dialect} for exactly
|
|
47
|
-
* that reason.
|
|
48
|
-
*
|
|
49
|
-
* POSIX resolves to `{ file: null }`, meaning "use `shell: true`" — byte for
|
|
50
|
-
* byte what the adapters did before this module existed.
|
|
51
|
-
*
|
|
52
|
-
* Windows paths are built with `path.win32` explicitly, not the host-flavoured
|
|
53
|
-
* `path`, so the probe is the same on a Windows host as it is under a Linux
|
|
54
|
-
* test runner.
|
|
55
|
-
*/
|
|
56
|
-
type ShellDialect = 'posix' | 'cmd';
|
|
57
|
-
interface ResearchShell {
|
|
58
|
-
/**
|
|
59
|
-
* Executable that takes a command string, or null to use the host default
|
|
60
|
-
* via `shell: true`.
|
|
61
|
-
*/
|
|
62
|
-
file: string | null;
|
|
63
|
-
/** Arguments preceding the command string. */
|
|
64
|
-
args: string[];
|
|
65
|
-
/** The language the command string will be interpreted in. */
|
|
66
|
-
dialect: ShellDialect;
|
|
67
|
-
/**
|
|
68
|
-
* Directory holding this shell's POSIX utilities, when it brings its own.
|
|
69
|
-
* Prepended to PATH for the search subprocesses (`grep`, `tree`) that
|
|
70
|
-
* `execFile` starts without a shell, so they resolve too.
|
|
71
|
-
*/
|
|
72
|
-
utilsDir: string | null;
|
|
73
|
-
}
|
|
74
|
-
interface ResearchShellDeps {
|
|
75
|
-
platform?: NodeJS.Platform;
|
|
76
|
-
exists?: (candidate: string) => boolean;
|
|
77
|
-
env?: NodeJS.ProcessEnv;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* The shell the planner's `bash` tool should use on this host. Resolved once per
|
|
81
|
-
* process — the answer cannot change while Ordewell runs, and the probe costs a
|
|
82
|
-
* handful of `stat` calls.
|
|
83
|
-
*/
|
|
84
|
-
declare function resolveResearchShell(deps?: ResearchShellDeps): ResearchShell;
|
|
85
|
-
/** Test seam: drop the per-process cache so the next call re-probes. */
|
|
86
|
-
declare function clearResearchShellCache(): void;
|
|
87
|
-
/**
|
|
88
|
-
* PATH for the search subprocesses the adapters start without a shell, with the
|
|
89
|
-
* research shell's own utilities in front. Without this, `grep` — the fallback
|
|
90
|
-
* when ripgrep is absent — is unresolvable on a Windows box even when a
|
|
91
|
-
* perfectly good `grep.exe` sits in the Git tree beside the shell.
|
|
92
|
-
*/
|
|
93
|
-
declare function researchToolsPath(shell: ResearchShell, basePath: string | undefined): string;
|
|
94
|
-
/**
|
|
95
|
-
* A message explaining a degraded research surface, or null when there is
|
|
96
|
-
* nothing to explain. Surfaced by the adapters on the first refused command so
|
|
97
|
-
* the limitation is visible rather than inferred from bad answers.
|
|
98
|
-
*/
|
|
99
|
-
declare function researchShellWarning(shell: ResearchShell): string | null;
|
|
100
|
-
|
|
101
30
|
/**
|
|
102
31
|
* Tiered classification for the planner's `bash` tool.
|
|
103
32
|
*
|
|
@@ -211,6 +140,77 @@ interface CommandClassification {
|
|
|
211
140
|
*/
|
|
212
141
|
declare function classifyCommand(command: string, opts?: CommandPolicyOptions): CommandClassification;
|
|
213
142
|
|
|
143
|
+
/**
|
|
144
|
+
* Which interpreter runs the planner's `bash` tool, and in which language.
|
|
145
|
+
*
|
|
146
|
+
* `AUTO_COMMANDS` — the read-only tier that runs with no prompt — is `ls`, `cat`,
|
|
147
|
+
* `wc`, `head`, `tail`, `du`, `df`, `file`, `sort`, `uniq`, `basename`, `find`,
|
|
148
|
+
* `grep`. That set is POSIX, and passing it to `shell: true` on Windows means
|
|
149
|
+
* cmd.exe, where most of those names do not exist and `find` is an unrelated
|
|
150
|
+
* program that returns plausible wrong output instead of an error. The planner's
|
|
151
|
+
* whole research surface degraded to guessing, quietly.
|
|
152
|
+
*
|
|
153
|
+
* Rather than write a Windows dialect of every research command — a second
|
|
154
|
+
* behavior to keep in step forever — this finds a POSIX shell to run the
|
|
155
|
+
* existing ones in. Git for Windows ships a full one, and git is already a
|
|
156
|
+
* prerequisite for everything Ordewell does, so in practice it is there. Failing
|
|
157
|
+
* that, cmd.exe is used and the classifier is told so, because the one thing
|
|
158
|
+
* that must never happen is classifying a command in one language and running it
|
|
159
|
+
* in another: `commandPolicy` reads {@link ResearchShell.dialect} for exactly
|
|
160
|
+
* that reason.
|
|
161
|
+
*
|
|
162
|
+
* POSIX resolves to `{ file: null }`, meaning "use `shell: true`" — byte for
|
|
163
|
+
* byte what the adapters did before this module existed.
|
|
164
|
+
*
|
|
165
|
+
* Windows paths are built with `path.win32` explicitly, not the host-flavoured
|
|
166
|
+
* `path`, so the probe is the same on a Windows host as it is under a Linux
|
|
167
|
+
* test runner.
|
|
168
|
+
*/
|
|
169
|
+
type ShellDialect = 'posix' | 'cmd';
|
|
170
|
+
interface ResearchShell {
|
|
171
|
+
/**
|
|
172
|
+
* Executable that takes a command string, or null to use the host default
|
|
173
|
+
* via `shell: true`.
|
|
174
|
+
*/
|
|
175
|
+
file: string | null;
|
|
176
|
+
/** Arguments preceding the command string. */
|
|
177
|
+
args: string[];
|
|
178
|
+
/** The language the command string will be interpreted in. */
|
|
179
|
+
dialect: ShellDialect;
|
|
180
|
+
/**
|
|
181
|
+
* Directory holding this shell's POSIX utilities, when it brings its own.
|
|
182
|
+
* Prepended to PATH for the search subprocesses (`grep`, `tree`) that
|
|
183
|
+
* `execFile` starts without a shell, so they resolve too.
|
|
184
|
+
*/
|
|
185
|
+
utilsDir: string | null;
|
|
186
|
+
}
|
|
187
|
+
interface ResearchShellDeps {
|
|
188
|
+
platform?: NodeJS.Platform;
|
|
189
|
+
exists?: (candidate: string) => boolean;
|
|
190
|
+
env?: NodeJS.ProcessEnv;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The shell the planner's `bash` tool should use on this host. Resolved once per
|
|
194
|
+
* process — the answer cannot change while Ordewell runs, and the probe costs a
|
|
195
|
+
* handful of `stat` calls.
|
|
196
|
+
*/
|
|
197
|
+
declare function resolveResearchShell(deps?: ResearchShellDeps): ResearchShell;
|
|
198
|
+
/** Test seam: drop the per-process cache so the next call re-probes. */
|
|
199
|
+
declare function clearResearchShellCache(): void;
|
|
200
|
+
/**
|
|
201
|
+
* PATH for the search subprocesses the adapters start without a shell, with the
|
|
202
|
+
* research shell's own utilities in front. Without this, `grep` — the fallback
|
|
203
|
+
* when ripgrep is absent — is unresolvable on a Windows box even when a
|
|
204
|
+
* perfectly good `grep.exe` sits in the Git tree beside the shell.
|
|
205
|
+
*/
|
|
206
|
+
declare function researchToolsPath(shell: ResearchShell, basePath: string | undefined): string;
|
|
207
|
+
/**
|
|
208
|
+
* A message explaining a degraded research surface, or null when there is
|
|
209
|
+
* nothing to explain. Surfaced by the adapters on the first refused command so
|
|
210
|
+
* the limitation is visible rather than inferred from bad answers.
|
|
211
|
+
*/
|
|
212
|
+
declare function researchShellWarning(shell: ResearchShell): string | null;
|
|
213
|
+
|
|
214
214
|
/**
|
|
215
215
|
* The policy half of the planner's filesystem: path confinement, the tiered
|
|
216
216
|
* `bash` gate, and the definition-first symbol lookup. Adapters supply only the
|
|
@@ -4665,6 +4665,8 @@ declare function buildRunnerInvocation(opts: {
|
|
|
4665
4665
|
headless?: boolean;
|
|
4666
4666
|
interactive?: boolean;
|
|
4667
4667
|
cwd?: string;
|
|
4668
|
+
/** The installed runner's `--version`, for a manifest whose command line differs by major version. */
|
|
4669
|
+
runnerVersion?: string;
|
|
4668
4670
|
registry: RunnerRegistry;
|
|
4669
4671
|
}): RunnerInvocation;
|
|
4670
4672
|
|
|
@@ -4721,6 +4723,8 @@ interface TmuxRunnerDeps {
|
|
|
4721
4723
|
pollIntervalMs?: number;
|
|
4722
4724
|
logDir?: string;
|
|
4723
4725
|
clipboardCommand?: () => string | null;
|
|
4726
|
+
/** Reads the runner's version, for a manifest whose command line differs by major version. */
|
|
4727
|
+
runnerVersion?: RunnerVersionProbe;
|
|
4724
4728
|
}
|
|
4725
4729
|
declare class TmuxSession extends AbstractTerminalSession {
|
|
4726
4730
|
private tmuxSession;
|
|
@@ -4790,6 +4794,7 @@ declare class TmuxRunner extends AbstractRunner<TmuxSession> {
|
|
|
4790
4794
|
private pollIntervalMs;
|
|
4791
4795
|
private logDir;
|
|
4792
4796
|
private clipboardCommand;
|
|
4797
|
+
private runnerVersion;
|
|
4793
4798
|
/** Retries get a freshly named window so a failed attempt's output stays inspectable. */
|
|
4794
4799
|
private attempts;
|
|
4795
4800
|
private ready;
|