@joeyshi12/casper 0.8.3 → 0.8.5

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 (66) hide show
  1. package/dist/mcp.js +1 -1
  2. package/dist/server.js +103 -21
  3. package/dist/web/assets/{abnfDiagram-N423BO3Z-DXEP3ecx.js → abnfDiagram-N423BO3Z-Ch5gx7sA.js} +1 -1
  4. package/dist/web/assets/{arc-Czq2DOK7.js → arc-PJ8gA_bH.js} +1 -1
  5. package/dist/web/assets/{architectureDiagram-T3A2C74G-DS2rbRRV.js → architectureDiagram-T3A2C74G-BR2uCcRk.js} +1 -1
  6. package/dist/web/assets/{blockDiagram-VBNYF7ZC-BseZYeZC.js → blockDiagram-VBNYF7ZC-6m4HUx7K.js} +1 -1
  7. package/dist/web/assets/{c4Diagram-5PPSVZJV-C1UkGF4n.js → c4Diagram-5PPSVZJV-CyxTVgs3.js} +1 -1
  8. package/dist/web/assets/channel-1Z7-w0W3.js +1 -0
  9. package/dist/web/assets/{chunk-2GRJ4B5K-BWYLiTWy.js → chunk-2GRJ4B5K-D3nUXXvh.js} +1 -1
  10. package/dist/web/assets/{chunk-2Q5K7J3B-BBPAlVkF.js → chunk-2Q5K7J3B-Ab3mAbCD.js} +1 -1
  11. package/dist/web/assets/{chunk-5RXB4S5H-BVtrfcri.js → chunk-5RXB4S5H-C13gGjM0.js} +1 -1
  12. package/dist/web/assets/{chunk-5VM5RSS4-DdYHmftY.js → chunk-5VM5RSS4-CQC67MG4.js} +1 -1
  13. package/dist/web/assets/{chunk-6Q2QTUOP-Bu2uSDyW.js → chunk-6Q2QTUOP-BbYi0SbQ.js} +1 -1
  14. package/dist/web/assets/{chunk-GF5L2VYU-Fm6jf3Fa.js → chunk-GF5L2VYU-ZwXS3Mgl.js} +1 -1
  15. package/dist/web/assets/{chunk-JWPE2WC7-49b5tmW2.js → chunk-JWPE2WC7-DQ3tZP92.js} +1 -1
  16. package/dist/web/assets/{chunk-KBJHAD2P-BdWz2wuQ.js → chunk-KBJHAD2P-DMOfPf0Z.js} +1 -1
  17. package/dist/web/assets/{chunk-RYQCIY6F-BI8lPfrU.js → chunk-RYQCIY6F-BnVWXlp-.js} +1 -1
  18. package/dist/web/assets/{chunk-XXDRQBXY-DSJuJOa3.js → chunk-XXDRQBXY-B7Myf3SH.js} +1 -1
  19. package/dist/web/assets/classDiagram-JCYQIIEL-DguMR9z1.js +1 -0
  20. package/dist/web/assets/classDiagram-v2-OCEON4UE-DguMR9z1.js +1 -0
  21. package/dist/web/assets/{cose-bilkent-JH36ORCC-C7zV_dwP.js → cose-bilkent-JH36ORCC-qN-2oexj.js} +1 -1
  22. package/dist/web/assets/{cynefin-VYW2F7L2-C-fEIzWS.js → cynefin-VYW2F7L2-DFpQmgR8.js} +1 -1
  23. package/dist/web/assets/{cynefinDiagram-MW4NZA55-BcLCMPWN.js → cynefinDiagram-MW4NZA55-_flQBzaN.js} +1 -1
  24. package/dist/web/assets/{dagre-VZM6K2ZE-CYh9n6f5.js → dagre-VZM6K2ZE-AjkRTEIi.js} +1 -1
  25. package/dist/web/assets/{diagram-7IWD3JNH-DGAf9VAx.js → diagram-7IWD3JNH-Bmz_Gezz.js} +1 -1
  26. package/dist/web/assets/{diagram-B4RE2ZJO-B7-YJ6XT.js → diagram-B4RE2ZJO-DoVgVM2L.js} +1 -1
  27. package/dist/web/assets/{diagram-LBJQPF4R-ClO23-6M.js → diagram-LBJQPF4R-SAbdFQPf.js} +1 -1
  28. package/dist/web/assets/{diagram-Q27KOJAE-DiwCQFrY.js → diagram-Q27KOJAE-Crdunkew.js} +1 -1
  29. package/dist/web/assets/{diagram-UB23O5K3-Dxgwp9Gm.js → diagram-UB23O5K3-BrE9TKK_.js} +1 -1
  30. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-CUnud4Nj.js → ebnfDiagram-BXEA7PRR-DDHFrfLh.js} +1 -1
  31. package/dist/web/assets/{erDiagram-JOGREHBK-Du8VPubT.js → erDiagram-JOGREHBK-DPZ3_otn.js} +1 -1
  32. package/dist/web/assets/{flowDiagram-UKHOOZJN-DXpY-fJV.js → flowDiagram-UKHOOZJN-DLtt_lL9.js} +1 -1
  33. package/dist/web/assets/{ganttDiagram-PKOTCBZU-CAUZR9t_.js → ganttDiagram-PKOTCBZU-BsQRVlxe.js} +1 -1
  34. package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-CF5UgMZp.js → gitGraphDiagram-DS77QQ5N-C-5p16KI.js} +1 -1
  35. package/dist/web/assets/{index-Dms7hqn-.js → index-CuoJNKNv.js} +66 -66
  36. package/dist/web/assets/{infoDiagram-6WML65LV-CDOC8wWL.js → infoDiagram-6WML65LV-1Qsmx9a0.js} +1 -1
  37. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-D-wABkUT.js → ishikawaDiagram-WSZJBQD7-DdZ2oRx4.js} +1 -1
  38. package/dist/web/assets/{journeyDiagram-NVQOT4AX--lkl2DhW.js → journeyDiagram-NVQOT4AX-DPefNrdn.js} +1 -1
  39. package/dist/web/assets/{kanban-definition-27J2QSJJ-qfQqksSU.js → kanban-definition-27J2QSJJ-DHHdNfwU.js} +1 -1
  40. package/dist/web/assets/{linear-DLUc1iRm.js → linear-BtOWycqd.js} +1 -1
  41. package/dist/web/assets/{mermaid.core-D1Ch09uo.js → mermaid.core-vM_O1Ko5.js} +5 -5
  42. package/dist/web/assets/{mindmap-definition-FAOFIHXS-CIkwe0Ua.js → mindmap-definition-FAOFIHXS-DAzGqX3L.js} +1 -1
  43. package/dist/web/assets/{pegDiagram-VL7TDLO6-Cy5gpCKp.js → pegDiagram-VL7TDLO6-BivKNo42.js} +1 -1
  44. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-DAXNaK7k.js → pieDiagram-7S7Q4E2Y-CDJp9lfv.js} +1 -1
  45. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-DoBnVGLz.js → quadrantDiagram-CIZ2JOQS-CZt3nyC2.js} +1 -1
  46. package/dist/web/assets/{railroadDiagram-AXF67PYL-BUcCd45O.js → railroadDiagram-AXF67PYL-CGssaF94.js} +1 -1
  47. package/dist/web/assets/{requirementDiagram-LRYGKXZP-DkpL6xMi.js → requirementDiagram-LRYGKXZP-B799mrD1.js} +1 -1
  48. package/dist/web/assets/{sankeyDiagram-W5VNT64P-CUc4t_Gi.js → sankeyDiagram-W5VNT64P-z2JxM51T.js} +1 -1
  49. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BhqPtPNO.js → sequenceDiagram-SI44F4Z6-CLCsAomu.js} +1 -1
  50. package/dist/web/assets/{sizeCapture-X5ZJPWSS-BrBNkpfh.js → sizeCapture-X5ZJPWSS-R9wsoCsJ.js} +1 -1
  51. package/dist/web/assets/{stateDiagram-OKZ733FA-CrF6OM5C.js → stateDiagram-OKZ733FA-Bup2hLXj.js} +1 -1
  52. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-EvEJJCA_.js +1 -0
  53. package/dist/web/assets/{swimlanes-SLNWSIFB-C9hf0nIo.js → swimlanes-SLNWSIFB-UIROM3at.js} +2 -2
  54. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-D-qDYB4e.js +8 -0
  55. package/dist/web/assets/{timeline-definition-Z64GVDOM-BQSIbVGp.js → timeline-definition-Z64GVDOM-CF2Qc8Fi.js} +1 -1
  56. package/dist/web/assets/{vennDiagram-T6HMQDX7-Cx-5rQf0.js → vennDiagram-T6HMQDX7-BiSlC6lU.js} +1 -1
  57. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-DZI97Z-i.js → wardleyDiagram-T6FBY63Y-D25GsDWd.js} +1 -1
  58. package/dist/web/assets/{xychartDiagram-ELKLHX3M-CueNz5Bq.js → xychartDiagram-ELKLHX3M-B7tbsXwt.js} +1 -1
  59. package/dist/web/index.html +1 -1
  60. package/dist/web/sw.js +1 -1
  61. package/package.json +1 -1
  62. package/dist/web/assets/channel-BvY-5Ac_.js +0 -1
  63. package/dist/web/assets/classDiagram-JCYQIIEL-DLdUirjs.js +0 -1
  64. package/dist/web/assets/classDiagram-v2-OCEON4UE-DLdUirjs.js +0 -1
  65. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-BxJtymvQ.js +0 -1
  66. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-D86_ybps.js +0 -8
package/dist/mcp.js CHANGED
@@ -369,7 +369,7 @@ function handleMessage(req, version) {
369
369
  }
370
370
 
371
371
  // server/src/mcp/server.ts
372
- var VERSION = true ? "0.8.3" : "dev";
372
+ var VERSION = true ? "0.8.5" : "dev";
373
373
  function runMcpServer() {
374
374
  const rl = createInterface({ input: process.stdin });
375
375
  rl.on("line", (line) => {
package/dist/server.js CHANGED
@@ -3013,13 +3013,16 @@ var init_health = __esm({
3013
3013
  function send(socket, msg) {
3014
3014
  if (socket.readyState === socket.OPEN) socket.send(JSON.stringify(msg));
3015
3015
  }
3016
- async function handleClientMessage(socket, manager, sessionId, msg) {
3016
+ async function handleClientMessage(socket, manager, sessionId, msg, watchers) {
3017
3017
  switch (msg.type) {
3018
3018
  case "ping":
3019
3019
  send(socket, { type: "pong" });
3020
3020
  return;
3021
3021
  case "hello":
3022
3022
  return;
3023
+ case "watch_paths":
3024
+ await watchers.sync(msg.paths);
3025
+ return;
3023
3026
  case "prompt":
3024
3027
  try {
3025
3028
  await manager.runPrompt(sessionId, msg.content);
@@ -3095,6 +3098,72 @@ var init_dispatch = __esm({
3095
3098
  }
3096
3099
  });
3097
3100
 
3101
+ // server/src/ws/dirWatchers.ts
3102
+ import fs13 from "node:fs";
3103
+ function diffWatchSet(current, next) {
3104
+ const have = new Set(current);
3105
+ const want = new Set(next.slice(0, MAX_WATCHES));
3106
+ return {
3107
+ add: [...want].filter((p) => !have.has(p)),
3108
+ remove: [...have].filter((p) => !want.has(p))
3109
+ };
3110
+ }
3111
+ function createDirWatchers(opts) {
3112
+ const open2 = /* @__PURE__ */ new Map();
3113
+ const timers = /* @__PURE__ */ new Map();
3114
+ let closed = false;
3115
+ const stop = (relative) => {
3116
+ open2.get(relative)?.close();
3117
+ open2.delete(relative);
3118
+ const t = timers.get(relative);
3119
+ if (t) clearTimeout(t);
3120
+ timers.delete(relative);
3121
+ };
3122
+ const start = async (relative) => {
3123
+ const target = await opts.resolve(relative);
3124
+ if (!target || closed) return;
3125
+ try {
3126
+ const watcher = fs13.watch(target, { persistent: false }, () => {
3127
+ const existing = timers.get(relative);
3128
+ if (existing) clearTimeout(existing);
3129
+ timers.set(
3130
+ relative,
3131
+ setTimeout(() => {
3132
+ timers.delete(relative);
3133
+ if (!closed) opts.onChange(relative);
3134
+ }, DEBOUNCE_MS)
3135
+ );
3136
+ });
3137
+ watcher.on("error", () => stop(relative));
3138
+ open2.set(relative, watcher);
3139
+ } catch {
3140
+ }
3141
+ };
3142
+ return {
3143
+ async sync(paths) {
3144
+ if (closed) return;
3145
+ const { add, remove } = diffWatchSet(open2.keys(), paths);
3146
+ remove.forEach(stop);
3147
+ await Promise.all(add.map(start));
3148
+ },
3149
+ close() {
3150
+ closed = true;
3151
+ [...open2.keys()].forEach(stop);
3152
+ },
3153
+ watching() {
3154
+ return [...open2.keys()];
3155
+ }
3156
+ };
3157
+ }
3158
+ var MAX_WATCHES, DEBOUNCE_MS;
3159
+ var init_dirWatchers = __esm({
3160
+ "server/src/ws/dirWatchers.ts"() {
3161
+ "use strict";
3162
+ MAX_WATCHES = 64;
3163
+ DEBOUNCE_MS = 200;
3164
+ }
3165
+ });
3166
+
3098
3167
  // server/src/ws/gateway.ts
3099
3168
  function registerWsGateway(app, manager) {
3100
3169
  app.get("/ws", { websocket: true }, (socket, req) => {
@@ -3112,6 +3181,16 @@ function registerWsGateway(app, manager) {
3112
3181
  }
3113
3182
  let cursor = Number.parseInt(query.cursor ?? "0", 10) || 0;
3114
3183
  let unsubscribe = null;
3184
+ const watchers = createDirWatchers({
3185
+ resolve: async (relative) => {
3186
+ try {
3187
+ return confineToRoot(await manager.getSessionCwd(sessionId), relative);
3188
+ } catch {
3189
+ return null;
3190
+ }
3191
+ },
3192
+ onChange: (path17) => send(socket, { type: "fs_changed", path: path17 })
3193
+ });
3115
3194
  let alive = true;
3116
3195
  let ready = false;
3117
3196
  const forward = (event) => {
@@ -3173,11 +3252,12 @@ function registerWsGateway(app, manager) {
3173
3252
  send(socket, { type: "error", message: "Invalid JSON" });
3174
3253
  return;
3175
3254
  }
3176
- void handleClientMessage(socket, manager, sessionId, msg);
3255
+ void handleClientMessage(socket, manager, sessionId, msg, watchers);
3177
3256
  });
3178
3257
  socket.on("close", () => {
3179
3258
  clearInterval(heartbeat);
3180
3259
  unsubscribe?.();
3260
+ watchers.close();
3181
3261
  });
3182
3262
  });
3183
3263
  }
@@ -3187,12 +3267,14 @@ var init_gateway = __esm({
3187
3267
  "use strict";
3188
3268
  init_auth();
3189
3269
  init_dispatch();
3270
+ init_dirWatchers();
3271
+ init_paths2();
3190
3272
  HEARTBEAT_MS = 2e4;
3191
3273
  }
3192
3274
  });
3193
3275
 
3194
3276
  // server/src/app.ts
3195
- import fs13 from "node:fs";
3277
+ import fs14 from "node:fs";
3196
3278
  import Fastify from "fastify";
3197
3279
  import cors from "@fastify/cors";
3198
3280
  import websocket from "@fastify/websocket";
@@ -3230,7 +3312,7 @@ async function buildApp() {
3230
3312
  registerWorkspaceRoutes(app, manager);
3231
3313
  registerUploadRoutes(app, manager);
3232
3314
  registerWsGateway(app, manager);
3233
- if (fs13.existsSync(config.webDist)) {
3315
+ if (fs14.existsSync(config.webDist)) {
3234
3316
  await app.register(fastifyStatic, {
3235
3317
  root: config.webDist
3236
3318
  });
@@ -3311,15 +3393,15 @@ __export(doctor_exports, {
3311
3393
  mcpWiring: () => mcpWiring
3312
3394
  });
3313
3395
  import { execFileSync as execFileSync3 } from "node:child_process";
3314
- import fs14 from "node:fs";
3396
+ import fs15 from "node:fs";
3315
3397
  import path15 from "node:path";
3316
3398
  function which(bin) {
3317
- if (bin.includes("/")) return fs14.existsSync(bin) ? bin : void 0;
3399
+ if (bin.includes("/")) return fs15.existsSync(bin) ? bin : void 0;
3318
3400
  for (const dir of (process.env.PATH ?? "").split(path15.delimiter)) {
3319
3401
  if (dir === "") continue;
3320
3402
  const candidate = path15.join(dir, bin);
3321
3403
  try {
3322
- fs14.accessSync(candidate, fs14.constants.X_OK);
3404
+ fs15.accessSync(candidate, fs15.constants.X_OK);
3323
3405
  return candidate;
3324
3406
  } catch {
3325
3407
  }
@@ -3343,7 +3425,7 @@ function mcpWiring(agentJson, resolve) {
3343
3425
  return { ok: false, detail: `${command || "(no command)"} not found - widgets are unavailable` };
3344
3426
  }
3345
3427
  const script = args.find((a) => a.endsWith(".js"));
3346
- if (script && !fs14.existsSync(script)) {
3428
+ if (script && !fs15.existsSync(script)) {
3347
3429
  return { ok: false, detail: `${script} is gone - delete the agent file and restart to rewrite it` };
3348
3430
  }
3349
3431
  return { ok: true, detail: script ?? `${command} ${args.join(" ")}` };
@@ -3375,7 +3457,7 @@ function checks() {
3375
3457
  const settings = readSettings(config.configFile);
3376
3458
  const hasToken = typeof settings.token === "string" && settings.token !== "";
3377
3459
  out.push(
3378
- fs14.existsSync(config.configFile) ? {
3460
+ fs15.existsSync(config.configFile) ? {
3379
3461
  ok: hasToken,
3380
3462
  name: "settings",
3381
3463
  detail: hasToken ? `${config.configFile} (token set)` : `${config.configFile} exists but has no token - auth is DISABLED`
@@ -3385,8 +3467,8 @@ function checks() {
3385
3467
  detail: `${config.configFile} not found; a token is generated on first run`
3386
3468
  }
3387
3469
  );
3388
- if (fs14.existsSync(config.configFile)) {
3389
- const mode = fs14.statSync(config.configFile).mode & 511;
3470
+ if (fs15.existsSync(config.configFile)) {
3471
+ const mode = fs15.statSync(config.configFile).mode & 511;
3390
3472
  out.push({
3391
3473
  ok: mode === 384,
3392
3474
  name: "settings mode",
@@ -3394,10 +3476,10 @@ function checks() {
3394
3476
  });
3395
3477
  }
3396
3478
  try {
3397
- fs14.mkdirSync(config.casperDataDir, { recursive: true });
3398
- fs14.accessSync(config.casperDataDir, fs14.constants.W_OK);
3479
+ fs15.mkdirSync(config.casperDataDir, { recursive: true });
3480
+ fs15.accessSync(config.casperDataDir, fs15.constants.W_OK);
3399
3481
  const db2 = path15.join(config.casperDataDir, "casper.db");
3400
- const size = fs14.existsSync(db2) ? `, casper.db ${(fs14.statSync(db2).size / 1024).toFixed(0)} KB` : "";
3482
+ const size = fs15.existsSync(db2) ? `, casper.db ${(fs15.statSync(db2).size / 1024).toFixed(0)} KB` : "";
3401
3483
  out.push({ ok: true, name: "data dir", detail: `${config.casperDataDir} writable${size}` });
3402
3484
  } catch (err) {
3403
3485
  out.push({
@@ -3408,7 +3490,7 @@ function checks() {
3408
3490
  });
3409
3491
  }
3410
3492
  out.push(
3411
- fs14.existsSync(config.webDist) ? { ok: true, name: "web app", detail: config.webDist } : {
3493
+ fs15.existsSync(config.webDist) ? { ok: true, name: "web app", detail: config.webDist } : {
3412
3494
  ok: false,
3413
3495
  fatal: true,
3414
3496
  name: "web app",
@@ -3416,14 +3498,14 @@ function checks() {
3416
3498
  }
3417
3499
  );
3418
3500
  const agent = path15.join(config.kiroSessionsDir, "..", "..", "agents", "casper.json");
3419
- const hasAgent = fs14.existsSync(agent);
3501
+ const hasAgent = fs15.existsSync(agent);
3420
3502
  out.push({
3421
3503
  ok: hasAgent,
3422
3504
  name: "casper agent",
3423
3505
  detail: hasAgent ? agent : `${agent} missing - it is installed on first run`
3424
3506
  });
3425
3507
  if (hasAgent) {
3426
- const wiring = mcpWiring(fs14.readFileSync(agent, "utf8"), which);
3508
+ const wiring = mcpWiring(fs15.readFileSync(agent, "utf8"), which);
3427
3509
  out.push({ ok: wiring.ok, name: "casper mcp", detail: wiring.detail });
3428
3510
  }
3429
3511
  return out;
@@ -3887,12 +3969,12 @@ var init_server2 = __esm({
3887
3969
  "server/src/mcp/server.ts"() {
3888
3970
  "use strict";
3889
3971
  init_protocol();
3890
- VERSION = true ? "0.8.3" : "dev";
3972
+ VERSION = true ? "0.8.5" : "dev";
3891
3973
  }
3892
3974
  });
3893
3975
 
3894
3976
  // server/src/cli/program.ts
3895
- import fs15 from "node:fs";
3977
+ import fs16 from "node:fs";
3896
3978
  import os4 from "node:os";
3897
3979
  import path16 from "node:path";
3898
3980
 
@@ -7267,7 +7349,7 @@ var program = new Command();
7267
7349
  // server/src/cli/program.ts
7268
7350
  init_paths();
7269
7351
  init_settings();
7270
- var VERSION2 = true ? "0.8.3" : "dev";
7352
+ var VERSION2 = true ? "0.8.5" : "dev";
7271
7353
  async function bootstrap() {
7272
7354
  const file = configFilePath();
7273
7355
  const settings = readSettings(file);
@@ -7314,7 +7396,7 @@ async function resetToken(value) {
7314
7396
  process.stdout.write(`wrote a new token to ${file}
7315
7397
  `);
7316
7398
  const dbFile = path16.join(dataDirPath(), "casper.db");
7317
- if (fs15.existsSync(dbFile)) {
7399
+ if (fs16.existsSync(dbFile)) {
7318
7400
  const { LoginStore: LoginStore2 } = await Promise.resolve().then(() => (init_logins(), logins_exports));
7319
7401
  new LoginStore2().revokeAll();
7320
7402
  process.stdout.write("revoked all device sessions\n");
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-Bu2uSDyW.js";import{p as f}from"./chunk-JWPE2WC7-49b5tmW2.js";import{_ as n,l as o}from"./mermaid.core-D1Ch09uo.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-C-fEIzWS.js";import"./index-Dms7hqn-.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-BbYi0SbQ.js";import{p as f}from"./chunk-JWPE2WC7-DQ3tZP92.js";import{_ as n,l as o}from"./mermaid.core-vM_O1Ko5.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DFpQmgR8.js";import"./index-CuoJNKNv.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
@@ -1 +1 @@
1
- import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-D1Ch09uo.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-vM_O1Ko5.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};