blodemd 0.0.11 → 0.0.13

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 (86) hide show
  1. package/README.md +11 -47
  2. package/dev-server/app/layout.tsx +1 -1
  3. package/dev-server/next.config.js +19 -9
  4. package/dev-server/tsconfig.json +0 -3
  5. package/dist/cli.mjs +732 -123
  6. package/dist/cli.mjs.map +1 -1
  7. package/docs/app/globals.css +15 -1
  8. package/docs/components/api/api-playground.tsx +2 -2
  9. package/docs/components/docs/copy-page-menu.tsx +55 -27
  10. package/docs/components/docs/doc-header.tsx +1 -1
  11. package/docs/components/docs/doc-shell.tsx +89 -88
  12. package/docs/components/docs/doc-sidebar.tsx +6 -3
  13. package/docs/components/docs/doc-toc.tsx +1 -1
  14. package/docs/components/docs/mobile-nav.tsx +8 -16
  15. package/docs/components/docs/sidebar-scroll-area.tsx +58 -0
  16. package/docs/components/git/repo-picker.tsx +526 -0
  17. package/docs/components/mdx/agent-instructions.tsx +17 -0
  18. package/docs/components/mdx/code-block.tsx +6 -1
  19. package/docs/components/mdx/code-group.tsx +1 -1
  20. package/docs/components/mdx/iframe.tsx +62 -0
  21. package/docs/components/mdx/index.tsx +4 -0
  22. package/docs/components/mdx/tabs.tsx +5 -5
  23. package/docs/components/mdx/video.tsx +45 -12
  24. package/docs/components/third-parties.tsx +29 -0
  25. package/docs/components/ui/badge.tsx +61 -0
  26. package/docs/components/ui/breadcrumb.tsx +61 -41
  27. package/docs/components/ui/button-group.tsx +83 -0
  28. package/docs/components/ui/button.tsx +30 -55
  29. package/docs/components/ui/command.tsx +32 -4
  30. package/docs/components/ui/copy-button.tsx +12 -19
  31. package/docs/components/ui/dialog.tsx +50 -1
  32. package/docs/components/ui/input.tsx +16 -97
  33. package/docs/components/ui/kbd.tsx +98 -0
  34. package/docs/components/ui/morph-icon.tsx +79 -0
  35. package/docs/components/ui/popover.tsx +225 -30
  36. package/docs/components/ui/search.tsx +0 -9
  37. package/docs/components/ui/sheet.tsx +30 -1
  38. package/docs/components/ui/sidebar.tsx +332 -7
  39. package/docs/components/ui/site-footer.tsx +6 -4
  40. package/docs/components/ui/skeleton.tsx +11 -0
  41. package/docs/components/ui/switch.tsx +32 -0
  42. package/docs/components/ui/tabs.tsx +138 -0
  43. package/docs/lib/api-client.ts +72 -0
  44. package/docs/lib/contextual-options.ts +9 -0
  45. package/docs/lib/dashboard-session.ts +167 -0
  46. package/docs/lib/db.ts +13 -0
  47. package/docs/lib/env.ts +4 -3
  48. package/docs/lib/etag.ts +22 -0
  49. package/docs/lib/github-install.ts +33 -0
  50. package/docs/lib/project-authz.ts +46 -0
  51. package/docs/lib/routes.ts +5 -1
  52. package/docs/lib/supabase.ts +30 -6
  53. package/docs/lib/tenancy.ts +1 -0
  54. package/docs/lib/tenant-static.ts +206 -4
  55. package/docs/lib/tenants.ts +5 -1
  56. package/docs/lib/time-ago.ts +24 -0
  57. package/docs/lib/use-tab-observer.ts +71 -0
  58. package/package.json +3 -1
  59. package/packages/@repo/common/package.json +2 -2
  60. package/packages/@repo/contracts/dist/git.d.ts +28 -0
  61. package/packages/@repo/contracts/dist/git.d.ts.map +1 -0
  62. package/packages/@repo/contracts/dist/git.js +24 -0
  63. package/packages/@repo/contracts/dist/index.d.ts +1 -1
  64. package/packages/@repo/contracts/dist/index.d.ts.map +1 -1
  65. package/packages/@repo/contracts/dist/index.js +1 -1
  66. package/packages/@repo/contracts/package.json +2 -2
  67. package/packages/@repo/contracts/src/git.ts +31 -0
  68. package/packages/@repo/contracts/src/index.ts +1 -1
  69. package/packages/@repo/models/dist/docs-config.d.ts +6 -0
  70. package/packages/@repo/models/dist/docs-config.d.ts.map +1 -1
  71. package/packages/@repo/models/dist/docs-config.js +1 -0
  72. package/packages/@repo/models/package.json +2 -2
  73. package/packages/@repo/models/src/docs-config.ts +1 -0
  74. package/packages/@repo/prebuild/package.json +2 -2
  75. package/packages/@repo/previewing/dist/index.d.ts +3 -0
  76. package/packages/@repo/previewing/dist/index.d.ts.map +1 -1
  77. package/packages/@repo/previewing/dist/index.js +48 -0
  78. package/packages/@repo/previewing/package.json +2 -2
  79. package/packages/@repo/previewing/src/index.ts +56 -0
  80. package/packages/@repo/validation/package.json +2 -2
  81. package/packages/@repo/validation/src/blodemd-docs-schema.json +1 -0
  82. package/scripts/prepare-package.mjs +14 -0
  83. package/packages/@repo/contracts/dist/api-key.d.ts +0 -30
  84. package/packages/@repo/contracts/dist/api-key.d.ts.map +0 -1
  85. package/packages/@repo/contracts/dist/api-key.js +0 -20
  86. package/packages/@repo/contracts/src/api-key.ts +0 -27
@@ -12,6 +12,8 @@ export declare const PREBUILT_UTILITY_INDEX_PATH = "_utility-index.json";
12
12
  export declare const PREBUILT_UTILITY_SITEMAP_PATH = "_utility/sitemap.xml";
13
13
  export declare const PREBUILT_UTILITY_LLMS_PATH = "_utility/llms.txt";
14
14
  export declare const PREBUILT_UTILITY_LLMS_FULL_PATH = "_utility/llms-full.txt";
15
+ export declare const PREBUILT_UTILITY_SKILLS_INDEX_PATH = "_utility/skills-index.json";
16
+ export declare const PREBUILT_UTILITY_SKILLS_MD_PREFIX = "_utility/skills/";
15
17
  export declare const UTILITY_DOCS_ROOT_TOKEN = "__BLODEMD_DOCS_ROOT__";
16
18
  export declare const LEGACY_PROJECT_NAME_FALLBACK_WARNING = "docs.json.slug is recommended. Falling back to docs.json.name as the deployment slug is deprecated.";
17
19
  export type SiteConfigResult = {
@@ -82,6 +84,7 @@ export interface UtilityIndex {
82
84
  description?: string;
83
85
  name: string;
84
86
  pages: UtilityPage[];
87
+ slug?: string;
85
88
  }
86
89
  export interface UtilityArtifact {
87
90
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export const PREBUILT_UTILITY_INDEX_PATH = "_utility-index.json";
14
14
  export const PREBUILT_UTILITY_SITEMAP_PATH = "_utility/sitemap.xml";
15
15
  export const PREBUILT_UTILITY_LLMS_PATH = "_utility/llms.txt";
16
16
  export const PREBUILT_UTILITY_LLMS_FULL_PATH = "_utility/llms-full.txt";
17
+ export const PREBUILT_UTILITY_SKILLS_INDEX_PATH = "_utility/skills-index.json";
18
+ export const PREBUILT_UTILITY_SKILLS_MD_PREFIX = "_utility/skills/";
17
19
  export const UTILITY_DOCS_ROOT_TOKEN = "__BLODEMD_DOCS_ROOT__";
18
20
  export const LEGACY_PROJECT_NAME_FALLBACK_WARNING = "docs.json.slug is recommended. Falling back to docs.json.name as the deployment slug is deprecated.";
19
21
  const validModes = new Set(PageModeSchema.options);
@@ -780,6 +782,7 @@ export const buildUtilityIndex = async (index, source, config) => {
780
782
  description: config.description,
781
783
  name: config.name,
782
784
  pages: sortedPages,
785
+ slug: config.slug,
783
786
  };
784
787
  };
785
788
  const toUtilityDocPath = (value) => {
@@ -800,6 +803,7 @@ export const buildUtilityArtifacts = (index) => {
800
803
  index.description ? `> ${index.description}` : null,
801
804
  "",
802
805
  `Sitemap: ${toUtilityTemplatedDocUrl("sitemap.xml")}`,
806
+ `Skills: ${UTILITY_DOCS_ROOT_TOKEN}/.well-known/skills/index.json`,
803
807
  "",
804
808
  "## Docs",
805
809
  ...index.pages.map((page) => {
@@ -816,6 +820,40 @@ ${index.pages
816
820
  const llmsFull = index.pages
817
821
  .map((page) => formatMarkdownPageSection(page.title, toUtilityTemplatedDocUrl(page.slug), page.content))
818
822
  .join("\n\n");
823
+ const skillSlug = index.slug ?? slugify(index.name);
824
+ const skillDescription = `${index.name} documentation. ${index.description ?? ""}`.trim();
825
+ const skillsIndex = JSON.stringify({
826
+ skills: [
827
+ {
828
+ description: skillDescription,
829
+ files: ["SKILL.md"],
830
+ name: skillSlug,
831
+ },
832
+ ],
833
+ }, null, 2);
834
+ const topPages = index.pages.slice(0, 20);
835
+ const skillMdLines = [
836
+ "---",
837
+ `name: ${skillSlug}`,
838
+ `description: ${skillDescription} Use when working with ${index.name}, answering questions about its features, or helping users follow its guides.`,
839
+ "---",
840
+ "",
841
+ `# ${index.name}`,
842
+ "",
843
+ index.description ? `${index.description}\n` : "",
844
+ "## Documentation",
845
+ "",
846
+ `- Full docs index: ${UTILITY_DOCS_ROOT_TOKEN}/llms.txt`,
847
+ `- Complete docs content: ${UTILITY_DOCS_ROOT_TOKEN}/llms-full.txt`,
848
+ "- Append `.md` to any page URL for raw markdown",
849
+ "",
850
+ "## Key Pages",
851
+ "",
852
+ ...topPages.map((page) => {
853
+ const desc = page.description ? ` - ${page.description}` : "";
854
+ return `- [${page.title}](${toUtilityTemplatedDocUrl(page.slug)})${desc}`;
855
+ }),
856
+ ];
819
857
  return [
820
858
  {
821
859
  content: sitemap,
@@ -832,6 +870,16 @@ ${index.pages
832
870
  contentType: "text/plain; charset=utf-8",
833
871
  path: PREBUILT_UTILITY_LLMS_FULL_PATH,
834
872
  },
873
+ {
874
+ content: skillsIndex,
875
+ contentType: "application/json; charset=utf-8",
876
+ path: PREBUILT_UTILITY_SKILLS_INDEX_PATH,
877
+ },
878
+ {
879
+ content: skillMdLines.filter((line) => line !== null).join("\n"),
880
+ contentType: "text/markdown; charset=utf-8",
881
+ path: `${PREBUILT_UTILITY_SKILLS_MD_PREFIX}${skillSlug}/SKILL.md`,
882
+ },
835
883
  ...index.pages.map((page) => ({
836
884
  content: formatMarkdownPage(page.title, page.content),
837
885
  contentType: "text/markdown; charset=utf-8",
@@ -5,12 +5,12 @@
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
- "types": "./src/index.ts",
8
+ "types": "./dist/index.d.ts",
9
9
  "import": "./dist/index.js",
10
10
  "default": "./dist/index.js"
11
11
  },
12
12
  "./*": {
13
- "types": "./src/*.ts",
13
+ "types": "./dist/*.d.ts",
14
14
  "import": "./dist/*.js",
15
15
  "default": "./dist/*.js"
16
16
  }
@@ -39,6 +39,8 @@ export const PREBUILT_UTILITY_INDEX_PATH = "_utility-index.json";
39
39
  export const PREBUILT_UTILITY_SITEMAP_PATH = "_utility/sitemap.xml";
40
40
  export const PREBUILT_UTILITY_LLMS_PATH = "_utility/llms.txt";
41
41
  export const PREBUILT_UTILITY_LLMS_FULL_PATH = "_utility/llms-full.txt";
42
+ export const PREBUILT_UTILITY_SKILLS_INDEX_PATH = "_utility/skills-index.json";
43
+ export const PREBUILT_UTILITY_SKILLS_MD_PREFIX = "_utility/skills/";
42
44
  export const UTILITY_DOCS_ROOT_TOKEN = "__BLODEMD_DOCS_ROOT__";
43
45
  export const LEGACY_PROJECT_NAME_FALLBACK_WARNING =
44
46
  "docs.json.slug is recommended. Falling back to docs.json.name as the deployment slug is deprecated.";
@@ -115,6 +117,7 @@ export interface UtilityIndex {
115
117
  description?: string;
116
118
  name: string;
117
119
  pages: UtilityPage[];
120
+ slug?: string;
118
121
  }
119
122
 
120
123
  export interface UtilityArtifact {
@@ -1223,6 +1226,7 @@ export const buildUtilityIndex = async (
1223
1226
  description: config.description,
1224
1227
  name: config.name,
1225
1228
  pages: sortedPages,
1229
+ slug: config.slug,
1226
1230
  };
1227
1231
  };
1228
1232
 
@@ -1250,6 +1254,7 @@ export const buildUtilityArtifacts = (
1250
1254
  index.description ? `> ${index.description}` : null,
1251
1255
  "",
1252
1256
  `Sitemap: ${toUtilityTemplatedDocUrl("sitemap.xml")}`,
1257
+ `Skills: ${UTILITY_DOCS_ROOT_TOKEN}/.well-known/skills/index.json`,
1253
1258
  "",
1254
1259
  "## Docs",
1255
1260
  ...index.pages.map((page) => {
@@ -1277,6 +1282,47 @@ ${index.pages
1277
1282
  )
1278
1283
  .join("\n\n");
1279
1284
 
1285
+ const skillSlug = index.slug ?? slugify(index.name);
1286
+ const skillDescription =
1287
+ `${index.name} documentation. ${index.description ?? ""}`.trim();
1288
+ const skillsIndex = JSON.stringify(
1289
+ {
1290
+ skills: [
1291
+ {
1292
+ description: skillDescription,
1293
+ files: ["SKILL.md"],
1294
+ name: skillSlug,
1295
+ },
1296
+ ],
1297
+ },
1298
+ null,
1299
+ 2
1300
+ );
1301
+
1302
+ const topPages = index.pages.slice(0, 20);
1303
+ const skillMdLines = [
1304
+ "---",
1305
+ `name: ${skillSlug}`,
1306
+ `description: ${skillDescription} Use when working with ${index.name}, answering questions about its features, or helping users follow its guides.`,
1307
+ "---",
1308
+ "",
1309
+ `# ${index.name}`,
1310
+ "",
1311
+ index.description ? `${index.description}\n` : "",
1312
+ "## Documentation",
1313
+ "",
1314
+ `- Full docs index: ${UTILITY_DOCS_ROOT_TOKEN}/llms.txt`,
1315
+ `- Complete docs content: ${UTILITY_DOCS_ROOT_TOKEN}/llms-full.txt`,
1316
+ "- Append `.md` to any page URL for raw markdown",
1317
+ "",
1318
+ "## Key Pages",
1319
+ "",
1320
+ ...topPages.map((page) => {
1321
+ const desc = page.description ? ` - ${page.description}` : "";
1322
+ return `- [${page.title}](${toUtilityTemplatedDocUrl(page.slug)})${desc}`;
1323
+ }),
1324
+ ];
1325
+
1280
1326
  return [
1281
1327
  {
1282
1328
  content: sitemap,
@@ -1293,6 +1339,16 @@ ${index.pages
1293
1339
  contentType: "text/plain; charset=utf-8",
1294
1340
  path: PREBUILT_UTILITY_LLMS_FULL_PATH,
1295
1341
  },
1342
+ {
1343
+ content: skillsIndex,
1344
+ contentType: "application/json; charset=utf-8",
1345
+ path: PREBUILT_UTILITY_SKILLS_INDEX_PATH,
1346
+ },
1347
+ {
1348
+ content: skillMdLines.filter((line) => line !== null).join("\n"),
1349
+ contentType: "text/markdown; charset=utf-8",
1350
+ path: `${PREBUILT_UTILITY_SKILLS_MD_PREFIX}${skillSlug}/SKILL.md`,
1351
+ },
1296
1352
  ...index.pages.map((page) => ({
1297
1353
  content: formatMarkdownPage(page.title, page.content),
1298
1354
  contentType: "text/markdown; charset=utf-8",
@@ -5,12 +5,12 @@
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
- "types": "./src/index.ts",
8
+ "types": "./dist/index.d.ts",
9
9
  "import": "./dist/index.js",
10
10
  "default": "./dist/index.js"
11
11
  },
12
12
  "./*": {
13
- "types": "./src/*.ts",
13
+ "types": "./dist/*.d.ts",
14
14
  "import": "./dist/*.js",
15
15
  "default": "./dist/*.js"
16
16
  }
@@ -3476,6 +3476,7 @@
3476
3476
  "cursor",
3477
3477
  "devin",
3478
3478
  "devin-mcp",
3479
+ "gemini",
3479
3480
  "grok",
3480
3481
  "mcp",
3481
3482
  "perplexity",
@@ -5,6 +5,8 @@ import { existsSync } from "node:fs";
5
5
  import path from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
 
8
+ import { REPO_PACKAGES } from "./repo-packages.mjs";
9
+
8
10
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
11
  const cliRoot = path.resolve(__dirname, "..");
10
12
  const repoRoot = path.resolve(cliRoot, "../..");
@@ -28,6 +30,18 @@ if (!shouldPackage && !isGlobalInstall) {
28
30
 
29
31
  console.log("Preparing blodemd standalone package...");
30
32
 
33
+ // Build @repo/* workspace packages first so tsdown can inline their dist/
34
+ // output into the CLI bundle. Without this, tsdown falls back to treating
35
+ // `@repo/common` etc. as external imports and the published tarball ships
36
+ // unresolved imports that break `npx blodemd`.
37
+ console.log("Building @repo packages...");
38
+ for (const pkg of REPO_PACKAGES) {
39
+ execSync("npm run build", {
40
+ cwd: path.join(repoRoot, `packages/${pkg}`),
41
+ stdio: "inherit",
42
+ });
43
+ }
44
+
31
45
  execSync("npm run build", {
32
46
  cwd: cliRoot,
33
47
  stdio: "inherit",
@@ -1,30 +0,0 @@
1
- import { z } from "zod";
2
- export declare const ApiKeySchema: z.ZodObject<{
3
- createdAt: z.ZodString;
4
- id: z.ZodString;
5
- lastUsedAt: z.ZodOptional<z.ZodString>;
6
- name: z.ZodString;
7
- prefix: z.ZodString;
8
- projectId: z.ZodString;
9
- revokedAt: z.ZodOptional<z.ZodString>;
10
- }, z.core.$strip>;
11
- export type ApiKey = z.infer<typeof ApiKeySchema>;
12
- export declare const ApiKeyCreateSchema: z.ZodObject<{
13
- name: z.ZodString;
14
- projectId: z.ZodString;
15
- }, z.core.$strip>;
16
- export type ApiKeyCreateInput = z.infer<typeof ApiKeyCreateSchema>;
17
- export declare const ApiKeyCreateResponseSchema: z.ZodObject<{
18
- apiKey: z.ZodObject<{
19
- createdAt: z.ZodString;
20
- id: z.ZodString;
21
- lastUsedAt: z.ZodOptional<z.ZodString>;
22
- name: z.ZodString;
23
- prefix: z.ZodString;
24
- projectId: z.ZodString;
25
- revokedAt: z.ZodOptional<z.ZodString>;
26
- }, z.core.$strip>;
27
- token: z.ZodString;
28
- }, z.core.$strip>;
29
- export type ApiKeyCreateResponse = z.infer<typeof ApiKeyCreateResponseSchema>;
30
- //# sourceMappingURL=api-key.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key.d.ts","sourceRoot":"","sources":["../src/api-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;iBAQvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAGrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- import { z } from "zod";
2
- import { IsoDateSchema } from "./dates.js";
3
- import { IdSchema } from "./ids.js";
4
- export const ApiKeySchema = z.object({
5
- createdAt: IsoDateSchema,
6
- id: IdSchema,
7
- lastUsedAt: IsoDateSchema.optional(),
8
- name: z.string().min(1),
9
- prefix: z.string().min(1),
10
- projectId: IdSchema,
11
- revokedAt: IsoDateSchema.optional(),
12
- });
13
- export const ApiKeyCreateSchema = z.object({
14
- name: z.string().min(1),
15
- projectId: IdSchema,
16
- });
17
- export const ApiKeyCreateResponseSchema = z.object({
18
- apiKey: ApiKeySchema,
19
- token: z.string().min(1),
20
- });
@@ -1,27 +0,0 @@
1
- import { z } from "zod";
2
-
3
- import { IsoDateSchema } from "./dates.js";
4
- import { IdSchema } from "./ids.js";
5
-
6
- export const ApiKeySchema = z.object({
7
- createdAt: IsoDateSchema,
8
- id: IdSchema,
9
- lastUsedAt: IsoDateSchema.optional(),
10
- name: z.string().min(1),
11
- prefix: z.string().min(1),
12
- projectId: IdSchema,
13
- revokedAt: IsoDateSchema.optional(),
14
- });
15
- export type ApiKey = z.infer<typeof ApiKeySchema>;
16
-
17
- export const ApiKeyCreateSchema = z.object({
18
- name: z.string().min(1),
19
- projectId: IdSchema,
20
- });
21
- export type ApiKeyCreateInput = z.infer<typeof ApiKeyCreateSchema>;
22
-
23
- export const ApiKeyCreateResponseSchema = z.object({
24
- apiKey: ApiKeySchema,
25
- token: z.string().min(1),
26
- });
27
- export type ApiKeyCreateResponse = z.infer<typeof ApiKeyCreateResponseSchema>;