@ashx-j/lunr 0.2.20 → 0.2.21

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 (172) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/dist/builtin-extensions/lunr-todos.d.ts +6 -5
  3. package/dist/builtin-extensions/lunr-todos.d.ts.map +1 -1
  4. package/dist/builtin-extensions/lunr-todos.js +9 -7
  5. package/dist/builtin-extensions/lunr-todos.js.map +1 -1
  6. package/dist/builtin-extensions/pi-intercom/broker/spawn.d.ts.map +1 -1
  7. package/dist/builtin-extensions/pi-intercom/broker/spawn.js +30 -21
  8. package/dist/builtin-extensions/pi-intercom/broker/spawn.js.map +1 -1
  9. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  10. package/dist/builtin-extensions/pi-intercom/index.js +12 -3
  11. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  12. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
  13. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +2 -2
  14. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
  15. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +7 -6
  16. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  17. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +63 -29
  18. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  19. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  20. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +2 -2
  21. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  22. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +3 -3
  23. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +3 -2
  25. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  26. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts +1 -0
  27. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  28. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js +26 -7
  29. package/dist/builtin-extensions/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  30. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts +1 -0
  31. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.d.ts.map +1 -1
  32. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js +1 -1
  33. package/dist/builtin-extensions/pi-subagents/src/intercom/result-intercom.js.map +1 -1
  34. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +2 -0
  35. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  36. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +4 -3
  37. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  38. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js +2 -0
  40. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
  41. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +6 -2
  42. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  43. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +23 -1
  44. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  45. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +1 -0
  47. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +100 -0
  49. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +46 -31
  51. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts +15 -2
  53. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.d.ts.map +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js +14 -4
  55. package/dist/builtin-extensions/pi-subagents/src/runs/background/top-level-async.js.map +1 -1
  56. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  57. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +1 -1
  58. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +0 -1
  63. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +9 -9
  65. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.d.ts.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js +1 -1
  69. package/dist/builtin-extensions/pi-subagents/src/runs/shared/completion-guard.js.map +1 -1
  70. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
  71. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  73. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +3 -0
  74. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  75. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +2 -0
  76. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  77. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
  78. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
  79. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +5 -10
  80. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
  81. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts +2 -0
  82. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.d.ts.map +1 -0
  83. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js +3 -0
  84. package/dist/builtin-extensions/pi-subagents/src/shared/async-guidance.js.map +1 -0
  85. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +5 -0
  86. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  87. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  88. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.d.ts.map +1 -1
  89. package/dist/builtin-extensions/pi-subagents/src/slash/delegation-adapters.js.map +1 -1
  90. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +7 -0
  91. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  92. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +11 -7
  93. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  94. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +4 -0
  95. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  96. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +22 -23
  97. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  98. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +2 -0
  99. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  100. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +237 -374
  101. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  102. package/dist/core/customize.d.ts +2 -0
  103. package/dist/core/customize.d.ts.map +1 -1
  104. package/dist/core/customize.js +3 -0
  105. package/dist/core/customize.js.map +1 -1
  106. package/dist/core/settings-manager.d.ts +4 -0
  107. package/dist/core/settings-manager.d.ts.map +1 -1
  108. package/dist/core/settings-manager.js +11 -0
  109. package/dist/core/settings-manager.js.map +1 -1
  110. package/dist/core/subagent-spinner-setting.d.ts +6 -0
  111. package/dist/core/subagent-spinner-setting.d.ts.map +1 -0
  112. package/dist/core/subagent-spinner-setting.js +12 -0
  113. package/dist/core/subagent-spinner-setting.js.map +1 -0
  114. package/dist/core/subagent-spinner.d.ts +4 -0
  115. package/dist/core/subagent-spinner.d.ts.map +1 -0
  116. package/dist/core/subagent-spinner.js +6 -0
  117. package/dist/core/subagent-spinner.js.map +1 -0
  118. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  119. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  120. package/dist/modes/interactive/components/settings-selector.js +73 -1
  121. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  122. package/dist/modes/interactive/extension-widget-order.d.ts +8 -0
  123. package/dist/modes/interactive/extension-widget-order.d.ts.map +1 -0
  124. package/dist/modes/interactive/extension-widget-order.js +37 -0
  125. package/dist/modes/interactive/extension-widget-order.js.map +1 -0
  126. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  127. package/dist/modes/interactive/interactive-mode.js +15 -22
  128. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  129. package/dist/node-runtime/{agent-session-services-75JKASCW.js → agent-session-services-C743TYQE.js} +4 -3
  130. package/dist/node-runtime/{builtin-extensions-X4JMM4ZS.js → builtin-extensions-JCOPAAB5.js} +2 -1
  131. package/dist/node-runtime/{chunk-QKFMBRAL.js → chunk-2BUAYZ7K.js} +94 -25
  132. package/dist/node-runtime/chunk-5ZH3ZFIZ.js +308 -0
  133. package/dist/node-runtime/{chunk-BBUVIEZB.js → chunk-A3KMVBZV.js} +10 -1
  134. package/dist/node-runtime/{chunk-K3646JTM.js → chunk-AWVD5IEY.js} +7 -307
  135. package/dist/node-runtime/{chunk-ELWEXVO5.js → chunk-GB2MGFLI.js} +11 -11
  136. package/dist/node-runtime/chunk-LISUTZS3.js +19 -0
  137. package/dist/node-runtime/{chunk-AL2FMKKM.js → chunk-PDNXVXMD.js} +12 -12
  138. package/dist/node-runtime/{chunk-46ECNOLF.js → chunk-SY2TFMLO.js} +57 -17
  139. package/dist/node-runtime/{chunk-HQCKFM2O.js → chunk-VGYZ3APQ.js} +3 -0
  140. package/dist/node-runtime/{chunk-4DJ6HEGH.js → chunk-VZR3NCM7.js} +3 -3
  141. package/dist/node-runtime/{chunk-AOFXZQKA.js → chunk-W3SILANP.js} +1 -1
  142. package/dist/node-runtime/{chunk-CBGB57XT.js → chunk-WLLDXJRT.js} +10 -0
  143. package/dist/node-runtime/{chunk-JYNNB7DU.js → chunk-XI77KVKA.js} +2 -2
  144. package/dist/node-runtime/{chunk-4CSFRBCN.js → chunk-Y5KOEMBH.js} +1 -1
  145. package/dist/node-runtime/{chunk-AROOY4BB.js → chunk-YMEAYRBE.js} +1 -1
  146. package/dist/node-runtime/{command-RBTRL55A.js → command-P4NYCJ2M.js} +1 -1
  147. package/dist/node-runtime/{customize-XEXL2DGQ.js → customize-LF5VST47.js} +1 -1
  148. package/dist/node-runtime/{gateway-L4ANRTVE.js → gateway-BM6NLOH4.js} +1 -1
  149. package/dist/node-runtime/index.js +13 -11
  150. package/dist/node-runtime/{interactive-mode-HPUNH7SV.js → interactive-mode-EVVBA64D.js} +9 -7
  151. package/dist/node-runtime/{lunr-cron-NNYTWTGF.js → lunr-cron-4VHP4E4B.js} +1 -1
  152. package/dist/node-runtime/main.js +11 -9
  153. package/dist/node-runtime/{package-manager-cli-7RKSZGEN.js → package-manager-cli-N37546V5.js} +5 -4
  154. package/dist/node-runtime/{pi-intercom-DDQMRNPJ.js → pi-intercom-NV2LW6X7.js} +34 -33
  155. package/dist/node-runtime/{pi-subagents-T5WMMLBB.js → pi-subagents-6MUIFNDM.js} +286 -345
  156. package/dist/node-runtime/rpc-entry.js +11 -9
  157. package/dist/node-runtime/{runtime-bridges-NJQERQ72.js → runtime-bridges-2VQTLPOZ.js} +2 -2
  158. package/dist/node-runtime/{settings-manager-GHPTUN7R.js → settings-manager-CUGAZWAB.js} +2 -1
  159. package/dist/node-runtime/{subagent-executor-SRFC26SJ.js → subagent-executor-MH4A7CCF.js} +14 -46
  160. package/dist/node-runtime/{update-cli-L3JIBH2U.js → update-cli-XTZMZGOL.js} +2 -1
  161. package/docs/features.md +6 -2
  162. package/docs/settings.md +2 -1
  163. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  164. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  165. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  166. package/examples/extensions/gondolin/package-lock.json +2 -2
  167. package/examples/extensions/gondolin/package.json +1 -1
  168. package/examples/extensions/sandbox/package-lock.json +2 -2
  169. package/examples/extensions/sandbox/package.json +1 -1
  170. package/examples/extensions/with-deps/package-lock.json +2 -2
  171. package/examples/extensions/with-deps/package.json +1 -1
  172. package/package.json +4 -4
@@ -2,9 +2,9 @@ import { createRequire as __lunrRequire } from "node:module"; const require = __
2
2
  import {
3
3
  createAgentSessionFromServices,
4
4
  createAgentSessionServices
5
- } from "./chunk-JYNNB7DU.js";
5
+ } from "./chunk-XI77KVKA.js";
6
6
  import "./chunk-STERBGUB.js";
7
- import "./chunk-4CSFRBCN.js";
7
+ import "./chunk-Y5KOEMBH.js";
8
8
  import "./chunk-OBMWP3I5.js";
9
9
  import "./chunk-DVGWF6A2.js";
10
10
  import "./chunk-QFWG2RVL.js";
@@ -13,7 +13,8 @@ import "./chunk-WKDK4C5P.js";
13
13
  import "./chunk-53YJI7JU.js";
14
14
  import "./chunk-KBKMCJDU.js";
15
15
  import "./chunk-CSFI6YXL.js";
16
- import "./chunk-CBGB57XT.js";
16
+ import "./chunk-WLLDXJRT.js";
17
+ import "./chunk-LISUTZS3.js";
17
18
  import "./chunk-GKLEQ3I4.js";
18
19
  import "./chunk-FVDOXRUD.js";
19
20
  import "./chunk-LTYWTR3V.js";
@@ -6,7 +6,8 @@ import {
6
6
  lightBuiltinExtensions,
7
7
  loadAllBuiltinExtensions,
8
8
  loadDeferredBuiltinExtensions
9
- } from "./chunk-K3646JTM.js";
9
+ } from "./chunk-AWVD5IEY.js";
10
+ import "./chunk-5ZH3ZFIZ.js";
10
11
  import "./chunk-PL6JKXWI.js";
11
12
  import "./chunk-6N22HULO.js";
12
13
  import "./chunk-M3LZLQW2.js";
@@ -8,8 +8,9 @@ import {
8
8
  } from "./chunk-KWA4OC2J.js";
9
9
  import {
10
10
  SubagentEscapeSequence,
11
- getSubagentCancellation
12
- } from "./chunk-BBUVIEZB.js";
11
+ getSubagentCancellation,
12
+ getSubagentSpinnerDefinition
13
+ } from "./chunk-A3KMVBZV.js";
13
14
  import {
14
15
  copyToClipboard,
15
16
  readClipboardText
@@ -31,7 +32,7 @@ import {
31
32
  areExperimentalFeaturesEnabled,
32
33
  getProjectTrustOptions,
33
34
  hasTrustRequiringProjectResources
34
- } from "./chunk-AROOY4BB.js";
35
+ } from "./chunk-YMEAYRBE.js";
35
36
  import {
36
37
  MissingSessionCwdError,
37
38
  SessionImportFileNotFoundError,
@@ -53,7 +54,7 @@ import {
53
54
  rollbackLastTurn,
54
55
  setRollbackWarningHandler,
55
56
  stripJsonComments
56
- } from "./chunk-JYNNB7DU.js";
57
+ } from "./chunk-XI77KVKA.js";
57
58
  import {
58
59
  computeFileLists,
59
60
  createFileOps,
@@ -64,7 +65,7 @@ import {
64
65
  } from "./chunk-STERBGUB.js";
65
66
  import {
66
67
  parseGitUrl
67
- } from "./chunk-4CSFRBCN.js";
68
+ } from "./chunk-Y5KOEMBH.js";
68
69
  import {
69
70
  clearRegistry,
70
71
  createAllToolDefinitions,
@@ -100,7 +101,11 @@ import {
100
101
  SKILL_TAG_CHARACTERS,
101
102
  configureHttpDispatcher,
102
103
  formatHttpIdleTimeoutMs
103
- } from "./chunk-CBGB57XT.js";
104
+ } from "./chunk-WLLDXJRT.js";
105
+ import {
106
+ SUBAGENT_SPINNER_LABELS,
107
+ SUBAGENT_SPINNER_NAMES
108
+ } from "./chunk-LISUTZS3.js";
104
109
  import {
105
110
  SessionManager,
106
111
  sessionEntryToContextMessages
@@ -141,7 +146,7 @@ import {
141
146
  } from "./chunk-PVCDKGR6.js";
142
147
  import {
143
148
  getCustomizeBridge
144
- } from "./chunk-HQCKFM2O.js";
149
+ } from "./chunk-VGYZ3APQ.js";
145
150
  import {
146
151
  MEMORY_CHAR_CAP_DEFAULT,
147
152
  MEMORY_CHAR_CAP_MAX,
@@ -2834,11 +2839,56 @@ var SETTINGS_SUBMENU_SELECT_LIST_LAYOUT = {
2834
2839
  handleInput(data) {
2835
2840
  this.input.handleInput(data);
2836
2841
  }
2837
- }, SEARCH_CURATOR_VALUES = ["off", "on", "auto-summary"], CustomizeSubmenu = class extends Container13 {
2842
+ }, SEARCH_CURATOR_VALUES = ["off", "on", "auto-summary"];
2843
+ function subagentSpinnerItems() {
2844
+ return SUBAGENT_SPINNER_NAMES.map((name) => ({
2845
+ value: name,
2846
+ label: SUBAGENT_SPINNER_LABELS[name],
2847
+ description: getSubagentSpinnerDefinition(name).frames.slice(0, 4).join(" ")
2848
+ }));
2849
+ }
2850
+ var SubagentSpinnerSubmenu = class extends Container13 {
2851
+ preview;
2852
+ selectList;
2853
+ selected;
2854
+ timer;
2855
+ constructor(current, callbacks, done) {
2856
+ super(), this.selected = current, this.addChild(new Text15(theme.bold(theme.fg("accent", "Subagent spinner")), 0, 0)), this.addChild(new Spacer14(1)), this.preview = new Text15("", 0, 0), this.addChild(this.preview), this.addChild(new Spacer14(1));
2857
+ let options = subagentSpinnerItems();
2858
+ this.selectList = new SelectList(options, options.length, getSelectListTheme(), SETTINGS_SUBMENU_SELECT_LIST_LAYOUT), this.selectList.setSelectedIndex(Math.max(0, SUBAGENT_SPINNER_NAMES.indexOf(current))), this.selectList.onSelectionChange = (item) => {
2859
+ this.selected = item.value, this.updatePreview(), callbacks.requestRender();
2860
+ }, this.selectList.onSelect = (item) => {
2861
+ this.dispose();
2862
+ let selected = item.value;
2863
+ callbacks.onSubagentSpinnerChange(selected), done(SUBAGENT_SPINNER_LABELS[selected]);
2864
+ }, this.selectList.onCancel = () => {
2865
+ this.dispose(), done();
2866
+ }, this.addChild(this.selectList), this.addChild(new Spacer14(1)), this.addChild(new Text15(theme.fg("dim", " Enter to select \xB7 Esc to go back"), 0, 0)), this.updatePreview(), this.timer = setInterval(() => {
2867
+ this.updatePreview(), callbacks.requestRender();
2868
+ }, 80), this.timer.unref?.();
2869
+ }
2870
+ updatePreview() {
2871
+ let definition = getSubagentSpinnerDefinition(this.selected), frame = definition.frames[Math.floor(Date.now() / definition.interval) % definition.frames.length];
2872
+ this.preview.setText(`${theme.fg("muted", "Preview")} ${theme.fg("accent", frame)}`);
2873
+ }
2874
+ dispose() {
2875
+ this.timer && (clearInterval(this.timer), this.timer = void 0);
2876
+ }
2877
+ handleInput(data) {
2878
+ this.selectList.handleInput(data);
2879
+ }
2880
+ }, CustomizeSubmenu = class extends Container13 {
2838
2881
  settingsList;
2839
- constructor(_config, callbacks, done) {
2882
+ constructor(config, callbacks, done) {
2840
2883
  super();
2841
- let bridge = getCustomizeBridge(), items = [
2884
+ let bridge = getCustomizeBridge(), currentSpinner = bridge?.getSubagentSpinner() ?? config.subagentSpinner, items = [
2885
+ {
2886
+ id: "subagent-spinner",
2887
+ label: "Subagent spinner",
2888
+ description: "Running child indicator",
2889
+ currentValue: SUBAGENT_SPINNER_LABELS[currentSpinner],
2890
+ submenu: (_currentValue, submenuDone) => new SubagentSpinnerSubmenu(bridge?.getSubagentSpinner() ?? currentSpinner, callbacks, submenuDone)
2891
+ },
2842
2892
  {
2843
2893
  id: "footer-mcp",
2844
2894
  label: "MCP status",
@@ -4980,6 +5030,29 @@ var UserMessageList = class {
4980
5030
  }
4981
5031
  };
4982
5032
 
5033
+ // packages/coding-agent/dist/modes/interactive/extension-widget-order.js
5034
+ var BUILTIN_WIDGET_ORDER = /* @__PURE__ */ new Map([
5035
+ ["todos", 0],
5036
+ ["subagent-async", 1]
5037
+ ]);
5038
+ function replaceExtensionWidget(above, below, key, component, placement) {
5039
+ let target = placement === "belowEditor" ? below : above, other = placement === "belowEditor" ? above : below, existingTarget = target.get(key), existingOther = other.get(key);
5040
+ if (existingTarget && existingTarget !== component && existingTarget.dispose?.(), existingOther && existingOther !== component && existingOther.dispose?.(), other.delete(key), component === void 0) {
5041
+ target.delete(key);
5042
+ return;
5043
+ }
5044
+ target.set(key, component);
5045
+ }
5046
+ function orderedExtensionWidgets(widgets) {
5047
+ return [...widgets.entries()].map(([key, component], insertionIndex) => ({ key, component, insertionIndex })).sort((left, right) => {
5048
+ let leftOrder = BUILTIN_WIDGET_ORDER.get(left.key), rightOrder = BUILTIN_WIDGET_ORDER.get(right.key);
5049
+ return leftOrder !== void 0 || rightOrder !== void 0 ? (leftOrder ?? Number.MAX_SAFE_INTEGER) - (rightOrder ?? Number.MAX_SAFE_INTEGER) : left.insertionIndex - right.insertionIndex;
5050
+ }).map(({ key, component }) => [key, component]);
5051
+ }
5052
+ function widgetSeparatorNeedsSpacer(previousKey, key) {
5053
+ return !(previousKey === "todos" && key === "subagent-async");
5054
+ }
5055
+
4983
5056
  // packages/coding-agent/dist/modes/interactive/skill-tag-autocomplete.js
4984
5057
  import { fuzzyFilter as fuzzyFilter4 } from "@ashx-j/lunr-tui";
4985
5058
  function extractSkillTagPrefix(textBeforeCursor, character) {
@@ -6175,23 +6248,14 @@ ${warningLines}`, 0, 0)), this.loadedResourcesContainer.addChild(new Spacer19(1)
6175
6248
  * Set an extension widget (string array or custom component).
6176
6249
  */
6177
6250
  setExtensionWidget(key, content, options) {
6178
- let placement = options?.placement ?? "aboveEditor", removeExisting = (map) => {
6179
- let existing = map.get(key);
6180
- existing?.dispose && existing.dispose(), map.delete(key);
6181
- };
6182
- if (removeExisting(this.extensionWidgetsAbove), removeExisting(this.extensionWidgetsBelow), content === void 0) {
6183
- this.renderWidgets();
6184
- return;
6185
- }
6186
- let component;
6251
+ let placement = options?.placement ?? "aboveEditor", component;
6187
6252
  if (Array.isArray(content)) {
6188
6253
  let container = new Container19();
6189
6254
  for (let line of content.slice(0, _InteractiveMode.MAX_WIDGET_LINES))
6190
6255
  container.addChild(new Text21(line, 1, 0));
6191
6256
  content.length > _InteractiveMode.MAX_WIDGET_LINES && container.addChild(new Text21(theme.fg("muted", "... (widget truncated)"), 1, 0)), component = container;
6192
- } else
6193
- component = content(this.ui, theme);
6194
- (placement === "belowEditor" ? this.extensionWidgetsBelow : this.extensionWidgetsAbove).set(key, component), this.renderWidgets();
6257
+ } else content && (component = content(this.ui, theme));
6258
+ replaceExtensionWidget(this.extensionWidgetsAbove, this.extensionWidgetsBelow, key, component, placement), this.renderWidgets();
6195
6259
  }
6196
6260
  clearExtensionWidgets() {
6197
6261
  for (let widget of this.extensionWidgetsAbove.values())
@@ -6217,9 +6281,9 @@ ${warningLines}`, 0, 0)), this.loadedResourcesContainer.addChild(new Spacer19(1)
6217
6281
  return;
6218
6282
  }
6219
6283
  leadingSpacer && container.addChild(new Spacer19(1));
6220
- let first = !0;
6221
- for (let component of widgets.values())
6222
- first || (container.addChild(new Spacer19(1)), container.addChild(new DynamicBorder((s) => theme.fg("dim", s)))), first = !1, container.addChild(component);
6284
+ let previousKey;
6285
+ for (let [key, component] of orderedExtensionWidgets(widgets))
6286
+ previousKey !== void 0 && (widgetSeparatorNeedsSpacer(previousKey, key) && container.addChild(new Spacer19(1)), container.addChild(new DynamicBorder((s) => theme.fg("dim", s)))), previousKey = key, container.addChild(component);
6223
6287
  }
6224
6288
  /**
6225
6289
  * Set a custom footer component, or restore the built-in footer.
@@ -7569,6 +7633,7 @@ Pi will resume when the editor exits.
7569
7633
  autocompleteMaxVisible: this.settingsManager.getAutocompleteMaxVisible(),
7570
7634
  quietStartup: this.settingsManager.getQuietStartup(),
7571
7635
  smoothStreaming: this.settingsManager.getSmoothStreaming(),
7636
+ subagentSpinner: this.settingsManager.getSubagentSpinner(),
7572
7637
  sessionRetentionDays: this.settingsManager.getSessionRetentionDays(),
7573
7638
  clearOnShrink: this.settingsManager.getClearOnShrink(),
7574
7639
  showTerminalProgress: this.settingsManager.getShowTerminalProgress(),
@@ -7669,6 +7734,9 @@ Pi will resume when the editor exits.
7669
7734
  onSmoothStreamingChange: (enabled) => {
7670
7735
  this.applySmoothStreamingSettingChange(enabled);
7671
7736
  },
7737
+ onSubagentSpinnerChange: (spinner) => {
7738
+ this.settingsManager.setSubagentSpinner(spinner), this.ui.requestRender();
7739
+ },
7672
7740
  onSessionRetentionDaysChange: (days) => {
7673
7741
  this.settingsManager.setSessionRetentionDays(days);
7674
7742
  },
@@ -7799,6 +7867,7 @@ Pi will resume when the editor exits.
7799
7867
  autoManage: () => this.settingsManager.getAutoManageSubscriptions(),
7800
7868
  requestRender: () => this.ui.requestRender()
7801
7869
  },
7870
+ requestRender: () => this.ui.requestRender(),
7802
7871
  createModelTierPicker: (_tier, currentModelRef, done2) => new ModelSelectorComponent(this.ui, this.resolveModelReference(currentModelRef), this.settingsManager, this.session.modelRuntime, this.session.scopedModels, (model) => {
7803
7872
  done2(`${model.provider}/${model.id}`), this.ui.requestRender();
7804
7873
  }, () => {
@@ -0,0 +1,308 @@
1
+ import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+
3
+ // node_modules/unicode-animations/dist/chunk-F2BWZODB.js
4
+ var BRAILLE_DOT_MAP = [
5
+ [1, 8],
6
+ // row 0
7
+ [2, 16],
8
+ // row 1
9
+ [4, 32],
10
+ // row 2
11
+ [64, 128]
12
+ // row 3
13
+ ];
14
+ function gridToBraille(grid) {
15
+ let rows = grid.length, cols = grid[0] ? grid[0].length : 0, charCount = Math.ceil(cols / 2), result = "";
16
+ for (let c = 0; c < charCount; c++) {
17
+ let code = 10240;
18
+ for (let r = 0; r < 4 && r < rows; r++)
19
+ for (let d = 0; d < 2; d++) {
20
+ let col = c * 2 + d;
21
+ col < cols && grid[r] && grid[r][col] && (code |= BRAILLE_DOT_MAP[r][d]);
22
+ }
23
+ result += String.fromCodePoint(code);
24
+ }
25
+ return result;
26
+ }
27
+ function makeGrid(rows, cols) {
28
+ return rows <= 0 || cols <= 0 ? [] : Array.from({ length: rows }, () => Array(cols).fill(!1));
29
+ }
30
+ function genScan() {
31
+ let frames = [];
32
+ for (let pos = -1; pos < 9; pos++) {
33
+ let g = makeGrid(4, 8);
34
+ for (let r = 0; r < 4; r++)
35
+ for (let c = 0; c < 8; c++)
36
+ (c === pos || c === pos - 1) && (g[r][c] = !0);
37
+ frames.push(gridToBraille(g));
38
+ }
39
+ return frames;
40
+ }
41
+ function genRain() {
42
+ let frames = [], offsets = [0, 3, 1, 5, 2, 7, 4, 6];
43
+ for (let f = 0; f < 12; f++) {
44
+ let g = makeGrid(4, 8);
45
+ for (let c = 0; c < 8; c++) {
46
+ let row = (f + offsets[c]) % 6;
47
+ row < 4 && (g[row][c] = !0);
48
+ }
49
+ frames.push(gridToBraille(g));
50
+ }
51
+ return frames;
52
+ }
53
+ function genScanLine() {
54
+ let frames = [], positions = [0, 1, 2, 3, 2, 1];
55
+ for (let row of positions) {
56
+ let g = makeGrid(4, 6);
57
+ for (let c = 0; c < 6; c++)
58
+ g[row][c] = !0, row > 0 && (g[row - 1][c] = c % 2 === 0);
59
+ frames.push(gridToBraille(g));
60
+ }
61
+ return frames;
62
+ }
63
+ function genPulse() {
64
+ let frames = [], radii = [0.5, 1.2, 2, 3, 3.5];
65
+ for (let r of radii) {
66
+ let g = makeGrid(4, 6);
67
+ for (let row = 0; row < 4; row++)
68
+ for (let col = 0; col < 6; col++) {
69
+ let dist = Math.sqrt((col - 2.5) ** 2 + (row - 1.5) ** 2);
70
+ Math.abs(dist - r) < 0.9 && (g[row][col] = !0);
71
+ }
72
+ frames.push(gridToBraille(g));
73
+ }
74
+ return frames;
75
+ }
76
+ function genSnake() {
77
+ let path = [];
78
+ for (let r = 0; r < 4; r++)
79
+ if (r % 2 === 0)
80
+ for (let c = 0; c < 4; c++) path.push([r, c]);
81
+ else
82
+ for (let c = 3; c >= 0; c--) path.push([r, c]);
83
+ let frames = [];
84
+ for (let i = 0; i < path.length; i++) {
85
+ let g = makeGrid(4, 4);
86
+ for (let t = 0; t < 4; t++) {
87
+ let idx = (i - t + path.length) % path.length;
88
+ g[path[idx][0]][path[idx][1]] = !0;
89
+ }
90
+ frames.push(gridToBraille(g));
91
+ }
92
+ return frames;
93
+ }
94
+ function genSparkle() {
95
+ let patterns = [
96
+ [1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0],
97
+ [0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0],
98
+ [0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1],
99
+ [1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0],
100
+ [0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1],
101
+ [0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0]
102
+ ], W = 8, H = 4, frames = [];
103
+ for (let pat of patterns) {
104
+ let g = makeGrid(H, W);
105
+ for (let r = 0; r < H; r++)
106
+ for (let c = 0; c < W; c++)
107
+ g[r][c] = !!pat[r * W + c];
108
+ frames.push(gridToBraille(g));
109
+ }
110
+ return frames;
111
+ }
112
+ function genCascade() {
113
+ let frames = [];
114
+ for (let offset = -2; offset < 12; offset++) {
115
+ let g = makeGrid(4, 8);
116
+ for (let r = 0; r < 4; r++)
117
+ for (let c = 0; c < 8; c++) {
118
+ let diag = c + r;
119
+ (diag === offset || diag === offset - 1) && (g[r][c] = !0);
120
+ }
121
+ frames.push(gridToBraille(g));
122
+ }
123
+ return frames;
124
+ }
125
+ function genColumns() {
126
+ let frames = [];
127
+ for (let col = 0; col < 6; col++)
128
+ for (let fillTo = 3; fillTo >= 0; fillTo--) {
129
+ let g = makeGrid(4, 6);
130
+ for (let pc = 0; pc < col; pc++)
131
+ for (let r = 0; r < 4; r++) g[r][pc] = !0;
132
+ for (let r = fillTo; r < 4; r++) g[r][col] = !0;
133
+ frames.push(gridToBraille(g));
134
+ }
135
+ let full = makeGrid(4, 6);
136
+ for (let r = 0; r < 4; r++) for (let c = 0; c < 6; c++) full[r][c] = !0;
137
+ return frames.push(gridToBraille(full)), frames.push(gridToBraille(makeGrid(4, 6))), frames;
138
+ }
139
+ function genOrbit() {
140
+ let path = [
141
+ [0, 0],
142
+ [0, 1],
143
+ [1, 1],
144
+ [2, 1],
145
+ [3, 1],
146
+ [3, 0],
147
+ [2, 0],
148
+ [1, 0]
149
+ ], frames = [];
150
+ for (let i = 0; i < path.length; i++) {
151
+ let g = makeGrid(4, 2);
152
+ g[path[i][0]][path[i][1]] = !0;
153
+ let t1 = (i - 1 + path.length) % path.length;
154
+ g[path[t1][0]][path[t1][1]] = !0, frames.push(gridToBraille(g));
155
+ }
156
+ return frames;
157
+ }
158
+ function genBreathe() {
159
+ let stages = [
160
+ [],
161
+ [[1, 0]],
162
+ [[0, 1], [2, 0]],
163
+ [[0, 0], [1, 1], [3, 0]],
164
+ [[0, 0], [1, 1], [2, 0], [3, 1]],
165
+ [[0, 0], [0, 1], [1, 1], [2, 0], [3, 1]],
166
+ [[0, 0], [0, 1], [1, 0], [2, 1], [3, 0], [3, 1]],
167
+ [[0, 0], [0, 1], [1, 0], [1, 1], [2, 0], [3, 0], [3, 1]],
168
+ [[0, 0], [0, 1], [1, 0], [1, 1], [2, 0], [2, 1], [3, 0], [3, 1]]
169
+ ], frames = [], sequence = [...stages, ...stages.slice().reverse().slice(1)];
170
+ for (let dots of sequence) {
171
+ let g = makeGrid(4, 2);
172
+ for (let [r, c] of dots) g[r][c] = !0;
173
+ frames.push(gridToBraille(g));
174
+ }
175
+ return frames;
176
+ }
177
+ function genWaveRows() {
178
+ let frames = [];
179
+ for (let f = 0; f < 16; f++) {
180
+ let g = makeGrid(4, 8);
181
+ for (let c = 0; c < 8; c++) {
182
+ let phase = f - c * 0.5, row = Math.round((Math.sin(phase * 0.8) + 1) / 2 * 3);
183
+ g[row][c] = !0, row > 0 && (g[row - 1][c] = (f + c) % 3 === 0);
184
+ }
185
+ frames.push(gridToBraille(g));
186
+ }
187
+ return frames;
188
+ }
189
+ function genCheckerboard() {
190
+ let frames = [];
191
+ for (let phase = 0; phase < 4; phase++) {
192
+ let g = makeGrid(4, 6);
193
+ for (let r = 0; r < 4; r++)
194
+ for (let c = 0; c < 6; c++)
195
+ phase < 2 ? g[r][c] = (r + c + phase) % 2 === 0 : g[r][c] = (r + c + phase) % 3 === 0;
196
+ frames.push(gridToBraille(g));
197
+ }
198
+ return frames;
199
+ }
200
+ function genHelix() {
201
+ let frames = [];
202
+ for (let f = 0; f < 16; f++) {
203
+ let g = makeGrid(4, 8);
204
+ for (let c = 0; c < 8; c++) {
205
+ let phase = (f + c) * (Math.PI / 4), y1 = Math.round((Math.sin(phase) + 1) / 2 * 3), y2 = Math.round((Math.sin(phase + Math.PI) + 1) / 2 * 3);
206
+ g[y1][c] = !0, g[y2][c] = !0;
207
+ }
208
+ frames.push(gridToBraille(g));
209
+ }
210
+ return frames;
211
+ }
212
+ function genFillSweep() {
213
+ let frames = [];
214
+ for (let row = 3; row >= 0; row--) {
215
+ let g = makeGrid(4, 4);
216
+ for (let r = row; r < 4; r++)
217
+ for (let c = 0; c < 4; c++) g[r][c] = !0;
218
+ frames.push(gridToBraille(g));
219
+ }
220
+ let full = makeGrid(4, 4);
221
+ for (let r = 0; r < 4; r++) for (let c = 0; c < 4; c++) full[r][c] = !0;
222
+ frames.push(gridToBraille(full)), frames.push(gridToBraille(full));
223
+ for (let row = 0; row < 4; row++) {
224
+ let g = makeGrid(4, 4);
225
+ for (let r = row + 1; r < 4; r++)
226
+ for (let c = 0; c < 4; c++) g[r][c] = !0;
227
+ frames.push(gridToBraille(g));
228
+ }
229
+ return frames.push(gridToBraille(makeGrid(4, 4))), frames;
230
+ }
231
+ function genDiagonalSwipe() {
232
+ let frames = [];
233
+ for (let d = 0; d <= 6; d++) {
234
+ let g = makeGrid(4, 4);
235
+ for (let r = 0; r < 4; r++)
236
+ for (let c = 0; c < 4; c++)
237
+ r + c <= d && (g[r][c] = !0);
238
+ frames.push(gridToBraille(g));
239
+ }
240
+ let full = makeGrid(4, 4);
241
+ for (let r = 0; r < 4; r++) for (let c = 0; c < 4; c++) full[r][c] = !0;
242
+ frames.push(gridToBraille(full));
243
+ for (let d = 0; d <= 6; d++) {
244
+ let g = makeGrid(4, 4);
245
+ for (let r = 0; r < 4; r++)
246
+ for (let c = 0; c < 4; c++)
247
+ r + c > d && (g[r][c] = !0);
248
+ frames.push(gridToBraille(g));
249
+ }
250
+ return frames.push(gridToBraille(makeGrid(4, 4))), frames;
251
+ }
252
+ var spinners = {
253
+ // === Classic braille single-char ===
254
+ braille: {
255
+ frames: ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"],
256
+ interval: 80
257
+ },
258
+ braillewave: {
259
+ frames: [
260
+ "\u2801\u2802\u2804\u2840",
261
+ "\u2802\u2804\u2840\u2880",
262
+ "\u2804\u2840\u2880\u2820",
263
+ "\u2840\u2880\u2820\u2810",
264
+ "\u2880\u2820\u2810\u2808",
265
+ "\u2820\u2810\u2808\u2801",
266
+ "\u2810\u2808\u2801\u2802",
267
+ "\u2808\u2801\u2802\u2804"
268
+ ],
269
+ interval: 100
270
+ },
271
+ dna: {
272
+ frames: [
273
+ "\u280B\u2809\u2819\u281A",
274
+ "\u2809\u2819\u281A\u2812",
275
+ "\u2819\u281A\u2812\u2802",
276
+ "\u281A\u2812\u2802\u2802",
277
+ "\u2812\u2802\u2802\u2812",
278
+ "\u2802\u2802\u2812\u2832",
279
+ "\u2802\u2812\u2832\u2834",
280
+ "\u2812\u2832\u2834\u2824",
281
+ "\u2832\u2834\u2824\u2804",
282
+ "\u2834\u2824\u2804\u280B",
283
+ "\u2824\u2804\u280B\u2809",
284
+ "\u2804\u280B\u2809\u2819"
285
+ ],
286
+ interval: 80
287
+ },
288
+ // === Generated braille grid animations ===
289
+ scan: { frames: genScan(), interval: 70 },
290
+ rain: { frames: genRain(), interval: 100 },
291
+ scanline: { frames: genScanLine(), interval: 120 },
292
+ pulse: { frames: genPulse(), interval: 180 },
293
+ snake: { frames: genSnake(), interval: 80 },
294
+ sparkle: { frames: genSparkle(), interval: 150 },
295
+ cascade: { frames: genCascade(), interval: 60 },
296
+ columns: { frames: genColumns(), interval: 60 },
297
+ orbit: { frames: genOrbit(), interval: 100 },
298
+ breathe: { frames: genBreathe(), interval: 100 },
299
+ waverows: { frames: genWaveRows(), interval: 90 },
300
+ checkerboard: { frames: genCheckerboard(), interval: 250 },
301
+ helix: { frames: genHelix(), interval: 80 },
302
+ fillsweep: { frames: genFillSweep(), interval: 100 },
303
+ diagswipe: { frames: genDiagonalSwipe(), interval: 60 }
304
+ };
305
+
306
+ export {
307
+ spinners
308
+ };
@@ -1,4 +1,7 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
+ import {
3
+ spinners
4
+ } from "./chunk-5ZH3ZFIZ.js";
2
5
 
3
6
  // packages/coding-agent/dist/core/subagent-cancellation.js
4
7
  var key = /* @__PURE__ */ Symbol.for("@lunr/subagent-cancellation"), store = globalThis, handlers = store[key] ?? /* @__PURE__ */ new Map();
@@ -43,9 +46,15 @@ var SubagentEscapeSequence = class {
43
46
  }
44
47
  };
45
48
 
49
+ // packages/coding-agent/dist/core/subagent-spinner.js
50
+ function getSubagentSpinnerDefinition(name) {
51
+ return spinners[name];
52
+ }
53
+
46
54
  export {
47
55
  registerSubagentCancellation,
48
56
  getSubagentCancellation,
49
57
  createSubagentCancellation,
50
- SubagentEscapeSequence
58
+ SubagentEscapeSequence,
59
+ getSubagentSpinnerDefinition
51
60
  };