@log0u7/opencode-mesh 0.2.0 → 0.4.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 (57) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/README.md +46 -13
  3. package/dist/lib/client.d.ts +2 -0
  4. package/dist/lib/client.d.ts.map +1 -1
  5. package/dist/lib/client.js +6 -1
  6. package/dist/lib/client.js.map +1 -1
  7. package/dist/lib/db.d.ts.map +1 -1
  8. package/dist/lib/db.js +26 -1
  9. package/dist/lib/db.js.map +1 -1
  10. package/dist/lib/discovery.d.ts +3 -0
  11. package/dist/lib/discovery.d.ts.map +1 -1
  12. package/dist/lib/discovery.js +33 -7
  13. package/dist/lib/discovery.js.map +1 -1
  14. package/dist/lib/identity.d.ts +10 -8
  15. package/dist/lib/identity.d.ts.map +1 -1
  16. package/dist/lib/identity.js +132 -32
  17. package/dist/lib/identity.js.map +1 -1
  18. package/dist/lib/locks.d.ts.map +1 -1
  19. package/dist/lib/locks.js +20 -12
  20. package/dist/lib/locks.js.map +1 -1
  21. package/dist/lib/peers.d.ts +13 -1
  22. package/dist/lib/peers.d.ts.map +1 -1
  23. package/dist/lib/peers.js +114 -18
  24. package/dist/lib/peers.js.map +1 -1
  25. package/dist/lib/serve.d.ts +2 -0
  26. package/dist/lib/serve.d.ts.map +1 -1
  27. package/dist/lib/serve.js +62 -71
  28. package/dist/lib/serve.js.map +1 -1
  29. package/dist/lib/spawn.d.ts +14 -4
  30. package/dist/lib/spawn.d.ts.map +1 -1
  31. package/dist/lib/spawn.js +210 -21
  32. package/dist/lib/spawn.js.map +1 -1
  33. package/dist/lib/sqlite.d.ts.map +1 -1
  34. package/dist/lib/sqlite.js +15 -4
  35. package/dist/lib/sqlite.js.map +1 -1
  36. package/dist/lib/workers.d.ts +2 -0
  37. package/dist/lib/workers.d.ts.map +1 -1
  38. package/dist/lib/workers.js +45 -12
  39. package/dist/lib/workers.js.map +1 -1
  40. package/dist/lib/worktree.d.ts +22 -4
  41. package/dist/lib/worktree.d.ts.map +1 -1
  42. package/dist/lib/worktree.js +54 -6
  43. package/dist/lib/worktree.js.map +1 -1
  44. package/dist/plugin-v2.d.ts.map +1 -1
  45. package/dist/plugin-v2.js +65 -337
  46. package/dist/plugin-v2.js.map +1 -1
  47. package/dist/plugin.d.ts +2 -6
  48. package/dist/plugin.d.ts.map +1 -1
  49. package/dist/plugin.js +119 -265
  50. package/dist/plugin.js.map +1 -1
  51. package/dist/tools.d.ts +30 -0
  52. package/dist/tools.d.ts.map +1 -0
  53. package/dist/tools.js +315 -0
  54. package/dist/tools.js.map +1 -0
  55. package/dist/types/peer.d.ts +2 -0
  56. package/dist/types/peer.d.ts.map +1 -1
  57. package/package.json +10 -8
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/lib/sqlite.ts"],"names":[],"mappings":"AA0BA,SAAS,kBAAkB,CAAC,EAAsB;IAChD,OAAO;QACL,GAAG,CAAc,GAAW,EAAE,MAAkB;YAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAQ,CAAC;QAC5C,CAAC;QACD,GAAG,CAAc,GAAW,EAAE,MAAkB;YAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAmB,IAAI,IAAI,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,GAAW,EAAE,MAAkB;YACjC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,GAAW;YACd,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QACD,KAAK;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB;IAC1C,OAAO;QACL,GAAG,CAAc,GAAW,EAAE,MAAkB;YAC9C,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAQ,CAAC;QACrD,CAAC;QACD,GAAG,CAAc,GAAW,EAAE,MAAkB;YAC9C,OAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAmB,IAAI,IAAI,CAAC;QACzE,CAAC;QACD,GAAG,CAAC,GAAW,EAAE,MAAkB;YACjC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,GAAW;YACd,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACD,KAAK;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAUD,IAAI,eAAe,GAAyB,IAAI,CAAC;AACjD,IAAI,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC;IAC/B,eAAe,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAkB,CAAC;AAC/D,CAAC;AAAC,MAAM,CAAC;IACP,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,aAAa,GAAG,UAErB,CAAC;IAEF,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACxC,OAAO,aAAa,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,aAAa,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,4EAA4E;IAC5E,gFAAgF;IAChF,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,CAAsB,CAAC;IACrE,OAAO,kBAAkB,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/lib/sqlite.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,10 @@ export declare function insertWorker(db: MeshDb, input: {
22
22
  export declare function getWorker(db: MeshDb, id: string): Worker | null;
23
23
  export declare function listWorkers(db: MeshDb): Worker[];
24
24
  export declare function setWorkerSession(db: MeshDb, id: string, sessionId: string): void;
25
+ export declare function setWorkerPid(db: MeshDb, id: string, pid: number): void;
25
26
  export declare function setWorkerStatus(db: MeshDb, id: string, status: WorkerStatus, options?: {
26
27
  exit_code?: number | null;
27
28
  }): void;
28
29
  export declare function deleteWorker(db: MeshDb, id: string): boolean;
30
+ export declare function reconcileWorkers(db: MeshDb): number;
29
31
  //# sourceMappingURL=workers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/lib/workers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAMF,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9F,MAAM,CAsBR;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhF;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC1C,IAAI,CAmBN;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAG5D"}
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/lib/workers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAMF,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9F,MAAM,CAsBR;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC1C,IAAI,CAyBN;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAG5D;AAID,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAenD"}
@@ -28,29 +28,62 @@ export function listWorkers(db) {
28
28
  .map(rowToWorker);
29
29
  }
30
30
  export function setWorkerSession(db, id, sessionId) {
31
- db.conn.run("UPDATE workers SET session_id = ? WHERE id = ?", [sessionId, id]);
31
+ // A late stdout chunk after the process finalized must not resurrect a
32
+ // session id on a terminal row.
33
+ db.conn.run("UPDATE workers SET session_id = ? WHERE id = ? AND status = 'running'", [
34
+ sessionId,
35
+ id,
36
+ ]);
37
+ }
38
+ export function setWorkerPid(db, id, pid) {
39
+ db.conn.run("UPDATE workers SET pid = ? WHERE id = ?", [pid, id]);
32
40
  }
33
41
  export function setWorkerStatus(db, id, status, options = {}) {
42
+ const finished = TERMINAL_STATUSES.has(status) ? Date.now() : null;
43
+ const exitCode = "exit_code" in options ? (options.exit_code ?? null) : null;
44
+ // Guard the transition inside the UPDATE: a concurrent finalize in another
45
+ // process must not be overwritten by a stale read-then-write. The terminal
46
+ // list comes from TERMINAL_STATUSES so it cannot drift.
47
+ const terminals = [...TERMINAL_STATUSES];
48
+ db.conn.run(`UPDATE workers SET status = ?, exit_code = ?, finished_at = ?
49
+ WHERE id = ? AND status NOT IN (${terminals.map(() => "?").join(", ")})`, [status, exitCode, finished, id, ...terminals]);
50
+ const changed = (db.conn.get("SELECT changes() AS changes")?.changes ?? 0) > 0;
51
+ if (changed) {
52
+ return;
53
+ }
34
54
  const existing = getWorker(db, id);
35
55
  if (!existing) {
36
56
  throw new Error(`unknown worker: ${id}`);
37
57
  }
38
- if (TERMINAL_STATUSES.has(existing.status)) {
39
- throw new Error(`worker ${id} is in terminal state ${existing.status}; refusing transition to ${status}`);
40
- }
41
- const finished = TERMINAL_STATUSES.has(status) ? Date.now() : null;
42
- const exitCode = "exit_code" in options ? (options.exit_code ?? null) : null;
43
- db.conn.run("UPDATE workers SET status = ?, exit_code = ?, finished_at = ? WHERE id = ?", [
44
- status,
45
- exitCode,
46
- finished,
47
- id,
48
- ]);
58
+ throw new Error(`worker ${id} is in terminal state ${existing.status}; refusing transition to ${status}`);
49
59
  }
50
60
  export function deleteWorker(db, id) {
51
61
  db.conn.run("DELETE FROM workers WHERE id = ?", [id]);
52
62
  return (db.conn.get("SELECT changes() AS changes")?.changes ?? 0) > 0;
53
63
  }
64
+ // After a host restart the in-memory process map is gone, so 'running' rows can
65
+ // never be stopped again. Rows whose pid no longer exists are marked stopped.
66
+ export function reconcileWorkers(db) {
67
+ const rows = db.conn.all("SELECT id, pid FROM workers WHERE status = 'running'");
68
+ let reconciled = 0;
69
+ for (const row of rows) {
70
+ if (row.pid === null || !pidAlive(row.pid)) {
71
+ db.conn.run("UPDATE workers SET status = 'stopped', exit_code = NULL, finished_at = ? WHERE id = ?", [Date.now(), row.id]);
72
+ reconciled++;
73
+ }
74
+ }
75
+ return reconciled;
76
+ }
77
+ function pidAlive(pid) {
78
+ try {
79
+ process.kill(pid, 0);
80
+ return true;
81
+ }
82
+ catch (error) {
83
+ // EPERM means the process exists but belongs to someone else.
84
+ return error.code === "EPERM";
85
+ }
86
+ }
54
87
  function rowToWorker(row) {
55
88
  return {
56
89
  id: row.id,
@@ -1 +1 @@
1
- {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/lib/workers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/lib/workers.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,40 @@
1
1
  type WorktreeInfo = {
2
- name: string;
2
+ name?: string;
3
3
  branch?: string;
4
4
  directory: string;
5
5
  };
6
+ export type { WorktreeInfo };
7
+ type WorktreeCallOptions = {
8
+ signal?: AbortSignal;
9
+ };
6
10
  export type WorktreeClient = {
7
11
  worktree: {
8
12
  create(parameters: {
9
13
  worktreeCreateInput?: {
10
14
  name?: string;
11
15
  };
12
- }): Promise<unknown>;
16
+ }, options?: WorktreeCallOptions): Promise<unknown>;
13
17
  remove(parameters: {
14
18
  worktreeRemoveInput: {
15
19
  directory: string;
16
20
  };
17
- }): Promise<unknown>;
21
+ }, options?: WorktreeCallOptions): Promise<unknown>;
18
22
  };
19
23
  };
24
+ export type WorktreeDomain = {
25
+ create(input: {
26
+ projectID: string;
27
+ name?: string;
28
+ }): Promise<{
29
+ directory: string;
30
+ }>;
31
+ remove(input: {
32
+ projectID: string;
33
+ directory: string;
34
+ force: boolean;
35
+ }): Promise<void>;
36
+ };
37
+ export declare const WORKTREE_TIMEOUT_MS = 15000;
20
38
  export type WorktreeFactory = (baseUrl: string, directory: string, fetchOverride?: typeof fetch) => WorktreeClient;
21
39
  export declare const defaultWorktreeFactory: WorktreeFactory;
22
40
  export declare function extractClientFetch(pluginClient: unknown): typeof fetch | undefined;
@@ -26,5 +44,5 @@ export declare function createWorkerWorktree(client: WorktreeClient, input: {
26
44
  export declare function removeWorkerWorktree(client: WorktreeClient, input: {
27
45
  directory: string;
28
46
  }): Promise<boolean>;
29
- export {};
47
+ export declare function v2WorktreeDomainClient(domain: WorktreeDomain, projectID: string): WorktreeClient;
30
48
  //# sourceMappingURL=worktree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE;QACR,MAAM,CAAC,UAAU,EAAE;YAAE,mBAAmB,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClF,MAAM,CAAC,UAAU,EAAE;YAAE,mBAAmB,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtF,CAAC;CACH,CAAC;AAOF,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,KAAK,KACzB,cAAc,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,eAKJ,CAAC;AAMlC,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,KAAK,GAAG,SAAS,CAUlF;AAWD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACvB,OAAO,CAAC,YAAY,CAAC,CAKvB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,OAAO,CAAC,CAKlB"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,KAAK,mBAAmB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAIpD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE;QACR,MAAM,CACJ,UAAU,EAAE;YAAE,mBAAmB,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EACvD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,MAAM,CACJ,UAAU,EAAE;YAAE,mBAAmB,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAC1D,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;KACrB,CAAC;CACH,CAAC;AAKF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,MAAM,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF,CAAC;AAKF,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAW1C,MAAM,MAAM,eAAe,GAAG,CAC5B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,KAAK,KACzB,cAAc,CAAC;AAEpB,eAAO,MAAM,sBAAsB,EAAE,eAKJ,CAAC;AAMlC,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,KAAK,GAAG,SAAS,CAUlF;AAcD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACvB,OAAO,CAAC,YAAY,CAAC,CAiBvB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,OAAO,CAAC,CAUlB;AAOD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,CAuBhG"}
@@ -1,4 +1,11 @@
1
1
  import { createOpencodeClient } from "@opencode-ai/sdk/v2";
2
+ // Worktree setup/teardown shells out to git; a hung git process must not pin a
3
+ // tool call forever. The timeout only reaches the 1.x REST client, which
4
+ // forwards the signal to fetch; the 2.x in-process domain ignores it.
5
+ export const WORKTREE_TIMEOUT_MS = 15_000;
6
+ function callOptions() {
7
+ return { signal: AbortSignal.timeout(WORKTREE_TIMEOUT_MS) };
8
+ }
2
9
  export const defaultWorktreeFactory = (baseUrl, directory, fetchOverride) => createOpencodeClient({
3
10
  baseUrl,
4
11
  directory,
@@ -26,18 +33,59 @@ function unwrap(envelope, fallback) {
26
33
  const detail = parsed.error.data?.message ?? parsed.error.message ?? fallback;
27
34
  throw new Error(`worktree API error: ${detail}`);
28
35
  }
36
+ if (parsed.data === undefined) {
37
+ throw new Error(`worktree API error: ${fallback} (empty response)`);
38
+ }
29
39
  return parsed.data;
30
40
  }
31
41
  export async function createWorkerWorktree(client, input) {
32
42
  const envelope = await client.worktree.create({
33
43
  worktreeCreateInput: input.name !== undefined ? { name: input.name } : {},
34
- });
35
- return unwrap(envelope, "worktree create failed");
44
+ }, callOptions());
45
+ const info = unwrap(envelope, "worktree create failed");
46
+ if (typeof info !== "object" ||
47
+ info === null ||
48
+ typeof info.directory !== "string" ||
49
+ info.directory === "") {
50
+ throw new Error("worktree API error: worktree create failed (response had no directory)");
51
+ }
52
+ return info;
36
53
  }
37
54
  export async function removeWorkerWorktree(client, input) {
38
- const envelope = await client.worktree.remove({
39
- worktreeRemoveInput: { directory: input.directory },
40
- });
41
- return unwrap(envelope, "worktree remove failed");
55
+ const envelope = await client.worktree.remove({ worktreeRemoveInput: { directory: input.directory } }, callOptions());
56
+ const removed = unwrap(envelope, "worktree remove failed");
57
+ if (typeof removed !== "boolean") {
58
+ throw new Error("worktree API error: worktree remove failed (response was not a boolean)");
59
+ }
60
+ return removed;
61
+ }
62
+ // OpenCode 2.x hands the plugin an in-process worktree domain whose methods
63
+ // take FLAT, project-scoped inputs and resolve the payload directly instead of
64
+ // the `{ worktreeCreateInput }` / `{ data, error }` REST envelope the tools are
65
+ // written against (see issue #29). Wrap it back into the same WorktreeClient
66
+ // shape so both host generations share one code path.
67
+ export function v2WorktreeDomainClient(domain, projectID) {
68
+ return {
69
+ worktree: {
70
+ create: async (parameters) => {
71
+ const name = parameters.worktreeCreateInput?.name;
72
+ const info = await domain.create({
73
+ projectID,
74
+ ...(name !== undefined ? { name } : {}),
75
+ });
76
+ return { data: info };
77
+ },
78
+ // The domain resolves void on success (it throws otherwise); surface that
79
+ // as the v1 boolean so removeWorkerWorktree sees a successful removal.
80
+ remove: async (parameters) => {
81
+ await domain.remove({
82
+ projectID,
83
+ directory: parameters.worktreeRemoveInput.directory,
84
+ force: true,
85
+ });
86
+ return { data: true };
87
+ },
88
+ },
89
+ };
42
90
  }
43
91
  //# sourceMappingURL=worktree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AA4B3D,MAAM,CAAC,MAAM,sBAAsB,GAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAC3F,oBAAoB,CAAC;IACnB,OAAO;IACP,SAAS;IACT,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACnD,CAA8B,CAAC;AAElC,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,YAAqB;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAI,YAA6E;aACzF,OAAO,CAAC;QACX,MAAM,MAAM,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,CAAC;QAC9B,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAI,QAAiB,EAAE,QAAgB;IACpD,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAgB,CAAC;IAC/C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC,IAAS,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,KAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,mBAAmB,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KAC1E,CAAC,CAAC;IACH,OAAO,MAAM,CAAe,QAAQ,EAAE,wBAAwB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,KAA4B;IAE5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;KACpD,CAAC,CAAC;IACH,OAAO,MAAM,CAAU,QAAQ,EAAE,wBAAwB,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-v2.d.ts","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA0B1C,eAAO,MAAM,MAAM,eAuYjB,CAAC"}
1
+ {"version":3,"file":"plugin-v2.d.ts","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA2B1C,eAAO,MAAM,MAAM,eA6EjB,CAAC"}