pilotswarm 0.5.33 → 0.5.35

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 (101) hide show
  1. package/package.json +2 -2
  2. package/tui/src/app.js +10 -0
  3. package/tui/src/node-sdk-transport.js +11 -0
  4. package/ui/core/src/controller.js +533 -24
  5. package/ui/core/src/formatting.js +13 -1
  6. package/ui/core/src/history.js +8 -0
  7. package/ui/core/src/reducer.js +172 -28
  8. package/ui/core/src/selectors.js +160 -272
  9. package/ui/core/src/state.js +34 -1
  10. package/ui/core/src/themes/catppuccin-mocha.js +2 -1
  11. package/ui/core/src/themes/cobalt2.js +2 -1
  12. package/ui/core/src/themes/doom.js +2 -1
  13. package/ui/core/src/themes/dracula.js +2 -1
  14. package/ui/core/src/themes/duroxide.js +136 -0
  15. package/ui/core/src/themes/github-dark.js +2 -1
  16. package/ui/core/src/themes/github-light.js +2 -1
  17. package/ui/core/src/themes/gruvbox-dark.js +2 -1
  18. package/ui/core/src/themes/hacker-x-matrix.js +2 -1
  19. package/ui/core/src/themes/hacker-x-orion-prime.js +2 -1
  20. package/ui/core/src/themes/helpers.js +22 -4
  21. package/ui/core/src/themes/high-contrast-mono.js +2 -1
  22. package/ui/core/src/themes/index.js +26 -5
  23. package/ui/core/src/themes/ms-dos.js +2 -1
  24. package/ui/core/src/themes/noctis-obscuro.js +2 -1
  25. package/ui/core/src/themes/noctis.js +2 -1
  26. package/ui/core/src/themes/rust.js +125 -0
  27. package/ui/core/src/themes/spongebob.js +110 -0
  28. package/ui/core/src/themes/terminal-green.js +2 -1
  29. package/ui/core/src/themes/win95.js +2 -1
  30. package/ui/core/src/themes/winamp.js +2 -1
  31. package/ui/core/src/themes/workspace-dark.js +2 -1
  32. package/ui/react/src/web-app.js +1153 -307
  33. package/web/dist/assets/{abnfDiagram-VRR7QNED-DlP1x0QR.js → abnfDiagram-VRR7QNED-BwJEohLG.js} +1 -1
  34. package/web/dist/assets/{arc-Zo_8acjl.js → arc-CWUJ_S5s.js} +1 -1
  35. package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-Bc18aajT.js → architectureDiagram-ZJ3FMSHR-i6mrLxuE.js} +1 -1
  36. package/web/dist/assets/{blockDiagram-677ZJIJ3-DU76JwlX.js → blockDiagram-677ZJIJ3-C_KG-qPQ.js} +1 -1
  37. package/web/dist/assets/{c4Diagram-LMCZKHZV-COqs9Vhg.js → c4Diagram-LMCZKHZV-BBJH7hbB.js} +1 -1
  38. package/web/dist/assets/channel-5Ddqi9ib.js +1 -0
  39. package/web/dist/assets/{chunk-2Q5K7J3B-DLg4HU8R.js → chunk-2Q5K7J3B-CXwaFcaM.js} +1 -1
  40. package/web/dist/assets/{chunk-32BRIVSS-CU0Q4Vsz.js → chunk-32BRIVSS-C8ujjkK-.js} +1 -1
  41. package/web/dist/assets/{chunk-5VM5RSS4-BqRSeab5.js → chunk-5VM5RSS4-M9rz7YYk.js} +1 -1
  42. package/web/dist/assets/{chunk-EX3LRPZG-DenHmuGS.js → chunk-EX3LRPZG-bk6tRxOA.js} +1 -1
  43. package/web/dist/assets/{chunk-JWPE2WC7-BUpE28jH.js → chunk-JWPE2WC7-DZ4WSHGH.js} +1 -1
  44. package/web/dist/assets/{chunk-MOJQB5TN-D4WdKP4p.js → chunk-MOJQB5TN-B5-y6tMF.js} +1 -1
  45. package/web/dist/assets/{chunk-RYQCIY6F-DJgnfeyv.js → chunk-RYQCIY6F-yKcnHxm0.js} +1 -1
  46. package/web/dist/assets/{chunk-V7JOEXUC-DII2R5xT.js → chunk-V7JOEXUC-CpoNcATD.js} +1 -1
  47. package/web/dist/assets/{chunk-VR4S4FIN-BJ_02Sft.js → chunk-VR4S4FIN-Bf1yD2fn.js} +1 -1
  48. package/web/dist/assets/{chunk-XXDRQBXY-DTi_vPws.js → chunk-XXDRQBXY-EnPvDVhP.js} +1 -1
  49. package/web/dist/assets/classDiagram-OUVF2IWQ-B8u1fZiB.js +1 -0
  50. package/web/dist/assets/classDiagram-v2-EOCWNBFH-B8u1fZiB.js +1 -0
  51. package/web/dist/assets/{cose-bilkent-JH36ORCC-DzdVN7Sx.js → cose-bilkent-JH36ORCC-qhKoA2qj.js} +1 -1
  52. package/web/dist/assets/{cynefin-VYW2F7L2-CLw-4-yw.js → cynefin-VYW2F7L2-jcyYelJS.js} +1 -1
  53. package/web/dist/assets/{cynefinDiagram-TSTJHNR4-P8h9O8wh.js → cynefinDiagram-TSTJHNR4-D4RLufLP.js} +1 -1
  54. package/web/dist/assets/{dagre-VKFMJZFB-CDArowlh.js → dagre-VKFMJZFB-C9BA3GTO.js} +1 -1
  55. package/web/dist/assets/{diagram-FQU43EPY-GiMWEGCC.js → diagram-FQU43EPY-DbSSrVUJ.js} +1 -1
  56. package/web/dist/assets/{diagram-G47NLZAW-CpiRJOW2.js → diagram-G47NLZAW-3egISQXQ.js} +1 -1
  57. package/web/dist/assets/{diagram-NH7WQ7WH-BOdTWSov.js → diagram-NH7WQ7WH-8IKEMGRg.js} +1 -1
  58. package/web/dist/assets/{diagram-OA4YK3LP-BPKB7KD5.js → diagram-OA4YK3LP-VnaogqtK.js} +1 -1
  59. package/web/dist/assets/{diagram-WEI45ONY-CPS66m-d.js → diagram-WEI45ONY-DxigXH0T.js} +1 -1
  60. package/web/dist/assets/{ebnfDiagram-CCIWWBDH-nbpYqaxu.js → ebnfDiagram-CCIWWBDH-BSkNwJ9x.js} +1 -1
  61. package/web/dist/assets/{erDiagram-Q63AITRT-BF547i7I.js → erDiagram-Q63AITRT-CKN8JXl6.js} +1 -1
  62. package/web/dist/assets/{flowDiagram-23GEKE2U-CWIuM8_R.js → flowDiagram-23GEKE2U-DDaD5ExP.js} +1 -1
  63. package/web/dist/assets/{ganttDiagram-NO4QXBWP-DZRmOOgZ.js → ganttDiagram-NO4QXBWP-tOrBOuoI.js} +1 -1
  64. package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-DQASL6yJ.js → gitGraphDiagram-IHSO6WYX-Cdp867ON.js} +1 -1
  65. package/web/dist/assets/{index-MikpTOty.js → index-BmwU43_u.js} +6 -6
  66. package/web/dist/assets/index-D-nA7gUe.css +1 -0
  67. package/web/dist/assets/{infoDiagram-FWYZ7A6U-DlK6reuU.js → infoDiagram-FWYZ7A6U-DwcKHD2h.js} +1 -1
  68. package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-DOiJ-xI_.js → ishikawaDiagram-FXEZZL3T-CWffK5kz.js} +1 -1
  69. package/web/dist/assets/{journeyDiagram-5HDEW3XC-B4EVeK0i.js → journeyDiagram-5HDEW3XC-BEAgS-EZ.js} +1 -1
  70. package/web/dist/assets/{kanban-definition-HUTT4EX6-eBT_l0PV.js → kanban-definition-HUTT4EX6-xDm-mRRj.js} +1 -1
  71. package/web/dist/assets/{linear-CGPMpgYy.js → linear-oP9MA0as.js} +1 -1
  72. package/web/dist/assets/{mermaid.core-CMg-D4qI.js → mermaid.core-DgXXt1OS.js} +4 -4
  73. package/web/dist/assets/{mindmap-definition-LN4V7U3C-COIkL1R_.js → mindmap-definition-LN4V7U3C-BBQgVrYC.js} +1 -1
  74. package/web/dist/assets/{papaparse.min-BkzE5bQr.js → papaparse.min-CR6JmBWm.js} +1 -1
  75. package/web/dist/assets/{pegDiagram-2B236MQR-nXLPVk3y.js → pegDiagram-2B236MQR-C2O0cf3j.js} +1 -1
  76. package/web/dist/assets/{pieDiagram-ENE6RG2P-CLFUyga1.js → pieDiagram-ENE6RG2P-D08pUtYU.js} +1 -1
  77. package/web/dist/assets/pilotswarm-D7NLCbuc.js +99 -0
  78. package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-BHSt68p5.js → quadrantDiagram-ABIIQ3AL-D-Z7YoEK.js} +1 -1
  79. package/web/dist/assets/{railroadDiagram-RFXS5EU6-CyohRm8J.js → railroadDiagram-RFXS5EU6-ClkdveLI.js} +1 -1
  80. package/web/dist/assets/{requirementDiagram-TGXJPOKE-CQTikEcB.js → requirementDiagram-TGXJPOKE-IY4xbn-Q.js} +1 -1
  81. package/web/dist/assets/{sankeyDiagram-HTMAVEWB-CxDlhil0.js → sankeyDiagram-HTMAVEWB-Cpt5i7KM.js} +1 -1
  82. package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-n4ZRJPY0.js → sequenceDiagram-DBY2YBRQ-c07lALcz.js} +1 -1
  83. package/web/dist/assets/{sizeCapture-X5ZJPWSS-J_LGaCmN.js → sizeCapture-X5ZJPWSS-CmCDiNbI.js} +1 -1
  84. package/web/dist/assets/{stateDiagram-2N3HPSRC-CWavHbpD.js → stateDiagram-2N3HPSRC-Dueu17zX.js} +1 -1
  85. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-AGpIV7wW.js +1 -0
  86. package/web/dist/assets/{swimlanes-5IMT3BWC-l-bxBeeJ.js → swimlanes-5IMT3BWC-Csc2Fup8.js} +2 -2
  87. package/web/dist/assets/swimlanesDiagram-G3AALYLV-BTGZSV0N.js +8 -0
  88. package/web/dist/assets/{timeline-definition-FHXFAJF6-ChA5iURW.js → timeline-definition-FHXFAJF6-4-lf702e.js} +1 -1
  89. package/web/dist/assets/{vennDiagram-L72KCM5P-DVkk3iKL.js → vennDiagram-L72KCM5P-CmlaKpLI.js} +1 -1
  90. package/web/dist/assets/{wardleyDiagram-EHGQE667-CrN8c7Sv.js → wardleyDiagram-EHGQE667-B9Qe44pi.js} +1 -1
  91. package/web/dist/assets/{xychartDiagram-FW5EYKEG-Hym-Hdkg.js → xychartDiagram-FW5EYKEG-BFcc0CLn.js} +1 -1
  92. package/web/dist/index.html +3 -3
  93. package/ui/core/src/themes/dark-high-contrast.js +0 -56
  94. package/ui/core/src/themes/workspace-dark-rich.js +0 -65
  95. package/web/dist/assets/channel-DA38xcdK.js +0 -1
  96. package/web/dist/assets/classDiagram-OUVF2IWQ-1k2XCPxl.js +0 -1
  97. package/web/dist/assets/classDiagram-v2-EOCWNBFH-1k2XCPxl.js +0 -1
  98. package/web/dist/assets/index-Do0UrHeI.css +0 -1
  99. package/web/dist/assets/pilotswarm-C17s5NOb.js +0 -99
  100. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-ClqTpkzd.js +0 -1
  101. package/web/dist/assets/swimlanesDiagram-G3AALYLV-Bfar1rKu.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pilotswarm",
3
- "version": "0.5.33",
3
+ "version": "0.5.35",
4
4
  "description": "PilotSwarm application package: terminal UI, browser portal + Web API server, and MCP server — one install, three bins.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -81,7 +81,7 @@
81
81
  "ink": "^6.8.0",
82
82
  "jose": "^6.2.2",
83
83
  "mermaid": "^11.16.0",
84
- "pilotswarm-sdk": "0.5.33",
84
+ "pilotswarm-sdk": "0.5.35",
85
85
  "react": "^19.2.4",
86
86
  "react-dom": "^19.2.4",
87
87
  "ws": "^8.18.2"
package/tui/src/app.js CHANGED
@@ -464,6 +464,16 @@ export function PilotSwarmTuiApp({ controller, platform, onRequestExit }) {
464
464
  controller.handleCommand(UI_COMMANDS.MODAL_PANE_NEXT).catch(() => {});
465
465
  return;
466
466
  }
467
+ // Agent-picker disclosure. The block this sits in ends in a
468
+ // `return`, so arrows never reach the pane handler below — the
469
+ // picker's "Enter or → to open" hint named a key the TUI dropped
470
+ // on the floor.
471
+ if (modal.type === "sessionAgentPicker" && (key.leftArrow || key.rightArrow)) {
472
+ controller.handleCommand(
473
+ key.rightArrow ? UI_COMMANDS.MODAL_PANE_NEXT : UI_COMMANDS.MODAL_PANE_PREV,
474
+ ).catch(() => {});
475
+ return;
476
+ }
467
477
  if (modal.type === "sessionOwnerFilter") {
468
478
  if (input === " ") {
469
479
  controller.handleCommand(UI_COMMANDS.MODAL_CONFIRM).catch(() => {});
@@ -378,6 +378,12 @@ function normalizeCreatableAgent(agent) {
378
378
  splashMobile: typeof agent?.splashMobile === "string" && agent.splashMobile.trim() ? agent.splashMobile : null,
379
379
  initialPrompt: typeof agent?.initialPrompt === "string" && agent.initialPrompt.trim() ? agent.initialPrompt : null,
380
380
  tools: Array.isArray(agent?.tools) ? agent.tools.filter(Boolean) : [],
381
+ // Composition, for the picker's per-package nesting. Baked agents
382
+ // rarely declare these, but a layered app's agents can — Waldemort's
383
+ // specialists are created by its router, and saying so puts them under
384
+ // it in the Built-in section instead of in a flat list of sixteen.
385
+ startedBy: Array.isArray(agent?.startedBy) ? agent.startedBy.filter(Boolean) : [],
386
+ supportsDirectStart: typeof agent?.supportsDirectStart === "boolean" ? agent.supportsDirectStart : undefined,
381
387
  };
382
388
  }
383
389
 
@@ -695,8 +701,13 @@ export class NodeSdkTransport {
695
701
  splash: typeof agent.splash === "string" && agent.splash.trim() ? agent.splash : undefined,
696
702
  splashMobile: typeof agent.splashMobile === "string" && agent.splashMobile.trim() ? agent.splashMobile : undefined,
697
703
  initialPrompt: typeof agent.initialPrompt === "string" && agent.initialPrompt.trim() ? agent.initialPrompt : undefined,
704
+ startedBy: Array.isArray(agent.startedBy) && agent.startedBy.length ? agent.startedBy : undefined,
705
+ supportsDirectStart: typeof agent.supportsDirectStart === "boolean" ? agent.supportsDirectStart : undefined,
698
706
  source: "package",
699
707
  packageName: pkg.name,
708
+ // Friendly section header. plugin.json "title" when the
709
+ // author set one; the DNS-label name otherwise.
710
+ packageTitle: pkg.active.manifest?.title || undefined,
700
711
  packageSemver: pkg.active.semver,
701
712
  scope: pkg.scope,
702
713
  mine,