@waniwani/kit 0.1.7 → 0.1.9

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/dist/cli/peers.js CHANGED
@@ -36,10 +36,11 @@ export function peerRange(name) {
36
36
  * installs the next major on the day it lands. Cap it. Anything already ranged,
37
37
  * `^4`, passes through as it is.
38
38
  *
39
- * The prerelease tail is part of the pattern because a floor can carry one, and
40
- * `>=0.19.9-beta.0` falling through uncapped would put the very floor this
41
- * exists to cap into a new app's manifest. `^0.19.9-beta.0` keeps the
42
- * prerelease reachable and still stops at `0.20.0`.
39
+ * The prerelease tail is part of the pattern because a floor can carry one,
40
+ * which is what waiting on somebody else's release looks like here. A
41
+ * `>=0.20.0-beta.0` falling through uncapped would put the very floor this
42
+ * exists to cap into a new app's manifest; `^0.20.0-beta.0` keeps the
43
+ * prerelease reachable and still stops at `0.21.0`.
43
44
  */
44
45
  export function installable(name) {
45
46
  const range = peerRange(name);
@@ -156,4 +157,68 @@ export function compareVersions(a, b) {
156
157
  return null;
157
158
  return order(left, right);
158
159
  }
160
+ /**
161
+ * Whether a dependency spec allows a given version.
162
+ *
163
+ * The mirror of `compare`, asked the other way round: that one measures a spec
164
+ * against this package's floor, this one measures a published version against
165
+ * a spec an app already wrote. An expression this module cannot parse answers
166
+ * `true`, because the caller is deciding whether to nag someone and a range it
167
+ * cannot read is not grounds for it.
168
+ *
169
+ * The prerelease rule is npm's: a range naming no prerelease of its own
170
+ * excludes every prerelease, even one numerically inside it.
171
+ */
172
+ export function allows(spec, version) {
173
+ const allowed = spec == null ? null : window(spec);
174
+ const wanted = parseVersion(version);
175
+ if (!allowed || !wanted)
176
+ return true;
177
+ if (wanted.prerelease && !allowed.low.prerelease)
178
+ return false;
179
+ if (order(wanted, allowed.low) < 0)
180
+ return false;
181
+ if (allowed.exact)
182
+ return order(wanted, allowed.low) === 0;
183
+ return allowed.high === null || order(wanted, allowed.high) < 0;
184
+ }
185
+ /**
186
+ * The range a freshly scaffolded app should carry for a peer.
187
+ *
188
+ * `installable` alone answers this from the floor, and a floor is frozen at
189
+ * release: a kit published against SDK 0.19 scaffolds 0.19 for as long as it is
190
+ * on npm, months after 0.21 shipped. Passing what the registry says `latest` is
191
+ * (see `./registry.ts`) lets a new app start on the newest SDK without this
192
+ * package cutting a release for every SDK bump, which is the whole point of the
193
+ * dependency being a floor rather than a pin.
194
+ *
195
+ * Two things it refuses to follow:
196
+ *
197
+ * A different major. Crossing one is a migration, and a scaffold picking that
198
+ * up on the day it publishes would hand someone a template that no longer
199
+ * compiles against the SDK it imports. Raising the floor is how a major
200
+ * arrives, deliberately and with a template bump next to it.
201
+ *
202
+ * Anything the floor does not already accept — a `latest` that sits below it,
203
+ * which is what a floor pinned to an unreleased prerelease looks like from
204
+ * here. Writing that range would produce an app failing the kit's own check on
205
+ * the first `waniwani check`.
206
+ *
207
+ * Inside a major it does follow the minor, and under semver's 0.x rule that is
208
+ * a breaking boundary: an SDK minor that changes what the distribution template
209
+ * imports reaches a newly scaffolded app immediately. That is the trade for not
210
+ * shipping a kit release per SDK bump, and `scripts/bump-deps.ts` plus the
211
+ * template contract are what catch the template half of it.
212
+ */
213
+ export function preferred(name, latest) {
214
+ const base = installable(name);
215
+ if (!latest)
216
+ return base;
217
+ const floor = parseVersion(peerRange(name).replace(/^>=\s*/, ""));
218
+ const published = parseVersion(latest);
219
+ if (!floor || !published || floor.parts[0] !== published.parts[0])
220
+ return base;
221
+ const candidate = `^${latest}`;
222
+ return compare(candidate, name) === "ok" ? candidate : base;
223
+ }
159
224
  //# sourceMappingURL=peers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../cli/peers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../cli/peers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * The questions `waniwani init` asks, and the shape it asks them in.
3
+ *
4
+ * Arrow-driven, on top of @clack/prompts: raw mode, the redraw on every
5
+ * keystroke, the cursor restore and the ctrl-c path are one dependency's
6
+ * problem rather than four hand-rolled ones. It is the same library `eve init`
7
+ * and `skills add` render their flows with, so the first `waniwani init`
8
+ * somebody runs needs no reading.
9
+ *
10
+ * A question is skipped rather than degraded when there is nothing to ask:
11
+ * `--yes`, a flag that already carries the answer, a pipe, or a CI runner.
12
+ * `canAsk()` is that one test and `init` takes it once, because a scripted run
13
+ * blocking on a cursor in a build log is the failure mode worth designing out.
14
+ * Everything a skipped run prints goes through `close()` and `fail()`, so the
15
+ * two paths say the same thing with and without the rail.
16
+ */
17
+ import { cancel, intro, isCancel, isCI, outro, S_BAR, select, text, } from "@clack/prompts";
18
+ import { dim, green, red } from "./log.js";
19
+ /**
20
+ * Whether this run can ask anything at all.
21
+ *
22
+ * Both ends have to be a terminal — a prompt needs stdin in raw mode and stdout
23
+ * to draw on — and a CI runner is a terminal often enough to be worth ruling out
24
+ * by name. `--yes` is the caller's own answer and is checked at the call site.
25
+ */
26
+ export function canAsk() {
27
+ return Boolean(process.stdin.isTTY && process.stdout.isTTY) && !isCI();
28
+ }
29
+ /** A title `open()` took, drawn by the first question that actually gets asked. */
30
+ let pending = null;
31
+ /** Whether the rail is drawn and waiting for an end cap. */
32
+ let asking = false;
33
+ /**
34
+ * Open the question block, if there turns out to be a question.
35
+ *
36
+ * The heading is held rather than printed, because a run whose flags happen to
37
+ * answer everything asks nothing, and a rail around nothing is a header with no
38
+ * body under it. The first prompt draws it; a run without one never does.
39
+ */
40
+ export function open(title) {
41
+ pending = title;
42
+ }
43
+ /** Draw the held heading. Called by every prompt, does its work once. */
44
+ function rail() {
45
+ if (pending === null)
46
+ return;
47
+ intro(pending);
48
+ pending = null;
49
+ asking = true;
50
+ }
51
+ /**
52
+ * Close the question block with the one line that says what happened.
53
+ *
54
+ * The end cap carries information rather than a farewell, so the line reads the
55
+ * same whether it arrived under a rail or on its own after a `--yes` run.
56
+ */
57
+ export function close(line) {
58
+ pending = null;
59
+ if (asking) {
60
+ asking = false;
61
+ outro(line);
62
+ return;
63
+ }
64
+ console.log(`\n${green("✓")} ${line}\n`);
65
+ }
66
+ /**
67
+ * Close the question block on a refusal, and hand the caller stderr to keep
68
+ * explaining on. Red end cap, and no prompt after it.
69
+ */
70
+ export function fail(line) {
71
+ pending = null;
72
+ if (asking) {
73
+ asking = false;
74
+ // `cancel` draws the end cap without the rail segment above it that `outro`
75
+ // draws, so the answer it lands under would touch it. One bar of our own.
76
+ process.stderr.write(`${dim(S_BAR)}\n`);
77
+ cancel(line, { output: process.stderr });
78
+ return;
79
+ }
80
+ console.error(`\n${red("✗")} ${line}\n`);
81
+ }
82
+ /**
83
+ * Ctrl-c out of a question ends the command at 130 — the shell's own code for an
84
+ * interrupted program, so a wrapper can tell it apart from a scaffold that
85
+ * failed. Nothing has been written at this point, so there is nothing to undo
86
+ * and nothing to report beyond the word.
87
+ */
88
+ function answered(value) {
89
+ if (isCancel(value)) {
90
+ cancel("cancelled", { output: process.stderr });
91
+ process.exit(130);
92
+ }
93
+ return value;
94
+ }
95
+ /** One line of text, with `fallback` shown as the placeholder and taken on Enter. */
96
+ export async function askText(message, fallback, validate) {
97
+ rail();
98
+ const answer = answered(await text({ message, placeholder: fallback, defaultValue: fallback, validate }));
99
+ return answer.trim() || fallback;
100
+ }
101
+ /** One choice out of a list, arrow keys to move, Enter to take the highlighted row. */
102
+ export async function askOne(message, choices, initial) {
103
+ rail();
104
+ return answered(await select({
105
+ message,
106
+ // `Option` resolves through a conditional on its value type, which stays
107
+ // deferred while T is a parameter. Every field of Choice satisfies either
108
+ // branch, so the cast asserts what the constraint cannot.
109
+ options: choices,
110
+ initialValue: initial ?? choices[0].value,
111
+ }));
112
+ }
113
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../cli/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACN,MAAM,EACN,KAAK,EACL,QAAQ,EACR,IAAI,EAEJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,GACJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAU3C;;;;;;GAMG;AACH,MAAM,UAAU,MAAM;IACrB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACxE,CAAC;AAED,mFAAmF;AACnF,IAAI,OAAO,GAAkB,IAAI,CAAC;AAElC,4DAA4D;AAC5D,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,KAAa;IACjC,OAAO,GAAG,KAAK,CAAC;AACjB,CAAC;AAED,yEAAyE;AACzE,SAAS,IAAI;IACZ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO;IAC7B,KAAK,CAAC,OAAO,CAAC,CAAC;IACf,OAAO,GAAG,IAAI,CAAC;IACf,MAAM,GAAG,IAAI,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY;IACjC,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,KAAK,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,IAAY;IAChC,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,KAAK,CAAC;QACf,4EAA4E;QAC5E,0EAA0E;QAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,OAAO;IACR,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAI,KAAiB;IACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,OAAe,EACf,QAAgB,EAChB,QAA4D;IAE5D,IAAI,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,QAAQ,CACtB,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAChF,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC;AAClC,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,OAAe,EACf,OAAoB,EACpB,OAAW;IAEX,IAAI,EAAE,CAAC;IACP,OAAO,QAAQ,CACd,MAAM,MAAM,CAAI;QACf,OAAO;QACP,yEAAyE;QACzE,0EAA0E;QAC1E,0DAA0D;QAC1D,OAAO,EAAE,OAAsB;QAC/B,YAAY,EAAE,OAAO,IAAK,OAAO,CAAC,CAAC,CAAe,CAAC,KAAK;KACxD,CAAC,CACF,CAAC;AACH,CAAC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * The published version of the one dependency this kit does not pin.
3
+ *
4
+ * `@waniwani/sdk` reaches an app as a peer floor rather than as a pin (see
5
+ * `./peers.ts`), which keeps an app free to choose its own version and keeps
6
+ * this package out of the way. The cost is staleness: the floor is written when
7
+ * the kit is released and does not move afterwards, so a new app scaffolded
8
+ * months later still starts on whatever was current the day the floor was set,
9
+ * and an app that never touches its manifest never hears that a newer SDK
10
+ * exists. Both are answered by asking the registry rather than by cutting a kit
11
+ * release for every SDK bump.
12
+ *
13
+ * Everything here fails soft. A lookup that times out, a machine with no
14
+ * network, a registry returning nonsense: all of them return the cached answer
15
+ * if there is one and `null` otherwise, and every caller treats `null` as "say
16
+ * nothing". No command in this CLI fails because npm was slow.
17
+ *
18
+ * Set `WANIWANI_OFFLINE=1` to skip the network entirely. The disk cache is
19
+ * still read, so a machine that has looked once keeps the answer.
20
+ */
21
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
22
+ import { homedir } from "node:os";
23
+ import { join } from "node:path";
24
+ const CACHE_ROOT = join(homedir(), ".cache", "waniwani", "registry");
25
+ /**
26
+ * How long an answer stands before it is looked up again.
27
+ *
28
+ * `validateApp` runs on `check`, `dev`, `build` and `start`, and the dev loop
29
+ * re-runs it on every file change. Without a cache that is a registry round
30
+ * trip per keystroke-ish, which is both rude and slow enough to notice. Six
31
+ * hours means at most a handful of requests a day from a machine someone is
32
+ * working on, and a released SDK that lands mid-afternoon is heard about the
33
+ * same day.
34
+ */
35
+ const TTL_MS = 6 * 60 * 60 * 1000;
36
+ /**
37
+ * Short on purpose. This is a nicety on top of a check that already has its
38
+ * answer, so waiting on a hanging socket costs more than the information is
39
+ * worth.
40
+ */
41
+ const TIMEOUT_MS = 2500;
42
+ /** `@waniwani/sdk` -> a filename with no directory separator left in it. */
43
+ function cacheFile(name) {
44
+ return join(CACHE_ROOT, `${name.replace(/[@/]/g, "_")}.json`);
45
+ }
46
+ function readCache(name) {
47
+ const file = cacheFile(name);
48
+ if (!existsSync(file))
49
+ return null;
50
+ try {
51
+ const parsed = JSON.parse(readFileSync(file, "utf-8"));
52
+ return typeof parsed.version === "string" && typeof parsed.at === "number" ? parsed : null;
53
+ }
54
+ catch {
55
+ // A truncated or hand-edited cache file is not worth an error message on
56
+ // a command that was doing something else.
57
+ return null;
58
+ }
59
+ }
60
+ function writeCache(name, version) {
61
+ try {
62
+ mkdirSync(CACHE_ROOT, { recursive: true });
63
+ writeFileSync(cacheFile(name), JSON.stringify({ version, at: Date.now() }));
64
+ }
65
+ catch {
66
+ // A read-only HOME, a full disk. The lookup still worked; only the next
67
+ // one pays for it.
68
+ }
69
+ }
70
+ /**
71
+ * The version behind a package's `latest` dist-tag, or null.
72
+ *
73
+ * `latest` and not `beta`: a prerelease is something a maintainer opts into by
74
+ * hand, and both npm and bun exclude one from a range that names none. A kit
75
+ * floor carrying a prerelease is exactly that opt-in, and an answer read from
76
+ * here must not quietly undo it.
77
+ *
78
+ * The scoped path is written unencoded because that is the form the registry's
79
+ * `/<name>/latest` endpoint serves; `%40scope%2Fname` answers the packument
80
+ * endpoint but not this one.
81
+ */
82
+ export async function latestVersion(name) {
83
+ const cached = readCache(name);
84
+ if (cached && Date.now() - cached.at < TTL_MS)
85
+ return cached.version;
86
+ if (process.env.WANIWANI_OFFLINE)
87
+ return cached?.version ?? null;
88
+ try {
89
+ const response = await fetch(`https://registry.npmjs.org/${name}/latest`, {
90
+ headers: { Accept: "application/json" },
91
+ signal: AbortSignal.timeout(TIMEOUT_MS),
92
+ });
93
+ if (!response.ok)
94
+ return cached?.version ?? null;
95
+ const { version } = (await response.json());
96
+ if (typeof version !== "string" || !/^\d+\.\d+\.\d+/.test(version)) {
97
+ return cached?.version ?? null;
98
+ }
99
+ writeCache(name, version);
100
+ return version;
101
+ }
102
+ catch {
103
+ // Offline, DNS, a proxy, the timeout above. A stale answer beats none.
104
+ return cached?.version ?? null;
105
+ }
106
+ }
107
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../cli/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The distribution template this kit builds from, as data.
3
+ *
4
+ * Its own module, with no prose wrapped around the value, because
5
+ * `scripts/bump-deps.ts` rewrites `commit` in place every time the tracked
6
+ * branch moves. A file a bot edits is a file where the only line it can damage
7
+ * is the one it means to write.
8
+ *
9
+ * Everything that names the template derives from this record: the `github:`
10
+ * specifier in `./template.js`, the branch `bump-deps.ts` polls for a newer
11
+ * commit, and the raw.githubusercontent URL it reads the template's manifest
12
+ * from. Renaming the repo or moving the tracked branch is one line here.
13
+ */
14
+ export const TEMPLATE_PIN = {
15
+ owner: "WaniWani-AI",
16
+ repo: "mcp-distribution-template",
17
+ /**
18
+ * The branch `commit` is taken from, and the only branch a bump is proposed
19
+ * off. `bump-deps.ts` asserts the pin is an ancestor of this branch's head,
20
+ * so a commit from anywhere else fails rather than sitting here unnoticed.
21
+ */
22
+ branch: "main",
23
+ commit: "c0d00e72a3733a5f42389731fe6bbaf7e0e07863",
24
+ };
25
+ //# sourceMappingURL=template-pin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-pin.js","sourceRoot":"","sources":["../../cli/template-pin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,2BAA2B;IACjC;;;;OAIG;IACH,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,0CAA0C;CAClD,CAAC"}
@@ -16,35 +16,31 @@ import { spawnSync } from "node:child_process";
16
16
  import { existsSync, mkdirSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
17
17
  import { homedir, tmpdir } from "node:os";
18
18
  import { join, resolve } from "node:path";
19
+ import { TEMPLATE_PIN } from "./template-pin.js";
19
20
  /**
20
21
  * A commit, not a branch.
21
22
  *
22
23
  * A published version of this package is frozen, and what it generates has to
23
- * be frozen with it. While the default was `beta`, the ref was re-resolved on
24
- * the customer's machine at every command, so a push to that branch changed the
25
- * output of every installed copy, and the assertions that catch a layout move
26
- * (`REQUIRED` and `assertSeam` in `./codegen.js`) fired in a customer's
27
- * terminal. Pinning a commit moves that failure into this repo's CI, where
24
+ * be frozen with it. A branch ref is re-resolved on the customer's machine at
25
+ * every command, so a push to the template would change the output of every
26
+ * installed copy, and the assertions that catch a layout move (`REQUIRED` and
27
+ * `assertSeam` in `./codegen.js`) would fire in a customer's terminal. Pinning
28
+ * a commit moves that failure into this repo's CI, where
28
29
  * `scripts/template-contract.ts` builds a real app against the pin before a
29
30
  * release goes out.
30
31
  *
31
- * Bumping it is a one-line diff, and `scripts/bump-deps.ts` proposes it. The
32
- * commit is on the template's `beta` branch: the generator is written against
33
- * that branch's layout (`vite.config.ts`, `src/server.ts`, `src/views/`), and
34
- * `main` is still the older `server/` + `web/` + `api/` split, which it cannot
35
- * absorb. An annotated tag can replace the SHA here whenever the template grows
36
- * one, with no change to the resolver.
37
- *
38
- * This commit is `beta`'s head, and it reads `search` and `tracking` off
39
- * `src/waniwani.ts` — the two fields `generateServerApp` emits from the app's
40
- * `defineApp({ ... })`. That pairing is the reason to bump the two together:
41
- * moving the pin here without the generator emitting those fields compiles to
42
- * TS2339, and the contract is what catches it.
32
+ * The commit and the branch it comes from are `./template-pin.js`, which
33
+ * `scripts/bump-deps.ts` owns: it proposes the head of `TEMPLATE_PIN.branch`
34
+ * and refuses a pin that is not an ancestor of it. A bump reaches customers
35
+ * only through a release of this package, and the pin and the generator that
36
+ * reads the template move in one diff with a contract run behind it. An
37
+ * annotated tag can replace the SHA whenever the template grows one, with no
38
+ * change to the resolver.
43
39
  *
44
40
  * Working on the template itself does not need a release: pass `--template` or
45
41
  * set `WANIWANI_TEMPLATE` to a branch ref or a local checkout.
46
42
  */
47
- export const DEFAULT_TEMPLATE = "github:WaniWani-AI/mcp-distribution-template#c0d00e72a3733a5f42389731fe6bbaf7e0e07863";
43
+ export const DEFAULT_TEMPLATE = `github:${TEMPLATE_PIN.owner}/${TEMPLATE_PIN.repo}#${TEMPLATE_PIN.commit}`;
48
44
  const CACHE_ROOT = join(homedir(), ".cache", "waniwani", "templates");
49
45
  /** `github:owner/repo#ref` -> its parts. */
50
46
  function parseGithub(source) {
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../cli/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../cli/template.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import { join, relative } from "node:path";
10
10
  import { loadAppEnv } from "./env.js";
11
- import { compare, floorOf, installable } from "./peers.js";
11
+ import { allows, compare, compareVersions, floorOf, floorVersion, installable, preferred, } from "./peers.js";
12
+ import { latestVersion } from "./registry.js";
12
13
  const NAME_RE = /^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/;
13
14
  /**
14
15
  * What may appear in an endpoint path segment. Deliberately narrower than what
@@ -237,7 +238,7 @@ async function load(file, where, report) {
237
238
  * `codegen.ts` writes one into the generated project, so an app that never
238
239
  * mentions the SDK still gets a working copy.
239
240
  */
240
- function checkPeers(app, report) {
241
+ async function checkPeers(app, report) {
241
242
  let manifest;
242
243
  try {
243
244
  manifest = JSON.parse(readFileSync(join(app.root, "package.json"), "utf-8"));
@@ -270,6 +271,41 @@ function checkPeers(app, report) {
270
271
  // string and guessing at it would be a false alarm either way.
271
272
  break;
272
273
  }
274
+ await checkSdkFreshness(spec, report);
275
+ }
276
+ /**
277
+ * An app whose SDK range stopped below what npm publishes.
278
+ *
279
+ * The check above measures a range against this package's floor, and a floor
280
+ * is the wrong instrument for this question: an app pinned to `^0.19.9` clears
281
+ * a `>=0.19.9` floor forever, including on the day 0.21 ships. Under semver's
282
+ * 0.x rule a caret stops at the next minor, so an SDK minor never reaches an
283
+ * app on its own and nobody upstream can push it there. Somebody has to say so,
284
+ * and this is the only place that runs in front of the person who can act.
285
+ *
286
+ * A warning rather than an error, and silent whenever the answer is not certain:
287
+ * no registry answer, a range this module cannot read, a `latest` the kit's own
288
+ * floor would not accept, or an app already sitting above what npm serves. See
289
+ * `latestVersion` in `./registry.js` for what it costs, which after the first
290
+ * lookup of the day is a file read.
291
+ */
292
+ async function checkSdkFreshness(spec, report) {
293
+ const name = "@waniwani/sdk";
294
+ const latest = await latestVersion(name);
295
+ if (!latest || allows(spec, latest))
296
+ return;
297
+ // Ahead of the registry rather than behind it: a prerelease, or a version
298
+ // published and then unpublished. Nothing to say.
299
+ const current = floorVersion(spec);
300
+ if (!current || compareVersions(latest, current) !== 1)
301
+ return;
302
+ // `preferred` refuses a `latest` this kit cannot endorse — a different major,
303
+ // or one below the declared floor — and hands back the floor instead. That is
304
+ // not a suggestion worth printing.
305
+ const suggestion = preferred(name, latest);
306
+ if (suggestion === installable(name))
307
+ return;
308
+ report.warn("package.json", `${name} ${spec} is behind ${latest}`, `npm serves ${latest} as latest and this range stops below it. The SDK is 0.x, so a minor is a breaking change and no install will cross one on its own — set ${name} to ${suggestion} when you want it.`);
273
309
  }
274
310
  /**
275
311
  * A `vercel.json` at the app root, when the kit's build output needs none.
@@ -299,11 +335,11 @@ function checkDeployConfig(app, report) {
299
335
  }
300
336
  const command = typeof config.buildCommand === "string" ? config.buildCommand : "";
301
337
  if (command.includes(".waniwani/.vercel/output")) {
302
- report.warn("vercel.json", "stages the build output itself, and the build already does", "`waniwani build` leaves the tree at `.vercel/output`, so this command's `rm -rf` deletes it and its `cp` fails on a source that no longer exists. Delete the file: a git-connected project needs no deploy config.");
338
+ report.warn("vercel.json", "stages the build output itself, and the build already does", "`waniwani build` leaves the tree at `.vercel/output`, so this command's `rm -rf` deletes it and its `cp` fails on a source that no longer exists. Drop the field: `framework: null` is the only key this file needs.");
303
339
  return;
304
340
  }
305
341
  if (command) {
306
- report.warn("vercel.json", `overrides the build command with ${JSON.stringify(command)}`, "Vercel runs this instead of the `build` script in package.json. Drop the field unless the app genuinely builds differently.");
342
+ report.warn("vercel.json", `overrides the build command with ${JSON.stringify(command)}`, "Vercel runs this instead of the `build` script in package.json, which is what runs `waniwani build`. Drop the field unless the app genuinely builds differently.");
307
343
  }
308
344
  if (Array.isArray(config.routes)) {
309
345
  report.warn("vercel.json", "carries a `routes` table", "the build's own routing config already sends `/api/*` at the server, and a top-level `routes` entry replaces Vercel's whole routing phase rather than adding to it.");
@@ -317,7 +353,7 @@ export async function validateApp(app) {
317
353
  loadAppEnv(app.root);
318
354
  const report = new Report(app.root);
319
355
  checkStructure(app, report);
320
- checkPeers(app, report);
356
+ await checkPeers(app, report);
321
357
  checkDeployConfig(app, report);
322
358
  // Importing broken modules produces noise on top of structural errors.
323
359
  if (report.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../cli/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../cli/validate.ts"],"names":[],"mappings":"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"}