dsh-git-worktree 0.11.0 → 0.12.1

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 (55) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/NOTICE +2 -1
  3. package/README.en.md +30 -19
  4. package/README.md +30 -19
  5. package/lib/adapters/git.js +45 -8
  6. package/lib/adapters/git.js.map +1 -1
  7. package/lib/adapters/project-skill-io.js +7 -1
  8. package/lib/adapters/project-skill-io.js.map +1 -1
  9. package/lib/adapters/project-skill-snapshot.d.ts +10 -0
  10. package/lib/adapters/project-skill-snapshot.js +182 -0
  11. package/lib/adapters/project-skill-snapshot.js.map +1 -0
  12. package/lib/adapters/project-skills.d.ts +18 -3
  13. package/lib/adapters/project-skills.js +102 -13
  14. package/lib/adapters/project-skills.js.map +1 -1
  15. package/lib/client/WorktreeCreateRow.js +14 -2
  16. package/lib/client/WorktreeCreateRow.js.map +1 -1
  17. package/lib/client/actions.d.ts +32 -1
  18. package/lib/client/actions.js +41 -0
  19. package/lib/client/actions.js.map +1 -1
  20. package/lib/client/console-remote/index.js +8 -4
  21. package/lib/client/console-remote/index.js.map +1 -1
  22. package/lib/client/index.d.ts +6 -1
  23. package/lib/client/index.js +11 -2
  24. package/lib/client/index.js.map +1 -1
  25. package/lib/client/target-console/TargetStatusAction.js +11 -9
  26. package/lib/client/target-console/TargetStatusAction.js.map +1 -1
  27. package/lib/client/workspace-desktop.d.ts +15 -0
  28. package/lib/client/workspace-desktop.js +95 -0
  29. package/lib/client/workspace-desktop.js.map +1 -0
  30. package/lib/client.js +5769 -248
  31. package/lib/console-contract.d.ts +1 -1
  32. package/lib/console-host/review-diff.js +9 -4
  33. package/lib/console-host/review-diff.js.map +1 -1
  34. package/lib/console-remote/schemas.js +1 -1
  35. package/lib/console-remote/schemas.js.map +1 -1
  36. package/lib/creation-failure.d.ts +6 -0
  37. package/lib/creation-failure.js +9 -0
  38. package/lib/creation-failure.js.map +1 -1
  39. package/lib/host-compat.d.ts +1 -1
  40. package/lib/host-compat.js +2 -0
  41. package/lib/host-compat.js.map +1 -1
  42. package/lib/i18n/client-messages.d.ts +8 -0
  43. package/lib/i18n/client-messages.js +3 -1
  44. package/lib/i18n/client-messages.js.map +1 -1
  45. package/lib/session-checkout-apply.js +6 -3
  46. package/lib/session-checkout-apply.js.map +1 -1
  47. package/lib/session-checkout-module.js +6 -1
  48. package/lib/session-checkout-module.js.map +1 -1
  49. package/package.json +14 -13
  50. package/scripts/check-workspace-sidebar-version.mjs +4 -1
  51. package/scripts/workspace-sidebar-resources.mjs +25 -0
  52. package/scripts/workspace-sidebar-upstream-alpha.mjs +2 -1
  53. package/scripts/workspace-sidebar-upstream-next.mjs +2 -1
  54. package/scripts/workspace-sidebar-upstream-rc5.mjs +42 -0
  55. package/scripts/workspace-sidebar-upstream.mjs +2 -1
@@ -0,0 +1,182 @@
1
+ import { constants } from 'node:fs';
2
+ import { lstat, open, readdir, readlink, realpath } from 'node:fs/promises';
3
+ import { dirname, isAbsolute, join, relative, parse, sep } from 'node:path';
4
+ import { createHash } from 'node:crypto';
5
+ const fail = (message, path) => new Error(`Project Skills: ${message}: ${path}`);
6
+ const stamp = (s) => `${s.dev}:${s.ino}:${s.mode}:${s.size}:${s.mtimeMs}:${s.ctimeMs}`;
7
+ /** Source-only resolver. Destination IO deliberately continues to reject links.
8
+ * Like project-skill-io, this detects races in a trusted local filesystem; Node
9
+ * does not offer openat/O_BENEATH for atomic adversarial ancestor containment.
10
+ */
11
+ export async function snapshotSkillLinks(source, roots, boundary) {
12
+ const root = await realpath(boundary.root);
13
+ if (await realpath(source) !== root)
14
+ throw fail('snapshot source is not the Git root', source);
15
+ const metadata = await Promise.all(boundary.metadata.map(path => realpath(path)));
16
+ const observed = new Map();
17
+ const links = [];
18
+ const files = [];
19
+ const directories = [];
20
+ const sourcePaths = new Set();
21
+ let entries = 0, bytes = 0;
22
+ function contained(path, container) {
23
+ const rel = relative(container, path);
24
+ return rel === '' || (!isAbsolute(rel) && rel !== '..' && !rel.startsWith(`..${sep}`));
25
+ }
26
+ function safe(path, logical) {
27
+ if (!contained(path, root))
28
+ throw fail('link escapes Git repository', logical);
29
+ const parts = relative(root, path).split(sep);
30
+ if (parts.length > 67)
31
+ throw fail('source path exceeds depth limit', logical);
32
+ if (parts.some(part => part.toLowerCase() === '.git') || metadata.some(dir => contained(path, dir)))
33
+ throw fail('link enters Git metadata', logical);
34
+ if (parts.some(part => /[\\:\x00-\x1f]/.test(part)))
35
+ throw fail('unsupported source path', logical);
36
+ }
37
+ async function observe(path, logical) {
38
+ let stat;
39
+ try {
40
+ stat = await lstat(path);
41
+ }
42
+ catch (error) {
43
+ if (error.code === 'ENOENT')
44
+ throw fail('dangling link or missing source', logical);
45
+ throw error;
46
+ }
47
+ const value = stamp(stat);
48
+ if (observed.has(path) && observed.get(path) !== value)
49
+ throw fail('source changed during snapshot', logical);
50
+ observed.set(path, value);
51
+ if (stat.isFile() || stat.isSymbolicLink())
52
+ sourcePaths.add(relative(root, path).split(sep).join('/'));
53
+ return stat;
54
+ }
55
+ async function resolvePath(path, logical, chain = new Set()) {
56
+ safe(path, logical);
57
+ let current = root;
58
+ for (const part of relative(root, path).split(sep).filter(Boolean)) {
59
+ current = join(current, part);
60
+ safe(current, logical);
61
+ const stat = await observe(current, logical);
62
+ if (stat.isSymbolicLink()) {
63
+ if (chain.has(current) || chain.size >= 64)
64
+ throw fail('cyclic link or link depth limit', logical);
65
+ const next = new Set(chain).add(current);
66
+ const target = await readlink(current);
67
+ let targetPath = isAbsolute(target) ? parse(target).root : dirname(current);
68
+ // Keep `..` in traversal order; normalizing it before resolving an
69
+ // intermediate link could read a different path or hide a boundary hop.
70
+ for (const segment of target.slice(isAbsolute(target) ? parse(target).root.length : 0).split(sep)) {
71
+ if (!segment || segment === '.')
72
+ continue;
73
+ if (segment === '..') {
74
+ targetPath = dirname(targetPath);
75
+ safe(targetPath, logical);
76
+ }
77
+ else {
78
+ const candidate = join(targetPath, segment);
79
+ // Absolute targets must enter the root through its literal prefix.
80
+ if (isAbsolute(target) && contained(root, candidate) && !contained(candidate, root)) {
81
+ targetPath = candidate;
82
+ continue;
83
+ }
84
+ targetPath = await resolvePath(candidate, logical, next);
85
+ }
86
+ }
87
+ safe(targetPath, logical);
88
+ current = targetPath;
89
+ }
90
+ else if (!stat.isFile() && !stat.isDirectory())
91
+ throw fail('special file is not supported', logical);
92
+ }
93
+ return current;
94
+ }
95
+ // Record a physically checked-out link only until the first expanded alias.
96
+ async function walk(logical, physical, depth, ancestors, expanded) {
97
+ if (++entries > 10000 || depth > 64)
98
+ throw fail('Skill tree exceeds the inspection limit', logical);
99
+ if (logical.split('/').some(part => !part || part === '.' || part === '..' || /[\\:\x00-\x1f]/.test(part)))
100
+ throw fail('unsupported Skill path', logical);
101
+ safe(physical, logical);
102
+ const original = await observe(physical, logical);
103
+ if (original.isSymbolicLink() && !expanded) {
104
+ links.push({ path: logical, target: await readlink(physical) });
105
+ expanded = true;
106
+ }
107
+ const path = await resolvePath(physical, logical);
108
+ const stat = await observe(path, logical);
109
+ if (depth === 0 && !stat.isDirectory())
110
+ throw fail('Skill root must resolve to a directory', logical);
111
+ if (stat.isDirectory()) {
112
+ if (ancestors.has(path))
113
+ throw fail('cyclic directory link', logical);
114
+ const next = new Set(ancestors).add(path);
115
+ const names = (await readdir(path)).sort();
116
+ if (!names.length)
117
+ directories.push(logical);
118
+ for (const name of names)
119
+ await walk(`${logical}/${name}`, join(path, name), depth + 1, next, expanded);
120
+ return;
121
+ }
122
+ if (!stat.isFile())
123
+ throw fail('special file is not supported', logical);
124
+ if (files.length >= 5000 || bytes + stat.size > 64 * 1024 * 1024)
125
+ throw fail('Skill snapshot exceeds the safety limit', logical);
126
+ const handle = await open(path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0));
127
+ try {
128
+ const before = await handle.stat();
129
+ if (stamp(before) !== stamp(stat))
130
+ throw fail('source changed during snapshot', logical);
131
+ const buffer = Buffer.alloc(stat.size + 1);
132
+ let size = 0;
133
+ while (size < buffer.length) {
134
+ const read = await handle.read(buffer, size, buffer.length - size, size);
135
+ if (!read.bytesRead)
136
+ break;
137
+ size += read.bytesRead;
138
+ }
139
+ if (size !== stat.size || stamp(await handle.stat()) !== stamp(before) || stamp(await lstat(path)) !== stamp(before))
140
+ throw fail('source changed during snapshot', logical);
141
+ bytes += size;
142
+ const content = buffer.subarray(0, size);
143
+ files.push({ path: logical, content, hash: createHash('sha256').update(content).digest('hex'), mode: stat.mode & 0o777 });
144
+ sourcePaths.add(relative(root, path).split(sep).join('/'));
145
+ }
146
+ finally {
147
+ await handle.close();
148
+ }
149
+ }
150
+ await observe(root, '.');
151
+ for (const logical of roots) {
152
+ // Only absent roots are optional; missing targets within a root are errors.
153
+ let parent = root;
154
+ const parts = logical.split('/');
155
+ let absent = false;
156
+ for (const [index, part] of parts.entries()) {
157
+ const path = join(parent, part);
158
+ try {
159
+ const stat = await lstat(path);
160
+ if (stat.isSymbolicLink() && index < parts.length - 1)
161
+ throw fail('link above Skill root is not supported', logical);
162
+ parent = path;
163
+ }
164
+ catch (error) {
165
+ if (error.code === 'ENOENT') {
166
+ absent = true;
167
+ break;
168
+ }
169
+ ;
170
+ throw error;
171
+ }
172
+ }
173
+ if (!absent)
174
+ await walk(logical, join(root, logical), 0, new Set(), false);
175
+ }
176
+ for (const [path, expected] of observed) {
177
+ if (stamp(await lstat(path)) !== expected)
178
+ throw fail('source changed during snapshot', relative(root, path));
179
+ }
180
+ return { files, directories, links, sourcePaths: [...sourcePaths] };
181
+ }
182
+ //# sourceMappingURL=project-skill-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-skill-snapshot.js","sourceRoot":"","sources":["../../src/adapters/project-skill-snapshot.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,22 @@
1
+ import { type SkillBoundary } from './project-skill-snapshot.js';
1
2
  export declare const PROJECT_SKILL_ROOTS: readonly [".dsh/skills", ".agents/skills", ".claude/skills"];
2
3
  interface Entry {
3
4
  path: string;
4
5
  hash: string;
5
6
  mode: number;
6
7
  }
8
+ interface SkillLink {
9
+ path: string;
10
+ target: string;
11
+ entry?: string;
12
+ }
7
13
  export interface SkillSnapshot {
8
14
  directories?: string[];
9
15
  files: Array<Entry & {
10
16
  content: Buffer;
11
17
  }>;
18
+ links?: SkillLink[];
19
+ sourcePaths?: string[];
12
20
  }
13
21
  export interface CarriedSkillState {
14
22
  paths: string[];
@@ -21,7 +29,7 @@ export declare class ProjectSkillStore {
21
29
  private readonly directory;
22
30
  constructor(directory: string);
23
31
  private file;
24
- snapshot(source: string): Promise<SkillSnapshot>;
32
+ snapshot(source: string, boundary?: SkillBoundary): Promise<SkillSnapshot>;
25
33
  private load;
26
34
  carry(snapshot: SkillSnapshot, target: string): Promise<void>;
27
35
  scope(root: string): Promise<{
@@ -30,11 +38,18 @@ export declare class ProjectSkillStore {
30
38
  } | null>;
31
39
  paths(root: string): Promise<string[] | null>;
32
40
  state(root: string, tracked?: ReadonlySet<string>): Promise<CarriedSkillState | null>;
41
+ /** Freeze aliases and restore only exact, provenance-backed tracked links in a temporary index. */
42
+ projection(root: string, index: Buffer | string, head: Buffer | string): Promise<{
43
+ remove: string[];
44
+ restore: string[];
45
+ links: string[];
46
+ } | null>;
47
+ private assertFrozenLinks;
33
48
  assertRemovable(root: string, tracked: ReadonlySet<string>): Promise<void>;
34
49
  forget(root: string): Promise<void>;
35
50
  }
36
51
  export declare function trackedSkillPaths(indexEntries: Buffer | string, headPaths?: Buffer | string): Set<string>;
37
- /** Only ?? records are auxiliary; tracked edits, renames and deletions stay visible. */
38
- export declare function hasDeliverableStatus(output: string, auxiliary: ReadonlySet<string>, directories?: readonly string[]): boolean;
52
+ /** Only auxiliary ?? and validated materialization records are hidden. */
53
+ export declare function hasDeliverableStatus(output: string, auxiliary: ReadonlySet<string>, directories?: readonly string[], materialized?: ReadonlySet<string>): boolean;
39
54
  export declare function assertSkillPath(root: string, path: string): Promise<void>;
40
55
  export {};
@@ -1,11 +1,14 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { createSkillDirectories, createSkillFiles, readSkillFiles } from './project-skill-io.js';
3
3
  import { constants } from 'node:fs';
4
- import { lstat, mkdir, open, readdir, realpath, rename, rm, writeFile } from 'node:fs/promises';
4
+ import { lstat, mkdir, open, readdir, readlink, realpath, rename, rm, unlink, writeFile } from 'node:fs/promises';
5
+ import { snapshotSkillLinks } from './project-skill-snapshot.js';
5
6
  import { join, resolve } from 'node:path';
6
7
  export const PROJECT_SKILL_ROOTS = ['.dsh/skills', '.agents/skills', '.claude/skills'];
7
8
  const MAX_FILES = 5000;
8
9
  const MAX_BYTES = 64 * 1024 * 1024;
10
+ const beneath = (path, parent) => path === parent || path.startsWith(`${parent}/`);
11
+ const safeLinkPath = (path) => PROJECT_SKILL_ROOTS.includes(path) || safePath(path);
9
12
  const digest = (data) => createHash('sha256').update(data).digest('hex');
10
13
  const missing = (error) => error.code === 'ENOENT';
11
14
  const failure = (message) => new Error(`Project Skills: ${message}`);
@@ -107,7 +110,7 @@ async function inventory(root, roots = PROJECT_SKILL_ROOTS, tracked = new Set(),
107
110
  files.push({ path: relative, maxBytes: stat.size });
108
111
  }
109
112
  await identity(root);
110
- for (const rootPath of roots)
113
+ for (const rootPath of [...new Set(roots)].filter(path => !roots.some(other => other !== path && beneath(path, other))))
111
114
  await walk(rootPath, 0);
112
115
  return (await readSkillFiles(root, rootIdentity, files)).map(file => ({ ...file, hash: digest(file.content) }));
113
116
  }
@@ -118,7 +121,9 @@ export class ProjectSkillStore {
118
121
  this.directory = directory;
119
122
  }
120
123
  file(root) { return join(this.directory, `${digest(resolve(root))}.json`); }
121
- async snapshot(source) {
124
+ async snapshot(source, boundary) {
125
+ if (boundary)
126
+ return snapshotSkillLinks(source, PROJECT_SKILL_ROOTS, boundary);
122
127
  const directories = [];
123
128
  return { files: await inventory(source, PROJECT_SKILL_ROOTS, new Set(), directories), directories };
124
129
  }
@@ -139,6 +144,9 @@ export class ProjectSkillStore {
139
144
  const value = JSON.parse(raw);
140
145
  if (value.version !== 1 || value.root !== await realpath(root) || value.identity !== await identity(root)
141
146
  || (value.directories !== undefined && (!Array.isArray(value.directories) || value.directories.length > 10000 || value.directories.some(path => typeof path !== 'string' || !safePath(`${path}/.directory-check`))))
147
+ || (value.links !== undefined && (!Array.isArray(value.links) || value.links.length > 10000
148
+ || value.links.some(link => !link || !safeLinkPath(link.path) || typeof link.target !== 'string'
149
+ || (link.entry !== undefined && (!/^120000 [0-9a-f]{40,64} 0\t/.test(link.entry) || link.entry.slice(link.entry.indexOf('\t') + 1) !== link.path)))))
142
150
  || value.phase !== 'ready' || !Array.isArray(value.files) || value.files.length > MAX_FILES
143
151
  || value.files.some(file => !file || typeof file.path !== 'string' || !safePath(file.path)
144
152
  || !/^[0-9a-f]{64}$/.test(file.hash) || !Number.isInteger(file.mode) || file.mode < 0 || file.mode > 0o777)
@@ -149,16 +157,42 @@ export class ProjectSkillStore {
149
157
  async carry(snapshot, target) {
150
158
  if (await this.load(target))
151
159
  throw failure('Skill provenance already exists for this checkout');
152
- if (!snapshot.files.length && !snapshot.directories?.length)
160
+ if (!snapshot.files.length && !snapshot.directories?.length && !snapshot.links?.length)
153
161
  return;
154
162
  const root = await realpath(target);
155
163
  const rootIdentity = await identity(target);
156
164
  const pending = [];
157
165
  const existing = [];
166
+ const links = snapshot.links ?? [];
167
+ const replacing = [];
168
+ for (const link of links) {
169
+ if (!safeLinkPath(link.path) || !link.target || links.some(other => other !== link && beneath(link.path, other.path)))
170
+ throw failure('invalid or overlapping Skill links');
171
+ const parent = link.path.split('/').slice(0, -1).join('/');
172
+ if (parent && !await inspectPath(root, parent)) {
173
+ if (link.entry)
174
+ throw failure(`checked-out Skill link is missing: ${link.path}`);
175
+ continue;
176
+ }
177
+ try {
178
+ const stat = await lstat(join(root, link.path));
179
+ if (!stat.isSymbolicLink() || await readlink(join(root, link.path)) !== link.target)
180
+ throw failure(`checked-out Skill link conflicts with snapshot: ${link.path}`);
181
+ replacing.push(link);
182
+ }
183
+ catch (error) {
184
+ if (!missing(error) || link.entry)
185
+ throw error;
186
+ }
187
+ }
158
188
  // Complete conflict preflight before creating any auxiliary file.
159
189
  for (const file of snapshot.files) {
160
190
  if (!safePath(file.path) || digest(file.content) !== file.hash)
161
191
  throw failure('invalid Skill snapshot');
192
+ if (links.some(link => beneath(file.path, link.path))) {
193
+ pending.push(file);
194
+ continue;
195
+ }
162
196
  if (await inspectPath(root, file.path)) {
163
197
  if (!(await lstat(join(root, file.path))).isFile())
164
198
  throw failure(`local Skill conflicts with checked-out content: ${file.path}`);
@@ -176,18 +210,27 @@ export class ProjectSkillStore {
176
210
  for (const directory of snapshot.directories ?? []) {
177
211
  if (!safePath(`${directory}/.directory-check`))
178
212
  throw failure('invalid Skill directory');
179
- if (!await inspectPath(root, directory))
213
+ if (links.some(link => beneath(directory, link.path)) || !await inspectPath(root, directory))
180
214
  directories.push(directory);
181
215
  else if (!(await lstat(join(root, directory))).isDirectory())
182
216
  throw failure(`Skill directory conflicts with a file: ${directory}`);
183
217
  }
184
- if (!pending.length && !directories.length)
218
+ if (!pending.length && !directories.length && !links.length)
185
219
  return;
186
- const manifest = { version: 1, root, identity: rootIdentity, phase: 'copying', directories, files: pending.map(({ content: _, ...file }) => file) };
220
+ const manifest = { version: 1, root, identity: rootIdentity, phase: 'copying', directories, links, files: pending.map(({ content: _, ...file }) => file) };
187
221
  await mkdir(this.directory, { recursive: true });
188
222
  const manifestPath = this.file(target);
189
223
  // Exclusive publication prevents an earlier uncertain attempt from being overwritten.
190
224
  await writeFile(manifestPath, JSON.stringify(manifest), { flag: 'wx', mode: 0o600 });
225
+ for (const link of replacing) {
226
+ if (rootIdentity !== await identity(target))
227
+ throw failure('checkout changed before Skill materialization');
228
+ await inspectPath(root, link.path.split('/').slice(0, -1).join('/'));
229
+ const path = join(root, link.path);
230
+ if (!(await lstat(path)).isSymbolicLink() || await readlink(path) !== link.target)
231
+ throw failure(`Skill link changed before materialization: ${link.path}`);
232
+ await unlink(path);
233
+ }
191
234
  await createSkillDirectories(root, rootIdentity, directories);
192
235
  await createSkillFiles(root, rootIdentity, pending);
193
236
  const copied = await readSkillFiles(root, rootIdentity, pending.map(file => ({ path: file.path, maxBytes: file.content.length })));
@@ -204,14 +247,14 @@ export class ProjectSkillStore {
204
247
  }
205
248
  async scope(root) {
206
249
  const manifest = await this.load(root);
207
- return manifest ? { paths: manifest.files.map(file => file.path), directories: ownedSkillDirectories(manifest.files, manifest.directories) } : null;
250
+ return manifest ? { paths: manifest.files.map(file => file.path), directories: [...ownedSkillDirectories(manifest.files, manifest.directories), ...(manifest.links ?? []).map(link => link.path)] } : null;
208
251
  }
209
252
  async paths(root) { return (await this.scope(root))?.paths ?? null; }
210
253
  async state(root, tracked = new Set()) {
211
254
  const manifest = await this.load(root);
212
255
  if (!manifest)
213
256
  return null;
214
- const files = manifest.files.filter(file => !tracked.has(file.path));
257
+ const files = manifest.files.filter(file => !tracked.has(file.path) || manifest.links?.some(link => beneath(file.path, link.path)));
215
258
  const hashes = [];
216
259
  let modified = false;
217
260
  const roots = [...ownedSkillDirectories(manifest.files, manifest.directories), ...files.filter(file => file.path.split('/').length === 3).map(file => file.path)];
@@ -220,7 +263,8 @@ export class ProjectSkillStore {
220
263
  modified ||= !present;
221
264
  hashes.push(`${directory}${present ? 'directory' : 'missing'}`);
222
265
  }
223
- const current = await inventory(root, [...new Set(roots)], tracked);
266
+ const ignoredTracked = new Set([...tracked].filter(path => !manifest.links?.some(link => beneath(path, link.path))));
267
+ const current = await inventory(root, [...new Set([...roots, ...(manifest.links ?? []).map(link => link.path)])], ignoredTracked);
224
268
  const currentByPath = new Map(current.map(file => [file.path, file]));
225
269
  for (const file of files) {
226
270
  const observed = currentByPath.get(file.path);
@@ -240,7 +284,48 @@ export class ProjectSkillStore {
240
284
  }
241
285
  return { paths, fingerprint: digest(hashes.join('\0')), modified };
242
286
  }
287
+ /** Freeze aliases and restore only exact, provenance-backed tracked links in a temporary index. */
288
+ async projection(root, index, head) {
289
+ const manifest = await this.load(root);
290
+ if (!manifest)
291
+ return null;
292
+ const tracked = trackedSkillPaths(index, head);
293
+ const state = await this.state(root, tracked);
294
+ const linkPaths = (manifest.links ?? []).map(link => link.path);
295
+ const entries = new Set(index.toString().split('\0').filter(Boolean));
296
+ const headEntries = new Set(head.toString().split('\0').filter(Boolean));
297
+ for (const link of manifest.links ?? []) {
298
+ const treeEntry = link.entry?.replace(' 0\t', '\t').replace('120000 ', '120000 blob ');
299
+ if (link.entry && (!entries.has(link.entry) || !headEntries.has(treeEntry)))
300
+ throw failure(`tracked Skill link/index changed; retain checkout and resolve explicitly: ${link.path}`);
301
+ if ([...headEntries].some(entry => beneath(entry.slice(entry.indexOf('\t') + 1), link.path) && entry !== treeEntry))
302
+ throw failure(`materialized Skill HEAD changed; retain checkout and resolve explicitly: ${link.path}`);
303
+ if ([...entries].some(entry => beneath(entry.slice(entry.indexOf('\t') + 1), link.path) && entry !== link.entry))
304
+ throw failure(`materialized Skill was staged; retain checkout and resolve explicitly: ${link.path}`);
305
+ }
306
+ await this.assertFrozenLinks(root, manifest);
307
+ return { remove: state?.paths ?? [], restore: (manifest.links ?? []).flatMap(link => link.entry ? [link.entry] : []), links: linkPaths };
308
+ }
309
+ async assertFrozenLinks(root, manifest) {
310
+ for (const link of manifest.links ?? []) {
311
+ const expected = manifest.files.filter(file => beneath(file.path, link.path));
312
+ const emptyDirectories = [];
313
+ const current = await inventory(root, [link.path], new Set(), emptyDirectories);
314
+ const expectedDirectories = (manifest.directories ?? []).filter(path => beneath(path, link.path));
315
+ if (emptyDirectories.length !== expectedDirectories.length || emptyDirectories.some(path => !expectedDirectories.includes(path)))
316
+ throw failure(`materialized Skill directories changed: ${link.path}`);
317
+ if (current.length !== expected.length || current.some(file => !expected.some(before => before.path === file.path && before.hash === file.hash && before.mode === file.mode)))
318
+ throw failure(`materialized Skill snapshot changed; retain checkout and edit canonical source instead: ${link.path}`);
319
+ for (const directory of manifest.directories ?? []) {
320
+ if (beneath(directory, link.path) && (!await inspectPath(root, directory) || !(await lstat(join(root, directory))).isDirectory()))
321
+ throw failure(`materialized Skill directory changed: ${directory}`);
322
+ }
323
+ }
324
+ }
243
325
  async assertRemovable(root, tracked) {
326
+ const manifest = await this.load(root);
327
+ if (manifest)
328
+ await this.assertFrozenLinks(root, manifest);
244
329
  const state = await this.state(root, tracked);
245
330
  if (!state)
246
331
  return;
@@ -255,7 +340,7 @@ export class ProjectSkillStore {
255
340
  async forget(root) { await rm(this.file(root), { force: true }); }
256
341
  }
257
342
  export function trackedSkillPaths(indexEntries, headPaths = '') {
258
- const result = new Set(headPaths.toString().split('\0').filter(Boolean));
343
+ const result = new Set(headPaths.toString().split('\0').filter(Boolean).map(entry => entry.includes('\t') ? entry.slice(entry.indexOf('\t') + 1) : entry));
259
344
  for (const entry of indexEntries.toString().split('\0')) {
260
345
  const tab = entry.indexOf('\t');
261
346
  if (tab >= 0)
@@ -263,13 +348,17 @@ export function trackedSkillPaths(indexEntries, headPaths = '') {
263
348
  }
264
349
  return result;
265
350
  }
266
- /** Only ?? records are auxiliary; tracked edits, renames and deletions stay visible. */
267
- export function hasDeliverableStatus(output, auxiliary, directories = []) {
351
+ /** Only auxiliary ?? and validated materialization records are hidden. */
352
+ export function hasDeliverableStatus(output, auxiliary, directories = [], materialized = new Set()) {
268
353
  const entries = output.split('\0');
269
354
  for (let i = 0; i < entries.length; i++) {
270
355
  const entry = entries[i];
271
356
  if (!entry)
272
357
  continue;
358
+ // Exact unchanged provenance-backed type/deletion records only. Renames,
359
+ // staged changes and ordinary tracked edits are never directory-excluded.
360
+ if ((entry.startsWith(' D ') || entry.startsWith(' T ')) && materialized.has(entry.slice(3)))
361
+ continue;
273
362
  if (!entry.startsWith('?? '))
274
363
  return true;
275
364
  const path = entry.slice(3);
@@ -1 +1 @@
1
- {"version":3,"file":"project-skills.js","sourceRoot":"","sources":["../../src/adapters/project-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAU,CAAA;AAC/F,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAKlC,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACzF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE,CAAE,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAA;AACtF,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAA;AAC5E,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;WAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACtH,CAAC;AACD,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;QAAE,MAAM,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;IAC5F,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;AACtD,CAAC;AACD,0FAA0F;AAC1F,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,QAAgB;IACvD,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAAE,MAAM,OAAO,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAA;QACtI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAAC,MAAM,KAAK,CAAA;QAAC,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AACD,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,KAAK,GAAG,SAAS;IACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAA;IACjF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK;YAAE,MAAM,OAAO,CAAC,mCAAmC,CAAC,CAAA;QAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QAC5C,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,OAAO,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAA;YACvF,IAAI,CAAC,SAAS;gBAAE,MAAK;YACrB,MAAM,IAAI,SAAS,CAAA;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;eACvF,KAAK,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;YAAE,MAAM,OAAO,CAAC,gCAAgC,CAAC,CAAA;QACpI,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,SAA6C;IAC/F,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,UAAU,KAAK,CAAC,IAAY,EAAE,KAAa;QAC9C,IAAI,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,EAAE;YAAE,MAAM,OAAO,CAAC,yCAAyC,CAAC,CAAA;QAC3F,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,OAAM;QAC1C,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAE,MAAM,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AAC3B,CAAC;AACD,SAAS,qBAAqB,CAAC,KAAuB,EAAE,cAAiC,EAAE;IACzF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9M,CAAC;AACD,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,QAA2B,mBAAmB,EAAE,UAA+B,IAAI,GAAG,EAAE,EAAE,gBAA2B;IAC1J,MAAM,KAAK,GAA8C,EAAE,CAAA;IAC3D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,UAAU,IAAI,CAAC,QAAgB,EAAE,KAAa;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAM;QACjC,IAAI,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,EAAE;YAAE,MAAM,OAAO,CAAC,kDAAkD,CAAC,CAAA;QACtG,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAE,OAAM;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC1C,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnD,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACtE,OAAM;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;YAAE,MAAM,OAAO,CAAC,yEAAyE,CAAC,CAAA;QAC/K,KAAK,IAAI,IAAI,CAAC,IAAI,CAAA;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpB,KAAK,MAAM,QAAQ,IAAI,KAAK;QAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;AACjH,CAAC;AAED,yFAAyF;AACzF,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAC1C,IAAI,CAAC,IAAY,IAAY,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;IACnG,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,WAAW,GAAa,EAAE,CAAA;QAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,CAAA;IACrG,CAAC;IACO,KAAK,CAAC,IAAI,CAAC,IAAY;QAC7B,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;gBAAE,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAA;YACpH,GAAG,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAAC,MAAM,KAAK,CAAA;QAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAA;QACzC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,QAAQ,CAAC,IAAI,CAAC;eACpG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;eACjN,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS;eACxF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;mBACrF,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;eAC1G,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM;YAAE,MAAM,OAAO,CAAC,wEAAwE,CAAC,CAAA;QACrK,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,QAAuB,EAAE,MAAc;QACjD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,OAAO,CAAC,mDAAmD,CAAC,CAAA;QAC/F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;YAAE,OAAM;QACnE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,OAAO,GAA2B,EAAE,CAAA;QAC1C,MAAM,QAAQ,GAA2B,EAAE,CAAA;QAC3C,kEAAkE;QAClE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI;gBAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,CAAA;YACvG,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;oBAAE,MAAM,OAAO,CAAC,mDAAmD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;;gBAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;QAClI,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAE,CAAC,IAAI;gBAAE,MAAM,OAAO,CAAC,mDAAmD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACnI,CAAC;QACD,MAAM,WAAW,GAAa,EAAE,CAAA;QAChC,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,mBAAmB,CAAC;gBAAE,MAAM,OAAO,CAAC,yBAAyB,CAAC,CAAA;YACxF,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;iBAC/D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,MAAM,OAAO,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAA;QACpI,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAM;QAClD,MAAM,QAAQ,GAAa,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;QAC7J,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,sFAAsF;QACtF,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpF,MAAM,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QAC7D,MAAM,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;QAClI,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,KAAK,CAAE,CAAC,IAAI;gBAAE,MAAM,OAAO,CAAC,mCAAmC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAClH,CAAC;QACD,IAAI,YAAY,KAAK,MAAM,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,OAAO,CAAC,6CAA6C,CAAC,CAAA;QACzG,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAA;QACxB,MAAM,SAAS,GAAG,GAAG,YAAY,QAAQ,CAAA;QACzC,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACjF,MAAM,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACvC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACrJ,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,IAAY,IAA8B,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAA,CAAC,CAAC;IACtG,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,UAA+B,IAAI,GAAG,EAAE;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACpE,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,MAAM,KAAK,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACjK,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YACxG,QAAQ,KAAK,CAAC,OAAO,CAAA;YACrB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;QAClE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACnE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAA;YACxC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAA;YAChC,QAAQ,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC/D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACvD,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAA;IACpE,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,OAA4B;QAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,IAAI,KAAK,CAAC,QAAQ;YAAE,MAAM,OAAO,CAAC,qEAAqE,CAAC,CAAA;QACxG,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;QACnD,KAAK,MAAM,IAAI,IAAI,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,OAAO,CAAC,yCAAyC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAY,IAAmB,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC;CACzF;AAED,MAAM,UAAU,iBAAiB,CAAC,YAA6B,EAAE,YAA6B,EAAE;IAC9F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACxE,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,GAAG,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AACD,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,SAA8B,EAAE,cAAiC,EAAE;IACtH,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACzB,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IAC3G,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,MAAM,OAAO,CAAC,iCAAiC,CAAC,CAAA;AACzG,CAAC"}
1
+ {"version":3,"file":"project-skills.js","sourceRoot":"","sources":["../../src/adapters/project-skills.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ReviewIcon } from './review-console/ReviewIcon.js';
3
3
  import { useClientTranslator } from './i18n.js';
4
4
  import { useState } from 'react';
5
- import { openIsolatedTarget } from './actions.js';
5
+ import { openHostPath, openIsolatedTarget } from './actions.js';
6
6
  import { parseCreateTool } from './model.js';
7
+ import { useHostDesktopAvailable, useOpenFailureToast } from './workspace-desktop.js';
7
8
  export function WorktreeCreateRow({ block, services }) {
8
9
  const t = useClientTranslator();
10
+ const desktopAvailable = useHostDesktopAvailable(services.remote);
11
+ const { toast, show } = useOpenFailureToast();
9
12
  const model = parseCreateTool(block, t);
10
13
  const [openState, setOpenState] = useState('idle');
11
14
  const [openError, setOpenError] = useState(null);
12
15
  const payload = model.payload;
13
16
  const state = model.lifecycle === 'running' ? 'running' : model.lifecycle === 'ok' ? 'ok' : 'error';
17
+ const reveal = async () => {
18
+ if (!payload)
19
+ return;
20
+ const message = await openHostPath(services, payload.managedRoot);
21
+ if (message !== null)
22
+ show(message);
23
+ };
14
24
  const openTarget = async () => {
15
25
  if (!payload || openState === 'opening')
16
26
  return;
@@ -24,6 +34,8 @@ export function WorktreeCreateRow({ block, services }) {
24
34
  setOpenError(error instanceof Error ? error.message : String(error));
25
35
  }
26
36
  };
27
- return (_jsxs("section", { className: "dsh-wt-card", "data-tool": "worktree_create", "data-state": state, "aria-label": t("isolated.session.target"), children: [_jsxs("header", { className: "dsh-wt-head", children: [_jsx("span", { className: "dsh-wt-mark", "aria-hidden": true }), _jsx("strong", { className: "dsh-wt-title", children: t("isolated.session.target") }), _jsx("span", { className: "dsh-wt-subtitle", children: model.lifecycle === 'running' ? t("creating.the.unique.worktree") : payload ? t("ready.to.open") : t("creation.failed") })] }), payload ? (_jsxs("div", { className: "dsh-wt-body", children: [_jsxs("div", { className: "dsh-wt-grid", children: [_jsx("span", { className: "dsh-wt-label", children: t("checkout") }), _jsx("span", { className: "dsh-wt-value dsh-wt-code", children: payload.checkoutId }), _jsx("span", { className: "dsh-wt-label", children: t("base") }), _jsx("span", { className: "dsh-wt-value dsh-wt-code", children: payload.currentOid.slice(0, 12) }), _jsx("span", { className: "dsh-wt-label", children: t("workspace") }), _jsx("button", { type: "button", className: "dsh-wt-value dsh-wt-code dsh-wt-path", onClick: () => void services.workspaces.openPath(payload.managedRoot), children: payload.managedRoot })] }), _jsxs("div", { className: "dsh-wt-actions", children: [_jsxs("button", { type: "button", className: "dsh-wt-button dsh-wt-primary", disabled: openState === 'opening', onClick: () => void openTarget(), children: [_jsx(ReviewIcon, { name: "external" }), openState === 'opening' ? t("opening.2") : openState === 'error' ? t("retry.opening.isolated.session") : t("open.isolated.session")] }), _jsx("span", { className: "dsh-wt-status", children: t("the.current.local.session.cwd.will.not.be") })] }), openError ? _jsx("div", { className: "dsh-wt-error", role: "alert", children: openError }) : null] })) : model.error ? (_jsx("div", { className: "dsh-wt-body", children: _jsx("div", { className: "dsh-wt-error", role: "alert", children: model.error }) })) : null] }));
37
+ return (_jsxs("section", { className: "dsh-wt-card", "data-tool": "worktree_create", "data-state": state, "aria-label": t("isolated.session.target"), children: [_jsxs("header", { className: "dsh-wt-head", children: [_jsx("span", { className: "dsh-wt-mark", "aria-hidden": true }), _jsx("strong", { className: "dsh-wt-title", children: t("isolated.session.target") }), _jsx("span", { className: "dsh-wt-subtitle", children: model.lifecycle === 'running' ? t("creating.the.unique.worktree") : payload ? t("ready.to.open") : t("creation.failed") })] }), payload ? (_jsxs("div", { className: "dsh-wt-body", children: [_jsxs("div", { className: "dsh-wt-grid", children: [_jsx("span", { className: "dsh-wt-label", children: t("checkout") }), _jsx("span", { className: "dsh-wt-value dsh-wt-code", children: payload.checkoutId }), _jsx("span", { className: "dsh-wt-label", children: t("base") }), _jsx("span", { className: "dsh-wt-value dsh-wt-code", children: payload.currentOid.slice(0, 12) }), _jsx("span", { className: "dsh-wt-label", children: t("workspace") }), desktopAvailable === true ? (_jsx("button", { type: "button", className: "dsh-wt-value dsh-wt-code dsh-wt-path", onClick: () => void reveal(), children: payload.managedRoot })) : (
38
+ // Without a Host desktop opener the path stays readable but is not a control.
39
+ _jsx("span", { className: "dsh-wt-value dsh-wt-code", children: payload.managedRoot }))] }), _jsxs("div", { className: "dsh-wt-actions", children: [_jsxs("button", { type: "button", className: "dsh-wt-button dsh-wt-primary", disabled: openState === 'opening', onClick: () => void openTarget(), children: [_jsx(ReviewIcon, { name: "external" }), openState === 'opening' ? t("opening.2") : openState === 'error' ? t("retry.opening.isolated.session") : t("open.isolated.session")] }), _jsx("span", { className: "dsh-wt-status", children: t("the.current.local.session.cwd.will.not.be") })] }), openError ? _jsx("div", { className: "dsh-wt-error", role: "alert", children: openError }) : null] })) : model.error ? (_jsx("div", { className: "dsh-wt-body", children: _jsx("div", { className: "dsh-wt-error", role: "alert", children: model.error }) })) : null, toast] }));
28
40
  }
29
41
  //# sourceMappingURL=WorktreeCreateRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorktreeCreateRow.js","sourceRoot":"","sources":["../../src/client/WorktreeCreateRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorktreeCreateRow.js","sourceRoot":"","sources":["../../src/client/WorktreeCreateRow.tsx"],"names":[],"mappings":"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"}