tldr-experts 0.32.0 → 0.33.0
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 +98 -0
- package/README.md +1 -0
- package/dist/hooks/answer-capture.js +13 -9
- package/dist/hooks/budget-gate.js +9 -9
- package/dist/hooks/{chunk-9bd6b3xf.js → chunk-0a3b8w1c.js} +5 -1
- package/dist/hooks/{chunk-whvae1vw.js → chunk-4w2e56zw.js} +6 -6
- package/dist/hooks/{chunk-8ds2ret8.js → chunk-57s4mdhy.js} +1 -1
- package/dist/hooks/{chunk-akemhezh.js → chunk-5wh26b5f.js} +2 -2
- package/dist/hooks/{chunk-72et1xzx.js → chunk-6jd4dnyg.js} +1 -1
- package/dist/hooks/{chunk-5kv2vtha.js → chunk-7ypyp8xk.js} +1 -1
- package/dist/hooks/{chunk-f9d2efhb.js → chunk-bfvcebn6.js} +3 -3
- package/dist/hooks/{chunk-27v2rwa9.js → chunk-d3jrf6yy.js} +1 -1
- package/dist/hooks/{chunk-zyz0fbz5.js → chunk-jfaarcb1.js} +1 -1
- package/dist/hooks/{chunk-04kpbhvk.js → chunk-px7swzs1.js} +3 -3
- package/dist/hooks/{chunk-5at77jx8.js → chunk-s4kz5nn2.js} +2 -2
- package/dist/hooks/{chunk-x1f4dxwk.js → chunk-sjykymar.js} +1 -1
- package/dist/hooks/{chunk-q1ge3nex.js → chunk-vhn2vz83.js} +1 -1
- package/dist/hooks/{chunk-yyhwf3bp.js → chunk-vhy24kv6.js} +1 -1
- package/dist/hooks/claim-sources.js +5 -5
- package/dist/hooks/dod-gate.js +7 -7
- package/dist/hooks/no-reask.js +8 -8
- package/dist/hooks/session-start.js +12 -12
- package/dist/hooks/statusline.js +8 -8
- package/dist/tldrx.js +625 -495
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,103 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.33.0 — 2026-09-17
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **A workspace can opt its base pre-flight probe into a story-shaped worktree, so an
|
|
8
|
+
environmental red that only appears there is caught before the first story (#371).** #363
|
|
9
|
+
shipped `tree:` provenance on every base-pre-flight row and declined, by measured decision, to
|
|
10
|
+
move the probe itself into a worktree by default — doing so on every run would pay for the
|
|
11
|
+
declared command a second time and reopen the `node_modules`-less outage the checkout-only
|
|
12
|
+
design exists to avoid. `probe_in_worktree: true`, workspace-wide and additive, is the opt-in
|
|
13
|
+
for a workspace that has actually seen the gap #363 named: a command green in the checkout and
|
|
14
|
+
red only in a story's own worktree shape (a `.git` FILE vs. a `.git` directory is the measured
|
|
15
|
+
case). On, every declared base command is ALSO measured, once per repo, in a fresh detached
|
|
16
|
+
worktree of the base sha — kept beside the checkout row, never instead of it, under the same
|
|
17
|
+
`tree:` field (`checkout` vs. `worktree`) rather than a third tree constant. Off (the default,
|
|
18
|
+
and every workspace before this key existed) leaves the base pre-flight measuring the checkout
|
|
19
|
+
only, exactly as before. Pre-merge review measurement: a session that calls the base pre-flight
|
|
20
|
+
more than once (a `prepare()` followed by the real call) paid for a `git worktree add`/`remove`
|
|
21
|
+
on EVERY call, even when every declared command already had a fresh `tree: worktree` reading and
|
|
22
|
+
nothing was spawned there — fixed by checking every command's cache hit before touching git at
|
|
23
|
+
all, so a worktree is opened only when at least one command still needs a fresh measurement.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **The plan sequencing rule (#365) could false-positive two unrelated stories that happened to
|
|
28
|
+
share a generic single-transition camelCase token (#370).** `fieldsIn`
|
|
29
|
+
(`src/core/plan/planShape.ts`) captured ANY bare camelCase/PascalCase token with one inner
|
|
30
|
+
capital as a field candidate, so a story enforcing an invariant near a word like `toString` or
|
|
31
|
+
`getId` collided with an unrelated story populating a same-named `toString` or `getId`
|
|
32
|
+
elsewhere, refusing an honest plan for sharing nothing but an incidental identifier. A bare
|
|
33
|
+
camelCase/PascalCase token with at least two internal capital transitions
|
|
34
|
+
(`DeliveryAddressText`) still always counts; a one-transition token (`toString`, `getId`) now
|
|
35
|
+
counts only when the SAME normalized field is ALSO spelled `snake_case` or backtick-quoted
|
|
36
|
+
somewhere else in the plan — dropping one-transition tokens outright, the first cut at this
|
|
37
|
+
fix, reopened #365 for a genuine two-word field spelled bare PascalCase on one side and
|
|
38
|
+
`snake_case` on the other (`order_total` enforced in one story, bare `OrderTotal` populated in
|
|
39
|
+
another still refuses; `toString` shared by two unrelated stories, with no `snake_case` or
|
|
40
|
+
backtick sibling anywhere in the plan, still does not). `snake_case` and backtick-quoted
|
|
41
|
+
identifiers are unaffected either way, and the originating #365 case still refuses.
|
|
42
|
+
- **`task.done`'s `as_is_note` had no size bound, unlike its two siblings on the same event
|
|
43
|
+
(#368).** `permission_refused` and `budget_death` were clamped by #359 after a ~110-line
|
|
44
|
+
refused heredoc alone pushed `task.done` past the §2.9 4096-byte payload cap and failed the
|
|
45
|
+
whole build STAGE, not just the story. `as_is_note` — the operator-typed `--note` on `tldrx
|
|
46
|
+
story reopen <id> --as-is` — was never given the same treatment, even though nothing stops a
|
|
47
|
+
long, scripted or pasted note from reaching the exact same shape. It is now passed through the
|
|
48
|
+
same `clampAgentText` call, the same `TASK_DONE_FIELD_MAX_BYTES` constant and the same
|
|
49
|
+
`[clamped: N bytes exceeds the M byte cap]` marker convention #359 already set, so an
|
|
50
|
+
oversized as-is note can no longer fail the build stage.
|
|
51
|
+
- **The Build-entry probe's throwaway worktree ran a repo's `install:` but not its
|
|
52
|
+
`tool_restore:`, so a command whose resolution depended on the restore having run could be
|
|
53
|
+
refused there even though the checkout door — which does run `tool_restore:` since #363 —
|
|
54
|
+
would have been fine (part of #371).** `entryProbe.ts`'s per-repo declaration now also reads
|
|
55
|
+
`tool_restore:` (`toolRestoreCommandFor`, the same slot `prepBaseTree` already runs at the
|
|
56
|
+
checkout door) and runs it in the fresh worktree before that worktree's `install:` and before
|
|
57
|
+
any Definition-of-Done command's binary is resolved there, refusing Build by name on a
|
|
58
|
+
nonzero exit — the same shape the checkout door already uses, never a second copy of the
|
|
59
|
+
restore logic.
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- **`settleAskedNoDiff` and `settleRedDod` now share one requeue-settle helper instead of each
|
|
64
|
+
hand-building the same shape (#369).** Both settled a "requeue this attempt, attempts remain"
|
|
65
|
+
turn by constructing an identical eight-field n-a-review object and `keepWorktree: true` by
|
|
66
|
+
hand — copied verbatim in two places, the AGENTS.md §12 duplication the file's own
|
|
67
|
+
decomposition precedent exists to avoid. `settleRequeue` now holds that shape once, taking the
|
|
68
|
+
fields that actually vary (`dod`, `reason`, `askedNoDiff`) as data; both call sites are
|
|
69
|
+
unchanged in behavior — `test/build-golden.test.ts` stays byte-identical.
|
|
70
|
+
- **AGENTS.md §11 now names the negated-closing-verb trap and widens its own verification
|
|
71
|
+
grep to catch it.** Measured 2026-09-16: commit `d8f90f9`'s sentence `reported not fixed:
|
|
72
|
+
#359` auto-closed #359 anyway — GitHub's closing-keyword parser matches `fixed` (any
|
|
73
|
+
inflection) followed by an optional colon/punctuation and `#N`, and does not parse the
|
|
74
|
+
negation three tokens earlier; #359 needed a reopen before its real fix (`24f1324`) closed
|
|
75
|
+
it a second time, legitimately. §11's own documented verification command,
|
|
76
|
+
`grep -iE '(clos|fix|resolv)[a-z]* #'`, had the identical blind spot — it does not allow a
|
|
77
|
+
colon between the verb and the number, so it read `fixed: #359` as a non-match (measured
|
|
78
|
+
exit 1) and would have let this exact sentence through. The grep is widened to
|
|
79
|
+
`(clos|fix|resolv)[a-z]*[[:punct:]]* #` (measured exit 0 on the same sentence); the real
|
|
80
|
+
discipline stays "never write a closing-shaped phrase near a `#N` that should not close" —
|
|
81
|
+
the grep is a tripwire, not the fix (closes #372).
|
|
82
|
+
- **`ci.yml` now keeps `test/merge-wave.test.ts`'s tmp sandbox as a build artifact when the
|
|
83
|
+
job fails.** This is an INSTRUMENT change, not a fix for the still-undiagnosed #237 flake
|
|
84
|
+
(interrupted-merge case expects a SIGTERM exit of 143, sometimes sees 0 after ~92s): every
|
|
85
|
+
#237 data point so far recorded the same second wall on top of the first — "no merge.log is
|
|
86
|
+
available from the CI sandbox" — because the sandbox that file plants was discarded with
|
|
87
|
+
the runner. The `bun test` step's `TMPDIR` now points at `${{ runner.temp }}/mw` instead of
|
|
88
|
+
the OS default, and a new `if: failure()` step uploads a scoped subset of it on failure
|
|
89
|
+
(`actions/upload-artifact@v4`, `retention-days: 14`). Review caught a second wall in the
|
|
90
|
+
first cut (closes #372's own class of bug, an instrument that cannot observe the thing):
|
|
91
|
+
`afterEach` `rmSync`s every sandbox unconditionally, pass or fail, INSIDE the bun process,
|
|
92
|
+
before that upload step ever runs — so the artifact would have been empty on the exact run
|
|
93
|
+
it exists for. `test/merge-wave.test.ts` now mkdtemps its sandboxes under the recognisable
|
|
94
|
+
`mw-sandbox-` prefix and skips its own cleanup when `MERGE_WAVE_KEEP_SANDBOX` is set (the
|
|
95
|
+
decision lives in one small, unit-tested function, `keepSandbox`/`cleanupSandbox` in
|
|
96
|
+
`test/fixtures/mergeWaveSandbox.ts` — local runs stay hermetic and self-cleaning per §8
|
|
97
|
+
unless that var is set); ci.yml sets it on the `bun test` step and scopes the upload's
|
|
98
|
+
`path:` to exactly that prefix, so the next red leaves a `merge.log` and lock state an
|
|
99
|
+
agent can actually read (see #237, closes #373).
|
|
100
|
+
|
|
3
101
|
## 0.32.0 — 2026-09-16
|
|
4
102
|
|
|
5
103
|
### Fixed
|
package/README.md
CHANGED
|
@@ -335,6 +335,7 @@ back on the registry is 0.3.0.
|
|
|
335
335
|
|
|
336
336
|
| Version | Date | Status | Contains |
|
|
337
337
|
|---|---|---|---|
|
|
338
|
+
| 0.33.0 | 2026-09-17 | `beta` | Six follow-ups from the 0.32.0 cycle, each measured on the second unattended run (run #42) or on the review that shipped it. The plan sequencing rule counts a bare camelCase field only when it is unambiguous or the plan spells it elsewhere as snake_case or in backticks, so unrelated stories sharing a word like `toString` no longer refuse each other (#370); `task.done` clamps an oversized `as_is_note` the way it clamps `permission_refused` (#368); the asked-no-diff and red-DoD requeues settle through one helper that takes data (#369); a workspace can opt its base pre-flight probe into a story-shaped worktree with `probe_in_worktree: true`, and the Build-entry probe runs `tool_restore:` first (#371, the remainder of #363); AGENTS §11 names the negated closing verb that still auto-closes and widens the pre-wave grep (#372); and CI keeps merge-wave's sandboxes on failure so the next #237 red carries its `merge.log` (#373). Minor release: a new workspace field and a new plan refusal shape. |
|
|
338
339
|
| 0.32.0 | 2026-09-16 | `beta` | Seven framework defects measured on the second unattended run (run #42), where every one of nine operator stalls was the framework's, not the code's. A refused compound shell line is a rework note for the developer instead of a human stop (#360); a dependency hold is re-evaluated the moment the dependency lands (#361) and a rescued story is written back to `todo` the instant the release is decided (#366); an event payload over the size cap is clamped to a bounded head instead of failing the whole build stage (#359); a headless developer is told it is unattended, that `## Inputs` is where to start and not an allowlist, and a turn that asks instead of deciding is a named `asked_no_diff` failure (#364); the rate-limit park waits for 90% of the window, not the provider's first warning at half of it (#367); the plan refuses a story that enforces an invariant on a field before the story that populates it, matching the field across spellings (#365); and the preflight restores workspace tools before its first probe and names the tree it ran in (#363, in part). Minor release: a new plan refusal, a changed park threshold and a new failure kind. |
|
|
339
340
|
| 0.31.1 | 2026-09-16 | `beta` | One fix, measured on the first unattended run under 0.31.0: a seed placed at the documented `.tldrx/seeds/` location was invisible to the seed-solution detector, because the filter that drops the `what` stage's own framework inputs dropped every `.tldrx/` path, so `how` ran at full price for exactly the seeds #346 was written to skip (#358). |
|
|
340
341
|
| 0.31.0 | 2026-09-16 | `beta` | Ten efficiency adjustments, ranked from a measured audit of 48 runs, so an unattended run spends less and stalls less. `how` is skipped when the seed already declares its own solution, and runs on `sonnet` when it does run (#346); `risks.md` is no longer generated (#350); `watch` follows `build`'s gate policy, so an all-auto run signs itself (#349); a Watch card's `[src:]` punctuation slip is repaired locally instead of costing a turn (#345); a fix list with zero open findings settles the round, an unreadable one holds it by name (#218); `run status` warns NO-RETRY before a retry the budget refuses (#232); a failed headless turn carries a named `failure_kind`, so the loop stops buying the same retry for every death (#348); an orphaned turn is banked as unmetered instead of a confident zero (#337); a relaunch resumes its own epic branch instead of restarting it (#347); the base-tree DoD refusal names the workspace `install:` (#343) and `run auto` names `--wait-gates` (#342). |
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
conflictOf
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-px7swzs1.js";
|
|
5
5
|
import {
|
|
6
6
|
FactsStore,
|
|
7
7
|
formatJaccard
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-bfvcebn6.js";
|
|
9
9
|
import {
|
|
10
10
|
parseHookInput,
|
|
11
11
|
readStdin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-jfaarcb1.js";
|
|
13
13
|
import"./chunk-ae6bkfs5.js";
|
|
14
14
|
import {
|
|
15
15
|
EventLog,
|
|
16
16
|
PHASE_ID_RE
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-5wh26b5f.js";
|
|
18
18
|
import {
|
|
19
19
|
PHASE_IDS
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import"./chunk-
|
|
20
|
+
} from "./chunk-vhy24kv6.js";
|
|
21
|
+
import"./chunk-7ypyp8xk.js";
|
|
22
22
|
import {
|
|
23
23
|
ADVISORY_KEY,
|
|
24
24
|
MAX_FACT_CHARS,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
renderQuestionBlock,
|
|
29
29
|
replaceBlock,
|
|
30
30
|
serializeQuestions
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-sjykymar.js";
|
|
32
32
|
import {
|
|
33
33
|
ITERATION_ONLY_SLOT,
|
|
34
34
|
PROJECT_FRAMEWORK_DIR,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
isScopedTemplate,
|
|
39
39
|
parseYaml,
|
|
40
40
|
scopedSlotOf
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-0a3b8w1c.js";
|
|
42
42
|
|
|
43
43
|
// src/hooks/answer-capture.ts
|
|
44
44
|
import { existsSync as existsSync5 } from "fs";
|
|
@@ -157,6 +157,7 @@ function loadWorkspace(root) {
|
|
|
157
157
|
const scopedTemplates = new Set;
|
|
158
158
|
const defaultBranches = new Map;
|
|
159
159
|
let seedTriageThresholdTokens = null;
|
|
160
|
+
let probeInWorktree = false;
|
|
160
161
|
const empty = () => ({
|
|
161
162
|
root,
|
|
162
163
|
repos,
|
|
@@ -168,7 +169,8 @@ function loadWorkspace(root) {
|
|
|
168
169
|
scopedCommands,
|
|
169
170
|
scopedTemplates,
|
|
170
171
|
defaultBranches,
|
|
171
|
-
seedTriageThresholdTokens
|
|
172
|
+
seedTriageThresholdTokens,
|
|
173
|
+
probeInWorktree
|
|
172
174
|
});
|
|
173
175
|
const path = join(root, PROJECT_FRAMEWORK_DIR, "workspace.yml");
|
|
174
176
|
if (!existsSync(path))
|
|
@@ -186,6 +188,8 @@ function loadWorkspace(root) {
|
|
|
186
188
|
seedTriageThresholdTokens = tokens;
|
|
187
189
|
}
|
|
188
190
|
}
|
|
191
|
+
if (doc?.probe_in_worktree === true)
|
|
192
|
+
probeInWorktree = true;
|
|
189
193
|
const list = doc?.repos;
|
|
190
194
|
if (!Array.isArray(list))
|
|
191
195
|
return empty();
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
budgetGateDeny
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-vhn2vz83.js";
|
|
5
5
|
import {
|
|
6
6
|
allow,
|
|
7
7
|
deny,
|
|
8
8
|
readPayload,
|
|
9
9
|
runHook,
|
|
10
10
|
toolInput
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import"./chunk-
|
|
11
|
+
} from "./chunk-d3jrf6yy.js";
|
|
12
|
+
import"./chunk-jfaarcb1.js";
|
|
13
13
|
import {
|
|
14
14
|
REBALANCE_SOURCE,
|
|
15
15
|
applyRebalance,
|
|
@@ -27,10 +27,10 @@ import {
|
|
|
27
27
|
validateRunBudget,
|
|
28
28
|
wouldExceed,
|
|
29
29
|
wouldExceedHostTokens
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-s4kz5nn2.js";
|
|
31
31
|
import {
|
|
32
32
|
EventLog
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-5wh26b5f.js";
|
|
34
34
|
import {
|
|
35
35
|
cursorStage,
|
|
36
36
|
hostTokensIn,
|
|
@@ -39,20 +39,20 @@ import {
|
|
|
39
39
|
newestActiveRun,
|
|
40
40
|
renderRunEconomies,
|
|
41
41
|
runSpend
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-57s4mdhy.js";
|
|
43
43
|
import {
|
|
44
44
|
buildStageDefaults
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-vhy24kv6.js";
|
|
46
46
|
import {
|
|
47
47
|
noteDeprecations
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-sjykymar.js";
|
|
49
49
|
import {
|
|
50
50
|
PROJECT_WORK_DIR,
|
|
51
51
|
findWorkspaceRoot,
|
|
52
52
|
locateWork,
|
|
53
53
|
parseYaml,
|
|
54
54
|
stageYamlPath
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-0a3b8w1c.js";
|
|
56
56
|
|
|
57
57
|
// src/hooks/budget-gate.ts
|
|
58
58
|
import { existsSync as existsSync2, readFileSync as readFileSync2, statSync } from "node:fs";
|
|
@@ -8818,6 +8818,7 @@ function loadWorkspace(root) {
|
|
|
8818
8818
|
const scopedTemplates = new Set;
|
|
8819
8819
|
const defaultBranches = new Map;
|
|
8820
8820
|
let seedTriageThresholdTokens = null;
|
|
8821
|
+
let probeInWorktree = false;
|
|
8821
8822
|
const empty = () => ({
|
|
8822
8823
|
root,
|
|
8823
8824
|
repos,
|
|
@@ -8829,7 +8830,8 @@ function loadWorkspace(root) {
|
|
|
8829
8830
|
scopedCommands,
|
|
8830
8831
|
scopedTemplates,
|
|
8831
8832
|
defaultBranches,
|
|
8832
|
-
seedTriageThresholdTokens
|
|
8833
|
+
seedTriageThresholdTokens,
|
|
8834
|
+
probeInWorktree
|
|
8833
8835
|
});
|
|
8834
8836
|
const path = join3(root, PROJECT_FRAMEWORK_DIR, "workspace.yml");
|
|
8835
8837
|
if (!existsSync3(path))
|
|
@@ -8847,6 +8849,8 @@ function loadWorkspace(root) {
|
|
|
8847
8849
|
seedTriageThresholdTokens = tokens;
|
|
8848
8850
|
}
|
|
8849
8851
|
}
|
|
8852
|
+
if (doc?.probe_in_worktree === true)
|
|
8853
|
+
probeInWorktree = true;
|
|
8850
8854
|
const list = doc?.repos;
|
|
8851
8855
|
if (!Array.isArray(list))
|
|
8852
8856
|
return empty();
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
storyDependsOn,
|
|
12
12
|
tallyOf,
|
|
13
13
|
validateRunBudget
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-s4kz5nn2.js";
|
|
15
15
|
import {
|
|
16
16
|
EventLog,
|
|
17
17
|
OUTCOME_NOT_RECORDED,
|
|
@@ -24,12 +24,12 @@ import {
|
|
|
24
24
|
isTerminal,
|
|
25
25
|
stageAt,
|
|
26
26
|
validateRunFile
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-5wh26b5f.js";
|
|
28
28
|
import {
|
|
29
29
|
cursorStage,
|
|
30
30
|
isAttendedByHostView,
|
|
31
31
|
openRunViews
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-57s4mdhy.js";
|
|
33
33
|
import {
|
|
34
34
|
backupPathFor,
|
|
35
35
|
isAlive,
|
|
@@ -38,13 +38,13 @@ import {
|
|
|
38
38
|
workspaceRootOfRunDir,
|
|
39
39
|
writeAtomic,
|
|
40
40
|
yamlScalar
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-7ypyp8xk.js";
|
|
42
42
|
import {
|
|
43
43
|
isAdvisory,
|
|
44
44
|
noteDeprecations,
|
|
45
45
|
openBlocks,
|
|
46
46
|
parseQuestions
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-sjykymar.js";
|
|
48
48
|
import {
|
|
49
49
|
FRAMEWORK_ROOT,
|
|
50
50
|
MAX_ITEM_CHARS,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
parseYaml,
|
|
56
56
|
parseYamlRepairing,
|
|
57
57
|
withoutSrcToken
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-0a3b8w1c.js";
|
|
59
59
|
|
|
60
60
|
// src/core/statusline/runSnapshot.ts
|
|
61
61
|
import { existsSync as existsSync4, readFileSync as readFileSync5 } from "node:fs";
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
GATE_POLICIES,
|
|
3
3
|
validateGatesPolicy,
|
|
4
4
|
validateStagePolicy
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-vhy24kv6.js";
|
|
6
6
|
import {
|
|
7
7
|
asDocument,
|
|
8
8
|
isRecord,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
requireString,
|
|
16
16
|
requireVersion,
|
|
17
17
|
result
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-0a3b8w1c.js";
|
|
19
19
|
|
|
20
20
|
// src/core/events/EventLog.ts
|
|
21
21
|
import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PROJECT_FRAMEWORK_DIR,
|
|
3
3
|
PROJECT_WORK_DIR
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-0a3b8w1c.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-
|
|
6
|
+
} from "./chunk-7ypyp8xk.js";
|
|
7
7
|
import {
|
|
8
8
|
FACT_CONFIDENCES,
|
|
9
9
|
FACT_DECIDERS,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
isLive,
|
|
16
16
|
isRetired,
|
|
17
17
|
noteDeprecations
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-sjykymar.js";
|
|
19
19
|
import {
|
|
20
20
|
SRC_PATTERNS,
|
|
21
21
|
asDocument,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
requireString,
|
|
29
29
|
requireVersion,
|
|
30
30
|
result
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-0a3b8w1c.js";
|
|
32
32
|
|
|
33
33
|
// src/core/facts/FactsStore.ts
|
|
34
34
|
import { existsSync, readFileSync } from "node:fs";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findDuplicate
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-bfvcebn6.js";
|
|
4
4
|
import {
|
|
5
5
|
evidencePath,
|
|
6
6
|
gateEvidencePath,
|
|
7
7
|
parseEvidence
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5wh26b5f.js";
|
|
9
9
|
import {
|
|
10
10
|
openBlocks,
|
|
11
11
|
parseQuestions
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-sjykymar.js";
|
|
13
13
|
|
|
14
14
|
// src/core/distill/distill.ts
|
|
15
15
|
var CONFLICT_THRESHOLD = 0.6;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
STAGE_TUNING_DEFAULTS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-vhy24kv6.js";
|
|
4
4
|
import {
|
|
5
5
|
MAX_PLAN_STORIES,
|
|
6
6
|
MAX_STORIES_PER_WAVE,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
requireVersion,
|
|
27
27
|
requireVersion1,
|
|
28
28
|
result
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-0a3b8w1c.js";
|
|
30
30
|
|
|
31
31
|
// src/hooks/lib/actor.ts
|
|
32
32
|
function currentActor() {
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
EMPTY_SECTION_RULE,
|
|
4
4
|
noneBullet,
|
|
5
5
|
srcRule
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-0a3b8w1c.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-
|
|
4
|
+
} from "./chunk-6jd4dnyg.js";
|
|
5
5
|
import {
|
|
6
6
|
claimSourcesDeny,
|
|
7
7
|
claimSourcesEmptySectionDeny,
|
|
8
8
|
claimSourcesMalformedDeny,
|
|
9
9
|
claimSourcesUnresolvedDeny
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-vhn2vz83.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-
|
|
20
|
-
import"./chunk-
|
|
19
|
+
} from "./chunk-d3jrf6yy.js";
|
|
20
|
+
import"./chunk-jfaarcb1.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-
|
|
28
|
+
} from "./chunk-0a3b8w1c.js";
|
|
29
29
|
|
|
30
30
|
// src/hooks/claim-sources.ts
|
|
31
31
|
await runHook("claim-sources", async () => {
|
package/dist/hooks/dod-gate.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
wouldBeContent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6jd4dnyg.js";
|
|
5
5
|
import {
|
|
6
6
|
dodGateDeny,
|
|
7
7
|
dodGateInternalErrorDeny,
|
|
8
8
|
dodGateMissingBlockDeny,
|
|
9
9
|
dodGateRefusedCommandDeny
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-vhn2vz83.js";
|
|
11
11
|
import {
|
|
12
12
|
allow,
|
|
13
13
|
deny,
|
|
@@ -15,15 +15,15 @@ import {
|
|
|
15
15
|
filePathOf,
|
|
16
16
|
isWriteOrEdit,
|
|
17
17
|
readPayload
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import"./chunk-
|
|
18
|
+
} from "./chunk-d3jrf6yy.js";
|
|
19
|
+
import"./chunk-jfaarcb1.js";
|
|
20
20
|
import {
|
|
21
21
|
loadRunView
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-57s4mdhy.js";
|
|
23
23
|
import {
|
|
24
24
|
DEFAULT_TIMEOUT_S,
|
|
25
25
|
buildStageDefaults
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-vhy24kv6.js";
|
|
27
27
|
import {
|
|
28
28
|
DodCommandRefused,
|
|
29
29
|
loadWorkspace,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
readStory,
|
|
32
32
|
repoPath,
|
|
33
33
|
runDodCommand
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-0a3b8w1c.js";
|
|
35
35
|
|
|
36
36
|
// src/hooks/dod-gate.ts
|
|
37
37
|
import { basename, join } from "node:path";
|
package/dist/hooks/no-reask.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
wouldBeContent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6jd4dnyg.js";
|
|
5
5
|
import {
|
|
6
6
|
noReAskDeny
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-vhn2vz83.js";
|
|
8
8
|
import {
|
|
9
9
|
FactsStore
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-bfvcebn6.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-
|
|
19
|
-
import"./chunk-
|
|
20
|
-
import"./chunk-
|
|
18
|
+
} from "./chunk-d3jrf6yy.js";
|
|
19
|
+
import"./chunk-jfaarcb1.js";
|
|
20
|
+
import"./chunk-7ypyp8xk.js";
|
|
21
21
|
import {
|
|
22
22
|
openBlocks,
|
|
23
23
|
parseQuestions
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-sjykymar.js";
|
|
25
25
|
import {
|
|
26
26
|
factsPath,
|
|
27
27
|
locateWork
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-0a3b8w1c.js";
|
|
29
29
|
|
|
30
30
|
// src/hooks/no-reask.ts
|
|
31
31
|
import { existsSync, readFileSync } from "node:fs";
|