@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
package/dist/cli.js ADDED
@@ -0,0 +1,245 @@
1
+ #!/usr/bin/env node
2
+ import { realpathSync } from "node:fs";
3
+ import { hostname } from "node:os";
4
+ import { fileURLToPath } from "node:url";
5
+ import { parseArgs } from "node:util";
6
+ import { capabilitiesForAdapters, createConfiguredAdapters, loadAdapterConfigsFromFile, } from "./adapters/config.js";
7
+ import { checkAdapters } from "./adapters/doctor.js";
8
+ import { ConductorHttpClient } from "./conductorClient.js";
9
+ import { FileConfigStore } from "./config.js";
10
+ import { pairConductor, readSafeStatus } from "./pairing.js";
11
+ import { redactSecrets } from "./redaction.js";
12
+ import { HeadlessRuntimeService } from "./runtime/runtimeService.js";
13
+ import { startConductorLocalApp } from "./localApp/service.js";
14
+ import { LocalRuntimeSessionCache } from "./runtime/localSessionCache.js";
15
+ import { LocalLogSpool } from "./runtime/localLogSpool.js";
16
+ import { RunEventRetryBuffer } from "./runtime/runEventRetryBuffer.js";
17
+ import { CONDUCTOR_VERSION, PROTOCOL_VERSION } from "./version.js";
18
+ export async function runCli(args = process.argv.slice(2), deps = defaultCliDeps()) {
19
+ const [command, ...commandArgs] = args;
20
+ try {
21
+ switch (command) {
22
+ case "pair":
23
+ return await runPair(commandArgs, deps);
24
+ case "status":
25
+ return await runStatus(commandArgs, deps);
26
+ case "logout":
27
+ return await runLogout(commandArgs, deps);
28
+ case "run":
29
+ return await run(commandArgs, deps);
30
+ case "start":
31
+ return await runStart(commandArgs, deps);
32
+ case "doctor":
33
+ return await runDoctor(commandArgs, deps);
34
+ case "version":
35
+ case "--version":
36
+ case "-V":
37
+ deps.stdout(`sift-conductor ${CONDUCTOR_VERSION} (protocol ${PROTOCOL_VERSION})`);
38
+ return 0;
39
+ case undefined:
40
+ case "help":
41
+ case "--help":
42
+ case "-h":
43
+ deps.stdout(usage());
44
+ return 0;
45
+ default:
46
+ deps.stderr(`Unknown command: ${command}`);
47
+ deps.stderr(usage());
48
+ return 1;
49
+ }
50
+ }
51
+ catch (error) {
52
+ deps.stderr(safeErrorMessage(error));
53
+ return 1;
54
+ }
55
+ }
56
+ function defaultCliDeps() {
57
+ return {
58
+ stdout: (line) => console.log(line),
59
+ stderr: (line) => console.error(line),
60
+ createStore: (configPath) => new FileConfigStore(configPath),
61
+ createClient: (apiBaseUrl) => new ConductorHttpClient({ apiBaseUrl }),
62
+ createWorkClient: (apiBaseUrl) => new ConductorHttpClient({ apiBaseUrl }),
63
+ defaultDisplayName: () => hostname(),
64
+ startLocalApp: (input) => startConductorLocalApp(input),
65
+ };
66
+ }
67
+ async function runPair(args, deps) {
68
+ const values = parseValues(args, {
69
+ api: { type: "string" },
70
+ code: { type: "string" },
71
+ "display-name": { type: "string" },
72
+ config: { type: "string" },
73
+ adapters: { type: "string" },
74
+ });
75
+ const apiBaseUrl = requiredString(values.api, "--api");
76
+ const code = requiredString(values.code, "--code");
77
+ const displayName = optionalString(values["display-name"]) ?? deps.defaultDisplayName();
78
+ const adapters = await configuredAdapters(values, deps);
79
+ const result = await pairConductor({
80
+ apiBaseUrl,
81
+ code,
82
+ displayName,
83
+ client: deps.createClient(apiBaseUrl),
84
+ store: deps.createStore(optionalString(values.config)),
85
+ capabilities: capabilitiesForAdapters(adapters),
86
+ });
87
+ deps.stdout(`Paired Conductor ${result.conductorId} (${result.displayName}) with ${result.apiBaseUrl}.`);
88
+ return 0;
89
+ }
90
+ async function runStatus(args, deps) {
91
+ const values = parseValues(args, {
92
+ config: { type: "string" },
93
+ });
94
+ const status = await readSafeStatus(deps.createStore(optionalString(values.config)));
95
+ deps.stdout(JSON.stringify(status, null, 2));
96
+ return 0;
97
+ }
98
+ async function runLogout(args, deps) {
99
+ const values = parseValues(args, {
100
+ config: { type: "string" },
101
+ });
102
+ await deps.createStore(optionalString(values.config)).delete();
103
+ deps.stdout("Logged out.");
104
+ return 0;
105
+ }
106
+ async function run(args, deps) {
107
+ const values = parseValues(args, {
108
+ api: { type: "string" },
109
+ config: { type: "string" },
110
+ once: { type: "boolean" },
111
+ "poll-ms": { type: "string" },
112
+ "lease-refresh-ms": { type: "string" },
113
+ adapters: { type: "string" },
114
+ });
115
+ const store = deps.createStore(optionalString(values.config));
116
+ const config = await store.read();
117
+ if (config === undefined) {
118
+ throw new Error("No paired Conductor config found. Run pair first.");
119
+ }
120
+ const apiBaseUrl = optionalString(values.api) ?? config.apiBaseUrl;
121
+ const input = {
122
+ store,
123
+ client: deps.createClient(apiBaseUrl),
124
+ adapters: await configuredAdapters(values, deps),
125
+ sessionCache: new LocalRuntimeSessionCache(),
126
+ logSpool: new LocalLogSpool(),
127
+ eventRetryBuffer: new RunEventRetryBuffer(),
128
+ };
129
+ if (deps.createWorkClient !== undefined)
130
+ input.workClient = deps.createWorkClient(apiBaseUrl);
131
+ if (deps.sleep !== undefined) {
132
+ input.sleep = deps.sleep;
133
+ }
134
+ const pollIntervalMs = optionalNumber(values["poll-ms"]);
135
+ if (pollIntervalMs !== undefined) {
136
+ input.pollIntervalMs = pollIntervalMs;
137
+ }
138
+ const leaseRefreshMs = optionalNumber(values["lease-refresh-ms"]);
139
+ if (leaseRefreshMs !== undefined) {
140
+ input.leaseRefreshMs = leaseRefreshMs;
141
+ }
142
+ if (values.once === true) {
143
+ deps.stdout(JSON.stringify(await new HeadlessRuntimeService(input).runOnce(), null, 2));
144
+ return 0;
145
+ }
146
+ const service = new HeadlessRuntimeService(input);
147
+ await service.start();
148
+ const status = await service.waitUntilStopped();
149
+ if (status.state === "failed") {
150
+ throw new Error(status.lastErrorMessage ?? "Conductor runtime failed.");
151
+ }
152
+ return 0;
153
+ }
154
+ async function runStart(args, deps) {
155
+ const values = parseValues(args, {
156
+ config: { type: "string" },
157
+ port: { type: "string" },
158
+ "no-open": { type: "boolean" },
159
+ });
160
+ const startLocalApp = deps.startLocalApp;
161
+ if (startLocalApp === undefined)
162
+ throw new Error("Local web startup is unavailable in this build.");
163
+ const app = await startLocalApp({
164
+ ...(optionalString(values.config) === undefined ? {} : { configPath: optionalString(values.config) }),
165
+ ...(optionalNumber(values.port) === undefined ? {} : { preferredPort: optionalNumber(values.port) }),
166
+ openBrowser: values["no-open"] !== true,
167
+ });
168
+ deps.stdout(`Sift Conductor is running at ${values["no-open"] === true ? app.browserUrl : app.origin}`);
169
+ await app.waitUntilStopped();
170
+ return 0;
171
+ }
172
+ async function runDoctor(args, deps) {
173
+ const values = parseValues(args, {
174
+ adapters: { type: "string" },
175
+ });
176
+ const adapters = await configuredAdapters(values, deps);
177
+ deps.stdout(JSON.stringify({ adapters: await checkAdapters(adapters) }, null, 2));
178
+ return 0;
179
+ }
180
+ function parseValues(args, options) {
181
+ return parseArgs({
182
+ args,
183
+ options,
184
+ strict: true,
185
+ allowPositionals: false,
186
+ }).values;
187
+ }
188
+ function requiredString(value, name) {
189
+ const parsed = optionalString(value);
190
+ if (parsed === undefined) {
191
+ throw new Error(`${name} is required.`);
192
+ }
193
+ return parsed;
194
+ }
195
+ function optionalString(value) {
196
+ return typeof value === "string" && value.trim().length > 0 ? value : undefined;
197
+ }
198
+ function optionalNumber(value) {
199
+ const parsed = optionalString(value);
200
+ if (parsed === undefined) {
201
+ return undefined;
202
+ }
203
+ const number = Number.parseInt(parsed, 10);
204
+ if (!Number.isFinite(number) || number < 0) {
205
+ throw new Error(`${parsed} is not a non-negative integer.`);
206
+ }
207
+ return number;
208
+ }
209
+ async function configuredAdapters(values, deps) {
210
+ const configs = await loadAdapterConfigsFromFile(optionalString(values.adapters));
211
+ return createConfiguredAdapters(configs, deps.adapterFactoryDeps ?? {});
212
+ }
213
+ function safeErrorMessage(error) {
214
+ if (error instanceof Error) {
215
+ return redactSecrets(error.message);
216
+ }
217
+ return "Unexpected Conductor CLI error.";
218
+ }
219
+ function usage() {
220
+ return [
221
+ "Usage:",
222
+ " pnpm dev pair --api <url> --code <SC-code> [--display-name <name>] [--config <path>] [--adapters <path>]",
223
+ " pnpm dev run [--api <url>] [--once] [--config <path>] [--adapters <path>]",
224
+ " pnpm dev start [--config <path>] [--port <number>] [--no-open]",
225
+ " pnpm dev doctor [--adapters <path>]",
226
+ " pnpm dev status [--config <path>]",
227
+ " pnpm dev logout [--config <path>]",
228
+ " pnpm dev --version",
229
+ ].join("\n");
230
+ }
231
+ if (isMainModule(import.meta.url, process.argv[1])) {
232
+ const exitCode = await runCli();
233
+ process.exitCode = exitCode;
234
+ }
235
+ export function isMainModule(moduleUrl, entryPath) {
236
+ if (entryPath === undefined || entryPath.length === 0)
237
+ return false;
238
+ try {
239
+ return realpathSync(fileURLToPath(moduleUrl)) === realpathSync(entryPath);
240
+ }
241
+ catch {
242
+ return false;
243
+ }
244
+ }
245
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}