@flyingrobots/graft 0.13.0 → 0.14.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 (60) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/cli/daemon-status-model.d.ts +1 -0
  3. package/dist/cli/daemon-status-model.d.ts.map +1 -1
  4. package/dist/cli/daemon-status-model.js +1 -0
  5. package/dist/cli/daemon-status-model.js.map +1 -1
  6. package/dist/cli/daemon-status-render.d.ts.map +1 -1
  7. package/dist/cli/daemon-status-render.js +1 -0
  8. package/dist/cli/daemon-status-render.js.map +1 -1
  9. package/dist/contracts/output-schema-fragments.d.ts +2 -0
  10. package/dist/contracts/output-schema-fragments.d.ts.map +1 -1
  11. package/dist/contracts/output-schema-fragments.js +1 -0
  12. package/dist/contracts/output-schema-fragments.js.map +1 -1
  13. package/dist/contracts/output-schema-mcp.d.ts +1 -0
  14. package/dist/contracts/output-schema-mcp.d.ts.map +1 -1
  15. package/dist/contracts/output-schema-meta.js +1 -1
  16. package/dist/contracts/output-schema-meta.js.map +1 -1
  17. package/dist/contracts/output-schemas.d.ts.map +1 -1
  18. package/dist/contracts/output-schemas.js +1 -0
  19. package/dist/contracts/output-schemas.js.map +1 -1
  20. package/dist/mcp/control-plane/types.d.ts +1 -0
  21. package/dist/mcp/control-plane/types.d.ts.map +1 -1
  22. package/dist/mcp/daemon-server.d.ts +4 -0
  23. package/dist/mcp/daemon-server.d.ts.map +1 -1
  24. package/dist/mcp/daemon-server.js +37 -12
  25. package/dist/mcp/daemon-server.js.map +1 -1
  26. package/dist/mcp/daemon-session-host.d.ts +2 -2
  27. package/dist/mcp/daemon-session-host.d.ts.map +1 -1
  28. package/dist/mcp/daemon-session-host.js +130 -59
  29. package/dist/mcp/daemon-session-host.js.map +1 -1
  30. package/dist/mcp/persisted-local-history.d.ts +5 -0
  31. package/dist/mcp/persisted-local-history.d.ts.map +1 -1
  32. package/dist/mcp/persisted-local-history.js +5 -1
  33. package/dist/mcp/persisted-local-history.js.map +1 -1
  34. package/dist/mcp/server-context.d.ts.map +1 -1
  35. package/dist/mcp/server-context.js +28 -11
  36. package/dist/mcp/server-context.js.map +1 -1
  37. package/dist/mcp/server-invocation.d.ts.map +1 -1
  38. package/dist/mcp/server-invocation.js +15 -7
  39. package/dist/mcp/server-invocation.js.map +1 -1
  40. package/dist/mcp/server.d.ts +3 -2
  41. package/dist/mcp/server.d.ts.map +1 -1
  42. package/dist/mcp/server.js +22 -10
  43. package/dist/mcp/server.js.map +1 -1
  44. package/dist/mcp/warp-pool.d.ts +45 -6
  45. package/dist/mcp/warp-pool.d.ts.map +1 -1
  46. package/dist/mcp/warp-pool.js +128 -19
  47. package/dist/mcp/warp-pool.js.map +1 -1
  48. package/dist/mcp/workspace-router-model.d.ts +4 -1
  49. package/dist/mcp/workspace-router-model.d.ts.map +1 -1
  50. package/dist/mcp/workspace-router-model.js.map +1 -1
  51. package/dist/mcp/workspace-router-runtime.d.ts +15 -5
  52. package/dist/mcp/workspace-router-runtime.d.ts.map +1 -1
  53. package/dist/mcp/workspace-router-runtime.js +47 -7
  54. package/dist/mcp/workspace-router-runtime.js.map +1 -1
  55. package/dist/mcp/workspace-router.d.ts +20 -10
  56. package/dist/mcp/workspace-router.d.ts.map +1 -1
  57. package/dist/mcp/workspace-router.js +254 -125
  58. package/dist/mcp/workspace-router.js.map +1 -1
  59. package/docs/MCP.md +54 -0
  60. package/package.json +1 -1
@@ -1,30 +1,139 @@
1
- import { DEFAULT_WARP_WRITER_ID } from "../warp/writer-id.js";
1
+ export const DEFAULT_MAX_WARP_RESIDENTS = 4;
2
+ const MAX_CONFIGURED_WARP_RESIDENTS = 64;
3
+ export function resolveWarpPoolOptions(env) {
4
+ const configured = env["GRAFT_WARP_MAX_RESIDENTS"];
5
+ if (configured === undefined)
6
+ return {};
7
+ const value = configured.trim();
8
+ const maxResidents = /^\d+$/.test(value) ? Number(value) : NaN;
9
+ validateCapacity(maxResidents);
10
+ return { maxResidents };
11
+ }
12
+ function validateCapacity(capacity) {
13
+ if (!Number.isInteger(capacity) || capacity < 1 || capacity > MAX_CONFIGURED_WARP_RESIDENTS) {
14
+ throw new RangeError("GRAFT_WARP_MAX_RESIDENTS must be an integer from 1 through 64");
15
+ }
16
+ }
17
+ export class WarpResidentCapacityError extends Error {
18
+ maxResidents;
19
+ code = "WARP_RESIDENT_CAPACITY";
20
+ constructor(maxResidents) {
21
+ super("All " + String(maxResidents) + " WARP resident slots are in use; retry after an operation settles");
22
+ this.maxResidents = maxResidents;
23
+ this.name = "WarpResidentCapacityError";
24
+ }
25
+ }
26
+ /** A finite working set. Map order records actual use, never observation. */
2
27
  export class InMemoryWarpPool {
3
28
  openWarp;
4
- opened = new Map();
5
- constructor(openWarp) {
29
+ residents = new Map();
30
+ maxResidents;
31
+ maxIdleResidents;
32
+ constructor(openWarp, options = {}) {
6
33
  this.openWarp = openWarp;
34
+ this.maxResidents = options.maxResidents ?? DEFAULT_MAX_WARP_RESIDENTS;
35
+ validateCapacity(this.maxResidents);
36
+ this.maxIdleResidents = options.maxIdleResidents ?? this.maxResidents;
37
+ if (!Number.isInteger(this.maxIdleResidents) || this.maxIdleResidents < 0 || this.maxIdleResidents > this.maxResidents) {
38
+ throw new RangeError("maxIdleResidents must be an integer between zero and maxResidents");
39
+ }
7
40
  }
8
- getOrOpen(repoId, worktreeRoot, writerId = DEFAULT_WARP_WRITER_ID) {
9
- const repoHandles = this.opened.get(repoId);
10
- const cached = repoHandles?.get(writerId);
11
- if (cached !== undefined)
12
- return cached;
13
- const nextRepoHandles = repoHandles ?? new Map();
14
- const opened = this.openWarp(worktreeRoot, writerId).catch((error) => {
15
- const current = this.opened.get(repoId);
16
- current?.delete(writerId);
17
- if (current?.size === 0) {
18
- this.opened.delete(repoId);
41
+ async acquire(input) {
42
+ const worktreeRoot = input.worktreeRoot;
43
+ const id = this.id(input.key.repoId, input.key.writerId);
44
+ let resident = this.residents.get(id);
45
+ if (resident?.pins.size === 0 && resident.worktreeRoot !== worktreeRoot) {
46
+ this.residents.delete(id);
47
+ resident = undefined;
48
+ }
49
+ if (resident === undefined) {
50
+ if (this.residents.size >= this.maxResidents && !this.evictOldestIdle()) {
51
+ throw new WarpResidentCapacityError(this.maxResidents);
19
52
  }
53
+ const key = Object.freeze({ repoId: input.key.repoId, writerId: input.key.writerId });
54
+ // Reserve before calling even a synchronously throwing/reentrant opener.
55
+ const opening = Promise.resolve().then(() => this.openWarp(worktreeRoot, key.writerId));
56
+ resident = { key, worktreeRoot, pins: new Map(), opening };
57
+ this.residents.set(id, resident);
58
+ }
59
+ const token = Symbol(input.ownerId);
60
+ resident.pins.set(token, input.ownerId);
61
+ this.touch(id, resident);
62
+ let app;
63
+ try {
64
+ app = await resident.opening;
65
+ }
66
+ catch (error) {
67
+ resident.pins.delete(token);
68
+ if (this.residents.get(id) === resident)
69
+ this.residents.delete(id);
20
70
  throw error;
21
- });
22
- nextRepoHandles.set(writerId, opened);
23
- this.opened.set(repoId, nextRepoHandles);
24
- return opened;
71
+ }
72
+ let owned = resident;
73
+ const key = resident.key;
74
+ return {
75
+ key,
76
+ get app() {
77
+ if (app === null)
78
+ throw new Error("WARP resident lease has been released");
79
+ return app;
80
+ },
81
+ release: () => {
82
+ const current = owned;
83
+ if (current === null)
84
+ return Promise.resolve();
85
+ owned = null;
86
+ app = null;
87
+ current.pins.delete(token);
88
+ if (current.pins.size === 0 && this.residents.get(id) === current) {
89
+ this.touch(id, current);
90
+ this.trimIdle();
91
+ }
92
+ return Promise.resolve();
93
+ },
94
+ };
95
+ }
96
+ id(repoId, writerId) {
97
+ return JSON.stringify([repoId, writerId]);
98
+ }
99
+ touch(id, resident) {
100
+ this.residents.delete(id);
101
+ this.residents.set(id, resident);
102
+ }
103
+ evictOldestIdle() {
104
+ for (const [id, resident] of this.residents) {
105
+ if (resident.pins.size === 0) {
106
+ this.residents.delete(id);
107
+ return true;
108
+ }
109
+ }
110
+ return false;
111
+ }
112
+ trimIdle() {
113
+ let idle = 0;
114
+ for (const resident of this.residents.values())
115
+ if (resident.pins.size === 0)
116
+ idle++;
117
+ while (idle > this.maxIdleResidents && this.evictOldestIdle())
118
+ idle--;
119
+ }
120
+ leaseCount(repoId, writerId) {
121
+ return this.residents.get(this.id(repoId, writerId))?.pins.size ?? 0;
122
+ }
123
+ has(repoId, writerId) {
124
+ if (writerId !== undefined)
125
+ return this.residents.has(this.id(repoId, writerId));
126
+ for (const resident of this.residents.values())
127
+ if (resident.key.repoId === repoId)
128
+ return true;
129
+ return false;
25
130
  }
26
131
  size() {
27
- return this.opened.size;
132
+ return new Set([...this.residents.values()].map((resident) => resident.key.repoId)).size;
133
+ }
134
+ /** Includes opening reservations as well as pinned and idle loaded handles. */
135
+ residentCount() {
136
+ return this.residents.size;
28
137
  }
29
138
  }
30
139
  //# sourceMappingURL=warp-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"warp-pool.js","sourceRoot":"","sources":["../../src/mcp/warp-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,MAAM,OAAO,gBAAgB;IAGE;IAFZ,MAAM,GAAG,IAAI,GAAG,EAAyC,CAAC;IAE3E,YAA6B,QAAsE;QAAtE,aAAQ,GAAR,QAAQ,CAA8D;IAAG,CAAC;IAEvG,SAAS,CAAC,MAAc,EAAE,YAAoB,EAAE,WAAmB,sBAAsB;QACvF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,MAAM,eAAe,GAAG,WAAW,IAAI,IAAI,GAAG,EAA4B,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAI,OAAO,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"warp-pool.js","sourceRoot":"","sources":["../../src/mcp/warp-pool.ts"],"names":[],"mappings":"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"}
@@ -108,7 +108,9 @@ export interface WorkspaceExecutionContext {
108
108
  readonly resolvePath: (input: string) => string;
109
109
  readonly capabilityProfile: WorkspaceCapabilityProfile;
110
110
  readonly warpWriterId: string;
111
- getCausalContext(): RuntimeCausalContext;
111
+ getCausalContext(observation?: {
112
+ readonly checkoutEpoch: number;
113
+ }): RuntimeCausalContext;
112
114
  readonly status: WorkspaceStatus;
113
115
  readonly governor: GovernorTracker;
114
116
  readonly cache: ObservationCache;
@@ -116,6 +118,7 @@ export interface WorkspaceExecutionContext {
116
118
  readonly graftDir: string;
117
119
  readonly repoState: RepoStateTracker;
118
120
  readonly getWarp: () => Promise<WarpContext>;
121
+ releaseWarpLease(): Promise<void>;
119
122
  }
120
123
  export interface ResolvedWorkspace {
121
124
  readonly repoId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router-model.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-router-model.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAEvF,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;IAC7D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,uBAAuB;gBAExB,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,IAAI,uBAAuB;gBAExB,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,IAAI,8BAA8B;gBAE/B,aAAa,EAAE,MAAM;CAIlC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IAE/C,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,oBAAoB,CAAC;IACzF,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC;IAC9F,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,2BAA2B;IAC1C,yBAAyB,CAAC,KAAK,EAAE;QAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,GAAG,OAAO,8BAA8B,EAAE,uCAAuC,GAAG,IAAI,CAAC;CAC3F;AAED,eAAO,MAAM,iCAAiC,EAAE,0BAO9C,CAAC;AAEH,eAAO,MAAM,qCAAqC,EAAE,0BAOlD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router-model.js","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"AAuFA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC7C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,mEAAmE,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,2DAA2D,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,GAAG,0BAA0B,CAAC;IAE3C,YAAY,aAAqB;QAC/B,KAAK,CAAC,aAAa,aAAa,gGAAgG,CAAC,CAAC;QAClI,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAEtC;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAoDD,MAAM,CAAC,MAAM,iCAAiC,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzF,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qCAAqC,GAA+B,MAAM,CAAC,MAAM,CAAC;IAC7F,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"workspace-router-model.js","sourceRoot":"","sources":["../../src/mcp/workspace-router-model.ts"],"names":[],"mappings":"AAuFA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC7C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,mEAAmE,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,QAAQ,2DAA2D,CAAC,CAAC;QACnF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,GAAG,0BAA0B,CAAC;IAE3C,YAAY,aAAqB;QAC/B,KAAK,CAAC,aAAa,aAAa,gGAAgG,CAAC,CAAC;QAClI,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAEtC;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAqDD,MAAM,CAAC,MAAM,iCAAiC,GAA+B,MAAM,CAAC,MAAM,CAAC;IACzF,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qCAAqC,GAA+B,MAAM,CAAC,MAAM,CAAC;IAC7F,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,IAAI;CACjB,CAAC,CAAC"}
@@ -10,7 +10,7 @@ import { RepoStateTracker, type RepoObservation } from "./repo-state.js";
10
10
  import { type RuntimeCausalContext } from "./runtime-causal-context.js";
11
11
  import { type GitTransitionHookEvent } from "./runtime-workspace-overlay.js";
12
12
  import type { ResolvedWorkspace, WorkspaceCapabilityProfile, WorkspaceExecutionContext, WorkspaceMode, WorkspaceStatus } from "./workspace-router-model.js";
13
- import type { WarpPool } from "./warp-pool.js";
13
+ import type { WarpResidentPool } from "./warp-pool.js";
14
14
  export interface WorkspaceSlice {
15
15
  readonly sliceId: string;
16
16
  readonly governor: GovernorTracker;
@@ -19,6 +19,10 @@ export interface WorkspaceSlice {
19
19
  readonly graftDir: string;
20
20
  readonly repoState: RepoStateTracker | null;
21
21
  }
22
+ export interface WorkspaceWarpLease {
23
+ getWarp(): Promise<WarpContext>;
24
+ release(): Promise<void>;
25
+ }
22
26
  export interface BoundWorkspace {
23
27
  readonly repoId: string;
24
28
  readonly worktreeId: string;
@@ -30,8 +34,14 @@ export interface BoundWorkspace {
30
34
  readonly warpWriterId: string;
31
35
  readonly transportSessionId: string;
32
36
  readonly slice: WorkspaceSlice;
33
- readonly getWarp: () => Promise<WarpContext>;
34
37
  }
38
+ export declare function createWorkspaceWarpLease(input: {
39
+ readonly repoId: string;
40
+ readonly worktreeRoot: string;
41
+ readonly writerId: string;
42
+ readonly ownerId: string;
43
+ readonly warpPool: WarpResidentPool;
44
+ }): WorkspaceWarpLease;
35
45
  export declare function createWorkspaceSlice(input: {
36
46
  readonly graftDir: string;
37
47
  readonly projectRoot?: string;
@@ -47,8 +57,7 @@ export declare function createBoundWorkspace(input: {
47
57
  readonly slice: WorkspaceSlice;
48
58
  readonly fs: FileSystem;
49
59
  readonly transportSessionId: string;
50
- readonly warpWriterId?: string | undefined;
51
- readonly warpPool: WarpPool;
60
+ readonly warpWriterId: string;
52
61
  }): Promise<BoundWorkspace>;
53
62
  export declare function buildWorkspaceCausalContext(binding: BoundWorkspace, observation: {
54
63
  readonly checkoutEpoch: number;
@@ -64,11 +73,12 @@ export declare function buildPersistedLocalHistoryContextFromExecution(input: {
64
73
  readonly persistedLocalHistory: PersistedLocalHistoryStore;
65
74
  readonly execution: WorkspaceExecutionContext;
66
75
  readonly observation: RepoObservation;
76
+ readonly hookEvent?: GitTransitionHookEvent | null;
67
77
  }): PersistedLocalHistoryContext;
68
78
  export declare function resolveCheckoutBoundaryHookEvent(input: {
69
79
  readonly fs: FileSystem;
70
80
  readonly git: GitClient;
71
- readonly binding: BoundWorkspace;
81
+ readonly binding: Pick<BoundWorkspace, "worktreeRoot" | "gitCommonDir">;
72
82
  readonly previousObservedAt: string;
73
83
  readonly observation: RepoObservation;
74
84
  }): Promise<GitTransitionHookEvent | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router-runtime.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-router-runtime.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as path from "node:path";
2
2
  import { createRepoPathResolver } from "../adapters/repo-paths.js";
3
- import { DEFAULT_WARP_WRITER_ID } from "../warp/writer-id.js";
4
3
  import { GovernorTracker } from "../session/tracker.js";
5
4
  import { ObservationCache } from "./cache.js";
6
5
  import { Metrics } from "./metrics.js";
@@ -9,6 +8,51 @@ import {} from "./persisted-local-history.js";
9
8
  import { RepoStateTracker } from "./repo-state.js";
10
9
  import { buildRuntimeCausalContext } from "./runtime-causal-context.js";
11
10
  import { buildRuntimeWorkspaceOverlayFooting, } from "./runtime-workspace-overlay.js";
11
+ export function createWorkspaceWarpLease(input) {
12
+ let leasePromise = null;
13
+ let releasePromise = null;
14
+ const releaseHasStarted = () => releasePromise !== null;
15
+ return {
16
+ async getWarp() {
17
+ if (releaseHasStarted()) {
18
+ throw new Error("workspace WARP lease has already been released");
19
+ }
20
+ const currentLease = leasePromise ?? input.warpPool.acquire({
21
+ key: { repoId: input.repoId, writerId: input.writerId },
22
+ worktreeRoot: input.worktreeRoot,
23
+ ownerId: input.ownerId,
24
+ });
25
+ leasePromise = currentLease;
26
+ try {
27
+ const lease = await currentLease;
28
+ if (releaseHasStarted()) {
29
+ await lease.release();
30
+ throw new Error("workspace WARP lease was released while opening");
31
+ }
32
+ return { app: lease.app, strandId: null };
33
+ }
34
+ catch (error) {
35
+ if (leasePromise === currentLease) {
36
+ leasePromise = null;
37
+ }
38
+ throw error;
39
+ }
40
+ },
41
+ release() {
42
+ if (releasePromise !== null)
43
+ return releasePromise;
44
+ releasePromise = (async () => {
45
+ const currentLease = leasePromise;
46
+ leasePromise = null;
47
+ if (currentLease === null)
48
+ return;
49
+ const lease = await currentLease.catch(() => null);
50
+ await lease?.release();
51
+ })();
52
+ return releasePromise;
53
+ },
54
+ };
55
+ }
12
56
  export function createWorkspaceSlice(input) {
13
57
  return {
14
58
  sliceId: input.nextSliceId,
@@ -32,12 +76,8 @@ export async function createBoundWorkspace(input) {
32
76
  resolvePath: createRepoPathResolver(input.resolved.worktreeRoot),
33
77
  capabilityProfile: input.capabilityProfile,
34
78
  transportSessionId: input.transportSessionId,
35
- warpWriterId: input.warpWriterId ?? DEFAULT_WARP_WRITER_ID,
79
+ warpWriterId: input.warpWriterId,
36
80
  slice: input.slice,
37
- getWarp: async () => ({
38
- app: await input.warpPool.getOrOpen(input.resolved.repoId, input.resolved.worktreeRoot, input.warpWriterId ?? DEFAULT_WARP_WRITER_ID),
39
- strandId: null,
40
- }),
41
81
  };
42
82
  }
43
83
  export function buildWorkspaceCausalContext(binding, observation) {
@@ -67,7 +107,7 @@ export function buildPersistedLocalHistoryContext(input) {
67
107
  return context;
68
108
  }
69
109
  export function buildPersistedLocalHistoryContextFromExecution(input) {
70
- const context = input.persistedLocalHistory.buildContext(input.execution.status, input.execution.getCausalContext(), input.observation);
110
+ const context = input.persistedLocalHistory.buildContext(input.execution.status, input.execution.getCausalContext(input.observation), input.observation, input.hookEvent ?? null);
71
111
  if (context === null) {
72
112
  throw new Error("persisted local history context unavailable for execution");
73
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router-runtime.js","sourceRoot":"","sources":["../../src/mcp/workspace-router-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-router-runtime.js","sourceRoot":"","sources":["../../src/mcp/workspace-router-runtime.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ObservationCache } from "./cache.js";
2
2
  import { Metrics } from "./metrics.js";
3
3
  import { type PersistedLocalActivityWindow, PersistedLocalHistoryStore, type PersistedLocalHistoryAttachDeclaration, type RepoConcurrencySummary, type PersistedLocalHistorySummary } from "./persisted-local-history.js";
4
4
  import { type RepoObservation } from "./repo-state.js";
5
+ import type { RuntimeCausalContext } from "./runtime-causal-context.js";
5
6
  import { type RuntimeWorkspaceOverlayFooting } from "./runtime-workspace-overlay.js";
6
7
  import { type AttributedReadToolName } from "./workspace-read-observation.js";
7
8
  import { type CausalAttachResult, type WorkspaceActionResult, type WorkspaceAuthorizationPolicy, type WorkspaceBindRequest, type WorkspaceExecutionContext, type WorkspaceListOpenedResult, type WorkspaceMode, type WorkspaceOpenRequest, type WorkspaceOpenResult, type WorkspaceSharedAttachPolicy, type WorkspaceStatus } from "./workspace-router-model.js";
@@ -9,7 +10,7 @@ import type { FileSystem } from "../ports/filesystem.js";
9
10
  import type { GitClient } from "../ports/git.js";
10
11
  import type { WarpContext } from "../warp/context.js";
11
12
  import type { JsonObject } from "../contracts/json-object.js";
12
- import type { WarpPool } from "./warp-pool.js";
13
+ import type { WarpResidentPool } from "./warp-pool.js";
13
14
  import { GovernorTracker } from "../session/tracker.js";
14
15
  export { DEFAULT_DAEMON_CAPABILITY_PROFILE, DEFAULT_REPO_LOCAL_CAPABILITY_PROFILE, WorkspaceBindingRequiredError, WorkspaceCapabilityDeniedError, WorkspaceResolutionError, WorkspaceRouteUnauthorizedError, type CausalAttachResult, type OpenedWorkspaceSource, type OpenedWorkspaceView, type ResolvedWorkspace, type WorkspaceActionResult, type WorkspaceAuthorizationPolicy, type WorkspaceBindAction, type WorkspaceBindRequest, type WorkspaceCapabilityProfile, type WorkspaceExecutionContext, type WorkspaceListOpenedResult, type WorkspaceMode, type WorkspaceOpenRequest, type WorkspaceOpenResult, type WorkspaceRouteEvidence, type WorkspaceSharedAttachPolicy, type WorkspaceStatus, } from "./workspace-router-model.js";
15
16
  export { resolveWorkspaceRequest } from "./workspace-router-resolution.js";
@@ -19,7 +20,7 @@ interface WorkspaceRouterOptions {
19
20
  readonly git: GitClient;
20
21
  readonly graftDir: string;
21
22
  readonly projectRoot?: string | undefined;
22
- readonly warpPool: WarpPool;
23
+ readonly warpPool: WarpResidentPool;
23
24
  readonly transportSessionId: string;
24
25
  readonly warpWriterId?: string | undefined;
25
26
  readonly authorizationPolicy?: WorkspaceAuthorizationPolicy | undefined;
@@ -30,6 +31,7 @@ interface WorkspaceRouterOptions {
30
31
  export declare class WorkspaceRouter {
31
32
  private readonly options;
32
33
  private bindingCounter;
34
+ private executionCounter;
33
35
  private sliceIdCounter;
34
36
  private currentSlice;
35
37
  private currentBinding;
@@ -37,6 +39,8 @@ export declare class WorkspaceRouter {
37
39
  private readonly openedWorkspaces;
38
40
  private readonly routedBindings;
39
41
  private readonly routedBindingInitializations;
42
+ private bindingCommitTail;
43
+ private warpLeaseRelease;
40
44
  constructor(options: WorkspaceRouterOptions);
41
45
  initialize(): Promise<void>;
42
46
  get mode(): WorkspaceMode;
@@ -48,27 +52,32 @@ export declare class WorkspaceRouter {
48
52
  getProjectRoot(): string;
49
53
  getGraftignorePatterns(): readonly string[];
50
54
  getPathResolver(): (input: string) => string;
51
- getWarp(): Promise<WarpContext>;
52
- observeRepoState(): Promise<void>;
55
+ withWarp<T>(operation: (warp: WarpContext) => Promise<T>): Promise<T>;
56
+ releaseWarpLeases(): Promise<void>;
57
+ observeRepoState(execution?: WorkspaceExecutionContext | null): Promise<void>;
53
58
  getRepoState(): RepoObservation;
54
59
  getStatus(): WorkspaceStatus;
55
60
  listOpenedWorkspaces(): WorkspaceListOpenedResult;
56
61
  openWorkspace(request: WorkspaceOpenRequest): Promise<WorkspaceOpenResult>;
57
- getPersistedLocalHistorySummary(): Promise<PersistedLocalHistorySummary>;
58
- getRepoConcurrencySummary(): Promise<RepoConcurrencySummary | null>;
59
- getPersistedLocalActivityWindow(limit: number): Promise<PersistedLocalActivityWindow>;
60
- getWorkspaceOverlayFooting(): Promise<RuntimeWorkspaceOverlayFooting | null>;
62
+ getPersistedLocalHistorySummary(execution?: WorkspaceExecutionContext | null): Promise<PersistedLocalHistorySummary>;
63
+ getRepoConcurrencySummary(execution?: WorkspaceExecutionContext | null): Promise<RepoConcurrencySummary | null>;
64
+ getPersistedLocalActivityWindow(limit: number, execution?: WorkspaceExecutionContext | null): Promise<PersistedLocalActivityWindow>;
65
+ getWorkspaceOverlayFooting(execution?: WorkspaceExecutionContext | null): Promise<RuntimeWorkspaceOverlayFooting | null>;
61
66
  noteReadObservation(toolName: AttributedReadToolName, args: JsonObject, result: JsonObject, execution?: WorkspaceExecutionContext | null): Promise<void>;
67
+ getRuntimeCausalContext(): RuntimeCausalContext | null;
62
68
  captureExecutionContext(): WorkspaceExecutionContext;
63
69
  captureExecutionContextForWorkspace(request: WorkspaceBindRequest): Promise<WorkspaceExecutionContext>;
64
70
  private createRoutedBinding;
65
71
  private routedBindingMatches;
66
72
  private noteRoutedBinding;
73
+ private disposeRoutedBinding;
67
74
  private buildExecutionContext;
68
75
  bind(request: WorkspaceBindRequest, actionName: string): Promise<WorkspaceActionResult>;
69
76
  rebind(request: WorkspaceBindRequest, actionName: string): Promise<WorkspaceActionResult>;
70
- declareAttach(declaration: PersistedLocalHistoryAttachDeclaration): Promise<CausalAttachResult>;
77
+ declareAttach(declaration: PersistedLocalHistoryAttachDeclaration, execution?: WorkspaceExecutionContext | null): Promise<CausalAttachResult>;
71
78
  private bindInternal;
79
+ private enqueueBindingCommit;
80
+ private commitBinding;
72
81
  private createBoundWorkspace;
73
82
  private requireBinding;
74
83
  private requireRepoState;
@@ -81,7 +90,8 @@ export declare class WorkspaceRouter {
81
90
  private buildPersistedLocalHistoryContextFromExecution;
82
91
  private resolveCheckoutBoundaryHookEvent;
83
92
  private captureCurrentExecutionContext;
84
- private buildPersistedLocalHistoryGraphContext;
93
+ private resolveWorkspaceHistoryScope;
94
+ private withBindingGraph;
85
95
  private buildPersistedLocalHistoryGraphContextFromExecution;
86
96
  }
87
97
  //# sourceMappingURL=workspace-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-router.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-router.d.ts","sourceRoot":"","sources":["../../src/mcp/workspace-router.ts"],"names":[],"mappings":"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"}