openclaw-openagent 1.0.11 → 1.0.13

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 (65) hide show
  1. package/dist/index.js +3 -1
  2. package/dist/src/app/remote-agent-tool.js +110 -14
  3. package/dist/src/app/types.d.ts +2 -2
  4. package/dist/src/config/config-schema.d.ts +9 -0
  5. package/dist/src/config/config-schema.js +6 -0
  6. package/dist/src/plugin-ui/adapters/adapters/oc-2026-04.js +103 -0
  7. package/dist/src/plugin-ui/adapters/adapters/oc-2026-05.js +125 -0
  8. package/dist/src/plugin-ui/adapters/adapters/oc-2026-06.js +125 -0
  9. package/dist/src/plugin-ui/adapters/adapters/oc-unknown.js +48 -0
  10. package/dist/src/plugin-ui/adapters/oc-2026-04.js +103 -0
  11. package/dist/src/plugin-ui/adapters/oc-2026-05.js +125 -0
  12. package/dist/src/plugin-ui/adapters/oc-2026-06.js +125 -0
  13. package/dist/src/plugin-ui/adapters/oc-unknown.js +48 -0
  14. package/dist/src/plugin-ui/assets/openagent-override.js +1129 -273
  15. package/dist/src/plugin-ui/index.d.ts +1 -1
  16. package/dist/src/plugin-ui/index.js +2 -2
  17. package/dist/src/plugin-ui/ui-extension-loader/index.d.ts +2 -1
  18. package/dist/src/plugin-ui/ui-extension-loader/index.js +5 -5
  19. package/dist/src/plugin-ui/ui-extension-loader/registry-regex.js +75 -8
  20. package/dist/src/plugin-ui/ui-extension-loader/types.d.ts +4 -1
  21. package/dist/src/proxy/auth-proxy.js +5 -0
  22. package/dist/src/runtime/update-checker.d.ts +18 -0
  23. package/dist/src/runtime/update-checker.js +253 -0
  24. package/dist/src/state/store.d.ts +21 -0
  25. package/dist/src/state/store.js +54 -0
  26. package/dist/src/transport/oasn/oasn-invocation.d.ts +3 -0
  27. package/dist/src/transport/oasn/oasn-invocation.js +28 -12
  28. package/dist/src/transport/oasn/oasn-types.d.ts +8 -4
  29. package/index.ts +4 -1
  30. package/package.json +4 -3
  31. package/src/app/remote-agent-tool.ts +131 -16
  32. package/src/app/types.ts +2 -2
  33. package/src/config/config-schema.ts +6 -0
  34. package/src/plugin-ui/adapters/oc-2026-04.js +103 -0
  35. package/src/plugin-ui/adapters/oc-2026-05.js +125 -0
  36. package/src/plugin-ui/adapters/oc-2026-06.js +125 -0
  37. package/src/plugin-ui/adapters/oc-unknown.js +48 -0
  38. package/src/plugin-ui/assets/openagent-override.js +1129 -273
  39. package/src/plugin-ui/build.cjs +249 -38
  40. package/src/plugin-ui/index.ts +2 -2
  41. package/src/plugin-ui/modules/agent-book/panel/agent-book.js +102 -12
  42. package/src/plugin-ui/modules/agent-book/panel/inject-ui.js +105 -3
  43. package/src/plugin-ui/modules/agent-book/panel/styles.js +54 -48
  44. package/src/plugin-ui/modules/agent-book/remote-agent-tool/components-core.js +4 -2
  45. package/src/plugin-ui/modules/agent-book/remote-agent-tool/thought-chain-card.js +4 -1
  46. package/src/plugin-ui/modules/agent-book/scanner.js +17 -5
  47. package/src/plugin-ui/modules/agent-book/travelcard/travel-styles.js +12 -1
  48. package/src/plugin-ui/modules/loader/bootstrap.js +95 -0
  49. package/src/plugin-ui/modules/loader/shared-state.js +244 -20
  50. package/src/plugin-ui/modules/remote-agent/execution-card.js +54 -16
  51. package/src/plugin-ui/modules/remote-agent/native-style-adapter.js +5 -23
  52. package/src/plugin-ui/modules/remote-agent/output-card.js +13 -7
  53. package/src/plugin-ui/modules/remote-agent/render-hooks.js +53 -41
  54. package/src/plugin-ui/modules/remote-agent/styles.js +238 -89
  55. package/src/plugin-ui/modules/remote-agent/tool-card-model.js +72 -4
  56. package/src/plugin-ui/postinstall-deploy.cjs +52 -0
  57. package/src/plugin-ui/ui-extension-loader/index.ts +6 -6
  58. package/src/plugin-ui/ui-extension-loader/registry-regex.ts +81 -9
  59. package/src/plugin-ui/ui-extension-loader/types.ts +5 -1
  60. package/src/proxy/auth-proxy.ts +5 -0
  61. package/src/runtime/update-checker.ts +286 -0
  62. package/src/state/store.ts +80 -0
  63. package/src/transport/oasn/oasn-invocation.ts +47 -12
  64. package/src/transport/oasn/oasn-types.ts +6 -2
  65. package/src/types/openclaw-plugin-sdk-media-store.d.ts +9 -0
@@ -515,6 +515,15 @@ window.__openagentRenderToolCard = function(card, onOpenSidebar) {
515
515
 
516
516
  model.toolCallId = resTcid;
517
517
  model.cardKind = 'result';
518
+ if (model.isError) {
519
+ var executionNodeForResult = (resState && resState.cardNode)
520
+ || (resTcid ? __cl_executionCardCache.get(resTcid) : null);
521
+ if (executionNodeForResult && executionNodeForResult.classList && executionNodeForResult.classList.contains('cl-exec-v2')) {
522
+ if (typeof _clUpdateAgentStatusTextV2 === 'function') _clUpdateAgentStatusTextV2(executionNodeForResult, 'failed');
523
+ } else if (executionNodeForResult && typeof _clUpdateAgentStatusText === 'function') {
524
+ _clUpdateAgentStatusText(executionNodeForResult, 'failed');
525
+ }
526
+ }
518
527
 
519
528
  // 缓存:同一 toolCallId 的 output card 只创建一次,Lit 重复调用时复用
520
529
  var cachedOutput = resTcid ? __cl_outputCardCache.get(resTcid) : null;
@@ -639,26 +648,32 @@ function _cl_isRemoteRawTextContent(text) {
639
648
  return false;
640
649
  }
641
650
 
651
+ function _cl_getHostAdapter() {
652
+ return (typeof CL !== 'undefined' && CL.hostAdapter) ? CL.hostAdapter : {};
653
+ }
654
+
642
655
  function _cl_collectRawTextHosts(node) {
643
656
  var hosts = [];
657
+ var adapter = _cl_getHostAdapter();
658
+ var selectors = adapter.selectors && adapter.selectors.rawTextHostClosest;
644
659
  function add(host) {
645
660
  if (!host || hosts.indexOf(host) !== -1) return;
646
661
  hosts.push(host);
647
662
  }
648
663
  add(node.parentElement);
649
- if (node.closest) {
650
- add(node.closest('.chat-tools-collapse__body'));
651
- add(node.closest('.chat-tool-msg-body'));
652
- add(node.closest('.chat-tool-card__detail'));
653
- add(node.closest('.chat-bubble'));
664
+ if (node.closest && Array.isArray(selectors)) {
665
+ for (var i = 0; i < selectors.length; i++) {
666
+ add(node.closest(selectors[i]));
667
+ }
654
668
  }
655
669
  return hosts;
656
670
  }
657
671
 
658
672
  function _cl_hideRawTextInHost(host) {
659
673
  if (!host || !host.querySelectorAll) return;
674
+ var adapter = _cl_getHostAdapter();
660
675
  host.classList.add('cl-remote-agent-raw-hidden');
661
- if (host.classList.contains('chat-tools-collapse__body') || host.classList.contains('chat-tool-msg-body')) {
676
+ if (adapter.isToolBody && adapter.isToolBody(host)) {
662
677
  host.classList.add('cl-remote-agent-host-shell');
663
678
  }
664
679
  var texts = host.querySelectorAll(':scope > .chat-text');
@@ -669,16 +684,11 @@ function _cl_hideRawTextInHost(host) {
669
684
  }
670
685
 
671
686
  function _cl_findRemoteNativeToolShell(node) {
687
+ var adapter = _cl_getHostAdapter();
672
688
  var cur = node && (node.nodeType === 1 ? node : node.parentElement);
673
689
  var hops = 0;
674
690
  while (cur && cur !== document.body && hops < 12) {
675
- if (cur.matches && cur.matches(
676
- 'details.chat-tools-collapse,' +
677
- 'details.chat-tool-msg-collapse,' +
678
- '.chat-tools-collapse,' +
679
- '.chat-tool-msg-collapse,' +
680
- '.chat-tool-card'
681
- )) {
691
+ if (adapter.isRemoteNativeToolShellCandidate && adapter.isRemoteNativeToolShellCandidate(cur)) {
682
692
  if (_cl_isRemoteNativeToolShell(cur)) return cur;
683
693
  }
684
694
  cur = cur.parentElement;
@@ -689,14 +699,12 @@ function _cl_findRemoteNativeToolShell(node) {
689
699
 
690
700
  function _cl_isRemoteNativeToolShell(shell) {
691
701
  if (!shell) return false;
702
+ var adapter = _cl_getHostAdapter();
703
+ var summarySelector = adapter.selectors && adapter.selectors.summary;
692
704
  var summaryText = '';
693
- var summary = shell.querySelector && shell.querySelector(
694
- ':scope > summary,' +
695
- ':scope > .chat-tools-summary,' +
696
- ':scope > .chat-tool-msg-summary,' +
697
- '.chat-tools-summary,' +
698
- '.chat-tool-msg-summary'
699
- );
705
+ var summary = shell.querySelector && summarySelector
706
+ ? shell.querySelector(summarySelector)
707
+ : null;
700
708
  if (summary) summaryText = summary.textContent || '';
701
709
  if (_cl_isRemoteToolNameText(summaryText)) return true;
702
710
 
@@ -737,27 +745,23 @@ function _cl_tryHideRemoteRawTextNode(node) {
737
745
 
738
746
  var shell = _cl_findRemoteNativeToolShell(node);
739
747
  if (shell && shell.querySelectorAll) {
740
- var hosts = shell.querySelectorAll('.chat-tools-collapse__body, .chat-tool-msg-body, .chat-tool-card__detail, .chat-bubble');
741
- for (var h = 0; h < hosts.length; h++) {
742
- _cl_hideRawTextInHost(hosts[h]);
748
+ var adapter = _cl_getHostAdapter();
749
+ var hostSelector = adapter.selectors && adapter.selectors.rawTextHostsWithinShell;
750
+ if (hostSelector) {
751
+ var hosts = shell.querySelectorAll(hostSelector);
752
+ for (var h = 0; h < hosts.length; h++) {
753
+ _cl_hideRawTextInHost(hosts[h]);
754
+ }
743
755
  }
744
756
  }
745
757
  }
746
758
 
747
759
  function _cl_findNearestToolLikeShell(node) {
760
+ var adapter = _cl_getHostAdapter();
748
761
  var cur = node && (node.nodeType === 1 ? node : node.parentElement);
749
762
  var hops = 0;
750
763
  while (cur && cur !== document.body && hops < 12) {
751
- if (cur.matches && cur.matches(
752
- 'details.chat-tools-collapse,' +
753
- 'details.chat-tool-msg-collapse,' +
754
- '.chat-tools-collapse,' +
755
- '.chat-tool-msg-collapse,' +
756
- '.chat-tool-card,' +
757
- '.chat-tools-collapse__body,' +
758
- '.chat-tool-msg-body,' +
759
- '.chat-tool-card__detail'
760
- )) {
764
+ if (adapter.isToolLikeShell && adapter.isToolLikeShell(cur)) {
761
765
  return cur;
762
766
  }
763
767
  cur = cur.parentElement;
@@ -806,15 +810,11 @@ _cl_installRemoteRawTextObserver();
806
810
  // ── 局部打开最近宿主 wrapper(不做全局扫描)──
807
811
 
808
812
  function _cl_findNearestNativeToolShell(node) {
813
+ var adapter = _cl_getHostAdapter();
809
814
  var cur = node && node.parentElement;
810
815
  var hops = 0;
811
816
  while (cur && cur !== document.body && hops < 10) {
812
- if (cur.matches && cur.matches(
813
- 'details.chat-tools-collapse,' +
814
- 'details.chat-tool-msg-collapse,' +
815
- '.chat-tools-collapse,' +
816
- '.chat-tool-msg-collapse'
817
- )) {
817
+ if (adapter.isNativeToolShell && adapter.isNativeToolShell(cur)) {
818
818
  return cur;
819
819
  }
820
820
  cur = cur.parentElement;
@@ -842,7 +842,9 @@ function _cl_forceOpenNativeToolDetails(node, source, tcid) {
842
842
 
843
843
  if (shell.classList && !shell.classList.contains('is-open')) {
844
844
  shell.classList.add('is-open');
845
- var header = shell.querySelector('.chat-tool-msg-summary, .chat-tools-summary');
845
+ var adapter = _cl_getHostAdapter();
846
+ var headerSelector = (adapter.selectors && adapter.selectors.forceOpenHeader) || '';
847
+ var header = headerSelector ? shell.querySelector(headerSelector) : null;
846
848
  if (header) header.setAttribute('aria-expanded', 'true');
847
849
  console.log('[cl-render] 🔓 opened native collapse source=' + source
848
850
  + ' tcid=' + String(tcid || '').substring(0, 8));
@@ -918,6 +920,9 @@ function _cl_applyCardUiState(container, modelOrNode) {
918
920
  content.classList.remove('cl-content-collapsed');
919
921
  if (caret) caret.textContent = '▼';
920
922
  }
923
+ if (typeof _clSyncOutputFooterVisibility === 'function') {
924
+ _clSyncOutputFooterVisibility(container, state.contentCollapsed);
925
+ }
921
926
  }
922
927
 
923
928
  var body = container.querySelector('.cl-tools-collapse-body');
@@ -948,7 +953,9 @@ function _cl_applyStoredRecordToModel(model, record) {
948
953
  model.agentAvatar = args.agent_avatar || args.agentAvatar || args.avatar || args.avatar_url || args.avatarUrl || null;
949
954
  }
950
955
  if (!model.agentBio) {
951
- model.agentBio = args.agent_bio || args.agentBio || '';
956
+ model.agentBio = typeof _clPickAgentDescription === 'function'
957
+ ? _clPickAgentDescription(args)
958
+ : (args.agent_bio || args.agentBio || args.description || args.agent_description || args.MOM || '');
952
959
  }
953
960
  if (!model.agentStars) {
954
961
  model.agentStars = args.agent_stars || args.agentStars || '3.2万';
@@ -960,6 +967,11 @@ function _cl_applyStoredRecordToModel(model, record) {
960
967
  model.agentId = model.agentId || identity.id || identity.agent_id;
961
968
  model.agentName = (model.agentName && model.agentName !== 'Remote Agent') ? model.agentName : (identity.name || model.agentName);
962
969
  model.agentAvatar = model.agentAvatar || identity.avatar || null;
970
+ if (!model.agentBio) {
971
+ model.agentBio = typeof _clPickAgentDescription === 'function'
972
+ ? _clPickAgentDescription(identity)
973
+ : (identity.bio || identity.description || identity.agent_bio || identity.agentBio || identity.MOM || '');
974
+ }
963
975
  }
964
976
  model.taskText = model.taskText || args.task || args.message || args.instruction || '';
965
977
  }