@cerbur/clutch-dsh-worktree 0.1.4 → 0.1.6

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 (115) hide show
  1. package/README.md +89 -24
  2. package/README.zh.md +81 -23
  3. package/lib/client/WorktreeContext.d.ts.map +1 -1
  4. package/lib/client/WorktreeContext.js.map +1 -1
  5. package/lib/client/WorktreeHeroContext.d.ts +1 -1
  6. package/lib/client/WorktreeHeroContext.d.ts.map +1 -1
  7. package/lib/client/WorktreeHeroContext.js +10 -5
  8. package/lib/client/WorktreeHeroContext.js.map +1 -1
  9. package/lib/client/WorktreeSurface.d.ts +1 -1
  10. package/lib/client/WorktreeSurface.d.ts.map +1 -1
  11. package/lib/client/WorktreeSurface.js +349 -88
  12. package/lib/client/WorktreeSurface.js.map +1 -1
  13. package/lib/client/entry.d.ts.map +1 -1
  14. package/lib/client/entry.js +3 -0
  15. package/lib/client/entry.js.map +1 -1
  16. package/lib/client/locales.d.ts +28 -0
  17. package/lib/client/locales.d.ts.map +1 -1
  18. package/lib/client/locales.js +30 -2
  19. package/lib/client/locales.js.map +1 -1
  20. package/lib/client/virtual-workspace-membership.js +1 -1
  21. package/lib/client/virtual-workspace-membership.js.map +1 -1
  22. package/lib/client/worktree-connection.d.ts +2 -0
  23. package/lib/client/worktree-connection.d.ts.map +1 -1
  24. package/lib/client/worktree-connection.js +4 -0
  25. package/lib/client/worktree-connection.js.map +1 -1
  26. package/lib/client/worktree-context-store.d.ts.map +1 -1
  27. package/lib/client/worktree-context-store.js +51 -11
  28. package/lib/client/worktree-context-store.js.map +1 -1
  29. package/lib/client/worktree-error-copy.d.ts.map +1 -1
  30. package/lib/client/worktree-error-copy.js +8 -0
  31. package/lib/client/worktree-error-copy.js.map +1 -1
  32. package/lib/client/worktree-expand-state.d.ts +33 -0
  33. package/lib/client/worktree-expand-state.d.ts.map +1 -0
  34. package/lib/client/worktree-expand-state.js +83 -0
  35. package/lib/client/worktree-expand-state.js.map +1 -0
  36. package/lib/client/worktree-session-position.d.ts +2 -0
  37. package/lib/client/worktree-session-position.d.ts.map +1 -0
  38. package/lib/client/worktree-session-position.js +11 -0
  39. package/lib/client/worktree-session-position.js.map +1 -0
  40. package/lib/client/worktree-surface-dialogs.d.ts +1 -1
  41. package/lib/client/worktree-surface-dialogs.d.ts.map +1 -1
  42. package/lib/client/worktree-surface-dialogs.js +33 -13
  43. package/lib/client/worktree-surface-dialogs.js.map +1 -1
  44. package/lib/client/worktree-surface-rows.d.ts +2 -2
  45. package/lib/client/worktree-surface-rows.d.ts.map +1 -1
  46. package/lib/client/worktree-surface-rows.js +5 -5
  47. package/lib/client/worktree-surface-rows.js.map +1 -1
  48. package/lib/client/worktree-surface-selectors.d.ts +16 -0
  49. package/lib/client/worktree-surface-selectors.d.ts.map +1 -1
  50. package/lib/client/worktree-surface-selectors.js +54 -0
  51. package/lib/client/worktree-surface-selectors.js.map +1 -1
  52. package/lib/client/worktree-surface-types.d.ts +28 -1
  53. package/lib/client/worktree-surface-types.d.ts.map +1 -1
  54. package/lib/client/worktree-view-actions.d.ts +3 -0
  55. package/lib/client/worktree-view-actions.d.ts.map +1 -1
  56. package/lib/client/worktree-view-actions.js +3 -0
  57. package/lib/client/worktree-view-actions.js.map +1 -1
  58. package/lib/client/worktree-view-read.d.ts +11 -0
  59. package/lib/client/worktree-view-read.d.ts.map +1 -1
  60. package/lib/client/worktree-view-read.js +24 -0
  61. package/lib/client/worktree-view-read.js.map +1 -1
  62. package/lib/client.js +697 -137
  63. package/lib/client.js.map +1 -1
  64. package/lib/contract/index.contract.js +14 -0
  65. package/lib/contract/index.contract.js.map +1 -1
  66. package/lib/contract/index.d.ts +22 -2
  67. package/lib/contract/index.d.ts.map +1 -1
  68. package/lib/contract/index.js +5 -0
  69. package/lib/contract/index.js.map +1 -1
  70. package/lib/host/remote.d.ts.map +1 -1
  71. package/lib/host/remote.js +2 -0
  72. package/lib/host/remote.js.map +1 -1
  73. package/lib/host/service.d.ts +8 -1
  74. package/lib/host/service.d.ts.map +1 -1
  75. package/lib/host/service.js +12 -0
  76. package/lib/host/service.js.map +1 -1
  77. package/lib/index.d.ts +1 -1
  78. package/lib/index.d.ts.map +1 -1
  79. package/lib/index.js.map +1 -1
  80. package/lib/manage/manager-support.d.ts +2 -0
  81. package/lib/manage/manager-support.d.ts.map +1 -1
  82. package/lib/manage/manager-support.js +9 -0
  83. package/lib/manage/manager-support.js.map +1 -1
  84. package/lib/manage/manager-worktrees.d.ts +10 -1
  85. package/lib/manage/manager-worktrees.d.ts.map +1 -1
  86. package/lib/manage/manager-worktrees.js +121 -5
  87. package/lib/manage/manager-worktrees.js.map +1 -1
  88. package/lib/manage/manager.d.ts +8 -1
  89. package/lib/manage/manager.d.ts.map +1 -1
  90. package/lib/manage/manager.js +7 -1
  91. package/lib/manage/manager.js.map +1 -1
  92. package/lib/provider/git.d.ts +8 -0
  93. package/lib/provider/git.d.ts.map +1 -1
  94. package/lib/provider/git.js +57 -11
  95. package/lib/provider/git.js.map +1 -1
  96. package/lib/provider/index.d.ts +1 -1
  97. package/lib/provider/index.d.ts.map +1 -1
  98. package/lib/provider/index.js +1 -1
  99. package/lib/provider/index.js.map +1 -1
  100. package/lib/provider/sidecar-schema.d.ts +1 -1
  101. package/lib/provider/sidecar-schema.d.ts.map +1 -1
  102. package/lib/provider/sidecar-schema.js +33 -37
  103. package/lib/provider/sidecar-schema.js.map +1 -1
  104. package/lib/provider/sidecar.d.ts.map +1 -1
  105. package/lib/provider/sidecar.js +3 -1
  106. package/lib/provider/sidecar.js.map +1 -1
  107. package/lib/provider/types.d.ts +9 -1
  108. package/lib/provider/types.d.ts.map +1 -1
  109. package/lib/provider/types.js +2 -1
  110. package/lib/provider/types.js.map +1 -1
  111. package/lib/typert.host.js +115 -21
  112. package/lib/typert.remote-client.d.ts +5 -1
  113. package/lib/typert.remote-client.d.ts.map +1 -1
  114. package/lib/typert.remote-client.js +115 -21
  115. package/package.json +30 -30
@@ -1,37 +1,29 @@
1
1
  import path from 'node:path';
2
- import { SIDECAR_SCHEMA_VERSION, providerError, } from './types.js';
3
- const WORKTREE_KEYS = ['absolutePath', 'branch', 'status', 'workspaceId', 'worktreeId'];
2
+ import { LEGACY_SIDECAR_SCHEMA_VERSION, SIDECAR_SCHEMA_VERSION, providerError, } from './types.js';
3
+ const LEGACY_WORKTREE_KEYS = ['absolutePath', 'branch', 'status', 'workspaceId', 'worktreeId'];
4
+ const WORKTREE_KEYS = ['absolutePath', 'branch', 'source', 'status', 'workspaceId', 'worktreeId'];
4
5
  const BINDING_KEYS = ['sessionId', 'status', 'workspaceId', 'worktreeId'];
5
6
  const SNAPSHOT_KEYS = ['bindings', 'schemaVersion', 'workspaceId', 'worktrees'];
6
7
  function isObject(value) {
7
8
  return typeof value === 'object' && value !== null && !Array.isArray(value);
8
9
  }
9
- /*
10
- * 每个 schema version 使用精确字段白名单,避免新版或注入字段被旧代码静默接受、随后在
11
- * 重写时丢失。格式演进必须显式提升 schema version。
12
- *
13
- * Each schema version uses an exact key allowlist so newer or injected fields
14
- * are not silently accepted and then lost on rewrite. Format evolution must
15
- * be represented by an explicit schema-version change.
16
- */
17
10
  function hasExactKeys(value, keys) {
18
11
  return JSON.stringify(Object.keys(value).sort()) === JSON.stringify([...keys].sort());
19
12
  }
20
- // 可读取但不满足 schema/invariant 的数据属于 `SIDECAR_CORRUPT`;文件系统故障另报 `SIDECAR_UNAVAILABLE`。
21
- // Readable data that violates the schema or invariants is `SIDECAR_CORRUPT`;
22
- // filesystem failures are reported separately as `SIDECAR_UNAVAILABLE`.
23
13
  export function corrupt(pathname, message, details = {}) {
24
14
  return providerError('SIDECAR_CORRUPT', `${message}: ${pathname}`, { path: pathname, ...details });
25
15
  }
26
- function assertWorktreeRecord(value, pathname) {
16
+ function assertWorktreeRecord(value, pathname, schemaVersion) {
17
+ const legacy = schemaVersion === LEGACY_SIDECAR_SCHEMA_VERSION;
27
18
  if (!isObject(value) ||
28
- !hasExactKeys(value, WORKTREE_KEYS) ||
19
+ !hasExactKeys(value, legacy ? LEGACY_WORKTREE_KEYS : WORKTREE_KEYS) ||
29
20
  typeof value.worktreeId !== 'string' ||
30
21
  typeof value.workspaceId !== 'string' ||
31
22
  typeof value.absolutePath !== 'string' ||
32
23
  !path.isAbsolute(value.absolutePath) ||
33
24
  typeof value.branch !== 'string' ||
34
- (value.status !== 'active' && value.status !== 'removed')) {
25
+ (value.status !== 'active' && value.status !== 'removed') ||
26
+ (!legacy && value.source !== 'plugin' && value.source !== 'external')) {
35
27
  throw corrupt(pathname, 'invalid Worktree record');
36
28
  }
37
29
  }
@@ -45,23 +37,41 @@ function assertBinding(value, pathname) {
45
37
  throw corrupt(pathname, 'invalid Session binding');
46
38
  }
47
39
  }
48
- /** Validate one complete sidecar snapshot and every cross-record invariant. */
40
+ function normalizeWorktreeRecord(record, schemaVersion) {
41
+ return schemaVersion === LEGACY_SIDECAR_SCHEMA_VERSION
42
+ ? { ...record, source: 'plugin' }
43
+ : record;
44
+ }
45
+ function assertGeneratedPluginPath(record, pathname, generatedWorktreeRoot) {
46
+ if (!generatedWorktreeRoot || record.source !== 'plugin')
47
+ return;
48
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(record.worktreeId)) {
49
+ throw corrupt(pathname, 'Worktree record has an invalid generated ID');
50
+ }
51
+ const expectedPath = path.resolve(generatedWorktreeRoot, record.worktreeId);
52
+ if (path.resolve(record.absolutePath) !== expectedPath) {
53
+ throw corrupt(pathname, 'Worktree path is outside the generated DSH Home root');
54
+ }
55
+ }
56
+ /** Validate v1/v2 on-disk data and return the current in-memory v2 projection. */
49
57
  export function validateSidecarSnapshot(value, pathname, generatedWorktreeRoot) {
50
58
  if (!isObject(value) ||
51
59
  !hasExactKeys(value, SNAPSHOT_KEYS) ||
52
- value.schemaVersion !== SIDECAR_SCHEMA_VERSION ||
60
+ (value.schemaVersion !== LEGACY_SIDECAR_SCHEMA_VERSION && value.schemaVersion !== SIDECAR_SCHEMA_VERSION) ||
53
61
  typeof value.workspaceId !== 'string' ||
54
62
  !Array.isArray(value.worktrees) ||
55
63
  !Array.isArray(value.bindings)) {
56
64
  throw corrupt(pathname, 'invalid sidecar snapshot');
57
65
  }
66
+ const schemaVersion = value.schemaVersion;
58
67
  for (const record of value.worktrees)
59
- assertWorktreeRecord(record, pathname);
68
+ assertWorktreeRecord(record, pathname, schemaVersion);
60
69
  for (const binding of value.bindings)
61
70
  assertBinding(binding, pathname);
62
71
  const workspaceId = value.workspaceId;
72
+ const worktrees = value.worktrees.map((record) => normalizeWorktreeRecord(record, schemaVersion));
63
73
  const worktreeIds = new Set();
64
- for (const record of value.worktrees) {
74
+ for (const record of worktrees) {
65
75
  if (record.workspaceId !== workspaceId) {
66
76
  throw corrupt(pathname, 'Worktree record belongs to another Workspace');
67
77
  }
@@ -69,18 +79,7 @@ export function validateSidecarSnapshot(value, pathname, generatedWorktreeRoot)
69
79
  throw corrupt(pathname, 'sidecar contains duplicate Worktree IDs');
70
80
  }
71
81
  worktreeIds.add(record.worktreeId);
72
- if (generatedWorktreeRoot) {
73
- // 这是词法路径约束;关键父目录的物理 symlink 边界由 I/O 前的检查单独负责。
74
- // This is a lexical path constraint; physical symlink boundaries for the
75
- // critical parent directories are checked separately before I/O.
76
- if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(record.worktreeId)) {
77
- throw corrupt(pathname, 'Worktree record has an invalid generated ID');
78
- }
79
- const expectedPath = path.resolve(generatedWorktreeRoot, record.worktreeId);
80
- if (path.resolve(record.absolutePath) !== expectedPath) {
81
- throw corrupt(pathname, 'Worktree path is outside the generated DSH Home root');
82
- }
83
- }
82
+ assertGeneratedPluginPath(record, pathname, generatedWorktreeRoot);
84
83
  }
85
84
  for (const binding of value.bindings) {
86
85
  if (binding.workspaceId !== workspaceId) {
@@ -96,10 +95,7 @@ export function validateSidecarSnapshot(value, pathname, generatedWorktreeRoot)
96
95
  }
97
96
  activeSessions.add(binding.sessionId);
98
97
  }
99
- // 只有 detached binding 可以保留对非 active Worktree 的关系;active 状态绝不静默降级。
100
- // Only detached bindings may retain a relationship to a non-active Worktree;
101
- // an active relationship is never silently downgraded.
102
- const worktreeStatus = new Map(value.worktrees.map((record) => [record.worktreeId, record.status]));
98
+ const worktreeStatus = new Map(worktrees.map((record) => [record.worktreeId, record.status]));
103
99
  for (const binding of value.bindings) {
104
100
  if (binding.status === 'active' && worktreeStatus.get(binding.worktreeId) !== 'active') {
105
101
  throw corrupt(pathname, 'active binding does not point to an active Worktree');
@@ -108,7 +104,7 @@ export function validateSidecarSnapshot(value, pathname, generatedWorktreeRoot)
108
104
  return {
109
105
  schemaVersion: SIDECAR_SCHEMA_VERSION,
110
106
  workspaceId,
111
- worktrees: value.worktrees,
107
+ worktrees,
112
108
  bindings: value.bindings,
113
109
  };
114
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar-schema.js","sourceRoot":"","sources":["../../src/provider/sidecar-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar-schema.js","sourceRoot":"","sources":["../../src/provider/sidecar-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/provider/sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAyB9D;;;GAGG;AACH,qBAAa,iCAAkC,YAAW,YAAY;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAOrD,4DAA4D;IAC5D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIzC,mDAAmD;IACnD,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAInD,oFAAoF;IACpF,MAAM,CAAC,CAAC,EACN,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACxF,OAAO,CAAC,CAAC,CAAC;IAIb,mDAAmD;IAC7C,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAsBrE,kFAAkF;IAC5E,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,gBAAgB,CAAC,EAAE,UAAU,GAC5B,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC;IA+CjC,kFAAkF;IAC5E,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAkBtE"}
1
+ {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/provider/sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AA0B9D;;;GAGG;AACH,qBAAa,iCAAkC,YAAW,YAAY;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAOrD,4DAA4D;IAC5D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIzC,mDAAmD;IACnD,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAInD,oFAAoF;IACpF,MAAM,CAAC,CAAC,EACN,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACxF,OAAO,CAAC,CAAC,CAAC;IAIb,mDAAmD;IAC7C,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAuBrE,kFAAkF;IAC5E,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,gBAAgB,CAAC,EAAE,UAAU,GAC5B,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC;IA+CjC,kFAAkF;IAC5E,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAkBtE"}
@@ -6,6 +6,7 @@ function sameWorktree(left, right) {
6
6
  left.workspaceId === right.workspaceId &&
7
7
  left.absolutePath === right.absolutePath &&
8
8
  left.branch === right.branch &&
9
+ left.source === right.source &&
9
10
  left.status === right.status);
10
11
  }
11
12
  function sameIds(left, right) {
@@ -46,8 +47,9 @@ export class WorkspaceShardedSidecarRepository {
46
47
  }
47
48
  /** Idempotently insert a Worktree record by ID. */
48
49
  async upsertWorktree(record) {
49
- const { health: _health, ...persistedRecord } = record;
50
+ const { health: _health, ...withoutHealth } = record;
50
51
  void _health;
52
+ const persistedRecord = { ...withoutHealth, source: record.source ?? 'plugin' };
51
53
  return this.mutate(record.workspaceId, (snapshot) => {
52
54
  const existing = snapshot.worktrees.find((candidate) => candidate.worktreeId === persistedRecord.worktreeId);
53
55
  if (existing) {
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/provider/sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/provider/sidecar.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ import type { SessionBinding, WorktreeErrorCode, WorktreeErrorDetails, WorktreeI
4
4
  * The only supported on-disk sidecar format; unknown versions are treated as
5
5
  * corruption rather than guessed or silently migrated.
6
6
  */
7
- export declare const SIDECAR_SCHEMA_VERSION: 1;
7
+ export declare const LEGACY_SIDECAR_SCHEMA_VERSION: 1;
8
+ export declare const SIDECAR_SCHEMA_VERSION: 2;
8
9
  /**
9
10
  * 从 DSH 投影出的最小 Workspace 事实;Provider 不拥有、复制或写回这些数据。
10
11
  * Minimal Workspace facts projected from DSH; the Provider neither owns,
@@ -51,7 +52,14 @@ export interface GitWorktreeInfo {
51
52
  * removal only, with no arbitrary Git, remote, or working-file operations.
52
53
  */
53
54
  export interface GitWorktreeAdapter {
55
+ /** Validate the repository without changing the long-standing adapter contract. */
54
56
  validateRepository(workspaceRoot: string): Promise<void>;
57
+ /**
58
+ * Resolve the Git worktree/repository root used for repository-wide reads.
59
+ * Optional for backwards compatibility with injected adapters written before
60
+ * subdirectory Workspaces were supported; the local adapter always provides it.
61
+ */
62
+ resolveRepositoryRoot?(workspaceRoot: string): Promise<string>;
55
63
  listBranches(workspaceRoot: string): Promise<readonly string[]>;
56
64
  listWorktrees(workspaceRoot: string): Promise<readonly GitWorktreeInfo[]>;
57
65
  createWorktree(workspaceRoot: string, targetPath: string, branch: string, newBranch?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
  * The only supported on-disk sidecar format; unknown versions are treated as
4
4
  * corruption rather than guessed or silently migrated.
5
5
  */
6
- export const SIDECAR_SCHEMA_VERSION = 1;
6
+ export const LEGACY_SIDECAR_SCHEMA_VERSION = 1;
7
+ export const SIDECAR_SCHEMA_VERSION = 2;
7
8
  /**
8
9
  * Provider/Manage 边界使用的结构化错误;稳定 code 供调用方分支,details 保留诊断上下文。
9
10
  * Structured error used across the Provider/Manage boundary; callers branch on
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AA6GjD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,CAAoB;IACxB,OAAO,CAAuB;IAEvC,YAAY,IAAuB,EAAE,OAAe,EAAE,UAAgC,EAAE;QACtF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAuB,EACvB,OAAe,EACf,UAAgC,EAAE;IAElC,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,KAAK,YAAY,qBAAqB,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AAoHjD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,CAAoB;IACxB,OAAO,CAAuB;IAEvC,YAAY,IAAuB,EAAE,OAAe,EAAE,UAAgC,EAAE;QACtF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3E,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAuB,EACvB,OAAe,EACf,UAAgC,EAAE;IAElC,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,KAAK,YAAY,qBAAqB,CAAC;AAChD,CAAC"}
@@ -8,6 +8,8 @@ const JsonValueRemoteCodec$schema4 = z.union([z.literal(null), z.string(), z.num
8
8
  const JsonValueRemoteCodec$schema5 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5)).readonly()])
9
9
  const JsonValueRemoteCodec$schema6 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema6)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema6)).readonly()])
10
10
  const JsonValueRemoteCodec$schema7 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema7)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema7)).readonly()])
11
+ const JsonValueRemoteCodec$schema8 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema8)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema8)).readonly()])
12
+ const JsonValueRemoteCodec$schema9 = z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema9)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema9)).readonly()])
11
13
  const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_parameter_0$schema = z.object({
12
14
  'workspaceId': z.string().readonly(),
13
15
  'worktreeId': z.string().readonly(),
@@ -16,9 +18,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_parameter_0$schema
16
18
  const _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_result$schema = z.union([z.object({
17
19
  'ok': z.literal(false).readonly(),
18
20
  'error': z.object({
19
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
21
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
20
22
  'message': z.string().readonly(),
21
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3)).readonly()])).readonly().readonly(),
23
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5)).readonly()])).readonly().readonly(),
22
24
  }).readonly(),
23
25
  }), z.object({
24
26
  'ok': z.literal(true).readonly(),
@@ -37,9 +39,32 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_parameter_0$sch
37
39
  const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema = z.union([z.object({
38
40
  'ok': z.literal(false).readonly(),
39
41
  'error': z.object({
40
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
42
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
41
43
  'message': z.string().readonly(),
42
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema6)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema6)).readonly()])).readonly().readonly(),
44
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema9)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema9)).readonly()])).readonly().readonly(),
45
+ }).readonly(),
46
+ }), z.object({
47
+ 'ok': z.literal(true).readonly(),
48
+ 'value': z.object({
49
+ 'worktreeId': z.string().readonly(),
50
+ 'workspaceId': z.string().readonly(),
51
+ 'absolutePath': z.string().readonly(),
52
+ 'branch': z.string().readonly(),
53
+ 'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
54
+ 'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
55
+ 'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
56
+ }).readonly(),
57
+ })])
58
+ const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_parameter_0$schema = z.object({
59
+ 'workspaceId': z.string().readonly(),
60
+ 'absolutePath': z.string().readonly(),
61
+ })
62
+ const _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema = z.union([z.object({
63
+ 'ok': z.literal(false).readonly(),
64
+ 'error': z.object({
65
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
66
+ 'message': z.string().readonly(),
67
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema)).readonly()])).readonly().readonly(),
43
68
  }).readonly(),
44
69
  }), z.object({
45
70
  'ok': z.literal(true).readonly(),
@@ -48,6 +73,7 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema =
48
73
  'workspaceId': z.string().readonly(),
49
74
  'absolutePath': z.string().readonly(),
50
75
  'branch': z.string().readonly(),
76
+ 'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
51
77
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
52
78
  'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
53
79
  }).readonly(),
@@ -60,9 +86,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_parameter
60
86
  const _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_result$schema = z.union([z.object({
61
87
  'ok': z.literal(false).readonly(),
62
88
  'error': z.object({
63
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
89
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
64
90
  'message': z.string().readonly(),
65
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema)).readonly()])).readonly().readonly(),
91
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema3)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema3)).readonly()])).readonly().readonly(),
66
92
  }).readonly(),
67
93
  }), z.object({
68
94
  'ok': z.literal(true).readonly(),
@@ -74,9 +100,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_parameter_0$schem
74
100
  const _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_result$schema = z.union([z.object({
75
101
  'ok': z.literal(false).readonly(),
76
102
  'error': z.object({
77
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
103
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
78
104
  'message': z.string().readonly(),
79
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2)).readonly()])).readonly().readonly(),
105
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4)).readonly()])).readonly().readonly(),
80
106
  }).readonly(),
81
107
  }), z.object({
82
108
  'ok': z.literal(true).readonly(),
@@ -93,9 +119,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_parameter_0$schem
93
119
  const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema = z.union([z.object({
94
120
  'ok': z.literal(false).readonly(),
95
121
  'error': z.object({
96
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
122
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
97
123
  'message': z.string().readonly(),
98
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema5)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema5)).readonly()])).readonly().readonly(),
124
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema8)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema8)).readonly()])).readonly().readonly(),
99
125
  }).readonly(),
100
126
  }), z.object({
101
127
  'ok': z.literal(true).readonly(),
@@ -105,15 +131,32 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema = z
105
131
  'checkedOut': z.boolean().readonly(),
106
132
  })).readonly(),
107
133
  })])
134
+ const _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_parameter_0$schema = z.object({
135
+ 'workspaceId': z.string().readonly(),
136
+ })
137
+ const _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_result$schema = z.union([z.object({
138
+ 'ok': z.literal(false).readonly(),
139
+ 'error': z.object({
140
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
141
+ 'message': z.string().readonly(),
142
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema7)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema7)).readonly()])).readonly().readonly(),
143
+ }).readonly(),
144
+ }), z.object({
145
+ 'ok': z.literal(true).readonly(),
146
+ 'value': z.array(z.object({
147
+ 'absolutePath': z.string().readonly(),
148
+ 'branch': z.string().readonly(),
149
+ })).readonly(),
150
+ })])
108
151
  const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_parameter_0$schema = z.object({
109
152
  'workspaceId': z.string().readonly(),
110
153
  })
111
154
  const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema = z.union([z.object({
112
155
  'ok': z.literal(false).readonly(),
113
156
  'error': z.object({
114
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
157
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
115
158
  'message': z.string().readonly(),
116
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema4)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema4)).readonly()])).readonly().readonly(),
159
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema6)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema6)).readonly()])).readonly().readonly(),
117
160
  }).readonly(),
118
161
  }), z.object({
119
162
  'ok': z.literal(true).readonly(),
@@ -122,6 +165,7 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema =
122
165
  'workspaceId': z.string().readonly(),
123
166
  'absolutePath': z.string().readonly(),
124
167
  'branch': z.string().readonly(),
168
+ 'source': z.union([z.literal("plugin"), z.literal("external")]).readonly(),
125
169
  'status': z.union([z.literal("active"), z.literal("removed")]).readonly(),
126
170
  'health': z.union([z.undefined(), z.literal("ready"), z.literal("repair")]).readonly().optional(),
127
171
  })).readonly(),
@@ -133,9 +177,9 @@ const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_parameter_0$sch
133
177
  const _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_result$schema = z.union([z.object({
134
178
  'ok': z.literal(false).readonly(),
135
179
  'error': z.object({
136
- 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
180
+ 'code': z.union([z.literal("WORKSPACE_NOT_FOUND"), z.literal("WORKSPACE_NOT_GIT_REPOSITORY"), z.literal("GIT_NOT_INSTALLED"), z.literal("WORKTREE_REQUIRES_INITIAL_COMMIT"), z.literal("WORKTREE_BRANCH_CONFLICT"), z.literal("WORKTREE_NOT_FOUND"), z.literal("WORKTREE_ORDER_INVALID"), z.literal("WORKTREE_REMOVED"), z.literal("WORKTREE_IMPORT_INVALID"), z.literal("WORKTREE_ALREADY_MANAGED"), z.literal("SESSION_NOT_FOUND"), z.literal("SESSION_CWD_MISMATCH"), z.literal("SESSION_ALREADY_BOUND"), z.literal("SIDECAR_UNAVAILABLE"), z.literal("SIDECAR_CORRUPT"), z.literal("SIDECAR_SYNC_REQUIRED"), z.literal("GIT_OPERATION_FAILED")]).readonly(),
137
181
  'message': z.string().readonly(),
138
- 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema7)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema7)).readonly()])).readonly().readonly(),
182
+ 'details': z.record(z.string(), z.union([z.literal(null), z.string(), z.number(), z.literal(false), z.literal(true), z.array(z.lazy(() => JsonValueRemoteCodec$schema2)), z.record(z.string(), z.lazy(() => JsonValueRemoteCodec$schema2)).readonly()])).readonly().readonly(),
139
183
  }).readonly(),
140
184
  }), z.object({
141
185
  'ok': z.literal(true).readonly(),
@@ -171,7 +215,7 @@ export const TYPERT = {
171
215
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
172
216
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_bindSession_result$schema,
173
217
  },
174
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":116,"column":3},
218
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":133,"column":3},
175
219
  },
176
220
  {
177
221
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/createWorktree',
@@ -196,7 +240,32 @@ export const TYPERT = {
196
240
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
197
241
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_createWorktree_result$schema,
198
242
  },
199
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":83,"column":3},
243
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":92,"column":3},
244
+ },
245
+ {
246
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/importWorktree',
247
+ service: 'worktreeManager',
248
+ namespace: 'worktreeManager',
249
+ method: 'importWorktree',
250
+ invocation: { kind: 'direct' },
251
+ parameters: [
252
+ {
253
+ name: 'input',
254
+ wire: 'input',
255
+ source: 'json',
256
+ codec: {
257
+ mode: 'strict',
258
+ typeSymbol: '@cerbur/clutch-dsh-worktree#worktreeManager/importWorktree:input',
259
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_parameter_0$schema,
260
+ },
261
+ },
262
+ ],
263
+ result: {
264
+ mode: 'strict',
265
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
266
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_importWorktree_result$schema,
267
+ },
268
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":101,"column":3},
200
269
  },
201
270
  {
202
271
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/insertWorktreeBefore',
@@ -221,7 +290,7 @@ export const TYPERT = {
221
290
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
222
291
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_insertWorktreeBefore_result$schema,
223
292
  },
224
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":100,"column":3},
293
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":117,"column":3},
225
294
  },
226
295
  {
227
296
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listBindings',
@@ -246,7 +315,7 @@ export const TYPERT = {
246
315
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
247
316
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listBindings_result$schema,
248
317
  },
249
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":109,"column":3},
318
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":126,"column":3},
250
319
  },
251
320
  {
252
321
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listBranches',
@@ -271,7 +340,32 @@ export const TYPERT = {
271
340
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
272
341
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listBranches_result$schema,
273
342
  },
274
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":76,"column":3},
343
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":85,"column":3},
344
+ },
345
+ {
346
+ id: '@cerbur/clutch-dsh-worktree#worktreeManager/listImportCandidates',
347
+ service: 'worktreeManager',
348
+ namespace: 'worktreeManager',
349
+ method: 'listImportCandidates',
350
+ invocation: { kind: 'direct' },
351
+ parameters: [
352
+ {
353
+ name: 'input',
354
+ wire: 'input',
355
+ source: 'json',
356
+ codec: {
357
+ mode: 'strict',
358
+ typeSymbol: '@cerbur/clutch-dsh-worktree#worktreeManager/listImportCandidates:input',
359
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_parameter_0$schema,
360
+ },
361
+ },
362
+ ],
363
+ result: {
364
+ mode: 'strict',
365
+ typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
366
+ schema: _cerbur_clutch_dsh_worktree_worktreeManager_listImportCandidates_result$schema,
367
+ },
368
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":78,"column":3},
275
369
  },
276
370
  {
277
371
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/listWorktrees',
@@ -296,7 +390,7 @@ export const TYPERT = {
296
390
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
297
391
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_listWorktrees_result$schema,
298
392
  },
299
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":69,"column":3},
393
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":71,"column":3},
300
394
  },
301
395
  {
302
396
  id: '@cerbur/clutch-dsh-worktree#worktreeManager/removeWorktree',
@@ -321,7 +415,7 @@ export const TYPERT = {
321
415
  typeSymbol: '@cerbur/clutch-dsh-worktree/contract#WorktreeRemoteResult',
322
416
  schema: _cerbur_clutch_dsh_worktree_worktreeManager_removeWorktree_result$schema,
323
417
  },
324
- sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":92,"column":3},
418
+ sourceLocation: {"file":"packages/clutch-dsh-worktree/src/host/service.ts","line":109,"column":3},
325
419
  },
326
420
  ],
327
421
  model: {
@@ -3,24 +3,28 @@ import type {
3
3
  RemoteResult,
4
4
  TypertRemoteContribution,
5
5
  } from '@deepseek-ai/dsh-typert-protocol'
6
- import type { BranchRecord, SessionBinding, WorktreeId, WorktreeRecord, WorktreeRemoteResult } from '@cerbur/clutch-dsh-worktree/contract'
6
+ import type { BranchRecord, SessionBinding, WorkspaceId, WorktreeId, WorktreeImportCandidate, WorktreeRecord, WorktreeRemoteResult } from '@cerbur/clutch-dsh-worktree/contract'
7
7
 
8
8
  declare module '@deepseek-ai/dsh-typert-protocol' {
9
9
  interface TypertRemoteNamespace$776f726b747265654d616e61676572 {
10
10
  bindSession: (input: { readonly workspaceId: string; readonly worktreeId: string; readonly sessionId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<SessionBinding>>>
11
11
  createWorktree: (input: { readonly workspaceId: string; readonly branch: string; readonly newBranch?: string; }) => Promise<RemoteResult<WorktreeRemoteResult<WorktreeRecord>>>
12
+ importWorktree: (input: { readonly workspaceId: WorkspaceId; readonly absolutePath: string; }) => Promise<RemoteResult<WorktreeRemoteResult<WorktreeRecord>>>
12
13
  insertWorktreeBefore: (input: { readonly workspaceId: string; readonly worktreeId: string; readonly beforeWorktreeId?: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly WorktreeId[]>>>
13
14
  listBindings: (input: { readonly workspaceId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly SessionBinding[]>>>
14
15
  listBranches: (input: { readonly workspaceId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly BranchRecord[]>>>
16
+ listImportCandidates: (input: { readonly workspaceId: WorkspaceId; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly WorktreeImportCandidate[]>>>
15
17
  listWorktrees: (input: { readonly workspaceId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly WorktreeRecord[]>>>
16
18
  removeWorktree: (input: { readonly workspaceId: string; readonly worktreeId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<null>>>
17
19
  }
18
20
  interface TypertRemoteMap {
19
21
  'worktreeManager/bindSession': (input: { readonly workspaceId: string; readonly worktreeId: string; readonly sessionId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<SessionBinding>>>
20
22
  'worktreeManager/createWorktree': (input: { readonly workspaceId: string; readonly branch: string; readonly newBranch?: string; }) => Promise<RemoteResult<WorktreeRemoteResult<WorktreeRecord>>>
23
+ 'worktreeManager/importWorktree': (input: { readonly workspaceId: WorkspaceId; readonly absolutePath: string; }) => Promise<RemoteResult<WorktreeRemoteResult<WorktreeRecord>>>
21
24
  'worktreeManager/insertWorktreeBefore': (input: { readonly workspaceId: string; readonly worktreeId: string; readonly beforeWorktreeId?: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly WorktreeId[]>>>
22
25
  'worktreeManager/listBindings': (input: { readonly workspaceId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly SessionBinding[]>>>
23
26
  'worktreeManager/listBranches': (input: { readonly workspaceId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly BranchRecord[]>>>
27
+ 'worktreeManager/listImportCandidates': (input: { readonly workspaceId: WorkspaceId; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly WorktreeImportCandidate[]>>>
24
28
  'worktreeManager/listWorktrees': (input: { readonly workspaceId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<readonly WorktreeRecord[]>>>
25
29
  'worktreeManager/removeWorktree': (input: { readonly workspaceId: string; readonly worktreeId: string; }) => Promise<RemoteResult<WorktreeRemoteResult<null>>>
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typert.remote-client.d.ts","names":["bindSession","createWorktree","insertWorktreeBefore","listBindings","listBranches","listWorktrees","removeWorktree"],"sources":["../src/host/service.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;IAmHEA,W;IAjCAC,c;IAiBAC,oB;IASAC,Y;IAjCAC,Y;IAPAC,a;IAuBAC,c;;;IAwBAN,6B;IAjCAC,gC;IAiBAC,sC;IASAC,8B;IAjCAC,8B;IAPAC,+B;IAuBAC,gC","ignoreList":[]}
1
+ {"version":3,"file":"typert.remote-client.d.ts","names":["bindSession","createWorktree","importWorktree","insertWorktreeBefore","listBindings","listBranches","listImportCandidates","listWorktrees","removeWorktree"],"sources":["../src/host/service.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;IAoIEA,W;IAzCAC,c;IASAC,c;IAgBAC,oB;IASAC,Y;IAzCAC,Y;IAPAC,oB;IAPAC,a;IAsCAC,c;;;IAwBAR,6B;IAzCAC,gC;IASAC,gC;IAgBAC,sC;IASAC,8B;IAzCAC,8B;IAPAC,sC;IAPAC,+B;IAsCAC,gC","ignoreList":[]}