macro-agent 0.1.10 → 0.1.11
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.
- package/CLAUDE.md +97 -0
- package/dist/acp/macro-agent.d.ts.map +1 -1
- package/dist/acp/macro-agent.js +42 -6
- package/dist/acp/macro-agent.js.map +1 -1
- package/dist/adapters/tasks-adapter.d.ts.map +1 -1
- package/dist/adapters/tasks-adapter.js +3 -0
- package/dist/adapters/tasks-adapter.js.map +1 -1
- package/dist/adapters/types.d.ts +1 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/agent/agent-manager-v2.d.ts.map +1 -1
- package/dist/agent/agent-manager-v2.js +74 -11
- package/dist/agent/agent-manager-v2.js.map +1 -1
- package/dist/agent/agent-store.d.ts +10 -0
- package/dist/agent/agent-store.d.ts.map +1 -1
- package/dist/agent/agent-store.js +22 -0
- package/dist/agent/agent-store.js.map +1 -1
- package/dist/boot-v2.d.ts +88 -1
- package/dist/boot-v2.d.ts.map +1 -1
- package/dist/boot-v2.js +343 -7
- package/dist/boot-v2.js.map +1 -1
- package/dist/cli/acp.js +4 -0
- package/dist/cli/acp.js.map +1 -1
- package/dist/lifecycle/cascade.d.ts +25 -2
- package/dist/lifecycle/cascade.d.ts.map +1 -1
- package/dist/lifecycle/cascade.js +70 -2
- package/dist/lifecycle/cascade.js.map +1 -1
- package/dist/map/cascade-action-handler.d.ts +24 -0
- package/dist/map/cascade-action-handler.d.ts.map +1 -0
- package/dist/map/cascade-action-handler.js +170 -0
- package/dist/map/cascade-action-handler.js.map +1 -0
- package/dist/map/cascade-bridge.d.ts.map +1 -1
- package/dist/map/cascade-bridge.js +42 -5
- package/dist/map/cascade-bridge.js.map +1 -1
- package/dist/map/coordination-handler.d.ts.map +1 -1
- package/dist/map/coordination-handler.js +12 -1
- package/dist/map/coordination-handler.js.map +1 -1
- package/dist/map/server.d.ts.map +1 -1
- package/dist/map/server.js +172 -1
- package/dist/map/server.js.map +1 -1
- package/dist/map/sidecar.d.ts.map +1 -1
- package/dist/map/sidecar.js +18 -2
- package/dist/map/sidecar.js.map +1 -1
- package/dist/map/types.d.ts +2 -0
- package/dist/map/types.d.ts.map +1 -1
- package/dist/workspace/git-cascade-adapter.d.ts +1 -1
- package/dist/workspace/git-cascade-adapter.d.ts.map +1 -1
- package/dist/workspace/git-cascade-adapter.js +26 -0
- package/dist/workspace/git-cascade-adapter.js.map +1 -1
- package/dist/workspace/landing/merge-to-parent.d.ts.map +1 -1
- package/dist/workspace/landing/merge-to-parent.js +1 -0
- package/dist/workspace/landing/merge-to-parent.js.map +1 -1
- package/dist/workspace/recovery/spawn-resolver.d.ts.map +1 -1
- package/dist/workspace/recovery/spawn-resolver.js +8 -1
- package/dist/workspace/recovery/spawn-resolver.js.map +1 -1
- package/dist/workspace/types-v3.d.ts +7 -0
- package/dist/workspace/types-v3.d.ts.map +1 -1
- package/dist/workspace/types-v3.js.map +1 -1
- package/dist/workspace/types.d.ts +17 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/workspace-manager.d.ts +9 -0
- package/dist/workspace/workspace-manager.d.ts.map +1 -1
- package/dist/workspace/workspace-manager.js +45 -2
- package/dist/workspace/workspace-manager.js.map +1 -1
- package/docs/design/task-dispatcher.md +880 -0
- package/package.json +3 -2
- package/src/__tests__/boot-v2.test.ts +435 -0
- package/src/__tests__/e2e/acp-over-map.e2e.test.ts +92 -0
- package/src/__tests__/e2e/bootstrap.e2e.test.ts +319 -0
- package/src/__tests__/e2e/dispatch-coordination.e2e.test.ts +495 -0
- package/src/__tests__/e2e/dispatch-live.e2e.test.ts +564 -0
- package/src/__tests__/e2e/dispatch-opentasks.e2e.test.ts +496 -0
- package/src/__tests__/e2e/dispatch-phase2-live.e2e.test.ts +456 -0
- package/src/__tests__/e2e/dispatch-phase2.e2e.test.ts +386 -0
- package/src/__tests__/e2e/dispatch.e2e.test.ts +376 -0
- package/src/acp/macro-agent.ts +41 -6
- package/src/adapters/__tests__/tasks-adapter.test.ts +1 -0
- package/src/adapters/tasks-adapter.ts +3 -0
- package/src/adapters/types.ts +1 -0
- package/src/agent/__tests__/agent-store.test.ts +52 -0
- package/src/agent/agent-manager-v2.ts +79 -11
- package/src/agent/agent-store.ts +24 -0
- package/src/boot-v2.ts +522 -35
- package/src/cli/acp.ts +4 -0
- package/src/lifecycle/__tests__/cascade-consolidation.test.ts +240 -0
- package/src/lifecycle/cascade.ts +77 -2
- package/src/map/__tests__/emit-event.test.ts +71 -0
- package/src/map/cascade-action-handler.ts +205 -0
- package/src/map/cascade-bridge.ts +43 -5
- package/src/map/coordination-handler.ts +13 -1
- package/src/map/server.ts +178 -1
- package/src/map/sidecar.ts +19 -2
- package/src/map/types.ts +3 -0
- package/src/workspace/__tests__/land-dispatch.test.ts +214 -0
- package/src/workspace/git-cascade-adapter.ts +30 -3
- package/src/workspace/landing/__tests__/strategies.test.ts +42 -0
- package/src/workspace/landing/merge-to-parent.ts +1 -0
- package/src/workspace/recovery/spawn-resolver.ts +8 -1
- package/src/workspace/types-v3.ts +7 -0
- package/src/workspace/types.ts +20 -0
- package/src/workspace/workspace-manager.ts +61 -2
- package/dist/workspace/dataplane-adapter.d.ts +0 -260
- package/dist/workspace/dataplane-adapter.d.ts.map +0 -1
- package/dist/workspace/dataplane-adapter.js +0 -416
- package/dist/workspace/dataplane-adapter.js.map +0 -1
package/src/workspace/types.ts
CHANGED
|
@@ -353,12 +353,17 @@ export interface WorkspaceManager {
|
|
|
353
353
|
|
|
354
354
|
/**
|
|
355
355
|
* Merge a source stream into a target stream.
|
|
356
|
+
*
|
|
357
|
+
* `metadata` is forwarded into the `x-cascade/stream.merged` emit so
|
|
358
|
+
* consumers (e.g., the OpenHive hub) can bind the merge to a task ref.
|
|
359
|
+
* Landing strategies pass `{ task_ref: ctx.taskRef }` through here.
|
|
356
360
|
*/
|
|
357
361
|
mergeStream(opts: {
|
|
358
362
|
sourceStreamId: StreamId;
|
|
359
363
|
targetStreamId: StreamId;
|
|
360
364
|
agentId: import('./types-v3.js').Principal;
|
|
361
365
|
worktree: string;
|
|
366
|
+
metadata?: import('git-cascade/events').EventMetadata;
|
|
362
367
|
}): import('./types-v3.js').MergeResult;
|
|
363
368
|
|
|
364
369
|
/**
|
|
@@ -422,6 +427,21 @@ export interface WorkspaceManager {
|
|
|
422
427
|
*/
|
|
423
428
|
registerLandingStrategy(strategy: import('./types-v3.js').LandingStrategy): void;
|
|
424
429
|
|
|
430
|
+
/**
|
|
431
|
+
* Dispatch a landing. Resolves the strategy by `ctx.strategyName`
|
|
432
|
+
* (defaulting to `merge-to-parent`), accepts both internal and YAML-style
|
|
433
|
+
* names, and invokes the strategy's `land(ctx)`. Strategies call back
|
|
434
|
+
* into this manager via `ctx.workspaceManager`, which is filled in here.
|
|
435
|
+
*
|
|
436
|
+
* Returns the strategy's `MergeResult`. Conflicts are reflected in the
|
|
437
|
+
* result (`success: false` + `conflicts: [...]`); thrown errors indicate
|
|
438
|
+
* unrecoverable failures (unknown strategy, strategy rejected context,
|
|
439
|
+
* transport-level issues).
|
|
440
|
+
*/
|
|
441
|
+
land(
|
|
442
|
+
ctx: import('./types-v3.js').LandingContext,
|
|
443
|
+
): Promise<import('./types-v3.js').MergeResult>;
|
|
444
|
+
|
|
425
445
|
/**
|
|
426
446
|
* Run macro-level reconciliation:
|
|
427
447
|
* - Delegates to git-cascade's `reconcile()` for stream↔git sync.
|
|
@@ -1107,9 +1107,18 @@ export class DefaultWorkspaceManager implements WorkspaceManager {
|
|
|
1107
1107
|
targetStreamId: StreamId;
|
|
1108
1108
|
agentId: import('./types-v3.js').Principal;
|
|
1109
1109
|
worktree: string;
|
|
1110
|
+
/**
|
|
1111
|
+
* Free-form metadata forwarded into the `x-cascade/stream.merged` emit.
|
|
1112
|
+
* The canonical binding is `{ task_ref: { resource_id, node_id } }` —
|
|
1113
|
+
* landing strategies thread `LandingContext.taskRef` through here so the
|
|
1114
|
+
* hub's cascade_merges projection records which task drove the merge.
|
|
1115
|
+
*/
|
|
1116
|
+
metadata?: import('git-cascade/events').EventMetadata;
|
|
1110
1117
|
}): import('./types-v3.js').MergeResult {
|
|
1111
|
-
// git-cascade's MergeStreamOptions uses `sourceStream`/`targetStream
|
|
1112
|
-
//
|
|
1118
|
+
// git-cascade's MergeStreamOptions uses `sourceStream`/`targetStream` and
|
|
1119
|
+
// doesn't accept an opts.metadata field — the tagging is our concern, not
|
|
1120
|
+
// the tracker's. Carry `opts.metadata` through on the emitted event
|
|
1121
|
+
// instead, which is what the hub's cascade_merges projection reads.
|
|
1113
1122
|
const result = this.adapter.mergeStream({
|
|
1114
1123
|
sourceStream: opts.sourceStreamId,
|
|
1115
1124
|
targetStream: opts.targetStreamId,
|
|
@@ -1121,6 +1130,7 @@ export class DefaultWorkspaceManager implements WorkspaceManager {
|
|
|
1121
1130
|
sourceStreamId: opts.sourceStreamId,
|
|
1122
1131
|
targetStreamId: opts.targetStreamId,
|
|
1123
1132
|
mergeCommit: result.newHead,
|
|
1133
|
+
...(opts.metadata ? { metadata: opts.metadata } : {}),
|
|
1124
1134
|
});
|
|
1125
1135
|
} else {
|
|
1126
1136
|
this.emit('stream:conflicted', {
|
|
@@ -1295,6 +1305,31 @@ export class DefaultWorkspaceManager implements WorkspaceManager {
|
|
|
1295
1305
|
this.landingStrategies.set(strategy.name, strategy);
|
|
1296
1306
|
}
|
|
1297
1307
|
|
|
1308
|
+
async land(
|
|
1309
|
+
ctx: import('./types-v3.js').LandingContext,
|
|
1310
|
+
): Promise<import('./types-v3.js').MergeResult> {
|
|
1311
|
+
const internalName = resolveLandingStrategyName(ctx.strategyName);
|
|
1312
|
+
if (internalName === 'none') {
|
|
1313
|
+
return { success: true, alreadyMerged: true } as import('./types-v3.js').MergeResult;
|
|
1314
|
+
}
|
|
1315
|
+
const strategy = this.landingStrategies.get(internalName);
|
|
1316
|
+
if (!strategy) {
|
|
1317
|
+
throw new Error(
|
|
1318
|
+
`No landing strategy registered for "${internalName}" (from ctx.strategyName="${ctx.strategyName ?? 'merge-to-parent'}"). Registered: ${Array.from(this.landingStrategies.keys()).join(', ') || '<none>'}.`,
|
|
1319
|
+
);
|
|
1320
|
+
}
|
|
1321
|
+
const resolved: import('./types-v3.js').LandingContext = {
|
|
1322
|
+
...ctx,
|
|
1323
|
+
workspaceManager: this,
|
|
1324
|
+
};
|
|
1325
|
+
if (strategy.canLand && !strategy.canLand(resolved)) {
|
|
1326
|
+
throw new Error(
|
|
1327
|
+
`Landing strategy "${internalName}" rejected context for agent ${ctx.agentId}, stream ${ctx.streamId}`,
|
|
1328
|
+
);
|
|
1329
|
+
}
|
|
1330
|
+
return strategy.land(resolved);
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1298
1333
|
reconcileV3(): import('./types-v3.js').MacroReconcileResult {
|
|
1299
1334
|
const result: import('./types-v3.js').MacroReconcileResult = {
|
|
1300
1335
|
streamsChecked: 0,
|
|
@@ -1516,3 +1551,27 @@ export function createWorkspaceManagerWithAdapter(
|
|
|
1516
1551
|
): DefaultWorkspaceManager {
|
|
1517
1552
|
return new DefaultWorkspaceManager(adapter, config);
|
|
1518
1553
|
}
|
|
1554
|
+
|
|
1555
|
+
// ═════════════════════════════════════════════════════════════════════════════
|
|
1556
|
+
// Landing strategy name resolution
|
|
1557
|
+
// ═════════════════════════════════════════════════════════════════════════════
|
|
1558
|
+
//
|
|
1559
|
+
// YAML uses snake_case (`merge_to_parent_stream`, `queue_to_branch`, …) to
|
|
1560
|
+
// match the team-config naming convention. Strategy classes expose
|
|
1561
|
+
// kebab-case internal names (`merge-to-parent`, …). `WorkspaceManager.land()`
|
|
1562
|
+
// accepts either and normalizes before dispatch so AgentManagerV2 can pass
|
|
1563
|
+
// `roleConfig.landing` directly without another translation layer.
|
|
1564
|
+
|
|
1565
|
+
const YAML_TO_INTERNAL_LANDING: Record<string, string> = {
|
|
1566
|
+
merge_to_parent_stream: 'merge-to-parent',
|
|
1567
|
+
queue_to_branch: 'queue-to-branch',
|
|
1568
|
+
direct_push: 'direct-push',
|
|
1569
|
+
optimistic_push: 'optimistic-push',
|
|
1570
|
+
cherry_pick_stack: 'cherry-pick-stack',
|
|
1571
|
+
none: 'none',
|
|
1572
|
+
};
|
|
1573
|
+
|
|
1574
|
+
export function resolveLandingStrategyName(input?: string): string {
|
|
1575
|
+
if (!input) return 'merge-to-parent';
|
|
1576
|
+
return YAML_TO_INTERNAL_LANDING[input] ?? input;
|
|
1577
|
+
}
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dataplane Adapter
|
|
3
|
-
*
|
|
4
|
-
* Wraps MultiAgentRepoTracker to integrate with macro-agent's event system
|
|
5
|
-
* and provide a simplified interface for workspace management.
|
|
6
|
-
*
|
|
7
|
-
* @module workspace/dataplane-adapter
|
|
8
|
-
* @implements [[s-7ktd]] Dataplane Integration section
|
|
9
|
-
*/
|
|
10
|
-
import Database from 'better-sqlite3';
|
|
11
|
-
import { MultiAgentRepoTracker, type Stream, type StreamStatus, type CreateStreamOptions, type AgentWorktree, type CreateWorktreeOptions, type WorkerTask, type CreateTaskOptions, type StartTaskOptions, type CompleteTaskOptions, type StartTaskResult, type CompleteTaskResult, type ListTasksOptions, type CleanupWorkerBranchesOptions, type CleanupResult, type Checkpoint } from 'git-cascade';
|
|
12
|
-
import type { DataplaneConfig } from './config.js';
|
|
13
|
-
/**
|
|
14
|
-
* Event types emitted by DataplaneAdapter
|
|
15
|
-
*/
|
|
16
|
-
export type DataplaneEventType = 'stream:created' | 'stream:updated' | 'stream:abandoned' | 'worktree:created' | 'worktree:deallocated' | 'task:created' | 'task:started' | 'task:completed' | 'task:abandoned';
|
|
17
|
-
/**
|
|
18
|
-
* Event payload for dataplane events
|
|
19
|
-
*/
|
|
20
|
-
export interface DataplaneEvent {
|
|
21
|
-
type: DataplaneEventType;
|
|
22
|
-
timestamp: number;
|
|
23
|
-
data: Record<string, unknown>;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Callback for dataplane events
|
|
27
|
-
*/
|
|
28
|
-
export type DataplaneEventCallback = (event: DataplaneEvent) => void;
|
|
29
|
-
/**
|
|
30
|
-
* DataplaneAdapter wraps MultiAgentRepoTracker for macro-agent integration.
|
|
31
|
-
*
|
|
32
|
-
* Key responsibilities:
|
|
33
|
-
* - Initialize dataplane with shared or dedicated database
|
|
34
|
-
* - Emit events on dataplane operations
|
|
35
|
-
* - Provide simplified API for workspace management
|
|
36
|
-
*/
|
|
37
|
-
export declare class DataplaneAdapter {
|
|
38
|
-
private readonly tracker;
|
|
39
|
-
private readonly config;
|
|
40
|
-
private readonly eventListeners;
|
|
41
|
-
private readonly ownsDb;
|
|
42
|
-
/**
|
|
43
|
-
* Create a new DataplaneAdapter.
|
|
44
|
-
*
|
|
45
|
-
* @param config - Dataplane configuration
|
|
46
|
-
*/
|
|
47
|
-
constructor(config: DataplaneConfig);
|
|
48
|
-
/**
|
|
49
|
-
* Get whether dataplane is enabled.
|
|
50
|
-
*/
|
|
51
|
-
get enabled(): boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Get the repository path.
|
|
54
|
-
*/
|
|
55
|
-
get repoPath(): string;
|
|
56
|
-
/**
|
|
57
|
-
* Get the underlying database connection.
|
|
58
|
-
* Use with caution - prefer adapter methods for operations.
|
|
59
|
-
*/
|
|
60
|
-
get db(): Database.Database;
|
|
61
|
-
/**
|
|
62
|
-
* Get the underlying tracker.
|
|
63
|
-
* Use with caution - prefer adapter methods for operations.
|
|
64
|
-
*/
|
|
65
|
-
get rawTracker(): MultiAgentRepoTracker;
|
|
66
|
-
/**
|
|
67
|
-
* Subscribe to dataplane events.
|
|
68
|
-
*
|
|
69
|
-
* @param callback - Function called when events occur
|
|
70
|
-
* @returns Unsubscribe function
|
|
71
|
-
*/
|
|
72
|
-
onEvent(callback: DataplaneEventCallback): () => void;
|
|
73
|
-
/**
|
|
74
|
-
* Emit an event to all listeners.
|
|
75
|
-
*/
|
|
76
|
-
private emit;
|
|
77
|
-
/**
|
|
78
|
-
* Create a new stream (integration branch).
|
|
79
|
-
*
|
|
80
|
-
* @param options - Stream creation options
|
|
81
|
-
* @returns Stream ID
|
|
82
|
-
*/
|
|
83
|
-
createStream(options: CreateStreamOptions): string;
|
|
84
|
-
/**
|
|
85
|
-
* Get a stream by ID.
|
|
86
|
-
*/
|
|
87
|
-
getStream(streamId: string): Stream | null;
|
|
88
|
-
/**
|
|
89
|
-
* List streams with optional filters.
|
|
90
|
-
*/
|
|
91
|
-
listStreams(options?: {
|
|
92
|
-
agentId?: string;
|
|
93
|
-
status?: StreamStatus;
|
|
94
|
-
}): Stream[];
|
|
95
|
-
/**
|
|
96
|
-
* Update a stream.
|
|
97
|
-
*/
|
|
98
|
-
updateStream(streamId: string, updates: Partial<Pick<Stream, 'name' | 'status' | 'metadata'>>): void;
|
|
99
|
-
/**
|
|
100
|
-
* Abandon a stream.
|
|
101
|
-
*/
|
|
102
|
-
abandonStream(streamId: string, options?: {
|
|
103
|
-
reason?: string;
|
|
104
|
-
cascade?: boolean;
|
|
105
|
-
}): void;
|
|
106
|
-
/**
|
|
107
|
-
* Get the git branch name for a stream.
|
|
108
|
-
*/
|
|
109
|
-
getStreamBranchName(streamId: string): string;
|
|
110
|
-
/**
|
|
111
|
-
* Get the HEAD commit of a stream.
|
|
112
|
-
*/
|
|
113
|
-
getStreamHead(streamId: string): string;
|
|
114
|
-
/**
|
|
115
|
-
* Create a worktree for an agent.
|
|
116
|
-
*
|
|
117
|
-
* @param options - Worktree creation options
|
|
118
|
-
* @returns Created worktree info
|
|
119
|
-
*/
|
|
120
|
-
createWorktree(options: CreateWorktreeOptions): AgentWorktree;
|
|
121
|
-
/**
|
|
122
|
-
* Get a worktree by agent ID.
|
|
123
|
-
*/
|
|
124
|
-
getWorktree(agentId: string): AgentWorktree | null;
|
|
125
|
-
/**
|
|
126
|
-
* List all worktrees.
|
|
127
|
-
*/
|
|
128
|
-
listWorktrees(): AgentWorktree[];
|
|
129
|
-
/**
|
|
130
|
-
* Update the stream associated with a worktree.
|
|
131
|
-
*/
|
|
132
|
-
updateWorktreeStream(agentId: string, streamId: string | null): void;
|
|
133
|
-
/**
|
|
134
|
-
* Deallocate a worktree.
|
|
135
|
-
*/
|
|
136
|
-
deallocateWorktree(agentId: string): void;
|
|
137
|
-
/**
|
|
138
|
-
* Create a worker task under a stream.
|
|
139
|
-
*
|
|
140
|
-
* @param options - Task creation options
|
|
141
|
-
* @returns Task ID
|
|
142
|
-
*/
|
|
143
|
-
createTask(options: CreateTaskOptions): string;
|
|
144
|
-
/**
|
|
145
|
-
* Get a task by ID.
|
|
146
|
-
*/
|
|
147
|
-
getTask(taskId: string): WorkerTask | null;
|
|
148
|
-
/**
|
|
149
|
-
* List tasks for a stream.
|
|
150
|
-
*/
|
|
151
|
-
listTasks(streamId: string, options?: ListTasksOptions): WorkerTask[];
|
|
152
|
-
/**
|
|
153
|
-
* Start a task - assigns agent and creates worker branch.
|
|
154
|
-
*
|
|
155
|
-
* @param options - Start task options
|
|
156
|
-
* @returns Branch name and start commit
|
|
157
|
-
*/
|
|
158
|
-
startTask(options: StartTaskOptions): StartTaskResult;
|
|
159
|
-
/**
|
|
160
|
-
* Complete a task - merges worker branch to stream.
|
|
161
|
-
*
|
|
162
|
-
* @param options - Complete task options
|
|
163
|
-
* @returns Merge result
|
|
164
|
-
*/
|
|
165
|
-
completeTask(options: CompleteTaskOptions): CompleteTaskResult;
|
|
166
|
-
/**
|
|
167
|
-
* Abandon a task.
|
|
168
|
-
*
|
|
169
|
-
* @param taskId - Task ID
|
|
170
|
-
* @param options - Options
|
|
171
|
-
*/
|
|
172
|
-
abandonTask(taskId: string, options?: {
|
|
173
|
-
deleteBranch?: boolean;
|
|
174
|
-
}): void;
|
|
175
|
-
/**
|
|
176
|
-
* Release a task back to 'open' status.
|
|
177
|
-
*/
|
|
178
|
-
releaseTask(taskId: string): void;
|
|
179
|
-
/**
|
|
180
|
-
* Detect conflicts for a task before completing.
|
|
181
|
-
*
|
|
182
|
-
* @param taskId - Task ID
|
|
183
|
-
* @param worktree - Worktree path
|
|
184
|
-
* @returns Array of conflicting file paths, empty if no conflicts
|
|
185
|
-
*/
|
|
186
|
-
detectTaskConflicts(taskId: string, worktree: string): string[];
|
|
187
|
-
/**
|
|
188
|
-
* Recover stale tasks that have been in_progress too long.
|
|
189
|
-
*
|
|
190
|
-
* @param thresholdMs - Tasks older than this are considered stale
|
|
191
|
-
* @returns Result with released task IDs
|
|
192
|
-
*/
|
|
193
|
-
recoverStaleTasks(thresholdMs?: number): {
|
|
194
|
-
released: string[];
|
|
195
|
-
};
|
|
196
|
-
/**
|
|
197
|
-
* Create checkpoints for commits made during a task.
|
|
198
|
-
*
|
|
199
|
-
* Creates a checkpoint for each commit between the task's startCommit and
|
|
200
|
-
* the current HEAD of the task's stream. This captures the work done during
|
|
201
|
-
* the task for future review and merge workflows.
|
|
202
|
-
*
|
|
203
|
-
* @param taskId - Task ID to create checkpoints for
|
|
204
|
-
* @param agentId - Agent ID (used as createdBy)
|
|
205
|
-
* @returns Array of created checkpoints
|
|
206
|
-
*/
|
|
207
|
-
createCheckpointsForTask(taskId: string, agentId: string): Checkpoint[];
|
|
208
|
-
/**
|
|
209
|
-
* Commit changes in a worktree with Change tracking.
|
|
210
|
-
*
|
|
211
|
-
* @param options - Commit options
|
|
212
|
-
* @returns Commit hash and change ID
|
|
213
|
-
*/
|
|
214
|
-
commitChanges(options: {
|
|
215
|
-
streamId: string;
|
|
216
|
-
agentId: string;
|
|
217
|
-
worktree: string;
|
|
218
|
-
message: string;
|
|
219
|
-
}): {
|
|
220
|
-
commit: string;
|
|
221
|
-
changeId: string;
|
|
222
|
-
};
|
|
223
|
-
/**
|
|
224
|
-
* Clean up old worker branches.
|
|
225
|
-
*
|
|
226
|
-
* Deletes branches for:
|
|
227
|
-
* - Completed tasks older than threshold (default 24h)
|
|
228
|
-
* - Abandoned tasks
|
|
229
|
-
* - Orphaned branches (no task record)
|
|
230
|
-
*
|
|
231
|
-
* @param options - Cleanup options
|
|
232
|
-
* @returns Deleted branches and any errors
|
|
233
|
-
*/
|
|
234
|
-
cleanupWorkerBranches(options?: CleanupWorkerBranchesOptions): CleanupResult;
|
|
235
|
-
/**
|
|
236
|
-
* Delete a specific worker branch.
|
|
237
|
-
*
|
|
238
|
-
* @param branchName - Branch name to delete
|
|
239
|
-
* @returns true if deleted, false if branch didn't exist
|
|
240
|
-
*/
|
|
241
|
-
deleteWorkerBranch(branchName: string): boolean;
|
|
242
|
-
/**
|
|
243
|
-
* Check system health.
|
|
244
|
-
*/
|
|
245
|
-
healthCheck(): ReturnType<MultiAgentRepoTracker['healthCheck']>;
|
|
246
|
-
/**
|
|
247
|
-
* Close the adapter and release resources.
|
|
248
|
-
*
|
|
249
|
-
* Only closes the database if we created it (not if using shared DB).
|
|
250
|
-
*/
|
|
251
|
-
close(): void;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Create a DataplaneAdapter instance.
|
|
255
|
-
*
|
|
256
|
-
* @param config - Configuration options
|
|
257
|
-
* @returns DataplaneAdapter instance
|
|
258
|
-
*/
|
|
259
|
-
export declare function createDataplaneAdapter(config: DataplaneConfig): DataplaneAdapter;
|
|
260
|
-
//# sourceMappingURL=dataplane-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataplane-adapter.d.ts","sourceRoot":"","sources":["../../src/workspace/dataplane-adapter.ts"],"names":[],"mappings":"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"}
|