@ashx-j/lunr 0.1.7 → 0.2.1

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 (111) hide show
  1. package/dist/builtin-extensions/lunr-todos.d.ts +7 -6
  2. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
  3. package/dist/builtin-extensions/lunr-todos.js +24 -11
  4. package/dist/builtin-extensions/lunr-todos.js.map +1 -1
  5. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -1
  6. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +9 -5
  7. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -1
  8. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
  9. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +31 -3
  10. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
  11. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts +1 -0
  12. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -1
  13. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +14 -4
  14. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -1
  15. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  16. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +4 -3
  17. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  18. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  19. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +12 -1
  20. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  21. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +3 -0
  22. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  23. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +8 -0
  25. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  26. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +22 -2
  27. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  28. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  29. package/dist/builtin-extensions/pi-web-access/index.js +38 -230
  30. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  31. package/dist/builtin-extensions/pi-web-access/render-search-chrome.d.ts +35 -0
  32. package/dist/builtin-extensions/pi-web-access/render-search-chrome.d.ts.map +1 -0
  33. package/dist/builtin-extensions/pi-web-access/render-search-chrome.js +93 -0
  34. package/dist/builtin-extensions/pi-web-access/render-search-chrome.js.map +1 -0
  35. package/dist/catalog/models.json +1 -1
  36. package/dist/catalog/providers/amazon-bedrock.json +1 -1
  37. package/dist/catalog/providers/cloudflare-workers-ai.json +1 -1
  38. package/dist/catalog/providers/huggingface.json +1 -1
  39. package/dist/catalog/providers/opencode-go.json +1 -1
  40. package/dist/catalog/providers/opencode.json +1 -1
  41. package/dist/catalog/providers/openrouter.json +1 -1
  42. package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
  43. package/dist/catalog/publication.json +3 -3
  44. package/dist/core/context-breakdown.d.ts +21 -1
  45. package/dist/core/context-breakdown.d.ts.map +1 -1
  46. package/dist/core/context-breakdown.js +58 -2
  47. package/dist/core/context-breakdown.js.map +1 -1
  48. package/dist/core/permission-mode-control.d.ts +27 -0
  49. package/dist/core/permission-mode-control.d.ts.map +1 -0
  50. package/dist/core/permission-mode-control.js +39 -0
  51. package/dist/core/permission-mode-control.js.map +1 -0
  52. package/dist/core/settings-manager.d.ts.map +1 -1
  53. package/dist/core/settings-manager.js.map +1 -1
  54. package/dist/core/slash-commands.d.ts.map +1 -1
  55. package/dist/core/slash-commands.js +0 -1
  56. package/dist/core/slash-commands.js.map +1 -1
  57. package/dist/core/tools/read.d.ts.map +1 -1
  58. package/dist/core/tools/read.js +14 -20
  59. package/dist/core/tools/read.js.map +1 -1
  60. package/dist/core/tools/render-utils.d.ts +2 -0
  61. package/dist/core/tools/render-utils.d.ts.map +1 -1
  62. package/dist/core/tools/render-utils.js +10 -0
  63. package/dist/core/tools/render-utils.js.map +1 -1
  64. package/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  65. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  66. package/dist/modes/interactive/components/assistant-message.js +1 -0
  67. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  68. package/dist/modes/interactive/components/context-view.d.ts.map +1 -1
  69. package/dist/modes/interactive/components/context-view.js +3 -1
  70. package/dist/modes/interactive/components/context-view.js.map +1 -1
  71. package/dist/modes/interactive/components/plan-message.d.ts +17 -0
  72. package/dist/modes/interactive/components/plan-message.d.ts.map +1 -0
  73. package/dist/modes/interactive/components/plan-message.js +43 -0
  74. package/dist/modes/interactive/components/plan-message.js.map +1 -0
  75. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  76. package/dist/modes/interactive/components/settings-selector.js +1 -1
  77. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  78. package/dist/modes/interactive/components/tool-execution.d.ts +3 -0
  79. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  80. package/dist/modes/interactive/components/tool-execution.js +18 -2
  81. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  82. package/dist/modes/interactive/components/usage-view.d.ts +4 -25
  83. package/dist/modes/interactive/components/usage-view.d.ts.map +1 -1
  84. package/dist/modes/interactive/components/usage-view.js +17 -69
  85. package/dist/modes/interactive/components/usage-view.js.map +1 -1
  86. package/dist/modes/interactive/components/user-message.d.ts +1 -0
  87. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  88. package/dist/modes/interactive/components/user-message.js +1 -0
  89. package/dist/modes/interactive/components/user-message.js.map +1 -1
  90. package/dist/modes/interactive/interactive-mode.d.ts +17 -6
  91. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  92. package/dist/modes/interactive/interactive-mode.js +200 -120
  93. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  94. package/dist/modes/interactive/smooth-streaming.d.ts +39 -6
  95. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -1
  96. package/dist/modes/interactive/smooth-streaming.js +160 -73
  97. package/dist/modes/interactive/smooth-streaming.js.map +1 -1
  98. package/dist/utils/clipboard-image.d.ts.map +1 -1
  99. package/dist/utils/clipboard-image.js +7 -3
  100. package/dist/utils/clipboard-image.js.map +1 -1
  101. package/docs/terminal-setup.md +13 -0
  102. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  103. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  104. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  105. package/examples/extensions/gondolin/package-lock.json +2 -2
  106. package/examples/extensions/gondolin/package.json +1 -1
  107. package/examples/extensions/sandbox/package-lock.json +2 -2
  108. package/examples/extensions/sandbox/package.json +1 -1
  109. package/examples/extensions/with-deps/package-lock.json +2 -2
  110. package/examples/extensions/with-deps/package.json +1 -1
  111. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"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","sourcesContent":["import { Box, Container, Markdown, type MarkdownTheme } from \"@ashx-j/lunr-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.ts\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\nconst OSC133_ZONE_FINAL = \"\\x1b]133;C\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tprivate text: string;\n\tprivate markdownTheme: MarkdownTheme;\n\tprivate outputPad: number;\n\t// lunr: gutter rail — prefix rendered lines with a dim │ (last line ╰ when this\n\t// component closes a turn; user messages open the rail so all lines use │).\n\tprivate gutterRail: boolean;\n\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme(), outputPad = 1, gutterRail = false) {\n\t\tsuper();\n\t\tthis.text = text;\n\t\tthis.markdownTheme = markdownTheme;\n\t\tthis.outputPad = outputPad;\n\t\tthis.gutterRail = gutterRail;\n\t\tthis.rebuild();\n\t}\n\n\tsetOutputPad(padding: number): void {\n\t\tthis.outputPad = padding;\n\t\tthis.rebuild();\n\t}\n\n\tsetGutterRail(enabled: boolean): void {\n\t\tthis.gutterRail = enabled;\n\t}\n\n\tprivate rebuild(): void {\n\t\tthis.clear();\n\t\tconst contentBox = new Box(this.outputPad, 1, (content: string) => theme.bg(\"userMessageBg\", content));\n\t\t// lunr: leading ● marks the first line of a user message. Kept uncolored in the\n\t\t// markdown source so the message's own text color applies (white in moon theme);\n\t\t// embedding ANSI here would strip the text color from the rest of the paragraph.\n\t\tcontentBox.addChild(\n\t\t\tnew Markdown(\n\t\t\t\t`● ${this.text}`,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tthis.markdownTheme,\n\t\t\t\t{\n\t\t\t\t\tcolor: (content: string) => theme.fg(\"userMessageText\", content),\n\t\t\t\t},\n\t\t\t\t{ preserveOrderedListMarkers: true, preserveBackslashEscapes: true },\n\t\t\t),\n\t\t);\n\t\tthis.addChild(contentBox);\n\t}\n\n\toverride render(width: number): string[] {\n\t\t// lunr: gutter rail — render content at width-2 and prefix each line with a\n\t\t// dim │ so a thin rail runs down the left of the user message.\n\t\tconst railEnabled = this.gutterRail;\n\t\tconst contentWidth = railEnabled ? Math.max(1, width - 2) : width;\n\t\tconst lines = super.render(contentWidth);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];\n\n\t\tif (railEnabled) {\n\t\t\tconst rail = theme.fg(\"dim\", \"│ \");\n\t\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\t\tlines[i] = rail + lines[i];\n\t\t\t}\n\t\t}\n\t\treturn lines;\n\t}\n}\n"]}
1
+ {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAsB,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAClD,UAAU,GAAG,IAAI,CAAC;IACV,IAAI,CAAS;IACb,aAAa,CAAgB;IAC7B,SAAS,CAAS;IAC1B,sFAAgF;IAChF,8EAA4E;IACpE,UAAU,CAAU;IAE5B,YAAY,IAAY,EAAE,aAAa,GAAkB,gBAAgB,EAAE,EAAE,SAAS,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE;QAC/G,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;IAAA,CACf;IAED,YAAY,CAAC,OAAe,EAAQ;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IAAA,CACf;IAED,aAAa,CAAC,OAAgB,EAAQ;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAAA,CAC1B;IAEO,OAAO,GAAS;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvG,kFAAgF;QAChF,iFAAiF;QACjF,iFAAiF;QACjF,UAAU,CAAC,QAAQ,CAClB,IAAI,QAAQ,CACX,OAAK,IAAI,CAAC,IAAI,EAAE,EAChB,CAAC,EACD,CAAC,EACD,IAAI,CAAC,aAAa,EAClB;YACC,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC;SAChE,EACD,EAAE,0BAA0B,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACpE,CACD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAAA,CAC1B;IAEQ,MAAM,CAAC,KAAa,EAAY;QACxC,8EAA4E;QAC5E,iEAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe,GAAG,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExF,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAI,CAAC,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IAAA,CACb;CACD","sourcesContent":["import { Box, Container, Markdown, type MarkdownTheme } from \"@ashx-j/lunr-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.ts\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\nconst OSC133_ZONE_FINAL = \"\\x1b]133;C\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tselectable = true;\n\tprivate text: string;\n\tprivate markdownTheme: MarkdownTheme;\n\tprivate outputPad: number;\n\t// lunr: gutter rail — prefix rendered lines with a dim │ (last line ╰ when this\n\t// component closes a turn; user messages open the rail so all lines use │).\n\tprivate gutterRail: boolean;\n\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme(), outputPad = 1, gutterRail = false) {\n\t\tsuper();\n\t\tthis.text = text;\n\t\tthis.markdownTheme = markdownTheme;\n\t\tthis.outputPad = outputPad;\n\t\tthis.gutterRail = gutterRail;\n\t\tthis.rebuild();\n\t}\n\n\tsetOutputPad(padding: number): void {\n\t\tthis.outputPad = padding;\n\t\tthis.rebuild();\n\t}\n\n\tsetGutterRail(enabled: boolean): void {\n\t\tthis.gutterRail = enabled;\n\t}\n\n\tprivate rebuild(): void {\n\t\tthis.clear();\n\t\tconst contentBox = new Box(this.outputPad, 1, (content: string) => theme.bg(\"userMessageBg\", content));\n\t\t// lunr: leading ● marks the first line of a user message. Kept uncolored in the\n\t\t// markdown source so the message's own text color applies (white in moon theme);\n\t\t// embedding ANSI here would strip the text color from the rest of the paragraph.\n\t\tcontentBox.addChild(\n\t\t\tnew Markdown(\n\t\t\t\t`● ${this.text}`,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tthis.markdownTheme,\n\t\t\t\t{\n\t\t\t\t\tcolor: (content: string) => theme.fg(\"userMessageText\", content),\n\t\t\t\t},\n\t\t\t\t{ preserveOrderedListMarkers: true, preserveBackslashEscapes: true },\n\t\t\t),\n\t\t);\n\t\tthis.addChild(contentBox);\n\t}\n\n\toverride render(width: number): string[] {\n\t\t// lunr: gutter rail — render content at width-2 and prefix each line with a\n\t\t// dim │ so a thin rail runs down the left of the user message.\n\t\tconst railEnabled = this.gutterRail;\n\t\tconst contentWidth = railEnabled ? Math.max(1, width - 2) : width;\n\t\tconst lines = super.render(contentWidth);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];\n\n\t\tif (railEnabled) {\n\t\t\tconst rail = theme.fg(\"dim\", \"│ \");\n\t\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\t\tlines[i] = rail + lines[i];\n\t\t\t}\n\t\t}\n\t\treturn lines;\n\t}\n}\n"]}
@@ -68,7 +68,6 @@ export declare class InteractiveMode {
68
68
  private streamingMessage;
69
69
  private streamingTargetMessage;
70
70
  private streamingDisplayedLength;
71
- private lastSmoothRenderAt;
72
71
  private smoothStreamingTimer;
73
72
  private pendingTools;
74
73
  private toolOutputExpanded;
@@ -84,6 +83,7 @@ export declare class InteractiveMode {
84
83
  private swarmMode;
85
84
  private researchMode;
86
85
  private previousPermissionMode;
86
+ private preGoalPermissionMode;
87
87
  private redoStack;
88
88
  private autoNameTriggered;
89
89
  private bashComponent;
@@ -253,12 +253,22 @@ export declare class InteractiveMode {
253
253
  private setupKeyHandlers;
254
254
  private handleClipboardPaste;
255
255
  private setupEditorSubmitHandler;
256
- /** Smooth streaming tick rate (ms) and base reveal speed (graphemes per tick). */
256
+ /** Smooth streaming tick rate (~30 FPS). TUI already caps paints at 16ms. */
257
257
  private static readonly SMOOTH_STREAMING_TICK_MS;
258
- private static readonly SMOOTH_STREAMING_BASE_GRAPHEMES_PER_TICK;
258
+ private getSmoothStreamingOptions;
259
+ private clearSmoothStreamingTimer;
259
260
  private startSmoothStreaming;
261
+ /** Apply the current reveal slice and sync tool cards that have crossed the frontier. */
262
+ private paintSmoothStreamingFrame;
263
+ /**
264
+ * Create/update tool cards only once smooth streaming has revealed past their
265
+ * leading text. Args always come from the full target so later arg deltas apply.
266
+ */
267
+ private syncRevealedStreamingTools;
260
268
  private advanceSmoothStreaming;
261
269
  private stopSmoothStreaming;
270
+ /** Apply a mid-stream smoothStreaming setting change without rewinding. */
271
+ private applySmoothStreamingSettingChange;
262
272
  private subscribeToAgent;
263
273
  private handleEvent;
264
274
  /** Extract text content from a user message */
@@ -423,10 +433,8 @@ export declare class InteractiveMode {
423
433
  private maybeAutoNameSession;
424
434
  private generateSessionTitle;
425
435
  private handleSessionCommand;
426
- private collectSessionModelRows;
427
- private collectUsageHistorySafe;
436
+ private collectUsageBreakdown;
428
437
  private handleUsageCommand;
429
- private handleTokenUsageCommand;
430
438
  private handleContextCommand;
431
439
  private handlePlanCommand;
432
440
  private handleModeCommand;
@@ -434,9 +442,12 @@ export declare class InteractiveMode {
434
442
  private restoreTargetAfterPlan;
435
443
  /** Apply addendum + auto-rollback for a mode without a status toast. */
436
444
  private syncPermissionModeEffects;
445
+ private enterGoalAuto;
446
+ private leaveGoalAuto;
437
447
  private applyPermissionMode;
438
448
  private showApprovalDialog;
439
449
  private showSwarmApprovalDialog;
450
+ private showPlanInChat;
440
451
  private showPlanApprovalDialog;
441
452
  private showProcessesSelector;
442
453
  private handleRollbackCommand;