tickmarkr 1.81.0 → 1.84.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.
Files changed (51) hide show
  1. package/README.md +4 -4
  2. package/dist/brand.d.ts +4 -1
  3. package/dist/brand.js +46 -7
  4. package/dist/cli/commands/approve.js +53 -8
  5. package/dist/cli/commands/plan.js +17 -2
  6. package/dist/cli/commands/report.js +15 -6
  7. package/dist/cli/commands/ui.js +13 -1
  8. package/dist/cli/index.d.ts +1 -1
  9. package/dist/cli/index.js +1 -1
  10. package/dist/compile/collateral.d.ts +19 -0
  11. package/dist/compile/collateral.js +90 -0
  12. package/dist/compile/index.js +18 -4
  13. package/dist/drivers/herdr.d.ts +1 -0
  14. package/dist/drivers/herdr.js +19 -0
  15. package/dist/drivers/types.d.ts +1 -0
  16. package/dist/gates/acceptance.js +50 -8
  17. package/dist/gates/llm.js +34 -19
  18. package/dist/gates/review.d.ts +9 -1
  19. package/dist/gates/review.js +173 -7
  20. package/dist/gates/run-gates.d.ts +1 -0
  21. package/dist/gates/run-gates.js +18 -1
  22. package/dist/report/bundle.d.ts +6 -1
  23. package/dist/report/bundle.js +13 -3
  24. package/dist/run/daemon.d.ts +5 -0
  25. package/dist/run/daemon.js +188 -27
  26. package/dist/run/journal.d.ts +5 -0
  27. package/dist/run/journal.js +71 -1
  28. package/dist/tui/cockpit/capture.d.ts +107 -1
  29. package/dist/tui/cockpit/capture.js +287 -10
  30. package/dist/tui/cockpit/components.d.ts +40 -47
  31. package/dist/tui/cockpit/components.js +66 -50
  32. package/dist/tui/cockpit/derive.d.ts +73 -1
  33. package/dist/tui/cockpit/derive.js +211 -15
  34. package/dist/tui/cockpit/keys.d.ts +114 -19
  35. package/dist/tui/cockpit/keys.js +413 -44
  36. package/dist/tui/cockpit/layout.d.ts +231 -0
  37. package/dist/tui/cockpit/layout.js +307 -0
  38. package/dist/tui/cockpit/live.d.ts +65 -3
  39. package/dist/tui/cockpit/live.js +418 -48
  40. package/dist/tui/cockpit/pointer.d.ts +261 -0
  41. package/dist/tui/cockpit/pointer.js +610 -0
  42. package/dist/tui/cockpit/run-cockpit.d.ts +93 -6
  43. package/dist/tui/cockpit/run-cockpit.js +805 -164
  44. package/dist/tui/cockpit/setup-cockpit.d.ts +146 -1
  45. package/dist/tui/cockpit/setup-cockpit.js +337 -5
  46. package/dist/tui/cockpit/views.d.ts +72 -0
  47. package/dist/tui/cockpit/views.js +56 -0
  48. package/dist/tui/cockpit/width.d.ts +105 -0
  49. package/dist/tui/cockpit/width.js +276 -0
  50. package/fixtures/speckit-sample/tasks.md +2 -2
  51. package/package.json +3 -1
@@ -1,9 +1,18 @@
1
1
  import { type ReactElement } from "react";
2
- import type { RunCockpitData } from "./derive.js";
3
- import { type RunInteractionState } from "./keys.js";
2
+ import { type JournalRow } from "./components.js";
3
+ import { type RunCockpitData } from "./derive.js";
4
+ import { type KeybarEntry, type RunInteractionState, type RunKeyProjection } from "./keys.js";
5
+ import { type RunViewId } from "./views.js";
6
+ import { type FramePlan, type FrameRegion, type FrameState, type FrameCockpitLayout, type FrameView, type MeasuredSize, type PlannedFrame } from "./layout.js";
4
7
  export { deriveRunCockpitData } from "./derive.js";
5
8
  export type { RunCockpitData } from "./derive.js";
6
9
  export { PANEL_CHROME_ROWS } from "./components.js";
10
+ /**
11
+ * The width focus and key routing resolve at, from a measured width — the form
12
+ * used before a plan exists. Once one does, `plannedKeyColumns` (pointer.ts)
13
+ * reads the same answer off the bands the plan actually drew.
14
+ */
15
+ export declare function runKeyColumns(columns: number): number;
7
16
  /**
8
17
  * How many rows one line of body text occupies once the renderer wraps it into
9
18
  * `columns`. This mirrors the renderer's own word wrap — greedy, and breaking a
@@ -13,14 +22,92 @@ export { PANEL_CHROME_ROWS } from "./components.js";
13
22
  export declare function wrappedRows(text: string, columns: number): number;
14
23
  /** The rows a bordered panel occupies when its body wraps into `columns`. */
15
24
  export declare function panelRows(lines: readonly string[], columns: number): number;
16
- export declare function RunCockpitFrame({ data, columns, rows, interaction, }: {
25
+ /**
26
+ * The selectable rows owned by one view. The overview's journal is a passive
27
+ * tail, not its item collection; tasks, gates and fleet remain honestly empty
28
+ * until their dedicated derivations land. Journal rows keep the source-record
29
+ * identities assigned by the production journal derivation.
30
+ */
31
+ export declare function deriveRunViewRows(data: RunCockpitData, viewId: RunViewId, filterQuery?: string): readonly JournalRow[];
32
+ /**
33
+ * The identities the body's rows carry in the order the body draws them — the
34
+ * same window `SizedJournalPanel` paints, so a hit on a body row resolves to
35
+ * the row an operator is looking at rather than to a position in a collection
36
+ * the frame scrolled past. A body that draws no selectable list (the overview,
37
+ * the journal tail, an open detail, the help overlay, the decisions tab) owns
38
+ * no rows here.
39
+ */
40
+ export declare function drawnRunViewRowIds(data: RunCockpitData, interaction: RunInteractionState, bodyRows: number): readonly string[];
41
+ /** What each drawn region draws: the resolved budgets its panels consume. */
42
+ export type RegionContent = {
43
+ /**
44
+ * Where the body band's item rows are drawn and how many there are: the
45
+ * plan's own `items` region, carried here unmodified. This file subtracts no
46
+ * chrome to obtain it — planFrame plans it, the paint draws its list at it,
47
+ * and hit resolution (pointer.ts) reads the same region off the same plan.
48
+ */
49
+ readonly items: FrameRegion;
50
+ readonly journal: number;
51
+ readonly sideRails: boolean;
52
+ readonly stats: FrameCockpitLayout["stats"]["mode"] | "none";
53
+ readonly progressBar: boolean;
54
+ readonly progressCaption: boolean;
55
+ readonly approvedProgress: boolean;
56
+ };
57
+ export type PlannedRunCockpitFrame = {
58
+ readonly plan: FramePlan;
59
+ readonly columns: number;
60
+ readonly rows?: number;
61
+ /** What fills the drawn regions; absent on the unsized legacy surface. */
62
+ readonly content?: RegionContent;
63
+ /** The inputs planFrame planned from, so the guard can re-plan and refuse
64
+ * a span that moved after planning. */
65
+ readonly planning?: {
66
+ readonly size: MeasuredSize;
67
+ readonly view: FrameView;
68
+ readonly state: FrameState;
69
+ };
70
+ readonly interaction: RunInteractionState;
71
+ readonly keyEntries: readonly KeybarEntry[];
72
+ };
73
+ /** Resolve every draw-time input; the plan is planFrame's own return, consumed unmodified. */
74
+ export declare function planRunCockpitFrame({ data, columns, rows, interaction, keyProjection, railColumns, }: {
17
75
  data: RunCockpitData;
18
76
  columns: number;
19
77
  rows?: number;
78
+ interaction?: RunInteractionState;
79
+ keyProjection?: RunKeyProjection;
20
80
  /**
21
- * The run surface's interaction state. Omitted — or at its initial value —
22
- * the frame is byte-identical to the pinned appearance; every transition a
23
- * binding makes is drawn from it.
81
+ * The session's panel resize override, handed to planFrame as an input —
82
+ * never a bypass of it: the plan recomputes from the measured size plus this
83
+ * override and what is drawn is what the plan returns.
24
84
  */
85
+ railColumns?: number;
86
+ }): PlannedRunCockpitFrame;
87
+ /** The public surface always enters paint through one measured plan. */
88
+ export declare function RunCockpitFrame({ data, columns, rows, interaction, keyProjection, onCommittedFrame, }: {
89
+ data: RunCockpitData;
90
+ columns: number;
91
+ rows?: number;
25
92
  interaction?: RunInteractionState;
93
+ keyProjection?: RunKeyProjection;
94
+ /**
95
+ * The renderer's commit seam: once this frame is committed, the exact plan
96
+ * and inputs it was drawn from are handed back, so an input surface can
97
+ * resolve its hits against the frame on the screen rather than against a
98
+ * plan it derived for itself. What nothing has painted yet has no geometry.
99
+ */
100
+ onCommittedFrame?: (planned: PlannedRunCockpitFrame, data: RunCockpitData) => void;
101
+ }): ReactElement;
102
+ /**
103
+ * Assert the plan's tiled extents, the bytes production paints, and — given
104
+ * the offsets read off the painted nodes — that every planned region was
105
+ * drawn where the plan puts it.
106
+ */
107
+ export declare function assertFrameConformance(plan: PlannedFrame, drawnFrame: string, drawnRegions?: readonly FrameRegion[]): void;
108
+ /** Production paint consumes only resolved plan inputs and fails closed with
109
+ * the same conformance assertion the acceptance suite runs. */
110
+ export declare function RunCockpitFrameFromPlan({ data, plannedFrame, }: {
111
+ data: RunCockpitData;
112
+ plannedFrame: PlannedRunCockpitFrame;
26
113
  }): ReactElement;