kennel 0.2.44 → 0.2.46

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 (88) hide show
  1. package/dist/core/api-client.d.ts +1 -1
  2. package/dist/core/api-client.js +69 -3
  3. package/dist/core/runtime.js +649 -140
  4. package/dist/llm/worker.js +11 -2
  5. package/dist/notes/command.js +20 -4
  6. package/dist/package/preview.d.ts +1 -1
  7. package/dist/package/preview.js +881 -540
  8. package/dist/site/hot-viewer.js +4 -4
  9. package/dist/site/server-plugins.js +468 -30
  10. package/dist/site/viewer.d.ts +0 -3
  11. package/dist/site/viewer.js +11 -41
  12. package/dist/tui/launcher.d.ts +11 -0
  13. package/dist/{site/terminal.js → tui/launcher.js} +60 -15
  14. package/package.json +2 -2
  15. package/web/assets/{abnfDiagram-VRR7QNED-ooA_TyhC.js → abnfDiagram-VRR7QNED-BOm3iBSE.js} +1 -1
  16. package/web/assets/{arc-DqQkY48J.js → arc-D_zfnjJW.js} +1 -1
  17. package/web/assets/{architectureDiagram-ZJ3FMSHR-DaXzRGP0.js → architectureDiagram-ZJ3FMSHR-CTXAbDtC.js} +1 -1
  18. package/web/assets/ask-tray-CT6DQRTC-DfTc3bnC.js +1 -0
  19. package/web/assets/{blockDiagram-677ZJIJ3-Br5Y_dbP.js → blockDiagram-677ZJIJ3-CcPWOAKO.js} +1 -1
  20. package/web/assets/{c4Diagram-LMCZKHZV-CWIy0S0N.js → c4Diagram-LMCZKHZV-B_eNO2-f.js} +1 -1
  21. package/web/assets/channel-Dlb_u_Yk.js +1 -0
  22. package/web/assets/{chunk-2Q5K7J3B-8dxcuNwr.js → chunk-2Q5K7J3B-BtQX_f5i.js} +1 -1
  23. package/web/assets/{chunk-32BRIVSS-DB27hz0Y.js → chunk-32BRIVSS-BBtfsm8_.js} +1 -1
  24. package/web/assets/{chunk-5VM5RSS4-CTNxGtbA.js → chunk-5VM5RSS4-CG0bf9ML.js} +1 -1
  25. package/web/assets/{chunk-EX3LRPZG-oKNLktOC.js → chunk-EX3LRPZG-DS2H7ilP.js} +1 -1
  26. package/web/assets/{chunk-JWPE2WC7-DeQNmWoS.js → chunk-JWPE2WC7-CGLMMKkr.js} +1 -1
  27. package/web/assets/{chunk-MOJQB5TN-BrW33Mrb.js → chunk-MOJQB5TN-C76lqDkU.js} +1 -1
  28. package/web/assets/{chunk-RYQCIY6F-DEkTU6j-.js → chunk-RYQCIY6F-ZY-EzC5l.js} +1 -1
  29. package/web/assets/{chunk-V7JOEXUC-BuDLgwdB.js → chunk-V7JOEXUC-sBv90hIh.js} +1 -1
  30. package/web/assets/{chunk-VR4S4FIN-BsNgrrKe.js → chunk-VR4S4FIN-jW9aFTp3.js} +1 -1
  31. package/web/assets/{chunk-XXDRQBXY-DjT1Bydl.js → chunk-XXDRQBXY-FPtE6zce.js} +1 -1
  32. package/web/assets/classDiagram-OUVF2IWQ-CinFzRGQ.js +1 -0
  33. package/web/assets/classDiagram-v2-EOCWNBFH-CinFzRGQ.js +1 -0
  34. package/web/assets/client-5Q4VI7ZT-DYH5SwVp.js +52 -0
  35. package/web/assets/{cose-bilkent-JH36ORCC-BtAklxrd.js → cose-bilkent-JH36ORCC-NdJGLzeJ.js} +1 -1
  36. package/web/assets/{cynefin-VYW2F7L2-DabtZWZy.js → cynefin-VYW2F7L2-D-o_obcW.js} +1 -1
  37. package/web/assets/{cynefinDiagram-TSTJHNR4-DVk8uQ8L.js → cynefinDiagram-TSTJHNR4-RA4QYrtB.js} +1 -1
  38. package/web/assets/{dagre-VKFMJZFB-CiAbBCor.js → dagre-VKFMJZFB-Bq4DfO16.js} +1 -1
  39. package/web/assets/{diagram-FQU43EPY-DWp-OzJz.js → diagram-FQU43EPY-bPnACaba.js} +1 -1
  40. package/web/assets/{diagram-G47NLZAW-YDllS_1P.js → diagram-G47NLZAW-cPca5hvp.js} +1 -1
  41. package/web/assets/{diagram-NH7WQ7WH-BH3l4yRj.js → diagram-NH7WQ7WH-DHyP34H8.js} +1 -1
  42. package/web/assets/{diagram-OA4YK3LP-CszBvxdr.js → diagram-OA4YK3LP-hVk7mHu1.js} +1 -1
  43. package/web/assets/{diagram-WEI45ONY-bEhZeER6.js → diagram-WEI45ONY-Cd3AEJO3.js} +1 -1
  44. package/web/assets/document-view-VX2ZTQM5-CDdtofzz.js +24 -0
  45. package/web/assets/{ebnfDiagram-CCIWWBDH-DlpoUUO5.js → ebnfDiagram-CCIWWBDH-BxtDx2MR.js} +1 -1
  46. package/web/assets/{entity-search-page-YP4SPMBC-WryWZNPk.js → entity-search-page-RIYQYIJJ-IvZzjXvt.js} +5 -5
  47. package/web/assets/{erDiagram-Q63AITRT-DROgehIM.js → erDiagram-Q63AITRT-CtdOkrpo.js} +1 -1
  48. package/web/assets/{flowDiagram-23GEKE2U-63pYiBzl.js → flowDiagram-23GEKE2U-BDHfaJo6.js} +1 -1
  49. package/web/assets/{ganttDiagram-NO4QXBWP-tc34wKHJ.js → ganttDiagram-NO4QXBWP-BhV7JFJA.js} +1 -1
  50. package/web/assets/{gitGraphDiagram-IHSO6WYX-GOjqt583.js → gitGraphDiagram-IHSO6WYX-BVRBRDVk.js} +1 -1
  51. package/web/assets/index-BxCXNDe6.css +1 -0
  52. package/web/assets/index-Cl-kcrk3.js +502 -0
  53. package/web/assets/{infoDiagram-FWYZ7A6U-CD5BwkLQ.js → infoDiagram-FWYZ7A6U-BKuFQe6t.js} +1 -1
  54. package/web/assets/{ishikawaDiagram-FXEZZL3T-yIweY6wR.js → ishikawaDiagram-FXEZZL3T-lNbhlHEo.js} +1 -1
  55. package/web/assets/{journeyDiagram-5HDEW3XC-D3MeUGvn.js → journeyDiagram-5HDEW3XC-CoGf_pSm.js} +1 -1
  56. package/web/assets/{kanban-definition-HUTT4EX6-CnZ5N79y.js → kanban-definition-HUTT4EX6-Cgp0WGrq.js} +1 -1
  57. package/web/assets/{linear-s5G6iOMz.js → linear-B3UMk7TK.js} +1 -1
  58. package/web/assets/{linked-session-header-DOEX4FYM-CtTOXcZn.js → linked-session-header-7BUTWROP-Coqn-Dz0.js} +1 -1
  59. package/web/assets/{mermaid.core-BpUKp9r_.js → mermaid.core-6bZ5bkAq.js} +4 -4
  60. package/web/assets/{mindmap-definition-LN4V7U3C-Bp2QH5sN.js → mindmap-definition-LN4V7U3C-BowQNgIG.js} +1 -1
  61. package/web/assets/{pegDiagram-2B236MQR-lx1jDUmt.js → pegDiagram-2B236MQR-DrhWFvfI.js} +1 -1
  62. package/web/assets/{pieDiagram-ENE6RG2P--kf2YNbw.js → pieDiagram-ENE6RG2P-DNOg53mu.js} +1 -1
  63. package/web/assets/{plugin-host-modules-BKbxlu7U.js → plugin-host-modules-NvyHieUX.js} +26 -26
  64. package/web/assets/{project-search-page-TZG7AZBQ-3W40ayYn.js → project-search-page-O6YRLDGU-CFA4lf0c.js} +2 -2
  65. package/web/assets/{quadrantDiagram-ABIIQ3AL-Vr7zWQYV.js → quadrantDiagram-ABIIQ3AL-BOJ4UGbk.js} +1 -1
  66. package/web/assets/{railroadDiagram-RFXS5EU6-CqWD8KUC.js → railroadDiagram-RFXS5EU6-_UJ9_AEC.js} +1 -1
  67. package/web/assets/{requirementDiagram-TGXJPOKE-BHUBdOVh.js → requirementDiagram-TGXJPOKE-BFa61FSa.js} +1 -1
  68. package/web/assets/{sankeyDiagram-HTMAVEWB-Cw_ZddWI.js → sankeyDiagram-HTMAVEWB-V1J9w6jl.js} +1 -1
  69. package/web/assets/{selection-popup-ABYH3A27-Gc-RFSWj.js → selection-popup-ZX4VUZ3A-Duh9LSP2.js} +4 -4
  70. package/web/assets/{sequenceDiagram-DBY2YBRQ-CyCbkAfM.js → sequenceDiagram-DBY2YBRQ-xdS7JpTx.js} +1 -1
  71. package/web/assets/{sizeCapture-X5ZJPWSS-BG6RM8rb.js → sizeCapture-X5ZJPWSS-DBULLaws.js} +1 -1
  72. package/web/assets/{stateDiagram-2N3HPSRC-DKpZl5UU.js → stateDiagram-2N3HPSRC-DfBpQAQb.js} +1 -1
  73. package/web/assets/{stateDiagram-v2-6OUMAXLB-DHUy-0iS.js → stateDiagram-v2-6OUMAXLB-C-dC_PIX.js} +1 -1
  74. package/web/assets/{swimlanes-5IMT3BWC-D14uyHMH.js → swimlanes-5IMT3BWC-L-RTYuhP.js} +2 -2
  75. package/web/assets/swimlanesDiagram-G3AALYLV-BErklojq.js +8 -0
  76. package/web/assets/{timeline-definition-FHXFAJF6-f4WPhEXS.js → timeline-definition-FHXFAJF6-CAEbvdzk.js} +1 -1
  77. package/web/assets/{vennDiagram-L72KCM5P-lr4A8guw.js → vennDiagram-L72KCM5P-J10bFP8c.js} +1 -1
  78. package/web/assets/{wardleyDiagram-EHGQE667-CR-Im585.js → wardleyDiagram-EHGQE667-Bm0goK-9.js} +1 -1
  79. package/web/assets/{xychartDiagram-FW5EYKEG-DeNQfP7k.js → xychartDiagram-FW5EYKEG-BAH4TTVb.js} +1 -1
  80. package/web/index.html +2 -2
  81. package/dist/site/terminal.d.ts +0 -14
  82. package/web/assets/ask-tray-KUTWZ4MV-Ckn1y1Zw.js +0 -24
  83. package/web/assets/channel-BQxXBpeY.js +0 -1
  84. package/web/assets/classDiagram-OUVF2IWQ-BT1TSwZs.js +0 -1
  85. package/web/assets/classDiagram-v2-EOCWNBFH-BT1TSwZs.js +0 -1
  86. package/web/assets/index-Di6pguZz.css +0 -1
  87. package/web/assets/index-qmu99cjp.js +0 -493
  88. package/web/assets/swimlanesDiagram-G3AALYLV-C5riej52.js +0 -8
@@ -1,5 +1,6 @@
1
1
  /** Replaced at build time by the Node bundle of packages/api-client/src/index.ts. */
2
2
  import type { operations } from '../../../api-client/src/generated.js';
3
+ export { folderUrl } from "kennel-api/shared/viewer-route";
3
4
  type JsonResponse<K extends 'health' | 'documents'> = operations[K]['responses'][200]['content']['application/json'];
4
5
  type RequestOptions = {
5
6
  signal?: AbortSignal;
@@ -10,4 +11,3 @@ export declare function createKennelClient(options: {
10
11
  health(options?: RequestOptions): Promise<JsonResponse<'health'>>;
11
12
  documents(href: string, options?: RequestOptions): Promise<JsonResponse<'documents'>>;
12
13
  };
13
- export {};
@@ -5094,6 +5094,7 @@ var plugin = object({
5094
5094
  icon: object({ paths: array(string2().min(1)).min(1) }).optional(),
5095
5095
  id: string2(),
5096
5096
  label: string2(),
5097
+ pages: array(object({ id: string2(), label: string2() })).optional(),
5097
5098
  subpath: string2().optional()
5098
5099
  });
5099
5100
  var plugins = object({
@@ -5150,6 +5151,10 @@ var metadataQuerySchema = object({
5150
5151
  sort: _enum(["alpha", "recent"]).optional(),
5151
5152
  schema: string2().optional()
5152
5153
  });
5154
+ var deleteNoteSchema = object({
5155
+ folder: string2(),
5156
+ path: string2()
5157
+ });
5153
5158
  var documentEditSchema = object({
5154
5159
  folder: string2(),
5155
5160
  path: string2(),
@@ -5209,7 +5214,11 @@ var routes = {
5209
5214
  path: "/api/health",
5210
5215
  method: "get",
5211
5216
  query: emptyQuery,
5212
- response: object({ viewer: string2(), root: string2(), kernelKey: string2() })
5217
+ response: object({
5218
+ viewer: string2(),
5219
+ root: string2(),
5220
+ kernelKey: string2()
5221
+ })
5213
5222
  },
5214
5223
  capabilities: {
5215
5224
  path: "/api/capabilities",
@@ -5297,9 +5306,25 @@ var routes = {
5297
5306
  path: "/api/open-path",
5298
5307
  method: "get",
5299
5308
  query: object({ path: string2() })
5309
+ },
5310
+ deleteNote: {
5311
+ path: "/api/delete-note",
5312
+ method: "post",
5313
+ query: emptyQuery,
5314
+ body: deleteNoteSchema,
5315
+ response: object({ deleted: literal(true) })
5300
5316
  }
5301
5317
  };
5302
5318
 
5319
+ // packages/plugins/src/client.ts
5320
+ function folderPathId(path) {
5321
+ const bytes = new TextEncoder().encode(path);
5322
+ let binary = "";
5323
+ for (const byte of bytes)
5324
+ binary += String.fromCharCode(byte);
5325
+ return btoa(binary).replaceAll("+", "-").replaceAll("/", "_").replaceAll("=", "");
5326
+ }
5327
+
5303
5328
  // packages/api/src/shared/viewer-route.ts
5304
5329
  function decodeBase64Url(value) {
5305
5330
  const padded = `${value}${"=".repeat((4 - value.length % 4) % 4)}`;
@@ -5320,9 +5345,31 @@ function tabSection(tab) {
5320
5345
  return tab;
5321
5346
  return;
5322
5347
  }
5348
+ function folderPathId2(path) {
5349
+ return folderPathId(path);
5350
+ }
5323
5351
  function decodeFolderPathId(id) {
5324
5352
  return decodeBase64Url(id);
5325
5353
  }
5354
+ function folderHomeHref(folder) {
5355
+ return `/folder/${folderPathId2(folder)}`;
5356
+ }
5357
+ function folderPluginHref(folder, pluginId, subpath = "") {
5358
+ const base = `/folder/${folderPathId2(folder)}/views/${encodeURIComponent(pluginId)}`;
5359
+ return subpath ? `${base}/${encodeURIComponent(subpath)}` : base;
5360
+ }
5361
+ function folderUrl(base, folder, options = {}) {
5362
+ const current = new URL(base);
5363
+ current.pathname = options.view ? folderPluginHref(folder, options.view.pluginId, options.view.subpath) : options.document ? folderDocumentHref(folder, options.document) : folderHomeHref(folder);
5364
+ current.searchParams.delete("folder");
5365
+ if (options.document && options.watch && !options.view) {
5366
+ current.searchParams.set("watch", "1");
5367
+ }
5368
+ return current;
5369
+ }
5370
+ function folderDocumentHref(folder, document) {
5371
+ return `/folder/${folderPathId2(folder)}/document/${folderPathId2(document)}`;
5372
+ }
5326
5373
  function parseViewerRoute(value) {
5327
5374
  const current = url(value);
5328
5375
  const session = current.searchParams.get("session") ?? undefined;
@@ -5362,7 +5409,7 @@ function parseViewerRoute(value) {
5362
5409
  return {
5363
5410
  ...route,
5364
5411
  view: {
5365
- pluginId: parts[3],
5412
+ pluginId: decodeURIComponent(parts[3]),
5366
5413
  ...parts[4] ? { subpath: parts[4] } : {}
5367
5414
  }
5368
5415
  };
@@ -5373,7 +5420,7 @@ function parseViewerRoute(value) {
5373
5420
  if (section === "document" && parts[3]) {
5374
5421
  return { ...route, document: decodeFolderPathId(parts[3]) };
5375
5422
  }
5376
- return { ...route, section: "notes" };
5423
+ return route;
5377
5424
  }
5378
5425
 
5379
5426
  // packages/api-client/src/errors.ts
@@ -5489,6 +5536,16 @@ function createKennelClient(options = {}) {
5489
5536
  parseAs: "text"
5490
5537
  });
5491
5538
  },
5539
+ async deleteNote(body, input = {}) {
5540
+ const response = await (options.fetch ?? globalThis.fetch)(new URL(routes.deleteNote.path, baseUrl), {
5541
+ method: "POST",
5542
+ headers: { "Content-Type": "application/json" },
5543
+ body: JSON.stringify(deleteNoteSchema.parse(body)),
5544
+ signal: input.signal
5545
+ });
5546
+ if (!response.ok)
5547
+ throw await expectedError(response);
5548
+ },
5492
5549
  async openFolder(path, input = {}) {
5493
5550
  await transport.POST(routes.openFolder.path, {
5494
5551
  params: { query: { path } },
@@ -5531,12 +5588,21 @@ async function openPath(path, input = {}) {
5531
5588
  throw new Error("Could not open the default app.");
5532
5589
  }
5533
5590
  }
5591
+ async function deleteNote(body) {
5592
+ try {
5593
+ await api2.deleteNote(body);
5594
+ } catch {
5595
+ throw new Error("Could not delete the note.");
5596
+ }
5597
+ }
5534
5598
  export {
5535
5599
  ApiClientError,
5536
5600
  api2 as api,
5537
5601
  createKennelClient,
5602
+ deleteNote,
5538
5603
  documentResponse,
5539
5604
  expectedError,
5605
+ folderUrl,
5540
5606
  openPath,
5541
5607
  projectSearchResponse
5542
5608
  };