@ordewell/core 0.10.2 → 0.10.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.
Files changed (45) hide show
  1. package/dist/{IFileSystem-CyTIoiSn.d.ts → IFileSystem-_effm8-b.d.ts} +1 -1
  2. package/dist/{IFileSystem-j0naIoAQ.d.mts → IFileSystem-vyqMdL-x.d.mts} +1 -1
  3. package/dist/{IRunner---PfQVdc.d.mts → IRunner-D_UkkMbJ.d.ts} +202 -196
  4. package/dist/{IRunner-WwL-Bjqq.d.ts → IRunner-NtTHQgLR.d.mts} +202 -196
  5. package/dist/{ModeResolver-DrMU-5lw.d.ts → ModeResolver-Dy3Ef6p-.d.ts} +1 -1
  6. package/dist/{ModeResolver-CjQ7zqTN.d.mts → ModeResolver-wnTFsDnF.d.mts} +1 -1
  7. package/dist/{Task-AfA1m4qW.d.mts → Task-DZs9eKgg.d.mts} +25 -6
  8. package/dist/{Task-AfA1m4qW.d.ts → Task-DZs9eKgg.d.ts} +25 -6
  9. package/dist/{chunk-4FEARWTS.mjs → chunk-645FALZX.mjs} +5 -5
  10. package/dist/chunk-645FALZX.mjs.map +1 -0
  11. package/dist/{chunk-3LNZDBCX.mjs → chunk-A57ITQE7.mjs} +35 -16
  12. package/dist/chunk-A57ITQE7.mjs.map +1 -0
  13. package/dist/{chunk-UQGR3UCA.mjs → chunk-FH6M5QZG.mjs} +136 -122
  14. package/dist/chunk-FH6M5QZG.mjs.map +1 -0
  15. package/dist/{chunk-CIL3BQIF.mjs → chunk-SM6BV6XS.mjs} +17 -3
  16. package/dist/chunk-SM6BV6XS.mjs.map +1 -0
  17. package/dist/index.d.mts +427 -40
  18. package/dist/index.d.ts +427 -40
  19. package/dist/index.js +2589 -1498
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +10799 -9764
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/parsing.d.mts +2 -2
  24. package/dist/parsing.d.ts +2 -2
  25. package/dist/parsing.js +12 -12
  26. package/dist/parsing.js.map +1 -1
  27. package/dist/parsing.mjs +3 -3
  28. package/dist/{plan-utils-DL7yOuJs.d.mts → plan-utils-CtKceSsQ.d.mts} +1292 -1147
  29. package/dist/{plan-utils-gpeqV-Lp.d.ts → plan-utils-POIz5d8z.d.ts} +1292 -1147
  30. package/dist/plan-utils.d.mts +4 -4
  31. package/dist/plan-utils.d.ts +4 -4
  32. package/dist/plan-utils.js +16 -0
  33. package/dist/plan-utils.js.map +1 -1
  34. package/dist/plan-utils.mjs +7 -3
  35. package/dist/testing.d.mts +3 -3
  36. package/dist/testing.d.ts +3 -3
  37. package/dist/testing.js +3 -1
  38. package/dist/testing.js.map +1 -1
  39. package/dist/testing.mjs +4 -2
  40. package/dist/testing.mjs.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/chunk-3LNZDBCX.mjs.map +0 -1
  43. package/dist/chunk-4FEARWTS.mjs.map +0 -1
  44. package/dist/chunk-CIL3BQIF.mjs.map +0 -1
  45. package/dist/chunk-UQGR3UCA.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
- export { c as ApprovalBlock, d as ApprovalStatus, B as BlockingSubject, C as CHECKPOINT_TRUNCATE_LENGTH, f as CommandBlock, g as CommandStatus, h as CompactionBlock, i as ConversationInput, j as ConversationView, D as DiffRow, k as DiffRowKind, l as DiffStat, m as DisplayBlock, E as EMPTY_CONVERSATION, n as EMPTY_HOLD, o as EMPTY_RUN, p as EMPTY_TASK_LOG, G as GatedConversation, w as LocalEntry, M as MarkdownToken, x as MessageBlock, y as MessageRole, N as NOT_STARTED, z as NO_TURN, F as NewTaskFields, J as OutputPreview, P as PlanBlock, K as PlanMarkerStatus, T as PromptHold, V as RefTask, a0 as RunnerLoadedBlock, a1 as SUPERVISOR_LEVEL_LABEL, ab as SkillLoadBlock, ad as SkillToken, ae as SubagentBlock, af as SubagentChild, ag as SubagentStatus, ak as TakenPrompt, ao as TaskLogView, au as TaskRef, av as TaskRowAction, aw as TaskRowContext, ax as TaskRowIsolation, ay as TaskRowKind, az as TaskRowPlacement, aA as TaskRowSubject, aB as TaskRowUsage, aC as TaskRowView, aD as TaskStatusKind, aE as ThinkingDisplayBlock, aF as ToolBlock, aG as ToolHeadline, aH as ToolStatus, aI as TurnGate, aJ as UsageBlock, aL as aheadOfDraft, aN as approvalLabel, aQ as awaitingLabel, aR as blockedByLabel, aS as blockingFailures, aT as canMergeTasks, aU as canSetDependencies, aV as canSplitTask, aW as capConflictFiles, aZ as dependencyCandidates, a_ as dependentsNotice, a$ as dependentsOf, b0 as diffRows, b1 as diffStat, b2 as diffSummary, b4 as drainNext, b6 as followTurn, b7 as fromTranscript, b9 as hasHiddenDetail, ba as holdPrompt, bb as isTaskRunning, bc as loadedSkillTokens, bd as markAction, be as markRequestFor, bf as markdownHtml, bg as markdownTokens, bh as namedRepos, bi as newTaskFields, bj as opsEditable, bk as outputLines, bl as outputPreview, bm as parseCount, bp as pastGateConfirmation, bq as reduceConversation, bs as reduceTaskLog, bt as replayTaskLog, bu as resolveTaskRef, bv as resumeLabel, bw as resumeTime, by as runnerToolSubject, bC as skillTokens, bD as skippedLabel, bE as stopTurn, bF as summarizeToolCall, bJ as takeAt, bL as taskOrderLabel, bM as taskRef, bN as taskRefOf, bO as taskRowActions, bP as taskRowView, bQ as taskStartedNotice, bR as taskStatusKind, bT as titledRefs, bU as titledTaskRef, bV as titledTaskRefOf, bX as toolHeadline, bZ as truncateCheckpointSummary, b_ as unsendAll, b$ as unsendLatest } from './plan-utils-DL7yOuJs.mjs';
2
- export { A as AttemptUsage, D as DEFAULT_RUNNERS, M as ModelUsage, N as PlanUsage, O as PlannerUsage, ap as UsageLine, aq as UsageRecord, ar as UsageTotals, au as addAttemptUsage, av as addModelUsage, aw as addPlannerUsage, ax as addUsage, ay as addUsageTotals, aC as endAttemptUsage, aG as isMeasured, aK as partedPromptUsage, aL as pausedOnLimit, aM as planUsage, aN as plannerContextFill, aP as startAttemptUsage, aQ as usageLine } from './Task-AfA1m4qW.mjs';
3
- import './ModeResolver-CjQ7zqTN.mjs';
4
- import './IRunner---PfQVdc.mjs';
1
+ export { c as ApprovalBlock, d as ApprovalStatus, B as BlockingSubject, C as CHECKPOINT_TRUNCATE_LENGTH, f as CommandBlock, g as CommandStatus, h as CompactionBlock, i as ConversationInput, j as ConversationView, D as DiffRow, k as DiffRowKind, l as DiffStat, m as DisplayBlock, E as EMPTY_CONVERSATION, n as EMPTY_HOLD, o as EMPTY_RUN, p as EMPTY_TASK_LOG, G as GatedConversation, x as LocalEntry, M as MarkdownToken, y as MessageBlock, z as MessageRole, N as NOT_STARTED, F as NO_TURN, J as NewTaskFields, P as OutputPreview, Q as PlanBlock, R as PlanMarkerStatus, V as PromptHold, X as RefTask, a2 as RunnerLoadedBlock, a4 as SUPERVISOR_LEVEL_LABEL, ae as SkillLoadBlock, ag as SkillToken, ai as SubagentBlock, aj as SubagentChild, ak as SubagentStatus, ao as TakenPrompt, as as TaskLogView, ay as TaskRef, az as TaskRowAction, aA as TaskRowContext, aB as TaskRowIsolation, aC as TaskRowKind, aD as TaskRowPlacement, aE as TaskRowSubject, aF as TaskRowUsage, aG as TaskRowView, aH as TaskStatusKind, aI as ThinkingDisplayBlock, aJ as ToolBlock, aK as ToolHeadline, aL as ToolStatus, aM as TurnGate, aN as UsageBlock, aP as WAITS_FOR_APPROVAL_LABEL, aQ as aheadOfDraft, aS as approvalLabel, aV as awaitingLabel, aW as blockedByLabel, aX as blockingFailures, aY as canMergeTasks, aZ as canSetDependencies, a_ as canSplitTask, a$ as capConflictFiles, b2 as dependencyCandidates, b3 as dependentsNotice, b4 as dependentsOf, b5 as diffRows, b6 as diffStat, b7 as diffSummary, b9 as drainNext, bb as followTurn, bc as fromTranscript, be as hasHiddenDetail, bf as holdPrompt, bg as isTaskRunning, bh as loadedSkillTokens, bi as markAction, bj as markRequestFor, bk as markdownHtml, bl as markdownTokens, bm as namedRepos, bn as newTaskFields, bo as opsEditable, bp as outputLines, bq as outputPreview, br as parseCount, bu as pastGateConfirmation, bv as reconcileApprovals, bw as reduceConversation, by as reduceTaskLog, bz as replayTaskLog, bA as resolveTaskRef, bB as resumeLabel, bC as resumeTime, bE as runnerToolSubject, bI as skillTokens, bJ as skippedLabel, bK as stopTurn, bL as summarizeToolCall, bP as takeAt, bR as taskOrderLabel, bS as taskRef, bT as taskRefOf, bU as taskRowActions, bV as taskRowView, bW as taskStartedNotice, bX as taskStatusKind, bZ as titledRefs, b_ as titledTaskRef, b$ as titledTaskRefOf, c1 as toolHeadline, c3 as truncateCheckpointSummary, c4 as unsendAll, c5 as unsendLatest } from './plan-utils-CtKceSsQ.mjs';
2
+ export { a as AttemptUsage, D as DEFAULT_RUNNERS, M as ModelUsage, O as PlanUsage, Q as PlannerUsage, aq as UsageLine, ar as UsageRecord, as as UsageTotals, av as addAttemptUsage, aw as addModelUsage, ax as addPlannerUsage, ay as addUsage, az as addUsageTotals, aD as endAttemptUsage, aH as isMeasured, aL as partedPromptUsage, aM as pausedOnLimit, aN as planUsage, aO as plannerContextFill, aQ as startAttemptUsage, aR as usageLine } from './Task-DZs9eKgg.mjs';
3
+ import './ModeResolver-wnTFsDnF.mjs';
4
+ import './IRunner-NtTHQgLR.mjs';
5
5
  import 'child_process';
6
6
  import 'zod/v4';
@@ -1,6 +1,6 @@
1
- export { c as ApprovalBlock, d as ApprovalStatus, B as BlockingSubject, C as CHECKPOINT_TRUNCATE_LENGTH, f as CommandBlock, g as CommandStatus, h as CompactionBlock, i as ConversationInput, j as ConversationView, D as DiffRow, k as DiffRowKind, l as DiffStat, m as DisplayBlock, E as EMPTY_CONVERSATION, n as EMPTY_HOLD, o as EMPTY_RUN, p as EMPTY_TASK_LOG, G as GatedConversation, w as LocalEntry, M as MarkdownToken, x as MessageBlock, y as MessageRole, N as NOT_STARTED, z as NO_TURN, F as NewTaskFields, J as OutputPreview, P as PlanBlock, K as PlanMarkerStatus, T as PromptHold, V as RefTask, a0 as RunnerLoadedBlock, a1 as SUPERVISOR_LEVEL_LABEL, ab as SkillLoadBlock, ad as SkillToken, ae as SubagentBlock, af as SubagentChild, ag as SubagentStatus, ak as TakenPrompt, ao as TaskLogView, au as TaskRef, av as TaskRowAction, aw as TaskRowContext, ax as TaskRowIsolation, ay as TaskRowKind, az as TaskRowPlacement, aA as TaskRowSubject, aB as TaskRowUsage, aC as TaskRowView, aD as TaskStatusKind, aE as ThinkingDisplayBlock, aF as ToolBlock, aG as ToolHeadline, aH as ToolStatus, aI as TurnGate, aJ as UsageBlock, aL as aheadOfDraft, aN as approvalLabel, aQ as awaitingLabel, aR as blockedByLabel, aS as blockingFailures, aT as canMergeTasks, aU as canSetDependencies, aV as canSplitTask, aW as capConflictFiles, aZ as dependencyCandidates, a_ as dependentsNotice, a$ as dependentsOf, b0 as diffRows, b1 as diffStat, b2 as diffSummary, b4 as drainNext, b6 as followTurn, b7 as fromTranscript, b9 as hasHiddenDetail, ba as holdPrompt, bb as isTaskRunning, bc as loadedSkillTokens, bd as markAction, be as markRequestFor, bf as markdownHtml, bg as markdownTokens, bh as namedRepos, bi as newTaskFields, bj as opsEditable, bk as outputLines, bl as outputPreview, bm as parseCount, bp as pastGateConfirmation, bq as reduceConversation, bs as reduceTaskLog, bt as replayTaskLog, bu as resolveTaskRef, bv as resumeLabel, bw as resumeTime, by as runnerToolSubject, bC as skillTokens, bD as skippedLabel, bE as stopTurn, bF as summarizeToolCall, bJ as takeAt, bL as taskOrderLabel, bM as taskRef, bN as taskRefOf, bO as taskRowActions, bP as taskRowView, bQ as taskStartedNotice, bR as taskStatusKind, bT as titledRefs, bU as titledTaskRef, bV as titledTaskRefOf, bX as toolHeadline, bZ as truncateCheckpointSummary, b_ as unsendAll, b$ as unsendLatest } from './plan-utils-gpeqV-Lp.js';
2
- export { A as AttemptUsage, D as DEFAULT_RUNNERS, M as ModelUsage, N as PlanUsage, O as PlannerUsage, ap as UsageLine, aq as UsageRecord, ar as UsageTotals, au as addAttemptUsage, av as addModelUsage, aw as addPlannerUsage, ax as addUsage, ay as addUsageTotals, aC as endAttemptUsage, aG as isMeasured, aK as partedPromptUsage, aL as pausedOnLimit, aM as planUsage, aN as plannerContextFill, aP as startAttemptUsage, aQ as usageLine } from './Task-AfA1m4qW.js';
3
- import './ModeResolver-DrMU-5lw.js';
4
- import './IRunner-WwL-Bjqq.js';
1
+ export { c as ApprovalBlock, d as ApprovalStatus, B as BlockingSubject, C as CHECKPOINT_TRUNCATE_LENGTH, f as CommandBlock, g as CommandStatus, h as CompactionBlock, i as ConversationInput, j as ConversationView, D as DiffRow, k as DiffRowKind, l as DiffStat, m as DisplayBlock, E as EMPTY_CONVERSATION, n as EMPTY_HOLD, o as EMPTY_RUN, p as EMPTY_TASK_LOG, G as GatedConversation, x as LocalEntry, M as MarkdownToken, y as MessageBlock, z as MessageRole, N as NOT_STARTED, F as NO_TURN, J as NewTaskFields, P as OutputPreview, Q as PlanBlock, R as PlanMarkerStatus, V as PromptHold, X as RefTask, a2 as RunnerLoadedBlock, a4 as SUPERVISOR_LEVEL_LABEL, ae as SkillLoadBlock, ag as SkillToken, ai as SubagentBlock, aj as SubagentChild, ak as SubagentStatus, ao as TakenPrompt, as as TaskLogView, ay as TaskRef, az as TaskRowAction, aA as TaskRowContext, aB as TaskRowIsolation, aC as TaskRowKind, aD as TaskRowPlacement, aE as TaskRowSubject, aF as TaskRowUsage, aG as TaskRowView, aH as TaskStatusKind, aI as ThinkingDisplayBlock, aJ as ToolBlock, aK as ToolHeadline, aL as ToolStatus, aM as TurnGate, aN as UsageBlock, aP as WAITS_FOR_APPROVAL_LABEL, aQ as aheadOfDraft, aS as approvalLabel, aV as awaitingLabel, aW as blockedByLabel, aX as blockingFailures, aY as canMergeTasks, aZ as canSetDependencies, a_ as canSplitTask, a$ as capConflictFiles, b2 as dependencyCandidates, b3 as dependentsNotice, b4 as dependentsOf, b5 as diffRows, b6 as diffStat, b7 as diffSummary, b9 as drainNext, bb as followTurn, bc as fromTranscript, be as hasHiddenDetail, bf as holdPrompt, bg as isTaskRunning, bh as loadedSkillTokens, bi as markAction, bj as markRequestFor, bk as markdownHtml, bl as markdownTokens, bm as namedRepos, bn as newTaskFields, bo as opsEditable, bp as outputLines, bq as outputPreview, br as parseCount, bu as pastGateConfirmation, bv as reconcileApprovals, bw as reduceConversation, by as reduceTaskLog, bz as replayTaskLog, bA as resolveTaskRef, bB as resumeLabel, bC as resumeTime, bE as runnerToolSubject, bI as skillTokens, bJ as skippedLabel, bK as stopTurn, bL as summarizeToolCall, bP as takeAt, bR as taskOrderLabel, bS as taskRef, bT as taskRefOf, bU as taskRowActions, bV as taskRowView, bW as taskStartedNotice, bX as taskStatusKind, bZ as titledRefs, b_ as titledTaskRef, b$ as titledTaskRefOf, c1 as toolHeadline, c3 as truncateCheckpointSummary, c4 as unsendAll, c5 as unsendLatest } from './plan-utils-POIz5d8z.js';
2
+ export { a as AttemptUsage, D as DEFAULT_RUNNERS, M as ModelUsage, O as PlanUsage, Q as PlannerUsage, aq as UsageLine, ar as UsageRecord, as as UsageTotals, av as addAttemptUsage, aw as addModelUsage, ax as addPlannerUsage, ay as addUsage, az as addUsageTotals, aD as endAttemptUsage, aH as isMeasured, aL as partedPromptUsage, aM as pausedOnLimit, aN as planUsage, aO as plannerContextFill, aQ as startAttemptUsage, aR as usageLine } from './Task-DZs9eKgg.js';
3
+ import './ModeResolver-Dy3Ef6p-.js';
4
+ import './IRunner-D_UkkMbJ.js';
5
5
  import 'child_process';
6
6
  import 'zod/v4';
@@ -39,6 +39,7 @@ __export(plan_utils_exports, {
39
39
  NOT_STARTED: () => NOT_STARTED,
40
40
  NO_TURN: () => NO_TURN,
41
41
  SUPERVISOR_LEVEL_LABEL: () => SUPERVISOR_LEVEL_LABEL,
42
+ WAITS_FOR_APPROVAL_LABEL: () => WAITS_FOR_APPROVAL_LABEL,
42
43
  addAttemptUsage: () => addAttemptUsage,
43
44
  addModelUsage: () => addModelUsage,
44
45
  addPlannerUsage: () => addPlannerUsage,
@@ -83,6 +84,7 @@ __export(plan_utils_exports, {
83
84
  pausedOnLimit: () => pausedOnLimit,
84
85
  planUsage: () => planUsage,
85
86
  plannerContextFill: () => plannerContextFill,
87
+ reconcileApprovals: () => reconcileApprovals,
86
88
  reduceConversation: () => reduceConversation,
87
89
  reduceTaskLog: () => reduceTaskLog,
88
90
  replayTaskLog: () => replayTaskLog,
@@ -190,6 +192,9 @@ function pausedOnLimit(task) {
190
192
  return task.status === "awaiting_user" && task.awaitingReason === "usage-limit";
191
193
  }
192
194
 
195
+ // src/services/TaskOps.ts
196
+ var import_uuid3 = require("uuid");
197
+
193
198
  // src/taskRow/status.ts
194
199
  var isTaskRunning = (task) => task.status === "in_progress" || task.status === "running";
195
200
  var NOT_STARTED = /* @__PURE__ */ new Set(["pending", "approved", "blocked"]);
@@ -225,6 +230,7 @@ function blockedByLabel(refs) {
225
230
  function skippedLabel(reason) {
226
231
  return reason ? `Skipped: ${reason}` : "Skipped";
227
232
  }
233
+ var WAITS_FOR_APPROVAL_LABEL = "Waiting for your approval to start";
228
234
  function approvalLabel(count) {
229
235
  if (!count) return null;
230
236
  return count > 1 ? `Waiting for approval (${count})` : "Waiting for approval";
@@ -1115,6 +1121,13 @@ function syncTranscript(view, { plan, turnId }) {
1115
1121
  }
1116
1122
  return next === view && latest === view.transcriptAt ? view : { ...next, transcriptAt: latest };
1117
1123
  }
1124
+ function reconcileApprovals(view, waiting) {
1125
+ const ids = new Set(waiting.map((request) => request.id));
1126
+ const answered2 = (block) => block.type === "approval" && block.status === "pending" && block.approvalId !== void 0 && !ids.has(block.approvalId);
1127
+ const kept = view.blocks.some(answered2) ? { ...view, blocks: view.blocks.filter((block) => !answered2(block)) } : view;
1128
+ const carded = new Set(kept.blocks.flatMap((block) => block.type === "approval" && block.approvalId ? [block.approvalId] : []));
1129
+ return waiting.filter((request) => !carded.has(request.id)).reduce(requestApproval, kept);
1130
+ }
1118
1131
  function reduceConversation(view, input) {
1119
1132
  switch (input.type) {
1120
1133
  case "local_entry":
@@ -1763,6 +1776,7 @@ function taskRowView(task, context = {}) {
1763
1776
  awaiting: awaitingLabel(task),
1764
1777
  resumes: resumeLabel(task, context.now),
1765
1778
  approvals: approvalLabel(task.awaitingApproval),
1779
+ waitsForApproval: task.waitsForApproval && NOT_STARTED.has(task.status) ? WAITS_FOR_APPROVAL_LABEL : null,
1766
1780
  autonomous: task.type === "ai" && context.modes?.find((m) => m.id === task.taskMode)?.autonomous === true,
1767
1781
  repos: namedRepos(isolation?.repos),
1768
1782
  conflict: isolation?.state === "conflict" ? { repo: namedRepo(isolation.conflictRepo), files: filesOf(isolation.conflictFiles) } : null,
@@ -1812,6 +1826,7 @@ var EMPTY_RUN = { tasks: [], runMerge: null, handoff: null, mergeResult: null };
1812
1826
  NOT_STARTED,
1813
1827
  NO_TURN,
1814
1828
  SUPERVISOR_LEVEL_LABEL,
1829
+ WAITS_FOR_APPROVAL_LABEL,
1815
1830
  addAttemptUsage,
1816
1831
  addModelUsage,
1817
1832
  addPlannerUsage,
@@ -1856,6 +1871,7 @@ var EMPTY_RUN = { tasks: [], runMerge: null, handoff: null, mergeResult: null };
1856
1871
  pausedOnLimit,
1857
1872
  planUsage,
1858
1873
  plannerContextFill,
1874
+ reconcileApprovals,
1859
1875
  reduceConversation,
1860
1876
  reduceTaskLog,
1861
1877
  replayTaskLog,