@mesh-tech/mesh-cli 0.12.7 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -0
- package/assets/app-skill/SKILL.md +59 -0
- package/dist/bin/mesh.js +579 -140
- package/dist/bin/mesh.js.map +4 -4
- package/dist/build-info.json +2 -2
- package/dist/src/commands/create-app.d.ts +37 -0
- package/dist/src/commands/create-app.d.ts.map +1 -1
- package/dist/src/commands/create-app.js +141 -26
- package/dist/src/commands/create-app.js.map +1 -1
- package/dist/src/commands/secrets/index.d.ts +1 -0
- package/dist/src/commands/secrets/index.d.ts.map +1 -1
- package/dist/src/commands/secrets/index.js +12 -0
- package/dist/src/commands/secrets/index.js.map +1 -1
- package/dist/src/commands/secrets/reindex.d.ts +48 -0
- package/dist/src/commands/secrets/reindex.d.ts.map +1 -0
- package/dist/src/commands/secrets/reindex.js +157 -0
- package/dist/src/commands/secrets/reindex.js.map +1 -0
- package/dist/src/commands/secrets/set.d.ts +63 -0
- package/dist/src/commands/secrets/set.d.ts.map +1 -1
- package/dist/src/commands/secrets/set.js +78 -3
- package/dist/src/commands/secrets/set.js.map +1 -1
- package/dist/src/commands/skills.d.ts +48 -8
- package/dist/src/commands/skills.d.ts.map +1 -1
- package/dist/src/commands/skills.js +204 -12
- package/dist/src/commands/skills.js.map +1 -1
- package/dist/src/utils/scaffold-versions.d.ts +57 -0
- package/dist/src/utils/scaffold-versions.d.ts.map +1 -0
- package/dist/src/utils/scaffold-versions.js +75 -0
- package/dist/src/utils/scaffold-versions.js.map +1 -0
- package/fragments/agents/AGENTS.md.hbs +4 -3
- package/fragments/base/package.json.hbs +4 -5
- package/fragments/service/api/package.json.hbs +5 -5
- package/fragments/temporal/worker/package.json.hbs +5 -5
- package/package.json +3 -2
- package/skills/core/SKILL.md +15 -3
- package/templates/apps-repo/package.json.hbs +2 -1
- package/templates/apps-repo/pnpm-workspace.yaml +9 -1
|
@@ -1,27 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* mesh skills sync — agent-skill distribution (design §7.2, AC D1/D2).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Three layers, one command:
|
|
5
5
|
*
|
|
6
|
-
* 1. BASE skills (how to
|
|
6
|
+
* 1. BASE skills (how to drive the CLI — the CLI's own skills/) are
|
|
7
7
|
* installed into the repo's `.claude/skills/mesh-<name>/SKILL.md`.
|
|
8
8
|
* CLI-managed: files carry a managed marker and are only overwritten
|
|
9
9
|
* when they carry it (hand-edited copies are left alone with a warning).
|
|
10
10
|
*
|
|
11
|
-
* 2.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* 2. PLATFORM skills — the build-an-app recipes that ship inside the
|
|
12
|
+
* `@mesh-tech/*` packages the repo already depends on
|
|
13
|
+
* (`node_modules/@mesh-tech/<pkg>/skills/<domain>/`). These are FETCHED
|
|
14
|
+
* from the installed package rather than vendored into the CLI, so the
|
|
15
|
+
* recipe stays owned by the platform package it documents and moves with
|
|
16
|
+
* it. `@mesh-tech/app-kit#apps` — the scaffold → wire → run → debug
|
|
17
|
+
* recipe — is the one every app repo needs.
|
|
18
|
+
* Requires `pnpm install` to have run; before that the layer is a no-op
|
|
19
|
+
* with a note.
|
|
20
|
+
*
|
|
21
|
+
* 3. INTENT discovery for those same package skills, for agents that read
|
|
22
|
+
* the catalog rather than `.claude/skills/`: the hook mechanism
|
|
23
|
+
* vendored into the CLI (deterministic, offline — no interactive
|
|
24
|
+
* installer):
|
|
15
25
|
* - .intent/hooks/intent-claude-gate.mjs (SessionStart catalog +
|
|
16
26
|
* edit gate; invokes the REPO-PINNED `pnpm exec intent`)
|
|
27
|
+
* - `@tanstack/intent` in the repo's devDependencies — the fence tells
|
|
28
|
+
* agents to run `pnpm exec intent list`, so the binary has to be
|
|
29
|
+
* pinned in the repo it runs in, tenant app repos included
|
|
17
30
|
* - .claude/settings.json SessionStart hook (JSON-merged, idempotent)
|
|
18
31
|
* - AGENTS.md fence (<!-- intent-skills:start/end -->) for
|
|
19
32
|
* non-Claude agents
|
|
20
33
|
*
|
|
21
34
|
* `mesh skills sync --check` is the CI/doctor form: exits 1 listing what is
|
|
22
35
|
* missing or stale, changes nothing. `mesh create-app` runs a best-effort
|
|
23
|
-
* sync after scaffolding so a fresh Claude session in a fresh repo sees
|
|
24
|
-
* skill
|
|
36
|
+
* sync after scaffolding so a fresh Claude session in a fresh repo sees every
|
|
37
|
+
* skill layer with zero manual setup (D1).
|
|
25
38
|
*/
|
|
26
39
|
import * as fs from "fs";
|
|
27
40
|
import * as path from "path";
|
|
@@ -32,6 +45,14 @@ import { findPackageRoot } from "./local/stack.js";
|
|
|
32
45
|
const MANAGED_MARKER = "<!-- managed-by: mesh skills sync — edits are overwritten; copy content elsewhere to customize -->";
|
|
33
46
|
const FENCE_START = "<!-- intent-skills:start -->";
|
|
34
47
|
const HOOK_RELATIVE = path.join(".intent", "hooks", "intent-claude-gate.mjs");
|
|
48
|
+
/**
|
|
49
|
+
* The `@tanstack/intent` range pinned into a target repo, and the single
|
|
50
|
+
* source for every place that range appears: the standalone apps-repo
|
|
51
|
+
* template renders from it, and `test/skills-sync.test.ts` holds it equal to
|
|
52
|
+
* the CLI's own devDependency, so the binary agents invoke matches the
|
|
53
|
+
* catalog format the vendored gate hook expects.
|
|
54
|
+
*/
|
|
55
|
+
export const INTENT_RANGE = "^0.3.6";
|
|
35
56
|
/** The repo root skills sync targets: the enclosing git root, else cwd. */
|
|
36
57
|
export function resolveTargetRoot(startDir = process.cwd()) {
|
|
37
58
|
try {
|
|
@@ -66,6 +87,99 @@ function renderManagedSkill(source) {
|
|
|
66
87
|
return `${MANAGED_MARKER}\n\n${raw}`;
|
|
67
88
|
return `${frontmatter}\n${MANAGED_MARKER}\n${raw.slice(frontmatter.length)}`;
|
|
68
89
|
}
|
|
90
|
+
/** The CLI's own skills are layer 1; fetching them again as a package skill would double-install them. */
|
|
91
|
+
const BASE_SKILL_PACKAGE = "mesh-cli";
|
|
92
|
+
/**
|
|
93
|
+
* Every `node_modules/@mesh-tech` directory in the repo. In a pnpm workspace a
|
|
94
|
+
* dependency is linked into the node_modules of the package that DECLARES it,
|
|
95
|
+
* so `@mesh-tech/app-kit` — declared by `apps/<name>/` — is not under the repo
|
|
96
|
+
* root's node_modules at all.
|
|
97
|
+
*/
|
|
98
|
+
function meshTechScopeDirs(root, maxDepth = 6) {
|
|
99
|
+
const scopes = [];
|
|
100
|
+
const walk = (dir, depth) => {
|
|
101
|
+
if (depth > maxDepth)
|
|
102
|
+
return;
|
|
103
|
+
let entries;
|
|
104
|
+
try {
|
|
105
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
for (const entry of entries) {
|
|
111
|
+
if (!entry.isDirectory())
|
|
112
|
+
continue;
|
|
113
|
+
if (entry.name === "node_modules") {
|
|
114
|
+
// Don't descend: the scope dir here already links everything this level
|
|
115
|
+
// can see, and `.pnpm/` would yield the same content many times over.
|
|
116
|
+
const scope = path.join(dir, entry.name, "@mesh-tech");
|
|
117
|
+
if (fs.existsSync(scope))
|
|
118
|
+
scopes.push(scope);
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (entry.name.startsWith("."))
|
|
122
|
+
continue;
|
|
123
|
+
walk(path.join(dir, entry.name), depth + 1);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
walk(root, 0);
|
|
127
|
+
return scopes;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Platform skills reachable from the target repo: every
|
|
131
|
+
* `node_modules/@mesh-tech/<pkg>/skills/<domain>/SKILL.md`. Installed under
|
|
132
|
+
* `mesh-<pkg>-<domain>` so a package's `core` skill can never collide with the
|
|
133
|
+
* CLI's own `mesh-core`. One entry per `<pkg>/<domain>` — the same package
|
|
134
|
+
* linked from several workspace packages is still one skill.
|
|
135
|
+
*/
|
|
136
|
+
export function listPackageSkills(root) {
|
|
137
|
+
const byName = new Map();
|
|
138
|
+
for (const scopeDir of meshTechScopeDirs(root)) {
|
|
139
|
+
for (const pkg of fs.readdirSync(scopeDir, { withFileTypes: true })) {
|
|
140
|
+
if (!pkg.isDirectory() && !pkg.isSymbolicLink())
|
|
141
|
+
continue;
|
|
142
|
+
if (pkg.name === BASE_SKILL_PACKAGE)
|
|
143
|
+
continue;
|
|
144
|
+
const skillsDir = path.join(scopeDir, pkg.name, "skills");
|
|
145
|
+
if (!fs.existsSync(skillsDir))
|
|
146
|
+
continue;
|
|
147
|
+
for (const domain of fs.readdirSync(skillsDir, { withFileTypes: true })) {
|
|
148
|
+
const source = path.join(skillsDir, domain.name, "SKILL.md");
|
|
149
|
+
if (!fs.existsSync(source))
|
|
150
|
+
continue;
|
|
151
|
+
const name = `mesh-${pkg.name}-${domain.name}`;
|
|
152
|
+
if (!byName.has(name))
|
|
153
|
+
byName.set(name, { name, dir: path.join(skillsDir, domain.name), source });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return [...byName.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
158
|
+
}
|
|
159
|
+
/** Copy a skill's supporting files (references/, examples/, …) alongside SKILL.md. */
|
|
160
|
+
function copySkillExtras(sourceDir, targetDir) {
|
|
161
|
+
for (const entry of fs.readdirSync(sourceDir, { withFileTypes: true })) {
|
|
162
|
+
if (entry.name === "SKILL.md")
|
|
163
|
+
continue;
|
|
164
|
+
fs.cpSync(path.join(sourceDir, entry.name), path.join(targetDir, entry.name), { recursive: true });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Seed the app's OWN skill — the stub a developer grows into the guidance only
|
|
169
|
+
* their app can carry. Written once and never touched again: it carries no
|
|
170
|
+
* managed marker, so `sync` leaves it alone forever.
|
|
171
|
+
* Returns the repo-relative path when it wrote one, else null.
|
|
172
|
+
*/
|
|
173
|
+
export function seedAppSkill(root, appName, appRelPath) {
|
|
174
|
+
const target = path.join(root, ".claude", "skills", appName, "SKILL.md");
|
|
175
|
+
if (fs.existsSync(target))
|
|
176
|
+
return null;
|
|
177
|
+
const template = fs.readFileSync(cliAsset("assets", "app-skill", "SKILL.md"), "utf-8");
|
|
178
|
+
const body = template.replaceAll("__APP_NAME__", appName).replaceAll("__APP_PATH__", appRelPath || ".");
|
|
179
|
+
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
180
|
+
fs.writeFileSync(target, body);
|
|
181
|
+
return path.relative(root, target);
|
|
182
|
+
}
|
|
69
183
|
function planSync(root) {
|
|
70
184
|
const items = [];
|
|
71
185
|
// 1. Base skills → .claude/skills/mesh-<name>/SKILL.md
|
|
@@ -96,7 +210,48 @@ function planSync(root) {
|
|
|
96
210
|
}
|
|
97
211
|
}
|
|
98
212
|
}
|
|
99
|
-
// 2.
|
|
213
|
+
// 2. Platform skills fetched from installed @mesh-tech/* packages
|
|
214
|
+
const packageSkills = listPackageSkills(root);
|
|
215
|
+
for (const skill of packageSkills) {
|
|
216
|
+
const targetDir = path.join(root, ".claude", "skills", skill.name);
|
|
217
|
+
const target = path.join(targetDir, "SKILL.md");
|
|
218
|
+
const desired = renderManagedSkill(skill.source);
|
|
219
|
+
const label = `.claude/skills/${skill.name}/SKILL.md (platform skill)`;
|
|
220
|
+
if (!fs.existsSync(target)) {
|
|
221
|
+
items.push({
|
|
222
|
+
label,
|
|
223
|
+
state: "write",
|
|
224
|
+
apply: () => {
|
|
225
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
226
|
+
fs.writeFileSync(target, desired);
|
|
227
|
+
copySkillExtras(skill.dir, targetDir);
|
|
228
|
+
},
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
const current = fs.readFileSync(target, "utf-8");
|
|
233
|
+
if (current === desired) {
|
|
234
|
+
items.push({ label, state: "ok" });
|
|
235
|
+
}
|
|
236
|
+
else if (current.includes(MANAGED_MARKER)) {
|
|
237
|
+
items.push({
|
|
238
|
+
label,
|
|
239
|
+
state: "write",
|
|
240
|
+
apply: () => {
|
|
241
|
+
fs.writeFileSync(target, desired);
|
|
242
|
+
copySkillExtras(skill.dir, targetDir);
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
items.push({ label: `${label} — exists without the managed marker, leaving as-is`, state: "skip" });
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (packageSkills.length === 0 && meshTechScopeDirs(root).length === 0) {
|
|
252
|
+
logInfo("No @mesh-tech packages installed yet — run `pnpm install`, then `mesh skills sync` again for the platform skills.");
|
|
253
|
+
}
|
|
254
|
+
// 3. Intent gate hook (CLI-managed generated file — kept current)
|
|
100
255
|
const hookSource = cliAsset("assets", "intent", "intent-claude-gate.mjs");
|
|
101
256
|
const hookTarget = path.join(root, HOOK_RELATIVE);
|
|
102
257
|
const hookDesired = fs.readFileSync(hookSource, "utf-8");
|
|
@@ -111,7 +266,42 @@ function planSync(root) {
|
|
|
111
266
|
fs.writeFileSync(hookTarget, hookDesired, { mode: 0o755 });
|
|
112
267
|
},
|
|
113
268
|
});
|
|
114
|
-
//
|
|
269
|
+
// 4. `@tanstack/intent` devDependency — the fence tells agents to run
|
|
270
|
+
// `pnpm exec intent`, which only resolves when the repo pins it.
|
|
271
|
+
const rootPkgPath = path.join(root, "package.json");
|
|
272
|
+
if (fs.existsSync(rootPkgPath)) {
|
|
273
|
+
let rootPkg = null;
|
|
274
|
+
try {
|
|
275
|
+
rootPkg = JSON.parse(fs.readFileSync(rootPkgPath, "utf-8"));
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
rootPkg = null;
|
|
279
|
+
}
|
|
280
|
+
const label = "package.json (@tanstack/intent devDependency)";
|
|
281
|
+
if (!rootPkg) {
|
|
282
|
+
items.push({ label: `${label} — package.json is unparseable, leaving as-is`, state: "skip" });
|
|
283
|
+
}
|
|
284
|
+
else if (rootPkg.devDependencies?.["@tanstack/intent"] || rootPkg.dependencies?.["@tanstack/intent"]) {
|
|
285
|
+
items.push({ label, state: "ok" });
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
items.push({
|
|
289
|
+
label,
|
|
290
|
+
// Writing the dependency does not install it. Bare `mesh skills sync`
|
|
291
|
+
// in an already-installed repo leaves `pnpm exec intent` unresolvable
|
|
292
|
+
// until the next install, so say so rather than reporting success.
|
|
293
|
+
remediation: "Added @tanstack/intent — run `pnpm install` so `pnpm exec intent` resolves.",
|
|
294
|
+
state: "write",
|
|
295
|
+
apply: () => {
|
|
296
|
+
rootPkg.devDependencies = rootPkg.devDependencies ?? {};
|
|
297
|
+
rootPkg.devDependencies["@tanstack/intent"] = INTENT_RANGE;
|
|
298
|
+
rootPkg.devDependencies = Object.fromEntries(Object.entries(rootPkg.devDependencies).sort(([a], [b]) => a.localeCompare(b)));
|
|
299
|
+
fs.writeFileSync(rootPkgPath, JSON.stringify(rootPkg, null, 2) + "\n");
|
|
300
|
+
},
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// 5. .claude/settings.json SessionStart hook (JSON merge, idempotent)
|
|
115
305
|
const settingsPath = path.join(root, ".claude", "settings.json");
|
|
116
306
|
let settings = {};
|
|
117
307
|
try {
|
|
@@ -146,7 +336,7 @@ function planSync(root) {
|
|
|
146
336
|
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 1) + "\n");
|
|
147
337
|
},
|
|
148
338
|
});
|
|
149
|
-
//
|
|
339
|
+
// 6. AGENTS.md fence (non-Claude agents discover Intent skills too)
|
|
150
340
|
const agentsPath = path.join(root, "AGENTS.md");
|
|
151
341
|
const fence = fs.readFileSync(cliAsset("assets", "intent", "agents-fence.md"), "utf-8");
|
|
152
342
|
const agentsCurrent = fs.existsSync(agentsPath) ? fs.readFileSync(agentsPath, "utf-8") : null;
|
|
@@ -180,6 +370,8 @@ export function syncSkills(root, opts = {}) {
|
|
|
180
370
|
else {
|
|
181
371
|
item.apply?.();
|
|
182
372
|
logSuccess(`synced: ${item.label}`);
|
|
373
|
+
if (item.remediation)
|
|
374
|
+
logInfo(item.remediation);
|
|
183
375
|
}
|
|
184
376
|
}
|
|
185
377
|
if (!dirty) {
|
|
@@ -191,7 +383,7 @@ export function registerSkillsCommands(program) {
|
|
|
191
383
|
const skills = program.command("skills").description("Agent-skill distribution (base skills + Intent discovery)");
|
|
192
384
|
skills
|
|
193
385
|
.command("sync")
|
|
194
|
-
.description("Install the base building-with-Mesh skills into .claude/skills
|
|
386
|
+
.description("Install the base building-with-Mesh skills into .claude/skills/, fetch the platform skills shipped by the repo's installed @mesh-tech/* packages, and wire TanStack-Intent discovery (intent devDependency + hook + settings + AGENTS.md fence)")
|
|
195
387
|
.option("--check", "verify only (CI/doctor): exit 1 when anything is missing or stale", false)
|
|
196
388
|
.option("--root <path>", "target repo root (default: enclosing git root)")
|
|
197
389
|
.action((opts) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency versions written into a scaffolded app.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists
|
|
5
|
+
* ───────────────
|
|
6
|
+
* `mesh create-app --primitives` renders the fragment templates, and those
|
|
7
|
+
* package.json files have to install in TWO very different places:
|
|
8
|
+
*
|
|
9
|
+
* - inside this monorepo → `workspace:*` + `catalog:` (link local source)
|
|
10
|
+
* - inside a standalone tenant-apps repo → concrete, published ranges
|
|
11
|
+
*
|
|
12
|
+
* The standalone branch takes a caret range on the CURRENT published line,
|
|
13
|
+
* resolved from the registry at scaffold time. The baked value below is a
|
|
14
|
+
* floor, used only when that lookup can't run (offline, no registry auth
|
|
15
|
+
* yet, CI) — not the answer.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The `@mesh-tech/*` package whose published version defines the lockstep
|
|
19
|
+
* group's current line. The publishable packages move together, so one lookup
|
|
20
|
+
* answers for all of them. `@mesh-tech/esm-bundle` versions independently, so
|
|
21
|
+
* it gets its own entry.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SCAFFOLD_PACKAGE_LINES: {
|
|
24
|
+
readonly "@mesh-tech/app-kit": "^1.45.0";
|
|
25
|
+
readonly "@mesh-tech/esm-bundle": "^0.1.1";
|
|
26
|
+
};
|
|
27
|
+
export type ScaffoldPackage = keyof typeof SCAFFOLD_PACKAGE_LINES;
|
|
28
|
+
/**
|
|
29
|
+
* Toolchain devDependencies for the standalone branch. These mirror the
|
|
30
|
+
* workspace catalog in `pnpm-workspace.yaml` (which the published CLI cannot
|
|
31
|
+
* read); `test/scaffold-versions.test.ts` fails if the two drift apart.
|
|
32
|
+
*/
|
|
33
|
+
export declare const SCAFFOLD_TOOLCHAIN: {
|
|
34
|
+
readonly "@types/node": "^24.2.1";
|
|
35
|
+
readonly tsx: "^4.20.4";
|
|
36
|
+
readonly typescript: "^5.9.2";
|
|
37
|
+
};
|
|
38
|
+
/** True for a caret range on a prerelease/build-metadata version (`^0.0.0-dev.1`). */
|
|
39
|
+
export declare function isPrerelease(range: string): boolean;
|
|
40
|
+
/** Pure: `1.45.1` → `^1.45.1`. Returns null for anything that isn't x.y.z. */
|
|
41
|
+
export declare function toCaretRange(version: string): string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Ask the registry for a package's current published line, as a caret range.
|
|
44
|
+
* `cwd` matters: the target repo's `.npmrc` is what maps `@mesh-tech` to
|
|
45
|
+
* CodeArtifact. Any failure (offline, 401, npm missing) falls back silently —
|
|
46
|
+
* a scaffold must never hard-fail on a version lookup.
|
|
47
|
+
*
|
|
48
|
+
* A prerelease answer is refused here rather than in `toCaretRange`, which
|
|
49
|
+
* stays a pure format check. Most published `@mesh-tech/*` versions are
|
|
50
|
+
* `0.0.0-dev.<timestamp>.<sha>` snapshots; a `latest` that ever lands on one
|
|
51
|
+
* would otherwise pin every future scaffold to a single dev build.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolvePublishedRange(pkg: ScaffoldPackage, cwd: string): {
|
|
54
|
+
range: string;
|
|
55
|
+
resolved: boolean;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=scaffold-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-versions.d.ts","sourceRoot":"","sources":["../../../src/utils/scaffold-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CActC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency versions written into a scaffolded app.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists
|
|
5
|
+
* ───────────────
|
|
6
|
+
* `mesh create-app --primitives` renders the fragment templates, and those
|
|
7
|
+
* package.json files have to install in TWO very different places:
|
|
8
|
+
*
|
|
9
|
+
* - inside this monorepo → `workspace:*` + `catalog:` (link local source)
|
|
10
|
+
* - inside a standalone tenant-apps repo → concrete, published ranges
|
|
11
|
+
*
|
|
12
|
+
* The standalone branch takes a caret range on the CURRENT published line,
|
|
13
|
+
* resolved from the registry at scaffold time. The baked value below is a
|
|
14
|
+
* floor, used only when that lookup can't run (offline, no registry auth
|
|
15
|
+
* yet, CI) — not the answer.
|
|
16
|
+
*/
|
|
17
|
+
import { execFileSync } from "child_process";
|
|
18
|
+
/**
|
|
19
|
+
* The `@mesh-tech/*` package whose published version defines the lockstep
|
|
20
|
+
* group's current line. The publishable packages move together, so one lookup
|
|
21
|
+
* answers for all of them. `@mesh-tech/esm-bundle` versions independently, so
|
|
22
|
+
* it gets its own entry.
|
|
23
|
+
*/
|
|
24
|
+
export const SCAFFOLD_PACKAGE_LINES = {
|
|
25
|
+
"@mesh-tech/app-kit": "^1.45.0",
|
|
26
|
+
"@mesh-tech/esm-bundle": "^0.1.1",
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Toolchain devDependencies for the standalone branch. These mirror the
|
|
30
|
+
* workspace catalog in `pnpm-workspace.yaml` (which the published CLI cannot
|
|
31
|
+
* read); `test/scaffold-versions.test.ts` fails if the two drift apart.
|
|
32
|
+
*/
|
|
33
|
+
export const SCAFFOLD_TOOLCHAIN = {
|
|
34
|
+
"@types/node": "^24.2.1",
|
|
35
|
+
tsx: "^4.20.4",
|
|
36
|
+
typescript: "^5.9.2",
|
|
37
|
+
};
|
|
38
|
+
/** True for a caret range on a prerelease/build-metadata version (`^0.0.0-dev.1`). */
|
|
39
|
+
export function isPrerelease(range) {
|
|
40
|
+
return /[-+]/.test(range.replace(/^\^/, ""));
|
|
41
|
+
}
|
|
42
|
+
/** Pure: `1.45.1` → `^1.45.1`. Returns null for anything that isn't x.y.z. */
|
|
43
|
+
export function toCaretRange(version) {
|
|
44
|
+
const trimmed = version.trim();
|
|
45
|
+
return /^\d+\.\d+\.\d+(?:[-+].*)?$/.test(trimmed) ? `^${trimmed}` : null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Ask the registry for a package's current published line, as a caret range.
|
|
49
|
+
* `cwd` matters: the target repo's `.npmrc` is what maps `@mesh-tech` to
|
|
50
|
+
* CodeArtifact. Any failure (offline, 401, npm missing) falls back silently —
|
|
51
|
+
* a scaffold must never hard-fail on a version lookup.
|
|
52
|
+
*
|
|
53
|
+
* A prerelease answer is refused here rather than in `toCaretRange`, which
|
|
54
|
+
* stays a pure format check. Most published `@mesh-tech/*` versions are
|
|
55
|
+
* `0.0.0-dev.<timestamp>.<sha>` snapshots; a `latest` that ever lands on one
|
|
56
|
+
* would otherwise pin every future scaffold to a single dev build.
|
|
57
|
+
*/
|
|
58
|
+
export function resolvePublishedRange(pkg, cwd) {
|
|
59
|
+
try {
|
|
60
|
+
const out = execFileSync("npm", ["view", pkg, "version"], {
|
|
61
|
+
cwd,
|
|
62
|
+
encoding: "utf-8",
|
|
63
|
+
timeout: 15_000,
|
|
64
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
65
|
+
});
|
|
66
|
+
const range = toCaretRange(out);
|
|
67
|
+
if (range && !isPrerelease(range))
|
|
68
|
+
return { range, resolved: true };
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// fall through to the baked floor
|
|
72
|
+
}
|
|
73
|
+
return { range: SCAFFOLD_PACKAGE_LINES[pkg], resolved: false };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=scaffold-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-versions.js","sourceRoot":"","sources":["../../../src/utils/scaffold-versions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,oBAAoB,EAAE,SAAS;IAC/B,uBAAuB,EAAE,QAAQ;CACzB,CAAC;AAIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa,EAAE,SAAS;IACxB,GAAG,EAAE,SAAS;IACd,UAAU,EAAE,QAAQ;CACZ,CAAC;AAEX,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAoB,EACpB,GAAW;IAEX,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE;YACxD,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -75,10 +75,11 @@ for helper functions using the injected `UPLOADS_BUCKET` and `UPLOADS_REGION` en
|
|
|
75
75
|
|
|
76
76
|
## Documentation
|
|
77
77
|
|
|
78
|
-
- `
|
|
78
|
+
- `pnpm exec intent load @mesh-tech/app-kit#core` — the authoritative app-authoring API
|
|
79
79
|
(getConfig → AppEnvironment → primitives → link → register; arg tables + `link()` semantics)
|
|
80
|
-
- The **
|
|
81
|
-
-
|
|
80
|
+
- The **apps** skill (`.claude/skills/mesh-app-kit-apps/`, or
|
|
81
|
+
`pnpm exec intent load @mesh-tech/app-kit#apps`) — the scaffold → wire → run → debug recipe
|
|
82
|
+
- `pnpm exec intent load @mesh-tech/infra-components#core` — per-component reference
|
|
82
83
|
|
|
83
84
|
## CLI
|
|
84
85
|
|
|
@@ -8,15 +8,14 @@
|
|
|
8
8
|
"typecheck": "tsc --noEmit"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@mesh-tech/app-kit": "{{#if workspaceDeps}}workspace:*{{else}}
|
|
12
|
-
"@mesh-tech/infra-components": "{{#if workspaceDeps}}workspace:*{{else}}^0.1.0{{/if}}",
|
|
11
|
+
"@mesh-tech/app-kit": "{{#if workspaceDeps}}workspace:*{{else}}{{meshRange}}{{/if}}",
|
|
13
12
|
"@pulumi/aws": "6.66.2",
|
|
14
13
|
"@pulumi/kubernetes": "4.24.1",
|
|
15
14
|
"@pulumi/pulumi": "3.214.1"
|
|
16
15
|
},
|
|
17
16
|
"devDependencies": {
|
|
18
|
-
"@types/node": "catalog:",
|
|
19
|
-
"tsx": "catalog:",
|
|
20
|
-
"typescript": "catalog:"
|
|
17
|
+
"@types/node": "{{#if workspaceDeps}}catalog:{{else}}{{typesNodeRange}}{{/if}}",
|
|
18
|
+
"tsx": "{{#if workspaceDeps}}catalog:{{else}}{{tsxRange}}{{/if}}",
|
|
19
|
+
"typescript": "{{#if workspaceDeps}}catalog:{{else}}{{typescriptRange}}{{/if}}"
|
|
21
20
|
}
|
|
22
21
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{{/if}}
|
|
15
15
|
"@hono/node-server": "^1.13.0",
|
|
16
16
|
{{#if temporal}}
|
|
17
|
-
"@mesh-tech/app-kit": "{{#if workspaceDeps}}workspace:*{{else}}
|
|
17
|
+
"@mesh-tech/app-kit": "{{#if workspaceDeps}}workspace:*{{else}}{{meshRange}}{{/if}}",
|
|
18
18
|
{{/if}}
|
|
19
19
|
{{#if database}}
|
|
20
20
|
"@prisma/adapter-pg": "^6.0.0",
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
"pg": "^8.13.0"{{/if}}
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@mesh-tech/esm-bundle": "{{#if workspaceDeps}}workspace:*{{else}}
|
|
31
|
+
"@mesh-tech/esm-bundle": "{{#if workspaceDeps}}workspace:*{{else}}{{esmBundleRange}}{{/if}}",
|
|
32
32
|
{{#if database}}
|
|
33
33
|
"@types/pg": "^8.11.0",
|
|
34
34
|
"prisma": "^6.0.0",
|
|
35
35
|
{{/if}}
|
|
36
|
-
"@types/node": "
|
|
37
|
-
"tsx": "
|
|
38
|
-
"typescript": "
|
|
36
|
+
"@types/node": "{{#if workspaceDeps}}catalog:{{else}}{{typesNodeRange}}{{/if}}",
|
|
37
|
+
"tsx": "{{#if workspaceDeps}}catalog:{{else}}{{tsxRange}}{{/if}}",
|
|
38
|
+
"typescript": "{{#if workspaceDeps}}catalog:{{else}}{{typescriptRange}}{{/if}}"
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"build": "esm-bundle src/worker.ts --outfile dist/worker.js --workflows src/workflows.ts --external '@temporalio/*'"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@mesh-tech/app-kit": "
|
|
12
|
+
"@mesh-tech/app-kit": "{{#if workspaceDeps}}workspace:*{{else}}{{meshRange}}{{/if}}",
|
|
13
13
|
"@temporalio/activity": "^1.11.7",
|
|
14
14
|
"@temporalio/client": "^1.11.7",
|
|
15
15
|
"@temporalio/common": "^1.11.7",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"@temporalio/workflow": "^1.11.7"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@mesh-tech/esm-bundle": "{{#if workspaceDeps}}workspace:*{{else}}
|
|
22
|
-
"@types/node": "
|
|
23
|
-
"tsx": "
|
|
24
|
-
"typescript": "
|
|
21
|
+
"@mesh-tech/esm-bundle": "{{#if workspaceDeps}}workspace:*{{else}}{{esmBundleRange}}{{/if}}",
|
|
22
|
+
"@types/node": "{{#if workspaceDeps}}catalog:{{else}}{{typesNodeRange}}{{/if}}",
|
|
23
|
+
"tsx": "{{#if workspaceDeps}}catalog:{{else}}{{tsxRange}}{{/if}}",
|
|
24
|
+
"typescript": "{{#if workspaceDeps}}catalog:{{else}}{{typescriptRange}}{{/if}}"
|
|
25
25
|
}
|
|
26
26
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesh-tech/mesh-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "CLI for Mesh platform development utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"./package.json": "./package.json"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@mesh-tech/tsconfig": "1.
|
|
36
|
+
"@mesh-tech/tsconfig": "1.50.1",
|
|
37
37
|
"@mesh-tech/workflow-viz": "0.2.1",
|
|
38
38
|
"@tanstack/intent": "^0.3.6",
|
|
39
39
|
"@types/node": "^20.0.0",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"@inquirer/input": "^4.2.1",
|
|
49
49
|
"@inquirer/password": "^4.0.17",
|
|
50
50
|
"@inquirer/select": "^4.3.1",
|
|
51
|
+
"@mesh-tech/secrets": "0.1.0",
|
|
51
52
|
"chalk": "^5.3.0",
|
|
52
53
|
"commander": "^12.1.0",
|
|
53
54
|
"handlebars": "^4.7.8",
|