@viraatdas/rudder 1.0.73 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +169 -510
  2. package/dist/auth.d.ts +2 -0
  3. package/dist/auth.js +22 -1
  4. package/dist/auth.js.map +1 -1
  5. package/dist/backends.js +88 -1
  6. package/dist/backends.js.map +1 -1
  7. package/dist/board/board.css +1 -0
  8. package/dist/board/board.js +2 -0
  9. package/dist/board/daemon.d.ts +21 -0
  10. package/dist/board/daemon.js +838 -0
  11. package/dist/board/daemon.js.map +1 -0
  12. package/dist/brain.d.ts +9 -0
  13. package/dist/brain.js +36 -9
  14. package/dist/brain.js.map +1 -1
  15. package/dist/bus.d.ts +9 -0
  16. package/dist/bus.js +23 -0
  17. package/dist/bus.js.map +1 -0
  18. package/dist/cloud.js +80 -350
  19. package/dist/cloud.js.map +1 -1
  20. package/dist/daemon.d.ts +21 -0
  21. package/dist/daemon.js +141 -0
  22. package/dist/daemon.js.map +1 -0
  23. package/dist/git.d.ts +19 -13
  24. package/dist/git.js +283 -35
  25. package/dist/git.js.map +1 -1
  26. package/dist/goal.d.ts +30 -0
  27. package/dist/goal.js +75 -0
  28. package/dist/goal.js.map +1 -0
  29. package/dist/graph.d.ts +56 -0
  30. package/dist/graph.js +213 -0
  31. package/dist/graph.js.map +1 -0
  32. package/dist/index.js +0 -0
  33. package/dist/jj.d.ts +121 -0
  34. package/dist/jj.js +524 -0
  35. package/dist/jj.js.map +1 -0
  36. package/dist/main.js +191 -17
  37. package/dist/main.js.map +1 -1
  38. package/dist/migration.js +8 -1
  39. package/dist/migration.js.map +1 -1
  40. package/dist/models.js +21 -36
  41. package/dist/models.js.map +1 -1
  42. package/dist/native/rudder-native +0 -0
  43. package/dist/planner.d.ts +27 -0
  44. package/dist/planner.js +540 -0
  45. package/dist/planner.js.map +1 -0
  46. package/dist/repl.js +6 -2
  47. package/dist/repl.js.map +1 -1
  48. package/dist/run-manager.d.ts +10 -0
  49. package/dist/run-manager.js +225 -54
  50. package/dist/run-manager.js.map +1 -1
  51. package/dist/scheduler.d.ts +124 -0
  52. package/dist/scheduler.js +849 -0
  53. package/dist/scheduler.js.map +1 -0
  54. package/dist/state.d.ts +18 -1
  55. package/dist/state.js +139 -3
  56. package/dist/state.js.map +1 -1
  57. package/dist/surfaces.d.ts +23 -0
  58. package/dist/surfaces.js +196 -0
  59. package/dist/surfaces.js.map +1 -0
  60. package/dist/task-summary.d.ts +18 -0
  61. package/dist/task-summary.js +132 -0
  62. package/dist/task-summary.js.map +1 -1
  63. package/dist/tmux-dashboard.js +58 -7
  64. package/dist/tmux-dashboard.js.map +1 -1
  65. package/dist/tui.js +112 -17
  66. package/dist/tui.js.map +1 -1
  67. package/dist/types.d.ts +214 -1
  68. package/dist/types.js +1 -1
  69. package/dist/types.js.map +1 -1
  70. package/dist/util.d.ts +6 -1
  71. package/dist/util.js +37 -7
  72. package/dist/util.js.map +1 -1
  73. package/package.json +10 -2
package/dist/types.d.ts CHANGED
@@ -53,8 +53,10 @@ export type AuthProfileStore = {
53
53
  };
54
54
  export type RudderConfig = {
55
55
  version: 1;
56
+ vcs?: VcsMode;
56
57
  defaultBackend: BackendId;
57
58
  lastUsedBackend?: BackendId;
59
+ mergeStrategy: MergeStrategy;
58
60
  runPolicy: {
59
61
  sameCheckout: "single-active";
60
62
  concurrentPromptMode: "worktree" | "queue";
@@ -68,10 +70,23 @@ export type RudderConfig = {
68
70
  codex?: BackendConfig;
69
71
  acpx?: BackendConfig;
70
72
  };
73
+ board?: {
74
+ port?: number;
75
+ };
76
+ orchestrator?: {
77
+ maxParallel: number;
78
+ reviewGate: "auto" | "manual";
79
+ budget?: {
80
+ maxTokens?: number;
81
+ };
82
+ };
71
83
  };
84
+ export declare const DEFAULT_BOARD_PORT = 4774;
72
85
  export type BackendId = "claude" | "codex" | "acpx";
86
+ export type VcsMode = "git" | "jj";
73
87
  export type EffortLevel = "low" | "medium" | "high" | "xhigh" | "max";
74
88
  export type RunMode = "execute" | "plan";
89
+ export type MergeStrategy = "merge" | "rebase";
75
90
  export type BackendConfig = {
76
91
  profileId?: string;
77
92
  model?: string;
@@ -79,10 +94,114 @@ export type BackendConfig = {
79
94
  reasoningEffort?: EffortLevel;
80
95
  };
81
96
  export type RunStatus = "created" | "running" | "steering" | "verifying" | "completed" | "failed" | "cancelled" | "merge-conflict" | "merged";
97
+ export type UndoEntry = {
98
+ opId: string;
99
+ label: string;
100
+ ts: string;
101
+ runIds: string[];
102
+ };
103
+ export type NodeStatus = "planned" | "ready" | "running" | "review" | "blocked" | "merged" | "failed";
104
+ export type DepType = "hard" | "soft";
105
+ export type EdgeType = DepType | "judge";
106
+ export type GraphEdge = {
107
+ id: string;
108
+ from: string;
109
+ to: string;
110
+ type: EdgeType;
111
+ why?: string;
112
+ delivered?: boolean;
113
+ };
114
+ export type TaskNode = {
115
+ id: string;
116
+ title: string;
117
+ prompt: string;
118
+ goal?: string;
119
+ success?: string;
120
+ backend: BackendId;
121
+ model?: string;
122
+ effort?: EffortLevel;
123
+ status: NodeStatus;
124
+ runId?: string;
125
+ worktree?: {
126
+ path: string;
127
+ workspaceName?: string;
128
+ };
129
+ jjChangeId?: string;
130
+ deps: string[];
131
+ lastLine?: string;
132
+ tokens?: {
133
+ input: number;
134
+ output: number;
135
+ };
136
+ reviewState?: "pending" | "approved" | "changes-requested";
137
+ resolverRunId?: string;
138
+ merge?: MergeState;
139
+ supersededBy?: string;
140
+ source: "planner" | "injection";
141
+ createdAt: string;
142
+ updatedAt: string;
143
+ };
144
+ export type RudderGraph = {
145
+ version: 1;
146
+ repoRoot: string;
147
+ integrationChangeId?: string;
148
+ nodes: Record<string, TaskNode>;
149
+ edges: Record<string, GraphEdge>;
150
+ updatedAt: string;
151
+ };
152
+ export type PlanEdge = {
153
+ on: string;
154
+ type: EdgeType;
155
+ why?: string;
156
+ };
157
+ export type PlanNode = {
158
+ id: string;
159
+ title: string;
160
+ prompt: string;
161
+ goal?: string;
162
+ success?: string;
163
+ deps: PlanEdge[];
164
+ backend?: BackendId;
165
+ model?: string;
166
+ effort?: EffortLevel;
167
+ fileScope?: string[];
168
+ };
169
+ export type PlanDag = {
170
+ nodes: PlanNode[];
171
+ edges: Array<{
172
+ from: string;
173
+ to: string;
174
+ type: EdgeType;
175
+ why?: string;
176
+ }>;
177
+ };
178
+ export type InferredDep = {
179
+ node: string;
180
+ type: DepType;
181
+ };
182
+ export type ReconcileResult = {
183
+ node: PlanNode;
184
+ inferredDeps: InferredDep[];
185
+ };
186
+ export type ResolverContext = {
187
+ mergeChangeId: string;
188
+ parentChangeIds: string[];
189
+ conflictedFiles: string[];
190
+ nodeTitle: string;
191
+ intoTitle: string;
192
+ workspacePath: string;
193
+ };
82
194
  export type RunRecord = {
83
195
  id: string;
84
196
  status: RunStatus;
197
+ vcs?: VcsMode;
85
198
  mode?: RunMode;
199
+ resolverFor?: string;
200
+ resolverRunId?: string;
201
+ tokens?: {
202
+ input: number;
203
+ output: number;
204
+ };
86
205
  task: string;
87
206
  taskSummary?: string;
88
207
  taskSummaryLlm?: boolean;
@@ -98,6 +217,8 @@ export type RunRecord = {
98
217
  enabled: boolean;
99
218
  path: string;
100
219
  branch?: string;
220
+ workspaceName?: string;
221
+ jjChangeId?: string;
101
222
  };
102
223
  process?: {
103
224
  pid?: number;
@@ -133,18 +254,31 @@ export type RunRecord = {
133
254
  };
134
255
  verification?: VerificationResult;
135
256
  merge?: MergeState;
257
+ sync?: SyncState;
136
258
  };
137
259
  export type MergeState = {
138
260
  status: "not-started" | "merged" | "conflict" | "failed";
139
261
  attemptedAt?: string;
140
262
  targetBranch?: string;
263
+ strategy?: MergeStrategy;
264
+ conflictKind?: "merge" | "rebase";
265
+ conflictedFiles?: string[];
266
+ operationId?: string;
267
+ mergeChangeId?: string;
268
+ error?: string;
269
+ };
270
+ export type SyncState = {
271
+ status: "not-started" | "synced" | "conflict" | "failed";
272
+ attemptedAt?: string;
273
+ baseBranch?: string;
141
274
  conflictedFiles?: string[];
142
275
  error?: string;
143
276
  };
144
277
  export type RudderEvent = {
145
278
  ts: string;
146
279
  runId: string;
147
- type: "run.created" | "run.started" | "run.continued" | "run.detached" | "steerer.waiting" | "steerer.prompt" | "planner.spec" | "backend.output" | "backend.error" | "backend.exit" | "verifier.result" | "run.completed" | "run.failed" | "run.cancelled" | "merge.result";
280
+ nodeId?: string;
281
+ type: "run.created" | "run.started" | "run.continued" | "run.detached" | "steerer.waiting" | "steerer.prompt" | "planner.spec" | "backend.output" | "backend.error" | "backend.exit" | "verifier.result" | "run.completed" | "run.failed" | "run.cancelled" | "merge.result" | "sync.result" | "node.created" | "node.ready" | "node.running" | "node.review" | "node.merged" | "node.blocked" | "node.failed" | "plan.proposed" | "plan.reconciled" | "schedule.tick" | "schedule.launched" | "schedule.softDelivered" | "merge.attempt" | "merge.merged" | "merge.conflict" | "resolver.spawned" | "resolver.resolved";
148
282
  message?: string;
149
283
  data?: JsonValue;
150
284
  };
@@ -164,6 +298,8 @@ export type BackendAdapter = {
164
298
  export type SpecContract = {
165
299
  runId: string;
166
300
  task: string;
301
+ goal: string;
302
+ success: string;
167
303
  createdAt: string;
168
304
  repo: {
169
305
  root: string;
@@ -204,3 +340,80 @@ export type CloudSail = {
204
340
  updatedAt?: string;
205
341
  [key: string]: JsonValue | undefined;
206
342
  };
343
+ export type BoardColumn = "todo" | "running" | "review" | "done";
344
+ export type ProjectEntry = {
345
+ slug: string;
346
+ repoRoot: string;
347
+ name: string;
348
+ addedAt: string;
349
+ };
350
+ export type ProjectsRegistry = {
351
+ version: 1;
352
+ projects: ProjectEntry[];
353
+ };
354
+ export type ProjectSummary = {
355
+ slug: string;
356
+ name: string;
357
+ repoRoot: string;
358
+ counts: {
359
+ todo: number;
360
+ running: number;
361
+ review: number;
362
+ done: number;
363
+ blocked: number;
364
+ failed: number;
365
+ };
366
+ lastActivityAt: string;
367
+ };
368
+ export type BoardNode = {
369
+ id: string;
370
+ title: string;
371
+ status: RunStatus;
372
+ column: BoardColumn;
373
+ blocked: boolean;
374
+ backend: BackendId;
375
+ model?: string;
376
+ effort?: EffortLevel;
377
+ lastLine: string | null;
378
+ tokens: {
379
+ input: number;
380
+ output: number;
381
+ } | null;
382
+ deps: {
383
+ hard: string[];
384
+ soft: string[];
385
+ };
386
+ createdAt: string;
387
+ updatedAt: string;
388
+ worktree: {
389
+ path: string;
390
+ workspaceName?: string;
391
+ } | null;
392
+ merge: MergeState | null;
393
+ };
394
+ export type BoardEdge = {
395
+ from: string;
396
+ to: string;
397
+ kind: "hard" | "soft" | "judge";
398
+ };
399
+ export type PlanGate = {
400
+ id: string;
401
+ nodeId?: string;
402
+ question: string;
403
+ options?: string[];
404
+ createdAt: string;
405
+ };
406
+ export type MemoryEntry = {
407
+ text: string;
408
+ owner?: string;
409
+ ts?: string;
410
+ };
411
+ export type BoardSnapshot = {
412
+ slug: string;
413
+ name: string;
414
+ generatedAt: string;
415
+ nodes: BoardNode[];
416
+ edges: BoardEdge[];
417
+ gates: PlanGate[];
418
+ memory: MemoryEntry[];
419
+ };
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export const DEFAULT_BOARD_PORT = 4774;
2
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAiGA,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC"}
package/dist/util.d.ts CHANGED
@@ -8,9 +8,15 @@ export declare function ensureDir(dir: string): Promise<void>;
8
8
  export declare function pathExists(filePath: string): Promise<boolean>;
9
9
  export declare function pathExistsSync(filePath: string): boolean;
10
10
  export declare function readJson<T>(filePath: string): Promise<T | null>;
11
+ export declare function withPathLock<T>(filePath: string, fn: () => Promise<T>): Promise<T>;
11
12
  export declare function writeJson(filePath: string, value: JsonValue, options?: {
12
13
  mode?: number;
13
14
  }): Promise<void>;
15
+ /**
16
+ * Atomically read, transform, and write a JSON file under the per-path lock so
17
+ * a concurrent writer cannot clobber fields between the read and the write.
18
+ */
19
+ export declare function updateJson<T>(filePath: string, transform: (current: T | null) => JsonValue): Promise<void>;
14
20
  export declare function commandExists(command: string): boolean;
15
21
  export declare class MissingToolError extends Error {
16
22
  readonly tool: string;
@@ -18,7 +24,6 @@ export declare class MissingToolError extends Error {
18
24
  constructor(tool: string, message?: string);
19
25
  }
20
26
  export declare function formatMissingToolMessage(tool: string, hintOverride?: string): string;
21
- export declare function requireBackendTool(tool: string): void;
22
27
  export declare function isMissingToolSpawnError(error: unknown): boolean;
23
28
  export declare function runCommand(command: string, args: string[], options?: {
24
29
  cwd?: string;
package/dist/util.js CHANGED
@@ -69,9 +69,30 @@ export async function readJson(filePath) {
69
69
  return null;
70
70
  }
71
71
  }
72
- export async function writeJson(filePath, value, options) {
72
+ /**
73
+ * Serializes async work per file path so concurrent writers (and
74
+ * read-modify-write sequences) to the same file cannot interleave. Each call
75
+ * runs after the previous one for that path settles, regardless of outcome.
76
+ */
77
+ const pathLocks = new Map();
78
+ export function withPathLock(filePath, fn) {
79
+ const key = path.resolve(filePath);
80
+ const run = (pathLocks.get(key) ?? Promise.resolve()).then(fn, fn);
81
+ const tail = run.then(() => undefined, () => undefined);
82
+ pathLocks.set(key, tail);
83
+ void tail.then(() => {
84
+ if (pathLocks.get(key) === tail) {
85
+ pathLocks.delete(key);
86
+ }
87
+ });
88
+ return run;
89
+ }
90
+ async function writeJsonRaw(filePath, value, options) {
73
91
  await ensureDir(path.dirname(filePath));
74
- const temp = `${filePath}.${process.pid}.${Date.now()}.tmp`;
92
+ // Unique temp name per write: two concurrent writes to the same path within
93
+ // the same millisecond must not share a temp file, or one rename consumes the
94
+ // other's temp and the loser throws ENOENT.
95
+ const temp = `${filePath}.${process.pid}.${Date.now()}.${randomUUID()}.tmp`;
75
96
  await fsp.writeFile(temp, `${JSON.stringify(value, null, 2)}\n`, {
76
97
  encoding: "utf8",
77
98
  mode: options?.mode ?? 0o644,
@@ -81,6 +102,19 @@ export async function writeJson(filePath, value, options) {
81
102
  await fsp.chmod(filePath, options.mode);
82
103
  }
83
104
  }
105
+ export function writeJson(filePath, value, options) {
106
+ return withPathLock(filePath, () => writeJsonRaw(filePath, value, options));
107
+ }
108
+ /**
109
+ * Atomically read, transform, and write a JSON file under the per-path lock so
110
+ * a concurrent writer cannot clobber fields between the read and the write.
111
+ */
112
+ export function updateJson(filePath, transform) {
113
+ return withPathLock(filePath, async () => {
114
+ const current = await readJson(filePath);
115
+ await writeJsonRaw(filePath, transform(current));
116
+ });
117
+ }
84
118
  export function commandExists(command) {
85
119
  const result = spawnSync("sh", ["-c", `command -v ${shellQuote(command)}`], {
86
120
  encoding: "utf8",
@@ -92,6 +126,7 @@ const TOOL_INSTALL_HINTS = {
92
126
  claude: "Install with `npm install -g @anthropic-ai/claude-code` (see https://github.com/anthropics/claude-code).",
93
127
  codex: "Install with `npm install -g @openai/codex` (see https://github.com/openai/codex).",
94
128
  acpx: "Install with `npm install -g acpx@latest` or run `rudder onboard`.",
129
+ jj: "Install jj: brew install jj (or cargo install jj-cli) - https://jj-vcs.github.io",
95
130
  };
96
131
  export class MissingToolError extends Error {
97
132
  tool;
@@ -108,11 +143,6 @@ export function formatMissingToolMessage(tool, hintOverride) {
108
143
  const hint = hintOverride ?? TOOL_INSTALL_HINTS[tool] ?? "Please install it and ensure it is on your PATH.";
109
144
  return `${tool} is not installed or not found on PATH. ${hint}`;
110
145
  }
111
- export function requireBackendTool(tool) {
112
- if (!commandExists(tool)) {
113
- throw new MissingToolError(tool);
114
- }
115
- }
116
146
  export function isMissingToolSpawnError(error) {
117
147
  if (!error || typeof error !== "object") {
118
148
  return false;
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,23 @@
1
1
  {
2
2
  "name": "@viraatdas/rudder",
3
- "version": "1.0.73",
3
+ "version": "1.1.0",
4
4
  "description": "A Claude Code-style terminal app for running coding agents with worktree-isolated runs.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://rudder.viraat.dev",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/viraatdas/rudder.git"
10
+ },
7
11
  "type": "module",
8
12
  "bin": {
9
13
  "rudder": "dist/index.js"
10
14
  },
11
15
  "scripts": {
12
- "build": "tsc -p tsconfig.json && npm run build-native && npm run copy-native",
16
+ "build": "tsc -p tsconfig.json && npm run build-board && npm run build-native && npm run copy-native",
17
+ "build-board": "esbuild src/board/ui/index.tsx --bundle --minify --format=esm --jsx=automatic --jsx-import-source=preact --outfile=dist/board/board.js && esbuild src/board/ui/board.css --bundle --minify --outfile=dist/board/board.css",
13
18
  "build-native": "cargo build --release --manifest-path native/Cargo.toml",
14
19
  "check": "tsc -p tsconfig.json --noEmit",
20
+ "test": "tsc -p tsconfig.json && node --test tests/*.test.mjs",
15
21
  "test:worker-scroll": "cargo test --manifest-path native/Cargo.toml top_origin_scroll_region_history_scrolls_like_terminal_scrollback && cargo test --manifest-path native/Cargo.toml worker_wheel && cargo test --manifest-path native/Cargo.toml wheel_scroll && cargo test --manifest-path native/Cargo.toml worker_page && cargo test --manifest-path native/Cargo.toml codex_alternate_screen_page_key",
16
22
  "copy-native": "node -e \"const fs=require('fs');const path=require('path');const sources=[path.join('target','release','rudder-native'),path.join('native','target','release','rudder-native')];const src=sources.find((candidate)=>fs.existsSync(candidate));const dest=path.join('dist','native','rudder-native');if(src){fs.mkdirSync(path.dirname(dest),{recursive:true});fs.copyFileSync(src,dest);fs.chmodSync(dest,0o755);}else if(fs.existsSync(dest)){fs.unlinkSync(dest);}\"",
17
23
  "prepack": "npm run build",
@@ -33,6 +39,8 @@
33
39
  "@types/node": "^22.15.3",
34
40
  "@types/react": "^19.2.14",
35
41
  "@types/ws": "^8.5.13",
42
+ "esbuild": "^0.24.0",
43
+ "preact": "^10.25.0",
36
44
  "typescript": "^5.8.3"
37
45
  },
38
46
  "dependencies": {