@sift-wiki/conductor 0.0.0 → 0.2.0-beta.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 (207) hide show
  1. package/README.md +105 -1
  2. package/THIRD_PARTY_NOTICES.md +38 -0
  3. package/dist/adapters/claudeAgent.d.ts +23 -0
  4. package/dist/adapters/claudeAgent.js +164 -0
  5. package/dist/adapters/claudeAgent.js.map +1 -0
  6. package/dist/adapters/claudeParser.d.ts +5 -0
  7. package/dist/adapters/claudeParser.js +120 -0
  8. package/dist/adapters/claudeParser.js.map +1 -0
  9. package/dist/adapters/codexAgent.d.ts +28 -0
  10. package/dist/adapters/codexAgent.js +152 -0
  11. package/dist/adapters/codexAgent.js.map +1 -0
  12. package/dist/adapters/codexParser.d.ts +5 -0
  13. package/dist/adapters/codexParser.js +106 -0
  14. package/dist/adapters/codexParser.js.map +1 -0
  15. package/dist/adapters/config.d.ts +29 -0
  16. package/dist/adapters/config.js +286 -0
  17. package/dist/adapters/config.js.map +1 -0
  18. package/dist/adapters/doctor.d.ts +12 -0
  19. package/dist/adapters/doctor.js +20 -0
  20. package/dist/adapters/doctor.js.map +1 -0
  21. package/dist/adapters/errors.d.ts +7 -0
  22. package/dist/adapters/errors.js +19 -0
  23. package/dist/adapters/errors.js.map +1 -0
  24. package/dist/adapters/fakeAgent.d.ts +11 -0
  25. package/dist/adapters/fakeAgent.js +149 -0
  26. package/dist/adapters/fakeAgent.js.map +1 -0
  27. package/dist/adapters/httpAgent.d.ts +19 -0
  28. package/dist/adapters/httpAgent.js +164 -0
  29. package/dist/adapters/httpAgent.js.map +1 -0
  30. package/dist/adapters/output.d.ts +16 -0
  31. package/dist/adapters/output.js +48 -0
  32. package/dist/adapters/output.js.map +1 -0
  33. package/dist/adapters/processAgent.d.ts +21 -0
  34. package/dist/adapters/processAgent.js +166 -0
  35. package/dist/adapters/processAgent.js.map +1 -0
  36. package/dist/adapters/provider/discovery.d.ts +31 -0
  37. package/dist/adapters/provider/discovery.js +102 -0
  38. package/dist/adapters/provider/discovery.js.map +1 -0
  39. package/dist/adapters/provider/json.d.ts +4 -0
  40. package/dist/adapters/provider/json.js +21 -0
  41. package/dist/adapters/provider/json.js.map +1 -0
  42. package/dist/adapters/provider/lineStream.d.ts +8 -0
  43. package/dist/adapters/provider/lineStream.js +28 -0
  44. package/dist/adapters/provider/lineStream.js.map +1 -0
  45. package/dist/adapters/provider/outputSchemaFile.d.ts +5 -0
  46. package/dist/adapters/provider/outputSchemaFile.js +16 -0
  47. package/dist/adapters/provider/outputSchemaFile.js.map +1 -0
  48. package/dist/adapters/provider/prompt.d.ts +2 -0
  49. package/dist/adapters/provider/prompt.js +52 -0
  50. package/dist/adapters/provider/prompt.js.map +1 -0
  51. package/dist/adapters/provider/result.d.ts +23 -0
  52. package/dist/adapters/provider/result.js +116 -0
  53. package/dist/adapters/provider/result.js.map +1 -0
  54. package/dist/adapters/provider/runProvider.d.ts +16 -0
  55. package/dist/adapters/provider/runProvider.js +110 -0
  56. package/dist/adapters/provider/runProvider.js.map +1 -0
  57. package/dist/adapters/provider/setup.d.ts +50 -0
  58. package/dist/adapters/provider/setup.js +180 -0
  59. package/dist/adapters/provider/setup.js.map +1 -0
  60. package/dist/adapters/provider/store.d.ts +19 -0
  61. package/dist/adapters/provider/store.js +92 -0
  62. package/dist/adapters/provider/store.js.map +1 -0
  63. package/dist/adapters/provider/types.d.ts +58 -0
  64. package/dist/adapters/provider/types.js +2 -0
  65. package/dist/adapters/provider/types.js.map +1 -0
  66. package/dist/adapters/provider/version.d.ts +2 -0
  67. package/dist/adapters/provider/version.js +25 -0
  68. package/dist/adapters/provider/version.js.map +1 -0
  69. package/dist/adapters/types.d.ts +40 -0
  70. package/dist/adapters/types.js +2 -0
  71. package/dist/adapters/types.js.map +1 -0
  72. package/dist/bridge/handler.d.ts +15 -0
  73. package/dist/bridge/handler.js +125 -0
  74. package/dist/bridge/handler.js.map +1 -0
  75. package/dist/bridge/localBridge.d.ts +49 -0
  76. package/dist/bridge/localBridge.js +157 -0
  77. package/dist/bridge/localBridge.js.map +1 -0
  78. package/dist/bridge/server.d.ts +11 -0
  79. package/dist/bridge/server.js +86 -0
  80. package/dist/bridge/server.js.map +1 -0
  81. package/dist/bridge/sessionRegistry.d.ts +23 -0
  82. package/dist/bridge/sessionRegistry.js +65 -0
  83. package/dist/bridge/sessionRegistry.js.map +1 -0
  84. package/dist/cli.d.ts +23 -0
  85. package/dist/cli.js +245 -0
  86. package/dist/cli.js.map +1 -0
  87. package/dist/conductorClient.d.ts +443 -0
  88. package/dist/conductorClient.js +281 -0
  89. package/dist/conductorClient.js.map +1 -0
  90. package/dist/config.d.ts +9 -0
  91. package/dist/config.js +54 -0
  92. package/dist/config.js.map +1 -0
  93. package/dist/daemon.d.ts +52 -0
  94. package/dist/daemon.js +324 -0
  95. package/dist/daemon.js.map +1 -0
  96. package/dist/desktop/adapterSetupView.d.ts +16 -0
  97. package/dist/desktop/adapterSetupView.js +13 -0
  98. package/dist/desktop/adapterSetupView.js.map +1 -0
  99. package/dist/desktop/app/contracts.d.ts +71 -0
  100. package/dist/desktop/app/contracts.js +19 -0
  101. package/dist/desktop/app/contracts.js.map +1 -0
  102. package/dist/desktop/app/controller.d.ts +58 -0
  103. package/dist/desktop/app/controller.js +161 -0
  104. package/dist/desktop/app/controller.js.map +1 -0
  105. package/dist/desktop/app/runtimeController.d.ts +22 -0
  106. package/dist/desktop/app/runtimeController.js +44 -0
  107. package/dist/desktop/app/runtimeController.js.map +1 -0
  108. package/dist/desktop/manifest.d.ts +17 -0
  109. package/dist/desktop/manifest.js +24 -0
  110. package/dist/desktop/manifest.js.map +1 -0
  111. package/dist/desktop/pairing.d.ts +13 -0
  112. package/dist/desktop/pairing.js +20 -0
  113. package/dist/desktop/pairing.js.map +1 -0
  114. package/dist/desktop/recovery.d.ts +33 -0
  115. package/dist/desktop/recovery.js +71 -0
  116. package/dist/desktop/recovery.js.map +1 -0
  117. package/dist/desktop/workBoardView.d.ts +41 -0
  118. package/dist/desktop/workBoardView.js +133 -0
  119. package/dist/desktop/workBoardView.js.map +1 -0
  120. package/dist/desktop/workGovernanceView.d.ts +70 -0
  121. package/dist/desktop/workGovernanceView.js +159 -0
  122. package/dist/desktop/workGovernanceView.js.map +1 -0
  123. package/dist/localApi/authorizedPairing.d.ts +12 -0
  124. package/dist/localApi/authorizedPairing.js +18 -0
  125. package/dist/localApi/authorizedPairing.js.map +1 -0
  126. package/dist/localApi/contracts.d.ts +253 -0
  127. package/dist/localApi/contracts.js +173 -0
  128. package/dist/localApi/contracts.js.map +1 -0
  129. package/dist/localApi/server.d.ts +20 -0
  130. package/dist/localApi/server.js +412 -0
  131. package/dist/localApi/server.js.map +1 -0
  132. package/dist/localApi/workConsole.d.ts +74 -0
  133. package/dist/localApi/workConsole.js +342 -0
  134. package/dist/localApi/workConsole.js.map +1 -0
  135. package/dist/localApi/workContracts.d.ts +213 -0
  136. package/dist/localApi/workContracts.js +130 -0
  137. package/dist/localApi/workContracts.js.map +1 -0
  138. package/dist/localApp/platform.d.ts +2 -0
  139. package/dist/localApp/platform.js +57 -0
  140. package/dist/localApp/platform.js.map +1 -0
  141. package/dist/localApp/service.d.ts +25 -0
  142. package/dist/localApp/service.js +114 -0
  143. package/dist/localApp/service.js.map +1 -0
  144. package/dist/pairing.d.ts +27 -0
  145. package/dist/pairing.js +45 -0
  146. package/dist/pairing.js.map +1 -0
  147. package/dist/redaction.d.ts +2 -0
  148. package/dist/redaction.js +34 -0
  149. package/dist/redaction.js.map +1 -0
  150. package/dist/release/validateDistribution.d.ts +51 -0
  151. package/dist/release/validateDistribution.js +54 -0
  152. package/dist/release/validateDistribution.js.map +1 -0
  153. package/dist/runtime/localLogSpool.d.ts +47 -0
  154. package/dist/runtime/localLogSpool.js +105 -0
  155. package/dist/runtime/localLogSpool.js.map +1 -0
  156. package/dist/runtime/localRunQueue.d.ts +31 -0
  157. package/dist/runtime/localRunQueue.js +76 -0
  158. package/dist/runtime/localRunQueue.js.map +1 -0
  159. package/dist/runtime/localSessionCache.d.ts +26 -0
  160. package/dist/runtime/localSessionCache.js +35 -0
  161. package/dist/runtime/localSessionCache.js.map +1 -0
  162. package/dist/runtime/process.d.ts +27 -0
  163. package/dist/runtime/process.js +128 -0
  164. package/dist/runtime/process.js.map +1 -0
  165. package/dist/runtime/runEnvironment.d.ts +12 -0
  166. package/dist/runtime/runEnvironment.js +59 -0
  167. package/dist/runtime/runEnvironment.js.map +1 -0
  168. package/dist/runtime/runEventRetryBuffer.d.ts +42 -0
  169. package/dist/runtime/runEventRetryBuffer.js +118 -0
  170. package/dist/runtime/runEventRetryBuffer.js.map +1 -0
  171. package/dist/runtime/runtimeService.d.ts +27 -0
  172. package/dist/runtime/runtimeService.js +112 -0
  173. package/dist/runtime/runtimeService.js.map +1 -0
  174. package/dist/runtime/sleep.d.ts +2 -0
  175. package/dist/runtime/sleep.js +21 -0
  176. package/dist/runtime/sleep.js.map +1 -0
  177. package/dist/runtime/taskExecution.d.ts +16 -0
  178. package/dist/runtime/taskExecution.js +74 -0
  179. package/dist/runtime/taskExecution.js.map +1 -0
  180. package/dist/runtime/wakeEnvelope.d.ts +76 -0
  181. package/dist/runtime/wakeEnvelope.js +60 -0
  182. package/dist/runtime/wakeEnvelope.js.map +1 -0
  183. package/dist/types.d.ts +121 -0
  184. package/dist/types.js +2 -0
  185. package/dist/types.js.map +1 -0
  186. package/dist/userAuth/service.d.ts +26 -0
  187. package/dist/userAuth/service.js +170 -0
  188. package/dist/userAuth/service.js.map +1 -0
  189. package/dist/userAuth/store.d.ts +42 -0
  190. package/dist/userAuth/store.js +160 -0
  191. package/dist/userAuth/store.js.map +1 -0
  192. package/dist/userAuth/types.d.ts +63 -0
  193. package/dist/userAuth/types.js +29 -0
  194. package/dist/userAuth/types.js.map +1 -0
  195. package/dist/version.d.ts +2 -0
  196. package/dist/version.js +3 -0
  197. package/dist/version.js.map +1 -0
  198. package/dist/workTypes.d.ts +313 -0
  199. package/dist/workTypes.js +106 -0
  200. package/dist/workTypes.js.map +1 -0
  201. package/dist-web/assets/index-CWfnzdLn.css +1 -0
  202. package/dist-web/assets/index-D5X9InfE.js +72 -0
  203. package/dist-web/index.html +15 -0
  204. package/docs/provider-setup.md +81 -0
  205. package/docs/quickstart.md +62 -0
  206. package/docs/troubleshooting.md +63 -0
  207. package/package.json +75 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/userAuth/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;CAChB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;CAC5C,CAAC,CAAC,MAAM,EAAE,CAAC;AAiCZ,MAAM,CAAC,MAAM,6BAA6B,GAAuC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;IAC7G,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5K,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACtN,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CACrW,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const CONDUCTOR_VERSION = "0.2.0-beta.1";
2
+ export declare const PROTOCOL_VERSION = "v1";
@@ -0,0 +1,3 @@
1
+ export const CONDUCTOR_VERSION = "0.2.0-beta.1";
2
+ export const PROTOCOL_VERSION = "v1";
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,313 @@
1
+ import { z } from "zod";
2
+ export declare const workTaskStatusSchema: z.ZodEnum<{
3
+ backlog: "backlog";
4
+ todo: "todo";
5
+ in_progress: "in_progress";
6
+ in_review: "in_review";
7
+ blocked: "blocked";
8
+ done: "done";
9
+ cancelled: "cancelled";
10
+ }>;
11
+ export declare const workTaskSchema: z.ZodObject<{
12
+ id: z.ZodString;
13
+ workspaceId: z.ZodString;
14
+ brainId: z.ZodString;
15
+ projectId: z.ZodOptional<z.ZodString>;
16
+ parentTaskId: z.ZodOptional<z.ZodString>;
17
+ title: z.ZodString;
18
+ bodyMarkdown: z.ZodString;
19
+ versionNumber: z.ZodNumber;
20
+ status: z.ZodEnum<{
21
+ backlog: "backlog";
22
+ todo: "todo";
23
+ in_progress: "in_progress";
24
+ in_review: "in_review";
25
+ blocked: "blocked";
26
+ done: "done";
27
+ cancelled: "cancelled";
28
+ }>;
29
+ priority: z.ZodEnum<{
30
+ critical: "critical";
31
+ high: "high";
32
+ medium: "medium";
33
+ low: "low";
34
+ }>;
35
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
36
+ checkoutRunId: z.ZodOptional<z.ZodString>;
37
+ contextRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
38
+ createdAt: z.ZodString;
39
+ updatedAt: z.ZodString;
40
+ }, z.core.$loose>;
41
+ export declare const workTaskCommentSchema: z.ZodObject<{
42
+ id: z.ZodString;
43
+ taskId: z.ZodString;
44
+ authorPrincipalId: z.ZodString;
45
+ runId: z.ZodOptional<z.ZodString>;
46
+ bodyMarkdown: z.ZodString;
47
+ createdAt: z.ZodString;
48
+ }, z.core.$loose>;
49
+ export declare const workArtifactSchema: z.ZodObject<{
50
+ id: z.ZodString;
51
+ taskId: z.ZodString;
52
+ runId: z.ZodOptional<z.ZodString>;
53
+ type: z.ZodString;
54
+ provider: z.ZodString;
55
+ title: z.ZodString;
56
+ url: z.ZodOptional<z.ZodString>;
57
+ brainRecordId: z.ZodOptional<z.ZodString>;
58
+ status: z.ZodEnum<{
59
+ pending: "pending";
60
+ ready: "ready";
61
+ failed: "failed";
62
+ superseded: "superseded";
63
+ }>;
64
+ reviewState: z.ZodEnum<{
65
+ pending: "pending";
66
+ none: "none";
67
+ approved: "approved";
68
+ rejected: "rejected";
69
+ revision_requested: "revision_requested";
70
+ }>;
71
+ summary: z.ZodOptional<z.ZodString>;
72
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
73
+ }, z.core.$loose>;
74
+ export declare const workApprovalSchema: z.ZodObject<{
75
+ id: z.ZodString;
76
+ taskId: z.ZodString;
77
+ type: z.ZodString;
78
+ status: z.ZodEnum<{
79
+ pending: "pending";
80
+ approved: "approved";
81
+ rejected: "rejected";
82
+ revision_requested: "revision_requested";
83
+ }>;
84
+ payload: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
85
+ decisionNote: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$loose>;
87
+ export declare const workUsageDecisionSchema: z.ZodObject<{
88
+ usageEvent: z.ZodObject<{
89
+ id: z.ZodString;
90
+ runId: z.ZodString;
91
+ taskId: z.ZodString;
92
+ eventKey: z.ZodString;
93
+ costMicros: z.ZodNumber;
94
+ durationMs: z.ZodNumber;
95
+ }, z.core.$loose>;
96
+ effectiveLimits: z.ZodObject<{
97
+ maxRunMinutes: z.ZodOptional<z.ZodNumber>;
98
+ remainingCostMicros: z.ZodOptional<z.ZodNumber>;
99
+ hardStop: z.ZodBoolean;
100
+ }, z.core.$strip>;
101
+ hardStop: z.ZodBoolean;
102
+ }, z.core.$strip>;
103
+ export declare const workProjectSchema: z.ZodObject<{
104
+ id: z.ZodString;
105
+ name: z.ZodString;
106
+ description: z.ZodOptional<z.ZodString>;
107
+ status: z.ZodEnum<{
108
+ cancelled: "cancelled";
109
+ planned: "planned";
110
+ active: "active";
111
+ completed: "completed";
112
+ }>;
113
+ leadPrincipalId: z.ZodOptional<z.ZodString>;
114
+ contextRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
115
+ members: z.ZodDefault<z.ZodArray<z.ZodObject<{
116
+ principalId: z.ZodString;
117
+ role: z.ZodEnum<{
118
+ lead: "lead";
119
+ member: "member";
120
+ reviewer: "reviewer";
121
+ }>;
122
+ }, z.core.$loose>>>;
123
+ updatedAt: z.ZodString;
124
+ }, z.core.$loose>;
125
+ export declare const workActivitySchema: z.ZodObject<{
126
+ id: z.ZodString;
127
+ action: z.ZodString;
128
+ entityType: z.ZodString;
129
+ entityId: z.ZodString;
130
+ taskId: z.ZodOptional<z.ZodString>;
131
+ runId: z.ZodOptional<z.ZodString>;
132
+ occurredAt: z.ZodString;
133
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
134
+ }, z.core.$loose>;
135
+ export declare const workTaskDetailSchema: z.ZodObject<{
136
+ task: z.ZodObject<{
137
+ id: z.ZodString;
138
+ workspaceId: z.ZodString;
139
+ brainId: z.ZodString;
140
+ projectId: z.ZodOptional<z.ZodString>;
141
+ parentTaskId: z.ZodOptional<z.ZodString>;
142
+ title: z.ZodString;
143
+ bodyMarkdown: z.ZodString;
144
+ versionNumber: z.ZodNumber;
145
+ status: z.ZodEnum<{
146
+ backlog: "backlog";
147
+ todo: "todo";
148
+ in_progress: "in_progress";
149
+ in_review: "in_review";
150
+ blocked: "blocked";
151
+ done: "done";
152
+ cancelled: "cancelled";
153
+ }>;
154
+ priority: z.ZodEnum<{
155
+ critical: "critical";
156
+ high: "high";
157
+ medium: "medium";
158
+ low: "low";
159
+ }>;
160
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
161
+ checkoutRunId: z.ZodOptional<z.ZodString>;
162
+ contextRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
163
+ createdAt: z.ZodString;
164
+ updatedAt: z.ZodString;
165
+ }, z.core.$loose>;
166
+ comments: z.ZodDefault<z.ZodArray<z.ZodObject<{
167
+ id: z.ZodString;
168
+ taskId: z.ZodString;
169
+ authorPrincipalId: z.ZodString;
170
+ runId: z.ZodOptional<z.ZodString>;
171
+ bodyMarkdown: z.ZodString;
172
+ createdAt: z.ZodString;
173
+ }, z.core.$loose>>>;
174
+ artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
175
+ id: z.ZodString;
176
+ taskId: z.ZodString;
177
+ runId: z.ZodOptional<z.ZodString>;
178
+ type: z.ZodString;
179
+ provider: z.ZodString;
180
+ title: z.ZodString;
181
+ url: z.ZodOptional<z.ZodString>;
182
+ brainRecordId: z.ZodOptional<z.ZodString>;
183
+ status: z.ZodEnum<{
184
+ pending: "pending";
185
+ ready: "ready";
186
+ failed: "failed";
187
+ superseded: "superseded";
188
+ }>;
189
+ reviewState: z.ZodEnum<{
190
+ pending: "pending";
191
+ none: "none";
192
+ approved: "approved";
193
+ rejected: "rejected";
194
+ revision_requested: "revision_requested";
195
+ }>;
196
+ summary: z.ZodOptional<z.ZodString>;
197
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
198
+ }, z.core.$loose>>>;
199
+ approvals: z.ZodDefault<z.ZodArray<z.ZodObject<{
200
+ id: z.ZodString;
201
+ taskId: z.ZodString;
202
+ type: z.ZodString;
203
+ status: z.ZodEnum<{
204
+ pending: "pending";
205
+ approved: "approved";
206
+ rejected: "rejected";
207
+ revision_requested: "revision_requested";
208
+ }>;
209
+ payload: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
210
+ decisionNote: z.ZodOptional<z.ZodString>;
211
+ }, z.core.$loose>>>;
212
+ blockers: z.ZodDefault<z.ZodArray<z.ZodObject<{
213
+ id: z.ZodString;
214
+ workspaceId: z.ZodString;
215
+ brainId: z.ZodString;
216
+ projectId: z.ZodOptional<z.ZodString>;
217
+ parentTaskId: z.ZodOptional<z.ZodString>;
218
+ title: z.ZodString;
219
+ bodyMarkdown: z.ZodString;
220
+ versionNumber: z.ZodNumber;
221
+ status: z.ZodEnum<{
222
+ backlog: "backlog";
223
+ todo: "todo";
224
+ in_progress: "in_progress";
225
+ in_review: "in_review";
226
+ blocked: "blocked";
227
+ done: "done";
228
+ cancelled: "cancelled";
229
+ }>;
230
+ priority: z.ZodEnum<{
231
+ critical: "critical";
232
+ high: "high";
233
+ medium: "medium";
234
+ low: "low";
235
+ }>;
236
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
237
+ checkoutRunId: z.ZodOptional<z.ZodString>;
238
+ contextRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
239
+ createdAt: z.ZodString;
240
+ updatedAt: z.ZodString;
241
+ }, z.core.$loose>>>;
242
+ projectContextRefs: z.ZodDefault<z.ZodArray<z.ZodString>>;
243
+ }, z.core.$loose>;
244
+ export type WorkTask = z.infer<typeof workTaskSchema>;
245
+ export type WorkTaskStatus = z.infer<typeof workTaskStatusSchema>;
246
+ export type WorkTaskComment = z.infer<typeof workTaskCommentSchema>;
247
+ export type WorkArtifact = z.infer<typeof workArtifactSchema>;
248
+ export type WorkApproval = z.infer<typeof workApprovalSchema>;
249
+ export type WorkUsageDecision = z.infer<typeof workUsageDecisionSchema>;
250
+ export type WorkDisposition = "done" | "in_review" | "blocked" | "cancelled";
251
+ export type WorkDispositionResponse = {
252
+ task: WorkTask;
253
+ job: Record<string, unknown>;
254
+ wake: Record<string, unknown>;
255
+ };
256
+ export type WorkChildTaskInput = {
257
+ title: string;
258
+ bodyMarkdown?: string | undefined;
259
+ priority?: "critical" | "high" | "medium" | "low" | undefined;
260
+ assigneePrincipalId: string;
261
+ contextRefs?: string[] | undefined;
262
+ };
263
+ export type WorkArtifactInput = {
264
+ type: string;
265
+ provider: string;
266
+ title: string;
267
+ url?: string | undefined;
268
+ brainRecordId?: string | undefined;
269
+ summary?: string | undefined;
270
+ metadata?: Record<string, unknown> | undefined;
271
+ idempotencyKey?: string | undefined;
272
+ };
273
+ export type WorkProject = z.infer<typeof workProjectSchema>;
274
+ export type WorkRoutine = {
275
+ id: string;
276
+ projectId?: string | undefined;
277
+ title: string;
278
+ assigneePrincipalId: string;
279
+ conductorAgentId: string;
280
+ intervalMinutes: number;
281
+ nextRunAt: string;
282
+ status: "active" | "paused" | "archived";
283
+ concurrencyPolicy: "coalesce_if_active" | "skip_if_active" | "always_enqueue";
284
+ };
285
+ export type WorkPolicy = {
286
+ id: string;
287
+ scopeType: "agent" | "project" | "task";
288
+ scopeId: string;
289
+ limitAmount: number;
290
+ maxRunMinutes?: number | undefined;
291
+ hardStopEnabled: boolean;
292
+ isActive: boolean;
293
+ };
294
+ export type WorkActivity = z.infer<typeof workActivitySchema>;
295
+ export type WorkTaskDetail = z.infer<typeof workTaskDetailSchema>;
296
+ export type CreateWorkTaskRequest = {
297
+ projectId?: string | undefined;
298
+ parentTaskId?: string | undefined;
299
+ title: string;
300
+ bodyMarkdown?: string | undefined;
301
+ status?: WorkTaskStatus | undefined;
302
+ priority?: WorkTask["priority"] | undefined;
303
+ assigneePrincipalId?: string | undefined;
304
+ contextRefs?: string[] | undefined;
305
+ };
306
+ export type UpdateWorkTaskRequest = {
307
+ taskId: string;
308
+ title?: string | undefined;
309
+ bodyMarkdown?: string | undefined;
310
+ status?: WorkTaskStatus | undefined;
311
+ priority?: WorkTask["priority"] | undefined;
312
+ assigneePrincipalId?: string | undefined;
313
+ };
@@ -0,0 +1,106 @@
1
+ import { z } from "zod";
2
+ const jsonObjectSchema = z.record(z.string(), z.unknown());
3
+ export const workTaskStatusSchema = z.enum([
4
+ "backlog",
5
+ "todo",
6
+ "in_progress",
7
+ "in_review",
8
+ "blocked",
9
+ "done",
10
+ "cancelled",
11
+ ]);
12
+ export const workTaskSchema = z.looseObject({
13
+ id: z.string(),
14
+ workspaceId: z.string(),
15
+ brainId: z.string(),
16
+ projectId: z.string().optional(),
17
+ parentTaskId: z.string().optional(),
18
+ title: z.string(),
19
+ bodyMarkdown: z.string(),
20
+ versionNumber: z.number(),
21
+ status: workTaskStatusSchema,
22
+ priority: z.enum(["critical", "high", "medium", "low"]),
23
+ assigneePrincipalId: z.string().optional(),
24
+ checkoutRunId: z.string().optional(),
25
+ contextRefs: z.array(z.string()).default([]),
26
+ createdAt: z.string(),
27
+ updatedAt: z.string(),
28
+ });
29
+ export const workTaskCommentSchema = z.looseObject({
30
+ id: z.string(),
31
+ taskId: z.string(),
32
+ authorPrincipalId: z.string(),
33
+ runId: z.string().optional(),
34
+ bodyMarkdown: z.string(),
35
+ createdAt: z.string(),
36
+ });
37
+ export const workArtifactSchema = z.looseObject({
38
+ id: z.string(),
39
+ taskId: z.string(),
40
+ runId: z.string().optional(),
41
+ type: z.string(),
42
+ provider: z.string(),
43
+ title: z.string(),
44
+ url: z.string().optional(),
45
+ brainRecordId: z.string().optional(),
46
+ status: z.enum(["pending", "ready", "failed", "superseded"]),
47
+ reviewState: z.enum(["none", "pending", "approved", "rejected", "revision_requested"]),
48
+ summary: z.string().optional(),
49
+ metadata: jsonObjectSchema.default({}),
50
+ });
51
+ export const workApprovalSchema = z.looseObject({
52
+ id: z.string(),
53
+ taskId: z.string(),
54
+ type: z.string(),
55
+ status: z.enum(["pending", "approved", "rejected", "revision_requested"]),
56
+ payload: jsonObjectSchema.default({}),
57
+ decisionNote: z.string().optional(),
58
+ });
59
+ export const workUsageDecisionSchema = z.object({
60
+ usageEvent: z.looseObject({
61
+ id: z.string(),
62
+ runId: z.string(),
63
+ taskId: z.string(),
64
+ eventKey: z.string(),
65
+ costMicros: z.number(),
66
+ durationMs: z.number(),
67
+ }),
68
+ effectiveLimits: z.object({
69
+ maxRunMinutes: z.number().optional(),
70
+ remainingCostMicros: z.number().optional(),
71
+ hardStop: z.boolean(),
72
+ }),
73
+ hardStop: z.boolean(),
74
+ });
75
+ export const workProjectSchema = z.looseObject({
76
+ id: z.string(),
77
+ name: z.string(),
78
+ description: z.string().optional(),
79
+ status: z.enum(["planned", "active", "completed", "cancelled"]),
80
+ leadPrincipalId: z.string().optional(),
81
+ contextRefs: z.array(z.string()).default([]),
82
+ members: z.array(z.looseObject({
83
+ principalId: z.string(),
84
+ role: z.enum(["lead", "member", "reviewer"]),
85
+ })).default([]),
86
+ updatedAt: z.string(),
87
+ });
88
+ export const workActivitySchema = z.looseObject({
89
+ id: z.string(),
90
+ action: z.string(),
91
+ entityType: z.string(),
92
+ entityId: z.string(),
93
+ taskId: z.string().optional(),
94
+ runId: z.string().optional(),
95
+ occurredAt: z.string(),
96
+ metadata: jsonObjectSchema.default({}),
97
+ });
98
+ export const workTaskDetailSchema = z.object({
99
+ task: workTaskSchema,
100
+ comments: z.array(workTaskCommentSchema).default([]),
101
+ artifacts: z.array(workArtifactSchema).default([]),
102
+ approvals: z.array(workApprovalSchema).default([]),
103
+ blockers: z.array(workTaskSchema).default([]),
104
+ projectContextRefs: z.array(z.string()).default([]),
105
+ }).loose();
106
+ //# sourceMappingURL=workTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workTypes.js","sourceRoot":"","sources":["../src/workTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ :root{color:#191a1c;font-synthesis:none;text-rendering:optimizelegibility;letter-spacing:0;--surface:#fff;--background:#f7f7f5;--muted:#6f7378;--border:#dedfdb;--border-strong:#c9cbc6;--ink:#191a1c;--accent:#2958d3;--accent-hover:#2149b1;--green:#25805c;--amber:#a86b18;--red:#b4433d;--sidebar:#202225;background:#f7f7f5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}h1,h2,h3,p{margin:0}.app-shell{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#e8e9e7;background:var(--sidebar);flex-direction:column;height:100vh;padding:18px 12px 14px;display:flex;position:sticky;top:0}.sidebar-brand{width:100%;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0 9px 20px;font-size:14px;display:flex}.sidebar-brand>span{color:#fff;border:1px solid #4b4e52;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.sidebar nav{gap:3px;display:grid}.nav-item{color:#b7babd;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;font-size:13px;display:flex}.nav-item:hover{color:#fff;background:#2b2e32}.nav-item.active{color:#fff;background:#34373b}.sidebar-bottom{gap:3px;margin-top:auto;display:grid}.machine-row{border-top:1px solid #393b3e;align-items:center;gap:9px;min-width:0;margin-top:10px;padding:11px 10px 2px;display:flex}.machine-row>span:last-child{min-width:0;display:grid}.machine-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.machine-row small{color:#8f9397;margin-top:2px;font-size:11px}.machine-dot{background:#6f7378;border-radius:50%;flex:none;width:7px;height:7px}.machine-dot.online{background:#47b483;box-shadow:0 0 0 3px #47b4831f}.main-content{min-width:0;padding:34px clamp(28px,5vw,68px)}.content-header{justify-content:space-between;align-items:flex-start;gap:24px;max-width:1080px;margin:0 auto;display:flex}.content-header h1{font-size:25px;font-weight:650;line-height:1.2}.content-header p{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.5}.header-actions{align-items:center;gap:8px;display:flex}.primary-button,.secondary-button,.text-button{border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:0 13px;font-size:12px;font-weight:600;display:inline-flex}.primary-button{border:1px solid var(--accent);color:#fff;background:var(--accent)}.primary-button:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}.secondary-button{border:1px solid var(--border-strong);color:#3f4246;background:#fff}.secondary-button:hover:not(:disabled){background:#f2f3f0}.text-button{min-height:28px;color:var(--accent);background:0 0;border:0;padding:0}.full-width{width:100%}.icon-button{color:#676b70;background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;width:30px;height:30px;padding:0;display:inline-grid}.icon-button:hover:not(:disabled){border-color:var(--border);color:var(--ink);background:#f2f3f0}.summary-strip{border:1px solid var(--border);background:var(--surface);border-radius:6px;max-width:1080px;margin:26px auto 16px;display:flex}.summary-strip>div{border-right:1px solid var(--border);align-items:center;gap:10px;min-width:135px;padding:13px 16px;display:flex}.summary-strip>div:last-child{border-right:0}.summary-strip>div>span:last-child{align-items:baseline;gap:6px;display:flex}.summary-strip strong{font-size:14px}.summary-strip small{color:var(--muted);font-size:11px}.summary-dot{border-radius:50%;width:7px;height:7px}.summary-dot.green{background:var(--green)}.summary-dot.amber{background:var(--amber)}.summary-dot.red{background:var(--red)}.agent-list{border:1px solid var(--border);background:var(--surface);border-radius:6px;max-width:1080px;margin:0 auto;overflow:visible}.agent-list-header,.agent-row{grid-template-columns:minmax(230px,1.6fr) minmax(120px,1fr) 100px 126px 104px;align-items:center;column-gap:16px;display:grid}.agent-list-header{border-bottom:1px solid var(--border);color:#85898e;text-transform:uppercase;background:#fafaf8;min-height:36px;padding:0 14px;font-size:10px;font-weight:650}.agent-row{border-bottom:1px solid #e8e9e5;min-height:68px;padding:8px 14px}.agent-row:last-child{border-bottom:0}.agent-row:hover{background:#fbfbf9}.agent-identity{align-items:center;gap:11px;min-width:0;display:flex}.agent-identity>span:last-child{min-width:0;display:grid}.agent-identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.agent-identity small{color:var(--muted);margin-top:3px;font-size:11px}.agent-avatar{border-radius:6px;flex:none;place-items:center;width:34px;height:34px;font-size:10px;font-weight:750;display:grid}.agent-avatar.codex{color:#1e5c43;background:#e0f1e9}.agent-avatar.claude{color:#7d4e15;background:#f4e8d7}.row-value{color:#4e5256;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.status{border-radius:4px;align-items:center;gap:6px;width:fit-content;min-height:24px;padding:0 8px;font-size:10.5px;font-weight:600;display:inline-flex}.status i{border-radius:50%;width:6px;height:6px}.status.ready{color:#1e684a;background:#e6f2ec}.status.ready i{background:#2a8a62}.status.paused{color:#6c7074;background:#edeeeb}.status.paused i{background:#85898d}.status.error{color:#963d37;background:#f7e8e6}.status.error i{background:#bd4e47}.row-actions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.action-menu{position:relative}.action-menu summary{color:#676b70;cursor:pointer;border-radius:5px;place-items:center;width:30px;height:30px;list-style:none;display:grid}.action-menu summary::-webkit-details-marker{display:none}.action-menu[open] summary{color:var(--ink);background:#f2f3f0}.action-menu>div{z-index:5;border:1px solid var(--border);background:#fff;border-radius:5px;width:150px;padding:4px;position:absolute;top:34px;right:0;box-shadow:0 8px 20px #2223251f}.action-menu button{color:#3f4246;background:#fff;border:0;border-radius:4px;align-items:center;gap:7px;width:100%;min-height:32px;padding:0 8px;font-size:11px;display:flex}.action-menu button:hover{background:#f3f4f1}.action-menu button.danger{color:var(--red)}.empty-state{border:1px solid var(--border);max-width:1080px;color:var(--muted);background:var(--surface);text-align:center;border-radius:6px;justify-items:center;margin:0 auto;padding:72px 24px;display:grid}.empty-state h3{color:var(--ink);margin-top:14px;font-size:14px}.empty-state p{max-width:340px;margin-top:6px;font-size:12px;line-height:1.5}.page-error,.inline-error{color:var(--red);font-size:12px;line-height:1.45}.page-error{background:#fff0ee;border:1px solid #e5b7b2;border-radius:5px;max-width:1080px;margin:0 auto 12px;padding:9px 11px}.modal-backdrop{z-index:20;background:#18191b6b;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.wizard{background:#fff;border:1px solid #cfd0cc;border-radius:7px;grid-template-rows:auto auto minmax(330px,1fr) auto;width:min(680px,100%);max-height:calc(100vh - 60px);display:grid;overflow:hidden;box-shadow:0 24px 70px #191a1c3b}.wizard-header{justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 22px 16px;display:flex}.wizard-header h2{font-size:18px;font-weight:650}.wizard-header p{color:var(--muted);margin-top:4px;font-size:12px}.step-rail{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fafaf8;grid-template-columns:repeat(3,1fr);display:grid}.step{border-right:1px solid var(--border);color:#83878b;justify-content:center;align-items:center;gap:7px;height:42px;font-size:11px;font-weight:600;display:flex}.step:last-child{border-right:0}.step span{border:1px solid #c9cbc6;border-radius:50%;place-items:center;width:18px;height:18px;font-size:9px;display:grid}.step.active{color:var(--accent);background:#f3f6ff}.step.active span{border-color:var(--accent);color:#fff;background:var(--accent)}.wizard-body{padding:26px 28px;overflow:auto}.wizard-section{gap:22px;display:grid}.wizard-section h3{font-size:15px;font-weight:650}.wizard-section>div:first-child>p{max-width:520px;color:var(--muted);margin-top:5px;font-size:12px;line-height:1.5}.provider-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.provider-option{border:1px solid var(--border);min-height:72px;color:var(--ink);text-align:left;background:#fff;border-radius:6px;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:12px;display:grid}.provider-option:hover{background:#fafbff;border-color:#aeb7ce}.provider-option.selected{background:#f6f8ff;border-color:#7e99df;box-shadow:inset 0 0 0 1px #7e99df}.provider-option>span:nth-child(2){display:grid}.provider-option strong{font-size:12px}.provider-option small{color:var(--muted);margin-top:3px;font-size:11px}.provider-option>svg{color:var(--accent)}.provider-icon{color:#3c465b;background:#eceef2;border-radius:6px;place-items:center;width:36px;height:36px;display:grid}.selection-row{border:1px solid var(--border);min-height:58px;color:var(--ink);text-align:left;background:#fff;border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.selection-row:hover{border-color:var(--border-strong);background:#fafaf8}.selection-row>span{display:grid}.selection-row strong{font-size:12px}.selection-row small{color:var(--muted);margin-top:3px;font-size:11px}.selection-row>svg:first-child{color:var(--accent)}.access-fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.access-fieldset legend{color:#4a4e52;margin-bottom:8px;font-size:11px;font-weight:650}.access-option{border:1px solid var(--border);cursor:pointer;border-radius:6px;grid-template-columns:16px 22px 1fr;align-items:start;gap:8px;padding:11px 12px;display:grid}.access-option.selected{background:#f7f9ff;border-color:#96a8d9}.access-option input{margin:3px 0 0}.access-option>svg{color:#69707b;margin-top:1px}.access-option>span{display:grid}.access-option strong{font-size:12px}.access-option small{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.4}.diagnostic{border:1px solid var(--border);border-radius:5px;gap:4px;padding:11px 12px;font-size:11px;display:grid}.diagnostic.error{color:#843934;background:#fff2f0;border-color:#e1b1ac}.field-label{color:#4a4e52;gap:7px;font-size:11px;font-weight:650;display:grid}.field-label input,.form-stack input{border:1px solid var(--border-strong);width:100%;height:38px;color:var(--ink);background:#fff;border-radius:5px;outline:none;padding:0 10px}.field-label input:focus,.form-stack input:focus{border-color:#7e99df;box-shadow:0 0 0 3px #4367c41a}.verification-summary{color:#225c44;background:#f0f8f4;border:1px solid #b8d7c8;border-radius:6px;align-items:center;gap:11px;padding:13px;display:flex}.verification-summary>span{display:grid}.verification-summary strong{font-size:12px}.verification-summary small{color:#4d7563;margin-top:3px;font-size:11px}.wizard-footer{border-top:1px solid var(--border);background:#fafaf8;justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;display:flex}.editor-dialog{background:#fff;border:1px solid #cfd0cc;border-radius:7px;width:min(520px,100%);overflow:hidden;box-shadow:0 24px 70px #191a1c3b}.editor-body{border-top:1px solid var(--border);gap:18px;padding:22px;display:grid}.quota-note{color:var(--muted);font-size:11px;line-height:1.45}.pairing-shell{background:#f3f4f1;place-items:center;min-height:100vh;padding:30px;display:grid}.pairing-panel{border:1px solid var(--border);background:#fff;border-radius:7px;width:min(430px,100%);padding:30px;box-shadow:0 16px 45px #20222517}.pairing-divider{color:var(--muted);text-transform:uppercase;align-items:center;gap:10px;margin:16px 0;font-size:10px;display:flex}.pairing-divider:before,.pairing-divider:after{content:"";background:var(--border);flex:1;height:1px}.brand-mark{color:#fff;background:#272a2e;border-radius:7px;place-items:center;width:38px;height:38px;margin-bottom:18px;display:grid}.pairing-panel h1{font-size:21px}.pairing-panel>p{color:var(--muted);margin-top:7px;font-size:12px;line-height:1.55}.form-stack{gap:14px;margin:24px 0 18px;display:grid}.form-stack label{color:#4a4e52;gap:6px;font-size:11px;font-weight:650;display:grid}.loading-screen{min-height:100vh;color:var(--muted);place-items:center;font-size:13px;display:grid}.page-loading{min-height:50vh;color:var(--muted);place-items:center;font-size:13px;display:grid}.danger-text{color:var(--red)}.state-notice{border-top:1px solid var(--border);border-bottom:1px solid var(--border);max-width:720px;color:var(--muted);text-align:center;justify-items:center;margin:48px auto 0;padding:54px 24px;display:grid}.state-notice svg{color:#777c83}.state-notice h2{color:var(--ink);margin-top:14px;font-size:16px}.state-notice p{max-width:460px;margin:7px 0 18px;font-size:12px;line-height:1.6}.work-header{max-width:1280px}.work-console{border:1px solid var(--border);background:var(--surface);border-radius:6px;grid-template-columns:minmax(290px,360px) minmax(0,1fr);max-width:1280px;min-height:650px;margin:24px auto 0;display:grid;overflow:hidden}.work-queue-pane{border-right:1px solid var(--border);background:#fafaf8;min-width:0}.work-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:12px;min-height:60px;padding:10px 12px;display:flex}.work-toolbar label{color:var(--muted);text-transform:uppercase;gap:4px;font-size:10px;font-weight:650;display:grid}.work-toolbar select{border:1px solid var(--border-strong);width:min(220px,100%);height:30px;color:var(--ink);background:#fff;border-radius:4px;padding:0 28px 0 8px;font-size:12px}.work-toolbar>span{color:var(--muted);white-space:nowrap;font-size:10px}.work-queue{max-height:calc(100vh - 180px);overflow:auto}.work-row{width:100%;min-height:74px;color:var(--ink);text-align:left;background:0 0;border:0;border-bottom:1px solid #e7e8e4;grid-template-columns:8px minmax(0,1fr) auto 15px;align-items:center;gap:9px;padding:10px 10px 10px 12px;display:grid}.work-row:hover{background:#f3f4f0}.work-row.selected{box-shadow:inset 3px 0 0 var(--accent);background:#eef2fb}.work-row>svg{color:#9a9ea2}.work-state-dot{background:#8a8f94;border-radius:50%;width:7px;height:7px}.work-state-dot.needs_review{background:#9b651d}.work-state-dot.blocked,.work-state-dot.needs_attention{background:var(--red)}.work-state-dot.running{background:var(--green);box-shadow:0 0 0 3px #25805c1f}.work-state-dot.finished{background:#7d8287}.work-row-copy{min-width:0;display:grid}.work-row-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.work-row-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:10.5px;overflow:hidden}.state-chip{color:#5e6267;white-space:nowrap;background:#e9eae7;border-radius:4px;align-items:center;min-height:22px;padding:0 7px;font-size:9.5px;font-weight:700;display:inline-flex}.state-chip.needs_review{color:#845317;background:#f4e9d7}.state-chip.blocked,.state-chip.needs_attention{color:#903c37;background:#f5e5e3}.state-chip.running{color:#1f684a;background:#e2f0e8}.state-chip.ready{color:#35518f;background:#e8edf8}.queue-empty{color:var(--muted);text-align:center;justify-items:center;padding:54px 18px;display:grid}.queue-empty strong{color:var(--ink);margin-top:10px;font-size:12px}.queue-empty span{max-width:220px;margin-top:5px;font-size:10.5px;line-height:1.5}.work-detail-pane{background:#fff;min-width:0}.mobile-work-back{display:none}.work-detail{min-width:0}.detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:18px;padding:24px 28px 20px;display:flex}.detail-header>div{justify-items:start;gap:10px;min-width:0;display:grid}.detail-header h2{overflow-wrap:anywhere;font-size:19px;font-weight:650}.detail-header small{color:var(--muted);font-size:10px}.detail-header>.detail-heading-actions{align-items:center;justify-items:initial;flex:none;gap:8px;display:flex}.priority-label{color:var(--muted);text-transform:capitalize;border-left:2px solid #9ca0a5;padding-left:7px;font-size:10px;font-weight:650}.priority-label.critical{border-color:var(--red);color:var(--red)}.priority-label.high{border-color:var(--amber)}.task-body{border-bottom:1px solid var(--border);color:#45494e;white-space:pre-wrap;overflow-wrap:anywhere;padding:20px 28px;font-size:12.5px;line-height:1.65}.run-panel{border-bottom:1px solid var(--border);background:#fbfcfa;padding:20px 28px}.run-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.run-heading>span{align-items:center;gap:8px;display:flex}.run-heading strong{font-size:12px}.run-heading small{color:var(--muted);font-size:10px}.pulse-dot{background:var(--green);border-radius:50%;width:7px;height:7px}.run-panel>p{color:#3f4448;margin-top:10px;font-size:13px;line-height:1.5}.progress-list{gap:9px;margin:16px 0 0;padding:0;list-style:none;display:grid}.progress-list li{grid-template-columns:8px 1fr;align-items:start;gap:9px;display:grid}.progress-list li>span{background:#fff;border:1px solid #8f969c;border-radius:50%;width:6px;height:6px;margin-top:4px}.progress-list li>div{display:grid}.progress-list strong{color:#565a5f;font-size:10.5px;font-weight:550}.progress-list small{color:#979b9f;margin-top:2px;font-size:9.5px}.trace{border-top:1px solid var(--border);margin-top:14px;padding-top:10px}.trace summary{color:#70757a;cursor:pointer;font-size:10.5px;font-weight:650}.trace p,.trace pre{color:#777c81;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.detail-band{border-bottom:1px solid var(--border);padding:20px 28px}.detail-band h3,.review-panel h3{color:#4e5358;text-transform:uppercase;margin-bottom:11px;font-size:10px;font-weight:750}.detail-band.warning{color:#7d3b36;background:#fff8f6}.detail-band.warning p{font-size:12px}.detail-band.warning span{color:var(--muted);margin-left:6px;font-size:10px}.artifact-list{gap:7px;display:grid}.artifact-row{border:1px solid var(--border);min-height:50px;color:var(--ink);border-radius:5px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 10px;text-decoration:none;display:grid}.artifact-row:hover{border-color:var(--border-strong);background:#fafaf8}.artifact-row>svg{color:#5f6d86}.artifact-row>span{display:grid}.artifact-row strong{font-size:11.5px}.artifact-row small{color:var(--muted);margin-top:3px;font-size:10px}.artifact-row em{color:var(--amber);text-transform:uppercase;font-size:9px;font-style:normal;font-weight:650}.review-panel{background:#fffaf1;border-bottom:1px solid #e2cda9;gap:12px;padding:20px 28px;display:grid}.review-panel h3{color:#765021;margin:0}.review-panel p{color:#8a6c45;margin-top:4px;font-size:11px}.review-panel textarea,.comment-composer textarea,.task-dialog textarea{resize:vertical;border:1px solid var(--border-strong);width:100%;min-height:72px;color:var(--ink);background:#fff;border-radius:5px;padding:9px 10px;font-size:12px;line-height:1.5}.review-actions,.detail-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.comment-list{gap:10px;display:grid}.comment-list>div{color:#666b70;grid-template-columns:18px 1fr;gap:8px;display:grid}.comment-list p{color:#454a4f;font-size:11.5px;line-height:1.5}.comment-list small{color:#969a9e;margin-top:3px;font-size:9.5px;display:block}.comment-composer{grid-template-columns:1fr auto;align-items:end;gap:8px;margin-top:14px;display:grid}.comment-composer textarea{min-height:58px}.detail-actions{min-height:62px;padding:12px 28px}.detail-actions select{border:1px solid var(--border-strong);background:#fff;border-radius:5px;min-width:170px;height:34px;padding:0 8px;font-size:11px}.task-dialog{border:1px solid var(--border-strong);background:#fff;border-radius:7px;gap:16px;width:min(520px,100%);padding:20px;display:grid;box-shadow:0 24px 70px #191a1c3b}.task-dialog header,.task-dialog footer{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.task-dialog header p{color:var(--muted);margin-top:4px;font-size:11px}.task-dialog label{color:#555a5f;gap:6px;font-size:11px;font-weight:650;display:grid}.task-dialog input,.task-dialog select{border:1px solid var(--border-strong);background:#fff;border-radius:5px;width:100%;height:36px;padding:0 9px}.task-dialog footer{justify-content:flex-end;padding-top:4px}.activity-filters{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;max-width:900px;margin:24px auto 0;padding:10px 12px;display:flex}.activity-filters>label:first-child{min-width:240px;color:var(--muted);flex:1;align-items:center;gap:8px;display:flex}.activity-filters input[type=text],.activity-filters input:not([type]){background:0 0;border:0;outline:0;width:100%;height:32px;font-size:12px}.check-label{color:#555a5f;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:flex}.activity-feed{max-width:900px;margin:0 auto}.activity-entry{border-bottom:1px solid var(--border);grid-template-columns:10px 1fr auto;align-items:center;gap:10px;min-height:60px;display:grid}.timeline-dot{background:#fff;border:1px solid #8b9095;border-radius:50%;width:7px;height:7px}.activity-entry>div{display:grid}.activity-entry strong{font-size:12px;font-weight:600}.activity-entry small{color:var(--muted);margin-top:4px;font-size:10px}.activity-entry button{color:var(--accent);background:0 0;border:0;font-size:10.5px}.empty-copy{color:var(--muted);text-align:center;padding:46px 0;font-size:12px}.settings-sections{max-width:900px;margin:24px auto 0}.settings-section{border-top:1px solid var(--border);grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);gap:28px;padding:24px 0;display:grid}.settings-section:last-child{border-bottom:1px solid var(--border)}.settings-section h2,.help-section h2{font-size:14px}.settings-section>div:first-child p,.help-section>div p{color:var(--muted);margin-top:5px;font-size:11px;line-height:1.5}.definition-rows{margin:0}.definition-rows>div{border-bottom:1px solid #ecece9;grid-template-columns:110px 1fr;gap:12px;min-height:34px;padding:8px 0;display:grid}.definition-rows dt{color:var(--muted);font-size:10px}.definition-rows dd{color:#44494e;overflow-wrap:anywhere;min-width:0;margin:0;font-size:11px}.settings-actions{grid-column:2;justify-content:flex-end;display:flex}.help-grid{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;max-width:1040px;margin:26px auto 0;display:grid}.help-section{border-right:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:14px;min-height:300px;padding:26px 22px;display:flex}.help-section:last-child{border-right:0}.help-section>svg{color:#606a77}.help-section>a{color:#3e4d6b;border-bottom:1px solid #ecece9;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:34px;font-size:11px;text-decoration:none;display:flex}.help-section>p{color:#555b60;font-size:11px;line-height:1.6}.help-section code{color:#3f4a5a;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.help-section>small{color:var(--muted);margin-top:auto;font-size:9.5px}@media (width<=960px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.main-content{padding-inline:24px}.agent-list-header,.agent-row{grid-template-columns:minmax(210px,1.5fr) minmax(100px,1fr) 110px 94px}.agent-list-header span:nth-child(3),.agent-row>.row-value:nth-child(3){display:none}.work-console{grid-template-columns:minmax(270px,320px) minmax(0,1fr)}.help-grid{grid-template-columns:1fr}.help-section{border-right:0;border-bottom:1px solid var(--border);min-height:auto}}@media (width<=720px){.app-shell{display:block}.sidebar{grid-template-columns:auto 1fr;gap:8px;width:100%;height:auto;padding:9px 10px;display:grid;position:static}.sidebar-brand{width:auto;padding:0}.sidebar-brand strong{display:none}.sidebar nav{justify-content:flex-end;display:flex;overflow-x:auto}.sidebar nav .nav-item{flex:none;width:auto}.sidebar-bottom{border-top:1px solid #393b3e;grid-column:1/-1;padding-top:6px;display:flex}.sidebar-bottom .nav-item{width:auto}.machine-row{display:none}.main-content{padding:24px 16px}.content-header{display:grid}.header-actions{flex-wrap:wrap}.summary-strip{overflow-x:auto}.agent-list-header{display:none}.agent-row{grid-template-columns:1fr auto;gap:8px;padding:13px}.agent-row>.row-value,.agent-row>.status{display:none}.modal-backdrop{padding:0}.wizard{border:0;border-radius:0;width:100%;height:100vh;max-height:none}.provider-options{grid-template-columns:1fr}.work-console{min-height:0;display:block}.work-queue-pane{border-right:0;border-bottom:1px solid var(--border)}.work-queue{max-height:360px}.work-console:not(.mobile-detail-open) .work-detail-pane,.work-console.mobile-detail-open .work-queue-pane{display:none}.mobile-work-back{border:0;border-bottom:1px solid var(--border);color:#4c5662;background:#f8f8f6;align-items:center;gap:7px;width:100%;min-height:42px;padding:0 18px;font-size:11px;font-weight:650;display:flex}.detail-header,.task-body,.run-panel,.detail-band,.review-panel,.detail-actions{padding-inline:18px}.comment-composer{grid-template-columns:1fr}.settings-section{grid-template-columns:1fr;gap:14px}.settings-actions{grid-column:1}.activity-filters{flex-direction:column;align-items:stretch}.task-dialog{border:0;border-radius:0;align-content:start;width:100%;height:100vh}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}