primitive-admin 1.1.0-alpha.38 → 1.1.0-alpha.39

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 (57) hide show
  1. package/README.md +16 -0
  2. package/dist/bin/primitive.js +2 -0
  3. package/dist/bin/primitive.js.map +1 -1
  4. package/dist/src/commands/blob-buckets.js +64 -0
  5. package/dist/src/commands/blob-buckets.js.map +1 -1
  6. package/dist/src/commands/collections.js +1 -9
  7. package/dist/src/commands/collections.js.map +1 -1
  8. package/dist/src/commands/group-type-configs.js +1 -9
  9. package/dist/src/commands/group-type-configs.js.map +1 -1
  10. package/dist/src/commands/guides.d.ts +75 -0
  11. package/dist/src/commands/guides.js +284 -47
  12. package/dist/src/commands/guides.js.map +1 -1
  13. package/dist/src/commands/rule-sets.d.ts +1 -0
  14. package/dist/src/commands/rule-sets.js +25 -3
  15. package/dist/src/commands/rule-sets.js.map +1 -1
  16. package/dist/src/commands/scripts.d.ts +2 -0
  17. package/dist/src/commands/scripts.js +667 -0
  18. package/dist/src/commands/scripts.js.map +1 -0
  19. package/dist/src/commands/sync.d.ts +29 -0
  20. package/dist/src/commands/sync.js +402 -97
  21. package/dist/src/commands/sync.js.map +1 -1
  22. package/dist/src/commands/webhooks.js +7 -2
  23. package/dist/src/commands/webhooks.js.map +1 -1
  24. package/dist/src/commands/workflows.js +219 -1
  25. package/dist/src/commands/workflows.js.map +1 -1
  26. package/dist/src/lib/api-client.d.ts +56 -15
  27. package/dist/src/lib/api-client.js +51 -0
  28. package/dist/src/lib/api-client.js.map +1 -1
  29. package/dist/src/lib/block-layout.d.ts +160 -0
  30. package/dist/src/lib/block-layout.js +451 -0
  31. package/dist/src/lib/block-layout.js.map +1 -0
  32. package/dist/src/lib/config.js +21 -0
  33. package/dist/src/lib/config.js.map +1 -1
  34. package/dist/src/lib/generated-allowlist.js +9 -0
  35. package/dist/src/lib/generated-allowlist.js.map +1 -1
  36. package/dist/src/lib/output.d.ts +25 -5
  37. package/dist/src/lib/output.js +32 -4
  38. package/dist/src/lib/output.js.map +1 -1
  39. package/dist/src/lib/query-operators.d.ts +43 -0
  40. package/dist/src/lib/query-operators.js +80 -0
  41. package/dist/src/lib/query-operators.js.map +1 -0
  42. package/dist/src/lib/toml-database-config.d.ts +20 -0
  43. package/dist/src/lib/toml-database-config.js +37 -2
  44. package/dist/src/lib/toml-database-config.js.map +1 -1
  45. package/dist/src/lib/toml-metadata-config.d.ts +108 -0
  46. package/dist/src/lib/toml-metadata-config.js +371 -0
  47. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  48. package/dist/src/lib/toml-params-validator.d.ts +34 -0
  49. package/dist/src/lib/toml-params-validator.js +118 -3
  50. package/dist/src/lib/toml-params-validator.js.map +1 -1
  51. package/dist/src/lib/workflow-apply.d.ts +66 -0
  52. package/dist/src/lib/workflow-apply.js +117 -0
  53. package/dist/src/lib/workflow-apply.js.map +1 -0
  54. package/dist/src/lib/workflow-toml-validator.js +36 -0
  55. package/dist/src/lib/workflow-toml-validator.js.map +1 -1
  56. package/dist/src/types/index.d.ts +7 -0
  57. package/package.json +1 -1
@@ -112,6 +112,84 @@ export function selectVariant(guide, request) {
112
112
  // 4. Nothing matched → the guide's default file (never throws).
113
113
  return { file: guide.file, matchedOn: "default" };
114
114
  }
115
+ /**
116
+ * The global set of languages a manifest supports. Derived (never hardcoded)
117
+ * from: every guide variant's `language`, the manifest-level `defaults.language`
118
+ * (falling back to `"ts"` when absent), and every `platforms[*].language`. Used
119
+ * to validate `--language` and to render the `guides list` legend / `--json`.
120
+ *
121
+ * Derived per-request from the manifest ACTUALLY loaded (so it stays correct
122
+ * for stale-cache / `--guide-version` fallbacks), and grows automatically as
123
+ * new languages appear in the manifest — no CLI change needed.
124
+ */
125
+ export function deriveLanguages(manifest) {
126
+ const languages = new Set();
127
+ for (const guide of manifest.guides ?? []) {
128
+ for (const variant of guide.variants ?? []) {
129
+ if (variant.language !== undefined)
130
+ languages.add(variant.language);
131
+ }
132
+ }
133
+ languages.add(manifest.defaults?.language ?? "ts");
134
+ for (const entry of Object.values(manifest.platforms ?? {})) {
135
+ if (entry.language)
136
+ languages.add(entry.language);
137
+ }
138
+ return languages;
139
+ }
140
+ /**
141
+ * Validate the requested `(language, platform)` against the loaded manifest and
142
+ * resolve the effective language (issue #1219). Behavior:
143
+ *
144
+ * - Normalizes both values first (lowercase + trim, aliases, `"" → undefined`)
145
+ * via the existing `normalizeLanguage`/`normalizePlatform` helpers, then
146
+ * validates the NORMALIZED value.
147
+ * - `--language` is validated against `deriveLanguages(manifest)` whether or
148
+ * not a `platforms` block exists (the set is derivable from any manifest).
149
+ * - `--platform` is validated + inferred ONLY when `manifest.platforms` is
150
+ * present. With the block, an unknown platform is a hard error and a known
151
+ * platform infers `language = platforms[p].language` (an explicit
152
+ * `--language` always wins the language dimension). WITHOUT the block, the
153
+ * platform passes through unvalidated and uninferred — today's non-enforcing
154
+ * behavior, so older manifests / stale cache don't start hard-failing.
155
+ * - Unknown values produce a hard-error message mirroring `init --platform`'s
156
+ * style, plus a cross-hint when the bad value names the other dimension
157
+ * (`--platform swift` → "Did you mean --language swift?", and vice versa).
158
+ */
159
+ export function validateAndResolveRequest(manifest, rawLanguage, rawPlatform) {
160
+ const language = normalizeLanguage(rawLanguage);
161
+ const platform = normalizePlatform(rawPlatform);
162
+ const supportedLanguages = deriveLanguages(manifest);
163
+ const platforms = manifest.platforms; // may be undefined (back-compat)
164
+ // Validate --language (independent of the platforms block).
165
+ if (language !== undefined && !supportedLanguages.has(language)) {
166
+ const supported = [...supportedLanguages].sort().join(", ");
167
+ let message = `Unknown language "${language}". Supported languages: ${supported}`;
168
+ // Cross-hint: the value names a known platform, not a language.
169
+ if (platforms && platforms[language]) {
170
+ message += `. Did you mean --platform ${language}?`;
171
+ }
172
+ return { error: message };
173
+ }
174
+ let effectiveLanguage = language;
175
+ // Validate + infer --platform — active ONLY when the platforms block exists.
176
+ if (platform !== undefined && platforms !== undefined) {
177
+ if (!platforms[platform]) {
178
+ const supported = Object.keys(platforms).sort().join(", ");
179
+ let message = `Unknown platform "${platform}". Supported platforms: ${supported}`;
180
+ // Cross-hint: the value names a known language, not a platform
181
+ // (the reporter's exact `--platform swift` case).
182
+ if (supportedLanguages.has(platform)) {
183
+ message += `. Did you mean --language ${platform}?`;
184
+ }
185
+ return { error: message };
186
+ }
187
+ // Infer the language from the platform; an explicit --language wins.
188
+ effectiveLanguage = language ?? platforms[platform].language;
189
+ }
190
+ // else: no platforms block → back-compat pass-through (no validate, no infer).
191
+ return { language: effectiveLanguage, platform };
192
+ }
115
193
  function detectClientVersion() {
116
194
  const clientPkgPath = join(process.cwd(), "node_modules", CLIENT_PACKAGE_NAME, "package.json");
117
195
  try {
@@ -287,6 +365,37 @@ async function fetchManifest(versionInfo, forceRefresh = false) {
287
365
  }
288
366
  throw new Error(`Failed to fetch guides manifest for ${versionInfo.version}`);
289
367
  }
368
+ /**
369
+ * Internal error thrown by `fetchGuide` on a non-ok guide-file response. NOT
370
+ * exported. `status` lets the `get` action distinguish a 404 (the cached
371
+ * manifest may name a file that was renamed/removed upstream — heal by
372
+ * refetching the manifest) from a transport error (keep the stale-cache
373
+ * fallback). `staleContent` carries the on-disk copy for the failed filename,
374
+ * if any, so the action can serve it as the option-(b) last resort (#1034).
375
+ */
376
+ class GuideFetchError extends Error {
377
+ status;
378
+ selectedFile;
379
+ staleContent;
380
+ constructor(status, message, selectedFile, staleContent) {
381
+ super(message);
382
+ this.status = status;
383
+ this.selectedFile = selectedFile;
384
+ this.staleContent = staleContent;
385
+ this.name = "GuideFetchError";
386
+ }
387
+ }
388
+ /** Read an on-disk cached guide file, or undefined if absent/corrupted. */
389
+ function readCachedGuide(cachedPath) {
390
+ if (!existsSync(cachedPath))
391
+ return undefined;
392
+ try {
393
+ return readFileSync(cachedPath, "utf-8");
394
+ }
395
+ catch {
396
+ return undefined; // corrupted cache
397
+ }
398
+ }
290
399
  async function fetchGuide(guide, version, request = {}, forceRefresh = false) {
291
400
  ensureCacheDir(version);
292
401
  const meta = loadCacheMeta();
@@ -313,6 +422,14 @@ async function fetchGuide(guide, version, request = {}, forceRefresh = false) {
313
422
  const guideUrl = getGuideUrl(version, selectedFile);
314
423
  try {
315
424
  const response = await fetchWithTimeout(guideUrl);
425
+ if (response.status === 404) {
426
+ // The cache-derived filename no longer exists upstream (a docs rename /
427
+ // removal). Let the 404 escape to the `get` action so it can refetch the
428
+ // manifest and re-resolve — heal must take priority over serving stale.
429
+ // Attach the on-disk copy (if any) so the action can serve it as the
430
+ // option-(b) last resort when the heal can't help (#1034).
431
+ throw new GuideFetchError(404, `Failed to fetch guide "${guide.topic}": HTTP 404: ${response.statusText}`, selectedFile, readCachedGuide(cachedPath));
432
+ }
316
433
  if (!response.ok) {
317
434
  throw new Error(`HTTP ${response.status}: ${response.statusText}`);
318
435
  }
@@ -326,15 +443,16 @@ async function fetchGuide(guide, version, request = {}, forceRefresh = false) {
326
443
  return { content, fromCache: false, stale: false, selectedFile };
327
444
  }
328
445
  catch (err) {
329
- // Network failed, try stale cache
330
- if (hasCachedGuide) {
331
- try {
332
- const content = readFileSync(cachedPath, "utf-8");
333
- return { content, fromCache: true, stale: true, selectedFile };
334
- }
335
- catch {
336
- // Cache corrupted
337
- }
446
+ // A 404 must reach the action (heal takes priority over stale) — re-throw it
447
+ // unchanged rather than serving the stale copy here.
448
+ if (err instanceof GuideFetchError && err.status === 404) {
449
+ throw err;
450
+ }
451
+ // Non-404 (transport error / 5xx): serve the stale on-disk copy if present
452
+ // (Fork F — transport problems are not manifest skew), else throw.
453
+ const stale = readCachedGuide(cachedPath);
454
+ if (stale !== undefined) {
455
+ return { content: stale, fromCache: true, stale: true, selectedFile };
338
456
  }
339
457
  throw new Error(`Failed to fetch guide "${guide.topic}": ${err.message}`);
340
458
  }
@@ -347,23 +465,40 @@ function normalizeVariants(guide) {
347
465
  file: v.file,
348
466
  }));
349
467
  }
350
- /** Compact human-readable rendering of a guide's available combinations. */
351
- function formatCombinations(guide) {
468
+ /**
469
+ * Compact rendering of the LANGUAGES a guide offers, for the `guides list`
470
+ * table (issue #1219 renamed the ambiguous `COMBINATIONS` column to
471
+ * `LANGUAGES`). Lists each variant's `language`, de-duplicated and order-
472
+ * preserving; a guide with no language-pinned variants renders `default`.
473
+ * Platforms are surfaced separately as a manifest-level legend, since they are
474
+ * a manifest-wide map rather than a per-guide attribute.
475
+ */
476
+ export function formatLanguages(guide) {
352
477
  const variants = guide.variants ?? [];
353
478
  if (variants.length === 0)
354
479
  return "default";
355
- const parts = variants.map((v) => {
356
- if (v.language !== undefined && v.platform !== undefined) {
357
- return `${v.language}_${v.platform}`;
358
- }
359
- if (v.language !== undefined)
360
- return v.language;
361
- if (v.platform !== undefined)
362
- return v.platform;
480
+ const languages = variants
481
+ .map((v) => v.language)
482
+ .filter((l) => l !== undefined);
483
+ if (languages.length === 0)
363
484
  return "default";
364
- });
365
- // De-dupe while preserving order.
366
- return [...new Set(parts)].join("; ");
485
+ return [...new Set(languages)].join("; ");
486
+ }
487
+ /**
488
+ * Render the manifest-level platform→language legend for `guides list`, e.g.
489
+ * `web -> ts, ios -> swift, macos -> swift`. When the manifest has no
490
+ * `platforms` block (older manifests / stale cache, before
491
+ * Primitive-Labs/primitive-docs#194), platforms aren't modeled yet, so this
492
+ * reports `none defined yet` rather than implying a map that doesn't exist.
493
+ */
494
+ function formatPlatformsLegend(manifest) {
495
+ const platforms = manifest.platforms;
496
+ if (!platforms || Object.keys(platforms).length === 0) {
497
+ return "none defined yet";
498
+ }
499
+ return Object.entries(platforms)
500
+ .map(([platform, entry]) => `${platform} -> ${entry.language}`)
501
+ .join(", ");
367
502
  }
368
503
  export function registerGuidesCommands(program) {
369
504
  const guides = program
@@ -371,21 +506,25 @@ export function registerGuidesCommands(program) {
371
506
  .description("Access Primitive how-to guides for building apps")
372
507
  .addHelpText("after", `
373
508
  Examples:
374
- $ primitive guides list # List available guides + combinations
509
+ $ primitive guides list # List available guides + languages
375
510
  $ primitive guides list --json # List as JSON for programmatic use
376
511
  $ primitive guides get documents # Fetch the default (TS) documents guide
377
512
  $ primitive guides get documents --language swift # Fetch the Swift variant
378
- $ primitive guides get documents --language swift --platform ios
513
+ $ primitive guides get documents --platform ios # Fetch the platform's language (e.g. Swift)
379
514
  $ primitive guides list --guide-version 1 # List guides for client v1
380
515
  $ primitive guides list --guide-version latest # List guides for the latest line
381
516
 
382
517
  Language & platform:
383
- --language <ts|swift|...> and --platform <web|ios|macos|...> let the calling
384
- agent request a specific guide variant. Aliases: typescript/javascript/js -> ts.
385
- These flags are guide-specific and NEVER fail: an unknown value or an
386
- unavailable (language, platform) combination falls back to the guide's default
387
- variant rather than erroring. (This intentionally differs from 'init --platform',
388
- which validates and exits.) Run 'guides list' to see available combinations.
518
+ --language <ts|swift|...> fetches a specific language variant of a guide.
519
+ Aliases: typescript/javascript/js -> ts.
520
+ --platform <web|ios|macos|...> selects the language a platform targets: the
521
+ guides manifest maps each platform to its language (e.g. ios -> swift), so
522
+ 'guides get documents --platform ios' returns the Swift guide. An explicit
523
+ --language always wins the language dimension.
524
+ Unknown --language values (always), and unknown --platform values (once the
525
+ manifest publishes its platform map), are rejected with a clear error listing
526
+ the supported values — mirroring 'init --platform'. Run 'guides list' to see
527
+ the supported languages and platforms.
389
528
 
390
529
  Versioning:
391
530
  By default, guides are fetched for the detected ${CLIENT_PACKAGE_NAME} version.
@@ -405,16 +544,23 @@ Cache:
405
544
  .option("--json", "Output as JSON")
406
545
  .option("--refresh", "Force refresh from network")
407
546
  .option("--guide-version <version>", "Fetch guides for a specific major version (e.g., 1, 2, or 'latest')")
408
- .option("--language <lang>", "Language the agent is targeting (ts, swift, ...; informational here)")
409
- .option("--platform <platform>", "Platform the agent is targeting (web, ios, macos, ...; informational here)")
547
+ .option("--language <lang>", "Language to validate (ts, swift, ...; informational on list)")
548
+ .option("--platform <platform>", "Platform to validate (web, ios, macos, ...; informational on list)")
410
549
  .action(async (options) => {
411
550
  try {
412
551
  const requestedVersion = resolveVersion(options.guideVersion);
413
552
  const { manifest, stale, versionInfo } = await fetchManifest(requestedVersion, options.refresh);
414
- // Normalize requested dimensions (informational on `list` surfaced so
415
- // the agent can confirm what it asked for; selection happens on `get`).
553
+ // Validate the requested dimensions against the loaded manifest (same
554
+ // rules as `get`, for one mental model Q3). They have no per-row
555
+ // effect on `list`, but an unknown value should fail loudly here too.
556
+ const resolution = validateAndResolveRequest(manifest, options.language, options.platform);
557
+ if (resolution.error) {
558
+ error(resolution.error);
559
+ process.exit(1);
560
+ }
416
561
  const reqLanguage = normalizeLanguage(options.language);
417
562
  const reqPlatform = normalizePlatform(options.platform);
563
+ const supportedLanguages = [...deriveLanguages(manifest)].sort();
418
564
  if (stale) {
419
565
  warn("Using stale cache (network unavailable)");
420
566
  }
@@ -423,6 +569,8 @@ Cache:
423
569
  version: versionInfo.version,
424
570
  versionSource: versionInfo.source,
425
571
  defaults: manifest.defaults ?? null,
572
+ platforms: manifest.platforms ?? null,
573
+ supportedLanguages,
426
574
  language: reqLanguage ?? null,
427
575
  platform: reqPlatform ?? null,
428
576
  guides: manifest.guides.map((g) => ({
@@ -444,20 +592,41 @@ Cache:
444
592
  }
445
593
  keyValue("Client version", formatClientVersion(versionInfo));
446
594
  keyValue("Guides version", formatGuidesVersion(versionInfo));
595
+ // Manifest-level legend: spell out languages and the platform→language
596
+ // map explicitly, so `--language`/`--platform` are no longer ambiguous.
597
+ keyValue("Languages", supportedLanguages.join(", "));
598
+ keyValue("Platforms", formatPlatformsLegend(manifest));
447
599
  console.log("");
448
600
  const rows = manifest.guides.map((g) => ({
449
601
  topic: g.topic,
450
602
  description: g.description,
451
- combinations: formatCombinations(g),
603
+ languages: formatLanguages(g),
452
604
  }));
605
+ // Size DESCRIPTION from the live terminal width so wide terminals show
606
+ // the full description (the guides.json contract budgets descriptions
607
+ // at <=100 chars; DESCRIPTION_MAX mirrors that cap — see
608
+ // primitive-docs `scripts/sync-guides-json.mjs`) while the table never
609
+ // wraps. Floor 48 keeps today's readable width on an 80-col terminal;
610
+ // on a non-TTY (piped) the column is sized to the cap so full
611
+ // descriptions reach `grep`/agents. `truncate` defensively clips a
612
+ // description that violates the upstream contract.
613
+ const DESCRIPTION_MAX = 100;
453
614
  console.log(formatTable(rows, [
454
615
  { header: "TOPIC", key: "topic" },
455
- { header: "DESCRIPTION", key: "description", width: 48, truncate: true },
456
- { header: "COMBINATIONS", key: "combinations" },
616
+ {
617
+ header: "DESCRIPTION",
618
+ key: "description",
619
+ flex: true,
620
+ truncate: true,
621
+ flexFloor: 48,
622
+ flexMax: DESCRIPTION_MAX,
623
+ },
624
+ { header: "LANGUAGES", key: "languages" },
457
625
  ]));
458
626
  console.log("");
459
627
  keyValue("Cache location", getVersionCacheDir(versionInfo.version));
460
- info("Use 'primitive guides get <topic> [--language <lang>] [--platform <platform>]' to fetch a guide.");
628
+ info("Use 'primitive guides get <topic> --language <ts|swift>' to fetch a guide.");
629
+ info("Example: primitive guides get documents --language swift");
461
630
  }
462
631
  catch (err) {
463
632
  error(err.message);
@@ -473,21 +642,33 @@ Cache:
473
642
  .option("--refresh", "Force refresh from network")
474
643
  .option("--guide-version <version>", "Fetch guides for a specific major version (e.g., 1, 2, or 'latest')")
475
644
  .option("--language <lang>", "Language variant to fetch (ts, swift, ...; aliases typescript/javascript/js -> ts)")
476
- .option("--platform <platform>", "Platform variant to fetch (web, ios, macos, ...)")
645
+ .option("--platform <platform>", "Platform whose language to fetch (web, ios, macos, ...; inferred from the manifest)")
477
646
  .action(async (topic, options) => {
478
647
  try {
479
648
  const requestedVersion = resolveVersion(options.guideVersion);
480
- const { manifest, stale: manifestStale, versionInfo } = await fetchManifest(requestedVersion, options.refresh);
649
+ const { manifest, fromCache, stale: manifestStale, versionInfo } = await fetchManifest(requestedVersion, options.refresh);
481
650
  const guide = manifest.guides.find((g) => g.topic.toLowerCase() === topic.toLowerCase());
482
651
  if (!guide) {
483
652
  const availableTopics = manifest.guides.map((g) => g.topic).join(", ");
484
653
  error(`Guide "${topic}" not found. Available topics: ${availableTopics}`);
485
654
  process.exit(1);
486
655
  }
487
- // Normalize the requested (language, platform). Unknown values pass
488
- // through and fall back to the default variant (never fail — #977).
489
- const reqLanguage = normalizeLanguage(options.language);
490
- const reqPlatform = normalizePlatform(options.platform);
656
+ // Validate both flags against the loaded manifest and resolve the
657
+ // effective language (issue #1219). An unknown value is a hard error;
658
+ // `--platform ios` infers its language (e.g. swift) when the manifest
659
+ // publishes a `platforms` block, while an explicit `--language` wins.
660
+ const resolution = validateAndResolveRequest(manifest, options.language, options.platform);
661
+ if (resolution.error) {
662
+ error(resolution.error);
663
+ process.exit(1);
664
+ }
665
+ // `reqLanguage` is the EFFECTIVE language after platform inference; pass
666
+ // it to both the JSON selection and the content fetch so they can't
667
+ // desynchronize.
668
+ const reqLanguage = resolution.language;
669
+ const reqPlatform = resolution.platform;
670
+ const requestedAnyDimension = normalizeLanguage(options.language) !== undefined ||
671
+ normalizePlatform(options.platform) !== undefined;
491
672
  const selection = selectVariant(guide, {
492
673
  language: reqLanguage,
493
674
  platform: reqPlatform,
@@ -507,6 +688,7 @@ Cache:
507
688
  relatedGuides: guide.relatedGuides,
508
689
  language: reqLanguage ?? null,
509
690
  platform: reqPlatform ?? null,
691
+ defaultPlatform: manifest.defaults?.platform ?? null,
510
692
  selectedFile: selection.file,
511
693
  matchedOn: selection.matchedOn,
512
694
  availableVariants: normalizeVariants(guide),
@@ -514,12 +696,67 @@ Cache:
514
696
  });
515
697
  return;
516
698
  }
517
- const { content, stale: guideStale } = await fetchGuide(guide, versionInfo.version, { language: reqLanguage, platform: reqPlatform }, options.refresh);
518
- if (manifestStale || guideStale) {
699
+ const request = { language: reqLanguage, platform: reqPlatform };
700
+ let result;
701
+ try {
702
+ result = await fetchGuide(guide, versionInfo.version, request, options.refresh);
703
+ }
704
+ catch (err) {
705
+ // Only a 404 is healable here. Transport errors already served stale
706
+ // (or threw) inside fetchGuide; rethrow anything that isn't a 404.
707
+ if (!(err instanceof GuideFetchError && err.status === 404)) {
708
+ throw err;
709
+ }
710
+ // Heal only when the manifest came from cache — then the named file
711
+ // may have been renamed/removed upstream while our manifest is stale.
712
+ // Force a manifest refetch, re-find the topic, and retry the file
713
+ // ONCE. A fresh-from-network manifest (incl. --refresh) makes the 404
714
+ // authoritative, so we skip straight to the last resort below (#1034).
715
+ if (fromCache) {
716
+ try {
717
+ const refreshed = await fetchManifest(requestedVersion, /* forceRefresh */ true);
718
+ const freshGuide = refreshed.manifest.guides.find((g) => g.topic.toLowerCase() === topic.toLowerCase());
719
+ if (freshGuide) {
720
+ // Re-calling fetchGuide recomputes selectVariant + the cache path
721
+ // for the (possibly new) filename — no extra resolve site. If the
722
+ // filename is unchanged it just 404s again and falls through.
723
+ const retried = await fetchGuide(freshGuide, refreshed.versionInfo.version, request, options.refresh);
724
+ if (basename(retried.selectedFile) !== basename(err.selectedFile)) {
725
+ warn(`Guide "${topic}" file moved upstream; refreshed manifest and retried.`);
726
+ }
727
+ result = retried;
728
+ }
729
+ }
730
+ catch {
731
+ // Heal failed (manifest refetch failed / retry 404'd / topic gone)
732
+ // → fall through to the option-(b) last resort on the ORIGINAL error.
733
+ }
734
+ }
735
+ // Option (b) last resort — applies to ALL 404s, not just cached-manifest
736
+ // ones, so `--refresh`-on-404 still serves an old on-disk copy as it
737
+ // does today. Serve the old copy if we have one; otherwise surface the
738
+ // original terminal 404.
739
+ if (!result) {
740
+ if (err.staleContent !== undefined) {
741
+ result = { content: err.staleContent, stale: true, selectedFile: err.selectedFile };
742
+ }
743
+ else {
744
+ throw err;
745
+ }
746
+ }
747
+ }
748
+ if (manifestStale || result.stale) {
519
749
  warn("Using stale cache (network unavailable)");
520
750
  }
751
+ // Transparency note (issue #1219): a language/platform was requested but
752
+ // this topic has no variant pinning it, so the default file was served.
753
+ // This closes the residual silent-fallback footgun beyond `--platform`.
754
+ // The note goes to STDERR (via `info`) so stdout stays clean for piping.
755
+ if (requestedAnyDimension && selection.matchedOn === "default") {
756
+ info(`No ${reqLanguage ?? reqPlatform} variant for "${guide.topic}"; served the default guide.`);
757
+ }
521
758
  // Print the guide content directly to stdout
522
- console.log(content);
759
+ console.log(result.content);
523
760
  }
524
761
  catch (err) {
525
762
  error(err.message);
@@ -1 +1 @@
1
- {"version":3,"file":"guides.js","sourceRoot":"","sources":["../../../src/commands/guides.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guides.js","sourceRoot":"","sources":["../../../src/commands/guides.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { Command } from "commander";
2
+ export declare const RULE_SET_RESOURCE_TYPES: readonly ["document", "workflow", "api", "group", "collection", "database_type", "blob_bucket", "analytics"];
2
3
  export declare function registerRuleSetsCommands(program: Command): void;
@@ -2,6 +2,28 @@ import { ApiClient } from "../lib/api-client.js";
2
2
  import { getCurrentAppId } from "../lib/config.js";
3
3
  import { success, error, info, keyValue, result as printResult, formatTable, formatId, formatDate, json, } from "../lib/output.js";
4
4
  import { confirmPrompt } from "../lib/confirm-prompt.js";
5
+ // The resource types the server's `create` endpoint accepts for a rule set,
6
+ // mirrored from the server's getValidResourceTypes()
7
+ // (src/app-api/controllers/rule-sets-controller.ts) and kept in the same order.
8
+ // All --resource-type help text and the usage example are derived from this one
9
+ // constant, so the CLI has a single source of truth. The server list is computed
10
+ // dynamically (NON_REGISTRY_RESOURCE_TYPES + CEL registry keys), so this copy can
11
+ // drift; the integration test in cli/tests/integration/rule-sets.test.ts fetches
12
+ // the authoritative set live from GET /app/:appId/api/rule-sets/resource-types and
13
+ // fails if it no longer matches this constant — so registering a new server
14
+ // resource type breaks the test until this list is updated. Note: `database` is
15
+ // NOT a valid type (the database record type is `database_type`).
16
+ export const RULE_SET_RESOURCE_TYPES = [
17
+ "document",
18
+ "workflow",
19
+ "api",
20
+ "group",
21
+ "collection",
22
+ "database_type",
23
+ "blob_bucket",
24
+ "analytics",
25
+ ];
26
+ const RESOURCE_TYPES_HELP = RULE_SET_RESOURCE_TYPES.join(", ");
5
27
  function resolveAppId(appId, options) {
6
28
  const resolved = appId || options.app || getCurrentAppId();
7
29
  if (!resolved) {
@@ -17,7 +39,7 @@ export function registerRuleSetsCommands(program) {
17
39
  .addHelpText("after", `
18
40
  Examples:
19
41
  $ primitive rule-sets list
20
- $ primitive rule-sets create "My Rules" --resource-type database --rules '{"Task":{"read":"true","write":"record.createdBy == user.userId"}}'
42
+ $ primitive rule-sets create "My Rules" --resource-type collection --rules '{"collection":{"get":"true","edit":"user.userId == collection.createdBy"}}'
21
43
  $ primitive rule-sets get <rule-set-id>
22
44
  $ primitive rule-sets update <rule-set-id> --name "Updated Rules"
23
45
  $ primitive rule-sets delete <rule-set-id>
@@ -28,7 +50,7 @@ Examples:
28
50
  .description("List access rule sets in an app")
29
51
  .argument("[app-id]", "App ID (uses current app if not specified)")
30
52
  .option("--app <app-id>", "App ID")
31
- .option("--resource-type <type>", "Filter by resource type (database, document, workflow, api)")
53
+ .option("--resource-type <type>", `Filter by resource type (${RESOURCE_TYPES_HELP})`)
32
54
  .option("--json", "Output as JSON")
33
55
  .action(async (appId, options) => {
34
56
  const resolvedAppId = resolveAppId(appId, options);
@@ -65,7 +87,7 @@ Examples:
65
87
  .command("create")
66
88
  .description("Create a new access rule set")
67
89
  .argument("<name>", "Rule set name")
68
- .requiredOption("--resource-type <type>", "Resource type: database, document, workflow, or api")
90
+ .requiredOption("--resource-type <type>", `Resource type: ${RESOURCE_TYPES_HELP}`)
69
91
  .requiredOption("--rules <json>", "Rules as JSON string")
70
92
  .option("--description <text>", "Optional description")
71
93
  .option("--app <app-id>", "App ID")