@mindfoldhq/trellis 0.3.5 → 0.3.7

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 (65) hide show
  1. package/README.md +17 -4
  2. package/dist/cli/index.js +1 -0
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/init.d.ts +1 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +243 -49
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/update.d.ts +12 -0
  9. package/dist/commands/update.d.ts.map +1 -1
  10. package/dist/commands/update.js +92 -2
  11. package/dist/commands/update.js.map +1 -1
  12. package/dist/migrations/index.d.ts.map +1 -1
  13. package/dist/migrations/index.js +3 -1
  14. package/dist/migrations/index.js.map +1 -1
  15. package/dist/migrations/manifests/0.3.6.json +9 -0
  16. package/dist/migrations/manifests/0.3.7.json +9 -0
  17. package/dist/templates/claude/commands/trellis/brainstorm.md +13 -0
  18. package/dist/templates/claude/commands/trellis/record-session.md +4 -1
  19. package/dist/templates/claude/commands/trellis/start.md +20 -4
  20. package/dist/templates/claude/hooks/inject-subagent-context.py +1 -1
  21. package/dist/templates/claude/hooks/session-start.py +86 -23
  22. package/dist/templates/claude/settings.json +10 -0
  23. package/dist/templates/codex/skills/brainstorm/SKILL.md +13 -0
  24. package/dist/templates/codex/skills/record-session/SKILL.md +4 -1
  25. package/dist/templates/codex/skills/start/SKILL.md +20 -4
  26. package/dist/templates/cursor/commands/trellis-brainstorm.md +13 -0
  27. package/dist/templates/cursor/commands/trellis-record-session.md +4 -1
  28. package/dist/templates/cursor/commands/trellis-start.md +20 -4
  29. package/dist/templates/gemini/commands/trellis/brainstorm.toml +15 -0
  30. package/dist/templates/gemini/commands/trellis/record-session.toml +4 -1
  31. package/dist/templates/gemini/commands/trellis/start.toml +60 -3
  32. package/dist/templates/iflow/commands/trellis/brainstorm.md +13 -0
  33. package/dist/templates/iflow/commands/trellis/record-session.md +4 -1
  34. package/dist/templates/iflow/commands/trellis/start.md +20 -4
  35. package/dist/templates/iflow/hooks/inject-subagent-context.py +1 -1
  36. package/dist/templates/iflow/hooks/session-start.py +86 -23
  37. package/dist/templates/kilo/workflows/brainstorm.md +13 -0
  38. package/dist/templates/kilo/workflows/record-session.md +4 -1
  39. package/dist/templates/kilo/workflows/start.md +64 -3
  40. package/dist/templates/kiro/skills/brainstorm/SKILL.md +13 -0
  41. package/dist/templates/kiro/skills/record-session/SKILL.md +4 -1
  42. package/dist/templates/kiro/skills/start/SKILL.md +20 -4
  43. package/dist/templates/markdown/spec/backend/directory-structure.md +292 -0
  44. package/dist/templates/markdown/spec/backend/script-conventions.md +220 -38
  45. package/dist/templates/opencode/commands/trellis/brainstorm.md +13 -0
  46. package/dist/templates/opencode/commands/trellis/record-session.md +4 -1
  47. package/dist/templates/opencode/commands/trellis/start.md +9 -1
  48. package/dist/templates/opencode/plugin/session-start.js +149 -16
  49. package/dist/templates/qoder/skills/brainstorm/SKILL.md +13 -0
  50. package/dist/templates/qoder/skills/record-session/SKILL.md +4 -1
  51. package/dist/templates/qoder/skills/start/SKILL.md +60 -3
  52. package/dist/templates/trellis/config.yaml +18 -0
  53. package/dist/templates/trellis/index.d.ts.map +1 -1
  54. package/dist/templates/trellis/index.js.map +1 -1
  55. package/dist/templates/trellis/scripts/common/config.py +20 -0
  56. package/dist/templates/trellis/scripts/common/git_context.py +160 -12
  57. package/dist/templates/trellis/scripts/common/task_queue.py +4 -0
  58. package/dist/templates/trellis/scripts/common/worktree.py +78 -11
  59. package/dist/templates/trellis/scripts/create_bootstrap.py +3 -0
  60. package/dist/templates/trellis/scripts/task.py +312 -17
  61. package/dist/utils/template-fetcher.d.ts +60 -7
  62. package/dist/utils/template-fetcher.d.ts.map +1 -1
  63. package/dist/utils/template-fetcher.js +183 -14
  64. package/dist/utils/template-fetcher.js.map +1 -1
  65. package/package.json +7 -9
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Remote template fetcher for Trellis CLI
3
3
  *
4
- * Fetches spec templates from the official docs repository:
5
- * https://github.com/mindfold-ai/docs/tree/main/marketplace
4
+ * Fetches spec templates from the official marketplace:
5
+ * https://github.com/mindfold-ai/Trellis/tree/main/marketplace
6
6
  */
7
7
  import fs from "node:fs";
8
8
  import os from "node:os";
@@ -11,8 +11,8 @@ import { downloadTemplate } from "giget";
11
11
  // =============================================================================
12
12
  // Constants
13
13
  // =============================================================================
14
- export const TEMPLATE_INDEX_URL = "https://raw.githubusercontent.com/mindfold-ai/docs/main/marketplace/index.json";
15
- const TEMPLATE_REPO = "gh:mindfold-ai/docs";
14
+ export const TEMPLATE_INDEX_URL = "https://raw.githubusercontent.com/mindfold-ai/Trellis/main/marketplace/index.json";
15
+ const TEMPLATE_REPO = "gh:mindfold-ai/Trellis";
16
16
  /** Map template type to installation path */
17
17
  const INSTALL_PATHS = {
18
18
  spec: ".trellis/spec",
@@ -28,6 +28,63 @@ export const TIMEOUTS = {
28
28
  DOWNLOAD_MS: 30_000,
29
29
  };
30
30
  // =============================================================================
31
+ // Registry Source Parsing
32
+ // =============================================================================
33
+ /** Maps provider prefixes to raw file URL patterns */
34
+ const RAW_URL_PATTERNS = {
35
+ gh: "https://raw.githubusercontent.com/{repo}/{ref}/{subdir}",
36
+ github: "https://raw.githubusercontent.com/{repo}/{ref}/{subdir}",
37
+ gitlab: "https://gitlab.com/{repo}/-/raw/{ref}/{subdir}",
38
+ bitbucket: "https://bitbucket.org/{repo}/raw/{ref}/{subdir}",
39
+ };
40
+ export const SUPPORTED_PROVIDERS = Object.keys(RAW_URL_PATTERNS);
41
+ /**
42
+ * Parse a giget-style registry source into its components.
43
+ *
44
+ * Supports: gh:user/repo/subdir#ref, gitlab:user/repo/subdir, bitbucket:user/repo/subdir
45
+ * Ref defaults to "main" if not specified.
46
+ *
47
+ * @throws Error if provider is unsupported
48
+ */
49
+ export function parseRegistrySource(source) {
50
+ // Extract provider prefix
51
+ const colonIndex = source.indexOf(":");
52
+ if (colonIndex === -1) {
53
+ throw new Error(`Invalid registry source "${source}". Expected format: gh:user/repo/path`);
54
+ }
55
+ const provider = source.slice(0, colonIndex);
56
+ const rest = source.slice(colonIndex + 1);
57
+ // Check supported provider
58
+ const pattern = RAW_URL_PATTERNS[provider];
59
+ if (!pattern) {
60
+ const supported = [...new Set(Object.keys(RAW_URL_PATTERNS))].join(", ");
61
+ throw new Error(`Unsupported provider "${provider}". Supported: ${supported}`);
62
+ }
63
+ // Parse rest: user/repo/subdir#ref
64
+ // Match: user/repo (required), /subdir (optional), #ref (optional)
65
+ const refMatch = rest.match(/^([^#]+?)(?:#(.+))?$/);
66
+ if (!refMatch) {
67
+ throw new Error(`Invalid registry source "${source}". Expected format: ${provider}:user/repo/path`);
68
+ }
69
+ const pathPart = refMatch[1];
70
+ const ref = refMatch[2] || "main";
71
+ // Split into repo (first two segments) and subdir (rest)
72
+ const segments = pathPart.split("/").filter(Boolean);
73
+ if (segments.length < 2) {
74
+ throw new Error(`Invalid registry source "${source}". Must include user/repo at minimum.`);
75
+ }
76
+ const repo = `${segments[0]}/${segments[1]}`;
77
+ const subdir = segments.slice(2).join("/");
78
+ // Build raw base URL
79
+ const rawBaseUrl = pattern
80
+ .replace("{repo}", repo)
81
+ .replace("{ref}", ref)
82
+ .replace("{subdir}", subdir);
83
+ // Build giget source (preserve original format)
84
+ const gigetSource = source;
85
+ return { provider, repo, subdir, ref, rawBaseUrl, gigetSource };
86
+ }
87
+ // =============================================================================
31
88
  // Helpers
32
89
  // =============================================================================
33
90
  /**
@@ -50,10 +107,13 @@ function withTimeout(promise, ms, label) {
50
107
  /**
51
108
  * Fetch available templates from the remote index
52
109
  * Returns empty array on network error or timeout (allows fallback to blank)
110
+ *
111
+ * @param indexUrl - URL to fetch index.json from (defaults to official marketplace)
53
112
  */
54
- export async function fetchTemplateIndex() {
113
+ export async function fetchTemplateIndex(indexUrl) {
55
114
  try {
56
- const res = await fetch(TEMPLATE_INDEX_URL, {
115
+ const url = indexUrl ?? TEMPLATE_INDEX_URL;
116
+ const res = await fetch(url, {
57
117
  signal: AbortSignal.timeout(TIMEOUTS.INDEX_FETCH_MS),
58
118
  });
59
119
  if (!res.ok) {
@@ -67,11 +127,38 @@ export async function fetchTemplateIndex() {
67
127
  return [];
68
128
  }
69
129
  }
130
+ /**
131
+ * Probe a registry's index.json, distinguishing "not found" from transient errors.
132
+ * Used by the registry flow to decide marketplace vs direct-download mode.
133
+ *
134
+ * - 404 → { templates: [], isNotFound: true }
135
+ * - Other HTTP error / network timeout → { templates: [], isNotFound: false }
136
+ * - 200 + valid JSON → { templates: [...], isNotFound: false }
137
+ */
138
+ export async function probeRegistryIndex(indexUrl) {
139
+ try {
140
+ const res = await fetch(indexUrl, {
141
+ signal: AbortSignal.timeout(TIMEOUTS.INDEX_FETCH_MS),
142
+ });
143
+ if (res.status === 404) {
144
+ return { templates: [], isNotFound: true };
145
+ }
146
+ if (!res.ok) {
147
+ return { templates: [], isNotFound: false };
148
+ }
149
+ const index = (await res.json());
150
+ return { templates: index.templates, isNotFound: false };
151
+ }
152
+ catch {
153
+ // Network error or timeout
154
+ return { templates: [], isNotFound: false };
155
+ }
156
+ }
70
157
  /**
71
158
  * Find a template by ID from the index
72
159
  */
73
- export async function findTemplate(templateId) {
74
- const templates = await fetchTemplateIndex();
160
+ export async function findTemplate(templateId, indexUrl) {
161
+ const templates = await fetchTemplateIndex(indexUrl);
75
162
  return templates.find((t) => t.id === templateId) ?? null;
76
163
  }
77
164
  // =============================================================================
@@ -88,11 +175,19 @@ export function getInstallPath(cwd, templateType) {
88
175
  * Download a template with the specified strategy
89
176
  *
90
177
  * @param templatePath - Path in the docs repo (e.g., "marketplace/specs/electron-fullstack")
178
+ * OR a full giget source (e.g., "gh:myorg/myrepo/my-spec")
91
179
  * @param destDir - Destination directory
92
180
  * @param strategy - How to handle existing directory: skip, overwrite, or append
181
+ * @param repoSource - Optional giget repo source override. When set, templatePath is
182
+ * treated as relative to this repo. When not set, uses TEMPLATE_REPO.
183
+ * Pass null to use templatePath as a full giget source directly.
93
184
  * @returns true if template was downloaded, false if skipped
94
185
  */
95
- export async function downloadWithStrategy(templatePath, destDir, strategy) {
186
+ export async function downloadWithStrategy(templatePath, destDir, strategy, repoSource) {
187
+ // Build the giget download source
188
+ const gigetSource = repoSource === null
189
+ ? templatePath // templatePath is already a full giget source
190
+ : `${repoSource ?? TEMPLATE_REPO}/${templatePath}`;
96
191
  const exists = fs.existsSync(destDir);
97
192
  // skip: Directory exists, don't download
98
193
  if (strategy === "skip" && exists) {
@@ -106,7 +201,7 @@ export async function downloadWithStrategy(templatePath, destDir, strategy) {
106
201
  if (strategy === "append" && exists) {
107
202
  const tempDir = path.join(os.tmpdir(), `trellis-template-${Date.now()}`);
108
203
  try {
109
- await withTimeout(downloadTemplate(`${TEMPLATE_REPO}/${templatePath}`, {
204
+ await withTimeout(downloadTemplate(gigetSource, {
110
205
  dir: tempDir,
111
206
  preferOffline: true,
112
207
  }), TIMEOUTS.DOWNLOAD_MS, "Template download");
@@ -135,7 +230,7 @@ export async function downloadWithStrategy(templatePath, destDir, strategy) {
135
230
  }
136
231
  // Default: Direct download (for new directory or after overwrite)
137
232
  try {
138
- await withTimeout(downloadTemplate(`${TEMPLATE_REPO}/${templatePath}`, {
233
+ await withTimeout(downloadTemplate(gigetSource, {
139
234
  dir: destDir,
140
235
  preferOffline: true,
141
236
  }), TIMEOUTS.DOWNLOAD_MS, "Template download");
@@ -186,11 +281,36 @@ async function copyMissing(src, dest) {
186
281
  * @param templateId - Template ID from the index
187
282
  * @param strategy - How to handle existing directory
188
283
  * @param template - Optional pre-fetched SpecTemplate to avoid double-fetch
284
+ * @param registry - Optional registry source (parsed). When set, uses the registry's
285
+ * repo as the giget source instead of the default TEMPLATE_REPO.
189
286
  * @returns Object with success status and message
190
287
  */
191
- export async function downloadTemplateById(cwd, templateId, strategy, template) {
288
+ export async function downloadTemplateById(cwd, templateId, strategy, template, registry) {
192
289
  // Use pre-fetched template or find from index
193
- const resolved = template ?? (await findTemplate(templateId));
290
+ let resolved = template;
291
+ if (!resolved) {
292
+ const indexUrl = registry ? `${registry.rawBaseUrl}/index.json` : undefined;
293
+ if (registry && indexUrl) {
294
+ // Use probe to distinguish "template not in index" from "registry unreachable"
295
+ const probeResult = await probeRegistryIndex(indexUrl);
296
+ if (probeResult.templates.length === 0 && !probeResult.isNotFound) {
297
+ return {
298
+ success: false,
299
+ message: "Could not reach registry. Check your network connection and try again.",
300
+ };
301
+ }
302
+ if (probeResult.isNotFound) {
303
+ return {
304
+ success: false,
305
+ message: "Registry has no index.json. Remove --template to use direct download mode.",
306
+ };
307
+ }
308
+ resolved = probeResult.templates.find((t) => t.id === templateId);
309
+ }
310
+ else {
311
+ resolved = (await findTemplate(templateId, indexUrl)) ?? undefined;
312
+ }
313
+ }
194
314
  if (!resolved) {
195
315
  return {
196
316
  success: false,
@@ -216,7 +336,15 @@ export async function downloadTemplateById(cwd, templateId, strategy, template)
216
336
  }
217
337
  // Download template
218
338
  try {
219
- await downloadWithStrategy(resolved.path, destDir, strategy);
339
+ if (registry) {
340
+ // Custom registry: build full giget source with ref at the end
341
+ // giget format: provider:user/repo/path#ref
342
+ const fullSource = `${registry.provider}:${registry.repo}/${resolved.path}#${registry.ref}`;
343
+ await downloadWithStrategy(fullSource, destDir, strategy, null);
344
+ }
345
+ else {
346
+ await downloadWithStrategy(resolved.path, destDir, strategy);
347
+ }
220
348
  return {
221
349
  success: true,
222
350
  message: `Downloaded template "${templateId}" to ${destDir}`,
@@ -244,4 +372,45 @@ export async function downloadTemplateById(cwd, templateId, strategy, template)
244
372
  };
245
373
  }
246
374
  }
375
+ /**
376
+ * Download a registry source directly to the spec directory (no index.json).
377
+ * Used when the registry source points to a spec directory, not a marketplace.
378
+ */
379
+ export async function downloadRegistryDirect(cwd, registry, strategy) {
380
+ const destDir = getInstallPath(cwd, "spec");
381
+ if (strategy === "skip" && fs.existsSync(destDir)) {
382
+ return {
383
+ success: true,
384
+ skipped: true,
385
+ message: `Skipped: ${destDir} already exists`,
386
+ };
387
+ }
388
+ try {
389
+ await downloadWithStrategy(registry.gigetSource, destDir, strategy, null);
390
+ return {
391
+ success: true,
392
+ message: `Downloaded spec from ${registry.gigetSource} to ${destDir}`,
393
+ };
394
+ }
395
+ catch (error) {
396
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
397
+ if (errorMessage.includes("timed out")) {
398
+ return {
399
+ success: false,
400
+ message: "Download timed out. Check your network connection and try again.",
401
+ };
402
+ }
403
+ if (errorMessage.includes("Failed to download") ||
404
+ errorMessage.includes("Failed to fetch")) {
405
+ return {
406
+ success: false,
407
+ message: "Could not reach template server. Check your network connection.",
408
+ };
409
+ }
410
+ return {
411
+ success: false,
412
+ message: `Download failed: ${errorMessage}`,
413
+ };
414
+ }
415
+ }
247
416
  //# sourceMappingURL=template-fetcher.js.map
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindfoldhq/trellis",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "AI capabilities grow like ivy — Trellis provides the structure to guide them along a disciplined path",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,8 +42,6 @@
42
42
  "@vitest/coverage-v8": "^4.0.18",
43
43
  "basedpyright": "^1.37.2",
44
44
  "eslint": "^9.18.0",
45
- "husky": "^9.1.7",
46
- "lint-staged": "^16.2.7",
47
45
  "prettier": "^3.4.2",
48
46
  "typescript": "^5.7.2",
49
47
  "typescript-eslint": "^8.21.0",
@@ -77,12 +75,12 @@
77
75
  "typecheck": "tsc --noEmit",
78
76
  "lint:py": "basedpyright",
79
77
  "lint:all": "pnpm lint && pnpm lint:py",
80
- "release": "git add -A && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version patch && git push origin main --tags",
81
- "release:minor": "git add -A && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version minor && git push origin main --tags",
82
- "release:major": "git add -A && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version major && git push origin main --tags",
83
- "release:beta": "git add -A && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version prerelease --preid beta && git push origin HEAD --tags",
84
- "release:rc": "git add -A && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version prerelease --preid rc && git push origin HEAD --tags",
85
- "release:promote": "git add -A && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version \"$(node -p \"require('./package.json').version.replace(/-.*/, '')\")\" && git push origin main --tags",
78
+ "release": "pnpm test && git add -A -- ':!docs-site' && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version patch && git push origin main --tags",
79
+ "release:minor": "pnpm test && git add -A -- ':!docs-site' && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version minor && git push origin main --tags",
80
+ "release:major": "pnpm test && git add -A -- ':!docs-site' && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version major && git push origin main --tags",
81
+ "release:beta": "pnpm test && git add -A -- ':!docs-site' && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version prerelease --preid beta && git push origin HEAD --tags",
82
+ "release:rc": "pnpm test && git add -A -- ':!docs-site' && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version prerelease --preid rc && git push origin HEAD --tags",
83
+ "release:promote": "pnpm test && git add -A -- ':!docs-site' && git diff-index --quiet HEAD || git commit -m 'chore: pre-release updates' && pnpm version \"$(node -p \"require('./package.json').version.replace(/-.*/, '')\")\" && git push origin main --tags",
86
84
  "manifest": "node scripts/create-manifest.js"
87
85
  }
88
86
  }