tldr-experts 0.11.0 → 0.11.1

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/CHANGELOG.md CHANGED
@@ -1,6 +1,86 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## 0.11.1 — 2026-09-08
5
+
6
+ ### Changed
7
+
8
+ - **The mandate now tells the driver what to READ, because the host's own context was the
9
+ bill.** Measured over one week of host sessions on three real workspaces: ~$8.5k at list,
10
+ 68 % of it Opus — and the work was not what cost it. Per-story time was a 0.6-1.35 h
11
+ median; the spend was 600-800-turn host sessions re-reading their whole context every
12
+ turn, one workspace alone at 2.5B cache-read tokens. `--tldr` already trims what the host
13
+ WRITES and what a sub-agent DELIVERS, and nothing anywhere told the host what to read
14
+ back. One bullet in the evidence discipline now does, in all four modes: a sub-agent's
15
+ outcome comes from its `result.json` and the ledger, never its transcript; each is briefed
16
+ to report its TURN in ten lines (a handoff is not a turn report — that one is a gate input
17
+ with its own contract, and trimming it costs the gate); and a cited file is re-opened to
18
+ VERIFY it at a gate, never re-read for a claim already made. It is paid for rather than
19
+ appended — the line budgets did not move (`MANDATE_MAX_LINES` 140, `MANDATE_TLDR_MAX_LINES`
20
+ 165, unattended still exactly at both) because the negative-case and contradiction bullets
21
+ each lost a line of wrapping to the same meaning and the unattended gate's interrupt
22
+ paragraph lost the clause that restated "## Do not stop".
23
+
24
+ ### Added
25
+
26
+ - **A run can now tell a person it needs them, without the framework naming a chat tool.**
27
+ `tldrx run auto` announced an open question or a gate by exiting `4` and printing a
28
+ decision card to stdout, and stdout is in a terminal nobody is watching — which is why
29
+ every run in the week of 2026-09-07 was driven in host mode instead, trading a metered
30
+ budget, an enforced model and parallel stories for a notification. `.tldrx/workspace.yml`
31
+ now takes one optional `notify:` block — a `command`, an optional `events:` list, an
32
+ optional `timeout_s` — and the loop hands that command one `version: 1` JSON object on
33
+ **stdin** at each moment a person is needed: the open question with its options, its
34
+ recommendation and the literal `tldrx answer <Qid> "…" --run <id>` line; a gate with the
35
+ literal approve line; a finished or failed run with its exit code and what that code's
36
+ family means; a budget warning with both numbers. The command is held to §2.1's rule
37
+ exactly — split to argv and run directly, never through a shell, a bare metacharacter
38
+ refused rather than shelled — and the payload never touches the command line, so a
39
+ question's own title cannot become shell syntax. Which service reaches the owner stays the
40
+ owner's decision: a built-in integration would be this framework deciding whose product it
41
+ depends on, which is the same reasoning the drive mandate has always given. `tldrx init`
42
+ writes the block commented out with a line saying what it is for, the way `test_fast` is
43
+ written — who gets woken up is not a thing to detect. Schema and payload: spec §2.18.
44
+ (#180)
45
+ - **A failing notifier is written down, never a refusal.** A command that will not split, a
46
+ binary that is not there, a non-zero exit, a hang — each becomes a `notify.failed` event
47
+ carrying the reason, and the run keeps the exit code it already had; a delivered one is
48
+ `notify.sent` with the kind, the exit code and the duration. Both are `cost_usd: 0` and
49
+ both join the closed `EVENT_TYPES` enum. "The owner was not told, and here is why" is a
50
+ fact about the run; "the chat tool was down, so the run failed" would make a side channel
51
+ load-bearing. (#180)
52
+ - **`tldrx run auto --notify-every <duration>`** sends the declared hook a periodic `status`
53
+ payload carrying what `tldrx run status` prints. It fires from a timer rather than between
54
+ iterations on purpose: the period when somebody most wants to know a run is alive is the
55
+ twenty minutes it is inside one stage. Off by default. Over a run that is PARKED it
56
+ reminds rather than reassures — the summary names the open questions, `command` is the
57
+ literal `tldrx answer` line and `detail.waiting_on` carries the ids. A heartbeat that went
58
+ on saying "nothing is waiting on you" while the run sat on somebody's answer was
59
+ reproduced in review with both flags on, and it is worse than silence, because a heartbeat
60
+ is believed. Parked-ness comes from the same predicate `--wait-answers` polls and `next`
61
+ parks on, never a second opinion. (#180)
62
+ - **`tldrx run auto --wait-answers <duration>`** polls the run's question files instead of
63
+ exiting `4` the moment a stage parks, and resumes if the question is answered — by a
64
+ person, or by whatever the notify hook reached — then exits `4` with the same lines it
65
+ always did, after one `question.timeout` notification, when the wait lapses. Nothing is
66
+ spent while it polls, and the loop never answers its own question: the answer is an
67
+ ordinary `tldrx answer`. Both flags take `30s`, `10m`, `2h` or a bare number of seconds
68
+ through one parser, and refuse anything else by name at exit `1`. Without either flag,
69
+ behaviour is unchanged for every existing user — a question or a gate still exits `4`, the
70
+ hook has simply already fired with the answer command in it. (#180)
71
+ - **The docs site now explains how to OPERATE a run unattended, not just what the flags
72
+ are.** The notify hook shipped with its schema in the spec and a paragraph in the driving
73
+ guide, and neither answers the question somebody actually has at 11pm: what do I write, and
74
+ what do I check when nothing arrives. A new guide page (EN + ES, in both sidebars) walks the
75
+ whole loop — host mode versus the engine with the honest trade-off, the `notify:` block and
76
+ its argv rule, the nine top-level payload keys with `question.raised` and `status` shown in
77
+ full and a per-kind table of the other six, a dependency-free ~30-line Node adapter you can
78
+ paste, `--notify-every` / `--wait-answers` with what exit `4` means when a wait lapses, a
79
+ first-run checklist that dry-runs the adapter on a hand-made payload before any run depends
80
+ on it, and troubleshooting for the four ways it silently does nothing. It names no
81
+ messaging service and it is not going to: the adapter is the reader's, and the page says
82
+ why in the same words the drive mandate does. (#180)
83
+
4
84
  ## 0.11.0 — 2026-09-08
5
85
 
6
86
  ### Fixed
package/README.md CHANGED
@@ -316,6 +316,7 @@ back on the registry is 0.3.0.
316
316
 
317
317
  | Version | Date | Status | Contains |
318
318
  |---|---|---|---|
319
+ | 0.11.1 | 2026-09-08 | `beta` | operating a run when nobody is watching: the drive mandate now names the host's own context as the costliest instrument and tells the driver what to READ back — a sub-agent's outcome from its `result.json` and the ledger, never its transcript, each sub-agent briefed to report its turn in ten lines, and a cited file re-opened to VERIFY at a gate rather than re-read for a claim already made — paid for inside the unchanged line budgets rather than appended; `.tldrx/workspace.yml` takes one optional `notify:` block whose command is handed a `version: 1` JSON object on stdin at each moment a person is needed (an open question with its options, its recommendation and the literal `tldrx answer` line; a gate with its approve line; a finished or failed run with what its exit code's family means; a budget warning with both numbers), split to argv and never shelled, with a notifier that will not split, is not there, exits non-zero or hangs recorded as `notify.failed` instead of failing the run; `tldrx run auto --wait-answers <duration>` polls the question files and resumes when the answer lands instead of exiting 4 the moment a stage parks, and `--notify-every <duration>` sends a timer-driven heartbeat that reminds rather than reassures while a run is parked; and a new EN+ES guide page walks the whole unattended loop — host mode versus the engine, the payload keys, a dependency-free Node adapter, a first-run checklist and the four ways it silently does nothing — naming no messaging service, by the same reasoning the mandate has always given |
319
320
  | 0.11.0 | 2026-09-08 | `beta` | governance that leaves a record: every answer says who decided it and what repo it binds, an advisory contradiction check raises a question that never stops a run and states its own limit, the close and the Build handoff count decided vs not-stated; `tldrx story widen` is the sanctioned way to grow a story's surface (a done story needs `reopen --for-fix` first) and a defect no story owns is named in the handoff, the PR body and the boundary card instead of absorbed; a budget grant is a recorded number in `budget.yml` that survives every writer, `budget raise` warns or refuses against it, presets are labelled as the assumptions they are, `triage.budget_basis` says where a figure came from and `tldrx cost --stories` measures each story against the ceiling its spawn was given, honest about lower bounds |
320
321
  | 0.10.0 | 2026-09-07 | `beta` | the mechanical blockers measured in real runs, fixed: a refused DoD command is recorded as refused (never a fabricated exit 126) in the event, the handoff, the review and retro logs, and the readers that used to recover it as green; the dirty-tree refusal prints the exact stash and pop commands and its true reason; the reviewer diffs the epic as it was before the merge (`epic_base` recorded on the story and the bundle) instead of an empty range; `tldrx init` probes each declared command once and records `command_probes` beside a `commands:` allowlist it never guesses; `tldrx ship` opens a PR whose body describes the change and its known defects, with the handoff folded underneath, and a state refusal that honours settled stories' declared touches; reviewer turns carry their token split and the spend basis reads it, so a whole provider no longer reads as absent |
321
322
  | 0.9.2 | 2026-09-07 | `beta` | the Build executor decomposed: 4,351 lines became an orchestrator plus eight modules under src/core/build/ (review ledger and phase cost, money caps, the DoD runner with its preflight cache, worktrees and epic-branch claims, the reviewer bundle and review round) — a pure refactor proven byte-for-byte by a golden guard over prompts, ordered events, run.yml rows and exit codes across three scenarios; no behaviour changed, every remaining hardening fix now lands in a file a reviewer can hold |
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  conflictOf
4
- } from "./chunk-bk7rkdzw.js";
4
+ } from "./chunk-qn8qnrgw.js";
5
5
  import {
6
6
  FactsStore,
7
7
  formatJaccard
8
- } from "./chunk-kqvbzyc0.js";
8
+ } from "./chunk-gj1ckg0c.js";
9
9
  import {
10
10
  parseHookInput,
11
11
  readStdin
12
- } from "./chunk-6c84kjd7.js";
12
+ } from "./chunk-8d0t69pk.js";
13
13
  import {
14
14
  EventLog,
15
15
  PHASE_ID_RE
16
- } from "./chunk-9v45j71e.js";
17
- import"./chunk-tg7ppsxr.js";
16
+ } from "./chunk-rw3n3z6t.js";
17
+ import"./chunk-b26rvgjd.js";
18
18
  import {
19
19
  ADVISORY_KEY,
20
20
  MAX_FACT_CHARS,
@@ -24,7 +24,7 @@ import {
24
24
  renderQuestionBlock,
25
25
  replaceBlock,
26
26
  serializeQuestions
27
- } from "./chunk-wzzywf6c.js";
27
+ } from "./chunk-h23db062.js";
28
28
  import {
29
29
  ITERATION_ONLY_SLOT,
30
30
  PROJECT_FRAMEWORK_DIR,
@@ -32,7 +32,7 @@ import {
32
32
  commandProbeIssues,
33
33
  factsPath,
34
34
  parseYaml
35
- } from "./chunk-r1efatxk.js";
35
+ } from "./chunk-5hyd1rk1.js";
36
36
 
37
37
  // src/hooks/answer-capture.ts
38
38
  import { existsSync as existsSync5 } from "fs";
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  budgetGateDeny
4
- } from "./chunk-stw0dxna.js";
4
+ } from "./chunk-zs84arc1.js";
5
5
  import {
6
6
  allow,
7
7
  deny,
8
8
  readPayload,
9
9
  runHook,
10
10
  toolInput
11
- } from "./chunk-6ws778wq.js";
12
- import"./chunk-6c84kjd7.js";
11
+ } from "./chunk-hx0jgrmh.js";
12
+ import"./chunk-8d0t69pk.js";
13
13
  import {
14
14
  asRunBudget,
15
15
  currentActor,
@@ -29,20 +29,20 @@ import {
29
29
  validateRunBudget,
30
30
  wouldExceed,
31
31
  wouldExceedHostTokens
32
- } from "./chunk-1c43349s.js";
32
+ } from "./chunk-jmypgf6s.js";
33
33
  import {
34
34
  EventLog
35
- } from "./chunk-9v45j71e.js";
35
+ } from "./chunk-rw3n3z6t.js";
36
36
  import {
37
37
  noteDeprecations
38
- } from "./chunk-wzzywf6c.js";
38
+ } from "./chunk-h23db062.js";
39
39
  import {
40
40
  PROJECT_WORK_DIR,
41
41
  findWorkspaceRoot,
42
42
  locateWork,
43
43
  parseYaml,
44
44
  stageYamlPath
45
- } from "./chunk-r1efatxk.js";
45
+ } from "./chunk-5hyd1rk1.js";
46
46
 
47
47
  // src/hooks/budget-gate.ts
48
48
  import { existsSync as existsSync2, readFileSync as readFileSync2, statSync } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runtime
3
- } from "./chunk-r1efatxk.js";
3
+ } from "./chunk-5hyd1rk1.js";
4
4
 
5
5
  // src/core/hooks/passthrough.ts
6
6
  async function readStdin() {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  PROJECT_FRAMEWORK_DIR,
3
3
  PROJECT_WORK_DIR
4
- } from "./chunk-r1efatxk.js";
4
+ } from "./chunk-5hyd1rk1.js";
5
5
 
6
6
  // src/core/lock/workspaceLock.ts
7
7
  import { existsSync as existsSync2, mkdirSync as mkdirSync2, openSync, readFileSync as readFileSync2, rmSync as rmSync2, writeSync, closeSync } from "node:fs";
@@ -3,7 +3,7 @@ import {
3
3
  withWorkspaceLock,
4
4
  workspaceRootOfFactsPath,
5
5
  writeAtomic
6
- } from "./chunk-tg7ppsxr.js";
6
+ } from "./chunk-b26rvgjd.js";
7
7
  import {
8
8
  FACT_CONFIDENCES,
9
9
  FACT_KINDS,
@@ -14,7 +14,7 @@ import {
14
14
  isLive,
15
15
  isRetired,
16
16
  noteDeprecations
17
- } from "./chunk-wzzywf6c.js";
17
+ } from "./chunk-h23db062.js";
18
18
  import {
19
19
  SRC_PATTERNS,
20
20
  asDocument,
@@ -27,7 +27,7 @@ import {
27
27
  requireString,
28
28
  requireVersion,
29
29
  result
30
- } from "./chunk-r1efatxk.js";
30
+ } from "./chunk-5hyd1rk1.js";
31
31
 
32
32
  // src/core/facts/FactsStore.ts
33
33
  import { existsSync, readFileSync } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseSrcToken
3
- } from "./chunk-r1efatxk.js";
3
+ } from "./chunk-5hyd1rk1.js";
4
4
 
5
5
  // src/core/text/questions.ts
6
6
  var REQUIRED_METADATA_KEYS = ["id", "status", "area", "asked_by", "asked_at"];
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  parseHookInput,
3
3
  readStdin
4
- } from "./chunk-6c84kjd7.js";
4
+ } from "./chunk-8d0t69pk.js";
5
5
 
6
6
  // src/hooks/lib/decide.ts
7
7
  function deny(reason) {
@@ -23,7 +23,7 @@ import {
23
23
  requireVersion,
24
24
  requireVersion1,
25
25
  result
26
- } from "./chunk-r1efatxk.js";
26
+ } from "./chunk-5hyd1rk1.js";
27
27
 
28
28
  // src/hooks/lib/runFile.ts
29
29
  import { existsSync, readFileSync } from "node:fs";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  findDuplicate
3
- } from "./chunk-kqvbzyc0.js";
3
+ } from "./chunk-gj1ckg0c.js";
4
4
  import {
5
5
  evidencePath,
6
6
  gateEvidencePath,
7
7
  parseEvidence
8
- } from "./chunk-9v45j71e.js";
8
+ } from "./chunk-rw3n3z6t.js";
9
9
  import {
10
10
  openBlocks,
11
11
  parseQuestions
12
- } from "./chunk-wzzywf6c.js";
12
+ } from "./chunk-h23db062.js";
13
13
 
14
14
  // src/core/distill/distill.ts
15
15
  var CONFLICT_THRESHOLD = 0.6;
@@ -10,7 +10,7 @@ import {
10
10
  requireString,
11
11
  requireVersion,
12
12
  result
13
- } from "./chunk-r1efatxk.js";
13
+ } from "./chunk-5hyd1rk1.js";
14
14
 
15
15
  // src/core/events/EventLog.ts
16
16
  import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
@@ -58,6 +58,8 @@ var EVENT_TYPES = [
58
58
  "fact.superseded",
59
59
  "fact.conflict_raised",
60
60
  "doc.superseded",
61
+ "notify.sent",
62
+ "notify.failed",
61
63
  "map.refreshed",
62
64
  "ticket.synced",
63
65
  "error"
@@ -8,7 +8,7 @@ import {
8
8
  nowRfc3339,
9
9
  openRunViews,
10
10
  validateRunBudget
11
- } from "./chunk-1c43349s.js";
11
+ } from "./chunk-jmypgf6s.js";
12
12
  import {
13
13
  EventLog,
14
14
  asRunFile,
@@ -20,7 +20,7 @@ import {
20
20
  isTerminal,
21
21
  stageAt,
22
22
  validateRunFile
23
- } from "./chunk-9v45j71e.js";
23
+ } from "./chunk-rw3n3z6t.js";
24
24
  import {
25
25
  backupPathFor,
26
26
  isAlive,
@@ -29,18 +29,18 @@ import {
29
29
  workspaceRootOfRunDir,
30
30
  writeAtomic,
31
31
  yamlScalar
32
- } from "./chunk-tg7ppsxr.js";
32
+ } from "./chunk-b26rvgjd.js";
33
33
  import {
34
34
  isAdvisory,
35
35
  noteDeprecations,
36
36
  openBlocks,
37
37
  parseQuestions
38
- } from "./chunk-wzzywf6c.js";
38
+ } from "./chunk-h23db062.js";
39
39
  import {
40
40
  listRunDirs,
41
41
  parseYaml,
42
42
  parseYamlRepairing
43
- } from "./chunk-r1efatxk.js";
43
+ } from "./chunk-5hyd1rk1.js";
44
44
 
45
45
  // src/core/statusline/runSnapshot.ts
46
46
  import { existsSync as existsSync3, readFileSync as readFileSync3 } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  toolInput
3
- } from "./chunk-6ws778wq.js";
3
+ } from "./chunk-hx0jgrmh.js";
4
4
 
5
5
  // src/hooks/lib/wouldBe.ts
6
6
  import { existsSync, readFileSync } from "node:fs";
@@ -3,7 +3,7 @@ import {
3
3
  EMPTY_SECTION_RULE,
4
4
  noneBullet,
5
5
  srcRule
6
- } from "./chunk-r1efatxk.js";
6
+ } from "./chunk-5hyd1rk1.js";
7
7
 
8
8
  // src/hooks/lib/messages.ts
9
9
  var GRAMMAR = "[src: <repo:path:line> | https://… | Q<n> | F<n> | $ <cmd> → exit <n> | graph:<node> | absent:<path>]";
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  wouldBeContent
4
- } from "./chunk-ecwes7kd.js";
4
+ } from "./chunk-z6n9551r.js";
5
5
  import {
6
6
  claimSourcesDeny,
7
7
  claimSourcesEmptySectionDeny,
8
8
  claimSourcesMalformedDeny,
9
9
  claimSourcesUnresolvedDeny
10
- } from "./chunk-stw0dxna.js";
10
+ } from "./chunk-zs84arc1.js";
11
11
  import {
12
12
  allow,
13
13
  deny,
@@ -16,8 +16,8 @@ import {
16
16
  postContext,
17
17
  readPayload,
18
18
  runHook
19
- } from "./chunk-6ws778wq.js";
20
- import"./chunk-6c84kjd7.js";
19
+ } from "./chunk-hx0jgrmh.js";
20
+ import"./chunk-8d0t69pk.js";
21
21
  import {
22
22
  isHandoff,
23
23
  loadWorkspace,
@@ -25,7 +25,7 @@ import {
25
25
  toSrcContext,
26
26
  validateCitations,
27
27
  validateHandoff
28
- } from "./chunk-r1efatxk.js";
28
+ } from "./chunk-5hyd1rk1.js";
29
29
 
30
30
  // src/hooks/claim-sources.ts
31
31
  await runHook("claim-sources", async () => {
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  wouldBeContent
4
- } from "./chunk-ecwes7kd.js";
4
+ } from "./chunk-z6n9551r.js";
5
5
  import {
6
6
  dodGateDeny,
7
7
  dodGateInternalErrorDeny,
8
8
  dodGateMissingBlockDeny,
9
9
  dodGateRefusedCommandDeny
10
- } from "./chunk-stw0dxna.js";
10
+ } from "./chunk-zs84arc1.js";
11
11
  import {
12
12
  allow,
13
13
  deny,
@@ -15,8 +15,8 @@ import {
15
15
  filePathOf,
16
16
  isWriteOrEdit,
17
17
  readPayload
18
- } from "./chunk-6ws778wq.js";
19
- import"./chunk-6c84kjd7.js";
18
+ } from "./chunk-hx0jgrmh.js";
19
+ import"./chunk-8d0t69pk.js";
20
20
  import {
21
21
  DodCommandRefused,
22
22
  loadWorkspace,
@@ -24,7 +24,7 @@ import {
24
24
  readStory,
25
25
  repoPath,
26
26
  runDodCommand
27
- } from "./chunk-r1efatxk.js";
27
+ } from "./chunk-5hyd1rk1.js";
28
28
 
29
29
  // src/hooks/dod-gate.ts
30
30
  import { basename, join } from "node:path";
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  wouldBeContent
4
- } from "./chunk-ecwes7kd.js";
4
+ } from "./chunk-z6n9551r.js";
5
5
  import {
6
6
  noReAskDeny
7
- } from "./chunk-stw0dxna.js";
7
+ } from "./chunk-zs84arc1.js";
8
8
  import {
9
9
  FactsStore
10
- } from "./chunk-kqvbzyc0.js";
10
+ } from "./chunk-gj1ckg0c.js";
11
11
  import {
12
12
  allow,
13
13
  deny,
@@ -15,17 +15,17 @@ import {
15
15
  isWriteOrEdit,
16
16
  readPayload,
17
17
  runHook
18
- } from "./chunk-6ws778wq.js";
19
- import"./chunk-6c84kjd7.js";
20
- import"./chunk-tg7ppsxr.js";
18
+ } from "./chunk-hx0jgrmh.js";
19
+ import"./chunk-8d0t69pk.js";
20
+ import"./chunk-b26rvgjd.js";
21
21
  import {
22
22
  openBlocks,
23
23
  parseQuestions
24
- } from "./chunk-wzzywf6c.js";
24
+ } from "./chunk-h23db062.js";
25
25
  import {
26
26
  factsPath,
27
27
  locateWork
28
- } from "./chunk-r1efatxk.js";
28
+ } from "./chunk-5hyd1rk1.js";
29
29
 
30
30
  // src/hooks/no-reask.ts
31
31
  import { existsSync, readFileSync } from "node:fs";
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  questionsCard
4
- } from "./chunk-bk7rkdzw.js";
5
- import"./chunk-kqvbzyc0.js";
4
+ } from "./chunk-qn8qnrgw.js";
5
+ import"./chunk-gj1ckg0c.js";
6
6
  import {
7
7
  allow,
8
8
  readPayload,
9
9
  runHook,
10
10
  sessionContext
11
- } from "./chunk-6ws778wq.js";
12
- import"./chunk-6c84kjd7.js";
11
+ } from "./chunk-hx0jgrmh.js";
12
+ import"./chunk-8d0t69pk.js";
13
13
  import {
14
14
  RunStore,
15
15
  closedByMachine,
@@ -18,7 +18,7 @@ import {
18
18
  openQuestions,
19
19
  runSnapshot,
20
20
  whatIsWaiting
21
- } from "./chunk-d20x2aew.js";
21
+ } from "./chunk-wbkwjpq2.js";
22
22
  import {
23
23
  expertsDir,
24
24
  loadExperts,
@@ -26,13 +26,13 @@ import {
26
26
  pathsIntersect,
27
27
  readExpertDomain,
28
28
  stackExpertNames
29
- } from "./chunk-1c43349s.js";
30
- import"./chunk-9v45j71e.js";
31
- import"./chunk-tg7ppsxr.js";
29
+ } from "./chunk-jmypgf6s.js";
30
+ import"./chunk-rw3n3z6t.js";
31
+ import"./chunk-b26rvgjd.js";
32
32
  import {
33
33
  openBlocks,
34
34
  parseQuestions
35
- } from "./chunk-wzzywf6c.js";
35
+ } from "./chunk-h23db062.js";
36
36
  import {
37
37
  PROJECT_FRAMEWORK_DIR,
38
38
  PROJECT_WORK_DIR,
@@ -42,7 +42,7 @@ import {
42
42
  isRecord,
43
43
  listRunDirs,
44
44
  parseYaml
45
- } from "./chunk-r1efatxk.js";
45
+ } from "./chunk-5hyd1rk1.js";
46
46
 
47
47
  // src/core/status/PendingItem.ts
48
48
  function isPending(item) {
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  bar,
4
4
  runSnapshot
5
- } from "./chunk-d20x2aew.js";
6
- import"./chunk-1c43349s.js";
7
- import"./chunk-9v45j71e.js";
8
- import"./chunk-tg7ppsxr.js";
9
- import"./chunk-wzzywf6c.js";
5
+ } from "./chunk-wbkwjpq2.js";
6
+ import"./chunk-jmypgf6s.js";
7
+ import"./chunk-rw3n3z6t.js";
8
+ import"./chunk-b26rvgjd.js";
9
+ import"./chunk-h23db062.js";
10
10
  import {
11
11
  findWorkspaceRoot,
12
12
  runtime
13
- } from "./chunk-r1efatxk.js";
13
+ } from "./chunk-5hyd1rk1.js";
14
14
 
15
15
  // src/core/statusline/renderStatusLine.ts
16
16
  var NO_SESSION_DATA = "[tldrx] no session data";