kennel 0.2.12 → 0.2.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 (164) hide show
  1. package/dist/cli/src/plugins/external.js +19 -7
  2. package/dist/cli/src/site/server-plugins.d.ts +1 -4
  3. package/dist/core/api-client.js +3 -11
  4. package/dist/core/runtime.js +84 -695
  5. package/dist/package/preview.js +99 -729
  6. package/dist/plugins/external.js +19 -7
  7. package/dist/site/server-plugins.d.ts +1 -4
  8. package/dist/site/server-plugins.js +28 -537
  9. package/kernel/apps/web/package.json +0 -1
  10. package/kernel/apps/web/src/app.css +0 -1
  11. package/kernel/apps/web/src/app.tsx +7 -24
  12. package/kernel/apps/web/src/folder-plugin-view.tsx +6 -3
  13. package/kernel/apps/web/src/plugins.ts +2 -14
  14. package/kernel/apps/web/vite.config.ts +16 -3
  15. package/kernel/packages/api/openapi.json +85 -224
  16. package/kernel/packages/api/package.json +0 -1
  17. package/kernel/packages/api/src/contracts/schemas.ts +1 -9
  18. package/kernel/packages/api/src/server/folder-metadata-plugin.ts +9 -151
  19. package/kernel/packages/api/src/server/plugins.ts +11 -26
  20. package/kernel/packages/api/src/shared/viewer-route.ts +3 -5
  21. package/kernel/packages/api-client/src/generated.d.ts +16 -53
  22. package/kernel/packages/markdown/README.md +2 -2
  23. package/kernel/packages/notes/package.json +1 -0
  24. package/kernel/packages/notes/src/client.tsx +0 -1
  25. package/kernel/packages/notes/src/manifest.ts +7 -0
  26. package/kernel/packages/notes/src/pages/notes-page.tsx +1 -1
  27. package/kernel/packages/notes/src/ui/folder-notes-list.tsx +52 -7
  28. package/kernel/packages/plugins/SKILL.md +3 -2
  29. package/kernel/packages/plugins/package.json +5 -1
  30. package/kernel/packages/plugins/src/hooks.ts +24 -0
  31. package/kernel/packages/plugins/src/index.ts +1 -7
  32. package/kernel/packages/plugins/src/page.ts +0 -7
  33. package/kernel/packages/plugins/src/types.ts +8 -0
  34. package/kernel/packages/plugins/tsconfig.json +1 -1
  35. package/kernel/packages/plugins/tsup.config.ts +1 -0
  36. package/kernel/packages/ui/src/components/folder-activity.tsx +16 -98
  37. package/kernel/packages/ui/src/components/folder-landing.tsx +4 -0
  38. package/kernel/packages/ui/src/components/pagination.tsx +88 -2
  39. package/kernel/packages/ui/src/components/plugin-icon.tsx +19 -0
  40. package/kernel/packages/ui/src/lib/folder-activity.ts +4 -17
  41. package/kernel/packages/ui/src/styles/folder-activity.css +1 -31
  42. package/package.json +2 -2
  43. package/web/assets/{abnfDiagram-VRR7QNED-Brm1vcGG.js → abnfDiagram-VRR7QNED-Dt7QEF5H.js} +1 -1
  44. package/web/assets/app-C1j063QX.js +2 -0
  45. package/web/assets/app-options-98-a6ivv.js +25 -0
  46. package/web/assets/{app-view-header-BSOI-wB6.js → app-view-header-BJ9CWTE1.js} +1 -1
  47. package/web/assets/{arc-zngHsMKV.js → arc-PFB0H7oD.js} +1 -1
  48. package/web/assets/{architectureDiagram-ZJ3FMSHR-BLklLqRP.js → architectureDiagram-ZJ3FMSHR-BHLqEXlZ.js} +1 -1
  49. package/web/assets/{ask-tray-B4SPj-fH.js → ask-tray-C3gBesHJ.js} +1 -1
  50. package/web/assets/{blockDiagram-677ZJIJ3-yhC2fEtu.js → blockDiagram-677ZJIJ3-UbnYoYDg.js} +1 -1
  51. package/web/assets/{c4Diagram-LMCZKHZV-DMcweQme.js → c4Diagram-LMCZKHZV-4OSx1V4W.js} +1 -1
  52. package/web/assets/channel-BuvY5cQN.js +1 -0
  53. package/web/assets/{chunk-2Q5K7J3B-DD-S6n8h.js → chunk-2Q5K7J3B-CgxJ1aJb.js} +1 -1
  54. package/web/assets/{chunk-32BRIVSS-DFIAKRv_.js → chunk-32BRIVSS-Bfwxg2LM.js} +1 -1
  55. package/web/assets/{chunk-5VM5RSS4-B23APb3c.js → chunk-5VM5RSS4-BZN9a2hI.js} +1 -1
  56. package/web/assets/{chunk-EX3LRPZG-BSVEB7db.js → chunk-EX3LRPZG-CrH6hhqq.js} +1 -1
  57. package/web/assets/{chunk-JWPE2WC7-B6qGd0ng.js → chunk-JWPE2WC7-Ddn7ZSp8.js} +1 -1
  58. package/web/assets/{chunk-MOJQB5TN-N4T1-ew1.js → chunk-MOJQB5TN-9lJ7f_hI.js} +1 -1
  59. package/web/assets/{chunk-RYQCIY6F-6oc6i_Xw.js → chunk-RYQCIY6F-QrFo_00s.js} +1 -1
  60. package/web/assets/{chunk-V7JOEXUC-Dftgm9ck.js → chunk-V7JOEXUC-Dn0lQjVf.js} +1 -1
  61. package/web/assets/{chunk-VR4S4FIN-DfjqwEsO.js → chunk-VR4S4FIN-DXVPySkB.js} +1 -1
  62. package/web/assets/{chunk-XXDRQBXY-CsFsQYow.js → chunk-XXDRQBXY-CBiFDOdZ.js} +1 -1
  63. package/web/assets/classDiagram-OUVF2IWQ-DCYNCJhe.js +1 -0
  64. package/web/assets/classDiagram-v2-EOCWNBFH-DCYNCJhe.js +1 -0
  65. package/web/assets/client-DBJY3XDL.js +43 -0
  66. package/web/assets/client-DKJs0w4y.js +6 -0
  67. package/web/assets/{command-D_9V8ejS.js → command-onjTnuXT.js} +1 -1
  68. package/web/assets/{copy-context-CevDWX59.js → copy-context-CciRaLNN.js} +1 -1
  69. package/web/assets/{cose-bilkent-JH36ORCC-DzKsIuDb.js → cose-bilkent-JH36ORCC-CGRic2um.js} +1 -1
  70. package/web/assets/{cynefin-VYW2F7L2-AL45ZHbw.js → cynefin-VYW2F7L2-Blk0Lu0l.js} +1 -1
  71. package/web/assets/{cynefinDiagram-TSTJHNR4-DSbBegxZ.js → cynefinDiagram-TSTJHNR4-DpnnHRDK.js} +1 -1
  72. package/web/assets/{dagre-VKFMJZFB-BaG6MGUE.js → dagre-VKFMJZFB-llzMokKp.js} +1 -1
  73. package/web/assets/{diagram-FQU43EPY-WbDotTX5.js → diagram-FQU43EPY-DC6xHovR.js} +1 -1
  74. package/web/assets/{diagram-G47NLZAW-DMbouYVI.js → diagram-G47NLZAW-B8GVS3EA.js} +1 -1
  75. package/web/assets/{diagram-NH7WQ7WH-DoEuaWd_.js → diagram-NH7WQ7WH-DWUaARfh.js} +1 -1
  76. package/web/assets/{diagram-OA4YK3LP-BjGd-PoH.js → diagram-OA4YK3LP-9Uaes_Yi.js} +1 -1
  77. package/web/assets/{diagram-WEI45ONY-CXHi27jF.js → diagram-WEI45ONY-DPPTBWud.js} +1 -1
  78. package/web/assets/{document-CVJCfWiQ.js → document-D23WzFsW.js} +3 -3
  79. package/web/assets/{ebnfDiagram-CCIWWBDH-B5vMUDOs.js → ebnfDiagram-CCIWWBDH-BPrKneNw.js} +1 -1
  80. package/web/assets/{entities-BTKzWJ-r.js → entities-DPg0B8vd.js} +1 -1
  81. package/web/assets/{erDiagram-Q63AITRT-DhO7ayzF.js → erDiagram-Q63AITRT-CFqYBcnb.js} +1 -1
  82. package/web/assets/{file-viewer-D1HK9J3A.js → file-viewer-Ck73SsLA.js} +1 -1
  83. package/web/assets/{flowDiagram-23GEKE2U-CublTUlC.js → flowDiagram-23GEKE2U-C7RpYqaT.js} +1 -1
  84. package/web/assets/folder-filter-bar-DzejUj87.js +4 -0
  85. package/web/assets/{folder-image-L_AjkRfI.js → folder-image-BjIicmQ6.js} +1 -1
  86. package/web/assets/folder-landing-CCIXZfkp.js +55 -0
  87. package/web/assets/folder-list-TuRwuTss.js +1 -0
  88. package/web/assets/folder-mobile-bar-Bqnfwi-z.js +1 -0
  89. package/web/assets/folder-plugin-view-CrinCX1o.js +2 -0
  90. package/web/assets/{ganttDiagram-NO4QXBWP-BLMJWerM.js → ganttDiagram-NO4QXBWP-Cz2sxU8F.js} +1 -1
  91. package/web/assets/{gitGraphDiagram-IHSO6WYX-Br0E6qyZ.js → gitGraphDiagram-IHSO6WYX-BSuz0yF-.js} +1 -1
  92. package/web/assets/index-DLn_2LPp.js +2 -0
  93. package/web/assets/index-uY9jLiL5.css +1 -0
  94. package/web/assets/{infoDiagram-FWYZ7A6U-Dgz0npJO.js → infoDiagram-FWYZ7A6U-CpeKgqoS.js} +1 -1
  95. package/web/assets/input-Bz_puamS.js +9 -0
  96. package/web/assets/{ishikawaDiagram-FXEZZL3T-rY5pdS3b.js → ishikawaDiagram-FXEZZL3T-5c2Tmknb.js} +1 -1
  97. package/web/assets/{journeyDiagram-5HDEW3XC-CKZALyR6.js → journeyDiagram-5HDEW3XC-Cu-wRkR4.js} +1 -1
  98. package/web/assets/{kanban-definition-HUTT4EX6-EGPY9Vda.js → kanban-definition-HUTT4EX6-BunSqkPe.js} +1 -1
  99. package/web/assets/{linear-DkJW9OwI.js → linear-C8e8bGVv.js} +1 -1
  100. package/web/assets/{mermaid.core-DVEpXYiF.js → mermaid.core-DLgjY1g2.js} +4 -4
  101. package/web/assets/{metadata-Bu_ffLUd.js → metadata-DEfJKlnd.js} +1 -1
  102. package/web/assets/{mindmap-definition-LN4V7U3C-BEOUVnDN.js → mindmap-definition-LN4V7U3C-W9ENYFOD.js} +1 -1
  103. package/web/assets/{pegDiagram-2B236MQR-DThjl3eK.js → pegDiagram-2B236MQR-0vPlHCFp.js} +1 -1
  104. package/web/assets/{pieDiagram-ENE6RG2P-DzmoGgw2.js → pieDiagram-ENE6RG2P-CakaveRV.js} +1 -1
  105. package/web/assets/{project-search-dialog-e2Jmhvfq.js → project-search-dialog-BSKA4peX.js} +1 -1
  106. package/web/assets/{quadrantDiagram-ABIIQ3AL-BqT8U3FS.js → quadrantDiagram-ABIIQ3AL-jxHw_egj.js} +1 -1
  107. package/web/assets/{railroadDiagram-RFXS5EU6-1k1tfPk1.js → railroadDiagram-RFXS5EU6-lIjDXPZt.js} +1 -1
  108. package/web/assets/{requirementDiagram-TGXJPOKE-bM4RTd2J.js → requirementDiagram-TGXJPOKE-C-JiT4bc.js} +1 -1
  109. package/web/assets/{sankeyDiagram-HTMAVEWB-TCgfqDLy.js → sankeyDiagram-HTMAVEWB-SuLPAw9X.js} +1 -1
  110. package/web/assets/{search-DQiFH2up.js → search-CKujW14f.js} +1 -1
  111. package/web/assets/{selection-popup-bqfgVd-L.js → selection-popup-CtxT9SWn.js} +3 -3
  112. package/web/assets/{sequenceDiagram-DBY2YBRQ-BRhGHI0i.js → sequenceDiagram-DBY2YBRQ-o9UwTkZR.js} +1 -1
  113. package/web/assets/{sizeCapture-X5ZJPWSS-EeUWgn0N.js → sizeCapture-X5ZJPWSS-ClbWGybF.js} +1 -1
  114. package/web/assets/{stateDiagram-2N3HPSRC-BSOG758d.js → stateDiagram-2N3HPSRC-Ce4avoWx.js} +1 -1
  115. package/web/assets/stateDiagram-v2-6OUMAXLB-CsrPTZoJ.js +1 -0
  116. package/web/assets/{swimlanes-5IMT3BWC-DpCo4aEm.js → swimlanes-5IMT3BWC-DMZI4XZT.js} +2 -2
  117. package/web/assets/swimlanesDiagram-G3AALYLV-pShSVcTd.js +8 -0
  118. package/web/assets/{timeline-definition-FHXFAJF6-BpaObe6u.js → timeline-definition-FHXFAJF6-CPIpIgPN.js} +1 -1
  119. package/web/assets/{vennDiagram-L72KCM5P-ClvUzW8B.js → vennDiagram-L72KCM5P-_rha8uDZ.js} +1 -1
  120. package/web/assets/view-context-BDtIUHQy.js +229 -0
  121. package/web/assets/{viewer-capabilities-CFBwvpcI.js → viewer-capabilities-YYZqMs56.js} +1 -1
  122. package/web/assets/{wardleyDiagram-EHGQE667-Dg1CX0Fl.js → wardleyDiagram-EHGQE667-D4EAOS35.js} +1 -1
  123. package/web/assets/{xychartDiagram-FW5EYKEG-C0c9zQTr.js → xychartDiagram-FW5EYKEG-DR8PwXpe.js} +1 -1
  124. package/web/index.html +2 -2
  125. package/kernel/packages/agents/eslint.config.js +0 -10
  126. package/kernel/packages/agents/package.json +0 -75
  127. package/kernel/packages/agents/src/agent-card.tsx +0 -334
  128. package/kernel/packages/agents/src/client.tsx +0 -13
  129. package/kernel/packages/agents/src/index.ts +0 -18
  130. package/kernel/packages/agents/src/manifest.ts +0 -7
  131. package/kernel/packages/agents/src/node.ts +0 -447
  132. package/kernel/packages/agents/src/profiles.ts +0 -137
  133. package/kernel/packages/agents/src/resolve.ts +0 -69
  134. package/kernel/packages/agents/src/server.ts +0 -60
  135. package/kernel/packages/agents/src/types.ts +0 -82
  136. package/kernel/packages/agents/src/viewer.tsx +0 -370
  137. package/kernel/packages/agents/test/profiles.test.mjs +0 -88
  138. package/kernel/packages/agents/test/resolve.test.mjs +0 -729
  139. package/kernel/packages/agents/tsconfig.json +0 -17
  140. package/kernel/packages/api/test/agents-loading.test.ts +0 -94
  141. package/kernel/packages/ui/src/components/folder-skill-list.tsx +0 -62
  142. package/web/assets/app-Debw-lUT.js +0 -2
  143. package/web/assets/app-options-UU_JlJQv.js +0 -25
  144. package/web/assets/channel-BgYLn5Cm.js +0 -1
  145. package/web/assets/classDiagram-OUVF2IWQ-Fzhmfbkt.js +0 -1
  146. package/web/assets/classDiagram-v2-EOCWNBFH-Fzhmfbkt.js +0 -1
  147. package/web/assets/client-C1WdY7jQ.js +0 -22
  148. package/web/assets/client-D__L4Hl0.js +0 -17
  149. package/web/assets/client-DoMhF9Tv.js +0 -5
  150. package/web/assets/folder-filter-bar-BHz7s9Vb.js +0 -4
  151. package/web/assets/folder-landing-Byh8W67L.js +0 -54
  152. package/web/assets/folder-list-jMyo-7pV.js +0 -1
  153. package/web/assets/folder-metadata-bCocvxpP.js +0 -2
  154. package/web/assets/folder-mobile-bar-DvvyOS-a.js +0 -1
  155. package/web/assets/folder-plugin-view-sib0Dwfw.js +0 -3
  156. package/web/assets/index-4Xh9UKim.js +0 -1
  157. package/web/assets/index-Bu75S2qS.js +0 -1
  158. package/web/assets/index-CPcMcCUY.js +0 -2
  159. package/web/assets/index-CXxkvzNJ.css +0 -1
  160. package/web/assets/select-CkOwL81C.js +0 -30
  161. package/web/assets/stateDiagram-v2-6OUMAXLB-DUeGDz1r.js +0 -1
  162. package/web/assets/swimlanesDiagram-G3AALYLV-BGOaCfyV.js +0 -8
  163. package/web/assets/use-folder-filter-hA6fa7nm.js +0 -1
  164. package/web/assets/view-context-CVvDw2JM.js +0 -229
@@ -16,10 +16,11 @@ import { spawnSync } from "node:child_process";
16
16
  import { z } from "zod";
17
17
  const CONFIG_FILE = join("kennel", "config.json");
18
18
  const VALID_ID = /^[a-z][a-z0-9-]*$/u;
19
- const CORE_IDS = new Set(["agents", "notes"]);
19
+ const iconSchema = z.object({ paths: z.array(z.string().trim().min(1)).min(1) });
20
+ const CORE_IDS = new Set(["notes"]);
20
21
  const KENNEL_KERNEL_SCHEMA = 2;
21
22
  const BUILD_RUNTIME = `node-${process.versions.node}`;
22
- const BUILD_IDENTITY = "kennel-external-kernel-v3";
23
+ const BUILD_IDENTITY = "kennel-external-kernel-v6-plugin-navigation";
23
24
  function xdgConfigHome() {
24
25
  return process.env.XDG_CONFIG_HOME?.trim() || join(homedir(), ".config");
25
26
  }
@@ -204,7 +205,6 @@ function kernelSourceRoot() {
204
205
  function internalSourceAliases(root = kernelSourceRoot()) {
205
206
  const aliases = {};
206
207
  for (const [name, path] of Object.entries({
207
- "@raggle-ai/agents": "packages/agents/src",
208
208
  "kennel-plugins": "packages/plugins/src",
209
209
  "@raggle-ai/kennel-api": "packages/api/src",
210
210
  "@raggle-ai/markdown": "packages/markdown/src",
@@ -239,7 +239,7 @@ function resolveAliasPath(target, suffix) {
239
239
  }
240
240
  function esbuildAliasPlugin(root = kernelSourceRoot()) {
241
241
  const sourceAliases = internalSourceAliases(root);
242
- const hostPackages = ["@raggle-ai/barkdown", "@raggle-ai/scout-ui", "@tanstack/react-query", "@tanstack/react-router", "date-fns", "effect", "lucide-react", "react", "react-dom", "react/jsx-runtime", "yaml", "lexical"];
242
+ const hostPackages = ["@raggle-ai/barkdown", "@raggle-ai/scout-ui", "@tanstack/react-query", "@tanstack/react-router", "date-fns", "effect", "lucide-react", "react", "react-dom", "react/jsx-runtime", "yaml", "lexical", "class-variance-authority", "clsx", "radix-ui", "sonner", "tailwind-merge"];
243
243
  return {
244
244
  name: "kennel-host-resolution",
245
245
  setup(build) {
@@ -283,6 +283,8 @@ function assertManifest(value, id, label) {
283
283
  throw new Error(`${label} is not an object`);
284
284
  if (value.id !== id)
285
285
  throw new Error(`${label} id mismatch`);
286
+ if (value.icon !== undefined && !iconSchema.safeParse(value.icon).success)
287
+ throw new Error(`${label} icon must contain a non-empty array of SVG paths`);
286
288
  if (typeof value.label !== "string" || !value.label.trim())
287
289
  throw new Error(`${label} missing label`);
288
290
  }
@@ -500,10 +502,14 @@ export async function prepareExternalPluginModules(temp, target = temp, plugins
500
502
  const clientModule = join(temp, "external-plugins.tsx");
501
503
  const serverDir = join(temp, "server");
502
504
  mkdirSync(serverDir, { recursive: true });
503
- const cssImports = plugins.map((plugin) => plugin.entries.css ? `import ${JSON.stringify(plugin.entries.css)};` : "").filter(Boolean).join("\n");
504
505
  const clientImports = plugins.map((plugin, index) => `import { ${plugin.entries.manifestSymbol} as manifest${index} } from ${JSON.stringify(plugin.entries.manifest)};`).join("\n");
505
- const clientItems = plugins.map((plugin, index) => ` { ...manifest${index}, component: lazy(async () => ({ default: (await import(${JSON.stringify(plugin.entries.client)}))[${JSON.stringify(plugin.entries.clientSymbol)}].component })) }`).join(",\n");
506
- await writeFile(clientModule, `import { lazy } from "react";\nimport type { FolderPluginClient } from "kennel-plugins/client";\n${cssImports}\n${clientImports}\nexport const externalFolderPlugins: FolderPluginClient[] = [\n${clientItems}\n];\n`);
506
+ const clientItems = plugins.map((plugin, index) => {
507
+ const stylesheet = plugin.entries.css
508
+ ? `await import(${JSON.stringify(plugin.entries.css)}); `
509
+ : "";
510
+ return ` { ...manifest${index}, component: lazy(async () => { ${stylesheet}const module = await import(${JSON.stringify(plugin.entries.client)}); return { default: module[${JSON.stringify(plugin.entries.clientSymbol)}].component }; }) }`;
511
+ }).join(",\n");
512
+ await writeFile(clientModule, `import { lazy } from "react";\nimport type { FolderPluginClient } from "kennel-plugins/client";\n${clientImports}\nexport const externalFolderPlugins: FolderPluginClient[] = [\n${clientItems}\n];\n`);
507
513
  const serverEntries = [];
508
514
  const apiEntries = [];
509
515
  for (const plugin of plugins) {
@@ -525,6 +531,8 @@ async function buildKernelTemp(temp, target, key, plugins) {
525
531
  const previousClientModule = process.env.KENNEL_EXTERNAL_CLIENT_MODULE;
526
532
  const previousSourceRoot = process.env.KENNEL_KERNEL_SOURCE_ROOT;
527
533
  const previousHostNodeModules = process.env.KENNEL_HOST_NODE_MODULES;
534
+ const previousSourceRoots = process.env.KENNEL_EXTERNAL_SOURCE_ROOTS;
535
+ process.env.KENNEL_EXTERNAL_SOURCE_ROOTS = JSON.stringify([...new Set(plugins.map((plugin) => dirname(plugin.entries.client)))]);
528
536
  process.env.KENNEL_EXTERNAL_CLIENT_MODULE = clientModule;
529
537
  process.env.KENNEL_KERNEL_SOURCE_ROOT = sourceRoot;
530
538
  process.env.KENNEL_HOST_NODE_MODULES = resolve(cliRoot(), "node_modules");
@@ -550,6 +558,10 @@ async function buildKernelTemp(temp, target, key, plugins) {
550
558
  delete process.env.KENNEL_HOST_NODE_MODULES;
551
559
  else
552
560
  process.env.KENNEL_HOST_NODE_MODULES = previousHostNodeModules;
561
+ if (previousSourceRoots === undefined)
562
+ delete process.env.KENNEL_EXTERNAL_SOURCE_ROOTS;
563
+ else
564
+ process.env.KENNEL_EXTERNAL_SOURCE_ROOTS = previousSourceRoots;
553
565
  }
554
566
  const kernel = {
555
567
  buildIdentity: BUILD_IDENTITY,
@@ -18,9 +18,7 @@ export type { FolderPluginContext, FolderPluginData, FolderPluginDetection, Fold
18
18
  export declare class FolderPluginFailure extends Error {
19
19
  constructor(message: string);
20
20
  }
21
- export declare function folderServerRegistry(options?: {
22
- agentsHomeDir?: string;
23
- }): Map<string, FolderPluginServer>;
21
+ export declare function folderServerRegistry(): Map<string, FolderPluginServer>;
24
22
  export type FolderPluginScaffoldFile = {
25
23
  plugin: string;
26
24
  path: string;
@@ -45,5 +43,4 @@ export type FolderPluginScaffoldResult = {
45
43
  export declare function scaffoldFolderPlugins(folder: string, options?: {
46
44
  force?: boolean;
47
45
  write?: boolean;
48
- agentsHomeDir?: string;
49
46
  }): Promise<FolderPluginScaffoldResult>;
@@ -5063,13 +5063,6 @@ var project = object({
5063
5063
  relativePath: string2(),
5064
5064
  worktree: string2()
5065
5065
  });
5066
- var skill = object({
5067
- description: string2().optional(),
5068
- name: string2(),
5069
- openHref: string2().optional(),
5070
- relativePath: string2(),
5071
- source: _enum(["global", "local"])
5072
- });
5073
5066
  var session = object({
5074
5067
  client: _enum(["claude", "codex", "cursor", "opencode", "pi"]),
5075
5068
  href: string2().optional(),
@@ -5097,6 +5090,7 @@ var workspace = object({
5097
5090
  var plugin = object({
5098
5091
  count: number2().optional(),
5099
5092
  error: string2().optional(),
5093
+ icon: object({ paths: array(string2().min(1)).min(1) }).optional(),
5100
5094
  id: string2(),
5101
5095
  label: string2()
5102
5096
  });
@@ -5114,7 +5108,6 @@ var folderMetadataSchema = object({
5114
5108
  plugins: plugins.optional(),
5115
5109
  projects: items(project),
5116
5110
  sessions: items(session),
5117
- skills: items(skill).optional(),
5118
5111
  workspace: workspace.optional()
5119
5112
  });
5120
5113
  var collection = coreCollectionSchema;
@@ -5138,7 +5131,6 @@ var metadataSchemas = {
5138
5131
  configWarnings: array(string2()).optional(),
5139
5132
  plugins: plugins.optional()
5140
5133
  }),
5141
- skills: object({ ...folder, skills: items(skill) }),
5142
5134
  sessions: folderMetadataSchema,
5143
5135
  calendar: folderMetadataSchema,
5144
5136
  schema: folderMetadataSchema
@@ -5318,7 +5310,7 @@ function url(value) {
5318
5310
  function tabSection(tab) {
5319
5311
  if (tab === "files")
5320
5312
  return "notes";
5321
- if (tab === "projects" || tab === "sessions" || tab === "skills")
5313
+ if (tab === "projects" || tab === "sessions")
5322
5314
  return tab;
5323
5315
  return;
5324
5316
  }
@@ -5369,7 +5361,7 @@ function parseViewerRoute(value) {
5369
5361
  }
5370
5362
  };
5371
5363
  }
5372
- if (section === "notes" || section === "projects" || section === "sessions" || section === "skills") {
5364
+ if (section === "notes" || section === "projects" || section === "sessions") {
5373
5365
  return { ...route, section };
5374
5366
  }
5375
5367
  if (section === "document" && parts[3]) {