@ordewell/core 0.7.0 → 0.7.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/{IFileSystem-DgpX0BU7.d.mts → IFileSystem-B5asBRDa.d.mts} +1 -1
- package/dist/{IFileSystem-D4ADfTrX.d.ts → IFileSystem-CbCmUDBn.d.ts} +1 -1
- package/dist/{ModeResolver-Cv01ZDd9.d.mts → ModeResolver-DcqAho4y.d.mts} +1 -1
- package/dist/{ModeResolver-BEcRAz1c.d.ts → ModeResolver-DtfhWeVL.d.ts} +1 -1
- package/dist/{Task-CoKhvBa1.d.mts → Task-BpzIbunq.d.mts} +146 -22
- package/dist/{Task-CoKhvBa1.d.ts → Task-BpzIbunq.d.ts} +146 -22
- package/dist/{chunk-LSGY7AIZ.mjs → chunk-AJ5KDO6V.mjs} +219 -77
- package/dist/chunk-AJ5KDO6V.mjs.map +1 -0
- package/dist/chunk-H5O74L77.mjs +185 -0
- package/dist/chunk-H5O74L77.mjs.map +1 -0
- package/dist/{chunk-YU4UKKKI.mjs → chunk-MZYZS7B3.mjs} +14 -186
- package/dist/chunk-MZYZS7B3.mjs.map +1 -0
- package/dist/{chunk-J3YSTPCE.mjs → chunk-OUIQWNS3.mjs} +8 -5
- package/dist/chunk-OUIQWNS3.mjs.map +1 -0
- package/dist/{chunk-N66ZHFGN.mjs → chunk-OYUSADFM.mjs} +11 -1
- package/dist/chunk-OYUSADFM.mjs.map +1 -0
- package/dist/{chunk-HPNUFBIT.mjs → chunk-V3JHS7AX.mjs} +9 -1
- package/dist/chunk-V3JHS7AX.mjs.map +1 -0
- package/dist/index.d.mts +909 -459
- package/dist/index.d.ts +909 -459
- package/dist/index.js +5671 -3776
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5548 -3795
- package/dist/index.mjs.map +1 -1
- package/dist/order-labels.d.mts +15 -2
- package/dist/order-labels.d.ts +15 -2
- package/dist/order-labels.js +12 -2
- package/dist/order-labels.js.map +1 -1
- package/dist/order-labels.mjs +7 -3
- package/dist/{parsing-DMdOq-BV.d.ts → parsing-COFGUEWx.d.ts} +2 -2
- package/dist/{parsing-B4OCHH1_.d.mts → parsing-D0uo-Icd.d.mts} +2 -2
- package/dist/parsing.d.mts +3 -3
- package/dist/parsing.d.ts +3 -3
- package/dist/parsing.js +6 -3
- package/dist/parsing.js.map +1 -1
- package/dist/parsing.mjs +4 -3
- package/dist/{plan-utils-CD1Xu65s.d.mts → plan-utils-CdW3mxt5.d.mts} +226 -9
- package/dist/{plan-utils-BdYPRBno.d.ts → plan-utils-D4Z8UyLL.d.ts} +226 -9
- package/dist/plan-utils.d.mts +4 -3
- package/dist/plan-utils.d.ts +4 -3
- package/dist/plan-utils.js +210 -3
- package/dist/plan-utils.js.map +1 -1
- package/dist/plan-utils.mjs +44 -3
- package/dist/testing.d.mts +17 -5
- package/dist/testing.d.ts +17 -5
- package/dist/testing.js +50 -3
- package/dist/testing.js.map +1 -1
- package/dist/testing.mjs +50 -5
- package/dist/testing.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-HPNUFBIT.mjs.map +0 -1
- package/dist/chunk-J3YSTPCE.mjs.map +0 -1
- package/dist/chunk-LSGY7AIZ.mjs.map +0 -1
- package/dist/chunk-N66ZHFGN.mjs.map +0 -1
- package/dist/chunk-YU4UKKKI.mjs.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { R as RunnerModeInfo } from './ModeResolver-
|
|
1
|
+
import { bc as StructuredTurnEnd, be as SubagentOutcome, bF as UsageRecord, k as ApprovalDecision, ba as StructuredEvent, b0 as RunnerId, z as DiscoveredModel, bi as Task, ac as LegacyPlanState, aR as QueuedMessage, bG as UsageTotals, bM as Verdict, bk as TaskIsolation, bz as TaskTransport, r as AwaitingReason, aS as QueuedTaskMessage, U as IsolationHandoff, $ as IsolationMergeResult, aY as ResearchStep, l as ApprovalKind, q as ApprovalSource, aZ as ResearchStepOutcome, w as ConversationMessage, aW as ResearchLogEntry, aC as PlannerUsage, bl as TaskIsolationState } from './Task-BpzIbunq.mjs';
|
|
2
|
+
import { R as RunnerModeInfo } from './ModeResolver-DcqAho4y.mjs';
|
|
3
|
+
import './order-labels.mjs';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* One entry of a structured task's log (ADR-0018, P1): what a runner did,
|
|
@@ -11,11 +12,12 @@ import { R as RunnerModeInfo } from './ModeResolver-Cv01ZDd9.mjs';
|
|
|
11
12
|
* without a format version.
|
|
12
13
|
*/
|
|
13
14
|
type TaskLogEvent =
|
|
14
|
-
/** A turn began by delivering `message`; `messageId` names it when it had been queued. */
|
|
15
|
+
/** A turn began by delivering `message`; `messageId` names it when it had been queued, `forced` when it was force sent. */
|
|
15
16
|
{
|
|
16
17
|
type: 'turn_start';
|
|
17
18
|
message: string;
|
|
18
19
|
messageId?: string;
|
|
20
|
+
forced?: boolean;
|
|
19
21
|
} | {
|
|
20
22
|
type: 'turn_end';
|
|
21
23
|
reason: StructuredTurnEnd;
|
|
@@ -65,13 +67,37 @@ type TaskLogEvent =
|
|
|
65
67
|
} | {
|
|
66
68
|
type: 'usage';
|
|
67
69
|
record: UsageRecord;
|
|
68
|
-
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Waiting in Ordewell's queue — again, for a message the runner was handed
|
|
73
|
+
* and let go of (ADR-0023, D4). `forced` moves it ahead of the rest (F2).
|
|
74
|
+
*/
|
|
75
|
+
| {
|
|
69
76
|
type: 'message_queued';
|
|
70
77
|
messageId: string;
|
|
71
78
|
text: string;
|
|
79
|
+
forced?: boolean;
|
|
72
80
|
} | {
|
|
73
81
|
type: 'message_removed';
|
|
74
82
|
messageId: string;
|
|
83
|
+
} | {
|
|
84
|
+
type: 'message_undelivered';
|
|
85
|
+
messageId: string;
|
|
86
|
+
text: string;
|
|
87
|
+
}
|
|
88
|
+
/** The runner accepted a queued message into its running turn; it can no longer be taken back. */
|
|
89
|
+
| {
|
|
90
|
+
type: 'message_handed_over';
|
|
91
|
+
messageId: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The model read a message inside its running turn (ADR-0023, Q2), logged
|
|
95
|
+
* where it read it. A message that opened a turn is that turn's `turn_start`.
|
|
96
|
+
*/
|
|
97
|
+
| {
|
|
98
|
+
type: 'message_delivered';
|
|
99
|
+
messageId: string;
|
|
100
|
+
text: string;
|
|
75
101
|
}
|
|
76
102
|
/** The agent's own words for a failed turn. */
|
|
77
103
|
| {
|
|
@@ -263,6 +289,8 @@ type SerializedTaskStatus = {
|
|
|
263
289
|
transport?: Pick<TaskTransport, 'kind' | 'fallback'>;
|
|
264
290
|
/** What an `awaiting_user` task waits on, when it was saved (ADR-0018, W1). */
|
|
265
291
|
awaitingReason?: AwaitingReason;
|
|
292
|
+
/** The whole question of the checkpoint the task waits at; absent when it waits at none. */
|
|
293
|
+
checkpoint?: string;
|
|
266
294
|
/** Messages waiting for a structured task's turn to end, oldest first; absent when there are none. */
|
|
267
295
|
queued?: QueuedTaskMessage[];
|
|
268
296
|
/** Set when the task can be continued in its saved runner session (ADR-0018, K1); the id itself stays in the daemon. */
|
|
@@ -483,8 +511,6 @@ type SessionMessage =
|
|
|
483
511
|
};
|
|
484
512
|
} | {
|
|
485
513
|
type: 'execution_stopped';
|
|
486
|
-
} | {
|
|
487
|
-
type: 'queue_ready';
|
|
488
514
|
} | {
|
|
489
515
|
type: 'task_updated';
|
|
490
516
|
taskId: string;
|
|
@@ -578,7 +604,7 @@ type SessionNotice = {
|
|
|
578
604
|
};
|
|
579
605
|
type SessionBroadcaster = (msg: SessionMessage) => void;
|
|
580
606
|
declare function serializeTask(t: Task): SerializedTask;
|
|
581
|
-
declare function serializeTaskStatus(t: Task, idleSince?: string | null, isolation?: TaskIsolation | null, queued?: readonly QueuedTaskMessage[], awaitingApproval?: number, mergeGate?: readonly string[]): SerializedTaskStatus;
|
|
607
|
+
declare function serializeTaskStatus(t: Task, idleSince?: string | null, isolation?: TaskIsolation | null, queued?: readonly QueuedTaskMessage[], awaitingApproval?: number, mergeGate?: readonly string[], checkpoint?: string): SerializedTaskStatus;
|
|
582
608
|
declare function serializePlan(plan: LegacyPlanState): SerializedPlan;
|
|
583
609
|
declare function executionSummary(tasks: readonly Task[]): {
|
|
584
610
|
total: number;
|
|
@@ -794,7 +820,7 @@ declare function fromTranscript(conversationHistory: readonly ConversationMessag
|
|
|
794
820
|
* one at a time.
|
|
795
821
|
*/
|
|
796
822
|
interface TaskLogView extends BlockList {
|
|
797
|
-
/** Messages
|
|
823
|
+
/** Messages not yet delivered, oldest first; `handedOver` marks the ones the runner already has. */
|
|
798
824
|
readonly queued: readonly QueuedTaskMessage[];
|
|
799
825
|
/** A turn is running. */
|
|
800
826
|
readonly working: boolean;
|
|
@@ -925,4 +951,195 @@ declare function hasHiddenDetail(blocks: readonly DisplayBlock[]): boolean;
|
|
|
925
951
|
/** The conversation line for a task starting, worded the same on every surface. */
|
|
926
952
|
declare function taskStartedNotice(title: string, runner?: string): string;
|
|
927
953
|
|
|
928
|
-
|
|
954
|
+
/**
|
|
955
|
+
* What a row's status means to a reader, before any surface picks a word,
|
|
956
|
+
* icon or colour for it. `quiet` is a running task whose runner has printed
|
|
957
|
+
* nothing for a while — the status is still `in_progress`, so only the row,
|
|
958
|
+
* never the store, tells the two apart.
|
|
959
|
+
*/
|
|
960
|
+
type TaskStatusKind = 'todo' | 'running' | 'quiet' | 'awaiting' | 'blocked' | 'failed' | 'done';
|
|
961
|
+
/** A task with a runner live behind it. `in_progress` is the store's own status. */
|
|
962
|
+
declare const isTaskRunning: (task: {
|
|
963
|
+
status: string;
|
|
964
|
+
}) => boolean;
|
|
965
|
+
/** Statuses of a task that has not started: what can still be started by hand, or flipped between change and ops (ADR-0020). */
|
|
966
|
+
declare const NOT_STARTED: ReadonlySet<string>;
|
|
967
|
+
declare function taskStatusKind(task: {
|
|
968
|
+
status: string;
|
|
969
|
+
idleSince?: string | null;
|
|
970
|
+
}): TaskStatusKind;
|
|
971
|
+
/** What an awaiting_user task waits on (ADR-0018, W1); null when no reason was saved. */
|
|
972
|
+
declare function awaitingLabel(task: {
|
|
973
|
+
status: string;
|
|
974
|
+
awaitingReason?: AwaitingReason;
|
|
975
|
+
}): string | null;
|
|
976
|
+
/** Runner requests a task waits on (ADR-0018, A1); null when none do. */
|
|
977
|
+
declare function approvalLabel(count: number | undefined): string | null;
|
|
978
|
+
|
|
979
|
+
/** What a user can do to one task from its row. */
|
|
980
|
+
type TaskRowAction = 'cancel' | 'skip' | 'force-start' | 'complete' | 'uncomplete';
|
|
981
|
+
/** A subtask runs with its parent, so its row offers a different set than a top-level task's. */
|
|
982
|
+
type TaskRowPlacement = 'task' | 'subtask';
|
|
983
|
+
interface ActionSubject {
|
|
984
|
+
status: string;
|
|
985
|
+
type: 'ai' | 'user';
|
|
986
|
+
}
|
|
987
|
+
/** The actions a task's row offers while a plan runs, in the order they are laid out. */
|
|
988
|
+
declare function taskRowActions(task: ActionSubject, placement?: TaskRowPlacement): TaskRowAction[];
|
|
989
|
+
/**
|
|
990
|
+
* One toggle in both directions: a done task is taken back, anything else is
|
|
991
|
+
* marked done. A second control for the reverse is one nobody remembers.
|
|
992
|
+
*/
|
|
993
|
+
declare function markAction(task: {
|
|
994
|
+
status: string;
|
|
995
|
+
}): 'complete' | 'uncomplete';
|
|
996
|
+
/**
|
|
997
|
+
* The mark an action asks the session for, or null when it is not a mark.
|
|
998
|
+
* Skip has no request of its own: a skipped task is marked complete, so the
|
|
999
|
+
* run moves on past it.
|
|
1000
|
+
*/
|
|
1001
|
+
declare function markRequestFor(action: string): 'complete' | 'uncomplete' | null;
|
|
1002
|
+
/** Change versus ops can still be flipped (ADR-0020): an AI task that has not started. */
|
|
1003
|
+
declare function opsEditable(task: ActionSubject): boolean;
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* A task as both surfaces hold it, with the live state each tracks beside it
|
|
1007
|
+
* (silence, approvals, isolation, the merge gate). Structural, because the TUI
|
|
1008
|
+
* projects tasks into its own shape.
|
|
1009
|
+
*/
|
|
1010
|
+
interface TaskRowSubject {
|
|
1011
|
+
id: string;
|
|
1012
|
+
order: number;
|
|
1013
|
+
type: 'ai' | 'user';
|
|
1014
|
+
status: string;
|
|
1015
|
+
dependencies: readonly string[];
|
|
1016
|
+
taskMode?: string;
|
|
1017
|
+
ops?: boolean;
|
|
1018
|
+
idleSince?: string | null;
|
|
1019
|
+
awaitingReason?: AwaitingReason;
|
|
1020
|
+
awaitingApproval?: number;
|
|
1021
|
+
isolation?: TaskRowIsolation | null;
|
|
1022
|
+
mergeGate?: readonly string[];
|
|
1023
|
+
forcedPastGate?: readonly string[];
|
|
1024
|
+
}
|
|
1025
|
+
interface TaskRowIsolation {
|
|
1026
|
+
state: TaskIsolationState;
|
|
1027
|
+
repos?: string[];
|
|
1028
|
+
conflictRepo?: string;
|
|
1029
|
+
conflictFiles?: string[];
|
|
1030
|
+
repair?: {
|
|
1031
|
+
attempt: number;
|
|
1032
|
+
limit: number;
|
|
1033
|
+
};
|
|
1034
|
+
repairedFiles?: string[];
|
|
1035
|
+
}
|
|
1036
|
+
interface TaskRowContext {
|
|
1037
|
+
/** Set for a subtask: it is labelled by its dotted order. */
|
|
1038
|
+
parent?: {
|
|
1039
|
+
order: number;
|
|
1040
|
+
} | null;
|
|
1041
|
+
/** Which action set the row offers; a row with a parent is a subtask's unless told otherwise. */
|
|
1042
|
+
placement?: TaskRowPlacement;
|
|
1043
|
+
/** Order of each task a dependency or gate may name; one missing from it is shown by id. */
|
|
1044
|
+
orderOf?: ReadonlyMap<string, number>;
|
|
1045
|
+
/** The modes the task's runner declares; autonomy is a tag on one of them (ADR-0001). */
|
|
1046
|
+
modes?: readonly {
|
|
1047
|
+
id: string;
|
|
1048
|
+
autonomous?: boolean;
|
|
1049
|
+
}[];
|
|
1050
|
+
}
|
|
1051
|
+
/** Whether the row stands for an AI task, a manual one, or an ops task (ADR-0020). */
|
|
1052
|
+
type TaskRowKind = 'ai' | 'user' | 'ops';
|
|
1053
|
+
interface TaskRowView {
|
|
1054
|
+
/** "2", or "2.1" for a subtask. */
|
|
1055
|
+
orderLabel: string;
|
|
1056
|
+
kind: TaskRowKind;
|
|
1057
|
+
status: TaskStatusKind;
|
|
1058
|
+
/** A runner is live behind it — `quiet` included. */
|
|
1059
|
+
running: boolean;
|
|
1060
|
+
/** What an awaiting task waits on, in sentence case; null when nothing was saved. */
|
|
1061
|
+
awaiting: string | null;
|
|
1062
|
+
/** Runner requests waiting on the user, in sentence case; null when none do. */
|
|
1063
|
+
approvals: string | null;
|
|
1064
|
+
/** The task's mode is tagged autonomous: it runs without permission prompts. */
|
|
1065
|
+
autonomous: boolean;
|
|
1066
|
+
/** The repos its isolated work changed, by path; empty for a group of one. */
|
|
1067
|
+
repos: string[];
|
|
1068
|
+
/** Integration stopped on a conflict: the one isolation state that needs the user. */
|
|
1069
|
+
conflict: {
|
|
1070
|
+
repo: string | null;
|
|
1071
|
+
files: string | null;
|
|
1072
|
+
} | null;
|
|
1073
|
+
/** A conflict repair in flight (ADR-0015) — progress, not a blocker. */
|
|
1074
|
+
repairing: {
|
|
1075
|
+
files: string | null;
|
|
1076
|
+
attempt: {
|
|
1077
|
+
attempt: number;
|
|
1078
|
+
limit: number;
|
|
1079
|
+
} | null;
|
|
1080
|
+
} | null;
|
|
1081
|
+
/** The files a conflict repair was started for; `landed` once the task is integrated. */
|
|
1082
|
+
repaired: {
|
|
1083
|
+
files: string;
|
|
1084
|
+
landed: boolean;
|
|
1085
|
+
} | null;
|
|
1086
|
+
/** The dependencies, by reference, whose work is not merged into the user's branch yet. */
|
|
1087
|
+
mergeGate: string[] | null;
|
|
1088
|
+
/** An ops task changed tracked files in the user's checkout and nothing was committed. */
|
|
1089
|
+
opsChangedFiles: boolean;
|
|
1090
|
+
/** The dependencies, by title, a force start went past the merge gate of. */
|
|
1091
|
+
forcedPastGate: readonly string[] | null;
|
|
1092
|
+
/** The task's dependencies, by reference. */
|
|
1093
|
+
dependencies: string[];
|
|
1094
|
+
/** What the row offers while a plan runs. */
|
|
1095
|
+
actions: TaskRowAction[];
|
|
1096
|
+
/** The one mark its toggle sets. */
|
|
1097
|
+
mark: 'complete' | 'uncomplete';
|
|
1098
|
+
opsEditable: boolean;
|
|
1099
|
+
}
|
|
1100
|
+
/** The repos a task changed, for a row that names them; none for a group of one. */
|
|
1101
|
+
declare const namedRepos: (repos: readonly string[] | undefined) => string[];
|
|
1102
|
+
/**
|
|
1103
|
+
* Everything a plan row says about one task, decided once: each surface picks
|
|
1104
|
+
* its own words, glyphs and casing for these facts, and derives none of them.
|
|
1105
|
+
*/
|
|
1106
|
+
declare function taskRowView(task: TaskRowSubject, context?: TaskRowContext): TaskRowView;
|
|
1107
|
+
|
|
1108
|
+
interface Named {
|
|
1109
|
+
id: string;
|
|
1110
|
+
order: number;
|
|
1111
|
+
title: string;
|
|
1112
|
+
subtasks?: readonly Named[];
|
|
1113
|
+
}
|
|
1114
|
+
/** Each id as "#N title", subtasks included; one the plan no longer holds stays a bare id. */
|
|
1115
|
+
declare function titledRefs(ids: readonly string[], tasks: readonly Named[]): string[];
|
|
1116
|
+
/**
|
|
1117
|
+
* What removing a task does to the tasks that depend on it, or null when none
|
|
1118
|
+
* do. Named rather than counted: the removal rewrites their dependency lists,
|
|
1119
|
+
* and a bare "Remove task?" would hide that.
|
|
1120
|
+
*/
|
|
1121
|
+
declare function dependentsNotice(dependents: readonly {
|
|
1122
|
+
order: number;
|
|
1123
|
+
title: string;
|
|
1124
|
+
}[]): string | null;
|
|
1125
|
+
/**
|
|
1126
|
+
* What a start past a merge gate is asked with (ADR-0020): the work the task
|
|
1127
|
+
* would act without, named. `subject` is how the asking surface refers to the
|
|
1128
|
+
* task — "It" under a title that already names it.
|
|
1129
|
+
*/
|
|
1130
|
+
declare function pastGateConfirmation(unmerged: readonly string[], subject?: string): string;
|
|
1131
|
+
interface NewTaskFields {
|
|
1132
|
+
title: string;
|
|
1133
|
+
description: string;
|
|
1134
|
+
prompt: string;
|
|
1135
|
+
type: 'ai';
|
|
1136
|
+
}
|
|
1137
|
+
/**
|
|
1138
|
+
* What a hand-added task starts as: an AI task whose description is its title
|
|
1139
|
+
* and whose prompt, unless one was typed, is too. Null for a title with nothing
|
|
1140
|
+
* in it, rather than a nameless task. Assignments are left for the session to
|
|
1141
|
+
* derive from the runner's catalog.
|
|
1142
|
+
*/
|
|
1143
|
+
declare function newTaskFields(title: string, prompt?: string): NewTaskFields | null;
|
|
1144
|
+
|
|
1145
|
+
export { type UsageBlock as $, type ApplyTaskOpsResult as A, type TaskOp as B, CHECKPOINT_TRUNCATE_LENGTH as C, type DiffRow as D, EMPTY_CONVERSATION as E, type TaskRef as F, type GatedConversation as G, type TaskRowAction as H, type TaskRowContext as I, type TaskRowIsolation as J, type TaskRowKind as K, type LocalEntry as L, type MergeGateView as M, NOT_STARTED as N, type OutputPreview as O, type PlanBlock as P, type TaskRowPlacement as Q, type TaskRowSubject as R, type SerializedPlan as S, type TakenPrompt as T, type TaskRowView as U, type TaskStatusKind as V, type ThinkingDisplayBlock as W, type ToolBlock as X, type ToolHeadline as Y, type ToolStatus as Z, type TurnGate as _, type ApprovalBlock as a, aheadOfDraft as a0, applyTaskOps as a1, approvalLabel as a2, awaitingLabel as a3, canMergeTasks as a4, canSetDependencies as a5, canSplitTask as a6, capConflictFiles as a7, classifyOutcome as a8, coalesceTaskLog as a9, runnerToolSubject as aA, serializePlan as aB, serializeTask as aC, serializeTaskStatus as aD, stopTurn as aE, summarizeToolCall as aF, taskRowActions as aG, taskRowView as aH, taskStartedNotice as aI, taskStatusKind as aJ, textHasTaskOps as aK, titledRefs as aL, toTaskLogEvent as aM, toolHeadline as aN, trimToolOutput as aO, truncateCheckpointSummary as aP, unsendAll as aQ, unsendLatest as aR, dependencyCandidates as aa, dependentsNotice as ab, dependentsOf as ac, diffRows as ad, diffStat as ae, diffSummary as af, digestTaskLog as ag, drainNext as ah, executionSummary as ai, followTurn as aj, fromTranscript as ak, hasHiddenDetail as al, holdPrompt as am, isTaskRunning as an, markAction as ao, markRequestFor as ap, namedRepos as aq, newTaskFields as ar, opsEditable as as, outputLines as at, outputPreview as au, parseTaskOpsJson as av, pastGateConfirmation as aw, reduceConversation as ax, reduceTaskLog as ay, replayTaskLog as az, type ApprovalStatus as b, type ConversationInput as c, type ConversationView as d, type DiffRowKind as e, type DiffStat as f, type DisplayBlock as g, EMPTY_HOLD as h, EMPTY_TASK_LOG as i, type EditCatalog as j, type MessageBlock as k, type MessageRole as l, NO_TURN as m, type NewTaskFields as n, type PlanMarkerStatus as o, type PromptHold as p, type SerializedTask as q, type SerializedTaskStatus as r, type SessionBroadcaster as s, type SessionMessage as t, type SessionNotice as u, type SubagentBlock as v, type SubagentChild as w, type SubagentStatus as x, type TaskLogEvent as y, type TaskLogView as z };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { R as RunnerModeInfo } from './ModeResolver-
|
|
1
|
+
import { bc as StructuredTurnEnd, be as SubagentOutcome, bF as UsageRecord, k as ApprovalDecision, ba as StructuredEvent, b0 as RunnerId, z as DiscoveredModel, bi as Task, ac as LegacyPlanState, aR as QueuedMessage, bG as UsageTotals, bM as Verdict, bk as TaskIsolation, bz as TaskTransport, r as AwaitingReason, aS as QueuedTaskMessage, U as IsolationHandoff, $ as IsolationMergeResult, aY as ResearchStep, l as ApprovalKind, q as ApprovalSource, aZ as ResearchStepOutcome, w as ConversationMessage, aW as ResearchLogEntry, aC as PlannerUsage, bl as TaskIsolationState } from './Task-BpzIbunq.js';
|
|
2
|
+
import { R as RunnerModeInfo } from './ModeResolver-DtfhWeVL.js';
|
|
3
|
+
import './order-labels.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* One entry of a structured task's log (ADR-0018, P1): what a runner did,
|
|
@@ -11,11 +12,12 @@ import { R as RunnerModeInfo } from './ModeResolver-BEcRAz1c.js';
|
|
|
11
12
|
* without a format version.
|
|
12
13
|
*/
|
|
13
14
|
type TaskLogEvent =
|
|
14
|
-
/** A turn began by delivering `message`; `messageId` names it when it had been queued. */
|
|
15
|
+
/** A turn began by delivering `message`; `messageId` names it when it had been queued, `forced` when it was force sent. */
|
|
15
16
|
{
|
|
16
17
|
type: 'turn_start';
|
|
17
18
|
message: string;
|
|
18
19
|
messageId?: string;
|
|
20
|
+
forced?: boolean;
|
|
19
21
|
} | {
|
|
20
22
|
type: 'turn_end';
|
|
21
23
|
reason: StructuredTurnEnd;
|
|
@@ -65,13 +67,37 @@ type TaskLogEvent =
|
|
|
65
67
|
} | {
|
|
66
68
|
type: 'usage';
|
|
67
69
|
record: UsageRecord;
|
|
68
|
-
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Waiting in Ordewell's queue — again, for a message the runner was handed
|
|
73
|
+
* and let go of (ADR-0023, D4). `forced` moves it ahead of the rest (F2).
|
|
74
|
+
*/
|
|
75
|
+
| {
|
|
69
76
|
type: 'message_queued';
|
|
70
77
|
messageId: string;
|
|
71
78
|
text: string;
|
|
79
|
+
forced?: boolean;
|
|
72
80
|
} | {
|
|
73
81
|
type: 'message_removed';
|
|
74
82
|
messageId: string;
|
|
83
|
+
} | {
|
|
84
|
+
type: 'message_undelivered';
|
|
85
|
+
messageId: string;
|
|
86
|
+
text: string;
|
|
87
|
+
}
|
|
88
|
+
/** The runner accepted a queued message into its running turn; it can no longer be taken back. */
|
|
89
|
+
| {
|
|
90
|
+
type: 'message_handed_over';
|
|
91
|
+
messageId: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The model read a message inside its running turn (ADR-0023, Q2), logged
|
|
95
|
+
* where it read it. A message that opened a turn is that turn's `turn_start`.
|
|
96
|
+
*/
|
|
97
|
+
| {
|
|
98
|
+
type: 'message_delivered';
|
|
99
|
+
messageId: string;
|
|
100
|
+
text: string;
|
|
75
101
|
}
|
|
76
102
|
/** The agent's own words for a failed turn. */
|
|
77
103
|
| {
|
|
@@ -263,6 +289,8 @@ type SerializedTaskStatus = {
|
|
|
263
289
|
transport?: Pick<TaskTransport, 'kind' | 'fallback'>;
|
|
264
290
|
/** What an `awaiting_user` task waits on, when it was saved (ADR-0018, W1). */
|
|
265
291
|
awaitingReason?: AwaitingReason;
|
|
292
|
+
/** The whole question of the checkpoint the task waits at; absent when it waits at none. */
|
|
293
|
+
checkpoint?: string;
|
|
266
294
|
/** Messages waiting for a structured task's turn to end, oldest first; absent when there are none. */
|
|
267
295
|
queued?: QueuedTaskMessage[];
|
|
268
296
|
/** Set when the task can be continued in its saved runner session (ADR-0018, K1); the id itself stays in the daemon. */
|
|
@@ -483,8 +511,6 @@ type SessionMessage =
|
|
|
483
511
|
};
|
|
484
512
|
} | {
|
|
485
513
|
type: 'execution_stopped';
|
|
486
|
-
} | {
|
|
487
|
-
type: 'queue_ready';
|
|
488
514
|
} | {
|
|
489
515
|
type: 'task_updated';
|
|
490
516
|
taskId: string;
|
|
@@ -578,7 +604,7 @@ type SessionNotice = {
|
|
|
578
604
|
};
|
|
579
605
|
type SessionBroadcaster = (msg: SessionMessage) => void;
|
|
580
606
|
declare function serializeTask(t: Task): SerializedTask;
|
|
581
|
-
declare function serializeTaskStatus(t: Task, idleSince?: string | null, isolation?: TaskIsolation | null, queued?: readonly QueuedTaskMessage[], awaitingApproval?: number, mergeGate?: readonly string[]): SerializedTaskStatus;
|
|
607
|
+
declare function serializeTaskStatus(t: Task, idleSince?: string | null, isolation?: TaskIsolation | null, queued?: readonly QueuedTaskMessage[], awaitingApproval?: number, mergeGate?: readonly string[], checkpoint?: string): SerializedTaskStatus;
|
|
582
608
|
declare function serializePlan(plan: LegacyPlanState): SerializedPlan;
|
|
583
609
|
declare function executionSummary(tasks: readonly Task[]): {
|
|
584
610
|
total: number;
|
|
@@ -794,7 +820,7 @@ declare function fromTranscript(conversationHistory: readonly ConversationMessag
|
|
|
794
820
|
* one at a time.
|
|
795
821
|
*/
|
|
796
822
|
interface TaskLogView extends BlockList {
|
|
797
|
-
/** Messages
|
|
823
|
+
/** Messages not yet delivered, oldest first; `handedOver` marks the ones the runner already has. */
|
|
798
824
|
readonly queued: readonly QueuedTaskMessage[];
|
|
799
825
|
/** A turn is running. */
|
|
800
826
|
readonly working: boolean;
|
|
@@ -925,4 +951,195 @@ declare function hasHiddenDetail(blocks: readonly DisplayBlock[]): boolean;
|
|
|
925
951
|
/** The conversation line for a task starting, worded the same on every surface. */
|
|
926
952
|
declare function taskStartedNotice(title: string, runner?: string): string;
|
|
927
953
|
|
|
928
|
-
|
|
954
|
+
/**
|
|
955
|
+
* What a row's status means to a reader, before any surface picks a word,
|
|
956
|
+
* icon or colour for it. `quiet` is a running task whose runner has printed
|
|
957
|
+
* nothing for a while — the status is still `in_progress`, so only the row,
|
|
958
|
+
* never the store, tells the two apart.
|
|
959
|
+
*/
|
|
960
|
+
type TaskStatusKind = 'todo' | 'running' | 'quiet' | 'awaiting' | 'blocked' | 'failed' | 'done';
|
|
961
|
+
/** A task with a runner live behind it. `in_progress` is the store's own status. */
|
|
962
|
+
declare const isTaskRunning: (task: {
|
|
963
|
+
status: string;
|
|
964
|
+
}) => boolean;
|
|
965
|
+
/** Statuses of a task that has not started: what can still be started by hand, or flipped between change and ops (ADR-0020). */
|
|
966
|
+
declare const NOT_STARTED: ReadonlySet<string>;
|
|
967
|
+
declare function taskStatusKind(task: {
|
|
968
|
+
status: string;
|
|
969
|
+
idleSince?: string | null;
|
|
970
|
+
}): TaskStatusKind;
|
|
971
|
+
/** What an awaiting_user task waits on (ADR-0018, W1); null when no reason was saved. */
|
|
972
|
+
declare function awaitingLabel(task: {
|
|
973
|
+
status: string;
|
|
974
|
+
awaitingReason?: AwaitingReason;
|
|
975
|
+
}): string | null;
|
|
976
|
+
/** Runner requests a task waits on (ADR-0018, A1); null when none do. */
|
|
977
|
+
declare function approvalLabel(count: number | undefined): string | null;
|
|
978
|
+
|
|
979
|
+
/** What a user can do to one task from its row. */
|
|
980
|
+
type TaskRowAction = 'cancel' | 'skip' | 'force-start' | 'complete' | 'uncomplete';
|
|
981
|
+
/** A subtask runs with its parent, so its row offers a different set than a top-level task's. */
|
|
982
|
+
type TaskRowPlacement = 'task' | 'subtask';
|
|
983
|
+
interface ActionSubject {
|
|
984
|
+
status: string;
|
|
985
|
+
type: 'ai' | 'user';
|
|
986
|
+
}
|
|
987
|
+
/** The actions a task's row offers while a plan runs, in the order they are laid out. */
|
|
988
|
+
declare function taskRowActions(task: ActionSubject, placement?: TaskRowPlacement): TaskRowAction[];
|
|
989
|
+
/**
|
|
990
|
+
* One toggle in both directions: a done task is taken back, anything else is
|
|
991
|
+
* marked done. A second control for the reverse is one nobody remembers.
|
|
992
|
+
*/
|
|
993
|
+
declare function markAction(task: {
|
|
994
|
+
status: string;
|
|
995
|
+
}): 'complete' | 'uncomplete';
|
|
996
|
+
/**
|
|
997
|
+
* The mark an action asks the session for, or null when it is not a mark.
|
|
998
|
+
* Skip has no request of its own: a skipped task is marked complete, so the
|
|
999
|
+
* run moves on past it.
|
|
1000
|
+
*/
|
|
1001
|
+
declare function markRequestFor(action: string): 'complete' | 'uncomplete' | null;
|
|
1002
|
+
/** Change versus ops can still be flipped (ADR-0020): an AI task that has not started. */
|
|
1003
|
+
declare function opsEditable(task: ActionSubject): boolean;
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* A task as both surfaces hold it, with the live state each tracks beside it
|
|
1007
|
+
* (silence, approvals, isolation, the merge gate). Structural, because the TUI
|
|
1008
|
+
* projects tasks into its own shape.
|
|
1009
|
+
*/
|
|
1010
|
+
interface TaskRowSubject {
|
|
1011
|
+
id: string;
|
|
1012
|
+
order: number;
|
|
1013
|
+
type: 'ai' | 'user';
|
|
1014
|
+
status: string;
|
|
1015
|
+
dependencies: readonly string[];
|
|
1016
|
+
taskMode?: string;
|
|
1017
|
+
ops?: boolean;
|
|
1018
|
+
idleSince?: string | null;
|
|
1019
|
+
awaitingReason?: AwaitingReason;
|
|
1020
|
+
awaitingApproval?: number;
|
|
1021
|
+
isolation?: TaskRowIsolation | null;
|
|
1022
|
+
mergeGate?: readonly string[];
|
|
1023
|
+
forcedPastGate?: readonly string[];
|
|
1024
|
+
}
|
|
1025
|
+
interface TaskRowIsolation {
|
|
1026
|
+
state: TaskIsolationState;
|
|
1027
|
+
repos?: string[];
|
|
1028
|
+
conflictRepo?: string;
|
|
1029
|
+
conflictFiles?: string[];
|
|
1030
|
+
repair?: {
|
|
1031
|
+
attempt: number;
|
|
1032
|
+
limit: number;
|
|
1033
|
+
};
|
|
1034
|
+
repairedFiles?: string[];
|
|
1035
|
+
}
|
|
1036
|
+
interface TaskRowContext {
|
|
1037
|
+
/** Set for a subtask: it is labelled by its dotted order. */
|
|
1038
|
+
parent?: {
|
|
1039
|
+
order: number;
|
|
1040
|
+
} | null;
|
|
1041
|
+
/** Which action set the row offers; a row with a parent is a subtask's unless told otherwise. */
|
|
1042
|
+
placement?: TaskRowPlacement;
|
|
1043
|
+
/** Order of each task a dependency or gate may name; one missing from it is shown by id. */
|
|
1044
|
+
orderOf?: ReadonlyMap<string, number>;
|
|
1045
|
+
/** The modes the task's runner declares; autonomy is a tag on one of them (ADR-0001). */
|
|
1046
|
+
modes?: readonly {
|
|
1047
|
+
id: string;
|
|
1048
|
+
autonomous?: boolean;
|
|
1049
|
+
}[];
|
|
1050
|
+
}
|
|
1051
|
+
/** Whether the row stands for an AI task, a manual one, or an ops task (ADR-0020). */
|
|
1052
|
+
type TaskRowKind = 'ai' | 'user' | 'ops';
|
|
1053
|
+
interface TaskRowView {
|
|
1054
|
+
/** "2", or "2.1" for a subtask. */
|
|
1055
|
+
orderLabel: string;
|
|
1056
|
+
kind: TaskRowKind;
|
|
1057
|
+
status: TaskStatusKind;
|
|
1058
|
+
/** A runner is live behind it — `quiet` included. */
|
|
1059
|
+
running: boolean;
|
|
1060
|
+
/** What an awaiting task waits on, in sentence case; null when nothing was saved. */
|
|
1061
|
+
awaiting: string | null;
|
|
1062
|
+
/** Runner requests waiting on the user, in sentence case; null when none do. */
|
|
1063
|
+
approvals: string | null;
|
|
1064
|
+
/** The task's mode is tagged autonomous: it runs without permission prompts. */
|
|
1065
|
+
autonomous: boolean;
|
|
1066
|
+
/** The repos its isolated work changed, by path; empty for a group of one. */
|
|
1067
|
+
repos: string[];
|
|
1068
|
+
/** Integration stopped on a conflict: the one isolation state that needs the user. */
|
|
1069
|
+
conflict: {
|
|
1070
|
+
repo: string | null;
|
|
1071
|
+
files: string | null;
|
|
1072
|
+
} | null;
|
|
1073
|
+
/** A conflict repair in flight (ADR-0015) — progress, not a blocker. */
|
|
1074
|
+
repairing: {
|
|
1075
|
+
files: string | null;
|
|
1076
|
+
attempt: {
|
|
1077
|
+
attempt: number;
|
|
1078
|
+
limit: number;
|
|
1079
|
+
} | null;
|
|
1080
|
+
} | null;
|
|
1081
|
+
/** The files a conflict repair was started for; `landed` once the task is integrated. */
|
|
1082
|
+
repaired: {
|
|
1083
|
+
files: string;
|
|
1084
|
+
landed: boolean;
|
|
1085
|
+
} | null;
|
|
1086
|
+
/** The dependencies, by reference, whose work is not merged into the user's branch yet. */
|
|
1087
|
+
mergeGate: string[] | null;
|
|
1088
|
+
/** An ops task changed tracked files in the user's checkout and nothing was committed. */
|
|
1089
|
+
opsChangedFiles: boolean;
|
|
1090
|
+
/** The dependencies, by title, a force start went past the merge gate of. */
|
|
1091
|
+
forcedPastGate: readonly string[] | null;
|
|
1092
|
+
/** The task's dependencies, by reference. */
|
|
1093
|
+
dependencies: string[];
|
|
1094
|
+
/** What the row offers while a plan runs. */
|
|
1095
|
+
actions: TaskRowAction[];
|
|
1096
|
+
/** The one mark its toggle sets. */
|
|
1097
|
+
mark: 'complete' | 'uncomplete';
|
|
1098
|
+
opsEditable: boolean;
|
|
1099
|
+
}
|
|
1100
|
+
/** The repos a task changed, for a row that names them; none for a group of one. */
|
|
1101
|
+
declare const namedRepos: (repos: readonly string[] | undefined) => string[];
|
|
1102
|
+
/**
|
|
1103
|
+
* Everything a plan row says about one task, decided once: each surface picks
|
|
1104
|
+
* its own words, glyphs and casing for these facts, and derives none of them.
|
|
1105
|
+
*/
|
|
1106
|
+
declare function taskRowView(task: TaskRowSubject, context?: TaskRowContext): TaskRowView;
|
|
1107
|
+
|
|
1108
|
+
interface Named {
|
|
1109
|
+
id: string;
|
|
1110
|
+
order: number;
|
|
1111
|
+
title: string;
|
|
1112
|
+
subtasks?: readonly Named[];
|
|
1113
|
+
}
|
|
1114
|
+
/** Each id as "#N title", subtasks included; one the plan no longer holds stays a bare id. */
|
|
1115
|
+
declare function titledRefs(ids: readonly string[], tasks: readonly Named[]): string[];
|
|
1116
|
+
/**
|
|
1117
|
+
* What removing a task does to the tasks that depend on it, or null when none
|
|
1118
|
+
* do. Named rather than counted: the removal rewrites their dependency lists,
|
|
1119
|
+
* and a bare "Remove task?" would hide that.
|
|
1120
|
+
*/
|
|
1121
|
+
declare function dependentsNotice(dependents: readonly {
|
|
1122
|
+
order: number;
|
|
1123
|
+
title: string;
|
|
1124
|
+
}[]): string | null;
|
|
1125
|
+
/**
|
|
1126
|
+
* What a start past a merge gate is asked with (ADR-0020): the work the task
|
|
1127
|
+
* would act without, named. `subject` is how the asking surface refers to the
|
|
1128
|
+
* task — "It" under a title that already names it.
|
|
1129
|
+
*/
|
|
1130
|
+
declare function pastGateConfirmation(unmerged: readonly string[], subject?: string): string;
|
|
1131
|
+
interface NewTaskFields {
|
|
1132
|
+
title: string;
|
|
1133
|
+
description: string;
|
|
1134
|
+
prompt: string;
|
|
1135
|
+
type: 'ai';
|
|
1136
|
+
}
|
|
1137
|
+
/**
|
|
1138
|
+
* What a hand-added task starts as: an AI task whose description is its title
|
|
1139
|
+
* and whose prompt, unless one was typed, is too. Null for a title with nothing
|
|
1140
|
+
* in it, rather than a nameless task. Assignments are left for the session to
|
|
1141
|
+
* derive from the runner's catalog.
|
|
1142
|
+
*/
|
|
1143
|
+
declare function newTaskFields(title: string, prompt?: string): NewTaskFields | null;
|
|
1144
|
+
|
|
1145
|
+
export { type UsageBlock as $, type ApplyTaskOpsResult as A, type TaskOp as B, CHECKPOINT_TRUNCATE_LENGTH as C, type DiffRow as D, EMPTY_CONVERSATION as E, type TaskRef as F, type GatedConversation as G, type TaskRowAction as H, type TaskRowContext as I, type TaskRowIsolation as J, type TaskRowKind as K, type LocalEntry as L, type MergeGateView as M, NOT_STARTED as N, type OutputPreview as O, type PlanBlock as P, type TaskRowPlacement as Q, type TaskRowSubject as R, type SerializedPlan as S, type TakenPrompt as T, type TaskRowView as U, type TaskStatusKind as V, type ThinkingDisplayBlock as W, type ToolBlock as X, type ToolHeadline as Y, type ToolStatus as Z, type TurnGate as _, type ApprovalBlock as a, aheadOfDraft as a0, applyTaskOps as a1, approvalLabel as a2, awaitingLabel as a3, canMergeTasks as a4, canSetDependencies as a5, canSplitTask as a6, capConflictFiles as a7, classifyOutcome as a8, coalesceTaskLog as a9, runnerToolSubject as aA, serializePlan as aB, serializeTask as aC, serializeTaskStatus as aD, stopTurn as aE, summarizeToolCall as aF, taskRowActions as aG, taskRowView as aH, taskStartedNotice as aI, taskStatusKind as aJ, textHasTaskOps as aK, titledRefs as aL, toTaskLogEvent as aM, toolHeadline as aN, trimToolOutput as aO, truncateCheckpointSummary as aP, unsendAll as aQ, unsendLatest as aR, dependencyCandidates as aa, dependentsNotice as ab, dependentsOf as ac, diffRows as ad, diffStat as ae, diffSummary as af, digestTaskLog as ag, drainNext as ah, executionSummary as ai, followTurn as aj, fromTranscript as ak, hasHiddenDetail as al, holdPrompt as am, isTaskRunning as an, markAction as ao, markRequestFor as ap, namedRepos as aq, newTaskFields as ar, opsEditable as as, outputLines as at, outputPreview as au, parseTaskOpsJson as av, pastGateConfirmation as aw, reduceConversation as ax, reduceTaskLog as ay, replayTaskLog as az, type ApprovalStatus as b, type ConversationInput as c, type ConversationView as d, type DiffRowKind as e, type DiffStat as f, type DisplayBlock as g, EMPTY_HOLD as h, EMPTY_TASK_LOG as i, type EditCatalog as j, type MessageBlock as k, type MessageRole as l, NO_TURN as m, type NewTaskFields as n, type PlanMarkerStatus as o, type PromptHold as p, type SerializedTask as q, type SerializedTaskStatus as r, type SessionBroadcaster as s, type SessionMessage as t, type SessionNotice as u, type SubagentBlock as v, type SubagentChild as w, type SubagentStatus as x, type TaskLogEvent as y, type TaskLogView as z };
|
package/dist/plan-utils.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DiffRow, e as DiffRowKind, f as DiffStat, g as DisplayBlock, E as EMPTY_CONVERSATION, h as EMPTY_HOLD, i as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry,
|
|
2
|
-
|
|
1
|
+
export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DiffRow, e as DiffRowKind, f as DiffStat, g as DisplayBlock, E as EMPTY_CONVERSATION, h as EMPTY_HOLD, i as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry, k as MessageBlock, l as MessageRole, N as NOT_STARTED, m as NO_TURN, n as NewTaskFields, O as OutputPreview, P as PlanBlock, o as PlanMarkerStatus, p as PromptHold, v as SubagentBlock, w as SubagentChild, x as SubagentStatus, T as TakenPrompt, z as TaskLogView, F as TaskRef, H as TaskRowAction, I as TaskRowContext, J as TaskRowIsolation, K as TaskRowKind, Q as TaskRowPlacement, R as TaskRowSubject, U as TaskRowView, V as TaskStatusKind, W as ThinkingDisplayBlock, X as ToolBlock, Y as ToolHeadline, Z as ToolStatus, _ as TurnGate, $ as UsageBlock, a0 as aheadOfDraft, a2 as approvalLabel, a3 as awaitingLabel, a4 as canMergeTasks, a5 as canSetDependencies, a6 as canSplitTask, a7 as capConflictFiles, aa as dependencyCandidates, ab as dependentsNotice, ac as dependentsOf, ad as diffRows, ae as diffStat, af as diffSummary, ah as drainNext, aj as followTurn, ak as fromTranscript, al as hasHiddenDetail, am as holdPrompt, an as isTaskRunning, ao as markAction, ap as markRequestFor, aq as namedRepos, ar as newTaskFields, as as opsEditable, at as outputLines, au as outputPreview, aw as pastGateConfirmation, ax as reduceConversation, ay as reduceTaskLog, az as replayTaskLog, aA as runnerToolSubject, aE as stopTurn, aF as summarizeToolCall, aG as taskRowActions, aH as taskRowView, aI as taskStartedNotice, aJ as taskStatusKind, aL as titledRefs, aN as toolHeadline, aP as truncateCheckpointSummary, aQ as unsendAll, aR as unsendLatest } from './plan-utils-CdW3mxt5.mjs';
|
|
2
|
+
export { taskOrderLabel, taskRef, titledTaskRef } from './order-labels.mjs';
|
|
3
|
+
export { D as DEFAULT_RUNNERS } from './Task-BpzIbunq.mjs';
|
|
4
|
+
import './ModeResolver-DcqAho4y.mjs';
|
|
3
5
|
import 'child_process';
|
|
4
6
|
import 'events';
|
|
5
7
|
import 'zod/v4';
|
|
6
|
-
import './ModeResolver-Cv01ZDd9.mjs';
|
package/dist/plan-utils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DiffRow, e as DiffRowKind, f as DiffStat, g as DisplayBlock, E as EMPTY_CONVERSATION, h as EMPTY_HOLD, i as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry,
|
|
2
|
-
|
|
1
|
+
export { a as ApprovalBlock, b as ApprovalStatus, C as CHECKPOINT_TRUNCATE_LENGTH, c as ConversationInput, d as ConversationView, D as DiffRow, e as DiffRowKind, f as DiffStat, g as DisplayBlock, E as EMPTY_CONVERSATION, h as EMPTY_HOLD, i as EMPTY_TASK_LOG, G as GatedConversation, L as LocalEntry, k as MessageBlock, l as MessageRole, N as NOT_STARTED, m as NO_TURN, n as NewTaskFields, O as OutputPreview, P as PlanBlock, o as PlanMarkerStatus, p as PromptHold, v as SubagentBlock, w as SubagentChild, x as SubagentStatus, T as TakenPrompt, z as TaskLogView, F as TaskRef, H as TaskRowAction, I as TaskRowContext, J as TaskRowIsolation, K as TaskRowKind, Q as TaskRowPlacement, R as TaskRowSubject, U as TaskRowView, V as TaskStatusKind, W as ThinkingDisplayBlock, X as ToolBlock, Y as ToolHeadline, Z as ToolStatus, _ as TurnGate, $ as UsageBlock, a0 as aheadOfDraft, a2 as approvalLabel, a3 as awaitingLabel, a4 as canMergeTasks, a5 as canSetDependencies, a6 as canSplitTask, a7 as capConflictFiles, aa as dependencyCandidates, ab as dependentsNotice, ac as dependentsOf, ad as diffRows, ae as diffStat, af as diffSummary, ah as drainNext, aj as followTurn, ak as fromTranscript, al as hasHiddenDetail, am as holdPrompt, an as isTaskRunning, ao as markAction, ap as markRequestFor, aq as namedRepos, ar as newTaskFields, as as opsEditable, at as outputLines, au as outputPreview, aw as pastGateConfirmation, ax as reduceConversation, ay as reduceTaskLog, az as replayTaskLog, aA as runnerToolSubject, aE as stopTurn, aF as summarizeToolCall, aG as taskRowActions, aH as taskRowView, aI as taskStartedNotice, aJ as taskStatusKind, aL as titledRefs, aN as toolHeadline, aP as truncateCheckpointSummary, aQ as unsendAll, aR as unsendLatest } from './plan-utils-D4Z8UyLL.js';
|
|
2
|
+
export { taskOrderLabel, taskRef, titledTaskRef } from './order-labels.js';
|
|
3
|
+
export { D as DEFAULT_RUNNERS } from './Task-BpzIbunq.js';
|
|
4
|
+
import './ModeResolver-DtfhWeVL.js';
|
|
3
5
|
import 'child_process';
|
|
4
6
|
import 'events';
|
|
5
7
|
import 'zod/v4';
|
|
6
|
-
import './ModeResolver-BEcRAz1c.js';
|