@intentic/sandbox-contract 1.314.0 → 1.316.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 (165) hide show
  1. package/README.md +5 -5
  2. package/dist/contracts/accounts.contract.d.ts +6 -0
  3. package/dist/contracts/accounts.contract.d.ts.map +1 -1
  4. package/dist/contracts/agent.contract.d.ts +2 -0
  5. package/dist/contracts/agent.contract.d.ts.map +1 -1
  6. package/dist/contracts/agent.contract.js +1 -1
  7. package/dist/contracts/agent.contract.js.map +1 -1
  8. package/dist/contracts/agents.contract.d.ts +293 -0
  9. package/dist/contracts/agents.contract.d.ts.map +1 -1
  10. package/dist/contracts/agents.contract.js +14 -4
  11. package/dist/contracts/agents.contract.js.map +1 -1
  12. package/dist/contracts/ci.contract.d.ts +22 -0
  13. package/dist/contracts/ci.contract.d.ts.map +1 -1
  14. package/dist/contracts/settings.contract.d.ts +0 -3
  15. package/dist/contracts/settings.contract.d.ts.map +1 -1
  16. package/dist/contracts/system.contract.d.ts +6 -0
  17. package/dist/contracts/system.contract.d.ts.map +1 -1
  18. package/dist/contracts/system.contract.js +1 -1
  19. package/dist/contracts/system.contract.js.map +1 -1
  20. package/dist/contracts/translator.contract.d.ts +12 -0
  21. package/dist/contracts/translator.contract.d.ts.map +1 -1
  22. package/dist/contracts/workspace.contract.d.ts +15 -137
  23. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  24. package/dist/contracts/workspace.contract.js +25 -15
  25. package/dist/contracts/workspace.contract.js.map +1 -1
  26. package/dist/events/agent-events.d.ts.map +1 -1
  27. package/dist/events/agent-events.js.map +1 -1
  28. package/dist/events/agent-words.d.ts.map +1 -1
  29. package/dist/events/agent-words.js +5 -4
  30. package/dist/events/agent-words.js.map +1 -1
  31. package/dist/events/land-breakage.d.ts +0 -2
  32. package/dist/events/land-breakage.d.ts.map +1 -1
  33. package/dist/events/land-breakage.js +0 -2
  34. package/dist/events/land-breakage.js.map +1 -1
  35. package/dist/events/requests.js +1 -1
  36. package/dist/events/requests.js.map +1 -1
  37. package/dist/events/system-events.d.ts +4 -0
  38. package/dist/events/system-events.d.ts.map +1 -1
  39. package/dist/events/transcript.d.ts +1 -0
  40. package/dist/events/transcript.d.ts.map +1 -1
  41. package/dist/events/transcript.js +5 -1
  42. package/dist/events/transcript.js.map +1 -1
  43. package/dist/index.d.ts +358 -142
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/models/agent-runtimes.d.ts.map +1 -1
  48. package/dist/models/agent-runtimes.js +1 -1
  49. package/dist/models/agent-runtimes.js.map +1 -1
  50. package/dist/models/plan-pools.d.ts +3 -1
  51. package/dist/models/plan-pools.d.ts.map +1 -1
  52. package/dist/models/plan-pools.js +11 -4
  53. package/dist/models/plan-pools.js.map +1 -1
  54. package/dist/protocol/raw-routes.d.ts +9 -0
  55. package/dist/protocol/raw-routes.d.ts.map +1 -1
  56. package/dist/protocol/raw-routes.js +2 -0
  57. package/dist/protocol/raw-routes.js.map +1 -1
  58. package/dist/protocol/request-id.d.ts +0 -1
  59. package/dist/protocol/request-id.d.ts.map +1 -1
  60. package/dist/protocol/request-id.js +0 -1
  61. package/dist/protocol/request-id.js.map +1 -1
  62. package/dist/schemas/agent.js +1 -1
  63. package/dist/schemas/agent.js.map +1 -1
  64. package/dist/schemas/agents.d.ts +7 -1
  65. package/dist/schemas/agents.d.ts.map +1 -1
  66. package/dist/schemas/agents.js +14 -3
  67. package/dist/schemas/agents.js.map +1 -1
  68. package/dist/schemas/automations.d.ts +1 -0
  69. package/dist/schemas/automations.d.ts.map +1 -1
  70. package/dist/schemas/ci.d.ts +45 -0
  71. package/dist/schemas/ci.d.ts.map +1 -1
  72. package/dist/schemas/ci.js +18 -0
  73. package/dist/schemas/ci.js.map +1 -1
  74. package/dist/schemas/devices.d.ts +0 -1
  75. package/dist/schemas/devices.d.ts.map +1 -1
  76. package/dist/schemas/devices.js +3 -4
  77. package/dist/schemas/devices.js.map +1 -1
  78. package/dist/schemas/personas.js +3 -3
  79. package/dist/schemas/personas.js.map +1 -1
  80. package/dist/schemas/providers/plan-limits.d.ts +21 -0
  81. package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
  82. package/dist/schemas/providers/plan-limits.js +13 -3
  83. package/dist/schemas/providers/plan-limits.js.map +1 -1
  84. package/dist/schemas/providers/provider-oauth.d.ts +6 -0
  85. package/dist/schemas/providers/provider-oauth.d.ts.map +1 -1
  86. package/dist/schemas/settings-history.d.ts +1 -1
  87. package/dist/schemas/settings-history.d.ts.map +1 -1
  88. package/dist/schemas/settings-history.js +2 -1
  89. package/dist/schemas/settings-history.js.map +1 -1
  90. package/dist/schemas/settings.d.ts +0 -4
  91. package/dist/schemas/settings.d.ts.map +1 -1
  92. package/dist/schemas/settings.js +6 -13
  93. package/dist/schemas/settings.js.map +1 -1
  94. package/dist/schemas/terminal.d.ts.map +1 -1
  95. package/dist/schemas/terminal.js +3 -3
  96. package/dist/schemas/terminal.js.map +1 -1
  97. package/dist/schemas/workspace/push-checks.d.ts +222 -0
  98. package/dist/schemas/workspace/push-checks.d.ts.map +1 -0
  99. package/dist/schemas/workspace/push-checks.js +97 -0
  100. package/dist/schemas/workspace/push-checks.js.map +1 -0
  101. package/dist/schemas/workspace/workspace-tree.d.ts +9 -0
  102. package/dist/schemas/workspace/workspace-tree.d.ts.map +1 -1
  103. package/dist/schemas/workspace/workspace-tree.js +12 -0
  104. package/dist/schemas/workspace/workspace-tree.js.map +1 -1
  105. package/dist/state/definition.d.ts +0 -4
  106. package/dist/state/definition.d.ts.map +1 -1
  107. package/dist/state/runtime-state.d.ts +2 -2
  108. package/dist/state/runtime-state.d.ts.map +1 -1
  109. package/dist/state/runtime-state.js +1 -1
  110. package/dist/state/runtime-state.js.map +1 -1
  111. package/dist/state/workspace-state.d.ts +1 -11
  112. package/dist/state/workspace-state.d.ts.map +1 -1
  113. package/dist/state/workspace-state.js +1 -13
  114. package/dist/state/workspace-state.js.map +1 -1
  115. package/dist/text/transcript-fold.d.ts +8 -0
  116. package/dist/text/transcript-fold.d.ts.map +1 -1
  117. package/dist/text/transcript-fold.js +67 -14
  118. package/dist/text/transcript-fold.js.map +1 -1
  119. package/package.json +5 -5
  120. package/src/contracts/agent.contract.ts +1 -1
  121. package/src/contracts/agents.contract.ts +15 -3
  122. package/src/contracts/system.contract.ts +1 -1
  123. package/src/contracts/workspace.contract.ts +35 -21
  124. package/src/events/agent-events.ts +4 -2
  125. package/src/events/agent-words.test.ts +8 -1
  126. package/src/events/agent-words.ts +8 -5
  127. package/src/events/errands.test.ts +4 -4
  128. package/src/events/land-breakage.ts +5 -9
  129. package/src/events/requests.ts +1 -1
  130. package/src/events/transcript.ts +9 -3
  131. package/src/events/verify-nudge.ts +3 -3
  132. package/src/index.ts +2 -2
  133. package/src/models/agent-runtimes.ts +5 -4
  134. package/src/models/plan-pools.test.ts +22 -0
  135. package/src/models/plan-pools.ts +26 -5
  136. package/src/protocol/ingress-contract.fixture.json +2 -0
  137. package/src/protocol/raw-routes.ts +4 -1
  138. package/src/protocol/request-id.ts +0 -3
  139. package/src/schemas/agent.ts +1 -1
  140. package/src/schemas/agents.ts +21 -8
  141. package/src/schemas/automations.ts +2 -2
  142. package/src/schemas/ci.ts +25 -0
  143. package/src/schemas/devices.ts +8 -12
  144. package/src/schemas/personas.ts +3 -3
  145. package/src/schemas/providers/plan-limits.ts +21 -3
  146. package/src/schemas/settings-history.ts +3 -1
  147. package/src/schemas/settings.test.ts +4 -3
  148. package/src/schemas/settings.ts +17 -31
  149. package/src/schemas/speaker.ts +4 -4
  150. package/src/schemas/terminal.ts +12 -10
  151. package/src/schemas/workspace/{mainline.test.ts → push-checks.test.ts} +5 -5
  152. package/src/schemas/workspace/push-checks.ts +155 -0
  153. package/src/schemas/workspace/workspace-tree.ts +15 -0
  154. package/src/state/fix-stance.test.ts +2 -1
  155. package/src/state/landed-commit.ts +1 -1
  156. package/src/state/red-streak.ts +4 -4
  157. package/src/state/runtime-state.ts +2 -3
  158. package/src/state/workspace-state.ts +1 -13
  159. package/src/text/transcript-fold.test.ts +107 -0
  160. package/src/text/transcript-fold.ts +95 -16
  161. package/dist/schemas/workspace/mainline.d.ts +0 -513
  162. package/dist/schemas/workspace/mainline.d.ts.map +0 -1
  163. package/dist/schemas/workspace/mainline.js +0 -182
  164. package/dist/schemas/workspace/mainline.js.map +0 -1
  165. package/src/schemas/workspace/mainline.ts +0 -268
@@ -20,6 +20,11 @@ import { unspokenPromptRow } from "../events/agent-words.js";
20
20
  // Folds a turn's frames into rows once, live and for the settled record alike, so a reopened chat matches what was on
21
21
  // screen. `tag` selects the stream read: undefined is the main turn, a tool-call id is the subagent it spawned; other
22
22
  // frames nest under the card that spawned them. Rows mutate in place; every patch carries a copy of what it names.
23
+ //
24
+ // Every subagent lands on the card of the call that started it, whichever mechanism started it. An in-process one (the
25
+ // runtime's own Agent/Task tool) is named by that call's id, so its card is found at once. A spawned one is named by its
26
+ // own conversation id, and every door that spawns one answers with that id (the spawn tool's `child`, the `agents
27
+ // spawn` CLI's first line), so its frames wait until a card's result names it, then ride that card from there on.
23
28
 
24
29
  export type TurnEnding = "settled" | "stopped";
25
30
 
@@ -40,6 +45,13 @@ const defined = <T extends object>(value: T): Partial<T> =>
40
45
  // A card's own fields: what a `tool` patch carries, so a delegation's growing subtree never rides one.
41
46
  const ownFields = ({ children: _children, thinking: _thinking, ...own }: TranscriptTool): TranscriptTool => own;
42
47
 
48
+ // Everything a card's result said, as one string: what a subagent waiting for its card is looked for in.
49
+ const resultWords = (tool: TranscriptTool): string =>
50
+ (tool.content ?? [])
51
+ .filter((entry) => entry.type === "text")
52
+ .map((entry) => entry.text)
53
+ .join("\n");
54
+
43
55
  const cardOf = (event: Extract<AgentEvent, { kind: "tool_call" }>): TranscriptTool => ({
44
56
  id: event.id,
45
57
  name: event.name,
@@ -212,6 +224,11 @@ export class TranscriptFold {
212
224
  // Index of the open assistant bubble; always the last row, since every other row kind closes it first.
213
225
  private bubble: number | undefined;
214
226
  private readonly cards = new Map<string, CardPlace>();
227
+ // A subagent's own id to the card of the call that started it, once that card is known.
228
+ private readonly placed = new Map<string, string>();
229
+ // A subagent heard before its card: born, and perhaps already moving, while the call that started it had not yet
230
+ // said its id. Placed as soon as a card claims it; dropped with the fold if none ever does.
231
+ private readonly unplaced = new Map<string, TranscriptSubagent>();
215
232
  // requestId to the row holding its card, for frames landing on it later (a reply, a late sentence, a receipt).
216
233
  private readonly parked = new Map<string, number>();
217
234
  // The turn's opening user row, where the checkpoint and daemon notes land; cleared once `retract` takes it back.
@@ -266,6 +283,7 @@ export class TranscriptFold {
266
283
  const row = this.rows[index]!;
267
284
  row.tools = [...(row.tools ?? []), tool];
268
285
  this.cards.set(tool.id, { tool, row: index });
286
+ this.claimById(tool);
269
287
  return [...opened, { op: "tool", index, tool: structuredClone(tool) }];
270
288
  }
271
289
  case "tool_call_update":
@@ -276,27 +294,16 @@ export class TranscriptFold {
276
294
  }
277
295
  if (event.content !== undefined) {
278
296
  tool.content = event.content;
297
+ this.claimByResult(tool);
279
298
  }
280
299
  if (event.locations !== undefined) {
281
300
  tool.locations = event.locations;
282
301
  }
283
302
  });
284
- case "subagent": {
285
- // The frame's id is the spawning call's id, so the subagent record lands on that card.
286
- const { kind: _kind, id, subagentKind, ...rest } = event;
287
- return this.patchCard(id, (tool) => {
288
- tool.subagent = { ...rest, kind: subagentKind, status: "running" };
289
- });
290
- }
291
- case "subagent_update": {
292
- // Present fields replace, absent ones leave the child alone, as in tool_call_update.
293
- const { kind: _kind, id, ...patch } = event;
294
- return this.patchCard(id, (tool) => {
295
- if (tool.subagent !== undefined) {
296
- tool.subagent = { ...tool.subagent, ...(defined(patch) as Partial<TranscriptSubagent>) };
297
- }
298
- });
299
- }
303
+ case "subagent":
304
+ return this.subagentBorn(event);
305
+ case "subagent_update":
306
+ return this.subagentMoved(event);
300
307
  case "todos": {
301
308
  const [index, opened] = this.open();
302
309
  this.rows[index]!.todos = [...event.items];
@@ -561,11 +568,83 @@ export class TranscriptFold {
561
568
  const child = cardOf(event);
562
569
  place.tool.children = [...(place.tool.children ?? []), child];
563
570
  this.cards.set(child.id, { tool: child, row: place.row, parent });
571
+ this.claimById(child);
564
572
  return [{ op: "tool", index: place.row, tool: structuredClone(child), parent }];
565
573
  }
566
574
  return [];
567
575
  }
568
576
 
577
+ // A subagent starts: on its card when that is known, else held until a card claims it. A later birth under the same
578
+ // id (a follow-up turn of the same subagent) starts its card's state over.
579
+ private subagentBorn(event: Extract<AgentEvent, { kind: "subagent" }>): TranscriptPatch[] {
580
+ const { kind: _kind, id, subagentKind, ...rest } = event;
581
+ const born: TranscriptSubagent = { ...rest, kind: subagentKind, status: "running" };
582
+ const card = this.cardOfSubagent(id);
583
+ if (card === undefined) {
584
+ this.unplaced.set(id, born);
585
+ return [];
586
+ }
587
+ return this.patchCard(card, (tool) => this.place(tool, id, born));
588
+ }
589
+
590
+ // A subagent moves: present fields replace, absent ones leave it alone, as in tool_call_update; one still waiting for
591
+ // its card moves where it waits.
592
+ private subagentMoved(event: Extract<AgentEvent, { kind: "subagent_update" }>): TranscriptPatch[] {
593
+ const { kind: _kind, id, ...patch } = event;
594
+ const moved = defined(patch) as Partial<TranscriptSubagent>;
595
+ const card = this.cardOfSubagent(id);
596
+ if (card !== undefined) {
597
+ return this.patchCard(card, (tool) => {
598
+ if (tool.subagent !== undefined) {
599
+ tool.subagent = { ...tool.subagent, ...moved };
600
+ }
601
+ });
602
+ }
603
+ const waiting = this.unplaced.get(id);
604
+ if (waiting !== undefined) {
605
+ this.unplaced.set(id, { ...waiting, ...moved });
606
+ }
607
+ return [];
608
+ }
609
+
610
+ // The card a subagent's frames land on: the one already carrying it, else the one sharing its id (an in-process
611
+ // subagent is named by the call that started it); undefined while the call that started it has not yet named it.
612
+ private cardOfSubagent(id: string): string | undefined {
613
+ return this.placed.get(id) ?? (this.cards.has(id) ? id : undefined);
614
+ }
615
+
616
+ // Puts a subagent on the card that started it. Its own id rides along only where it differs from the card's, so the
617
+ // card can still name it to the roster, `wait` and its own page.
618
+ private place(tool: TranscriptTool, id: string, subagent: TranscriptSubagent): void {
619
+ const { id: _id, ...state } = subagent;
620
+ tool.subagent = id === tool.id ? state : { ...state, id };
621
+ this.placed.set(id, tool.id);
622
+ this.unplaced.delete(id);
623
+ }
624
+
625
+ // A card appearing under the id a subagent was already heard by: the stream said the child before the call.
626
+ private claimById(tool: TranscriptTool): void {
627
+ const waiting = this.unplaced.get(tool.id);
628
+ if (waiting !== undefined) {
629
+ this.place(tool, tool.id, waiting);
630
+ }
631
+ }
632
+
633
+ // A call whose result names a subagent still waiting for its card is the call that started it. A card carries one
634
+ // subagent, so one that already has its own claims nothing more.
635
+ private claimByResult(tool: TranscriptTool): void {
636
+ if (this.unplaced.size === 0 || tool.subagent !== undefined) {
637
+ return;
638
+ }
639
+ const words = resultWords(tool);
640
+ for (const [id, waiting] of this.unplaced) {
641
+ if (words.includes(id)) {
642
+ this.place(tool, id, waiting);
643
+ return;
644
+ }
645
+ }
646
+ }
647
+
569
648
  // Returns the bubble frames write to, opening a fresh assistant row when the last one was retired.
570
649
  private open(): [number, TranscriptPatch[]] {
571
650
  if (this.bubble !== undefined) {
@@ -1,513 +0,0 @@
1
- import { z } from "zod";
2
- export declare const MainlineLandSchema: z.ZodObject<{
3
- conversationId: z.ZodString;
4
- title: z.ZodOptional<z.ZodString>;
5
- at: z.ZodNumber;
6
- }, z.core.$strip>;
7
- export type MainlineLand = z.infer<typeof MainlineLandSchema>;
8
- export declare const MainlineLandRefSchema: z.ZodObject<{
9
- conversationId: z.ZodString;
10
- title: z.ZodOptional<z.ZodString>;
11
- }, z.core.$strip>;
12
- export type MainlineLandRef = z.infer<typeof MainlineLandRefSchema>;
13
- export declare const MainlineFailureSchema: z.ZodObject<{
14
- name: z.ZodString;
15
- path: z.ZodOptional<z.ZodString>;
16
- }, z.core.$strip>;
17
- export type MainlineFailure = z.infer<typeof MainlineFailureSchema>;
18
- export declare const MainlineRoutingKindSchema: z.ZodEnum<{
19
- dismissed: "dismissed";
20
- "fix-up": "fix-up";
21
- held: "held";
22
- original: "original";
23
- reported: "reported";
24
- resolved: "resolved";
25
- spent: "spent";
26
- waiting: "waiting";
27
- }>;
28
- export type MainlineRoutingKind = z.infer<typeof MainlineRoutingKindSchema>;
29
- export declare const MainlineRoutingSchema: z.ZodObject<{
30
- kind: z.ZodEnum<{
31
- dismissed: "dismissed";
32
- "fix-up": "fix-up";
33
- held: "held";
34
- original: "original";
35
- reported: "reported";
36
- resolved: "resolved";
37
- spent: "spent";
38
- waiting: "waiting";
39
- }>;
40
- conversationId: z.ZodOptional<z.ZodString>;
41
- at: z.ZodNumber;
42
- detail: z.ZodOptional<z.ZodString>;
43
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
44
- }, z.core.$strip>;
45
- export type MainlineRouting = z.infer<typeof MainlineRoutingSchema>;
46
- export declare const MAINLINE_FAILURES_KEPT = 30;
47
- export declare const MainlineRunSchema: z.ZodObject<{
48
- project: z.ZodString;
49
- command: z.ZodString;
50
- status: z.ZodEnum<{
51
- green: "green";
52
- red: "red";
53
- }>;
54
- startedAt: z.ZodNumber;
55
- at: z.ZodNumber;
56
- lands: z.ZodArray<z.ZodObject<{
57
- conversationId: z.ZodString;
58
- title: z.ZodOptional<z.ZodString>;
59
- at: z.ZodNumber;
60
- }, z.core.$strip>>;
61
- failures: z.ZodArray<z.ZodString>;
62
- failureCount: z.ZodNumber;
63
- attempt: z.ZodNumber;
64
- suspects: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
- named: z.ZodOptional<z.ZodBoolean>;
66
- units: z.ZodOptional<z.ZodArray<z.ZodObject<{
67
- name: z.ZodString;
68
- path: z.ZodOptional<z.ZodString>;
69
- }, z.core.$strip>>>;
70
- routing: z.ZodOptional<z.ZodObject<{
71
- kind: z.ZodEnum<{
72
- dismissed: "dismissed";
73
- "fix-up": "fix-up";
74
- held: "held";
75
- original: "original";
76
- reported: "reported";
77
- resolved: "resolved";
78
- spent: "spent";
79
- waiting: "waiting";
80
- }>;
81
- conversationId: z.ZodOptional<z.ZodString>;
82
- at: z.ZodNumber;
83
- detail: z.ZodOptional<z.ZodString>;
84
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
85
- }, z.core.$strip>>;
86
- }, z.core.$strip>;
87
- export type MainlineRun = z.infer<typeof MainlineRunSchema>;
88
- export declare const MainlineProjectSchema: z.ZodObject<{
89
- project: z.ZodString;
90
- running: z.ZodOptional<z.ZodObject<{
91
- command: z.ZodString;
92
- startedAt: z.ZodNumber;
93
- lands: z.ZodArray<z.ZodObject<{
94
- conversationId: z.ZodString;
95
- title: z.ZodOptional<z.ZodString>;
96
- at: z.ZodNumber;
97
- }, z.core.$strip>>;
98
- on: z.ZodOptional<z.ZodString>;
99
- }, z.core.$strip>>;
100
- session: z.ZodOptional<z.ZodString>;
101
- queued: z.ZodArray<z.ZodObject<{
102
- conversationId: z.ZodString;
103
- title: z.ZodOptional<z.ZodString>;
104
- at: z.ZodNumber;
105
- }, z.core.$strip>>;
106
- last: z.ZodOptional<z.ZodObject<{
107
- project: z.ZodString;
108
- command: z.ZodString;
109
- status: z.ZodEnum<{
110
- green: "green";
111
- red: "red";
112
- }>;
113
- startedAt: z.ZodNumber;
114
- at: z.ZodNumber;
115
- lands: z.ZodArray<z.ZodObject<{
116
- conversationId: z.ZodString;
117
- title: z.ZodOptional<z.ZodString>;
118
- at: z.ZodNumber;
119
- }, z.core.$strip>>;
120
- failures: z.ZodArray<z.ZodString>;
121
- failureCount: z.ZodNumber;
122
- attempt: z.ZodNumber;
123
- suspects: z.ZodOptional<z.ZodArray<z.ZodString>>;
124
- named: z.ZodOptional<z.ZodBoolean>;
125
- units: z.ZodOptional<z.ZodArray<z.ZodObject<{
126
- name: z.ZodString;
127
- path: z.ZodOptional<z.ZodString>;
128
- }, z.core.$strip>>>;
129
- routing: z.ZodOptional<z.ZodObject<{
130
- kind: z.ZodEnum<{
131
- dismissed: "dismissed";
132
- "fix-up": "fix-up";
133
- held: "held";
134
- original: "original";
135
- reported: "reported";
136
- resolved: "resolved";
137
- spent: "spent";
138
- waiting: "waiting";
139
- }>;
140
- conversationId: z.ZodOptional<z.ZodString>;
141
- at: z.ZodNumber;
142
- detail: z.ZodOptional<z.ZodString>;
143
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
144
- }, z.core.$strip>>;
145
- }, z.core.$strip>>;
146
- redSince: z.ZodOptional<z.ZodNumber>;
147
- red: z.ZodOptional<z.ZodObject<{
148
- since: z.ZodNumber;
149
- cause: z.ZodArray<z.ZodObject<{
150
- conversationId: z.ZodString;
151
- title: z.ZodOptional<z.ZodString>;
152
- }, z.core.$strip>>;
153
- named: z.ZodBoolean;
154
- fixer: z.ZodOptional<z.ZodObject<{
155
- kind: z.ZodEnum<{
156
- dismissed: "dismissed";
157
- "fix-up": "fix-up";
158
- held: "held";
159
- original: "original";
160
- reported: "reported";
161
- resolved: "resolved";
162
- spent: "spent";
163
- waiting: "waiting";
164
- }>;
165
- conversationId: z.ZodOptional<z.ZodString>;
166
- at: z.ZodNumber;
167
- detail: z.ZodOptional<z.ZodString>;
168
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
169
- }, z.core.$strip>>;
170
- }, z.core.$strip>>;
171
- }, z.core.$strip>;
172
- export type MainlineProject = z.infer<typeof MainlineProjectSchema>;
173
- export declare const FindingSchema: z.ZodObject<{
174
- id: z.ZodString;
175
- source: z.ZodString;
176
- text: z.ZodString;
177
- path: z.ZodOptional<z.ZodString>;
178
- command: z.ZodOptional<z.ZodString>;
179
- recheckable: z.ZodBoolean;
180
- gate: z.ZodOptional<z.ZodEnum<{
181
- code: "code";
182
- tidy: "tidy";
183
- }>>;
184
- commit: z.ZodOptional<z.ZodObject<{
185
- sha: z.ZodString;
186
- subject: z.ZodString;
187
- }, z.core.$strip>>;
188
- }, z.core.$strip>;
189
- export type Finding = z.infer<typeof FindingSchema>;
190
- export declare const RedSourceSchema: z.ZodEnum<{
191
- ci: "ci";
192
- land: "land";
193
- push: "push";
194
- }>;
195
- export type RedSource = z.infer<typeof RedSourceSchema>;
196
- export declare const RED_POLICY: {
197
- readonly land: "route";
198
- readonly push: "owner";
199
- readonly ci: "fix-agent";
200
- };
201
- export declare const RedSchema: z.ZodObject<{
202
- source: z.ZodEnum<{
203
- ci: "ci";
204
- land: "land";
205
- push: "push";
206
- }>;
207
- scope: z.ZodString;
208
- since: z.ZodNumber;
209
- findings: z.ZodDefault<z.ZodArray<z.ZodObject<{
210
- id: z.ZodString;
211
- source: z.ZodString;
212
- text: z.ZodString;
213
- path: z.ZodOptional<z.ZodString>;
214
- command: z.ZodOptional<z.ZodString>;
215
- recheckable: z.ZodBoolean;
216
- gate: z.ZodOptional<z.ZodEnum<{
217
- code: "code";
218
- tidy: "tidy";
219
- }>>;
220
- commit: z.ZodOptional<z.ZodObject<{
221
- sha: z.ZodString;
222
- subject: z.ZodString;
223
- }, z.core.$strip>>;
224
- }, z.core.$strip>>>;
225
- suspects: z.ZodDefault<z.ZodArray<z.ZodString>>;
226
- named: z.ZodDefault<z.ZodBoolean>;
227
- decisions: z.ZodDefault<z.ZodArray<z.ZodObject<{
228
- kind: z.ZodEnum<{
229
- dismissed: "dismissed";
230
- "fix-up": "fix-up";
231
- held: "held";
232
- original: "original";
233
- reported: "reported";
234
- resolved: "resolved";
235
- spent: "spent";
236
- waiting: "waiting";
237
- }>;
238
- conversationId: z.ZodOptional<z.ZodString>;
239
- at: z.ZodNumber;
240
- detail: z.ZodOptional<z.ZodString>;
241
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
242
- }, z.core.$strip>>>;
243
- }, z.core.$strip>;
244
- export type Red = z.infer<typeof RedSchema>;
245
- export declare const MainlinePushSchema: z.ZodObject<{
246
- project: z.ZodString;
247
- id: z.ZodString;
248
- at: z.ZodNumber;
249
- remote: z.ZodOptional<z.ZodString>;
250
- branch: z.ZodOptional<z.ZodString>;
251
- base: z.ZodOptional<z.ZodString>;
252
- head: z.ZodString;
253
- commits: z.ZodNumber;
254
- findings: z.ZodArray<z.ZodObject<{
255
- id: z.ZodString;
256
- source: z.ZodString;
257
- text: z.ZodString;
258
- path: z.ZodOptional<z.ZodString>;
259
- command: z.ZodOptional<z.ZodString>;
260
- recheckable: z.ZodBoolean;
261
- gate: z.ZodOptional<z.ZodEnum<{
262
- code: "code";
263
- tidy: "tidy";
264
- }>>;
265
- commit: z.ZodOptional<z.ZodObject<{
266
- sha: z.ZodString;
267
- subject: z.ZodString;
268
- }, z.core.$strip>>;
269
- }, z.core.$strip>>;
270
- refused: z.ZodOptional<z.ZodBoolean>;
271
- }, z.core.$strip>;
272
- export type MainlinePush = z.infer<typeof MainlinePushSchema>;
273
- export declare const MainlineStatusSchema: z.ZodObject<{
274
- projects: z.ZodArray<z.ZodObject<{
275
- project: z.ZodString;
276
- running: z.ZodOptional<z.ZodObject<{
277
- command: z.ZodString;
278
- startedAt: z.ZodNumber;
279
- lands: z.ZodArray<z.ZodObject<{
280
- conversationId: z.ZodString;
281
- title: z.ZodOptional<z.ZodString>;
282
- at: z.ZodNumber;
283
- }, z.core.$strip>>;
284
- on: z.ZodOptional<z.ZodString>;
285
- }, z.core.$strip>>;
286
- session: z.ZodOptional<z.ZodString>;
287
- queued: z.ZodArray<z.ZodObject<{
288
- conversationId: z.ZodString;
289
- title: z.ZodOptional<z.ZodString>;
290
- at: z.ZodNumber;
291
- }, z.core.$strip>>;
292
- last: z.ZodOptional<z.ZodObject<{
293
- project: z.ZodString;
294
- command: z.ZodString;
295
- status: z.ZodEnum<{
296
- green: "green";
297
- red: "red";
298
- }>;
299
- startedAt: z.ZodNumber;
300
- at: z.ZodNumber;
301
- lands: z.ZodArray<z.ZodObject<{
302
- conversationId: z.ZodString;
303
- title: z.ZodOptional<z.ZodString>;
304
- at: z.ZodNumber;
305
- }, z.core.$strip>>;
306
- failures: z.ZodArray<z.ZodString>;
307
- failureCount: z.ZodNumber;
308
- attempt: z.ZodNumber;
309
- suspects: z.ZodOptional<z.ZodArray<z.ZodString>>;
310
- named: z.ZodOptional<z.ZodBoolean>;
311
- units: z.ZodOptional<z.ZodArray<z.ZodObject<{
312
- name: z.ZodString;
313
- path: z.ZodOptional<z.ZodString>;
314
- }, z.core.$strip>>>;
315
- routing: z.ZodOptional<z.ZodObject<{
316
- kind: z.ZodEnum<{
317
- dismissed: "dismissed";
318
- "fix-up": "fix-up";
319
- held: "held";
320
- original: "original";
321
- reported: "reported";
322
- resolved: "resolved";
323
- spent: "spent";
324
- waiting: "waiting";
325
- }>;
326
- conversationId: z.ZodOptional<z.ZodString>;
327
- at: z.ZodNumber;
328
- detail: z.ZodOptional<z.ZodString>;
329
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
330
- }, z.core.$strip>>;
331
- }, z.core.$strip>>;
332
- redSince: z.ZodOptional<z.ZodNumber>;
333
- red: z.ZodOptional<z.ZodObject<{
334
- since: z.ZodNumber;
335
- cause: z.ZodArray<z.ZodObject<{
336
- conversationId: z.ZodString;
337
- title: z.ZodOptional<z.ZodString>;
338
- }, z.core.$strip>>;
339
- named: z.ZodBoolean;
340
- fixer: z.ZodOptional<z.ZodObject<{
341
- kind: z.ZodEnum<{
342
- dismissed: "dismissed";
343
- "fix-up": "fix-up";
344
- held: "held";
345
- original: "original";
346
- reported: "reported";
347
- resolved: "resolved";
348
- spent: "spent";
349
- waiting: "waiting";
350
- }>;
351
- conversationId: z.ZodOptional<z.ZodString>;
352
- at: z.ZodNumber;
353
- detail: z.ZodOptional<z.ZodString>;
354
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
355
- }, z.core.$strip>>;
356
- }, z.core.$strip>>;
357
- }, z.core.$strip>>;
358
- recent: z.ZodArray<z.ZodObject<{
359
- project: z.ZodString;
360
- command: z.ZodString;
361
- status: z.ZodEnum<{
362
- green: "green";
363
- red: "red";
364
- }>;
365
- startedAt: z.ZodNumber;
366
- at: z.ZodNumber;
367
- lands: z.ZodArray<z.ZodObject<{
368
- conversationId: z.ZodString;
369
- title: z.ZodOptional<z.ZodString>;
370
- at: z.ZodNumber;
371
- }, z.core.$strip>>;
372
- failures: z.ZodArray<z.ZodString>;
373
- failureCount: z.ZodNumber;
374
- attempt: z.ZodNumber;
375
- suspects: z.ZodOptional<z.ZodArray<z.ZodString>>;
376
- named: z.ZodOptional<z.ZodBoolean>;
377
- units: z.ZodOptional<z.ZodArray<z.ZodObject<{
378
- name: z.ZodString;
379
- path: z.ZodOptional<z.ZodString>;
380
- }, z.core.$strip>>>;
381
- routing: z.ZodOptional<z.ZodObject<{
382
- kind: z.ZodEnum<{
383
- dismissed: "dismissed";
384
- "fix-up": "fix-up";
385
- held: "held";
386
- original: "original";
387
- reported: "reported";
388
- resolved: "resolved";
389
- spent: "spent";
390
- waiting: "waiting";
391
- }>;
392
- conversationId: z.ZodOptional<z.ZodString>;
393
- at: z.ZodNumber;
394
- detail: z.ZodOptional<z.ZodString>;
395
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
396
- }, z.core.$strip>>;
397
- }, z.core.$strip>>;
398
- pushed: z.ZodOptional<z.ZodArray<z.ZodObject<{
399
- project: z.ZodString;
400
- id: z.ZodString;
401
- at: z.ZodNumber;
402
- remote: z.ZodOptional<z.ZodString>;
403
- branch: z.ZodOptional<z.ZodString>;
404
- base: z.ZodOptional<z.ZodString>;
405
- head: z.ZodString;
406
- commits: z.ZodNumber;
407
- findings: z.ZodArray<z.ZodObject<{
408
- id: z.ZodString;
409
- source: z.ZodString;
410
- text: z.ZodString;
411
- path: z.ZodOptional<z.ZodString>;
412
- command: z.ZodOptional<z.ZodString>;
413
- recheckable: z.ZodBoolean;
414
- gate: z.ZodOptional<z.ZodEnum<{
415
- code: "code";
416
- tidy: "tidy";
417
- }>>;
418
- commit: z.ZodOptional<z.ZodObject<{
419
- sha: z.ZodString;
420
- subject: z.ZodString;
421
- }, z.core.$strip>>;
422
- }, z.core.$strip>>;
423
- refused: z.ZodOptional<z.ZodBoolean>;
424
- }, z.core.$strip>>>;
425
- reds: z.ZodOptional<z.ZodArray<z.ZodObject<{
426
- source: z.ZodEnum<{
427
- ci: "ci";
428
- land: "land";
429
- push: "push";
430
- }>;
431
- scope: z.ZodString;
432
- since: z.ZodNumber;
433
- findings: z.ZodDefault<z.ZodArray<z.ZodObject<{
434
- id: z.ZodString;
435
- source: z.ZodString;
436
- text: z.ZodString;
437
- path: z.ZodOptional<z.ZodString>;
438
- command: z.ZodOptional<z.ZodString>;
439
- recheckable: z.ZodBoolean;
440
- gate: z.ZodOptional<z.ZodEnum<{
441
- code: "code";
442
- tidy: "tidy";
443
- }>>;
444
- commit: z.ZodOptional<z.ZodObject<{
445
- sha: z.ZodString;
446
- subject: z.ZodString;
447
- }, z.core.$strip>>;
448
- }, z.core.$strip>>>;
449
- suspects: z.ZodDefault<z.ZodArray<z.ZodString>>;
450
- named: z.ZodDefault<z.ZodBoolean>;
451
- decisions: z.ZodDefault<z.ZodArray<z.ZodObject<{
452
- kind: z.ZodEnum<{
453
- dismissed: "dismissed";
454
- "fix-up": "fix-up";
455
- held: "held";
456
- original: "original";
457
- reported: "reported";
458
- resolved: "resolved";
459
- spent: "spent";
460
- waiting: "waiting";
461
- }>;
462
- conversationId: z.ZodOptional<z.ZodString>;
463
- at: z.ZodNumber;
464
- detail: z.ZodOptional<z.ZodString>;
465
- findings: z.ZodOptional<z.ZodArray<z.ZodString>>;
466
- }, z.core.$strip>>>;
467
- }, z.core.$strip>>>;
468
- }, z.core.$strip>;
469
- export type MainlineStatus = z.infer<typeof MainlineStatusSchema>;
470
- export declare const MainlinePushDismissSchema: z.ZodObject<{
471
- project: z.ZodString;
472
- ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
473
- restore: z.ZodOptional<z.ZodBoolean>;
474
- }, z.core.$strip>;
475
- export type MainlinePushDismiss = z.infer<typeof MainlinePushDismissSchema>;
476
- export declare const MainlinePushDismissResultSchema: z.ZodObject<{
477
- changed: z.ZodNumber;
478
- }, z.core.$strip>;
479
- export declare const MainlinePushRecheckSchema: z.ZodObject<{
480
- project: z.ZodString;
481
- }, z.core.$strip>;
482
- export declare const MainlinePushRecheckResultSchema: z.ZodObject<{
483
- measured: z.ZodBoolean;
484
- resolved: z.ZodNumber;
485
- open: z.ZodNumber;
486
- }, z.core.$strip>;
487
- export type MainlinePushRecheckResult = z.infer<typeof MainlinePushRecheckResultSchema>;
488
- export declare const MainlinePushFixSchema: z.ZodObject<{
489
- project: z.ZodString;
490
- pick: z.ZodOptional<z.ZodObject<{
491
- agent: z.ZodString;
492
- model: z.ZodString;
493
- account: z.ZodOptional<z.ZodString>;
494
- harness: z.ZodOptional<z.ZodEnum<{
495
- "claude-code": "claude-code";
496
- native: "native";
497
- }>>;
498
- effort: z.ZodOptional<z.ZodString>;
499
- thinking: z.ZodOptional<z.ZodBoolean>;
500
- fast: z.ZodOptional<z.ZodBoolean>;
501
- }, z.core.$strip>>;
502
- mode: z.ZodOptional<z.ZodEnum<{
503
- continue: "continue";
504
- "start-over": "start-over";
505
- }>>;
506
- }, z.core.$strip>;
507
- export type MainlinePushFix = z.infer<typeof MainlinePushFixSchema>;
508
- export declare const MainlinePushFixResultSchema: z.ZodObject<{
509
- conversationId: z.ZodString;
510
- }, z.core.$strip>;
511
- export declare const pushRedOf: (reds: readonly Red[] | undefined, project: string) => Red | undefined;
512
- export declare const pushFixBase: (red: Pick<Red, "scope" | "since"> | undefined) => string | undefined;
513
- //# sourceMappingURL=mainline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mainline.d.ts","sourceRoot":"","sources":["../../../src/schemas/workspace/mainline.ts"],"names":[],"mappings":"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"}