tickmarkr 2.6.5 → 2.6.7

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 (56) hide show
  1. package/README.md +7 -3
  2. package/dist/adapters/claude-code.js +8 -2
  3. package/dist/adapters/codex-commit-check.d.ts +16 -4
  4. package/dist/adapters/codex-commit-check.js +150 -26
  5. package/dist/adapters/codex.d.ts +1 -0
  6. package/dist/adapters/codex.js +20 -8
  7. package/dist/adapters/types.d.ts +4 -1
  8. package/dist/cli/commands/beat.d.ts +6 -1
  9. package/dist/cli/commands/beat.js +123 -76
  10. package/dist/cli/commands/doctor.js +3 -1
  11. package/dist/cli/commands/fleet.js +368 -85
  12. package/dist/cli/commands/init.js +23 -9
  13. package/dist/cli/commands/plan.js +12 -1
  14. package/dist/cli/commands/verify.js +37 -9
  15. package/dist/cli/help.d.ts +1 -0
  16. package/dist/cli/help.js +10 -5
  17. package/dist/cli/index.d.ts +1 -1
  18. package/dist/cli/index.js +1 -1
  19. package/dist/config/fleet-overlay.d.ts +14 -0
  20. package/dist/config/fleet-overlay.js +154 -25
  21. package/dist/drivers/orca.d.ts +17 -3
  22. package/dist/drivers/orca.js +64 -20
  23. package/dist/gates/baseline.d.ts +9 -0
  24. package/dist/gates/baseline.js +14 -3
  25. package/dist/gates/cache.js +1 -1
  26. package/dist/gates/review.js +15 -0
  27. package/dist/gates/run-gates.d.ts +20 -7
  28. package/dist/gates/run-gates.js +345 -210
  29. package/dist/gates/test-manifest.d.ts +11 -0
  30. package/dist/gates/test-manifest.js +151 -111
  31. package/dist/gates/timeout-shaped.d.ts +3 -0
  32. package/dist/gates/timeout-shaped.js +10 -0
  33. package/dist/run/beat-lifecycle.d.ts +154 -0
  34. package/dist/run/beat-lifecycle.js +825 -0
  35. package/dist/run/daemon.js +202 -126
  36. package/dist/run/git-trust.d.ts +27 -0
  37. package/dist/run/git-trust.js +178 -0
  38. package/dist/run/git.js +34 -14
  39. package/dist/run/journal.js +15 -3
  40. package/dist/run/lease.d.ts +23 -0
  41. package/dist/run/lease.js +232 -38
  42. package/dist/run/merge.js +2 -2
  43. package/dist/run/stall.js +20 -1
  44. package/dist/run/supervision.d.ts +8 -0
  45. package/dist/run/supervision.js +24 -4
  46. package/dist/run/verification-job.d.ts +51 -0
  47. package/dist/run/verification-job.js +137 -0
  48. package/dist/tui/ink/fleet-app.d.ts +35 -5
  49. package/dist/tui/ink/fleet-app.js +244 -124
  50. package/package.json +1 -1
  51. package/skills/tickmarkr-auto/SKILL.md +19 -10
  52. package/skills/tickmarkr-loop/SKILL.md +19 -10
  53. package/skills/tickmarkr-overseer/SKILL.md +25 -16
  54. package/skills/tickmarkr-overseer/scripts/classify-vitest-log.sh +58 -16
  55. package/skills/tickmarkr-overseer/scripts/grade-ci.sh +19 -6
  56. package/skills/tickmarkr-overseer/scripts/watch-parks.sh +121 -64
@@ -2,9 +2,21 @@ import { type AuthHealth, type WorkerAdapter } from "../../adapters/types.js";
2
2
  import { type DenyScopeKey, type InitialDenyProps, type MapEntry, type RoutingMode, type StagedDenyKey, type Tier, type TickmarkrConfig } from "../../config/config.js";
3
3
  import { type Effort, type Shape } from "../../graph/schema.js";
4
4
  export type FleetSteeringKey = "review" | "consult";
5
+ /** T10 (D-939): the routing.allow entry a classification staged this session excluded — the row's own
6
+ * entry in its ownAllow spelling, added to the staged complement so Space can admit it in-session.
7
+ * `model` is the classified id (the tiers key), `displayModel` the browser row it was staged from. */
8
+ export type FleetSeededAllow = {
9
+ adapter: string;
10
+ model: string;
11
+ displayModel: string;
12
+ identity?: string;
13
+ entry: string;
14
+ };
5
15
  export type FleetEditorState = Record<DenyScopeKey, string[]> & {
6
16
  /** OBS-1046: the staged routing.allow complement, distinct from the authored deny lists above */
7
17
  allowOut?: string[];
18
+ /** T10: one seed per staged classification the current allow form left out */
19
+ seededAllowOut?: FleetSeededAllow[];
8
20
  classifications: FleetClassification[];
9
21
  /** OBS-1182: staged launch effort per adapter → model; absent = the CLI's own default */
10
22
  efforts?: Record<string, Record<string, Effort>>;
@@ -18,12 +30,17 @@ export type FleetEditorState = Record<DenyScopeKey, string[]> & {
18
30
  };
19
31
  /** T8: the staged classifications and efforts every preview folds — the same metadata a review stages,
20
32
  * so a preview ranks what w would write before the first review and after an escaped one. */
21
- export type FleetStagedMetadata = Pick<FleetEditorState, "classifications" | "efforts">;
33
+ export type FleetStagedMetadata = Pick<FleetEditorState, "classifications" | "efforts" | "seededAllowOut">;
22
34
  /** OBS-525: auto reverts the shape's WHOLE routing declaration — pool included, not just the pin.
23
35
  * prefer survives: it biases auto routing and is valid without pin/pool. */
24
36
  export declare function autoMapEntry(entry: MapEntry | undefined): MapEntry;
25
37
  export type FleetOverlayReview = {
26
38
  kind: "empty";
39
+ }
40
+ /** T10: a staged batch the one-destination review cannot write (mixed destinations, a stray seed) */
41
+ | {
42
+ kind: "refused";
43
+ reason: string;
27
44
  } | {
28
45
  kind: "diff";
29
46
  before: string;
@@ -78,6 +95,13 @@ export type FleetStagedDeny = Record<StagedDenyKey, string[]> & {
78
95
  };
79
96
  /** every scope's staged list, empty — the "every policy scope open" probe the picker lifts against */
80
97
  export declare const openStagedDeny: () => FleetStagedDeny;
98
+ /** T5: one real channel a displayed row stands for — a collapsed variant or catalog-fold constituent doctor
99
+ * served, with its own recorded identity and failed-probe reason */
100
+ export type FleetGroupMember = {
101
+ model: string;
102
+ identity?: string;
103
+ unauthed?: string;
104
+ };
81
105
  export type FleetModelGroup = {
82
106
  adapter: string;
83
107
  vendor?: string;
@@ -92,6 +116,8 @@ export type FleetModelGroup = {
92
116
  classifyModel?: string;
93
117
  variants?: string[];
94
118
  foldedModels?: string[];
119
+ /** T5: every real member of a grouped row; absent ⇒ the row's own model is its one member */
120
+ members?: FleetGroupMember[];
95
121
  score?: number;
96
122
  }>;
97
123
  };
@@ -131,7 +157,7 @@ export type FleetStagedRouting = {
131
157
  ok: false;
132
158
  error: string;
133
159
  };
134
- export declare function FleetApp({ ageMs, agents, initialAllowOut, initialEfforts, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewAdvisories, reviewOverlay, reloadGuard, stagedRouting, entry, initialJudge, judgeSeats, viewRows, frameColumns, frameRows, ...initialDenyProps }: InitialDenyProps & {
160
+ export declare function FleetApp({ ageMs, agents, initialAllowOut, initialEfforts, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewAdvisories, reviewOverlay, reloadGuard, stagedRouting, holderOf, entry, initialJudge, judgeSeats, viewRows, frameColumns, frameRows, ...initialDenyProps }: InitialDenyProps & {
135
161
  ageMs: number | null;
136
162
  agents: AgentCli[];
137
163
  /** OBS-1046: adapter ids and adapter:model keys routing.allow leaves out of the fleet */
@@ -158,7 +184,9 @@ export declare function FleetApp({ ageMs, agents, initialAllowOut, initialEffort
158
184
  reloadGuard: (bytes: string) => string | null;
159
185
  /** the routing policy the staged deny sets load as (fleet: the config loader over the candidate
160
186
  * bytes); absent ⇒ the four staged sets alone, with no allowlist */
161
- stagedRouting?: (deny: FleetStagedDeny) => FleetStagedRouting;
187
+ stagedRouting?: (deny: FleetStagedDeny, stage?: FleetStagedMetadata) => FleetStagedRouting;
188
+ /** T10: the overlay `path:line` holding a dotted config scope in this repository, undefined = defaults */
189
+ holderOf?: (dotted: string) => string | undefined;
162
190
  entry?: "presets" | "probe";
163
191
  /** resolved config judge as "adapter:model" — shown on the (keep default) picker row */
164
192
  initialJudge?: string;
@@ -171,7 +199,7 @@ export declare function FleetApp({ ageMs, agents, initialAllowOut, initialEffort
171
199
  /** terminal height — set only on a real TTY so the footer sticks to the bottom */
172
200
  frameRows?: number;
173
201
  }): import("react").JSX.Element;
174
- export declare function runFleetInkEditor({ ageMs, adapters, health, initialAllowOut, initialEfforts, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewAdvisories, reviewOverlay, reloadGuard, stagedRouting, entry, initialJudge, judgeSeats, initialInput, input, output, debug, ...initialDenyProps }: InitialDenyProps & {
202
+ export declare function runFleetInkEditor({ ageMs, adapters, health, initialAllowOut, initialEfforts, modelGroups, initialMode, modeOptions, initialMap, modePreview, shapeRows, candidatesForShape, preferOptionsForShape, initialSteering, steeringOptionsFor, reviewAdvisories, reviewOverlay, reloadGuard, stagedRouting, holderOf, entry, initialJudge, judgeSeats, initialInput, input, output, debug, ...initialDenyProps }: InitialDenyProps & {
175
203
  ageMs: number | null;
176
204
  adapters: WorkerAdapter[];
177
205
  health: Record<string, AuthHealth>;
@@ -199,7 +227,9 @@ export declare function runFleetInkEditor({ ageMs, adapters, health, initialAllo
199
227
  reloadGuard: (bytes: string) => string | null;
200
228
  /** the routing policy the staged deny sets load as (fleet: the config loader over the candidate
201
229
  * bytes); absent ⇒ the four staged sets alone, with no allowlist */
202
- stagedRouting?: (deny: FleetStagedDeny) => FleetStagedRouting;
230
+ stagedRouting?: (deny: FleetStagedDeny, stage?: FleetStagedMetadata) => FleetStagedRouting;
231
+ /** T10: the overlay `path:line` holding a dotted config scope in this repository, undefined = defaults */
232
+ holderOf?: (dotted: string) => string | undefined;
203
233
  /** "presets" = init's entry: Esc in the browser is HOME to the preset overlay, not quit */
204
234
  entry?: "presets" | "probe";
205
235
  initialJudge?: string;