agentgui 1.0.116 → 1.0.117

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.116",
3
+ "version": "1.0.117",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "server.js",
package/static/app.js CHANGED
@@ -227,20 +227,28 @@ class GMGUIApp {
227
227
  break;
228
228
  }
229
229
 
230
- case 'tool_use':
230
+ case 'tool_use': {
231
231
  html += `<div class="block-tool-use">`;
232
232
  html += `<strong class="tool-name">${this.escapeHtml(block.name || 'Tool')}</strong>`;
233
- html += `<div class="tool-input"><pre>${this.escapeHtml(JSON.stringify(block.input || {}, null, 2))}</pre></div>`;
233
+ const paramHtml = this.renderParameters(block.input || {});
234
+ html += `<div class="tool-input">${paramHtml}</div>`;
234
235
  html += `</div>`;
235
236
  break;
237
+ }
236
238
 
237
- case 'tool_result':
239
+ case 'tool_result': {
238
240
  html += `<div class="block-tool-result">`;
239
241
  html += `<strong>Result:</strong>`;
240
- const resultText = typeof block.result === 'string' ? block.result : JSON.stringify(block.result, null, 2);
241
- html += `<div class="tool-result"><pre>${this.escapeHtml(resultText)}</pre></div>`;
242
+ let resultHtml;
243
+ if (typeof block.result === 'string') {
244
+ resultHtml = `<pre>${this.escapeHtml(block.result)}</pre>`;
245
+ } else {
246
+ resultHtml = this.renderParameters(block.result);
247
+ }
248
+ html += `<div class="tool-result">${resultHtml}</div>`;
242
249
  html += `</div>`;
243
250
  break;
251
+ }
244
252
 
245
253
  case 'file_operation':
246
254
  html += `<div class="block-file-op">`;
@@ -580,6 +588,52 @@ class GMGUIApp {
580
588
  div.textContent = text;
581
589
  return div.innerHTML;
582
590
  }
591
+
592
+ renderParameters(obj, depth = 0) {
593
+ if (obj === null || obj === undefined) {
594
+ return `<span style="color: var(--text-tertiary);">null</span>`;
595
+ }
596
+
597
+ if (typeof obj === 'string') {
598
+ const isPath = obj.includes('/') || obj.includes('\\');
599
+ const isUrl = obj.startsWith('http://') || obj.startsWith('https://');
600
+ if (isPath || isUrl) {
601
+ return `<code style="color: var(--text-secondary); background: transparent;">${this.escapeHtml(obj)}</code>`;
602
+ }
603
+ return `<span>"${this.escapeHtml(obj)}"</span>`;
604
+ }
605
+
606
+ if (typeof obj === 'number' || typeof obj === 'boolean') {
607
+ return `<span style="color: var(--color-info);">${obj}</span>`;
608
+ }
609
+
610
+ if (Array.isArray(obj)) {
611
+ if (obj.length === 0) {
612
+ return `<span style="color: var(--text-tertiary);">[]</span>`;
613
+ }
614
+ const maxItems = depth === 0 ? 10 : 5;
615
+ const items = obj.slice(0, maxItems).map(item => this.renderParameters(item, depth + 1));
616
+ const more = obj.length > maxItems ? `<span style="color: var(--text-tertiary);">... ${obj.length - maxItems} more</span>` : '';
617
+ return `<span style="color: var(--text-tertiary);">[</span> ${items.join(', ')} ${more} <span style="color: var(--text-tertiary);">]</span>`;
618
+ }
619
+
620
+ if (typeof obj === 'object') {
621
+ const keys = Object.keys(obj);
622
+ if (keys.length === 0) {
623
+ return `<span style="color: var(--text-tertiary);">{}</span>`;
624
+ }
625
+ const maxKeys = depth === 0 ? 15 : 8;
626
+ const pairs = keys.slice(0, maxKeys).map(key => {
627
+ const keyHtml = `<span style="color: var(--color-primary);">${this.escapeHtml(key)}</span>`;
628
+ const valHtml = this.renderParameters(obj[key], depth + 1);
629
+ return `${keyHtml}: ${valHtml}`;
630
+ });
631
+ const more = keys.length > maxKeys ? `<span style="color: var(--text-tertiary);">... ${keys.length - maxKeys} more</span>` : '';
632
+ return `<div style="margin-left: ${depth * 1.5}rem;"><span style="color: var(--text-tertiary);">{</span><br/>${pairs.map(p => `&nbsp;&nbsp;${p}`).join(',<br/>')}<br/>${more}<span style="color: var(--text-tertiary);">}</span></div>`;
633
+ }
634
+
635
+ return `<span>${this.escapeHtml(String(obj))}</span>`;
636
+ }
583
637
  }
584
638
 
585
639
  const app = new GMGUIApp();
package/static/styles.css CHANGED
@@ -739,7 +739,6 @@ html, body {
739
739
  align-items: center;
740
740
  justify-content: center;
741
741
  background: var(--bg-secondary);
742
- border: 1px solid var(--border-color);
743
742
  border-radius: 0.25rem;
744
743
  font-family: monospace;
745
744
  font-size: 0.75rem;
@@ -787,7 +786,6 @@ html, body {
787
786
  max-height: 300px;
788
787
  overflow-y: auto;
789
788
  background: var(--bg-secondary);
790
- border-top: 1px solid var(--border-color);
791
789
  }
792
790
 
793
791
  .tool-block.collapsed .tool-body {
@@ -812,7 +810,6 @@ html, body {
812
810
  padding: 0.375rem 0.75rem;
813
811
  font-size: 0.8rem;
814
812
  color: var(--text-secondary);
815
- border-top: 1px solid var(--border-color);
816
813
  }
817
814
 
818
815
  .html-block {
@@ -1792,12 +1789,13 @@ p code {
1792
1789
  }
1793
1790
 
1794
1791
  .tool-input {
1795
- background: var(--bg-tertiary);
1792
+ background: transparent;
1796
1793
  border-radius: 0.375rem;
1797
- padding: 0.5rem;
1794
+ padding: 0.5rem 0;
1798
1795
  overflow-x: auto;
1799
1796
  font-size: 0.8rem;
1800
1797
  font-family: 'Courier New', monospace;
1798
+ line-height: 1.5;
1801
1799
  }
1802
1800
 
1803
1801
  .tool-input pre {
@@ -1805,6 +1803,17 @@ p code {
1805
1803
  color: var(--text-secondary);
1806
1804
  }
1807
1805
 
1806
+ .tool-input code {
1807
+ color: var(--text-secondary);
1808
+ background: transparent;
1809
+ padding: 0;
1810
+ font-family: inherit;
1811
+ }
1812
+
1813
+ .tool-input span {
1814
+ font-family: 'Courier New', monospace;
1815
+ }
1816
+
1808
1817
  .block-tool-result {
1809
1818
  background: rgba(16, 185, 129, 0.05);
1810
1819
  border: 1px solid rgba(16, 185, 129, 0.2);
@@ -1819,14 +1828,15 @@ p code {
1819
1828
  }
1820
1829
 
1821
1830
  .tool-result {
1822
- background: var(--bg-tertiary);
1831
+ background: transparent;
1823
1832
  border-radius: 0.375rem;
1824
- padding: 0.5rem;
1833
+ padding: 0.5rem 0;
1825
1834
  overflow-x: auto;
1826
1835
  font-size: 0.8rem;
1827
1836
  font-family: 'Courier New', monospace;
1828
1837
  max-height: 300px;
1829
1838
  overflow-y: auto;
1839
+ line-height: 1.5;
1830
1840
  }
1831
1841
 
1832
1842
  .tool-result pre {
@@ -1834,6 +1844,13 @@ p code {
1834
1844
  color: var(--text-secondary);
1835
1845
  }
1836
1846
 
1847
+ .tool-result code {
1848
+ color: var(--text-secondary);
1849
+ background: transparent;
1850
+ padding: 0;
1851
+ font-family: inherit;
1852
+ }
1853
+
1837
1854
  .block-file-op {
1838
1855
  background: rgba(245, 158, 11, 0.05);
1839
1856
  border: 1px solid rgba(245, 158, 11, 0.2);
@@ -1853,15 +1870,15 @@ p code {
1853
1870
  font-size: 0.875rem;
1854
1871
  font-family: 'Courier New', monospace;
1855
1872
  margin-bottom: 0.5rem;
1856
- padding: 0.25rem 0.5rem;
1857
- background: var(--bg-tertiary);
1873
+ padding: 0.25rem 0;
1874
+ background: transparent;
1858
1875
  border-radius: 0.25rem;
1859
1876
  }
1860
1877
 
1861
1878
  .file-content {
1862
- background: var(--bg-tertiary);
1879
+ background: transparent;
1863
1880
  border-radius: 0.375rem;
1864
- padding: 0.5rem;
1881
+ padding: 0.5rem 0;
1865
1882
  overflow-x: auto;
1866
1883
  font-size: 0.8rem;
1867
1884
  font-family: 'Courier New', monospace;
package/.prd DELETED
File without changes