@farmslot/protocol 0.5.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 (227) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +213 -0
  3. package/dist/agent-roles.d.ts +15 -0
  4. package/dist/agent-roles.d.ts.map +1 -0
  5. package/dist/agent-roles.js +101 -0
  6. package/dist/agent-roles.js.map +1 -0
  7. package/dist/events.d.ts +265 -0
  8. package/dist/events.d.ts.map +1 -0
  9. package/dist/events.js +72 -0
  10. package/dist/events.js.map +1 -0
  11. package/dist/frames.d.ts +29 -0
  12. package/dist/frames.d.ts.map +1 -0
  13. package/dist/frames.js +15 -0
  14. package/dist/frames.js.map +1 -0
  15. package/dist/github-ref.d.ts +15 -0
  16. package/dist/github-ref.d.ts.map +1 -0
  17. package/dist/github-ref.js +30 -0
  18. package/dist/github-ref.js.map +1 -0
  19. package/dist/index.d.ts +14 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +14 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/methods/auth.d.ts +46 -0
  24. package/dist/methods/auth.d.ts.map +1 -0
  25. package/dist/methods/auth.js +5 -0
  26. package/dist/methods/auth.js.map +1 -0
  27. package/dist/methods/backlog.d.ts +63 -0
  28. package/dist/methods/backlog.d.ts.map +1 -0
  29. package/dist/methods/backlog.js +12 -0
  30. package/dist/methods/backlog.js.map +1 -0
  31. package/dist/methods/chat.d.ts +290 -0
  32. package/dist/methods/chat.d.ts.map +1 -0
  33. package/dist/methods/chat.js +22 -0
  34. package/dist/methods/chat.js.map +1 -0
  35. package/dist/methods/config.d.ts +81 -0
  36. package/dist/methods/config.d.ts.map +1 -0
  37. package/dist/methods/config.js +16 -0
  38. package/dist/methods/config.js.map +1 -0
  39. package/dist/methods/copilot.d.ts +23 -0
  40. package/dist/methods/copilot.d.ts.map +1 -0
  41. package/dist/methods/copilot.js +5 -0
  42. package/dist/methods/copilot.js.map +1 -0
  43. package/dist/methods/decisions.d.ts +9 -0
  44. package/dist/methods/decisions.d.ts.map +1 -0
  45. package/dist/methods/decisions.js +2 -0
  46. package/dist/methods/decisions.js.map +1 -0
  47. package/dist/methods/diagnostics.d.ts +8 -0
  48. package/dist/methods/diagnostics.d.ts.map +1 -0
  49. package/dist/methods/diagnostics.js +2 -0
  50. package/dist/methods/diagnostics.js.map +1 -0
  51. package/dist/methods/dispatch.d.ts +198 -0
  52. package/dist/methods/dispatch.d.ts.map +1 -0
  53. package/dist/methods/dispatch.js +12 -0
  54. package/dist/methods/dispatch.js.map +1 -0
  55. package/dist/methods/eval.d.ts +119 -0
  56. package/dist/methods/eval.d.ts.map +1 -0
  57. package/dist/methods/eval.js +9 -0
  58. package/dist/methods/eval.js.map +1 -0
  59. package/dist/methods/fleet.d.ts +86 -0
  60. package/dist/methods/fleet.d.ts.map +1 -0
  61. package/dist/methods/fleet.js +9 -0
  62. package/dist/methods/fleet.js.map +1 -0
  63. package/dist/methods/fs.d.ts +42 -0
  64. package/dist/methods/fs.d.ts.map +1 -0
  65. package/dist/methods/fs.js +2 -0
  66. package/dist/methods/fs.js.map +1 -0
  67. package/dist/methods/git.d.ts +103 -0
  68. package/dist/methods/git.d.ts.map +1 -0
  69. package/dist/methods/git.js +2 -0
  70. package/dist/methods/git.js.map +1 -0
  71. package/dist/methods/index.d.ts +25 -0
  72. package/dist/methods/index.d.ts.map +1 -0
  73. package/dist/methods/index.js +26 -0
  74. package/dist/methods/index.js.map +1 -0
  75. package/dist/methods/intelligence.d.ts +218 -0
  76. package/dist/methods/intelligence.d.ts.map +1 -0
  77. package/dist/methods/intelligence.js +20 -0
  78. package/dist/methods/intelligence.js.map +1 -0
  79. package/dist/methods/nodes.d.ts +22 -0
  80. package/dist/methods/nodes.d.ts.map +1 -0
  81. package/dist/methods/nodes.js +2 -0
  82. package/dist/methods/nodes.js.map +1 -0
  83. package/dist/methods/pr.d.ts +75 -0
  84. package/dist/methods/pr.d.ts.map +1 -0
  85. package/dist/methods/pr.js +2 -0
  86. package/dist/methods/pr.js.map +1 -0
  87. package/dist/methods/registry.d.ts +196 -0
  88. package/dist/methods/registry.d.ts.map +1 -0
  89. package/dist/methods/registry.js +229 -0
  90. package/dist/methods/registry.js.map +1 -0
  91. package/dist/methods/resources.d.ts +89 -0
  92. package/dist/methods/resources.d.ts.map +1 -0
  93. package/dist/methods/resources.js +13 -0
  94. package/dist/methods/resources.js.map +1 -0
  95. package/dist/methods/run.d.ts +398 -0
  96. package/dist/methods/run.d.ts.map +1 -0
  97. package/dist/methods/run.js +34 -0
  98. package/dist/methods/run.js.map +1 -0
  99. package/dist/methods/search.d.ts +19 -0
  100. package/dist/methods/search.d.ts.map +1 -0
  101. package/dist/methods/search.js +2 -0
  102. package/dist/methods/search.js.map +1 -0
  103. package/dist/methods/slot.d.ts +192 -0
  104. package/dist/methods/slot.d.ts.map +1 -0
  105. package/dist/methods/slot.js +21 -0
  106. package/dist/methods/slot.js.map +1 -0
  107. package/dist/methods/task.d.ts +18 -0
  108. package/dist/methods/task.d.ts.map +1 -0
  109. package/dist/methods/task.js +2 -0
  110. package/dist/methods/task.js.map +1 -0
  111. package/dist/methods/terminal.d.ts +66 -0
  112. package/dist/methods/terminal.d.ts.map +1 -0
  113. package/dist/methods/terminal.js +2 -0
  114. package/dist/methods/terminal.js.map +1 -0
  115. package/dist/methods/tmux.d.ts +108 -0
  116. package/dist/methods/tmux.d.ts.map +1 -0
  117. package/dist/methods/tmux.js +3 -0
  118. package/dist/methods/tmux.js.map +1 -0
  119. package/dist/methods/workspace.d.ts +11 -0
  120. package/dist/methods/workspace.d.ts.map +1 -0
  121. package/dist/methods/workspace.js +2 -0
  122. package/dist/methods/workspace.js.map +1 -0
  123. package/dist/methods.d.ts +2 -0
  124. package/dist/methods.d.ts.map +1 -0
  125. package/dist/methods.js +3 -0
  126. package/dist/methods.js.map +1 -0
  127. package/dist/recipe-compat.d.ts +89 -0
  128. package/dist/recipe-compat.d.ts.map +1 -0
  129. package/dist/recipe-compat.js +977 -0
  130. package/dist/recipe-compat.js.map +1 -0
  131. package/dist/run-family-readiness.d.ts +31 -0
  132. package/dist/run-family-readiness.d.ts.map +1 -0
  133. package/dist/run-family-readiness.js +223 -0
  134. package/dist/run-family-readiness.js.map +1 -0
  135. package/dist/signal.d.ts +14 -0
  136. package/dist/signal.d.ts.map +1 -0
  137. package/dist/signal.js +4 -0
  138. package/dist/signal.js.map +1 -0
  139. package/dist/step-io.d.ts +277 -0
  140. package/dist/step-io.d.ts.map +1 -0
  141. package/dist/step-io.js +26 -0
  142. package/dist/step-io.js.map +1 -0
  143. package/dist/surfaces.d.ts +36 -0
  144. package/dist/surfaces.d.ts.map +1 -0
  145. package/dist/surfaces.js +392 -0
  146. package/dist/surfaces.js.map +1 -0
  147. package/dist/tmux-worker-watchlist.d.ts +36 -0
  148. package/dist/tmux-worker-watchlist.d.ts.map +1 -0
  149. package/dist/tmux-worker-watchlist.js +82 -0
  150. package/dist/tmux-worker-watchlist.js.map +1 -0
  151. package/dist/types/agents.d.ts +59 -0
  152. package/dist/types/agents.d.ts.map +1 -0
  153. package/dist/types/agents.js +10 -0
  154. package/dist/types/agents.js.map +1 -0
  155. package/dist/types/backlog.d.ts +66 -0
  156. package/dist/types/backlog.d.ts.map +1 -0
  157. package/dist/types/backlog.js +13 -0
  158. package/dist/types/backlog.js.map +1 -0
  159. package/dist/types/chat.d.ts +203 -0
  160. package/dist/types/chat.d.ts.map +1 -0
  161. package/dist/types/chat.js +19 -0
  162. package/dist/types/chat.js.map +1 -0
  163. package/dist/types/common.d.ts +13 -0
  164. package/dist/types/common.d.ts.map +1 -0
  165. package/dist/types/common.js +3 -0
  166. package/dist/types/common.js.map +1 -0
  167. package/dist/types/config.d.ts +154 -0
  168. package/dist/types/config.d.ts.map +1 -0
  169. package/dist/types/config.js +2 -0
  170. package/dist/types/config.js.map +1 -0
  171. package/dist/types/dispatch.d.ts +77 -0
  172. package/dist/types/dispatch.d.ts.map +1 -0
  173. package/dist/types/dispatch.js +2 -0
  174. package/dist/types/dispatch.js.map +1 -0
  175. package/dist/types/evals.d.ts +341 -0
  176. package/dist/types/evals.d.ts.map +1 -0
  177. package/dist/types/evals.js +459 -0
  178. package/dist/types/evals.js.map +1 -0
  179. package/dist/types/family.d.ts +163 -0
  180. package/dist/types/family.d.ts.map +1 -0
  181. package/dist/types/family.js +2 -0
  182. package/dist/types/family.js.map +1 -0
  183. package/dist/types/index.d.ts +17 -0
  184. package/dist/types/index.d.ts.map +1 -0
  185. package/dist/types/index.js +17 -0
  186. package/dist/types/index.js.map +1 -0
  187. package/dist/types/recipes.d.ts +94 -0
  188. package/dist/types/recipes.d.ts.map +1 -0
  189. package/dist/types/recipes.js +7 -0
  190. package/dist/types/recipes.js.map +1 -0
  191. package/dist/types/resources.d.ts +110 -0
  192. package/dist/types/resources.d.ts.map +1 -0
  193. package/dist/types/resources.js +2 -0
  194. package/dist/types/resources.js.map +1 -0
  195. package/dist/types/reviews.d.ts +85 -0
  196. package/dist/types/reviews.d.ts.map +1 -0
  197. package/dist/types/reviews.js +2 -0
  198. package/dist/types/reviews.js.map +1 -0
  199. package/dist/types/runs.d.ts +1105 -0
  200. package/dist/types/runs.d.ts.map +1 -0
  201. package/dist/types/runs.js +297 -0
  202. package/dist/types/runs.js.map +1 -0
  203. package/dist/types/slots.d.ts +108 -0
  204. package/dist/types/slots.d.ts.map +1 -0
  205. package/dist/types/slots.js +2 -0
  206. package/dist/types/slots.js.map +1 -0
  207. package/dist/types/task.d.ts +37 -0
  208. package/dist/types/task.d.ts.map +1 -0
  209. package/dist/types/task.js +2 -0
  210. package/dist/types/task.js.map +1 -0
  211. package/dist/types/terminal.d.ts +12 -0
  212. package/dist/types/terminal.d.ts.map +1 -0
  213. package/dist/types/terminal.js +2 -0
  214. package/dist/types/terminal.js.map +1 -0
  215. package/dist/types/workspace.d.ts +44 -0
  216. package/dist/types/workspace.d.ts.map +1 -0
  217. package/dist/types/workspace.js +2 -0
  218. package/dist/types/workspace.js.map +1 -0
  219. package/dist/types.d.ts +2 -0
  220. package/dist/types.d.ts.map +1 -0
  221. package/dist/types.js +3 -0
  222. package/dist/types.js.map +1 -0
  223. package/dist/version.d.ts +2 -0
  224. package/dist/version.d.ts.map +1 -0
  225. package/dist/version.js +7 -0
  226. package/dist/version.js.map +1 -0
  227. package/package.json +109 -0
@@ -0,0 +1,66 @@
1
+ import type { QueueItem } from './dispatch.js';
2
+ import type { FlowType, RunStatus } from './runs.js';
3
+ export declare const BACKLOG_STATUSES: readonly ["candidate", "ready", "queued", "dispatching", "running", "done", "failed", "needs-attention", "archived"];
4
+ export type BacklogStatus = (typeof BACKLOG_STATUSES)[number];
5
+ export declare const BACKLOG_SOURCE_KINDS: readonly ["jira", "github", "manual"];
6
+ export type BacklogSourceKind = (typeof BACKLOG_SOURCE_KINDS)[number];
7
+ export interface BacklogAutoDispatchPolicy {
8
+ enabled?: boolean;
9
+ }
10
+ export interface ProjectBacklogConfig {
11
+ autoDispatch?: BacklogAutoDispatchPolicy;
12
+ }
13
+ export interface BacklogItem {
14
+ id: string;
15
+ project: string;
16
+ title: string;
17
+ sourceKind: BacklogSourceKind;
18
+ sourceRef: string;
19
+ sourceUrl?: string;
20
+ flowType: FlowType;
21
+ status: BacklogStatus;
22
+ notes?: string;
23
+ priority: number;
24
+ allowedSlots?: string[];
25
+ autoDispatch?: boolean;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ queuedQueueItemId?: string;
29
+ runId?: string;
30
+ lastObservedRunStatus?: RunStatus;
31
+ lastDispatchAttempt?: string;
32
+ lastDispatchError?: string;
33
+ }
34
+ export interface BacklogBlockedItem {
35
+ item: BacklogItem;
36
+ reason: string;
37
+ }
38
+ export interface BacklogCreateInput {
39
+ project: string;
40
+ title: string;
41
+ sourceKind: BacklogSourceKind;
42
+ sourceRef?: string;
43
+ sourceUrl?: string;
44
+ flowType: FlowType;
45
+ notes?: string;
46
+ priority?: number;
47
+ allowedSlots?: string[];
48
+ autoDispatch?: boolean;
49
+ status?: Extract<BacklogStatus, 'candidate' | 'ready'>;
50
+ }
51
+ export interface BacklogUpdateInput {
52
+ title?: string;
53
+ sourceKind?: BacklogSourceKind;
54
+ sourceRef?: string;
55
+ sourceUrl?: string | null;
56
+ flowType?: FlowType;
57
+ notes?: string | null;
58
+ priority?: number;
59
+ allowedSlots?: string[] | null;
60
+ autoDispatch?: boolean;
61
+ }
62
+ export interface BacklogEnqueueResultData {
63
+ item: BacklogItem;
64
+ queueItem: QueueItem;
65
+ }
66
+ //# sourceMappingURL=backlog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.d.ts","sourceRoot":"","sources":["../../src/types/backlog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAErD,eAAO,MAAM,gBAAgB,sHAUnB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9D,eAAO,MAAM,oBAAoB,uCAAwC,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,13 @@
1
+ export const BACKLOG_STATUSES = [
2
+ 'candidate',
3
+ 'ready',
4
+ 'queued',
5
+ 'dispatching',
6
+ 'running',
7
+ 'done',
8
+ 'failed',
9
+ 'needs-attention',
10
+ 'archived',
11
+ ];
12
+ export const BACKLOG_SOURCE_KINDS = ['jira', 'github', 'manual'];
13
+ //# sourceMappingURL=backlog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../src/types/backlog.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,OAAO;IACP,QAAQ;IACR,aAAa;IACb,SAAS;IACT,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,UAAU;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,203 @@
1
+ import type { AgentRole } from './agents.js';
2
+ import type { RunStatus } from './runs.js';
3
+ export interface ChatToolTraceEntry {
4
+ callId: string;
5
+ toolName: string;
6
+ round: number;
7
+ status: 'ok' | 'error';
8
+ startedAt: string;
9
+ completedAt: string;
10
+ durationMs: number;
11
+ argsSummary?: string;
12
+ resultSummary: string;
13
+ outputSize: number;
14
+ truncated: boolean;
15
+ summaryKind: 'json-shape' | 'text' | 'file-read' | 'log-read' | 'run-bundle' | 'investigation-report' | 'error';
16
+ }
17
+ export type ChatSendIntent = 'general' | 'diagnostic-readonly';
18
+ export interface RouteContextSelectors {
19
+ route?: string;
20
+ hash?: string;
21
+ routePattern?: string;
22
+ query?: Record<string, string>;
23
+ selectedRunId?: string;
24
+ selectedFamilyId?: string;
25
+ selectedStepName?: string;
26
+ selectedSlotId?: string;
27
+ selectedDecisionId?: string;
28
+ selectedConfigName?: string;
29
+ selectedPullRequestNumber?: string;
30
+ selectedPullRequestRepo?: string;
31
+ selectedPullRequestRef?: string;
32
+ compareRunIds?: string[];
33
+ affordances?: string[];
34
+ visibleElementTags?: string[];
35
+ visibleTextSnippets?: string[];
36
+ visibleControls?: string[];
37
+ }
38
+ export interface ChatClientContext extends RouteContextSelectors {
39
+ url?: string;
40
+ surfaceId?: string;
41
+ }
42
+ export interface ScreenEvidenceSnapshot extends RouteContextSelectors {
43
+ snapshotId: string;
44
+ sessionId: string;
45
+ requestId?: string;
46
+ surfaceId: string;
47
+ preferredTools?: string[];
48
+ capturedAt: string;
49
+ ttlMs: number;
50
+ expiresAt: string;
51
+ freshness: 'fresh' | 'stale' | 'expired';
52
+ provenance: Array<'ui-client-context' | 'surface-registry' | 'visible-dom-snippets' | 'gateway-cache'>;
53
+ uncertainty: Array<'none' | 'unknown-route' | 'missing-ui-context' | 'stale' | 'expired' | 'partial-visible-context'>;
54
+ }
55
+ export type ObserverEvidenceSeverity = 'info' | 'warn' | 'error';
56
+ export interface ObserverEvidenceFilters {
57
+ severity?: ObserverEvidenceSeverity;
58
+ type?: string;
59
+ runId?: string;
60
+ slotId?: string;
61
+ }
62
+ export interface ObserverEvidenceQuery extends ObserverEvidenceFilters {
63
+ windowMs?: number;
64
+ limit?: number;
65
+ }
66
+ export interface ObserverEvidenceEvent {
67
+ id: string;
68
+ ts: string;
69
+ type: string;
70
+ severity: ObserverEvidenceSeverity;
71
+ summary: string;
72
+ runId?: string;
73
+ slotId?: string;
74
+ }
75
+ export interface ObserverAttentionRecommendation {
76
+ id: string;
77
+ severity: Exclude<ObserverEvidenceSeverity, 'info'>;
78
+ summary: string;
79
+ runId?: string;
80
+ slotId?: string;
81
+ sourceEventIds: string[];
82
+ }
83
+ export interface ObserverEvidenceResult {
84
+ generatedAt: string;
85
+ windowMs: number;
86
+ limit: number;
87
+ truncated: boolean;
88
+ filters: ObserverEvidenceFilters;
89
+ events: ObserverEvidenceEvent[];
90
+ attention: ObserverAttentionRecommendation[];
91
+ provenance: string[];
92
+ freshness: 'fresh' | 'empty';
93
+ uncertainty: Array<'none' | 'empty' | 'filtered' | 'filter-truncated' | 'truncated' | 'events-dropped-by-window'>;
94
+ }
95
+ export interface ChatSessionSummary {
96
+ id: string;
97
+ title: string;
98
+ scope: 'global' | 'run' | 'family' | 'slot' | 'manual' | 'unknown';
99
+ createdAt: string;
100
+ updatedAt: string;
101
+ messageCount: number;
102
+ lastPreview?: string;
103
+ lastSavedAt?: string;
104
+ /** False when the session is ephemeral (in-memory only). Pinned sessions persist to disk. */
105
+ pinned?: boolean;
106
+ }
107
+ export interface ChatNextStep {
108
+ id: string;
109
+ label: string;
110
+ kind: 'prompt' | 'read';
111
+ safety: 'read-only';
112
+ params: Record<string, unknown>;
113
+ }
114
+ export type RunRecoveryProposalStatus = 'ready' | 'insufficient-evidence' | 'unavailable';
115
+ export type RunRecoveryProposalConfidence = 'high' | 'medium' | 'low';
116
+ export interface RunRecoveryProposalTarget {
117
+ runId: string;
118
+ stepName?: string;
119
+ flowType?: string;
120
+ status?: RunStatus;
121
+ project?: string;
122
+ ticketOrPr?: string;
123
+ slotId?: string | null;
124
+ }
125
+ export interface RunRecoveryEvidence {
126
+ id: string;
127
+ source: 'run-state' | 'run-context-bundle' | 'task-artifact' | 'observer-evidence' | 'screen-context' | 'source-inspection' | 'registered-log';
128
+ label: string;
129
+ provenance: string;
130
+ excerpt?: string;
131
+ path?: string;
132
+ }
133
+ export type FailureCategory = 'flake' | 'infra' | 'env-drift' | 'timeout';
134
+ export declare const FAILURE_CATEGORIES: readonly FailureCategory[];
135
+ export declare const RECOVERABLE_FAILURE_CATEGORIES: ReadonlySet<FailureCategory>;
136
+ export interface RunRecoveryDescriptor {
137
+ id: string;
138
+ label: string;
139
+ description: string;
140
+ policyRef?: string;
141
+ failureCategory?: FailureCategory;
142
+ proposedActions?: ChatSuggestedAction[];
143
+ }
144
+ export interface RunRecoveryProposal {
145
+ status: RunRecoveryProposalStatus;
146
+ target: RunRecoveryProposalTarget;
147
+ finding: string;
148
+ evidence: RunRecoveryEvidence[];
149
+ confidence: RunRecoveryProposalConfidence;
150
+ inferenceNotes: string[];
151
+ nextSteps: ChatNextStep[];
152
+ remediationDescriptors?: RunRecoveryDescriptor[];
153
+ }
154
+ export interface ChatMessage {
155
+ id: string;
156
+ role: 'user' | 'assistant' | 'system';
157
+ content: string;
158
+ timestamp: string;
159
+ suggestedActions?: ChatSuggestedAction[];
160
+ nextSteps?: ChatNextStep[];
161
+ usage?: {
162
+ inputTokens?: number;
163
+ outputTokens?: number;
164
+ costUsd?: number;
165
+ };
166
+ toolTrace?: ChatToolTraceEntry[];
167
+ }
168
+ export interface ChatSuggestedAction {
169
+ actionId?: string;
170
+ type: string;
171
+ label: string;
172
+ params: Record<string, unknown>;
173
+ expiresAt?: string;
174
+ }
175
+ export interface ChatSession {
176
+ id: string;
177
+ messages: ChatMessage[];
178
+ createdAt: string;
179
+ updatedAt: string;
180
+ title?: string;
181
+ lastSavedAt?: string;
182
+ /** False/missing = ephemeral (in-memory only). True = persisted to disk. */
183
+ pinned?: boolean;
184
+ }
185
+ /** Typed reasons the gateway rejects a chat.confirmAction request. The WS
186
+ * error frame surfaces these as `code: 'CHAT_ACTION_REJECT_<UPPER_SNAKE>'`
187
+ * via `chatActionRejectCode()` so the UI can classify rejections without
188
+ * parsing message text. New reasons must be added in one place; both the
189
+ * gateway throw and the UI's "unavailable" set derive from this list. */
190
+ export type ChatActionRejectReason = 'unknown' | 'expired' | 'consumed' | 'cross-session' | 'snapshot-mismatch' | 'precondition-fail';
191
+ export declare const CHAT_ACTION_REJECT_REASONS: readonly ChatActionRejectReason[];
192
+ export declare function chatActionRejectCode(reason: ChatActionRejectReason): string;
193
+ export interface MonitorViolation {
194
+ slotId: string;
195
+ role?: AgentRole;
196
+ contextId?: string;
197
+ target?: string;
198
+ type: 'stuck' | 'skipped' | 'idle' | 'waiting' | 'error';
199
+ message: string;
200
+ nudgeSent: string | null;
201
+ timestamp: string;
202
+ }
203
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export const FAILURE_CATEGORIES = [
2
+ 'flake',
3
+ 'infra',
4
+ 'env-drift',
5
+ 'timeout',
6
+ ];
7
+ export const RECOVERABLE_FAILURE_CATEGORIES = new Set(['flake', 'infra', 'env-drift', 'timeout']);
8
+ export const CHAT_ACTION_REJECT_REASONS = [
9
+ 'unknown',
10
+ 'expired',
11
+ 'consumed',
12
+ 'cross-session',
13
+ 'snapshot-mismatch',
14
+ 'precondition-fail',
15
+ ];
16
+ export function chatActionRejectCode(reason) {
17
+ return `CHAT_ACTION_REJECT_${reason.toUpperCase().replace(/-/g, '_')}`;
18
+ }
19
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAkLA,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,OAAO;IACP,OAAO;IACP,WAAW;IACX,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,8BAA8B,GACzC,IAAI,GAAG,CAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAiEvE,MAAM,CAAC,MAAM,0BAA0B,GAAsC;IAC3E,SAAS;IACT,SAAS;IACT,UAAU;IACV,eAAe;IACf,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAA8B;IACjE,OAAO,sBAAsB,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type OkResult = {
2
+ ok: true;
3
+ };
4
+ export interface ExecResult {
5
+ stdout: string;
6
+ stderr: string;
7
+ exitCode: number;
8
+ }
9
+ export interface CommandOutput {
10
+ stdout: string;
11
+ stderr: string;
12
+ }
13
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,3 @@
1
+ // Common protocol primitives shared across domains.
2
+ export {};
3
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,oDAAoD"}
@@ -0,0 +1,154 @@
1
+ import type { SafetyTier } from './agents.js';
2
+ import type { ProjectBacklogConfig } from './backlog.js';
3
+ import type { FailureCategory } from './chat.js';
4
+ import type { ResourceDefinition, SlotActionDefinition } from './resources.js';
5
+ import type { FlowType } from './runs.js';
6
+ import type { PoolSlotMode } from './slots.js';
7
+ import type { TaskSchema } from './task.js';
8
+ export interface PoolConfig {
9
+ machine: string;
10
+ project: string;
11
+ platform: string;
12
+ os: string;
13
+ host: string;
14
+ sshUser: string;
15
+ tmuxWorkers?: TmuxWorkerFilterConfig;
16
+ slots: Array<{
17
+ id: string;
18
+ enabled: boolean;
19
+ mode: PoolSlotMode;
20
+ project: string;
21
+ repo: string;
22
+ session: string;
23
+ resources?: Record<string, Record<string, string | number | boolean>>;
24
+ }>;
25
+ }
26
+ export interface TmuxWorkerFilterRule {
27
+ nodeId?: string;
28
+ session?: string;
29
+ target?: string;
30
+ windowName?: string;
31
+ pane?: string;
32
+ paneId?: string;
33
+ title?: string;
34
+ cwd?: string;
35
+ command?: string;
36
+ linkedSlotId?: string;
37
+ linkedRunId?: string;
38
+ linkedFamilyId?: string;
39
+ }
40
+ export interface TmuxWorkerFilterConfig {
41
+ include?: TmuxWorkerFilterRule[];
42
+ exclude?: TmuxWorkerFilterRule[];
43
+ }
44
+ export interface ProjectAutoRecoveryConfig {
45
+ enabled?: boolean;
46
+ maxAttempts?: number;
47
+ allowedSteps?: string[];
48
+ allowedCategories?: FailureCategory[];
49
+ disabledPatterns?: string[];
50
+ llm?: {
51
+ enabled?: boolean;
52
+ dailyUsdCap?: number;
53
+ timeoutMs?: number;
54
+ };
55
+ }
56
+ export interface ProjectPublicationReviewFlowConfig {
57
+ minimumIndependentReviews?: number;
58
+ requireCrossRunner?: boolean;
59
+ }
60
+ export interface ProjectConfig {
61
+ name: string;
62
+ repoUrl: string;
63
+ defaultBranch: string;
64
+ apps?: string[];
65
+ paths: {
66
+ runtimeDir: string;
67
+ artifactDir: string;
68
+ };
69
+ defaults: Record<string, {
70
+ runner: string;
71
+ model: string;
72
+ }>;
73
+ hooks: Record<string, string | Record<string, string>>;
74
+ health: Record<string, string>;
75
+ ci: {
76
+ repo: string;
77
+ prLabels?: string[];
78
+ prTitleSuffix?: string;
79
+ watchChecks: string[];
80
+ checkGroups: ProjectCICheckGroup[];
81
+ botPatterns: Array<{
82
+ author: string;
83
+ label: string;
84
+ defaultAction: 'nudge_worker' | 'alert_only';
85
+ actions?: Array<{
86
+ bodyMatch: string;
87
+ action: 'nudge_worker' | 'alert_only';
88
+ label?: string;
89
+ }>;
90
+ }>;
91
+ };
92
+ jira: {
93
+ project: string;
94
+ base_url?: string;
95
+ email_env?: string;
96
+ api_token_env?: string;
97
+ };
98
+ defaultSafetyTier?: SafetyTier;
99
+ resources?: Record<string, ResourceDefinition>;
100
+ slotActions?: Record<string, SlotActionDefinition>;
101
+ models?: {
102
+ provider?: string;
103
+ default_model?: string;
104
+ api_key_env?: string;
105
+ };
106
+ webhooks?: {
107
+ github_secret?: string;
108
+ jira_secret?: string;
109
+ auto_dispatch?: boolean;
110
+ };
111
+ ci_watch?: {
112
+ poll_interval_s?: number;
113
+ max_hold_min?: number;
114
+ max_total_hold_min?: number;
115
+ auto_dispatch?: {
116
+ test_failures?: boolean;
117
+ merge_conflicts?: boolean;
118
+ bot_comments?: boolean;
119
+ };
120
+ };
121
+ auto_recycle?: {
122
+ enabled?: boolean;
123
+ interval_min?: number;
124
+ max_failures?: number;
125
+ };
126
+ publicationReview?: Partial<Record<'fix-bug' | 'dev', ProjectPublicationReviewFlowConfig>>;
127
+ autoRecovery?: ProjectAutoRecoveryConfig;
128
+ backlog?: ProjectBacklogConfig;
129
+ }
130
+ export interface ProjectCICheckGroup {
131
+ name: string;
132
+ match: string;
133
+ matchMode: 'exact' | 'includes' | 'regex';
134
+ aggregate: 'all' | 'any' | 'latest';
135
+ }
136
+ export interface WorkerTemplateOption {
137
+ flowType: FlowType;
138
+ fileName: string;
139
+ variant?: string | null;
140
+ label: string;
141
+ isDefault: boolean;
142
+ }
143
+ export interface TemplatePreview {
144
+ flowType: string;
145
+ fileName: string;
146
+ schema: TaskSchema;
147
+ placeholders: string[];
148
+ rawMarkdown: string;
149
+ }
150
+ export interface SlotConfigUpdate {
151
+ enabled?: boolean;
152
+ mode?: PoolSlotMode;
153
+ }
154
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import type { TaskTemplateSelection } from './evals.js';
2
+ import type { DevInteractiveProfile, FlowType, ReviewDepthPolicy, ReviewLoopRequest, RunCompletionPolicy, RunLane, RunStartRefProvenance } from './runs.js';
3
+ export type QueueItemKind = 'dispatch' | 'eval-cell';
4
+ export interface EvalQueueCell {
5
+ capGroupId: string;
6
+ suiteId?: string;
7
+ cellId: string;
8
+ caseSelectionId?: string;
9
+ candidateId?: string;
10
+ candidateLabel?: string;
11
+ experimentId: string;
12
+ experimentKey?: string;
13
+ experimentManifestPath: string;
14
+ trialId: string;
15
+ trialStartParams: Record<string, unknown>;
16
+ }
17
+ export interface QueueItem {
18
+ id: string;
19
+ queueKind?: QueueItemKind;
20
+ /** Backlog item that produced this queue entry, when queued from durable backlog. */
21
+ backlogItemId?: string;
22
+ label?: string;
23
+ flowType: FlowType;
24
+ project: string;
25
+ ticketOrPr: string;
26
+ familyId?: string;
27
+ parentRunId?: string | null;
28
+ familyRootTicketOrPr?: string;
29
+ lane?: RunLane;
30
+ variant?: string | null;
31
+ /** Selected project-owned worker template version for queued dispatch parity. */
32
+ taskTemplate?: TaskTemplateSelection;
33
+ app?: string;
34
+ model?: string;
35
+ runner?: string;
36
+ effort?: string;
37
+ mode?: 'interactive' | 'autonomous' | 'validation';
38
+ devInteractiveProfile?: DevInteractiveProfile;
39
+ initialContext?: string;
40
+ /** Optional pre-fetched/manual ticket payload forwarded through queue dispatch. */
41
+ ticketData?: import('./runs.js').RunTicketData;
42
+ devChecklist?: string[];
43
+ slotId?: string;
44
+ /** Slot-ID allow list resolved from UI filters at queue time. null = unrestricted. */
45
+ allowedSlots?: string[] | null;
46
+ /** PR head branch (review-pr / pr-complete). Forwarded as targetBranch so the auto-dispatcher prefers a slot already on this branch. */
47
+ branch?: string | null;
48
+ /** Completion safety policy persisted through queue dispatch handoff. */
49
+ completionPolicy?: RunCompletionPolicy;
50
+ /** Requested/resolved base ref for artifact-only comparison replay runs. */
51
+ startRef?: RunStartRefProvenance | null;
52
+ /** Fix-bug publication review depth requested when the queue item was created. */
53
+ reviewDepth?: ReviewDepthPolicy;
54
+ /** Ordered extra review loops to run before the first ready gate. */
55
+ pendingReviewPlan?: ReviewLoopRequest[];
56
+ evalCell?: EvalQueueCell;
57
+ priority: number;
58
+ createdAt: string;
59
+ status: 'queued' | 'dispatching' | 'cancelled';
60
+ runId?: string;
61
+ }
62
+ export interface DispatchRequest {
63
+ slotId: string;
64
+ taskFile: string;
65
+ force?: boolean;
66
+ skipPrepare?: boolean;
67
+ }
68
+ export interface DispatchPreview {
69
+ slotId: string;
70
+ project: string;
71
+ flowType: FlowType;
72
+ branch: string | null;
73
+ runner: string;
74
+ model: string;
75
+ taskId: string;
76
+ }
77
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/types/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,qBAAqB,EACtB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;IACnD,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,WAAW,EAAE,aAAa,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,wIAAwI;IACxI,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,kFAAkF;IAClF,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/types/dispatch.ts"],"names":[],"mappings":""}