jfl 0.9.12 → 0.9.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jfl",
3
- "version": "0.9.12",
3
+ "version": "0.9.13",
4
4
  "description": "Just Fucking Launch - CLI for AI-powered GTM and development",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../extensions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyFH,wBAA8B,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAkZjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../extensions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgKH,wBAA8B,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ajE"}
@@ -90,6 +90,73 @@ function getCurrentBranch(root) {
90
90
  // first one initializes — which is the local dev version (Pi loads project-
91
91
  // local extensions before global packages).
92
92
  const JFL_LOADED = Symbol.for("jfl-pi-extension-loaded");
93
+ // ─── Pi TUI compatibility layer ──────────────────────────────────────────────
94
+ // Pi 0.62.0+ requires renderCall/renderResult to return Component instances
95
+ // (new Text(...)). We dynamically import pi-tui at runtime and wrap our
96
+ // string-based renderers. If the import fails (older Pi, different install),
97
+ // renderers are disabled and Pi uses its default fallback rendering.
98
+ let PiText = null;
99
+ async function loadPiTui() {
100
+ try {
101
+ // pi-tui lives inside Pi's own node_modules, not ours.
102
+ // We run inside Pi's process but our file location is in jfl's package tree,
103
+ // so normal import() can't resolve it. Use createRequire from Pi's location.
104
+ const { createRequire } = await import("module");
105
+ const { execSync } = await import("child_process");
106
+ const piPath = execSync("which pi", { encoding: "utf-8" }).trim();
107
+ // Follow symlink to real path (e.g. npm global → dist/cli.js)
108
+ const { realpathSync } = await import("fs");
109
+ const realPi = realpathSync(piPath);
110
+ const piRequire = createRequire(realPi);
111
+ const tuiPath = piRequire.resolve("@mariozechner/pi-tui");
112
+ const tui = await import(tuiPath);
113
+ PiText = tui.Text;
114
+ }
115
+ catch {
116
+ // pi-tui not resolvable — disable custom renderers, Pi uses fallback
117
+ PiText = null;
118
+ }
119
+ }
120
+ /**
121
+ * Wrap a string-based renderer into a Pi Component.
122
+ * If pi-tui is available, returns new Text(). Otherwise returns undefined
123
+ * so Pi falls back to default rendering.
124
+ */
125
+ function wrapRenderer(fn) {
126
+ if (!fn || !PiText)
127
+ return undefined;
128
+ return (args, theme, _context) => {
129
+ try {
130
+ const result = fn(args, theme);
131
+ // Old renderers return { render, invalidate }. Extract the lines.
132
+ if (result && typeof result.render === "function") {
133
+ const lines = result.render(140);
134
+ return new PiText(lines.join("\n"), 0, 0);
135
+ }
136
+ return result;
137
+ }
138
+ catch {
139
+ return undefined;
140
+ }
141
+ };
142
+ }
143
+ function wrapResultRenderer(fn) {
144
+ if (!fn || !PiText)
145
+ return undefined;
146
+ return (result, opts, theme, _context) => {
147
+ try {
148
+ const rendered = fn(result, opts, theme);
149
+ if (rendered && typeof rendered.render === "function") {
150
+ const lines = rendered.render(140);
151
+ return new PiText(lines.join("\n"), 0, 0);
152
+ }
153
+ return rendered;
154
+ }
155
+ catch {
156
+ return undefined;
157
+ }
158
+ };
159
+ }
93
160
  // ─── Pi extension factory function ───────────────────────────────────────────
94
161
  export default async function jflExtension(pi) {
95
162
  // Skip if already loaded from another source (dedup)
@@ -97,6 +164,8 @@ export default async function jflExtension(pi) {
97
164
  return;
98
165
  }
99
166
  globalThis[JFL_LOADED] = true;
167
+ // Load Pi TUI for renderer compatibility — non-blocking, non-fatal
168
+ await loadPiTui();
100
169
  let projectCwd = process.cwd();
101
170
  let latestPiCtx = null;
102
171
  const internalHandlers = new Map();
@@ -157,12 +226,8 @@ export default async function jflExtension(pi) {
157
226
  throw new Error(`${err}`);
158
227
  }
159
228
  },
160
- renderCall: tool.renderCall
161
- ? (args, theme) => tool.renderCall(args, theme)
162
- : undefined,
163
- renderResult: tool.renderResult
164
- ? (result, options, theme) => tool.renderResult(result, options, theme)
165
- : undefined,
229
+ renderCall: wrapRenderer(tool.renderCall),
230
+ renderResult: wrapResultRenderer(tool.renderResult),
166
231
  });
167
232
  },
168
233
  registerCommand: (cmd) => {
@@ -372,44 +437,69 @@ export default async function jflExtension(pi) {
372
437
  });
373
438
  pi.on("session_shutdown", async (_event, piCtx) => {
374
439
  latestPiCtx = piCtx;
375
- onMeshShutdown();
376
- await onPortfolioShutdown(ctx);
377
- await onShutdown(ctx);
378
- await onMapBridgeShutdown(ctx);
440
+ try {
441
+ onMeshShutdown();
442
+ await onPortfolioShutdown(ctx);
443
+ await onShutdown(ctx);
444
+ await onMapBridgeShutdown(ctx);
445
+ }
446
+ catch (err) {
447
+ ctx.log(`session_shutdown error: ${err}`, "warn");
448
+ }
379
449
  });
380
450
  pi.on("session_before_compact", async (_event, piCtx) => {
381
451
  latestPiCtx = piCtx;
382
- return checkJournalBeforeCompact(ctx);
452
+ try {
453
+ return checkJournalBeforeCompact(ctx);
454
+ }
455
+ catch (err) {
456
+ ctx.log(`session_before_compact error: ${err}`, "warn");
457
+ }
383
458
  });
384
459
  pi.on("before_agent_start", async (event, _piCtx) => {
385
- const result = await injectContext(ctx, event);
386
- const meshState = injectMeshContext();
387
- const additions = [
388
- result?.systemPromptAddition,
389
- meshState,
390
- ].filter(Boolean).join("\n\n");
391
- if (additions) {
392
- const current = event.systemPrompt ?? "";
393
- return {
394
- systemPrompt: current
395
- ? `${current}\n\n${additions}`
396
- : additions,
397
- };
460
+ try {
461
+ const result = await injectContext(ctx, event);
462
+ const meshState = injectMeshContext();
463
+ const additions = [
464
+ result?.systemPromptAddition,
465
+ meshState,
466
+ ].filter(Boolean).join("\n\n");
467
+ if (additions) {
468
+ const current = event.systemPrompt ?? "";
469
+ return {
470
+ systemPrompt: current
471
+ ? `${current}\n\n${additions}`
472
+ : additions,
473
+ };
474
+ }
475
+ }
476
+ catch (err) {
477
+ ctx.log(`before_agent_start error: ${err}`, "warn");
398
478
  }
399
479
  });
400
480
  pi.on("agent_start", async (event, piCtx) => {
401
481
  latestPiCtx = piCtx;
402
- await onStratusStart(ctx, event);
403
- jflEmit("agent:start", event);
482
+ try {
483
+ await onStratusStart(ctx, event);
484
+ jflEmit("agent:start", event);
485
+ }
486
+ catch (err) {
487
+ ctx.log(`agent_start error: ${err}`, "warn");
488
+ }
404
489
  });
405
490
  pi.on("agent_end", async (event, piCtx) => {
406
491
  latestPiCtx = piCtx;
407
- await onStratusEnd(ctx, event);
408
- await onEvalEnd(ctx, event);
409
- await onTrainingAgentEnd(ctx, event);
410
- await updateHudWidget(ctx);
411
- await onJournalAgentEnd(ctx, event);
412
- jflEmit("agent:end", event);
492
+ try {
493
+ await onStratusEnd(ctx, event);
494
+ await onEvalEnd(ctx, event);
495
+ await onTrainingAgentEnd(ctx, event);
496
+ await updateHudWidget(ctx);
497
+ await onJournalAgentEnd(ctx, event);
498
+ jflEmit("agent:end", event);
499
+ }
500
+ catch (err) {
501
+ ctx.log(`agent_end error: ${err}`, "warn");
502
+ }
413
503
  });
414
504
  pi.on("turn_start", async (event, piCtx) => {
415
505
  latestPiCtx = piCtx;
@@ -422,28 +512,37 @@ export default async function jflExtension(pi) {
422
512
  });
423
513
  // UserPromptSubmit equivalent — detect approval/done patterns in user input
424
514
  pi.on("input", async (event, _piCtx) => {
425
- const text = (event.text ?? "").trim();
426
- if (!text)
427
- return { action: "continue" };
428
- const approvalPatterns = /\b(done|approved|ship it|looks good|lgtm|merge it|go ahead|good to go)\b/i;
429
- if (approvalPatterns.test(text)) {
430
- const branch = getCurrentBranch(ctx.session.projectRoot);
431
- const hasJournal = hasJournalEntryForSession(ctx.session.projectRoot, branch);
432
- if (!hasJournal) {
433
- // Transform: append journal reminder to the user's message
434
- return {
435
- action: "transform",
436
- text: `${event.text}\n\n[System: The user just approved/completed something. Write a journal entry NOW before proceeding — capture what was approved, decisions made, and next steps. Use the journal format from CLAUDE.md.]`,
437
- };
515
+ try {
516
+ const text = (event.text ?? "").trim();
517
+ if (!text)
518
+ return { action: "continue" };
519
+ const approvalPatterns = /\b(done|approved|ship it|looks good|lgtm|merge it|go ahead|good to go)\b/i;
520
+ if (approvalPatterns.test(text)) {
521
+ const branch = getCurrentBranch(ctx.session.projectRoot);
522
+ const hasJournal = hasJournalEntryForSession(ctx.session.projectRoot, branch);
523
+ if (!hasJournal) {
524
+ return {
525
+ action: "transform",
526
+ text: `${event.text}\n\n[System: The user just approved/completed something. Write a journal entry NOW before proceeding — capture what was approved, decisions made, and next steps. Use the journal format from CLAUDE.md.]`,
527
+ };
528
+ }
438
529
  }
439
530
  }
531
+ catch (err) {
532
+ ctx.log(`input handler error: ${err}`, "warn");
533
+ }
440
534
  return { action: "continue" };
441
535
  });
442
536
  pi.on("tool_execution_end", async (event, piCtx) => {
443
537
  latestPiCtx = piCtx;
444
- await onToolExecutionEnd(ctx, event); // git commit → journal nudge
445
- checkPurposeHeader(ctx, event); // Write/Edit@purpose check
446
- await onMapToolEnd(ctx, event); // hub event bus
538
+ try {
539
+ await onToolExecutionEnd(ctx, event); // git commit journal nudge
540
+ checkPurposeHeader(ctx, event); // Write/Edit @purpose check
541
+ await onMapToolEnd(ctx, event); // hub event bus
542
+ }
543
+ catch (err) {
544
+ ctx.log(`tool_execution_end error: ${err}`, "warn");
545
+ }
447
546
  });
448
547
  pi.on("model_select", async (event, piCtx) => {
449
548
  latestPiCtx = piCtx;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../extensions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../extensions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAC5J,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,SAAS,EAAE,UAAU,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAkB,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,YAAY,IAAI,cAAc,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACnH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAA+E,MAAM,aAAa,CAAA;AACtH,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEzE,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,EAAE,EAAE,kBAAkB,IAAI,IAAI,CAAA;IAC3F,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,CAAC,OAAO,iBAAiB,CAAA;QACnC,KAAK,IAAI,CAAC,CAAC,OAAO,iBAAiB,CAAA;QACnC,KAAK,IAAI,CAAC;QACV,OAAO,CAAC,CAAC,OAAO,iBAAiB,CAAA;IACnC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAc,CAAA;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB,EAAE,MAAiB;IAC5D,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAA;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACzC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,aAAa,CAAA;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;aAC3F,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAA;IACf,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,4CAA4C;AAE5C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAExD,gFAAgF;AAChF,4EAA4E;AAC5E,wEAAwE;AACxE,6EAA6E;AAC7E,qEAAqE;AAErE,IAAI,MAAM,GAA+D,IAAI,CAAA;AAE7E,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,uDAAuD;QACvD,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACjE,8DAA8D;QAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CACnB,EAAgD;IAEhD,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IACpC,OAAO,CAAC,IAAS,EAAE,KAAU,EAAE,QAAa,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC9B,kEAAkE;YAClE,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAa,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC1C,OAAO,IAAI,MAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5C,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,EAA6D;IAE7D,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IACpC,OAAO,CAAC,MAAW,EAAE,IAAS,EAAE,KAAU,EAAE,QAAa,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YACxC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAa,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC5C,OAAO,IAAI,MAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5C,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CAAC,EAAO;IAChD,qDAAqD;IACrD,IAAK,UAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAM;IACR,CAAC;IACA,UAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAEtC,mEAAmE;IACnE,MAAM,SAAS,EAAE,CAAA;IAEjB,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC9B,IAAI,WAAW,GAAQ,IAAI,CAAA;IAE3B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0D,CAAA;IAE1F,SAAS,KAAK,CAAC,KAAa,EAAE,OAAgD;QAC5E,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,OAAO,CAAC,KAAa,EAAE,IAAc;QAC5C,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,+EAA+E;IAE/E,SAAS,QAAQ;QACf,IAAI,WAAW,EAAE,EAAE,EAAE,KAAK;YAAE,OAAO,WAAW,CAAC,EAAE,CAAC,KAAK,CAAA;QACvD,OAAO;YACL,EAAE,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI;YAC1C,EAAE,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI;YAC1C,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI;SAC7B,CAAA;IACH,CAAC;IAED,+EAA+E;IAE/E,MAAM,GAAG,GAAc;QACrB,IAAI,OAAO;YACT,OAAO;gBACL,WAAW,EAAE,UAAU;gBACvB,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,IAAI,KAAK;gBAClC,MAAM,EAAE,gBAAgB,EAAE,IAAI,gBAAgB,CAAC,UAAU,CAAC;aAC3D,CAAA;QACH,CAAC;QAED,GAAG,EAAE,CAAC,GAAW,EAAE,KAAc,EAAE,EAAE;YACnC,+CAA+C;YAC/C,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS;gBAAE,OAAM;YACvD,MAAM,MAAM,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAA;YAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,KAAK;QAET,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE;YACjC,EAAE,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI;gBAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,MAA+B;oBACxD,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;wBACzC,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4BACzC,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE;yBAC9C,CAAA;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;oBAC3B,CAAC;gBACH,CAAC;gBACD,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;gBACzC,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;aACpD,CAAC,CAAA;QACJ,CAAC;QAED,eAAe,EAAE,CAAC,GAAkB,EAAE,EAAE;YACtC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,KAAU,EAAE,EAAE;oBAC1C,WAAW,GAAG,KAAK,CAAA;oBACnB,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAC9B,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,gBAAgB,EAAE,CAAC,GAAW,EAAE,IAAkE,EAAE,EAAE;YACpG,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,EAAE;oBAC5B,WAAW,GAAG,KAAK,CAAA;oBACnB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBACtB,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,EAAE,EAAE;YACF,MAAM,EAAE,CAAC,GAAW,EAAE,IAAyB,EAAE,EAAE;gBACjD,MAAM,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,MAAM,CAAA;gBAClC,IAAI,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;oBAC5B,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAClC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAED,KAAK,EAAE,KAAK,EAAE,KAAa,EAAE,WAAoB,EAAE,EAAE;gBACnD,IAAI,WAAW,EAAE,EAAE,EAAE,KAAK;oBAAE,OAAO,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;gBAC3E,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,KAAa,EAAE,OAAe,EAAE,EAAE;gBAChD,IAAI,WAAW,EAAE,EAAE,EAAE,OAAO;oBAAE,OAAO,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAC3E,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,EAAE,KAAK,EAAoB,KAAa,EAAE,KAA+D,EAAE,EAAE;gBACjH,IAAI,WAAW,EAAE,EAAE,EAAE,MAAM;oBAAE,OAAO,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBACvE,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,KAAa,EAAE,OAAe,EAAE,EAAE;gBAC/C,IAAI,WAAW,EAAE,EAAE,EAAE,MAAM;oBAAE,OAAO,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBACzE,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,MAAM,EAAE,KAAK,EAAK,OAAY,EAAE,IAAU,EAAE,EAAE;gBAC5C,IAAI,WAAW,EAAE,EAAE,EAAE,MAAM;oBAAE,OAAO,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACxE,OAAO,SAAc,CAAA;YACvB,CAAC;YAED,SAAS,EAAE,CAAC,EAAU,EAAE,OAAY,EAAE,IAA6B,EAAE,EAAE;gBACrE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,SAAS;oBAAE,OAAM;gBACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;gBACzC,CAAC;qBAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC7C,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;YAED,SAAS,EAAE,CAAC,GAAW,EAAE,IAAwB,EAAE,EAAE;gBACnD,IAAI,WAAW,EAAE,EAAE,EAAE,SAAS;oBAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACrE,CAAC;YAED,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE;gBAC1B,IAAI,WAAW,EAAE,EAAE,EAAE,SAAS;oBAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YACnE,CAAC;YAED,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE;gBAC1B,IAAI,WAAW,EAAE,EAAE,EAAE,SAAS;oBAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YACnE,CAAC;YAED,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC9B,IAAI,WAAW,EAAE,EAAE,EAAE,aAAa;oBAAE,WAAW,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YACxE,CAAC;YAED,IAAI,KAAK;gBACP,OAAO,QAAQ,EAAE,CAAA;YACnB,CAAC;YAED,IAAI,KAAK;gBACP,OAAO,WAAW,EAAE,KAAK,IAAI,KAAK,CAAA;YACpC,CAAC;SACF;QAED,EAAE,EAAE;YACF,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;YAEzD,WAAW,EAAE,CAAC,IAAY,EAAE,IAAc,EAAE,EAAE;gBAC5C,IAAI,EAAE,CAAC,WAAW;oBAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAChD,CAAC;YAED,QAAQ,EAAE,CAAC,OAAe,EAAE,KAAyB,EAAE,EAAE;gBACvD,IAAI,EAAE,CAAC,QAAQ;oBAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC9C,CAAC;YAED,WAAW,EAAE,CAAC,GAAQ,EAAE,IAAU,EAAE,EAAE;gBACpC,IAAI,EAAE,CAAC,WAAW;oBAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC/C,CAAC;YAED,MAAM,EAAE;gBACN,EAAE,EAAE,CAAC,KAAa,EAAE,OAAgC,EAAE,EAAE;oBACtD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;wBAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBACjD,CAAC;gBACD,IAAI,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE;oBACtC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI;wBAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAClD,CAAC;aACF;YAED,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE;YACjD,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE;YAE3C,IAAI,EAAE,KAAK,EAAE,OAAe,EAAE,IAAc,EAAE,IAAU,EAAE,EAAE;gBAC1D,IAAI,EAAE,CAAC,IAAI;oBAAE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;gBAChD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;YAC5D,CAAC;YAED,IAAI,cAAc,KAAK,OAAO,WAAW,EAAE,cAAc,CAAA,CAAC,CAAC;YAC3D,IAAI,KAAK,KAAK,OAAO,WAAW,EAAE,KAAK,CAAA,CAAC,CAAC;SAC1C;QAED,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,CAAC;KAC1C,CAAA;IAED,8EAA8E;IAE9E,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACjC,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,8EAA8E;IAE9E,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAe,EAAE,KAAU,EAAE,EAAE;QAC3D,WAAW,GAAG,KAAK,CAAA;QACnB,UAAU,GAAG,KAAK,CAAC,GAAG,CAAA;QACtB,SAAS,GAAG,CAAC,CAAA;QACb,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC7B,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAA;QAEpC,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAEtD,EAAE,CAAC,cAAc,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAA;QAExC,oEAAoE;QACpE,gEAAgE;QAChE,wEAAwE;QACxE,kEAAkE;QAClE,mDAAmD;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAA;QAE5F,IAAI,WAAW,EAAE,CAAC;YAChB,gDAAgD;YAChD,GAAG,CAAC,GAAG,CAAC,sDAAsD,EAAE,MAAM,CAAC,CAAA;YAEvE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,CAAO,kDAAkD;YACxF,eAAe,CAAC,GAAG,CAAC,CAAA,CAAmB,8CAA8C;YACrF,MAAM,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,CAAE,yCAAyC;YACrF,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,CAAO,iCAAiC;YACxE,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA,CAAO,8BAA8B;YAErE,GAAG,CAAC,GAAG,CAAC,cAAc,WAAW,aAAa,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,KAAK,CAAC,CAAA;YACjF,OAAM;QACR,CAAC;QAED,qEAAqE;QAErE,8DAA8D;QAC9D,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAExB,kEAAkE;QAClE,gDAAgD;QAChD,wDAAwD;QACxD,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAE/B,8DAA8D;QAC9D,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,MAAM,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACjC,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC/B,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC/B,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAE5B,YAAY,CAAC,GAAG,CAAC,CAAA;YACjB,YAAY,CAAC,GAAG,CAAC,CAAA;YACjB,eAAe,CAAC,GAAG,CAAC,CAAA;YACpB,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACtB,cAAc,CAAC,GAAG,CAAC,CAAA;YACnB,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAChC,MAAM,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACtC,MAAM,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC1C,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACpC,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACrC,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAEhC,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAElC,iBAAiB,CAAC,UAAU,CAAC,CAAA;YAC7B,cAAc,CAAC,UAAU,CAAC,CAAA;YAC1B,MAAM,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACnC,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACvC,cAAc,CAAC,GAAG,CAAC,CAAA;YAEnB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAA;YACzH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB;gBAAE,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB;gBAAE,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACtE,cAAc,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/E,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;YAClE,OAAO,EAAE;SACV,CAAC,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,QAAQ,WAAW,kBAAkB,CAAC,CAAA;QAE9C,6EAA6E;QAC7E,iFAAiF;QACjF,IAAI,MAAM,CAAC,EAAE,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAe,EAAE,KAAU,EAAE,EAAE;QAC9D,WAAW,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC;YACH,cAAc,EAAE,CAAA;YAChB,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC9B,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;YACrB,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,2BAA2B,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QACnD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,wBAAwB,EAAE,KAAK,EAAE,MAAe,EAAE,KAAU,EAAE,EAAE;QACpE,WAAW,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC;YACH,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,iCAAiC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAU,EAAE,MAAW,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAA;YACrC,MAAM,SAAS,GAAG;gBAChB,MAAM,EAAE,oBAAoB;gBAC5B,SAAS;aACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE9B,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,OAAO,GAAI,KAAK,CAAC,YAAuB,IAAI,EAAE,CAAA;gBACpD,OAAO;oBACL,YAAY,EAAE,OAAO;wBACnB,CAAC,CAAC,GAAG,OAAO,OAAO,SAAS,EAAE;wBAC9B,CAAC,CAAC,SAAS;iBACd,CAAA;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,6BAA6B,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QACrD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,EAAE;QACpD,WAAW,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAChC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,sBAAsB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,EAAE;QAClD,WAAW,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9B,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC3B,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACpC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;YAC1B,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACnC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,EAAE;QACnD,WAAW,GAAG,KAAK,CAAA;QACnB,SAAS,EAAE,CAAA;QACX,OAAO,CAAC,YAAY,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,EAAE;QACjD,WAAW,GAAG,KAAK,CAAA;QACnB,OAAO,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,4EAA4E;IAC5E,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAU,EAAE,MAAW,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACtC,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;YAExC,MAAM,gBAAgB,GAAG,2EAA2E,CAAA;YACpG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBACxD,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;gBAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO;wBACL,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,2MAA2M;qBAC/N,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,wBAAwB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,EAAE;QAC3D,WAAW,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,CAAG,6BAA6B;YACpE,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,CAAU,8BAA8B;YACtE,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,CAAU,gBAAgB;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,CAAC,6BAA6B,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;QACrD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,EAAE;QACrD,WAAW,GAAG,KAAK,CAAA;QACnB,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAA;QACpC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -94,6 +94,77 @@ function getCurrentBranch(root: string): string {
94
94
 
95
95
  const JFL_LOADED = Symbol.for("jfl-pi-extension-loaded")
96
96
 
97
+ // ─── Pi TUI compatibility layer ──────────────────────────────────────────────
98
+ // Pi 0.62.0+ requires renderCall/renderResult to return Component instances
99
+ // (new Text(...)). We dynamically import pi-tui at runtime and wrap our
100
+ // string-based renderers. If the import fails (older Pi, different install),
101
+ // renderers are disabled and Pi uses its default fallback rendering.
102
+
103
+ let PiText: (new (text: string, px: number, py: number) => any) | null = null
104
+
105
+ async function loadPiTui(): Promise<void> {
106
+ try {
107
+ // pi-tui lives inside Pi's own node_modules, not ours.
108
+ // We run inside Pi's process but our file location is in jfl's package tree,
109
+ // so normal import() can't resolve it. Use createRequire from Pi's location.
110
+ const { createRequire } = await import("module")
111
+ const { execSync } = await import("child_process")
112
+ const piPath = execSync("which pi", { encoding: "utf-8" }).trim()
113
+ // Follow symlink to real path (e.g. npm global → dist/cli.js)
114
+ const { realpathSync } = await import("fs")
115
+ const realPi = realpathSync(piPath)
116
+ const piRequire = createRequire(realPi)
117
+ const tuiPath = piRequire.resolve("@mariozechner/pi-tui")
118
+ const tui = await import(tuiPath)
119
+ PiText = tui.Text
120
+ } catch {
121
+ // pi-tui not resolvable — disable custom renderers, Pi uses fallback
122
+ PiText = null
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Wrap a string-based renderer into a Pi Component.
128
+ * If pi-tui is available, returns new Text(). Otherwise returns undefined
129
+ * so Pi falls back to default rendering.
130
+ */
131
+ function wrapRenderer(
132
+ fn: ((args: any, theme: any) => any) | undefined
133
+ ): ((args: any, theme: any, context: any) => any) | undefined {
134
+ if (!fn || !PiText) return undefined
135
+ return (args: any, theme: any, _context: any) => {
136
+ try {
137
+ const result = fn(args, theme)
138
+ // Old renderers return { render, invalidate }. Extract the lines.
139
+ if (result && typeof result.render === "function") {
140
+ const lines: string[] = result.render(140)
141
+ return new PiText!(lines.join("\n"), 0, 0)
142
+ }
143
+ return result
144
+ } catch {
145
+ return undefined
146
+ }
147
+ }
148
+ }
149
+
150
+ function wrapResultRenderer(
151
+ fn: ((result: any, opts: any, theme: any) => any) | undefined
152
+ ): ((result: any, opts: any, theme: any, context: any) => any) | undefined {
153
+ if (!fn || !PiText) return undefined
154
+ return (result: any, opts: any, theme: any, _context: any) => {
155
+ try {
156
+ const rendered = fn(result, opts, theme)
157
+ if (rendered && typeof rendered.render === "function") {
158
+ const lines: string[] = rendered.render(140)
159
+ return new PiText!(lines.join("\n"), 0, 0)
160
+ }
161
+ return rendered
162
+ } catch {
163
+ return undefined
164
+ }
165
+ }
166
+ }
167
+
97
168
  // ─── Pi extension factory function ───────────────────────────────────────────
98
169
 
99
170
  export default async function jflExtension(pi: any): Promise<void> {
@@ -103,6 +174,9 @@ export default async function jflExtension(pi: any): Promise<void> {
103
174
  }
104
175
  (globalThis as any)[JFL_LOADED] = true
105
176
 
177
+ // Load Pi TUI for renderer compatibility — non-blocking, non-fatal
178
+ await loadPiTui()
179
+
106
180
  let projectCwd = process.cwd()
107
181
  let latestPiCtx: any = null
108
182
 
@@ -170,12 +244,8 @@ export default async function jflExtension(pi: any): Promise<void> {
170
244
  throw new Error(`${err}`)
171
245
  }
172
246
  },
173
- renderCall: tool.renderCall
174
- ? (args: Record<string, any>, theme: PiTheme) => tool.renderCall!(args, theme)
175
- : undefined,
176
- renderResult: tool.renderResult
177
- ? (result: any, options: any, theme: PiTheme) => tool.renderResult!(result, options, theme)
178
- : undefined,
247
+ renderCall: wrapRenderer(tool.renderCall),
248
+ renderResult: wrapResultRenderer(tool.renderResult),
179
249
  })
180
250
  },
181
251
 
@@ -410,49 +480,69 @@ export default async function jflExtension(pi: any): Promise<void> {
410
480
 
411
481
  pi.on("session_shutdown", async (_event: unknown, piCtx: any) => {
412
482
  latestPiCtx = piCtx
413
- onMeshShutdown()
414
- await onPortfolioShutdown(ctx)
415
- await onShutdown(ctx)
416
- await onMapBridgeShutdown(ctx)
483
+ try {
484
+ onMeshShutdown()
485
+ await onPortfolioShutdown(ctx)
486
+ await onShutdown(ctx)
487
+ await onMapBridgeShutdown(ctx)
488
+ } catch (err) {
489
+ ctx.log(`session_shutdown error: ${err}`, "warn")
490
+ }
417
491
  })
418
492
 
419
493
  pi.on("session_before_compact", async (_event: unknown, piCtx: any) => {
420
494
  latestPiCtx = piCtx
421
- return checkJournalBeforeCompact(ctx)
495
+ try {
496
+ return checkJournalBeforeCompact(ctx)
497
+ } catch (err) {
498
+ ctx.log(`session_before_compact error: ${err}`, "warn")
499
+ }
422
500
  })
423
501
 
424
502
  pi.on("before_agent_start", async (event: any, _piCtx: any) => {
425
- const result = await injectContext(ctx, event)
426
- const meshState = injectMeshContext()
427
- const additions = [
428
- result?.systemPromptAddition,
429
- meshState,
430
- ].filter(Boolean).join("\n\n")
431
-
432
- if (additions) {
433
- const current = (event.systemPrompt as string) ?? ""
434
- return {
435
- systemPrompt: current
436
- ? `${current}\n\n${additions}`
437
- : additions,
503
+ try {
504
+ const result = await injectContext(ctx, event)
505
+ const meshState = injectMeshContext()
506
+ const additions = [
507
+ result?.systemPromptAddition,
508
+ meshState,
509
+ ].filter(Boolean).join("\n\n")
510
+
511
+ if (additions) {
512
+ const current = (event.systemPrompt as string) ?? ""
513
+ return {
514
+ systemPrompt: current
515
+ ? `${current}\n\n${additions}`
516
+ : additions,
517
+ }
438
518
  }
519
+ } catch (err) {
520
+ ctx.log(`before_agent_start error: ${err}`, "warn")
439
521
  }
440
522
  })
441
523
 
442
524
  pi.on("agent_start", async (event: any, piCtx: any) => {
443
525
  latestPiCtx = piCtx
444
- await onStratusStart(ctx, event)
445
- jflEmit("agent:start", event)
526
+ try {
527
+ await onStratusStart(ctx, event)
528
+ jflEmit("agent:start", event)
529
+ } catch (err) {
530
+ ctx.log(`agent_start error: ${err}`, "warn")
531
+ }
446
532
  })
447
533
 
448
534
  pi.on("agent_end", async (event: any, piCtx: any) => {
449
535
  latestPiCtx = piCtx
450
- await onStratusEnd(ctx, event)
451
- await onEvalEnd(ctx, event)
452
- await onTrainingAgentEnd(ctx, event)
453
- await updateHudWidget(ctx)
454
- await onJournalAgentEnd(ctx, event)
455
- jflEmit("agent:end", event)
536
+ try {
537
+ await onStratusEnd(ctx, event)
538
+ await onEvalEnd(ctx, event)
539
+ await onTrainingAgentEnd(ctx, event)
540
+ await updateHudWidget(ctx)
541
+ await onJournalAgentEnd(ctx, event)
542
+ jflEmit("agent:end", event)
543
+ } catch (err) {
544
+ ctx.log(`agent_end error: ${err}`, "warn")
545
+ }
456
546
  })
457
547
 
458
548
  pi.on("turn_start", async (event: any, piCtx: any) => {
@@ -468,29 +558,36 @@ export default async function jflExtension(pi: any): Promise<void> {
468
558
 
469
559
  // UserPromptSubmit equivalent — detect approval/done patterns in user input
470
560
  pi.on("input", async (event: any, _piCtx: any) => {
471
- const text = (event.text ?? "").trim()
472
- if (!text) return { action: "continue" }
473
-
474
- const approvalPatterns = /\b(done|approved|ship it|looks good|lgtm|merge it|go ahead|good to go)\b/i
475
- if (approvalPatterns.test(text)) {
476
- const branch = getCurrentBranch(ctx.session.projectRoot)
477
- const hasJournal = hasJournalEntryForSession(ctx.session.projectRoot, branch)
478
- if (!hasJournal) {
479
- // Transform: append journal reminder to the user's message
480
- return {
481
- action: "transform",
482
- text: `${event.text}\n\n[System: The user just approved/completed something. Write a journal entry NOW before proceeding — capture what was approved, decisions made, and next steps. Use the journal format from CLAUDE.md.]`,
561
+ try {
562
+ const text = (event.text ?? "").trim()
563
+ if (!text) return { action: "continue" }
564
+
565
+ const approvalPatterns = /\b(done|approved|ship it|looks good|lgtm|merge it|go ahead|good to go)\b/i
566
+ if (approvalPatterns.test(text)) {
567
+ const branch = getCurrentBranch(ctx.session.projectRoot)
568
+ const hasJournal = hasJournalEntryForSession(ctx.session.projectRoot, branch)
569
+ if (!hasJournal) {
570
+ return {
571
+ action: "transform",
572
+ text: `${event.text}\n\n[System: The user just approved/completed something. Write a journal entry NOW before proceeding — capture what was approved, decisions made, and next steps. Use the journal format from CLAUDE.md.]`,
573
+ }
483
574
  }
484
575
  }
576
+ } catch (err) {
577
+ ctx.log(`input handler error: ${err}`, "warn")
485
578
  }
486
579
  return { action: "continue" }
487
580
  })
488
581
 
489
582
  pi.on("tool_execution_end", async (event: any, piCtx: any) => {
490
583
  latestPiCtx = piCtx
491
- await onToolExecutionEnd(ctx, event) // git commit → journal nudge
492
- checkPurposeHeader(ctx, event) // Write/Edit@purpose check
493
- await onMapToolEnd(ctx, event) // hub event bus
584
+ try {
585
+ await onToolExecutionEnd(ctx, event) // git commit journal nudge
586
+ checkPurposeHeader(ctx, event) // Write/Edit @purpose check
587
+ await onMapToolEnd(ctx, event) // hub event bus
588
+ } catch (err) {
589
+ ctx.log(`tool_execution_end error: ${err}`, "warn")
590
+ }
494
591
  })
495
592
 
496
593
  pi.on("model_select", async (event: any, piCtx: any) => {