poe-code 3.0.217 → 3.0.218

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 (64) hide show
  1. package/dist/index.js +392 -89
  2. package/dist/index.js.map +4 -4
  3. package/dist/providers/claude-code.js +20 -11
  4. package/dist/providers/claude-code.js.map +4 -4
  5. package/dist/providers/codex.js +20 -11
  6. package/dist/providers/codex.js.map +4 -4
  7. package/dist/providers/goose.js +20 -11
  8. package/dist/providers/goose.js.map +4 -4
  9. package/dist/providers/kimi.js +20 -11
  10. package/dist/providers/kimi.js.map +4 -4
  11. package/dist/providers/opencode.js +20 -11
  12. package/dist/providers/opencode.js.map +4 -4
  13. package/dist/providers/poe-agent.js +335 -33
  14. package/dist/providers/poe-agent.js.map +4 -4
  15. package/package.json +2 -1
  16. package/packages/design-system/dist/dashboard/buffer.js +8 -1
  17. package/packages/design-system/dist/dashboard/keymap.d.ts +5 -0
  18. package/packages/design-system/dist/dashboard/keymap.js +146 -12
  19. package/packages/design-system/dist/dashboard/terminal.js +31 -0
  20. package/packages/design-system/dist/dashboard/types.d.ts +1 -0
  21. package/packages/design-system/dist/explorer/actions.d.ts +16 -0
  22. package/packages/design-system/dist/explorer/actions.js +39 -0
  23. package/packages/design-system/dist/explorer/demo.d.ts +13 -0
  24. package/packages/design-system/dist/explorer/demo.js +297 -0
  25. package/packages/design-system/dist/explorer/events.d.ts +61 -0
  26. package/packages/design-system/dist/explorer/events.js +1 -0
  27. package/packages/design-system/dist/explorer/filter.d.ts +10 -0
  28. package/packages/design-system/dist/explorer/filter.js +95 -0
  29. package/packages/design-system/dist/explorer/index.d.ts +8 -0
  30. package/packages/design-system/dist/explorer/index.js +8 -0
  31. package/packages/design-system/dist/explorer/jobs.d.ts +7 -0
  32. package/packages/design-system/dist/explorer/jobs.js +59 -0
  33. package/packages/design-system/dist/explorer/keymap.d.ts +21 -0
  34. package/packages/design-system/dist/explorer/keymap.js +363 -0
  35. package/packages/design-system/dist/explorer/layout.d.ts +20 -0
  36. package/packages/design-system/dist/explorer/layout.js +73 -0
  37. package/packages/design-system/dist/explorer/reducer.d.ts +9 -0
  38. package/packages/design-system/dist/explorer/reducer.js +704 -0
  39. package/packages/design-system/dist/explorer/render/detail.d.ts +4 -0
  40. package/packages/design-system/dist/explorer/render/detail.js +96 -0
  41. package/packages/design-system/dist/explorer/render/footer.d.ts +4 -0
  42. package/packages/design-system/dist/explorer/render/footer.js +49 -0
  43. package/packages/design-system/dist/explorer/render/header.d.ts +4 -0
  44. package/packages/design-system/dist/explorer/render/header.js +56 -0
  45. package/packages/design-system/dist/explorer/render/index.d.ts +8 -0
  46. package/packages/design-system/dist/explorer/render/index.js +61 -0
  47. package/packages/design-system/dist/explorer/render/list.d.ts +4 -0
  48. package/packages/design-system/dist/explorer/render/list.js +106 -0
  49. package/packages/design-system/dist/explorer/render/modal.d.ts +3 -0
  50. package/packages/design-system/dist/explorer/render/modal.js +91 -0
  51. package/packages/design-system/dist/explorer/render/test-fixtures.d.ts +8 -0
  52. package/packages/design-system/dist/explorer/render/test-fixtures.js +156 -0
  53. package/packages/design-system/dist/explorer/runtime.d.ts +2 -0
  54. package/packages/design-system/dist/explorer/runtime.js +282 -0
  55. package/packages/design-system/dist/explorer/runtime.test-helpers.d.ts +50 -0
  56. package/packages/design-system/dist/explorer/runtime.test-helpers.js +101 -0
  57. package/packages/design-system/dist/explorer/state.d.ts +130 -0
  58. package/packages/design-system/dist/explorer/state.js +87 -0
  59. package/packages/design-system/dist/explorer/theme.d.ts +27 -0
  60. package/packages/design-system/dist/explorer/theme.js +97 -0
  61. package/packages/design-system/dist/index.d.ts +3 -0
  62. package/packages/design-system/dist/index.js +3 -0
  63. package/packages/memory/dist/index.js +9 -0
  64. package/packages/memory/dist/index.js.map +3 -3
package/dist/index.js CHANGED
@@ -16556,6 +16556,9 @@ function cellToAnsi(cell) {
16556
16556
  if (style.dim) {
16557
16557
  painter = painter.dim;
16558
16558
  }
16559
+ if (style.underline) {
16560
+ painter = painter.underline;
16561
+ }
16559
16562
  if (style.fg) {
16560
16563
  painter = applyForegroundColor(painter, style.fg);
16561
16564
  }
@@ -16588,13 +16591,16 @@ function normalizeStyle(style) {
16588
16591
  if (style?.dim !== void 0) {
16589
16592
  next.dim = style.dim;
16590
16593
  }
16594
+ if (style?.underline !== void 0) {
16595
+ next.underline = style.underline;
16596
+ }
16591
16597
  return next;
16592
16598
  }
16593
16599
  function normalizeSize(value) {
16594
16600
  return Math.max(0, Math.floor(value));
16595
16601
  }
16596
16602
  function cellsEqual(left, right) {
16597
- return left.ch === right.ch && left.style.fg === right.style.fg && left.style.bg === right.style.bg && left.style.bold === right.style.bold && left.style.dim === right.style.dim;
16603
+ return left.ch === right.ch && left.style.fg === right.style.fg && left.style.bg === right.style.bg && left.style.bold === right.style.bold && left.style.dim === right.style.dim && left.style.underline === right.style.underline;
16598
16604
  }
16599
16605
  function applyForegroundColor(instance, color) {
16600
16606
  if (color.startsWith("#")) {
@@ -17604,24 +17610,60 @@ var init_stats_pane = __esm({
17604
17610
  });
17605
17611
 
17606
17612
  // packages/design-system/src/dashboard/keymap.ts
17607
- function createKeymap(overrides) {
17613
+ function createKeymap(overrides, options) {
17614
+ const resolvedCommands = options?.commands ?? commands;
17615
+ const resolvedDefaults = options?.defaultBindings ?? defaultBindings;
17608
17616
  const bindings = /* @__PURE__ */ new Map();
17609
- for (const command of commands) {
17610
- const keys = overrides?.[command] ?? defaultBindings[command];
17611
- bindings.set(
17612
- command,
17613
- keys.map(parseBinding).filter((binding) => binding !== void 0)
17614
- );
17617
+ const sequences = /* @__PURE__ */ new Set();
17618
+ let pendingSequence = "";
17619
+ for (const command of resolvedCommands) {
17620
+ const keys = overrides?.[command] ?? resolvedDefaults[command];
17621
+ const commandBindings = keys.map(parseBinding).filter((binding) => binding !== void 0);
17622
+ for (const binding of commandBindings) {
17623
+ if (binding.sequence !== void 0) {
17624
+ sequences.add(binding.sequence);
17625
+ }
17626
+ }
17627
+ bindings.set(command, commandBindings);
17615
17628
  }
17616
17629
  return (event) => {
17617
- for (const command of commands) {
17630
+ for (const command of resolvedCommands) {
17618
17631
  const commandBindings = bindings.get(command);
17619
- if (commandBindings?.some((binding) => matches(binding, event))) {
17632
+ if (commandBindings?.some((binding) => matchesSingleKey(binding, event))) {
17633
+ pendingSequence = "";
17620
17634
  return command;
17621
17635
  }
17622
17636
  }
17637
+ const sequenceCommand = resolveSequence(event);
17638
+ if (sequenceCommand !== void 0) {
17639
+ return sequenceCommand;
17640
+ }
17623
17641
  return void 0;
17624
17642
  };
17643
+ function resolveSequence(event) {
17644
+ const token = eventToSequenceToken(event);
17645
+ if (token === void 0) {
17646
+ pendingSequence = "";
17647
+ return void 0;
17648
+ }
17649
+ pendingSequence = `${pendingSequence}${token}`;
17650
+ for (const command of resolvedCommands) {
17651
+ const commandBindings = bindings.get(command);
17652
+ if (commandBindings?.some((binding) => binding.sequence === pendingSequence)) {
17653
+ pendingSequence = "";
17654
+ return command;
17655
+ }
17656
+ }
17657
+ if (hasSequencePrefix(sequences, pendingSequence)) {
17658
+ return void 0;
17659
+ }
17660
+ pendingSequence = token;
17661
+ if (hasSequencePrefix(sequences, pendingSequence)) {
17662
+ return void 0;
17663
+ }
17664
+ pendingSequence = "";
17665
+ return void 0;
17666
+ }
17625
17667
  }
17626
17668
  function parseBinding(binding) {
17627
17669
  const value = binding.trim();
@@ -17654,25 +17696,37 @@ function parseBinding(binding) {
17654
17696
  continue;
17655
17697
  }
17656
17698
  }
17657
- if (parts.length === 1 && isShiftedCharacter(key2)) {
17699
+ const normalizedKey = normalizeKeyName(key2);
17700
+ if (parts.length === 1 && isShiftedCharacter(normalizedKey)) {
17658
17701
  shift = true;
17659
17702
  }
17660
- if (key2.length === 1) {
17703
+ if (normalizedKey.length === 1) {
17704
+ return {
17705
+ ch: normalizeBindingCharacter(normalizedKey, shift),
17706
+ ctrl,
17707
+ meta,
17708
+ shift
17709
+ };
17710
+ }
17711
+ if (!ctrl && !meta && !shift && !isNamedKey(normalizedKey) && isPrintableSequence(normalizedKey)) {
17661
17712
  return {
17662
- ch: normalizeBindingCharacter(key2, shift),
17713
+ sequence: normalizedKey,
17663
17714
  ctrl,
17664
17715
  meta,
17665
17716
  shift
17666
17717
  };
17667
17718
  }
17668
17719
  return {
17669
- name: key2.toLowerCase(),
17720
+ name: normalizedKey.toLowerCase(),
17670
17721
  ctrl,
17671
17722
  meta,
17672
17723
  shift
17673
17724
  };
17674
17725
  }
17675
- function matches(binding, event) {
17726
+ function matchesSingleKey(binding, event) {
17727
+ if (binding.sequence !== void 0) {
17728
+ return false;
17729
+ }
17676
17730
  if (binding.ctrl !== event.ctrl || binding.meta !== event.meta || binding.shift !== event.shift) {
17677
17731
  return false;
17678
17732
  }
@@ -17684,6 +17738,20 @@ function matches(binding, event) {
17684
17738
  }
17685
17739
  return false;
17686
17740
  }
17741
+ function eventToSequenceToken(event) {
17742
+ if (event.ctrl || event.meta || event.ch === void 0) {
17743
+ return void 0;
17744
+ }
17745
+ return event.ch;
17746
+ }
17747
+ function hasSequencePrefix(sequences, prefix) {
17748
+ for (const sequence of sequences) {
17749
+ if (sequence.startsWith(prefix)) {
17750
+ return true;
17751
+ }
17752
+ }
17753
+ return false;
17754
+ }
17687
17755
  function isShiftedCharacter(value) {
17688
17756
  return value.length === 1 && value.toLowerCase() !== value && value.toUpperCase() === value;
17689
17757
  }
@@ -17693,7 +17761,40 @@ function normalizeBindingCharacter(value, shift) {
17693
17761
  }
17694
17762
  return value.toUpperCase();
17695
17763
  }
17696
- var commands, defaultBindings;
17764
+ function normalizeKeyName(value) {
17765
+ if (value.toLowerCase() === "space") {
17766
+ return " ";
17767
+ }
17768
+ if (value === "\u2191") {
17769
+ return "up";
17770
+ }
17771
+ if (value === "\u2193") {
17772
+ return "down";
17773
+ }
17774
+ if (value === "\u2190") {
17775
+ return "left";
17776
+ }
17777
+ if (value === "\u2192") {
17778
+ return "right";
17779
+ }
17780
+ return value;
17781
+ }
17782
+ function isNamedKey(value) {
17783
+ return namedKeys.has(value.toLowerCase());
17784
+ }
17785
+ function isPrintableSequence(value) {
17786
+ if (Array.from(value).length <= 1) {
17787
+ return false;
17788
+ }
17789
+ for (const char of value) {
17790
+ const codePoint = char.codePointAt(0);
17791
+ if (codePoint === void 0 || codePoint < 32 || codePoint === 127) {
17792
+ return false;
17793
+ }
17794
+ }
17795
+ return true;
17796
+ }
17797
+ var commands, defaultBindings, namedKeys;
17697
17798
  var init_keymap = __esm({
17698
17799
  "packages/design-system/src/dashboard/keymap.ts"() {
17699
17800
  "use strict";
@@ -17706,6 +17807,22 @@ var init_keymap = __esm({
17706
17807
  retry: ["r"],
17707
17808
  "view-log": ["l"]
17708
17809
  };
17810
+ namedKeys = /* @__PURE__ */ new Set([
17811
+ "backspace",
17812
+ "delete",
17813
+ "down",
17814
+ "end",
17815
+ "enter",
17816
+ "escape",
17817
+ "home",
17818
+ "left",
17819
+ "pagedown",
17820
+ "pageup",
17821
+ "return",
17822
+ "right",
17823
+ "tab",
17824
+ "up"
17825
+ ]);
17709
17826
  }
17710
17827
  });
17711
17828
 
@@ -18027,6 +18144,10 @@ function createTerminalDriver(opts) {
18027
18144
  };
18028
18145
  }
18029
18146
  function toKeypressEvent(str2, key2) {
18147
+ const controlCharacter = controlCharacterToKeypress(key2?.sequence);
18148
+ if (controlCharacter !== void 0) {
18149
+ return controlCharacter;
18150
+ }
18030
18151
  const ctrl = key2?.ctrl ?? false;
18031
18152
  const meta = key2?.meta ?? false;
18032
18153
  const shift = key2?.shift ?? false;
@@ -18048,12 +18169,22 @@ function extractPrintableCharacter(str2, sequence) {
18048
18169
  if (isPrintableCharacter(str2)) {
18049
18170
  return str2;
18050
18171
  }
18172
+ if (isSinglePrintableSequence(sequence)) {
18173
+ return sequence;
18174
+ }
18051
18175
  if (sequence === void 0 || sequence.length <= 1 || sequence[0] !== "\x1B") {
18052
18176
  return void 0;
18053
18177
  }
18054
18178
  const candidate = sequence.slice(1);
18055
18179
  return isPrintableCharacter(candidate) ? candidate : void 0;
18056
18180
  }
18181
+ function isSinglePrintableSequence(value) {
18182
+ if (value === void 0 || Array.from(value).length !== 1) {
18183
+ return false;
18184
+ }
18185
+ const codePoint = value.codePointAt(0);
18186
+ return codePoint !== void 0 && codePoint >= 32 && codePoint !== 127;
18187
+ }
18057
18188
  function isPrintableCharacter(value) {
18058
18189
  if (value === void 0 || Array.from(value).length !== 1) {
18059
18190
  return false;
@@ -18061,6 +18192,23 @@ function isPrintableCharacter(value) {
18061
18192
  const codePoint = value.codePointAt(0);
18062
18193
  return codePoint !== void 0 && codePoint >= 32 && codePoint !== 127;
18063
18194
  }
18195
+ function controlCharacterToKeypress(sequence) {
18196
+ if (sequence === "") {
18197
+ return { ch: "/", ctrl: true, meta: false, shift: false };
18198
+ }
18199
+ if (sequence !== void 0 && sequence.length === 1) {
18200
+ const code = sequence.charCodeAt(0);
18201
+ if (code >= 1 && code <= 26 && code !== 9 && code !== 10 && code !== 13) {
18202
+ return {
18203
+ name: String.fromCharCode(code + 96),
18204
+ ctrl: true,
18205
+ meta: false,
18206
+ shift: false
18207
+ };
18208
+ }
18209
+ }
18210
+ return void 0;
18211
+ }
18064
18212
  function cursorPositionAnsi(x, y) {
18065
18213
  return `\x1B[${normalizeCoordinate(y) + 1};${normalizeCoordinate(x) + 1}H`;
18066
18214
  }
@@ -18291,6 +18439,158 @@ var init_dashboard2 = __esm({
18291
18439
  }
18292
18440
  });
18293
18441
 
18442
+ // packages/design-system/src/explorer/jobs.ts
18443
+ var init_jobs2 = __esm({
18444
+ "packages/design-system/src/explorer/jobs.ts"() {
18445
+ "use strict";
18446
+ }
18447
+ });
18448
+
18449
+ // packages/design-system/src/explorer/layout.ts
18450
+ var init_layout2 = __esm({
18451
+ "packages/design-system/src/explorer/layout.ts"() {
18452
+ "use strict";
18453
+ }
18454
+ });
18455
+
18456
+ // packages/design-system/src/explorer/keymap.ts
18457
+ var init_keymap2 = __esm({
18458
+ "packages/design-system/src/explorer/keymap.ts"() {
18459
+ "use strict";
18460
+ }
18461
+ });
18462
+
18463
+ // packages/design-system/src/explorer/state.ts
18464
+ var REGION_HEADER, REGION_LIST, REGION_DETAIL, REGION_FOOTER, REGION_MODAL, REGION_TOAST, REGION_ALL;
18465
+ var init_state3 = __esm({
18466
+ "packages/design-system/src/explorer/state.ts"() {
18467
+ "use strict";
18468
+ init_keymap2();
18469
+ REGION_HEADER = 1 << 0;
18470
+ REGION_LIST = 1 << 1;
18471
+ REGION_DETAIL = 1 << 2;
18472
+ REGION_FOOTER = 1 << 3;
18473
+ REGION_MODAL = 1 << 4;
18474
+ REGION_TOAST = 1 << 5;
18475
+ REGION_ALL = REGION_HEADER | REGION_LIST | REGION_DETAIL | REGION_FOOTER | REGION_MODAL | REGION_TOAST;
18476
+ }
18477
+ });
18478
+
18479
+ // packages/design-system/src/explorer/theme.ts
18480
+ var init_theme = __esm({
18481
+ "packages/design-system/src/explorer/theme.ts"() {
18482
+ "use strict";
18483
+ }
18484
+ });
18485
+
18486
+ // packages/design-system/src/explorer/render/detail.ts
18487
+ var init_detail = __esm({
18488
+ "packages/design-system/src/explorer/render/detail.ts"() {
18489
+ "use strict";
18490
+ init_theme();
18491
+ }
18492
+ });
18493
+
18494
+ // packages/design-system/src/explorer/render/footer.ts
18495
+ var init_footer2 = __esm({
18496
+ "packages/design-system/src/explorer/render/footer.ts"() {
18497
+ "use strict";
18498
+ init_theme();
18499
+ }
18500
+ });
18501
+
18502
+ // packages/design-system/src/explorer/render/header.ts
18503
+ var init_header = __esm({
18504
+ "packages/design-system/src/explorer/render/header.ts"() {
18505
+ "use strict";
18506
+ init_theme();
18507
+ }
18508
+ });
18509
+
18510
+ // packages/design-system/src/explorer/render/list.ts
18511
+ var init_list = __esm({
18512
+ "packages/design-system/src/explorer/render/list.ts"() {
18513
+ "use strict";
18514
+ init_theme();
18515
+ }
18516
+ });
18517
+
18518
+ // packages/design-system/src/explorer/render/modal.ts
18519
+ var init_modal = __esm({
18520
+ "packages/design-system/src/explorer/render/modal.ts"() {
18521
+ "use strict";
18522
+ init_theme();
18523
+ }
18524
+ });
18525
+
18526
+ // packages/design-system/src/explorer/render/index.ts
18527
+ var init_render2 = __esm({
18528
+ "packages/design-system/src/explorer/render/index.ts"() {
18529
+ "use strict";
18530
+ init_layout2();
18531
+ init_state3();
18532
+ init_theme();
18533
+ init_detail();
18534
+ init_footer2();
18535
+ init_header();
18536
+ init_list();
18537
+ init_modal();
18538
+ init_detail();
18539
+ init_footer2();
18540
+ init_header();
18541
+ init_list();
18542
+ init_modal();
18543
+ }
18544
+ });
18545
+
18546
+ // packages/design-system/src/explorer/actions.ts
18547
+ var init_actions = __esm({
18548
+ "packages/design-system/src/explorer/actions.ts"() {
18549
+ "use strict";
18550
+ }
18551
+ });
18552
+
18553
+ // packages/design-system/src/explorer/filter.ts
18554
+ var init_filter = __esm({
18555
+ "packages/design-system/src/explorer/filter.ts"() {
18556
+ "use strict";
18557
+ }
18558
+ });
18559
+
18560
+ // packages/design-system/src/explorer/reducer.ts
18561
+ var init_reducer = __esm({
18562
+ "packages/design-system/src/explorer/reducer.ts"() {
18563
+ "use strict";
18564
+ init_actions();
18565
+ init_filter();
18566
+ init_state3();
18567
+ }
18568
+ });
18569
+
18570
+ // packages/design-system/src/explorer/runtime.ts
18571
+ var init_runtime3 = __esm({
18572
+ "packages/design-system/src/explorer/runtime.ts"() {
18573
+ "use strict";
18574
+ init_buffer();
18575
+ init_terminal();
18576
+ init_jobs2();
18577
+ init_layout2();
18578
+ init_render2();
18579
+ init_reducer();
18580
+ init_state3();
18581
+ }
18582
+ });
18583
+
18584
+ // packages/design-system/src/explorer/index.ts
18585
+ var init_explorer = __esm({
18586
+ "packages/design-system/src/explorer/index.ts"() {
18587
+ "use strict";
18588
+ init_runtime3();
18589
+ init_state3();
18590
+ init_keymap2();
18591
+ }
18592
+ });
18593
+
18294
18594
  // packages/design-system/src/prompts/primitives/cancel.ts
18295
18595
  import chalk10 from "chalk";
18296
18596
  import { isCancel } from "@clack/prompts";
@@ -18649,7 +18949,7 @@ var init_prompts = __esm({
18649
18949
  });
18650
18950
 
18651
18951
  // packages/design-system/src/prompts/theme.ts
18652
- var init_theme = __esm({
18952
+ var init_theme2 = __esm({
18653
18953
  "packages/design-system/src/prompts/theme.ts"() {
18654
18954
  "use strict";
18655
18955
  init_colors();
@@ -18696,9 +18996,11 @@ var init_src11 = __esm({
18696
18996
  init_acp();
18697
18997
  init_dashboard2();
18698
18998
  init_dashboard2();
18999
+ init_explorer();
19000
+ init_explorer();
18699
19001
  init_prompts();
18700
19002
  init_prompts();
18701
- init_theme();
19003
+ init_theme2();
18702
19004
  init_static();
18703
19005
  init_static();
18704
19006
  init_terminal_markdown();
@@ -23420,9 +23722,9 @@ function getOptionalGrepOutputMode(args, key2) {
23420
23722
  function formatDisplayPath(cwd, filePath) {
23421
23723
  return path28.relative(cwd, filePath) || path28.basename(filePath);
23422
23724
  }
23423
- async function sortPathsByModifiedTime(matches2, fs20) {
23725
+ async function sortPathsByModifiedTime(matches, fs20) {
23424
23726
  const entries = await Promise.all(
23425
- matches2.map(async (match) => ({
23727
+ matches.map(async (match) => ({
23426
23728
  path: match,
23427
23729
  mtimeMs: (await fs20.stat(match)).mtimeMs
23428
23730
  }))
@@ -23807,12 +24109,12 @@ var init_poe_agent_plugin_files = __esm({
23807
24109
  allowedPaths,
23808
24110
  getOptionalString(args, "path") ?? "."
23809
24111
  );
23810
- const matches2 = await globFiles({
24112
+ const matches = await globFiles({
23811
24113
  pattern: getRequiredString(args, "pattern"),
23812
24114
  cwd: searchPath
23813
24115
  });
23814
24116
  const sortedMatches = await sortPathsByModifiedTime(
23815
- matches2.map((match) => resolveAllowedPath(cwd, allowedPaths, match)),
24117
+ matches.map((match) => resolveAllowedPath(cwd, allowedPaths, match)),
23816
24118
  fs20
23817
24119
  );
23818
24120
  if (sortedMatches.length === 0) {
@@ -33414,22 +33716,22 @@ function walkUnion(schema2, value, path111, state) {
33414
33716
  return walkObject(candidateBranches[0], value, path111, state);
33415
33717
  }
33416
33718
  }
33417
- const matches2 = [];
33719
+ const matches = [];
33418
33720
  for (const branch of schema2.branches) {
33419
33721
  const branchState = { issues: [] };
33420
33722
  const result = walkObject(branch, value, path111, branchState);
33421
33723
  if (branchState.issues.length === 0 && result.present) {
33422
- matches2.push(result.value);
33724
+ matches.push(result.value);
33423
33725
  }
33424
33726
  }
33425
- if (matches2.length === 1) {
33426
- return { present: true, value: matches2[0] };
33727
+ if (matches.length === 1) {
33728
+ return { present: true, value: matches[0] };
33427
33729
  }
33428
33730
  addIssue(
33429
33731
  state,
33430
33732
  path111,
33431
33733
  "exactly one union branch",
33432
- matches2.length === 0 ? "no matching branches" : `${matches2.length} matching branches`,
33734
+ matches.length === 0 ? "no matching branches" : `${matches.length} matching branches`,
33433
33735
  `Expected exactly one union branch at ${formatPath(path111)}`
33434
33736
  );
33435
33737
  return { present: true, value };
@@ -39375,7 +39677,7 @@ function createLoggerFactory(emitter, theme) {
39375
39677
  return;
39376
39678
  }
39377
39679
  const maxWidth = Math.min(process.stdout.columns || 80, 80) - 6;
39378
- const wrapped = steps.map((step) => wrapText3(step, maxWidth)).join("\n");
39680
+ const wrapped = steps.map((step2) => wrapText3(step2, maxWidth)).join("\n");
39379
39681
  note(wrapped, "Next steps.");
39380
39682
  },
39381
39683
  feedback(label, url) {
@@ -41437,12 +41739,12 @@ function describeExecutionContext(selection) {
41437
41739
  return selection.stepName ? `task "${selection.task.id}" step "${selection.stepName}"` : `task "${selection.task.id}"`;
41438
41740
  }
41439
41741
  async function resolveFileIncludes(template2, cwd, readFile49) {
41440
- const matches2 = [...template2.matchAll(FILE_INCLUDE_PATTERN)];
41441
- if (matches2.length === 0) {
41742
+ const matches = [...template2.matchAll(FILE_INCLUDE_PATTERN)];
41743
+ if (matches.length === 0) {
41442
41744
  return template2;
41443
41745
  }
41444
41746
  let result = template2;
41445
- for (const match of matches2) {
41747
+ for (const match of matches) {
41446
41748
  const absolutePath = path54.resolve(cwd, match[1]);
41447
41749
  const content = await readFile49(absolutePath, "utf8");
41448
41750
  result = result.replace(match[0], content);
@@ -41459,12 +41761,12 @@ function buildExecutionPrompt(input) {
41459
41761
  if (!input.selection.stepName) {
41460
41762
  return resolvedTaskPrompt;
41461
41763
  }
41462
- const step = input.steps[input.selection.stepName];
41463
- if (!step) {
41764
+ const step2 = input.steps[input.selection.stepName];
41765
+ if (!step2) {
41464
41766
  throw new Error(`Missing step definition for "${input.selection.stepName}".`);
41465
41767
  }
41466
41768
  return interpolatePipelineVars(
41467
- step.prompt,
41769
+ step2.prompt,
41468
41770
  {
41469
41771
  ...input.vars ?? {},
41470
41772
  id: input.selection.task.id,
@@ -41649,11 +41951,11 @@ function resolveMode2(stepName, steps) {
41649
41951
  if (!stepName) {
41650
41952
  return "yolo";
41651
41953
  }
41652
- const step = steps[stepName];
41653
- if (!step) {
41954
+ const step2 = steps[stepName];
41955
+ if (!step2) {
41654
41956
  throw new Error(`Missing step definition for "${stepName}".`);
41655
41957
  }
41656
- return step.mode;
41958
+ return step2.mode;
41657
41959
  }
41658
41960
  function planIdFromArchivePath(absolutePlanPath) {
41659
41961
  const stem = path56.basename(absolutePlanPath, ".md");
@@ -43912,7 +44214,7 @@ async function archiveSelectedPlan(entry, fs20) {
43912
44214
  async function deletePlan(entry, fs20) {
43913
44215
  await fs20.unlink(entry.absolutePath);
43914
44216
  }
43915
- var init_actions = __esm({
44217
+ var init_actions2 = __esm({
43916
44218
  "packages/plan-browser/src/actions.ts"() {
43917
44219
  "use strict";
43918
44220
  }
@@ -44017,7 +44319,7 @@ var init_browser = __esm({
44017
44319
  "use strict";
44018
44320
  init_src11();
44019
44321
  init_src11();
44020
- init_actions();
44322
+ init_actions2();
44021
44323
  init_discovery4();
44022
44324
  init_format();
44023
44325
  }
@@ -44028,7 +44330,7 @@ var init_src28 = __esm({
44028
44330
  "packages/plan-browser/src/index.ts"() {
44029
44331
  "use strict";
44030
44332
  init_discovery4();
44031
- init_actions();
44333
+ init_actions2();
44032
44334
  init_format();
44033
44335
  init_browser();
44034
44336
  }
@@ -46217,21 +46519,21 @@ function findDiscriminator(branches, root) {
46217
46519
  const candidateKeys = Object.keys(firstBranch.properties ?? {});
46218
46520
  for (const candidate of candidateKeys) {
46219
46521
  const values = [];
46220
- let matches2 = true;
46522
+ let matches = true;
46221
46523
  for (const branch of branches) {
46222
46524
  const requiredKeys = new Set(branch.required ?? []);
46223
46525
  if (!requiredKeys.has(candidate)) {
46224
- matches2 = false;
46526
+ matches = false;
46225
46527
  break;
46226
46528
  }
46227
46529
  const literal = getDiscriminatorLiteral(branch, candidate, root);
46228
46530
  if (literal === void 0) {
46229
- matches2 = false;
46531
+ matches = false;
46230
46532
  break;
46231
46533
  }
46232
46534
  values.push(literal);
46233
46535
  }
46234
- if (matches2 && new Set(values).size === values.length) {
46536
+ if (matches && new Set(values).size === values.length) {
46235
46537
  return candidate;
46236
46538
  }
46237
46539
  }
@@ -48753,7 +49055,7 @@ function scheduleRetry(state, entry) {
48753
49055
  function cancelRetry(state, taskId) {
48754
49056
  state.retry_attempts.delete(taskId);
48755
49057
  }
48756
- var init_state3 = __esm({
49058
+ var init_state4 = __esm({
48757
49059
  "packages/agent-maestro/src/runtime/state.ts"() {
48758
49060
  "use strict";
48759
49061
  }
@@ -48943,7 +49245,7 @@ var init_reconcile = __esm({
48943
49245
  "packages/agent-maestro/src/runtime/reconcile.ts"() {
48944
49246
  "use strict";
48945
49247
  init_src8();
48946
- init_state3();
49248
+ init_state4();
48947
49249
  init_manager();
48948
49250
  }
48949
49251
  });
@@ -48952,8 +49254,8 @@ var init_reconcile = __esm({
48952
49254
  function renderTaskPrompt(template2, vars) {
48953
49255
  return interpolatePipelineVars(resolveTaskTemplate(template2), renderVars(vars));
48954
49256
  }
48955
- function renderStepPrompt(step, vars) {
48956
- return interpolatePipelineVars(step.prompt, renderVars(vars));
49257
+ function renderStepPrompt(step2, vars) {
49258
+ return interpolatePipelineVars(step2.prompt, renderVars(vars));
48957
49259
  }
48958
49260
  function resolveTaskTemplate(template2) {
48959
49261
  return template2.length === 0 ? DEFAULT_TASK_PROMPT : template2;
@@ -48971,7 +49273,7 @@ function renderVars(vars) {
48971
49273
  };
48972
49274
  }
48973
49275
  var DEFAULT_TASK_PROMPT;
48974
- var init_render2 = __esm({
49276
+ var init_render3 = __esm({
48975
49277
  "packages/agent-maestro/src/prompt/render.ts"() {
48976
49278
  "use strict";
48977
49279
  init_src25();
@@ -49040,7 +49342,7 @@ var init_runner4 = __esm({
49040
49342
  "packages/agent-maestro/src/agent/runner.ts"() {
49041
49343
  "use strict";
49042
49344
  init_src13();
49043
- init_render2();
49345
+ init_render3();
49044
49346
  init_phases();
49045
49347
  AttemptRunner = class {
49046
49348
  constructor(args) {
@@ -49068,8 +49370,8 @@ var init_runner4 = __esm({
49068
49370
  return setupBoundary;
49069
49371
  }
49070
49372
  }
49071
- for (const [name, step] of Object.entries(this.args.steps.steps)) {
49072
- const stepFailure = await this.runNamedStep(name, step);
49373
+ for (const [name, step2] of Object.entries(this.args.steps.steps)) {
49374
+ const stepFailure = await this.runNamedStep(name, step2);
49073
49375
  if (stepFailure) {
49074
49376
  if (stepFailure.failure === "canceled") {
49075
49377
  return this.cancel();
@@ -49087,24 +49389,24 @@ var init_runner4 = __esm({
49087
49389
  return { reason: "normal" };
49088
49390
  }
49089
49391
  async runSetup() {
49090
- const step = this.args.steps.setup;
49091
- if (!step) {
49392
+ const step2 = this.args.steps.setup;
49393
+ if (!step2) {
49092
49394
  return void 0;
49093
49395
  }
49094
49396
  this.transition("running-setup", { step: "setup" });
49095
- return this.runStep("setup", step);
49397
+ return this.runStep("setup", step2);
49096
49398
  }
49097
- async runNamedStep(name, step) {
49399
+ async runNamedStep(name, step2) {
49098
49400
  this.transition("running-step", { step: name });
49099
- return this.runStep(name, step);
49401
+ return this.runStep(name, step2);
49100
49402
  }
49101
49403
  async runTeardownBestEffort() {
49102
- const step = this.args.steps.teardown;
49103
- if (!step || this.state.phase === "canceled") {
49404
+ const step2 = this.args.steps.teardown;
49405
+ if (!step2 || this.state.phase === "canceled") {
49104
49406
  return;
49105
49407
  }
49106
49408
  this.transition("running-teardown", { step: "teardown" });
49107
- const outcome = await this.runStep("teardown", step);
49409
+ const outcome = await this.runStep("teardown", step2);
49108
49410
  if (outcome) {
49109
49411
  this.args.deps.logger?.warn("teardown failed", {
49110
49412
  reason: outcome.reason,
@@ -49114,14 +49416,14 @@ var init_runner4 = __esm({
49114
49416
  });
49115
49417
  }
49116
49418
  }
49117
- async runStep(name, step) {
49419
+ async runStep(name, step2) {
49118
49420
  let prompt;
49119
49421
  try {
49120
49422
  const taskPrompt = renderTaskPrompt(this.args.deps.taskPromptTemplate ?? "", {
49121
49423
  task: this.args.task,
49122
49424
  attempt: this.args.attempt
49123
49425
  });
49124
- prompt = renderStepPrompt(step, {
49426
+ prompt = renderStepPrompt(step2, {
49125
49427
  prompt: taskPrompt,
49126
49428
  task: this.args.task,
49127
49429
  attempt: this.args.attempt
@@ -49131,10 +49433,10 @@ var init_runner4 = __esm({
49131
49433
  }
49132
49434
  try {
49133
49435
  const spawn11 = this.args.deps.spawn ?? spawn4;
49134
- const result = await spawn11(step.agent ?? this.args.cfg.agent.service, {
49436
+ const result = await spawn11(step2.agent ?? this.args.cfg.agent.service, {
49135
49437
  prompt,
49136
- model: step.model,
49137
- mode: step.mode,
49438
+ model: step2.model,
49439
+ mode: step2.mode,
49138
49440
  signal: this.args.abort
49139
49441
  });
49140
49442
  this.args.deps.onEvent?.({
@@ -49468,7 +49770,7 @@ var init_loop3 = __esm({
49468
49770
  init_manager();
49469
49771
  init_reconcile();
49470
49772
  init_retry();
49471
- init_state3();
49773
+ init_state4();
49472
49774
  }
49473
49775
  });
49474
49776
 
@@ -49744,20 +50046,20 @@ var init_src32 = __esm({
49744
50046
  init_schema3();
49745
50047
  init_validate3();
49746
50048
  init_reconcile();
49747
- init_state3();
50049
+ init_state4();
49748
50050
  init_loop3();
49749
50051
  init_manager();
49750
50052
  init_phases();
49751
50053
  init_retry();
49752
50054
  init_sanitize();
49753
- init_state3();
50055
+ init_state4();
49754
50056
  init_reconcile();
49755
50057
  init_loop3();
49756
50058
  init_state_machine3();
49757
50059
  init_load();
49758
50060
  init_schema3();
49759
50061
  init_validate3();
49760
- init_render2();
50062
+ init_render3();
49761
50063
  init_runner4();
49762
50064
  init_manager();
49763
50065
  STOP_BUDGET_MS = 1e4;
@@ -50130,7 +50432,7 @@ function createSupervisor(options) {
50130
50432
  options.fs
50131
50433
  );
50132
50434
  const logSource = createLogSource(options.onLog);
50133
- let state = createInitialState(spec10, runner);
50435
+ let state = createInitialState2(spec10, runner);
50134
50436
  let handle = null;
50135
50437
  let runId = 0;
50136
50438
  let startPromise = null;
@@ -50353,7 +50655,7 @@ function resolveRunner(options) {
50353
50655
  }
50354
50656
  return createHostRunner();
50355
50657
  }
50356
- function createInitialState(spec10, runner) {
50658
+ function createInitialState2(spec10, runner) {
50357
50659
  return {
50358
50660
  id: spec10.id,
50359
50661
  pid: null,
@@ -53430,8 +53732,8 @@ async function runServiceInstall(definition, context) {
53430
53732
  return true;
53431
53733
  }
53432
53734
  const platformSteps = filterStepsByPlatform(definition.steps, context.platform);
53433
- for (const step of platformSteps) {
53434
- await runInstallStep(step, context);
53735
+ for (const step2 of platformSteps) {
53736
+ await runInstallStep(step2, context);
53435
53737
  }
53436
53738
  await definition.check.run(checkContext);
53437
53739
  if (definition.postChecks) {
@@ -53444,8 +53746,8 @@ async function runServiceInstall(definition, context) {
53444
53746
  );
53445
53747
  return true;
53446
53748
  }
53447
- function describeInstallCommand(step) {
53448
- return `[${step.id}] ${formatCommand3(step.command, step.args)}`;
53749
+ function describeInstallCommand(step2) {
53750
+ return `[${step2.id}] ${formatCommand3(step2.command, step2.args)}`;
53449
53751
  }
53450
53752
  function formatCommand3(command, args) {
53451
53753
  return [command, ...args.map(quoteIfNeeded)].join(" ");
@@ -53461,24 +53763,24 @@ function quoteIfNeeded(value) {
53461
53763
  }
53462
53764
  function filterStepsByPlatform(steps, platform) {
53463
53765
  return steps.filter(
53464
- (step) => !step.platforms || step.platforms.includes(platform)
53766
+ (step2) => !step2.platforms || step2.platforms.includes(platform)
53465
53767
  );
53466
53768
  }
53467
53769
  function logInstallDryRun(definition, context) {
53468
53770
  context.logger(`Dry run: would install ${definition.summary}.`);
53469
53771
  const platformSteps = filterStepsByPlatform(definition.steps, context.platform);
53470
- for (const step of platformSteps) {
53471
- context.logger(`Dry run: ${describeInstallCommand(step)}`);
53772
+ for (const step2 of platformSteps) {
53773
+ context.logger(`Dry run: ${describeInstallCommand(step2)}`);
53472
53774
  }
53473
53775
  }
53474
- async function runInstallStep(step, context) {
53475
- context.logger(`Running ${describeInstallCommand(step)}`);
53476
- const result = await context.runCommand(step.command, step.args);
53776
+ async function runInstallStep(step2, context) {
53777
+ context.logger(`Running ${describeInstallCommand(step2)}`);
53778
+ const result = await context.runCommand(step2.command, step2.args);
53477
53779
  if (result.exitCode !== 0) {
53478
53780
  const stderr = result.stderr.trim();
53479
53781
  const suffix = stderr.length > 0 ? `: ${stderr}` : "";
53480
53782
  throw new Error(
53481
- `${describeInstallCommand(step)} failed with exit code ${result.exitCode}${suffix}`
53783
+ `${describeInstallCommand(step2)} failed with exit code ${result.exitCode}${suffix}`
53482
53784
  );
53483
53785
  }
53484
53786
  }
@@ -61532,9 +61834,9 @@ function formatTaskStartMessage(progress) {
61532
61834
  if (progress.phase) {
61533
61835
  return `${progress.taskTitle}...`;
61534
61836
  }
61535
- const step = progress.stepName ? ` (${progress.stepName})` : "";
61837
+ const step2 = progress.stepName ? ` (${progress.stepName})` : "";
61536
61838
  const stepCounter = progress.stepIndex !== void 0 && progress.totalSteps !== void 0 ? ` step ${progress.stepIndex}/${progress.totalSteps}` : "";
61537
- return `Task ${progress.taskIndex}/${progress.totalTasks}: ${progress.taskId}${step}${stepCounter}`;
61839
+ return `Task ${progress.taskIndex}/${progress.totalTasks}: ${progress.taskId}${step2}${stepCounter}`;
61538
61840
  }
61539
61841
  function formatTaskCompleteMessage(progress) {
61540
61842
  const duration = formatDashboardDuration(progress.durationMs);
@@ -67072,7 +67374,7 @@ function registerRuntimeJobsCommand(runtime, root, container) {
67072
67374
  registerRuntimeJobsSyncCommand(jobs, root, container);
67073
67375
  registerRuntimeJobsSandboxCommand(jobs, root, container);
67074
67376
  }
67075
- var init_jobs2 = __esm({
67377
+ var init_jobs3 = __esm({
67076
67378
  "src/cli/commands/runtime/jobs/index.ts"() {
67077
67379
  "use strict";
67078
67380
  init_attach();
@@ -67231,12 +67533,12 @@ function registerRuntimeCommand(program, container) {
67231
67533
  registerRuntimeTemplatesCommand(runtime, program, container);
67232
67534
  registerRuntimeJobsCommand(runtime, program, container);
67233
67535
  }
67234
- var init_runtime3 = __esm({
67536
+ var init_runtime4 = __esm({
67235
67537
  "src/cli/commands/runtime/index.ts"() {
67236
67538
  "use strict";
67237
67539
  init_build();
67238
67540
  init_init2();
67239
- init_jobs2();
67541
+ init_jobs3();
67240
67542
  init_templates4();
67241
67543
  }
67242
67544
  });
@@ -84213,7 +84515,7 @@ var init_package2 = __esm({
84213
84515
  "package.json"() {
84214
84516
  package_default2 = {
84215
84517
  name: "poe-code",
84216
- version: "3.0.217",
84518
+ version: "3.0.218",
84217
84519
  description: "CLI tool to configure Poe API for developer workflows.",
84218
84520
  type: "module",
84219
84521
  main: "./dist/index.js",
@@ -84283,6 +84585,7 @@ var init_package2 = __esm({
84283
84585
  "metric:test_count": "node scripts/metric-test-count.mjs",
84284
84586
  "metric:test_duration": "node scripts/metric-test-duration.mjs",
84285
84587
  "demo:dashboard": "tsx packages/design-system/src/dashboard/demo.ts",
84588
+ "demo:explorer": "tsx packages/design-system/src/explorer/demo.ts",
84286
84589
  replay: "tsx packages/agent-spawn/src/acp/replay-cli.ts",
84287
84590
  "codegen:plan-schemas": "tsx scripts/generate-plan-schemas.ts",
84288
84591
  "codegen:harness-schemas": "tsx scripts/generate-harness-schemas.ts",
@@ -84887,7 +85190,7 @@ var init_program = __esm({
84887
85190
  init_launch2();
84888
85191
  init_memory2();
84889
85192
  init_provider();
84890
- init_runtime3();
85193
+ init_runtime4();
84891
85194
  await init_harness2();
84892
85195
  init_braintrust();
84893
85196
  init_tasks2();