@pmelab/gtd 64.1.1 → 64.2.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/.claude-plugin/plugin.json +1 -1
- package/README.md +27 -14
- package/dist/chunks/{flows-B7ZRCe-B.mjs → flows-dnIE_qbe.mjs} +7 -13
- package/dist/chunks/{rolldown-runtime-D7D4PA-g.mjs → rolldown-runtime-D8jQpDG7.mjs} +1 -2
- package/dist/chunks/{steering-Cem5i6Xl.mjs → steering-DEh_MS40.mjs} +181 -187
- package/dist/chunks/{testkit-DfWZQCWQ.mjs → testkit-BwCH8ky6.mjs} +412 -512
- package/dist/chunks/{wire-CPNSm_9N.mjs → wire-CaPJ9Tme.mjs} +12 -24
- package/dist/flows.mjs +1 -2
- package/dist/gtd.bundle.mjs +1010 -1785
- package/dist/gtd.core.mjs +191 -182
- package/dist/steering.mjs +1 -2
- package/dist/testkit/gherkin.mjs +3 -5
- package/dist/testkit.mjs +2 -2
- package/dist/web/main.css +1 -1
- package/dist/web/main.js +438 -413
- package/dist/wire.mjs +1 -2
- package/dist/workflow-kit.mjs +6 -10
- package/package.json +19 -32
- package/src/cli/Cli.test.ts +1 -0
- package/src/cli/Cli.ts +16 -1
- package/src/cli/Program.ts +6 -0
- package/src/cli/ToolCommands.ts +1 -0
- package/src/edge/Edge.test.ts +23 -1
- package/src/edge/Edge.ts +23 -1
- package/src/edge/index.ts +1 -0
- package/src/emit/GitScript.test.ts +1 -1
- package/src/flows/runtime.test.ts +1 -1
- package/src/platform/Git.ts +33 -10
- package/src/replay/Replay.test.ts +21 -7
- package/src/steering/Blocks.test.ts +3 -1
- package/src/steering/Blocks.ts +14 -6
- package/src/steering/SteeringFormat.ts +9 -1
- package/src/steering/freeform.test.ts +51 -1
- package/src/steering/freeform.ts +38 -0
- package/src/steering/qa.test.ts +3 -3
- package/src/steering/qa.ts +1 -1
- package/src/steering/review.test.ts +26 -1
- package/src/step/LandStep.ts +1 -1
- package/src/twins/FakeGitOperations.ts +2 -0
- package/src/twins/GitTiers.ts +27 -2
- package/src/twins/InMemRepo.ts +5 -0
- package/src/wire/BeatPlain.ts +3 -3
- package/src/wire/Select.ts +1 -1
package/README.md
CHANGED
|
@@ -433,20 +433,24 @@ commit. Its guide is
|
|
|
433
433
|
Prefer a phone or another device over your editor? `gtd ui` opens the file whose
|
|
434
434
|
turn it is as a small web app, over Tailscale — including a step that names no
|
|
435
435
|
format, or one nothing recognizes, which still opens as plain markdown structure
|
|
436
|
-
instead of refusing to start: read, plus a note on any block
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
436
|
+
instead of refusing to start: read, plus a note on any block and tickable
|
|
437
|
+
task-list boxes (each list is pick-one: ticking a box unticks its siblings, and
|
|
438
|
+
a ticked box can't be cleared from the phone). It also binds on an idle worktree
|
|
439
|
+
— nothing pending yet — opening `.gtd/TODO.md` free-form with a bare textfield
|
|
440
|
+
so you can sketch from your phone; the sketch stays un-triaged on disk until you
|
|
441
|
+
run `gtd` again, from anywhere, to pick it up. A description renders inline
|
|
442
|
+
markdown — bold, code, strikethrough, links, and images — instead of literal
|
|
443
|
+
asterisks and backticks. A note you add from the phone starts a thread: a
|
|
444
|
+
footnote holding a `H:`/`A:` conversation. Threads show as a conversation under
|
|
445
|
+
their block, question, chunk, or hunk — or, in a review chunk with no file
|
|
446
|
+
pointers, under each line of its lists, so a summary's entries take a note
|
|
447
|
+
apiece — and one the agent answered last carries a "waiting on you" badge. Tap
|
|
448
|
+
it to reply — your reply is added as a new `H:` entry; while the agent has yet
|
|
449
|
+
to answer, reopening it edits your last entry instead. Tap an already-answered
|
|
450
|
+
question to leave a note on it; the agent may overturn the answer. A `findings`
|
|
451
|
+
file lists its findings, each with a fix checkbox and, once ticked, an optional
|
|
452
|
+
line of guidance; Done stays disabled while the file holds anything its gate
|
|
453
|
+
would refuse. See
|
|
450
454
|
[Configuration](https://github.com/pmelab/gtd/blob/main/docs/configuration.md)
|
|
451
455
|
for its `ui:` settings.
|
|
452
456
|
|
|
@@ -470,6 +474,15 @@ unknown key. `gtd.config.ts` is the only repository config: gtd 23 removed the
|
|
|
470
474
|
home directory — fails every command until you delete it. See
|
|
471
475
|
[Migrating from `.gtdrc`](https://github.com/pmelab/gtd/blob/main/docs/configuration.md#migrating-from-gtdrc).
|
|
472
476
|
|
|
477
|
+
## Large untracked trees
|
|
478
|
+
|
|
479
|
+
`gtd next`, `gtd land`, `gtd judge answer` and `gtd start` refuse when the
|
|
480
|
+
worktree holds more than 1,000 untracked, un-ignored files (a landing would
|
|
481
|
+
commit them all). The error names the count and the largest untracked
|
|
482
|
+
directories; add them to `.gitignore` (or `.git/info/exclude`) or delete them,
|
|
483
|
+
then run again. Fixed limit, no config key. Every other command — read-only ones
|
|
484
|
+
like `gtd check --open-threads`, `gtd judge`, `gtd validate` — never refuses.
|
|
485
|
+
|
|
473
486
|
## Checking a range for stray files
|
|
474
487
|
|
|
475
488
|
```sh
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __exportAll } from "./rolldown-runtime-
|
|
2
|
-
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
// src/flows/runtime.ts
|
|
3
3
|
/**
|
|
4
4
|
* Bump only when the installed `FlowContext` object changes shape or semantics;
|
|
5
5
|
* type-only authoring-API changes don't count. A bump past 1 must keep v1
|
|
@@ -207,8 +207,7 @@ const workflow = (flow, options = {}) => {
|
|
|
207
207
|
};
|
|
208
208
|
/** The options `value` was marked with, or `undefined` when it went through no `workflow()`. */
|
|
209
209
|
const markedOptions = (value) => typeof value === "function" && MARKED in value ? value[MARKED] : void 0;
|
|
210
|
-
|
|
211
|
-
//#region src/flows/scripts.ts
|
|
210
|
+
// src/flows/scripts.ts
|
|
212
211
|
/** POSIX single-quoting: `value` survives the shell as one word, verbatim. */
|
|
213
212
|
const quote = (value) => `'${value.replace(/'/g, "'\\''")}'`;
|
|
214
213
|
const removal = (paths) => paths.length === 0 ? [] : [`rm -rf -- ${paths.map(quote).join(" ")}`];
|
|
@@ -319,8 +318,7 @@ const showScript = (ref, path, to) => [
|
|
|
319
318
|
`git show ${quote(`${ref}:${path}`)} > ${quote(to)}`,
|
|
320
319
|
""
|
|
321
320
|
].join("\n");
|
|
322
|
-
|
|
323
|
-
//#region src/flows/helpers.ts
|
|
321
|
+
// src/flows/helpers.ts
|
|
324
322
|
/** Whether a judge answered `expected` at a probability of at least `minP`. */
|
|
325
323
|
const answered = (answer, expected, minP) => answer !== void 0 && answer.answer === expected && answer.p >= minP;
|
|
326
324
|
/** A numeric var, or `fallback` when it is unset, blank or not a finite number. */
|
|
@@ -484,8 +482,7 @@ const seamGate = async (name, shape) => {
|
|
|
484
482
|
approve: true
|
|
485
483
|
});
|
|
486
484
|
};
|
|
487
|
-
|
|
488
|
-
//#region src/flows/factory.ts
|
|
485
|
+
// src/flows/factory.ts
|
|
489
486
|
const FACTORY = Symbol.for("@pmelab/gtd/workflow-factory");
|
|
490
487
|
/**
|
|
491
488
|
* Define a workflow configured by options. `schema` is any Standard Schema
|
|
@@ -549,8 +546,7 @@ const configure = (value, overrides = {}) => {
|
|
|
549
546
|
build: internals.build(result.value)
|
|
550
547
|
};
|
|
551
548
|
};
|
|
552
|
-
|
|
553
|
-
//#region src/flows/config.ts
|
|
549
|
+
// src/flows/config.ts
|
|
554
550
|
const CONFIG_KEYS = [
|
|
555
551
|
"modes",
|
|
556
552
|
"ui",
|
|
@@ -644,8 +640,7 @@ const defineConfig = (config) => {
|
|
|
644
640
|
if (problems.length > 0) throw new Error(problems.map(formatConfigProblem).join("; "));
|
|
645
641
|
return config;
|
|
646
642
|
};
|
|
647
|
-
|
|
648
|
-
//#region src/flows/index.ts
|
|
643
|
+
// src/flows/index.ts
|
|
649
644
|
var flows_exports = /* @__PURE__ */ __exportAll({
|
|
650
645
|
FLOWS_PROTOCOL: () => 1,
|
|
651
646
|
FlowsProtocolError: () => FlowsProtocolError,
|
|
@@ -703,5 +698,4 @@ var flows_exports = /* @__PURE__ */ __exportAll({
|
|
|
703
698
|
writeScript: () => writeScript,
|
|
704
699
|
wrote: () => wrote
|
|
705
700
|
});
|
|
706
|
-
//#endregion
|
|
707
701
|
export { run as $, FLOWS_PROTOCOL as A, head as B, moveScript as C, revertScript as D, restoreScript as E, changesSince as F, mark as G, installContext as H, codeThreads as I, openQuestions as J, markedOptions as K, envSettings as L, accessFor as M, agent as N, showScript as O, changes as P, restart as Q, envSettingsOf as R, checkScript as S, removeScript as T, judge as U, human as V, kept as W, read as X, protocolMismatch as Y, refuse as Z, requireRevert as _, defineWorkflow as a, skillsFor as at, wrote as b, check as c, workflow as ct, hasThreadFor as d, scope as et, judgeDiffShape as f, requireReplies as g, requireProgress as h, configure as i, settingsOf as it, FlowsProtocolError as j, writeScript as k, codeChanges as l, requireAnswers as m, configProblems as n, sections as nt, isFactoryWorkflow as o, start as ot, numeric as p, matches as q, defineConfig as r, settings as rt, answered as s, threads as st, flows_exports as t, sectionBodies as tt, displayPath as u, requireThreadsClosed as v, quote as w, applyScript as x, seamGate as y, glob as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// \0rolldown/runtime.js
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __exportAll = (all, no_symbols) => {
|
|
4
4
|
let target = {};
|
|
@@ -9,5 +9,4 @@ var __exportAll = (all, no_symbols) => {
|
|
|
9
9
|
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
10
10
|
return target;
|
|
11
11
|
};
|
|
12
|
-
//#endregion
|
|
13
12
|
export { __exportAll as t };
|