attocode 0.1.8 → 0.2.0

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 (151) hide show
  1. package/CHANGELOG.md +143 -1
  2. package/dist/src/adapters.d.ts.map +1 -1
  3. package/dist/src/adapters.js +1 -0
  4. package/dist/src/adapters.js.map +1 -1
  5. package/dist/src/agent.d.ts +20 -1
  6. package/dist/src/agent.d.ts.map +1 -1
  7. package/dist/src/agent.js +364 -62
  8. package/dist/src/agent.js.map +1 -1
  9. package/dist/src/cli.d.ts +6 -0
  10. package/dist/src/cli.d.ts.map +1 -1
  11. package/dist/src/cli.js +37 -0
  12. package/dist/src/cli.js.map +1 -1
  13. package/dist/src/commands/init-commands.d.ts.map +1 -1
  14. package/dist/src/commands/init-commands.js +57 -0
  15. package/dist/src/commands/init-commands.js.map +1 -1
  16. package/dist/src/core/protocol/types.d.ts +14 -14
  17. package/dist/src/defaults.d.ts +1 -1
  18. package/dist/src/defaults.d.ts.map +1 -1
  19. package/dist/src/defaults.js +1 -0
  20. package/dist/src/defaults.js.map +1 -1
  21. package/dist/src/integrations/budget-pool.d.ts +96 -0
  22. package/dist/src/integrations/budget-pool.d.ts.map +1 -0
  23. package/dist/src/integrations/budget-pool.js +145 -0
  24. package/dist/src/integrations/budget-pool.js.map +1 -0
  25. package/dist/src/integrations/context-engineering.d.ts +16 -1
  26. package/dist/src/integrations/context-engineering.d.ts.map +1 -1
  27. package/dist/src/integrations/context-engineering.js +17 -0
  28. package/dist/src/integrations/context-engineering.js.map +1 -1
  29. package/dist/src/integrations/economics.d.ts +9 -0
  30. package/dist/src/integrations/economics.d.ts.map +1 -1
  31. package/dist/src/integrations/economics.js +25 -0
  32. package/dist/src/integrations/economics.js.map +1 -1
  33. package/dist/src/integrations/file-cache.d.ts +90 -0
  34. package/dist/src/integrations/file-cache.d.ts.map +1 -0
  35. package/dist/src/integrations/file-cache.js +164 -0
  36. package/dist/src/integrations/file-cache.js.map +1 -0
  37. package/dist/src/integrations/index.d.ts +6 -3
  38. package/dist/src/integrations/index.d.ts.map +1 -1
  39. package/dist/src/integrations/index.js +7 -1
  40. package/dist/src/integrations/index.js.map +1 -1
  41. package/dist/src/integrations/learning-store.d.ts.map +1 -1
  42. package/dist/src/integrations/learning-store.js +6 -0
  43. package/dist/src/integrations/learning-store.js.map +1 -1
  44. package/dist/src/integrations/safety.d.ts +25 -0
  45. package/dist/src/integrations/safety.d.ts.map +1 -1
  46. package/dist/src/integrations/safety.js +47 -0
  47. package/dist/src/integrations/safety.js.map +1 -1
  48. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  49. package/dist/src/integrations/smart-decomposer.js +7 -0
  50. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  51. package/dist/src/integrations/swarm/index.d.ts +29 -0
  52. package/dist/src/integrations/swarm/index.d.ts.map +1 -0
  53. package/dist/src/integrations/swarm/index.js +29 -0
  54. package/dist/src/integrations/swarm/index.js.map +1 -0
  55. package/dist/src/integrations/swarm/model-selector.d.ts +55 -0
  56. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -0
  57. package/dist/src/integrations/swarm/model-selector.js +342 -0
  58. package/dist/src/integrations/swarm/model-selector.js.map +1 -0
  59. package/dist/src/integrations/swarm/request-throttle.d.ts +112 -0
  60. package/dist/src/integrations/swarm/request-throttle.d.ts.map +1 -0
  61. package/dist/src/integrations/swarm/request-throttle.js +263 -0
  62. package/dist/src/integrations/swarm/request-throttle.js.map +1 -0
  63. package/dist/src/integrations/swarm/swarm-budget.d.ts +31 -0
  64. package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -0
  65. package/dist/src/integrations/swarm/swarm-budget.js +36 -0
  66. package/dist/src/integrations/swarm/swarm-budget.js.map +1 -0
  67. package/dist/src/integrations/swarm/swarm-config-loader.d.ts +51 -0
  68. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -0
  69. package/dist/src/integrations/swarm/swarm-config-loader.js +458 -0
  70. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -0
  71. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +145 -0
  72. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -0
  73. package/dist/src/integrations/swarm/swarm-event-bridge.js +443 -0
  74. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -0
  75. package/dist/src/integrations/swarm/swarm-events.d.ts +157 -0
  76. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -0
  77. package/dist/src/integrations/swarm/swarm-events.js +81 -0
  78. package/dist/src/integrations/swarm/swarm-events.js.map +1 -0
  79. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +166 -0
  80. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -0
  81. package/dist/src/integrations/swarm/swarm-orchestrator.js +1114 -0
  82. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -0
  83. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +29 -0
  84. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -0
  85. package/dist/src/integrations/swarm/swarm-quality-gate.js +85 -0
  86. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -0
  87. package/dist/src/integrations/swarm/swarm-state-store.d.ts +31 -0
  88. package/dist/src/integrations/swarm/swarm-state-store.d.ts.map +1 -0
  89. package/dist/src/integrations/swarm/swarm-state-store.js +91 -0
  90. package/dist/src/integrations/swarm/swarm-state-store.js.map +1 -0
  91. package/dist/src/integrations/swarm/task-queue.d.ts +128 -0
  92. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -0
  93. package/dist/src/integrations/swarm/task-queue.js +379 -0
  94. package/dist/src/integrations/swarm/task-queue.js.map +1 -0
  95. package/dist/src/integrations/swarm/types.d.ts +425 -0
  96. package/dist/src/integrations/swarm/types.d.ts.map +1 -0
  97. package/dist/src/integrations/swarm/types.js +96 -0
  98. package/dist/src/integrations/swarm/types.js.map +1 -0
  99. package/dist/src/integrations/swarm/worker-pool.d.ts +96 -0
  100. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -0
  101. package/dist/src/integrations/swarm/worker-pool.js +269 -0
  102. package/dist/src/integrations/swarm/worker-pool.js.map +1 -0
  103. package/dist/src/main.js +88 -0
  104. package/dist/src/main.js.map +1 -1
  105. package/dist/src/modes/repl.d.ts +1 -0
  106. package/dist/src/modes/repl.d.ts.map +1 -1
  107. package/dist/src/modes/repl.js +2 -1
  108. package/dist/src/modes/repl.js.map +1 -1
  109. package/dist/src/modes/tui.d.ts +1 -0
  110. package/dist/src/modes/tui.d.ts.map +1 -1
  111. package/dist/src/modes/tui.js +3 -1
  112. package/dist/src/modes/tui.js.map +1 -1
  113. package/dist/src/providers/adapters/anthropic.d.ts +1 -1
  114. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
  115. package/dist/src/providers/adapters/anthropic.js +15 -2
  116. package/dist/src/providers/adapters/anthropic.js.map +1 -1
  117. package/dist/src/providers/adapters/mock.d.ts +2 -2
  118. package/dist/src/providers/adapters/mock.d.ts.map +1 -1
  119. package/dist/src/providers/adapters/mock.js +2 -1
  120. package/dist/src/providers/adapters/mock.js.map +1 -1
  121. package/dist/src/providers/adapters/openai.d.ts +1 -1
  122. package/dist/src/providers/adapters/openai.d.ts.map +1 -1
  123. package/dist/src/providers/adapters/openai.js +2 -2
  124. package/dist/src/providers/adapters/openai.js.map +1 -1
  125. package/dist/src/providers/adapters/openrouter.d.ts +15 -1
  126. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -1
  127. package/dist/src/providers/adapters/openrouter.js +60 -5
  128. package/dist/src/providers/adapters/openrouter.js.map +1 -1
  129. package/dist/src/providers/resilient-fetch.d.ts +2 -0
  130. package/dist/src/providers/resilient-fetch.d.ts.map +1 -1
  131. package/dist/src/providers/resilient-fetch.js +27 -3
  132. package/dist/src/providers/resilient-fetch.js.map +1 -1
  133. package/dist/src/providers/types.d.ts +12 -1
  134. package/dist/src/providers/types.d.ts.map +1 -1
  135. package/dist/src/providers/types.js.map +1 -1
  136. package/dist/src/tools/bash.d.ts +2 -2
  137. package/dist/src/tools/file.d.ts +4 -4
  138. package/dist/src/tricks/kv-cache-context.d.ts +24 -0
  139. package/dist/src/tricks/kv-cache-context.d.ts.map +1 -1
  140. package/dist/src/tricks/kv-cache-context.js +68 -0
  141. package/dist/src/tricks/kv-cache-context.js.map +1 -1
  142. package/dist/src/tui/app.d.ts.map +1 -1
  143. package/dist/src/tui/app.js +75 -4
  144. package/dist/src/tui/app.js.map +1 -1
  145. package/dist/src/tui/components/SwarmStatusPanel.d.ts +27 -0
  146. package/dist/src/tui/components/SwarmStatusPanel.d.ts.map +1 -0
  147. package/dist/src/tui/components/SwarmStatusPanel.js +108 -0
  148. package/dist/src/tui/components/SwarmStatusPanel.js.map +1 -0
  149. package/dist/src/types.d.ts +35 -2
  150. package/dist/src/types.d.ts.map +1 -1
  151. package/package.json +1 -1
@@ -28,6 +28,8 @@ export interface ChatResponse {
28
28
  content: string;
29
29
  /** Why the response stopped */
30
30
  stopReason: 'end_turn' | 'max_tokens' | 'stop_sequence';
31
+ /** Reasoning/thinking content from models that support it (e.g., DeepSeek-R1, GLM-4, QwQ) */
32
+ thinking?: string;
31
33
  /** Token usage (if available) */
32
34
  usage?: {
33
35
  inputTokens: number;
@@ -37,6 +39,15 @@ export interface ChatResponse {
37
39
  /** Actual cost from provider (when available, e.g., OpenRouter) */
38
40
  cost?: number;
39
41
  };
42
+ /** Rate limit info from response headers (when available) */
43
+ rateLimitInfo?: {
44
+ /** Remaining requests in current window */
45
+ remainingRequests?: number;
46
+ /** Remaining tokens in current window */
47
+ remainingTokens?: number;
48
+ /** Seconds until rate limit window resets */
49
+ resetSeconds?: number;
50
+ };
40
51
  }
41
52
  /**
42
53
  * The core LLM provider interface.
@@ -52,7 +63,7 @@ export interface LLMProvider {
52
63
  * @param messages - Conversation history
53
64
  * @param options - Optional configuration
54
65
  */
55
- chat(messages: Message[], options?: ChatOptions): Promise<ChatResponse>;
66
+ chat(messages: (Message | MessageWithContent)[], options?: ChatOptions): Promise<ChatResponse>;
56
67
  /**
57
68
  * Check if the provider is properly configured.
58
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,+BAA+B;IAC/B,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;IAExD,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,kEAAkE;QAClE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mEAAmE;QACnE,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,6DAA6D;IAC7D,aAAa,CAAC,EAAE;QACd,2CAA2C;QAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,yCAAyC;QACzC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,6CAA6C;QAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,GAAG,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/F;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC;CACzB;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAMzC;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,QAAQ,EAAE,MAAM;aAChB,IAAI,EAAE,iBAAiB;aACvB,KAAK,CAAC,EAAE,KAAK;gBAH7B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,iBAAiB,EACvB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,MAAM,MAAM,iBAAiB,GACzB,gBAAgB,GAChB,uBAAuB,GACvB,cAAc,GACd,yBAAyB,GACzB,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,SAAS,CAAC;AAMd;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,sDAAsD;QACtD,IAAI,EAAE,MAAM,CAAC;QACb,qEAAqE;QACrE,WAAW,EAAE,MAAM,CAAC;QACpB,iCAAiC;QACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,uDAAuD;QACvD,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,wCAAwC;IACxC,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAE/B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC/F;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,uCAAuC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,kDAAkD;QAClD,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,+CAA+C;IAC/C,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IACrC,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD;;;OAGG;IACH,aAAa,CACX,QAAQ,EAAE,CAAC,OAAO,GAAG,kBAAkB,CAAC,EAAE,EAC1C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmIH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGpB;IACA;IACA;IAJlB,YACE,OAAe,EACC,QAAgB,EAChB,IAAuB,EACvB,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAmB;QACvB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgJH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGpB;IACA;IACA;IAJlB,YACE,OAAe,EACC,QAAgB,EAChB,IAAuB,EACvB,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAmB;QACvB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}
@@ -18,8 +18,8 @@ export declare const bashTool: import("./types.js").ToolDefinition<z.ZodObject<{
18
18
  cwd: z.ZodOptional<z.ZodString>;
19
19
  timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
20
20
  }, "strip", z.ZodTypeAny, {
21
- command: string;
22
21
  timeout: number;
22
+ command: string;
23
23
  cwd?: string | undefined;
24
24
  }, {
25
25
  command: string;
@@ -31,9 +31,9 @@ export declare const grepTool: import("./types.js").ToolDefinition<z.ZodObject<{
31
31
  path: z.ZodString;
32
32
  recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
33
33
  }, "strip", z.ZodTypeAny, {
34
+ recursive: boolean;
34
35
  path: string;
35
36
  pattern: string;
36
- recursive: boolean;
37
37
  }, {
38
38
  path: string;
39
39
  pattern: string;
@@ -15,11 +15,11 @@ export declare const writeFileTool: import("./types.js").ToolDefinition<z.ZodObj
15
15
  path: z.ZodString;
16
16
  content: z.ZodString;
17
17
  }, "strip", z.ZodTypeAny, {
18
- path: string;
19
18
  content: string;
20
- }, {
21
19
  path: string;
20
+ }, {
22
21
  content: string;
22
+ path: string;
23
23
  }>>;
24
24
  export declare const editFileTool: import("./types.js").ToolDefinition<z.ZodObject<{
25
25
  path: z.ZodString;
@@ -38,10 +38,10 @@ export declare const listFilesTool: import("./types.js").ToolDefinition<z.ZodObj
38
38
  path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
39
39
  recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
40
40
  }, "strip", z.ZodTypeAny, {
41
- path: string;
42
41
  recursive: boolean;
42
+ path: string;
43
43
  }, {
44
- path?: string | undefined;
45
44
  recursive?: boolean | undefined;
45
+ path?: string | undefined;
46
46
  }>>;
47
47
  //# sourceMappingURL=file.d.ts.map
@@ -97,6 +97,17 @@ export type CacheEvent = {
97
97
  stats: CacheStats;
98
98
  };
99
99
  export type CacheEventListener = (event: CacheEvent) => void;
100
+ /**
101
+ * Content block with optional cache_control marker.
102
+ * Used to build system prompts that enable prompt caching at the API level.
103
+ */
104
+ export interface CacheableContentBlock {
105
+ type: 'text';
106
+ text: string;
107
+ cache_control?: {
108
+ type: 'ephemeral';
109
+ };
110
+ }
100
111
  /**
101
112
  * Stringify JSON with sorted keys for deterministic output.
102
113
  * This ensures the same object always produces the same string,
@@ -155,6 +166,19 @@ export declare class CacheAwareContext {
155
166
  memory?: string;
156
167
  dynamic?: DynamicContent;
157
168
  }): string;
169
+ /**
170
+ * Build system prompt as CacheableContent[] with cache_control markers.
171
+ * Each section becomes a separate content block; static/semi-stable sections
172
+ * get `cache_control: { type: 'ephemeral' }` so the LLM provider can cache them.
173
+ *
174
+ * Returns structured content suitable for MessageWithContent.
175
+ */
176
+ buildCacheableSystemPrompt(options: {
177
+ rules?: string;
178
+ tools?: string;
179
+ memory?: string;
180
+ dynamic?: DynamicContent;
181
+ }): CacheableContentBlock[];
158
182
  /**
159
183
  * Validate that messages follow append-only constraint.
160
184
  * Returns violations if any past messages were modified.
@@ -1 +1 @@
1
- {"version":3,"file":"kv-cache-context.d.ts","sourceRoot":"","sources":["../../../src/tricks/kv-cache-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv-cache-context.d.ts","sourceRoot":"","sources":["../../../src/tricks/kv-cache-context.ts"],"names":[],"mappings":"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"}
@@ -177,6 +177,74 @@ export class CacheAwareContext {
177
177
  }
178
178
  return parts.join('');
179
179
  }
180
+ /**
181
+ * Build system prompt as CacheableContent[] with cache_control markers.
182
+ * Each section becomes a separate content block; static/semi-stable sections
183
+ * get `cache_control: { type: 'ephemeral' }` so the LLM provider can cache them.
184
+ *
185
+ * Returns structured content suitable for MessageWithContent.
186
+ */
187
+ buildCacheableSystemPrompt(options) {
188
+ const blocks = [];
189
+ // 1. Static prefix — most stable, always cached
190
+ if (this.config.staticPrefix) {
191
+ blocks.push({
192
+ type: 'text',
193
+ text: this.config.staticPrefix,
194
+ cache_control: { type: 'ephemeral' },
195
+ });
196
+ }
197
+ // 2. Rules content — semi-stable, cached
198
+ if (options.rules) {
199
+ blocks.push({
200
+ type: 'text',
201
+ text: '\n\n## Rules\n' + options.rules,
202
+ cache_control: { type: 'ephemeral' },
203
+ });
204
+ }
205
+ // 3. Tool descriptions — semi-stable, cached
206
+ if (options.tools) {
207
+ blocks.push({
208
+ type: 'text',
209
+ text: '\n\n## Available Tools\n' + options.tools,
210
+ cache_control: { type: 'ephemeral' },
211
+ });
212
+ }
213
+ // 4. Memory/context — changes more frequently, still cache-worthy
214
+ if (options.memory) {
215
+ blocks.push({
216
+ type: 'text',
217
+ text: '\n\n## Relevant Context\n' + options.memory,
218
+ cache_control: { type: 'ephemeral' },
219
+ });
220
+ }
221
+ // 5. Dynamic content at END — changes every request, NO cache marker
222
+ if (options.dynamic && Object.keys(options.dynamic).length > 0) {
223
+ const dynamicParts = [];
224
+ if (options.dynamic.sessionId) {
225
+ dynamicParts.push(`Session: ${options.dynamic.sessionId}`);
226
+ }
227
+ if (options.dynamic.mode) {
228
+ dynamicParts.push(`Mode: ${options.dynamic.mode}`);
229
+ }
230
+ if (options.dynamic.timestamp) {
231
+ dynamicParts.push(`Time: ${options.dynamic.timestamp}`);
232
+ }
233
+ for (const [key, value] of Object.entries(options.dynamic)) {
234
+ if (!['sessionId', 'mode', 'timestamp'].includes(key) && value) {
235
+ dynamicParts.push(`${key}: ${value}`);
236
+ }
237
+ }
238
+ if (dynamicParts.length > 0) {
239
+ blocks.push({
240
+ type: 'text',
241
+ text: '\n\n---\n' + dynamicParts.join(' | '),
242
+ // No cache_control — dynamic content should not be cached
243
+ });
244
+ }
245
+ }
246
+ return blocks;
247
+ }
180
248
  /**
181
249
  * Validate that messages follow append-only constraint.
182
250
  * Returns violations if any past messages were modified.
@@ -1 +1 @@
1
- {"version":3,"file":"kv-cache-context.js","sourceRoot":"","sources":["../../../src/tricks/kv-cache-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv-cache-context.js","sourceRoot":"","sources":["../../../src/tricks/kv-cache-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/tui/app.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAgDxD,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,gBAAgB,EAAE,MAAM,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC;IACjD,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,gBAAgB,EAAE;QAChB,SAAS,EAAE,MAAM,OAAO,CAAC;QACzB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC3C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KAC/C,CAAC;IACF,4DAA4D;IAC5D,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAkaD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,EACL,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,GACf,EAAE,WAAW,2CA85Db;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/tui/app.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAgDxD,yCAAyC;AACzC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,gBAAgB,EAAE,MAAM,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC;IACjD,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,gBAAgB,EAAE;QAChB,SAAS,EAAE,MAAM,OAAO,CAAC;QACzB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC3C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KAC/C,CAAC;IACF,4DAA4D;IAC5D,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAyaD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,EACL,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,GACf,EAAE,WAAW,2CA0+Db;AAED,eAAe,MAAM,CAAC"}
@@ -12,6 +12,7 @@ import { useState, useCallback, useEffect, memo, useRef, useMemo } from 'react';
12
12
  import { Box, Text, useApp, useInput, Static } from 'ink';
13
13
  import { ActiveAgentsPanel } from './components/ActiveAgentsPanel.js';
14
14
  import { TasksPanel } from './components/TasksPanel.js';
15
+ import { SwarmStatusPanel } from './components/SwarmStatusPanel.js';
15
16
  import { ToolCallItem } from './components/ToolCallItem.js';
16
17
  import { DebugPanel, useDebugBuffer } from './components/DebugPanel.js';
17
18
  import { getTheme, getThemeNames } from './theme/index.js';
@@ -61,7 +62,7 @@ const MessageItem = memo(function MessageItem({ msg, colors }) {
61
62
  const label = isUser ? 'You' : isAssistant ? 'Assistant' : isError ? 'Error' : 'System';
62
63
  return (_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsxs(Box, { gap: 1, children: [_jsx(Text, { color: roleColor, bold: true, children: icon }), _jsx(Text, { color: roleColor, bold: true, children: label }), _jsx(Text, { color: colors.textMuted, dimColor: true, children: ` ${msg.ts.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' })}` })] }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { wrap: "wrap", color: isError ? colors.error : colors.text, children: msg.content }) })] }));
63
64
  });
64
- const MemoizedInputArea = memo(function MemoizedInputArea({ onSubmit, disabled, borderColor, textColor, cursorColor, onCtrlC, onCtrlL, onCtrlP, onEscape, onToggleToolExpand, onToggleThinking, onToggleTransparency, onToggleActiveAgents, onToggleTasks, onToggleDebug, onPageUp, onPageDown, onHome, onEnd, commandPaletteOpen, onCommandPaletteInput, approvalDialogOpen, approvalDenyReasonMode, onApprovalApprove, onApprovalAlwaysAllow, onApprovalDeny, onApprovalDenyWithReason, onApprovalCancelDenyReason, onApprovalDenyReasonInput, history = [], onHistorySearch, }) {
65
+ const MemoizedInputArea = memo(function MemoizedInputArea({ onSubmit, disabled, borderColor, textColor, cursorColor, onCtrlC, onCtrlL, onCtrlP, onEscape, onToggleToolExpand, onToggleThinking, onToggleTransparency, onToggleActiveAgents, onToggleTasks, onToggleDebug, onToggleSwarm, onPageUp, onPageDown, onHome, onEnd, commandPaletteOpen, onCommandPaletteInput, approvalDialogOpen, approvalDenyReasonMode, onApprovalApprove, onApprovalAlwaysAllow, onApprovalDeny, onApprovalDenyWithReason, onApprovalCancelDenyReason, onApprovalDenyReasonInput, history = [], onHistorySearch, }) {
65
66
  const [value, setValue] = useState('');
66
67
  const [cursorPos, setCursorPos] = useState(0);
67
68
  // History navigation state
@@ -72,7 +73,7 @@ const MemoizedInputArea = memo(function MemoizedInputArea({ onSubmit, disabled,
72
73
  // Store callbacks in refs so useInput doesn't re-subscribe on prop changes
73
74
  const callbacksRef = useRef({
74
75
  onSubmit, onCtrlC, onCtrlL, onCtrlP, onEscape,
75
- onToggleToolExpand, onToggleThinking, onToggleTransparency, onToggleActiveAgents, onToggleTasks, onToggleDebug,
76
+ onToggleToolExpand, onToggleThinking, onToggleTransparency, onToggleActiveAgents, onToggleTasks, onToggleDebug, onToggleSwarm,
76
77
  onPageUp, onPageDown, onHome, onEnd,
77
78
  commandPaletteOpen, onCommandPaletteInput,
78
79
  approvalDialogOpen, approvalDenyReasonMode,
@@ -82,7 +83,7 @@ const MemoizedInputArea = memo(function MemoizedInputArea({ onSubmit, disabled,
82
83
  });
83
84
  callbacksRef.current = {
84
85
  onSubmit, onCtrlC, onCtrlL, onCtrlP, onEscape,
85
- onToggleToolExpand, onToggleThinking, onToggleTransparency, onToggleActiveAgents, onToggleTasks, onToggleDebug,
86
+ onToggleToolExpand, onToggleThinking, onToggleTransparency, onToggleActiveAgents, onToggleTasks, onToggleDebug, onToggleSwarm,
86
87
  onPageUp, onPageDown, onHome, onEnd,
87
88
  commandPaletteOpen, onCommandPaletteInput,
88
89
  approvalDialogOpen, approvalDenyReasonMode,
@@ -141,6 +142,11 @@ const MemoizedInputArea = memo(function MemoizedInputArea({ onSubmit, disabled,
141
142
  cb.onToggleDebug?.();
142
143
  return;
143
144
  }
145
+ // Alt+W / Option+W - Toggle swarm panel
146
+ if (input === '\u2211' || (key.meta && input === 'w')) {
147
+ cb.onToggleSwarm?.();
148
+ return;
149
+ }
144
150
  // Command palette keyboard handling (when open)
145
151
  if (cb.commandPaletteOpen && cb.onCommandPaletteInput) {
146
152
  cb.onCommandPaletteInput(input, key);
@@ -345,6 +351,9 @@ export function TUIApp({ agent, sessionStore, mcpClient, compactor, lspManager,
345
351
  const [activeAgentsExpanded, setActiveAgentsExpanded] = useState(true);
346
352
  const [tasksExpanded, setTasksExpanded] = useState(true);
347
353
  const [debugExpanded, setDebugExpanded] = useState(false);
354
+ const [swarmExpanded, setSwarmExpanded] = useState(true);
355
+ // Swarm status tracking (for Swarm Status Panel)
356
+ const [swarmStatus, setSwarmStatus] = useState(null);
348
357
  // Active agents tracking (for Active Agents Panel)
349
358
  const [activeAgents, setActiveAgents] = useState([]);
350
359
  // Tasks tracking (for Tasks Panel)
@@ -702,6 +711,64 @@ export function TUIApp({ agent, sessionStore, mcpClient, compactor, lspManager,
702
711
  addMessage('system', `[TASK] ${e.task.subject}: ${e.task.status}`);
703
712
  return;
704
713
  }
714
+ // Swarm events - update Swarm Status Panel
715
+ if (event.type === 'swarm.status') {
716
+ const e = event;
717
+ setSwarmStatus(e.status);
718
+ return;
719
+ }
720
+ if (event.type === 'swarm.start') {
721
+ const e = event;
722
+ addMessage('system', `[SWARM] Starting: ${e.taskCount} tasks in ${e.waveCount} waves`);
723
+ return;
724
+ }
725
+ if (event.type === 'swarm.wave.start') {
726
+ const e = event;
727
+ addMessage('system', `[SWARM] Wave ${e.wave}/${e.totalWaves}: dispatching ${e.taskCount} tasks`);
728
+ return;
729
+ }
730
+ if (event.type === 'swarm.wave.complete') {
731
+ const e = event;
732
+ addMessage('system', `[SWARM] Wave ${e.wave}/${e.totalWaves} complete: ${e.completed} done${e.failed > 0 ? `, ${e.failed} failed` : ''}${e.skipped > 0 ? `, ${e.skipped} skipped` : ''}`);
733
+ return;
734
+ }
735
+ if (event.type === 'swarm.task.dispatched') {
736
+ const e = event;
737
+ addMessage('system', `[SWARM] ${e.taskId} -> ${e.workerName} (${e.model.split('/').pop()}): ${e.description.slice(0, 80)}`);
738
+ return;
739
+ }
740
+ if (event.type === 'swarm.task.completed') {
741
+ const e = event;
742
+ addMessage('system', `[SWARM] ${e.taskId} ${e.success ? 'completed' : 'failed'} (${(e.tokensUsed / 1000).toFixed(1)}k tokens, $${e.costUsed.toFixed(4)}, ${(e.durationMs / 1000).toFixed(1)}s)`);
743
+ return;
744
+ }
745
+ if (event.type === 'swarm.task.failed') {
746
+ const e = event;
747
+ addMessage('system', `[SWARM] ${e.taskId} failed: ${e.error}${e.willRetry ? ' (will retry)' : ''}`);
748
+ return;
749
+ }
750
+ if (event.type === 'swarm.task.skipped') {
751
+ const e = event;
752
+ addMessage('system', `[SWARM] ${e.taskId} skipped: ${e.reason}`);
753
+ return;
754
+ }
755
+ if (event.type === 'swarm.quality.rejected') {
756
+ const e = event;
757
+ addMessage('system', `[SWARM] ${e.taskId} quality rejected (${e.score}/5): ${e.feedback.slice(0, 100)}`);
758
+ return;
759
+ }
760
+ if (event.type === 'swarm.complete') {
761
+ const e = event;
762
+ addMessage('system', `[SWARM] Complete: ${e.stats.completedTasks}/${e.stats.totalTasks} tasks, ${(e.stats.totalTokens / 1000).toFixed(0)}k tokens, $${e.stats.totalCost.toFixed(4)}`);
763
+ // Clear swarm status after completion (leave panel visible briefly)
764
+ setTimeout(() => setSwarmStatus(null), 5000);
765
+ return;
766
+ }
767
+ if (event.type === 'swarm.error') {
768
+ const e = event;
769
+ addMessage('error', `[SWARM ERROR] ${e.phase}: ${e.error}`);
770
+ return;
771
+ }
705
772
  // -------------------------------------------------------------------------
706
773
  // Processing-only events (normal message submission)
707
774
  // -------------------------------------------------------------------------
@@ -876,6 +943,7 @@ export function TUIApp({ agent, sessionStore, mcpClient, compactor, lspManager,
876
943
  ' Alt+I Toggle transparency panel',
877
944
  ' Alt+K Toggle tasks panel',
878
945
  ' Alt+D Toggle debug panel',
946
+ ' Alt+W Toggle swarm panel',
879
947
  '========================',
880
948
  ].join('\n'));
881
949
  return;
@@ -1895,6 +1963,9 @@ export function TUIApp({ agent, sessionStore, mcpClient, compactor, lspManager,
1895
1963
  return !prev;
1896
1964
  });
1897
1965
  }, [addMessage]);
1966
+ const handleToggleSwarm = useCallback(() => {
1967
+ setSwarmExpanded(prev => !prev);
1968
+ }, []);
1898
1969
  // Update context tokens
1899
1970
  useEffect(() => {
1900
1971
  const agentState = agent.getState();
@@ -1936,7 +2007,7 @@ export function TUIApp({ agent, sessionStore, mcpClient, compactor, lspManager,
1936
2007
  args: pendingApproval.args || {},
1937
2008
  risk: pendingApproval.risk,
1938
2009
  context: pendingApproval.context,
1939
- }, onApprove: handleApprove, onDeny: handleDeny, colors: colors, denyReasonMode: denyReasonMode, denyReason: denyReason })), _jsx(DebugPanel, { entries: debugBuffer.entries, expanded: debugExpanded, colors: colors }), _jsx(TasksPanel, { tasks: tasks, colors: colors, expanded: tasksExpanded }), _jsx(ActiveAgentsPanel, { agents: activeAgents, colors: colors, expanded: activeAgentsExpanded }), _jsx(MemoizedInputArea, { onSubmit: handleSubmit, disabled: isProcessing || !!pendingApproval, borderColor: pendingApproval ? '#FFD700' : '#87CEEB', textColor: "#98FB98", cursorColor: "#87CEEB", onCtrlC: handleCtrlC, onCtrlL: handleCtrlL, onCtrlP: handleCtrlP, onEscape: handleEscape, onToggleToolExpand: handleToggleToolExpand, onToggleThinking: handleToggleThinking, onToggleTransparency: handleToggleTransparency, onToggleActiveAgents: handleToggleActiveAgents, onToggleTasks: handleToggleTasks, onToggleDebug: handleToggleDebug, commandPaletteOpen: commandPaletteOpen, onCommandPaletteInput: handleCommandPaletteInput, approvalDialogOpen: !!pendingApproval, approvalDenyReasonMode: denyReasonMode, onApprovalApprove: handleApprove, onApprovalAlwaysAllow: handleAlwaysAllow, onApprovalDeny: handleDeny, onApprovalDenyWithReason: handleDenyWithReason, onApprovalCancelDenyReason: handleCancelDenyReason, onApprovalDenyReasonInput: handleApprovalDenyReasonInput, history: historyEntries }), commandPaletteOpen && (_jsx(ControlledCommandPalette, { theme: selectedTheme, items: filteredCommandItems, visible: commandPaletteOpen, query: commandPaletteQuery, selectedIndex: commandPaletteIndex, onQueryChange: setCommandPaletteQuery, onSelectItem: (item) => {
2010
+ }, onApprove: handleApprove, onDeny: handleDeny, colors: colors, denyReasonMode: denyReasonMode, denyReason: denyReason })), _jsx(DebugPanel, { entries: debugBuffer.entries, expanded: debugExpanded, colors: colors }), _jsx(TasksPanel, { tasks: tasks, colors: colors, expanded: tasksExpanded }), _jsx(ActiveAgentsPanel, { agents: activeAgents, colors: colors, expanded: activeAgentsExpanded }), _jsx(SwarmStatusPanel, { status: swarmStatus, colors: colors, expanded: swarmExpanded }), _jsx(MemoizedInputArea, { onSubmit: handleSubmit, disabled: isProcessing || !!pendingApproval, borderColor: pendingApproval ? '#FFD700' : '#87CEEB', textColor: "#98FB98", cursorColor: "#87CEEB", onCtrlC: handleCtrlC, onCtrlL: handleCtrlL, onCtrlP: handleCtrlP, onEscape: handleEscape, onToggleToolExpand: handleToggleToolExpand, onToggleThinking: handleToggleThinking, onToggleTransparency: handleToggleTransparency, onToggleActiveAgents: handleToggleActiveAgents, onToggleTasks: handleToggleTasks, onToggleDebug: handleToggleDebug, onToggleSwarm: handleToggleSwarm, commandPaletteOpen: commandPaletteOpen, onCommandPaletteInput: handleCommandPaletteInput, approvalDialogOpen: !!pendingApproval, approvalDenyReasonMode: denyReasonMode, onApprovalApprove: handleApprove, onApprovalAlwaysAllow: handleAlwaysAllow, onApprovalDeny: handleDeny, onApprovalDenyWithReason: handleDenyWithReason, onApprovalCancelDenyReason: handleCancelDenyReason, onApprovalDenyReasonInput: handleApprovalDenyReasonInput, history: historyEntries }), commandPaletteOpen && (_jsx(ControlledCommandPalette, { theme: selectedTheme, items: filteredCommandItems, visible: commandPaletteOpen, query: commandPaletteQuery, selectedIndex: commandPaletteIndex, onQueryChange: setCommandPaletteQuery, onSelectItem: (item) => {
1940
2011
  setCommandPaletteOpen(false);
1941
2012
  setCommandPaletteQuery('');
1942
2013
  setCommandPaletteIndex(0);