@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,213 @@
1
+ import { z } from "zod";
2
+ export declare const workQueueStateSchema: z.ZodEnum<{
3
+ blocked: "blocked";
4
+ ready: "ready";
5
+ running: "running";
6
+ needs_review: "needs_review";
7
+ finished: "finished";
8
+ needs_attention: "needs_attention";
9
+ }>;
10
+ export declare const workConsoleSnapshotSchema: z.ZodObject<{
11
+ state: z.ZodEnum<{
12
+ ready: "ready";
13
+ unauthorized: "unauthorized";
14
+ offline: "offline";
15
+ }>;
16
+ message: z.ZodOptional<z.ZodString>;
17
+ refreshedAt: z.ZodString;
18
+ selectedProjectId: z.ZodOptional<z.ZodString>;
19
+ selectedTaskId: z.ZodOptional<z.ZodString>;
20
+ projects: z.ZodArray<z.ZodObject<{
21
+ id: z.ZodString;
22
+ name: z.ZodString;
23
+ description: z.ZodOptional<z.ZodString>;
24
+ stateLabel: z.ZodString;
25
+ }, z.core.$strict>>;
26
+ agents: z.ZodArray<z.ZodObject<{
27
+ conductorAgentId: z.ZodString;
28
+ agentPrincipalId: z.ZodString;
29
+ localKey: z.ZodString;
30
+ displayName: z.ZodString;
31
+ adapterType: z.ZodString;
32
+ stateLabel: z.ZodString;
33
+ available: z.ZodBoolean;
34
+ }, z.core.$strict>>;
35
+ queue: z.ZodArray<z.ZodObject<{
36
+ id: z.ZodString;
37
+ projectId: z.ZodOptional<z.ZodString>;
38
+ title: z.ZodString;
39
+ state: z.ZodEnum<{
40
+ blocked: "blocked";
41
+ ready: "ready";
42
+ running: "running";
43
+ needs_review: "needs_review";
44
+ finished: "finished";
45
+ needs_attention: "needs_attention";
46
+ }>;
47
+ stateLabel: z.ZodString;
48
+ priority: z.ZodEnum<{
49
+ critical: "critical";
50
+ high: "high";
51
+ medium: "medium";
52
+ low: "low";
53
+ }>;
54
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
55
+ runId: z.ZodOptional<z.ZodString>;
56
+ progressSummary: z.ZodOptional<z.ZodString>;
57
+ updatedAt: z.ZodString;
58
+ }, z.core.$strict>>;
59
+ detail: z.ZodOptional<z.ZodObject<{
60
+ id: z.ZodString;
61
+ title: z.ZodString;
62
+ bodyMarkdown: z.ZodString;
63
+ status: z.ZodEnum<{
64
+ backlog: "backlog";
65
+ todo: "todo";
66
+ in_progress: "in_progress";
67
+ in_review: "in_review";
68
+ blocked: "blocked";
69
+ done: "done";
70
+ cancelled: "cancelled";
71
+ }>;
72
+ stateLabel: z.ZodString;
73
+ priority: z.ZodEnum<{
74
+ critical: "critical";
75
+ high: "high";
76
+ medium: "medium";
77
+ low: "low";
78
+ }>;
79
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
80
+ updatedAt: z.ZodString;
81
+ run: z.ZodOptional<z.ZodObject<{
82
+ id: z.ZodString;
83
+ stateLabel: z.ZodString;
84
+ progressSummary: z.ZodString;
85
+ updatedAt: z.ZodString;
86
+ localStateLabel: z.ZodOptional<z.ZodString>;
87
+ events: z.ZodArray<z.ZodObject<{
88
+ id: z.ZodString;
89
+ type: z.ZodString;
90
+ summary: z.ZodString;
91
+ occurredAt: z.ZodString;
92
+ }, z.core.$strict>>;
93
+ trace: z.ZodArray<z.ZodObject<{
94
+ id: z.ZodString;
95
+ stream: z.ZodEnum<{
96
+ system: "system";
97
+ stdout: "stdout";
98
+ stderr: "stderr";
99
+ }>;
100
+ message: z.ZodString;
101
+ occurredAt: z.ZodString;
102
+ truncated: z.ZodBoolean;
103
+ }, z.core.$strict>>;
104
+ }, z.core.$strict>>;
105
+ comments: z.ZodArray<z.ZodObject<{
106
+ id: z.ZodString;
107
+ bodyMarkdown: z.ZodString;
108
+ authorPrincipalId: z.ZodString;
109
+ createdAt: z.ZodString;
110
+ }, z.core.$strict>>;
111
+ artifacts: z.ZodArray<z.ZodObject<{
112
+ id: z.ZodString;
113
+ title: z.ZodString;
114
+ summary: z.ZodOptional<z.ZodString>;
115
+ stateLabel: z.ZodString;
116
+ openTarget: z.ZodOptional<z.ZodString>;
117
+ intermediate: z.ZodBoolean;
118
+ }, z.core.$strict>>;
119
+ approvals: z.ZodArray<z.ZodObject<{
120
+ id: z.ZodString;
121
+ typeLabel: z.ZodString;
122
+ state: z.ZodEnum<{
123
+ pending: "pending";
124
+ approved: "approved";
125
+ rejected: "rejected";
126
+ revision_requested: "revision_requested";
127
+ }>;
128
+ stateLabel: z.ZodString;
129
+ decisionNote: z.ZodOptional<z.ZodString>;
130
+ }, z.core.$strict>>;
131
+ blockers: z.ZodArray<z.ZodObject<{
132
+ id: z.ZodString;
133
+ title: z.ZodString;
134
+ stateLabel: z.ZodString;
135
+ }, z.core.$strict>>;
136
+ actions: z.ZodObject<{
137
+ canEdit: z.ZodBoolean;
138
+ canDispatch: z.ZodBoolean;
139
+ canComment: z.ZodBoolean;
140
+ canCancel: z.ZodBoolean;
141
+ canReview: z.ZodBoolean;
142
+ canRetry: z.ZodBoolean;
143
+ }, z.core.$strict>;
144
+ }, z.core.$strict>>;
145
+ activity: z.ZodArray<z.ZodObject<{
146
+ id: z.ZodString;
147
+ summary: z.ZodString;
148
+ occurredAt: z.ZodString;
149
+ taskId: z.ZodOptional<z.ZodString>;
150
+ runId: z.ZodOptional<z.ZodString>;
151
+ correlationId: z.ZodOptional<z.ZodString>;
152
+ }, z.core.$strict>>;
153
+ }, z.core.$strict>;
154
+ export type WorkConsoleSnapshot = z.infer<typeof workConsoleSnapshotSchema>;
155
+ export declare const workSnapshotRequestSchema: z.ZodObject<{
156
+ projectId: z.ZodOptional<z.ZodString>;
157
+ taskId: z.ZodOptional<z.ZodString>;
158
+ }, z.core.$strict>;
159
+ export declare const createTaskRequestSchema: z.ZodObject<{
160
+ projectId: z.ZodOptional<z.ZodString>;
161
+ title: z.ZodString;
162
+ bodyMarkdown: z.ZodOptional<z.ZodString>;
163
+ priority: z.ZodOptional<z.ZodEnum<{
164
+ critical: "critical";
165
+ high: "high";
166
+ medium: "medium";
167
+ low: "low";
168
+ }>>;
169
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
170
+ }, z.core.$strict>;
171
+ export declare const updateTaskRequestSchema: z.ZodObject<{
172
+ taskId: z.ZodString;
173
+ title: z.ZodOptional<z.ZodString>;
174
+ bodyMarkdown: z.ZodOptional<z.ZodString>;
175
+ status: z.ZodOptional<z.ZodEnum<{
176
+ backlog: "backlog";
177
+ todo: "todo";
178
+ in_progress: "in_progress";
179
+ in_review: "in_review";
180
+ blocked: "blocked";
181
+ done: "done";
182
+ cancelled: "cancelled";
183
+ }>>;
184
+ priority: z.ZodOptional<z.ZodEnum<{
185
+ critical: "critical";
186
+ high: "high";
187
+ medium: "medium";
188
+ low: "low";
189
+ }>>;
190
+ assigneePrincipalId: z.ZodOptional<z.ZodString>;
191
+ }, z.core.$strict>;
192
+ export declare const commentTaskRequestSchema: z.ZodObject<{
193
+ taskId: z.ZodString;
194
+ bodyMarkdown: z.ZodString;
195
+ }, z.core.$strict>;
196
+ export declare const dispatchTaskRequestSchema: z.ZodObject<{
197
+ taskId: z.ZodString;
198
+ conductorAgentId: z.ZodString;
199
+ reason: z.ZodOptional<z.ZodString>;
200
+ idempotencyKey: z.ZodOptional<z.ZodString>;
201
+ }, z.core.$strict>;
202
+ export declare const approvalDecisionRequestSchema: z.ZodObject<{
203
+ approvalId: z.ZodString;
204
+ decision: z.ZodEnum<{
205
+ approved: "approved";
206
+ rejected: "rejected";
207
+ revision_requested: "revision_requested";
208
+ }>;
209
+ decisionNote: z.ZodOptional<z.ZodString>;
210
+ }, z.core.$strict>;
211
+ export declare const cancelRunRequestSchema: z.ZodObject<{
212
+ runId: z.ZodString;
213
+ }, z.core.$strict>;
@@ -0,0 +1,130 @@
1
+ import { z } from "zod";
2
+ import { workTaskStatusSchema } from "../workTypes.js";
3
+ export const workQueueStateSchema = z.enum([
4
+ "needs_review",
5
+ "blocked",
6
+ "running",
7
+ "ready",
8
+ "finished",
9
+ "needs_attention",
10
+ ]);
11
+ export const workConsoleSnapshotSchema = z.object({
12
+ state: z.enum(["unauthorized", "ready", "offline"]),
13
+ message: z.string().optional(),
14
+ refreshedAt: z.string(),
15
+ selectedProjectId: z.string().optional(),
16
+ selectedTaskId: z.string().optional(),
17
+ projects: z.array(z.object({
18
+ id: z.string(),
19
+ name: z.string(),
20
+ description: z.string().optional(),
21
+ stateLabel: z.string(),
22
+ }).strict()),
23
+ agents: z.array(z.object({
24
+ conductorAgentId: z.string(),
25
+ agentPrincipalId: z.string(),
26
+ localKey: z.string(),
27
+ displayName: z.string(),
28
+ adapterType: z.string(),
29
+ stateLabel: z.string(),
30
+ available: z.boolean(),
31
+ }).strict()),
32
+ queue: z.array(z.object({
33
+ id: z.string(),
34
+ projectId: z.string().optional(),
35
+ title: z.string(),
36
+ state: workQueueStateSchema,
37
+ stateLabel: z.string(),
38
+ priority: z.enum(["critical", "high", "medium", "low"]),
39
+ assigneePrincipalId: z.string().optional(),
40
+ runId: z.string().optional(),
41
+ progressSummary: z.string().optional(),
42
+ updatedAt: z.string(),
43
+ }).strict()),
44
+ detail: z.object({
45
+ id: z.string(),
46
+ title: z.string(),
47
+ bodyMarkdown: z.string(),
48
+ status: workTaskStatusSchema,
49
+ stateLabel: z.string(),
50
+ priority: z.enum(["critical", "high", "medium", "low"]),
51
+ assigneePrincipalId: z.string().optional(),
52
+ updatedAt: z.string(),
53
+ run: z.object({
54
+ id: z.string(),
55
+ stateLabel: z.string(),
56
+ progressSummary: z.string(),
57
+ updatedAt: z.string(),
58
+ localStateLabel: z.string().optional(),
59
+ events: z.array(z.object({
60
+ id: z.string(),
61
+ type: z.string(),
62
+ summary: z.string(),
63
+ occurredAt: z.string(),
64
+ }).strict()),
65
+ trace: z.array(z.object({
66
+ id: z.string(),
67
+ stream: z.enum(["stdout", "stderr", "system"]),
68
+ message: z.string(),
69
+ occurredAt: z.string(),
70
+ truncated: z.boolean(),
71
+ }).strict()),
72
+ }).strict().optional(),
73
+ comments: z.array(z.object({ id: z.string(), bodyMarkdown: z.string(), authorPrincipalId: z.string(), createdAt: z.string() }).strict()),
74
+ artifacts: z.array(z.object({ id: z.string(), title: z.string(), summary: z.string().optional(), stateLabel: z.string(), openTarget: z.string().optional(), intermediate: z.boolean() }).strict()),
75
+ approvals: z.array(z.object({ id: z.string(), typeLabel: z.string(), state: z.enum(["pending", "approved", "rejected", "revision_requested"]), stateLabel: z.string(), decisionNote: z.string().optional() }).strict()),
76
+ blockers: z.array(z.object({ id: z.string(), title: z.string(), stateLabel: z.string() }).strict()),
77
+ actions: z.object({
78
+ canEdit: z.boolean(),
79
+ canDispatch: z.boolean(),
80
+ canComment: z.boolean(),
81
+ canCancel: z.boolean(),
82
+ canReview: z.boolean(),
83
+ canRetry: z.boolean(),
84
+ }).strict(),
85
+ }).strict().optional(),
86
+ activity: z.array(z.object({
87
+ id: z.string(),
88
+ summary: z.string(),
89
+ occurredAt: z.string(),
90
+ taskId: z.string().optional(),
91
+ runId: z.string().optional(),
92
+ correlationId: z.string().optional(),
93
+ }).strict()),
94
+ }).strict();
95
+ export const workSnapshotRequestSchema = z.object({
96
+ projectId: z.string().min(1).optional(),
97
+ taskId: z.string().min(1).optional(),
98
+ }).strict();
99
+ export const createTaskRequestSchema = z.object({
100
+ projectId: z.string().min(1).optional(),
101
+ title: z.string().trim().min(1).max(300),
102
+ bodyMarkdown: z.string().max(100_000).optional(),
103
+ priority: z.enum(["critical", "high", "medium", "low"]).optional(),
104
+ assigneePrincipalId: z.string().min(1).optional(),
105
+ }).strict();
106
+ export const updateTaskRequestSchema = z.object({
107
+ taskId: z.string().min(1),
108
+ title: z.string().trim().min(1).max(300).optional(),
109
+ bodyMarkdown: z.string().max(100_000).optional(),
110
+ status: workTaskStatusSchema.optional(),
111
+ priority: z.enum(["critical", "high", "medium", "low"]).optional(),
112
+ assigneePrincipalId: z.string().min(1).optional(),
113
+ }).strict();
114
+ export const commentTaskRequestSchema = z.object({
115
+ taskId: z.string().min(1),
116
+ bodyMarkdown: z.string().trim().min(1).max(20_000),
117
+ }).strict();
118
+ export const dispatchTaskRequestSchema = z.object({
119
+ taskId: z.string().min(1),
120
+ conductorAgentId: z.string().min(1),
121
+ reason: z.string().trim().min(1).max(500).optional(),
122
+ idempotencyKey: z.string().min(1).max(200).optional(),
123
+ }).strict();
124
+ export const approvalDecisionRequestSchema = z.object({
125
+ approvalId: z.string().min(1),
126
+ decision: z.enum(["approved", "rejected", "revision_requested"]),
127
+ decisionNote: z.string().trim().min(1).max(20_000).optional(),
128
+ }).strict();
129
+ export const cancelRunRequestSchema = z.object({ runId: z.string().min(1) }).strict();
130
+ //# sourceMappingURL=workContracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workContracts.js","sourceRoot":"","sources":["../../src/localApi/workContracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function openExternalUrl(url: string): Promise<void>;
2
+ export declare function selectLocalFolder(): Promise<string | undefined>;
@@ -0,0 +1,57 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execFileAsync = promisify(execFile);
4
+ export async function openExternalUrl(url) {
5
+ const parsed = new URL(url);
6
+ if (parsed.protocol !== "https:" && !isLoopbackHttp(parsed)) {
7
+ throw new Error("Conductor can open only HTTPS or loopback HTTP destinations.");
8
+ }
9
+ if (process.platform === "darwin") {
10
+ await execFileAsync("open", [parsed.toString()]);
11
+ return;
12
+ }
13
+ if (process.platform === "win32") {
14
+ await execFileAsync("cmd", ["/c", "start", "", parsed.toString()], { windowsHide: true });
15
+ return;
16
+ }
17
+ await execFileAsync("xdg-open", [parsed.toString()]);
18
+ }
19
+ export async function selectLocalFolder() {
20
+ try {
21
+ if (process.platform === "darwin") {
22
+ const result = await execFileAsync("osascript", [
23
+ "-e",
24
+ "POSIX path of (choose folder with prompt \"Choose an agent workspace\")",
25
+ ]);
26
+ return normalizedSelection(result.stdout);
27
+ }
28
+ if (process.platform === "win32") {
29
+ const script = [
30
+ "Add-Type -AssemblyName System.Windows.Forms;",
31
+ "$dialog = New-Object System.Windows.Forms.FolderBrowserDialog;",
32
+ "$dialog.Description = 'Choose an agent workspace';",
33
+ "if ($dialog.ShowDialog() -eq 'OK') { Write-Output $dialog.SelectedPath }",
34
+ ].join(" ");
35
+ const result = await execFileAsync("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script], { windowsHide: true });
36
+ return normalizedSelection(result.stdout);
37
+ }
38
+ const result = await execFileAsync("zenity", ["--file-selection", "--directory", "--title=Choose an agent workspace"]);
39
+ return normalizedSelection(result.stdout);
40
+ }
41
+ catch (error) {
42
+ if (isCancellation(error))
43
+ return undefined;
44
+ throw new Error("Folder selection is unavailable on this computer. Configure the agent through the CLI instead.");
45
+ }
46
+ }
47
+ function isLoopbackHttp(url) {
48
+ return url.protocol === "http:" && (url.hostname === "127.0.0.1" || url.hostname === "::1" || url.hostname === "localhost");
49
+ }
50
+ function normalizedSelection(value) {
51
+ const selected = value.trim();
52
+ return selected.length === 0 ? undefined : selected.replace(/[\\/]$/u, "");
53
+ }
54
+ function isCancellation(error) {
55
+ return error instanceof Error && "code" in error && [1, 130].includes(Number(error.code));
56
+ }
57
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/localApp/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type ConductorLocalApi } from "../localApi/contracts.js";
2
+ export type LocalAppHandle = {
3
+ origin: string;
4
+ browserUrl: string;
5
+ close(): Promise<void>;
6
+ waitUntilStopped(): Promise<void>;
7
+ };
8
+ export type StartLocalAppOptions = {
9
+ api: ConductorLocalApi;
10
+ staticDirectory: string;
11
+ preferredPort?: number | undefined;
12
+ openBrowser?: boolean | undefined;
13
+ browserOpener?: ((url: string) => Promise<void>) | undefined;
14
+ startRuntime?: boolean | undefined;
15
+ installSignalHandlers?: boolean | undefined;
16
+ };
17
+ export declare function startLocalApp(options: StartLocalAppOptions): Promise<LocalAppHandle>;
18
+ export declare function startConductorLocalApp(input?: {
19
+ configPath?: string | undefined;
20
+ preferredPort?: number | undefined;
21
+ openBrowser?: boolean | undefined;
22
+ staticDirectory?: string | undefined;
23
+ browserOpener?: ((url: string) => Promise<void>) | undefined;
24
+ }): Promise<LocalAppHandle>;
25
+ export declare function defaultStaticDirectory(): string;
@@ -0,0 +1,114 @@
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import { ProviderAgentStore } from "../adapters/provider/store.js";
4
+ import { FileConfigStore } from "../config.js";
5
+ import { DesktopController } from "../desktop/app/controller.js";
6
+ import { createLocalControllerApi } from "../localApi/contracts.js";
7
+ import { assertStaticAssets, startLocalWebServer } from "../localApi/server.js";
8
+ import { openExternalUrl, selectLocalFolder } from "./platform.js";
9
+ import { ConductorUserAuthorizationService } from "../userAuth/service.js";
10
+ import { createUserCredentialStore } from "../userAuth/store.js";
11
+ import { WorkConsoleService } from "../localApi/workConsole.js";
12
+ import { LocalRuntimeSessionCache } from "../runtime/localSessionCache.js";
13
+ import { LocalLogSpool } from "../runtime/localLogSpool.js";
14
+ import { RunEventRetryBuffer } from "../runtime/runEventRetryBuffer.js";
15
+ import { DesktopRuntimeController } from "../desktop/app/runtimeController.js";
16
+ import { AuthorizedPairingService } from "../localApi/authorizedPairing.js";
17
+ export async function startLocalApp(options) {
18
+ await assertStaticAssets(options.staticDirectory);
19
+ const server = await startLocalWebServer({
20
+ api: options.api,
21
+ staticDirectory: options.staticDirectory,
22
+ preferredPort: options.preferredPort,
23
+ });
24
+ let closed = false;
25
+ let resolveStopped;
26
+ const stopped = new Promise((resolve) => { resolveStopped = resolve; });
27
+ const close = async () => {
28
+ if (closed)
29
+ return;
30
+ closed = true;
31
+ removeSignals();
32
+ await stopRuntimeSafely(options.api);
33
+ await server.close();
34
+ resolveStopped?.();
35
+ };
36
+ const onSignal = () => { void close(); };
37
+ const removeSignals = installSignals(options.installSignalHandlers !== false, onSignal);
38
+ try {
39
+ if (options.startRuntime !== false && (await options.api.pairedStatus()).paired) {
40
+ await options.api.startRuntime();
41
+ }
42
+ if (options.openBrowser !== false) {
43
+ await (options.browserOpener ?? openExternalUrl)(server.browserUrl);
44
+ }
45
+ }
46
+ catch (error) {
47
+ await close();
48
+ throw error;
49
+ }
50
+ return {
51
+ origin: server.origin,
52
+ browserUrl: server.browserUrl,
53
+ close,
54
+ waitUntilStopped: () => stopped,
55
+ };
56
+ }
57
+ export async function startConductorLocalApp(input = {}) {
58
+ const configStore = new FileConfigStore(input.configPath);
59
+ const agentStore = new ProviderAgentStore(input.configPath === undefined
60
+ ? undefined
61
+ : path.join(path.dirname(input.configPath), "agents.json"));
62
+ const sessionCache = new LocalRuntimeSessionCache();
63
+ const logSpool = new LocalLogSpool();
64
+ const eventRetryBuffer = new RunEventRetryBuffer();
65
+ const runtime = new DesktopRuntimeController({ configStore, agentStore, sessionCache, logSpool, eventRetryBuffer });
66
+ const controller = new DesktopController({
67
+ configStore,
68
+ agentStore,
69
+ runtime,
70
+ selectFolder: selectLocalFolder,
71
+ openExternal: openExternalUrl,
72
+ });
73
+ const userAuthorization = new ConductorUserAuthorizationService({
74
+ configStore,
75
+ credentialStore: createUserCredentialStore(),
76
+ openBrowser: openExternalUrl,
77
+ });
78
+ const work = new WorkConsoleService({ configStore, authorization: userAuthorization, sessionCache, logSpool });
79
+ const authorizedPairing = new AuthorizedPairingService({ authorization: userAuthorization, controller });
80
+ return startLocalApp({
81
+ api: createLocalControllerApi(controller, userAuthorization, work, authorizedPairing, {
82
+ clear: () => {
83
+ sessionCache.clear();
84
+ logSpool.clearAll();
85
+ },
86
+ }),
87
+ staticDirectory: input.staticDirectory ?? defaultStaticDirectory(),
88
+ preferredPort: input.preferredPort,
89
+ openBrowser: input.openBrowser,
90
+ browserOpener: input.browserOpener,
91
+ });
92
+ }
93
+ export function defaultStaticDirectory() {
94
+ return path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../dist-web");
95
+ }
96
+ async function stopRuntimeSafely(api) {
97
+ try {
98
+ await api.stopRuntime();
99
+ }
100
+ catch {
101
+ // The HTTP listener must still close if runtime shutdown reports a failure.
102
+ }
103
+ }
104
+ function installSignals(enabled, onSignal) {
105
+ if (!enabled)
106
+ return () => undefined;
107
+ process.once("SIGINT", onSignal);
108
+ process.once("SIGTERM", onSignal);
109
+ return () => {
110
+ process.off("SIGINT", onSignal);
111
+ process.off("SIGTERM", onSignal);
112
+ };
113
+ }
114
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/localApp/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ConfigStore, JsonObject, PairConductorClient } from "./types.js";
2
+ export type PairConductorInput = {
3
+ apiBaseUrl: string;
4
+ code: string;
5
+ displayName: string;
6
+ client: PairConductorClient;
7
+ store: ConfigStore;
8
+ capabilities?: JsonObject;
9
+ };
10
+ export type PairConductorResult = {
11
+ apiBaseUrl: string;
12
+ conductorId: string;
13
+ displayName: string;
14
+ };
15
+ export declare function pairConductor(input: PairConductorInput): Promise<PairConductorResult>;
16
+ export type SafeStatus = {
17
+ paired: false;
18
+ } | {
19
+ paired: true;
20
+ apiBaseUrl: string;
21
+ conductorId?: string;
22
+ credential: string;
23
+ displayName: string;
24
+ protocolVersion: string;
25
+ };
26
+ export declare function readSafeStatus(store: ConfigStore): Promise<SafeStatus>;
27
+ export declare function defaultCapabilities(): JsonObject;
@@ -0,0 +1,45 @@
1
+ import { CONDUCTOR_VERSION, PROTOCOL_VERSION } from "./version.js";
2
+ import { redactCredential } from "./redaction.js";
3
+ export async function pairConductor(input) {
4
+ const request = {
5
+ code: input.code,
6
+ displayName: input.displayName,
7
+ version: CONDUCTOR_VERSION,
8
+ protocolVersion: PROTOCOL_VERSION,
9
+ capabilities: input.capabilities ?? defaultCapabilities(),
10
+ };
11
+ const paired = await input.client.pair(request);
12
+ await input.store.write({
13
+ apiBaseUrl: input.apiBaseUrl,
14
+ conductorId: paired.conductor.id,
15
+ credential: paired.credential,
16
+ displayName: paired.conductor.displayName,
17
+ protocolVersion: PROTOCOL_VERSION,
18
+ });
19
+ return {
20
+ apiBaseUrl: input.apiBaseUrl,
21
+ conductorId: paired.conductor.id,
22
+ displayName: paired.conductor.displayName,
23
+ };
24
+ }
25
+ export async function readSafeStatus(store) {
26
+ const config = await store.read();
27
+ if (config === undefined) {
28
+ return { paired: false };
29
+ }
30
+ return {
31
+ paired: true,
32
+ apiBaseUrl: config.apiBaseUrl,
33
+ ...(config.conductorId === undefined ? {} : { conductorId: config.conductorId }),
34
+ credential: redactCredential(config.credential),
35
+ displayName: config.displayName,
36
+ protocolVersion: config.protocolVersion,
37
+ };
38
+ }
39
+ export function defaultCapabilities() {
40
+ return {
41
+ platform: process.platform,
42
+ adapters: ["fake"],
43
+ };
44
+ }
45
+ //# sourceMappingURL=pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../src/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAuBlD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAyB;IAC3D,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,iBAAiB;QAC1B,eAAe,EAAE,gBAAgB;QACjC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,mBAAmB,EAAE;KAC1D,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;QAChC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;QACzC,eAAe,EAAE,gBAAgB;KAClC,CAAC,CAAC;IACH,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;KAC1C,CAAC;AACJ,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAkB;IACrD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAChF,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC;QAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function redactSecrets(input: string): string;
2
+ export declare function redactCredential(credential: string): string;