@mindfoldhq/trellis 0.5.0-beta.13 → 0.5.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +24 -20
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +15 -12
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/claude.js +1 -1
- package/dist/configurators/claude.js.map +1 -1
- package/dist/configurators/codebuddy.js +1 -1
- package/dist/configurators/codebuddy.js.map +1 -1
- package/dist/configurators/codex.d.ts.map +1 -1
- package/dist/configurators/codex.js +3 -6
- package/dist/configurators/codex.js.map +1 -1
- package/dist/configurators/copilot.d.ts.map +1 -1
- package/dist/configurators/copilot.js +4 -11
- package/dist/configurators/copilot.js.map +1 -1
- package/dist/configurators/cursor.js +1 -1
- package/dist/configurators/cursor.js.map +1 -1
- package/dist/configurators/droid.js +1 -1
- package/dist/configurators/droid.js.map +1 -1
- package/dist/configurators/gemini.d.ts.map +1 -1
- package/dist/configurators/gemini.js +1 -3
- package/dist/configurators/gemini.js.map +1 -1
- package/dist/configurators/index.d.ts.map +1 -1
- package/dist/configurators/index.js +24 -38
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/kiro.js +1 -1
- package/dist/configurators/kiro.js.map +1 -1
- package/dist/configurators/pi.d.ts +3 -0
- package/dist/configurators/pi.d.ts.map +1 -0
- package/dist/configurators/pi.js +39 -0
- package/dist/configurators/pi.js.map +1 -0
- package/dist/configurators/qoder.d.ts.map +1 -1
- package/dist/configurators/qoder.js +1 -3
- package/dist/configurators/qoder.js.map +1 -1
- package/dist/configurators/shared.d.ts +2 -4
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +6 -9
- package/dist/configurators/shared.js.map +1 -1
- package/dist/migrations/manifests/0.5.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.5.0-beta.15.json +126 -0
- package/dist/templates/claude/agents/trellis-research.md +1 -1
- package/dist/templates/claude/settings.json +0 -4
- package/dist/templates/codebuddy/agents/trellis-research.md +1 -1
- package/dist/templates/codex/agents/trellis-check.toml +0 -16
- package/dist/templates/codex/agents/trellis-implement.toml +0 -16
- package/dist/templates/codex/agents/trellis-research.toml +3 -2
- package/dist/templates/codex/hooks/session-start.py +82 -22
- package/dist/templates/codex/skills/start/SKILL.md +1 -1
- package/dist/templates/copilot/hooks/session-start.py +84 -26
- package/dist/templates/copilot/prompts/start.prompt.md +1 -1
- package/dist/templates/cursor/agents/trellis-check.md +1 -1
- package/dist/templates/cursor/agents/trellis-implement.md +1 -1
- package/dist/templates/cursor/agents/trellis-research.md +2 -2
- package/dist/templates/cursor/hooks.json +7 -1
- package/dist/templates/droid/droids/trellis-research.md +1 -1
- package/dist/templates/extract.d.ts +6 -0
- package/dist/templates/extract.d.ts.map +1 -1
- package/dist/templates/extract.js +14 -0
- package/dist/templates/extract.js.map +1 -1
- package/dist/templates/gemini/agents/trellis-research.md +1 -1
- package/dist/templates/kiro/agents/trellis-research.json +1 -1
- package/dist/templates/markdown/agents.md +11 -12
- package/dist/templates/markdown/gitignore.txt +3 -0
- package/dist/templates/opencode/agents/trellis-check.md +1 -1
- package/dist/templates/opencode/agents/trellis-implement.md +1 -1
- package/dist/templates/opencode/agents/trellis-research.md +2 -2
- package/dist/templates/opencode/lib/trellis-context.js +100 -13
- package/dist/templates/opencode/plugins/inject-subagent-context.js +54 -4
- package/dist/templates/opencode/plugins/inject-workflow-state.js +50 -23
- package/dist/templates/opencode/plugins/session-start.js +46 -21
- package/dist/templates/pi/agents/trellis-check.md +28 -0
- package/dist/templates/pi/agents/trellis-implement.md +33 -0
- package/dist/templates/pi/agents/trellis-research.md +25 -0
- package/dist/templates/pi/extensions/trellis/index.ts.txt +549 -0
- package/dist/templates/pi/index.d.ts +5 -0
- package/dist/templates/pi/index.d.ts.map +1 -0
- package/dist/templates/pi/index.js +12 -0
- package/dist/templates/pi/index.js.map +1 -0
- package/dist/templates/pi/settings.json +12 -0
- package/dist/templates/qoder/agents/trellis-research.md +1 -1
- package/dist/templates/shared-hooks/index.d.ts +31 -0
- package/dist/templates/shared-hooks/index.d.ts.map +1 -1
- package/dist/templates/shared-hooks/index.js +59 -0
- package/dist/templates/shared-hooks/index.js.map +1 -1
- package/dist/templates/shared-hooks/inject-shell-session-context.py +180 -0
- package/dist/templates/shared-hooks/inject-subagent-context.py +128 -26
- package/dist/templates/shared-hooks/inject-workflow-state.py +101 -61
- package/dist/templates/shared-hooks/session-start.py +151 -28
- package/dist/templates/trellis/gitignore.txt +3 -0
- package/dist/templates/trellis/index.d.ts +1 -0
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +2 -0
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/__init__.py +8 -0
- package/dist/templates/trellis/scripts/common/active_task.py +593 -0
- package/dist/templates/trellis/scripts/common/cli_adapter.py +43 -8
- package/dist/templates/trellis/scripts/common/paths.py +61 -58
- package/dist/templates/trellis/scripts/common/session_context.py +12 -0
- package/dist/templates/trellis/scripts/common/task_store.py +4 -6
- package/dist/templates/trellis/scripts/task.py +56 -14
- package/dist/templates/trellis/workflow.md +31 -26
- package/dist/types/ai-tools.d.ts +3 -3
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +16 -0
- package/dist/types/ai-tools.js.map +1 -1
- package/dist/utils/template-fetcher.d.ts +22 -6
- package/dist/utils/template-fetcher.d.ts.map +1 -1
- package/dist/utils/template-fetcher.js +405 -27
- package/dist/utils/template-fetcher.js.map +1 -1
- package/dist/utils/template-hash.d.ts.map +1 -1
- package/dist/utils/template-hash.js +3 -2
- package/dist/utils/template-hash.js.map +1 -1
- package/package.json +1 -1
- package/dist/templates/shared-hooks/statusline.py +0 -218
|
@@ -27,6 +27,14 @@ export const TIMEOUTS = {
|
|
|
27
27
|
/** Timeout for downloading a template via giget (ms) */
|
|
28
28
|
DOWNLOAD_MS: 30_000,
|
|
29
29
|
};
|
|
30
|
+
export class RegistryBackendError extends Error {
|
|
31
|
+
kind;
|
|
32
|
+
constructor(kind, message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = "RegistryBackendError";
|
|
35
|
+
this.kind = kind;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
30
38
|
// =============================================================================
|
|
31
39
|
// Registry Source Parsing
|
|
32
40
|
// =============================================================================
|
|
@@ -74,6 +82,29 @@ const PUBLIC_DOMAIN_TO_PREFIX = {
|
|
|
74
82
|
"gitlab.com": "gitlab",
|
|
75
83
|
"bitbucket.org": "bitbucket",
|
|
76
84
|
};
|
|
85
|
+
function buildRegistryGitUrl(input) {
|
|
86
|
+
if (input.sourceKind === "ssh" && input.sshHost) {
|
|
87
|
+
if (input.sshStyle === "ssh-url") {
|
|
88
|
+
const port = input.sshPort ? `:${input.sshPort}` : "";
|
|
89
|
+
return `ssh://git@${input.sshHost}${port}/${input.repo}.git`;
|
|
90
|
+
}
|
|
91
|
+
return `git@${input.sshHost}:${input.repo}.git`;
|
|
92
|
+
}
|
|
93
|
+
if (input.host) {
|
|
94
|
+
return `https://${input.host}/${input.repo}.git`;
|
|
95
|
+
}
|
|
96
|
+
switch (input.provider) {
|
|
97
|
+
case "gh":
|
|
98
|
+
case "github":
|
|
99
|
+
return `https://github.com/${input.repo}.git`;
|
|
100
|
+
case "gitlab":
|
|
101
|
+
return `https://gitlab.com/${input.repo}.git`;
|
|
102
|
+
case "bitbucket":
|
|
103
|
+
return `https://bitbucket.org/${input.repo}.git`;
|
|
104
|
+
default:
|
|
105
|
+
return input.repo;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
77
108
|
/**
|
|
78
109
|
* Parse a giget-style registry source into its components.
|
|
79
110
|
*
|
|
@@ -98,12 +129,20 @@ export function parseRegistrySource(source) {
|
|
|
98
129
|
// --- Self-hosted URL detection (SSH + unknown HTTPS) ---
|
|
99
130
|
let host;
|
|
100
131
|
let normalizedInput;
|
|
132
|
+
let sourceKind = "prefixed";
|
|
133
|
+
let sshHost;
|
|
134
|
+
let sshPort;
|
|
135
|
+
let sshStyle;
|
|
101
136
|
// SSH URL: git@host:org/repo[.git] or ssh://git@host[:port]/org/repo[.git]
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
|
|
137
|
+
const scpSshMatch = source.match(/^git@([^:]+):(.+?)(?:\.git)?\/?$/);
|
|
138
|
+
const protocolSshMatch = source.match(/^ssh:\/\/git@([^/:]+)(?::(\d+))?\/(.+?)(?:\.git)?\/?$/);
|
|
139
|
+
if (scpSshMatch || protocolSshMatch) {
|
|
140
|
+
sourceKind = "ssh";
|
|
141
|
+
sshStyle = scpSshMatch ? "scp" : "ssh-url";
|
|
142
|
+
const sshDomain = scpSshMatch?.[1] ?? protocolSshMatch?.[1] ?? "";
|
|
143
|
+
const sshPath = scpSshMatch?.[2] ?? protocolSshMatch?.[3] ?? "";
|
|
144
|
+
sshPort = protocolSshMatch?.[2];
|
|
145
|
+
sshHost = sshDomain;
|
|
107
146
|
const publicPrefix = PUBLIC_DOMAIN_TO_PREFIX[sshDomain];
|
|
108
147
|
if (publicPrefix) {
|
|
109
148
|
// Public provider SSH (e.g., git@github.com:org/repo) — use native prefix, no host
|
|
@@ -116,9 +155,10 @@ export function parseRegistrySource(source) {
|
|
|
116
155
|
}
|
|
117
156
|
}
|
|
118
157
|
// HTTPS URL to unknown domain (not github.com/gitlab.com/bitbucket.org)
|
|
119
|
-
if (!
|
|
158
|
+
if (!normalizedInput) {
|
|
120
159
|
const httpsMatch = source.match(/^https?:\/\/([^/]+)\/(.+?)(?:\.git)?\/?$/);
|
|
121
160
|
if (httpsMatch) {
|
|
161
|
+
sourceKind = "https";
|
|
122
162
|
const domain = httpsMatch[1];
|
|
123
163
|
if (!KNOWN_PUBLIC_DOMAINS.includes(domain)) {
|
|
124
164
|
host = domain;
|
|
@@ -176,7 +216,28 @@ export function parseRegistrySource(source) {
|
|
|
176
216
|
}
|
|
177
217
|
// Build giget source (use normalized format)
|
|
178
218
|
const gigetSource = normalized;
|
|
179
|
-
|
|
219
|
+
const gitUrl = buildRegistryGitUrl({
|
|
220
|
+
provider,
|
|
221
|
+
host,
|
|
222
|
+
repo,
|
|
223
|
+
sourceKind,
|
|
224
|
+
sshHost,
|
|
225
|
+
sshPort,
|
|
226
|
+
sshStyle,
|
|
227
|
+
});
|
|
228
|
+
const preferGit = sourceKind === "ssh" || host !== undefined;
|
|
229
|
+
return {
|
|
230
|
+
provider,
|
|
231
|
+
repo,
|
|
232
|
+
subdir,
|
|
233
|
+
ref,
|
|
234
|
+
rawBaseUrl,
|
|
235
|
+
gigetSource,
|
|
236
|
+
host,
|
|
237
|
+
gitUrl,
|
|
238
|
+
preferGit,
|
|
239
|
+
sourceKind,
|
|
240
|
+
};
|
|
180
241
|
}
|
|
181
242
|
// =============================================================================
|
|
182
243
|
// Helpers
|
|
@@ -240,6 +301,81 @@ export async function fetchTemplateIndex(indexUrl) {
|
|
|
240
301
|
return [];
|
|
241
302
|
}
|
|
242
303
|
}
|
|
304
|
+
function isRecord(value) {
|
|
305
|
+
return typeof value === "object" && value !== null;
|
|
306
|
+
}
|
|
307
|
+
function parseTemplateIndex(raw, sourceLabel) {
|
|
308
|
+
let parsed;
|
|
309
|
+
try {
|
|
310
|
+
parsed = JSON.parse(raw);
|
|
311
|
+
}
|
|
312
|
+
catch (error) {
|
|
313
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
314
|
+
throw new RegistryBackendError("invalid-json", `${sourceLabel} is not valid JSON: ${detail}`);
|
|
315
|
+
}
|
|
316
|
+
if (!isRecord(parsed) || !Array.isArray(parsed.templates)) {
|
|
317
|
+
throw new RegistryBackendError("invalid-json", `${sourceLabel} must contain a templates array.`);
|
|
318
|
+
}
|
|
319
|
+
const templates = [];
|
|
320
|
+
for (const item of parsed.templates) {
|
|
321
|
+
if (!isRecord(item)) {
|
|
322
|
+
throw new RegistryBackendError("invalid-json", `${sourceLabel} contains an invalid template entry.`);
|
|
323
|
+
}
|
|
324
|
+
const { id, type, name, description, path: templatePath, tags } = item;
|
|
325
|
+
if (typeof id !== "string" ||
|
|
326
|
+
typeof type !== "string" ||
|
|
327
|
+
typeof name !== "string" ||
|
|
328
|
+
typeof templatePath !== "string") {
|
|
329
|
+
throw new RegistryBackendError("invalid-json", `${sourceLabel} template entries must include string id, type, name, and path fields.`);
|
|
330
|
+
}
|
|
331
|
+
templates.push({
|
|
332
|
+
id,
|
|
333
|
+
type,
|
|
334
|
+
name,
|
|
335
|
+
path: templatePath,
|
|
336
|
+
...(typeof description === "string" ? { description } : {}),
|
|
337
|
+
...(Array.isArray(tags) && tags.every((tag) => typeof tag === "string")
|
|
338
|
+
? { tags }
|
|
339
|
+
: {}),
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
const version = typeof parsed.version === "number" ? parsed.version : 1;
|
|
343
|
+
return { version, templates };
|
|
344
|
+
}
|
|
345
|
+
function emptyProbeResult(backend, isNotFound, error) {
|
|
346
|
+
return { templates: [], isNotFound, backend, ...(error ? { error } : {}) };
|
|
347
|
+
}
|
|
348
|
+
function shouldFallbackToGit(registry, result) {
|
|
349
|
+
if (registry?.provider !== "gitlab")
|
|
350
|
+
return false;
|
|
351
|
+
if (result.backend !== "http" || result.isNotFound)
|
|
352
|
+
return false;
|
|
353
|
+
return result.error?.kind === "auth" || result.error?.kind === "invalid-json";
|
|
354
|
+
}
|
|
355
|
+
async function probeRegistryIndexHttp(indexUrl) {
|
|
356
|
+
try {
|
|
357
|
+
const res = await fetch(indexUrl, {
|
|
358
|
+
signal: AbortSignal.timeout(TIMEOUTS.INDEX_FETCH_MS),
|
|
359
|
+
});
|
|
360
|
+
if (res.status === 404) {
|
|
361
|
+
return emptyProbeResult("http", true);
|
|
362
|
+
}
|
|
363
|
+
if (res.status === 401 || res.status === 403) {
|
|
364
|
+
return emptyProbeResult("http", false, new RegistryBackendError("auth", `Registry index requires authentication (HTTP ${res.status}). Use a registry source accessible by your local Git credentials.`));
|
|
365
|
+
}
|
|
366
|
+
if (!res.ok) {
|
|
367
|
+
return emptyProbeResult("http", false, new RegistryBackendError("network", `Could not reach registry index (HTTP ${res.status}). Check your network connection and try again.`));
|
|
368
|
+
}
|
|
369
|
+
const index = parseTemplateIndex(await res.text(), "Registry index.json");
|
|
370
|
+
return { templates: index.templates, isNotFound: false, backend: "http" };
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
if (error instanceof RegistryBackendError) {
|
|
374
|
+
return emptyProbeResult("http", false, error);
|
|
375
|
+
}
|
|
376
|
+
return emptyProbeResult("http", false, new RegistryBackendError("network", `Could not reach registry index: ${error instanceof Error ? error.message : String(error)}`));
|
|
377
|
+
}
|
|
378
|
+
}
|
|
243
379
|
/**
|
|
244
380
|
* Probe a registry's index.json, distinguishing "not found" from transient errors.
|
|
245
381
|
* Used by the registry flow to decide marketplace vs direct-download mode.
|
|
@@ -248,23 +384,177 @@ export async function fetchTemplateIndex(indexUrl) {
|
|
|
248
384
|
* - Other HTTP error / network timeout → { templates: [], isNotFound: false }
|
|
249
385
|
* - 200 + valid JSON → { templates: [...], isNotFound: false }
|
|
250
386
|
*/
|
|
251
|
-
export async function probeRegistryIndex(indexUrl) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
387
|
+
export async function probeRegistryIndex(indexUrl, registry) {
|
|
388
|
+
if (registry?.preferGit) {
|
|
389
|
+
return probeRegistryIndexGit(registry);
|
|
390
|
+
}
|
|
391
|
+
const httpResult = await probeRegistryIndexHttp(indexUrl);
|
|
392
|
+
if (registry && shouldFallbackToGit(registry, httpResult)) {
|
|
393
|
+
return probeRegistryIndexGit(registry);
|
|
394
|
+
}
|
|
395
|
+
return httpResult;
|
|
396
|
+
}
|
|
397
|
+
async function runGit(args) {
|
|
398
|
+
const { execFile } = await import("node:child_process");
|
|
399
|
+
return new Promise((resolve, reject) => {
|
|
400
|
+
execFile("git", args, {
|
|
401
|
+
encoding: "utf-8",
|
|
402
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
403
|
+
timeout: TIMEOUTS.DOWNLOAD_MS,
|
|
404
|
+
}, (error, stdout, stderr) => {
|
|
405
|
+
if (error) {
|
|
406
|
+
const commandError = error;
|
|
407
|
+
commandError.stdout = stdout;
|
|
408
|
+
commandError.stderr = stderr;
|
|
409
|
+
reject(commandError);
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
resolve({ stdout, stderr });
|
|
255
413
|
});
|
|
256
|
-
|
|
257
|
-
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
function getCommandErrorText(error) {
|
|
417
|
+
if (!(error instanceof Error))
|
|
418
|
+
return String(error);
|
|
419
|
+
const commandError = error;
|
|
420
|
+
return [commandError.message, commandError.stderr, commandError.stdout]
|
|
421
|
+
.filter((part) => typeof part === "string" && part.length > 0)
|
|
422
|
+
.join("\n");
|
|
423
|
+
}
|
|
424
|
+
function classifyGitError(error, stage, registry) {
|
|
425
|
+
const text = getCommandErrorText(error);
|
|
426
|
+
const lower = text.toLowerCase();
|
|
427
|
+
if (lower.includes("enoent") ||
|
|
428
|
+
lower.includes("not found: git") ||
|
|
429
|
+
lower.includes("spawn git")) {
|
|
430
|
+
return new RegistryBackendError("git-unavailable", 'Git is required to access this registry, but the "git" command was not found.');
|
|
431
|
+
}
|
|
432
|
+
if (lower.includes("authentication failed") ||
|
|
433
|
+
lower.includes("permission denied") ||
|
|
434
|
+
lower.includes("access denied") ||
|
|
435
|
+
lower.includes("could not read from remote repository") ||
|
|
436
|
+
lower.includes("terminal prompts disabled")) {
|
|
437
|
+
return new RegistryBackendError("auth", `Authentication failed or registry is not accessible via Git. Check your local Git credentials for ${registry.gitUrl}.`);
|
|
438
|
+
}
|
|
439
|
+
if (stage !== "clone" &&
|
|
440
|
+
(lower.includes("couldn't find remote ref") ||
|
|
441
|
+
lower.includes("could not find remote ref") ||
|
|
442
|
+
lower.includes("invalid reference") ||
|
|
443
|
+
lower.includes("reference is not a tree") ||
|
|
444
|
+
lower.includes("pathspec"))) {
|
|
445
|
+
return new RegistryBackendError("ref-not-found", `Registry ref "${registry.ref}" was not found in ${registry.gitUrl}.`);
|
|
446
|
+
}
|
|
447
|
+
if (lower.includes("could not resolve host") ||
|
|
448
|
+
lower.includes("failed to connect") ||
|
|
449
|
+
lower.includes("network is unreachable") ||
|
|
450
|
+
lower.includes("operation timed out") ||
|
|
451
|
+
lower.includes("timed out") ||
|
|
452
|
+
lower.includes("connection refused")) {
|
|
453
|
+
return new RegistryBackendError("network", `Could not reach registry ${registry.gitUrl}. Check your network connection and Git remote access.`);
|
|
454
|
+
}
|
|
455
|
+
if (stage === "clone" &&
|
|
456
|
+
(lower.includes("repository not found") ||
|
|
457
|
+
lower.includes("does not appear to be a git repository") ||
|
|
458
|
+
lower.includes("could not read from remote repository"))) {
|
|
459
|
+
return new RegistryBackendError("not-found", `Registry repository was not found or is not accessible: ${registry.gitUrl}.`);
|
|
460
|
+
}
|
|
461
|
+
return new RegistryBackendError("unknown", `Git registry operation failed: ${text}`);
|
|
462
|
+
}
|
|
463
|
+
async function cloneRegistryRef(registry) {
|
|
464
|
+
const dir = await fs.promises.mkdtemp(path.join(os.tmpdir(), "trellis-registry-"));
|
|
465
|
+
try {
|
|
466
|
+
try {
|
|
467
|
+
await runGit([
|
|
468
|
+
"clone",
|
|
469
|
+
"--filter=blob:none",
|
|
470
|
+
"--no-checkout",
|
|
471
|
+
registry.gitUrl,
|
|
472
|
+
dir,
|
|
473
|
+
]);
|
|
258
474
|
}
|
|
259
|
-
|
|
260
|
-
|
|
475
|
+
catch (error) {
|
|
476
|
+
throw classifyGitError(error, "clone", registry);
|
|
261
477
|
}
|
|
262
|
-
|
|
263
|
-
|
|
478
|
+
try {
|
|
479
|
+
await runGit([
|
|
480
|
+
"-C",
|
|
481
|
+
dir,
|
|
482
|
+
"fetch",
|
|
483
|
+
"--depth",
|
|
484
|
+
"1",
|
|
485
|
+
"origin",
|
|
486
|
+
registry.ref,
|
|
487
|
+
]);
|
|
488
|
+
await runGit(["-C", dir, "checkout", "--detach", "FETCH_HEAD"]);
|
|
489
|
+
}
|
|
490
|
+
catch (error) {
|
|
491
|
+
throw classifyGitError(error, "fetch", registry);
|
|
492
|
+
}
|
|
493
|
+
return {
|
|
494
|
+
dir,
|
|
495
|
+
cleanup: async () => {
|
|
496
|
+
await fs.promises.rm(dir, { recursive: true, force: true });
|
|
497
|
+
},
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
await fs.promises.rm(dir, { recursive: true, force: true });
|
|
502
|
+
throw error;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
function resolveInsideRegistryRoot(root, relativePath, label) {
|
|
506
|
+
const resolvedRoot = path.resolve(root);
|
|
507
|
+
const resolved = path.resolve(resolvedRoot, relativePath.length > 0 ? relativePath : ".");
|
|
508
|
+
const relative = path.relative(resolvedRoot, resolved);
|
|
509
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) {
|
|
510
|
+
throw new RegistryBackendError("path-not-found", `${label} path "${relativePath}" must stay inside the registry repository.`);
|
|
511
|
+
}
|
|
512
|
+
return resolved;
|
|
513
|
+
}
|
|
514
|
+
async function isDirectory(dir) {
|
|
515
|
+
try {
|
|
516
|
+
return (await fs.promises.stat(dir)).isDirectory();
|
|
264
517
|
}
|
|
265
518
|
catch {
|
|
266
|
-
|
|
267
|
-
|
|
519
|
+
return false;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
async function isFile(filePath) {
|
|
523
|
+
try {
|
|
524
|
+
return (await fs.promises.stat(filePath)).isFile();
|
|
525
|
+
}
|
|
526
|
+
catch {
|
|
527
|
+
return false;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
async function getGitRegistryRoot(checkoutDir, registry) {
|
|
531
|
+
const registryRoot = resolveInsideRegistryRoot(checkoutDir, registry.subdir, "Registry");
|
|
532
|
+
if (!(await isDirectory(registryRoot))) {
|
|
533
|
+
throw new RegistryBackendError("path-not-found", `Registry path "${registry.subdir.length > 0 ? registry.subdir : "."}" was not found in ${registry.gitUrl}#${registry.ref}.`);
|
|
534
|
+
}
|
|
535
|
+
return registryRoot;
|
|
536
|
+
}
|
|
537
|
+
async function probeRegistryIndexGit(registry) {
|
|
538
|
+
try {
|
|
539
|
+
const checkout = await cloneRegistryRef(registry);
|
|
540
|
+
try {
|
|
541
|
+
const registryRoot = await getGitRegistryRoot(checkout.dir, registry);
|
|
542
|
+
const indexPath = path.join(registryRoot, "index.json");
|
|
543
|
+
if (!(await isFile(indexPath))) {
|
|
544
|
+
return emptyProbeResult("git", true);
|
|
545
|
+
}
|
|
546
|
+
const index = parseTemplateIndex(await fs.promises.readFile(indexPath, "utf-8"), "Registry index.json");
|
|
547
|
+
return { templates: index.templates, isNotFound: false, backend: "git" };
|
|
548
|
+
}
|
|
549
|
+
finally {
|
|
550
|
+
await checkout.cleanup();
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
catch (error) {
|
|
554
|
+
const registryError = error instanceof RegistryBackendError
|
|
555
|
+
? error
|
|
556
|
+
: new RegistryBackendError("unknown", `Git registry probe failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
557
|
+
return emptyProbeResult("git", false, registryError);
|
|
268
558
|
}
|
|
269
559
|
}
|
|
270
560
|
/**
|
|
@@ -387,6 +677,64 @@ async function copyMissing(src, dest) {
|
|
|
387
677
|
}
|
|
388
678
|
}
|
|
389
679
|
}
|
|
680
|
+
/**
|
|
681
|
+
* Copy all files from src to dest, overwriting existing files.
|
|
682
|
+
*/
|
|
683
|
+
async function copyAll(src, dest) {
|
|
684
|
+
await fs.promises.mkdir(dest, { recursive: true });
|
|
685
|
+
const entries = await fs.promises.readdir(src, { withFileTypes: true });
|
|
686
|
+
for (const entry of entries) {
|
|
687
|
+
const srcPath = path.join(src, entry.name);
|
|
688
|
+
const destPath = path.join(dest, entry.name);
|
|
689
|
+
if (entry.isDirectory()) {
|
|
690
|
+
await copyAll(srcPath, destPath);
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
await fs.promises.copyFile(srcPath, destPath);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
async function copyDirectoryWithStrategy(srcDir, destDir, strategy) {
|
|
698
|
+
const exists = fs.existsSync(destDir);
|
|
699
|
+
if (strategy === "skip" && exists) {
|
|
700
|
+
return false;
|
|
701
|
+
}
|
|
702
|
+
if (strategy === "overwrite" && exists) {
|
|
703
|
+
await fs.promises.rm(destDir, { recursive: true, force: true });
|
|
704
|
+
}
|
|
705
|
+
if (strategy === "append" && exists) {
|
|
706
|
+
await copyMissing(srcDir, destDir);
|
|
707
|
+
return true;
|
|
708
|
+
}
|
|
709
|
+
await copyAll(srcDir, destDir);
|
|
710
|
+
return true;
|
|
711
|
+
}
|
|
712
|
+
async function downloadGitRegistryPath(registry, relativePath, destDir, strategy) {
|
|
713
|
+
const checkout = await cloneRegistryRef(registry);
|
|
714
|
+
try {
|
|
715
|
+
const sourceRoot = resolveInsideRegistryRoot(checkout.dir, relativePath, "Template");
|
|
716
|
+
if (!(await isDirectory(sourceRoot))) {
|
|
717
|
+
throw new RegistryBackendError("path-not-found", `Template path "${relativePath.length > 0 ? relativePath : "."}" was not found in ${registry.gitUrl}#${registry.ref}.`);
|
|
718
|
+
}
|
|
719
|
+
return await copyDirectoryWithStrategy(sourceRoot, destDir, strategy);
|
|
720
|
+
}
|
|
721
|
+
finally {
|
|
722
|
+
await checkout.cleanup();
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
async function downloadGitRegistryDirect(registry, destDir, strategy) {
|
|
726
|
+
const checkout = await cloneRegistryRef(registry);
|
|
727
|
+
try {
|
|
728
|
+
const sourceRoot = await getGitRegistryRoot(checkout.dir, registry);
|
|
729
|
+
return await copyDirectoryWithStrategy(sourceRoot, destDir, strategy);
|
|
730
|
+
}
|
|
731
|
+
finally {
|
|
732
|
+
await checkout.cleanup();
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
function resolveRegistryBackend(registry, backendOverride) {
|
|
736
|
+
return backendOverride ?? (registry.preferGit ? "git" : "http");
|
|
737
|
+
}
|
|
390
738
|
/**
|
|
391
739
|
* Download a template by ID
|
|
392
740
|
*
|
|
@@ -398,14 +746,22 @@ async function copyMissing(src, dest) {
|
|
|
398
746
|
* repo as the giget source instead of the default TEMPLATE_REPO.
|
|
399
747
|
* @returns Object with success status and message
|
|
400
748
|
*/
|
|
401
|
-
export async function downloadTemplateById(cwd, templateId, strategy, template, registry, destDirOverride) {
|
|
749
|
+
export async function downloadTemplateById(cwd, templateId, strategy, template, registry, destDirOverride, registryBackend) {
|
|
402
750
|
// Use pre-fetched template or find from index
|
|
403
751
|
let resolved = template;
|
|
752
|
+
let backend = registryBackend;
|
|
404
753
|
if (!resolved) {
|
|
405
754
|
const indexUrl = registry ? `${registry.rawBaseUrl}/index.json` : undefined;
|
|
406
755
|
if (registry && indexUrl) {
|
|
407
756
|
// Use probe to distinguish "template not in index" from "registry unreachable"
|
|
408
|
-
const probeResult = await probeRegistryIndex(indexUrl);
|
|
757
|
+
const probeResult = await probeRegistryIndex(indexUrl, registry);
|
|
758
|
+
backend = probeResult.backend;
|
|
759
|
+
if (probeResult.error) {
|
|
760
|
+
return {
|
|
761
|
+
success: false,
|
|
762
|
+
message: probeResult.error.message,
|
|
763
|
+
};
|
|
764
|
+
}
|
|
409
765
|
if (probeResult.templates.length === 0 && !probeResult.isNotFound) {
|
|
410
766
|
return {
|
|
411
767
|
success: false,
|
|
@@ -450,10 +806,15 @@ export async function downloadTemplateById(cwd, templateId, strategy, template,
|
|
|
450
806
|
// Download template
|
|
451
807
|
try {
|
|
452
808
|
if (registry) {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
809
|
+
if (resolveRegistryBackend(registry, backend) === "git") {
|
|
810
|
+
await downloadGitRegistryPath(registry, resolved.path, destDir, strategy);
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
// Custom registry: build full giget source with ref at the end
|
|
814
|
+
// giget format: provider:user/repo/path#ref
|
|
815
|
+
const fullSource = `${registry.provider}:${registry.repo}/${resolved.path}#${registry.ref}`;
|
|
816
|
+
await withGigetHost(registry.host, () => downloadWithStrategy(fullSource, destDir, strategy, null));
|
|
817
|
+
}
|
|
457
818
|
}
|
|
458
819
|
else {
|
|
459
820
|
await downloadWithStrategy(resolved.path, destDir, strategy);
|
|
@@ -465,6 +826,12 @@ export async function downloadTemplateById(cwd, templateId, strategy, template,
|
|
|
465
826
|
}
|
|
466
827
|
catch (error) {
|
|
467
828
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
829
|
+
if (error instanceof RegistryBackendError) {
|
|
830
|
+
return {
|
|
831
|
+
success: false,
|
|
832
|
+
message: error.message,
|
|
833
|
+
};
|
|
834
|
+
}
|
|
468
835
|
// Classify errors for user-friendly messages
|
|
469
836
|
if (errorMessage.includes("timed out")) {
|
|
470
837
|
return {
|
|
@@ -489,7 +856,7 @@ export async function downloadTemplateById(cwd, templateId, strategy, template,
|
|
|
489
856
|
* Download a registry source directly to the spec directory (no index.json).
|
|
490
857
|
* Used when the registry source points to a spec directory, not a marketplace.
|
|
491
858
|
*/
|
|
492
|
-
export async function downloadRegistryDirect(cwd, registry, strategy, destDirOverride) {
|
|
859
|
+
export async function downloadRegistryDirect(cwd, registry, strategy, destDirOverride, registryBackend) {
|
|
493
860
|
const destDir = destDirOverride ?? getInstallPath(cwd, "spec");
|
|
494
861
|
if (strategy === "skip" && fs.existsSync(destDir)) {
|
|
495
862
|
return {
|
|
@@ -499,7 +866,12 @@ export async function downloadRegistryDirect(cwd, registry, strategy, destDirOve
|
|
|
499
866
|
};
|
|
500
867
|
}
|
|
501
868
|
try {
|
|
502
|
-
|
|
869
|
+
if (resolveRegistryBackend(registry, registryBackend) === "git") {
|
|
870
|
+
await downloadGitRegistryDirect(registry, destDir, strategy);
|
|
871
|
+
}
|
|
872
|
+
else {
|
|
873
|
+
await withGigetHost(registry.host, () => downloadWithStrategy(registry.gigetSource, destDir, strategy, null));
|
|
874
|
+
}
|
|
503
875
|
return {
|
|
504
876
|
success: true,
|
|
505
877
|
message: `Downloaded spec from ${registry.gigetSource} to ${destDir}`,
|
|
@@ -507,6 +879,12 @@ export async function downloadRegistryDirect(cwd, registry, strategy, destDirOve
|
|
|
507
879
|
}
|
|
508
880
|
catch (error) {
|
|
509
881
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
882
|
+
if (error instanceof RegistryBackendError) {
|
|
883
|
+
return {
|
|
884
|
+
success: false,
|
|
885
|
+
message: error.message,
|
|
886
|
+
};
|
|
887
|
+
}
|
|
510
888
|
if (errorMessage.includes("timed out")) {
|
|
511
889
|
return {
|
|
512
890
|
success: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-fetcher.js","sourceRoot":"","sources":["../../src/utils/template-fetcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template-fetcher.js","sourceRoot":"","sources":["../../src/utils/template-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-hash.d.ts","sourceRoot":"","sources":["../../src/utils/template-hash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AASD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAYtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAQ1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAU1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,CAON;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAmBT;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,OAAO,CAST;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAQtB;
|
|
1
|
+
{"version":3,"file":"template-hash.d.ts","sourceRoot":"","sources":["../../src/utils/template-hash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AASD;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAYtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAQ1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAU1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,CAON;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,cAAc,GACrB,OAAO,CAmBT;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,OAAO,CAST;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAQtB;AAoED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoBpD"}
|
|
@@ -162,15 +162,16 @@ const EXCLUDE_FROM_HASH = [
|
|
|
162
162
|
"workspace/", // Workspace files (user data)
|
|
163
163
|
"tasks/", // Task files (user data)
|
|
164
164
|
".current-task", // Current task marker (file, not directory)
|
|
165
|
-
"spec/", // User-customized spec files
|
|
165
|
+
".trellis/spec/", // User-customized spec files
|
|
166
166
|
".backup-", // Backup directories
|
|
167
167
|
];
|
|
168
168
|
/**
|
|
169
169
|
* Check if a path should be excluded from hash tracking
|
|
170
170
|
*/
|
|
171
171
|
function shouldExcludeFromHash(relativePath) {
|
|
172
|
+
const normalizedPath = relativePath.replace(/\\/g, "/");
|
|
172
173
|
for (const pattern of EXCLUDE_FROM_HASH) {
|
|
173
|
-
if (
|
|
174
|
+
if (normalizedPath.includes(pattern)) {
|
|
174
175
|
return true;
|
|
175
176
|
}
|
|
176
177
|
}
|