tickmarkr 2.4.2 → 2.5.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.
Files changed (89) hide show
  1. package/README.md +110 -24
  2. package/dist/adapters/fake.d.ts +1 -0
  3. package/dist/adapters/fake.js +2 -1
  4. package/dist/adapters/opencode.d.ts +1 -0
  5. package/dist/adapters/opencode.js +4 -1
  6. package/dist/adapters/types.d.ts +14 -0
  7. package/dist/adapters/types.js +25 -0
  8. package/dist/cli/commands/approve.d.ts +42 -0
  9. package/dist/cli/commands/approve.js +80 -13
  10. package/dist/cli/commands/doctor.d.ts +234 -0
  11. package/dist/cli/commands/doctor.js +139 -5
  12. package/dist/cli/commands/init.d.ts +2 -0
  13. package/dist/cli/commands/init.js +45 -5
  14. package/dist/cli/commands/plan.js +58 -6
  15. package/dist/cli/commands/report.js +18 -45
  16. package/dist/cli/commands/run.js +3 -0
  17. package/dist/cli/commands/scope.js +36 -6
  18. package/dist/cli/commands/stats.d.ts +2 -0
  19. package/dist/cli/commands/stats.js +42 -23
  20. package/dist/cli/commands/status.js +20 -4
  21. package/dist/cli/commands/ui.js +42 -53
  22. package/dist/cli/commands/unlock.d.ts +1 -1
  23. package/dist/cli/commands/unlock.js +59 -9
  24. package/dist/cli/help.d.ts +219 -0
  25. package/dist/cli/help.js +212 -0
  26. package/dist/cli/index.d.ts +42 -2
  27. package/dist/cli/index.js +23 -8
  28. package/dist/drivers/herdr.d.ts +7 -2
  29. package/dist/drivers/herdr.js +78 -48
  30. package/dist/drivers/orca.d.ts +3 -2
  31. package/dist/drivers/orca.js +43 -4
  32. package/dist/drivers/subprocess.d.ts +1 -0
  33. package/dist/drivers/subprocess.js +3 -0
  34. package/dist/drivers/types.d.ts +14 -0
  35. package/dist/gates/artifact-manifest.d.ts +50 -0
  36. package/dist/gates/artifact-manifest.js +23 -0
  37. package/dist/gates/llm.d.ts +5 -0
  38. package/dist/gates/llm.js +188 -3
  39. package/dist/gates/review.d.ts +6 -3
  40. package/dist/gates/review.js +79 -33
  41. package/dist/gates/run-gates.d.ts +3 -0
  42. package/dist/gates/run-gates.js +14 -4
  43. package/dist/plan/scope.d.ts +25 -0
  44. package/dist/plan/scope.js +92 -12
  45. package/dist/report/operator-record.d.ts +49 -0
  46. package/dist/report/operator-record.js +137 -0
  47. package/dist/run/daemon.d.ts +5 -5
  48. package/dist/run/daemon.js +166 -44
  49. package/dist/run/lock.d.ts +59 -2
  50. package/dist/run/lock.js +184 -26
  51. package/dist/run/operator-state.d.ts +86 -0
  52. package/dist/run/operator-state.js +165 -0
  53. package/dist/run/supervision.d.ts +32 -0
  54. package/dist/run/supervision.js +138 -17
  55. package/dist/tui/cockpit/capture.d.ts +19 -0
  56. package/dist/tui/cockpit/capture.js +89 -1
  57. package/dist/tui/cockpit/components.d.ts +15 -1
  58. package/dist/tui/cockpit/components.js +79 -9
  59. package/dist/tui/cockpit/decision-actions.d.ts +147 -0
  60. package/dist/tui/cockpit/decision-actions.js +315 -0
  61. package/dist/tui/cockpit/derive.d.ts +1 -1
  62. package/dist/tui/cockpit/derive.js +2 -0
  63. package/dist/tui/cockpit/evidence-view.d.ts +119 -0
  64. package/dist/tui/cockpit/evidence-view.js +210 -0
  65. package/dist/tui/cockpit/home-view.d.ts +88 -0
  66. package/dist/tui/cockpit/home-view.js +240 -0
  67. package/dist/tui/cockpit/keys.d.ts +125 -0
  68. package/dist/tui/cockpit/keys.js +31 -0
  69. package/dist/tui/cockpit/layout.d.ts +14 -0
  70. package/dist/tui/cockpit/layout.js +15 -0
  71. package/dist/tui/cockpit/live-runtime.d.ts +46 -0
  72. package/dist/tui/cockpit/live-runtime.js +683 -0
  73. package/dist/tui/cockpit/live-store.d.ts +289 -0
  74. package/dist/tui/cockpit/live-store.js +308 -0
  75. package/dist/tui/cockpit/live.d.ts +21 -1
  76. package/dist/tui/cockpit/live.js +12 -1
  77. package/dist/tui/cockpit/run-view.d.ts +100 -0
  78. package/dist/tui/cockpit/run-view.js +202 -0
  79. package/dist/tui/cockpit/shell.d.ts +50 -0
  80. package/dist/tui/cockpit/shell.js +74 -0
  81. package/dist/tui/cockpit/theme.d.ts +27 -0
  82. package/dist/tui/cockpit/theme.js +21 -0
  83. package/dist/tui/ink/init-app.d.ts +4 -0
  84. package/dist/tui/ink/init-app.js +18 -7
  85. package/package.json +1 -1
  86. package/skills/tickmarkr-auto/SKILL.md +10 -1
  87. package/skills/tickmarkr-loop/SKILL.md +72 -1
  88. package/skills/tickmarkr-overseer/SKILL.md +12 -0
  89. package/skills/tickmarkr-overseer/scripts/watch-context.sh +13 -2
@@ -632,3 +632,34 @@ export function resolveSetupKeyBinding(bindings, event) {
632
632
  export function dispatchSetupKey(event, state, bindings = SETUP_KEY_BINDINGS) {
633
633
  return resolveSetupKeyBinding(bindings, event)?.apply(state, event);
634
634
  }
635
+ /** Installed FINAL actions, shared by shell dispatch, help and pointer buttons. */
636
+ export const SHELL_BINDINGS = [
637
+ { key: "1", label: "Home", action: "home" },
638
+ { key: "4", label: "Run", action: "run" },
639
+ { key: "5", label: "Evidence", action: "evidence" },
640
+ { key: "Tab", label: "Focus", action: "focus" },
641
+ { key: "Enter", label: "Open", action: "open" },
642
+ { key: "a", label: "Actions", action: "actions" },
643
+ { key: "/", label: "Filter", action: "filter" },
644
+ { key: "e", label: "Export", action: "export" },
645
+ { key: "f", label: "Follow", action: "follow" },
646
+ { key: "PageUp/PageDown", label: "Page", action: "page" },
647
+ { key: "?", label: "Keys", action: "help" },
648
+ { key: "q", label: "Quit", action: "quit" },
649
+ { key: "+", label: "Widen shortcuts", action: "widen" },
650
+ { key: "-", label: "Narrow shortcuts", action: "narrow" },
651
+ ];
652
+ /** Advertise only installed operations with a target in this view. */
653
+ export function shellBindings(context) {
654
+ return SHELL_BINDINGS.filter(binding => {
655
+ if (binding.action === "open")
656
+ return context.canOpen !== false && (context.view !== "evidence" || !context.evidenceSection);
657
+ if (binding.action === "widen" || binding.action === "narrow")
658
+ return context.canResize === true;
659
+ if (binding.action === "export")
660
+ return context.view === "evidence";
661
+ if (binding.action === "filter" || binding.action === "follow")
662
+ return context.view === "evidence" && !context.evidenceSection;
663
+ return true;
664
+ });
665
+ }
@@ -304,4 +304,18 @@ export type FramePlan = PlannedFrame | PlainFallbackPlan;
304
304
  */
305
305
  export declare function planFrame(size: MeasuredSize, view?: FrameView, state?: FrameState): FramePlan;
306
306
  export declare function resolveCockpitLayout(columns: number, rows: number): CockpitLayout;
307
+ /** FINAL §3.1: one geometry for paint, focus and pointer hit testing. */
308
+ export declare function planShell(columns: number, rows: number, shortcutColumns?: number): {
309
+ columns: number;
310
+ rows: number;
311
+ refused: boolean;
312
+ rail: number;
313
+ shortcuts: number;
314
+ bodyColumn: number;
315
+ bodyColumns: number;
316
+ bodyRow: number;
317
+ bodyRows: number;
318
+ focus: ("content" | "rail" | "shortcuts")[];
319
+ };
320
+ export type ShellPlan = ReturnType<typeof planShell>;
307
321
  export {};
@@ -389,3 +389,18 @@ export function resolveCockpitLayout(columns, rows) {
389
389
  },
390
390
  };
391
391
  }
392
+ /** FINAL §3.1: one geometry for paint, focus and pointer hit testing. */
393
+ export function planShell(columns, rows, shortcutColumns = 22) {
394
+ columns = Math.max(0, Math.floor(columns));
395
+ rows = Math.max(0, Math.floor(rows));
396
+ const rail = columns >= 90 ? 15 : 0;
397
+ const shortcuts = columns >= 120 ? Math.max(20, Math.min(columns - 59, Math.floor(shortcutColumns))) : 0;
398
+ const bodyColumn = 1 + (rail ? rail + 1 : 0);
399
+ return {
400
+ columns, rows, refused: columns < 40 || rows < 14,
401
+ rail, shortcuts, bodyColumn,
402
+ bodyColumns: Math.max(0, columns - 2 - (rail ? rail + 1 : 0) - (shortcuts ? shortcuts + 1 : 0)),
403
+ bodyRow: 3, bodyRows: Math.max(0, rows - 7),
404
+ focus: [...(rail ? ["rail"] : []), "content", ...(shortcuts ? ["shortcuts"] : [])],
405
+ };
406
+ }
@@ -0,0 +1,46 @@
1
+ import { type LiveStore, type LiveStoreSnapshot } from "./live-store.js";
2
+ import { type HomeNeedsYouTarget } from "./home-view.js";
3
+ import { type ShellState, type ShellCommit } from "./shell.js";
4
+ import { type RunKeyEvent } from "./keys.js";
5
+ import { type PointerReport } from "./pointer.js";
6
+ import { type FocusTarget, type FocusResult } from "../../drivers/types.js";
7
+ /** React 19 development measures retain fiber details in Node's global timeline.
8
+ * Drain only React DevTools entries, sharing one observer across independent mounts.
9
+ * No environment mutation, global performance monkey patch, or retained frame archive. */
10
+ export declare function borrowRuntimeTimeline(): () => void;
11
+ export declare const SHELL_TERMINAL_ENTER: string;
12
+ export declare const SHELL_TERMINAL_RESTORE: string;
13
+ export interface ShellDelivery {
14
+ snapshot: () => {
15
+ state: ShellState;
16
+ store: LiveStoreSnapshot;
17
+ interaction: ShellState;
18
+ };
19
+ refresh: () => boolean;
20
+ key: (event: RunKeyEvent) => boolean;
21
+ pointer: (report: PointerReport) => boolean;
22
+ diagnostics: LiveStore["diagnostics"];
23
+ stage: (edits: readonly string[]) => void;
24
+ geometry: () => ShellCommit | undefined;
25
+ }
26
+ export interface ConsolidatedOptions {
27
+ input: NodeJS.ReadStream;
28
+ output: NodeJS.WriteStream;
29
+ cwd: string;
30
+ runId: string;
31
+ binaryVersion: string;
32
+ refreshMs?: number;
33
+ now?: () => number;
34
+ debug?: boolean;
35
+ initialView?: ShellState["view"];
36
+ initialParks?: boolean;
37
+ observeRun?: boolean;
38
+ focusDriver?: (target: FocusTarget, driver: string) => Promise<FocusResult>;
39
+ /** Compatibility observer retained for the pre-existing production-mount harness. */
40
+ onDelivery?: (delivery: ShellDelivery) => void;
41
+ onShellDelivery?: (delivery: ShellDelivery) => void;
42
+ environment?: NodeJS.ProcessEnv;
43
+ diagnostics?: readonly HomeNeedsYouTarget[];
44
+ }
45
+ /** The live entry mounts the dependency-owned leaves, using only C2 snapshots/history/page. */
46
+ export declare function runConsolidatedCockpit(options: ConsolidatedOptions): Promise<void>;