@openviking/react 0.1.1 → 0.1.3

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 (229) hide show
  1. package/README.md +18 -15
  2. package/dist/1~0.js +506 -0
  3. package/dist/2~0.js +122 -0
  4. package/dist/30~0.js +1332 -0
  5. package/dist/3~0.js +2113 -4
  6. package/dist/ark-message-list-view~0.js +310 -0
  7. package/dist/c7~0.js +24 -0
  8. package/dist/client/index.d.ts +2 -1
  9. package/dist/client/paths.d.ts +64 -0
  10. package/dist/client/response.d.ts +31 -0
  11. package/dist/client/sse.d.ts +39 -0
  12. package/dist/client/stream.d.ts +26 -0
  13. package/dist/client/types.d.ts +104 -0
  14. package/dist/client.js +1 -239
  15. package/dist/components/agent-connect/agent-connect-copy.d.ts +34 -0
  16. package/dist/components/agent-connect/agent-connect-design.d.ts +1781 -0
  17. package/dist/components/agent-connect/agent-connect-detail.d.ts +13 -0
  18. package/dist/components/agent-connect/agent-connect-installer.d.ts +3 -0
  19. package/dist/components/agent-connect/agent-connect-instructions-view.d.ts +14 -0
  20. package/dist/components/agent-connect/agent-connect-instructions.d.ts +145 -0
  21. package/dist/components/agent-connect/agent-connect-markdown.d.ts +3 -0
  22. package/dist/components/agent-connect/agent-connect.d.ts +3 -3
  23. package/dist/components/agent-connect/content-en.d.ts +137 -0
  24. package/dist/components/agent-connect/content-zh.d.ts +137 -0
  25. package/dist/components/agent-connect/style.css +495 -6
  26. package/dist/components/agent-connect/types.d.ts +20 -166
  27. package/dist/components/file-browser-entries/file-browser-entries-icons.d.ts +18 -0
  28. package/dist/components/file-browser-entries/file-browser-entries.d.ts +14 -0
  29. package/dist/components/file-browser-entries/index.d.ts +1 -0
  30. package/dist/components/file-browser-entries/style.css +155 -0
  31. package/dist/components/file-browser-entries/types.d.ts +45 -0
  32. package/dist/components/file-browser-entries.js +1 -0
  33. package/dist/components/file-preview/file-preview-adapters.d.ts +33 -0
  34. package/dist/components/file-preview/file-preview-body.d.ts +24 -12
  35. package/dist/components/file-preview/file-preview-breadcrumb-menu.d.ts +16 -0
  36. package/dist/components/file-preview/file-preview-breadcrumb.d.ts +21 -0
  37. package/dist/components/file-preview/file-preview-copy-path.d.ts +12 -0
  38. package/dist/components/file-preview/file-preview-directory.d.ts +32 -0
  39. package/dist/components/file-preview/file-preview-editor.d.ts +22 -0
  40. package/dist/components/file-preview/file-preview-handle-adapters.d.ts +26 -0
  41. package/dist/components/file-preview/file-preview-header.d.ts +41 -14
  42. package/dist/components/file-preview/file-preview-labels.d.ts +15 -4
  43. package/dist/components/file-preview/file-preview-lazy-viewer.d.ts +3 -0
  44. package/dist/components/file-preview/file-preview-panels.d.ts +41 -0
  45. package/dist/components/file-preview/file-preview-path.d.ts +30 -0
  46. package/dist/components/file-preview/file-preview-source.d.ts +24 -0
  47. package/dist/components/file-preview/file-preview-state.d.ts +35 -0
  48. package/dist/components/file-preview/file-preview-tab-row.d.ts +16 -0
  49. package/dist/components/file-preview/file-preview-viewer.d.ts +31 -0
  50. package/dist/components/file-preview/file-preview.d.ts +9 -11
  51. package/dist/components/file-preview/level-selection.d.ts +25 -0
  52. package/dist/components/file-preview/style.css +4055 -126
  53. package/dist/components/file-preview/types.d.ts +350 -170
  54. package/dist/components/file-preview/use-directory-level.d.ts +30 -0
  55. package/dist/components/file-preview/use-file-preview-actions-context.d.ts +27 -0
  56. package/dist/components/file-preview/use-file-preview-actions.d.ts +19 -0
  57. package/dist/components/file-preview/use-file-preview-editing.d.ts +21 -2
  58. package/dist/components/file-preview/use-file-preview-ids.d.ts +24 -0
  59. package/dist/components/file-preview.js +1 -442
  60. package/dist/components/file-tree/file-tree-body.d.ts +8 -4
  61. package/dist/components/file-tree/file-tree-entry-row.d.ts +9 -3
  62. package/dist/components/file-tree/file-tree-icons.d.ts +12 -5
  63. package/dist/components/file-tree/file-tree-info-labels.d.ts +21 -0
  64. package/dist/components/file-tree/file-tree-info-tooltip.d.ts +43 -0
  65. package/dist/components/file-tree/file-tree-info.d.ts +29 -0
  66. package/dist/components/file-tree/file-tree-keyboard.d.ts +8 -4
  67. package/dist/components/file-tree/file-tree-row-context.d.ts +29 -12
  68. package/dist/components/file-tree/file-tree-row-shared.d.ts +18 -0
  69. package/dist/components/file-tree/file-tree-spinner.d.ts +10 -0
  70. package/dist/components/file-tree/file-tree-state-row.d.ts +7 -0
  71. package/dist/components/file-tree/file-tree-tooltip-surface.d.ts +22 -0
  72. package/dist/components/file-tree/file-tree.d.ts +12 -1
  73. package/dist/components/file-tree/style.css +280 -75
  74. package/dist/components/file-tree/types.d.ts +203 -0
  75. package/dist/components/file-tree/use-file-tree-actions.d.ts +7 -0
  76. package/dist/components/file-tree.js +1 -1
  77. package/dist/components/scope-switcher/scope-panel.d.ts +9 -3
  78. package/dist/components/scope-switcher/scope-selector.d.ts +1 -1
  79. package/dist/components/scope-switcher/scope-switcher.d.ts +1 -1
  80. package/dist/components/scope-switcher/style.css +282 -76
  81. package/dist/components/scope-switcher/types.d.ts +230 -108
  82. package/dist/components/style.css +14128 -390
  83. package/dist/components/tui/command-catalog.d.ts +58 -0
  84. package/dist/components/tui/command-completion.d.ts +19 -0
  85. package/dist/components/tui/command-definitions.d.ts +10 -0
  86. package/dist/components/tui/command-input.d.ts +16 -0
  87. package/dist/components/tui/style.css +1543 -5
  88. package/dist/components/tui/tui-assist.d.ts +15 -0
  89. package/dist/components/tui/tui-code-block.d.ts +8 -0
  90. package/dist/components/tui/tui-command-help.d.ts +9 -0
  91. package/dist/components/tui/tui-command-text.d.ts +6 -0
  92. package/dist/components/tui/tui-composer.d.ts +24 -0
  93. package/dist/components/tui/tui-copy-button.d.ts +9 -0
  94. package/dist/components/tui/tui-input-mirror.d.ts +14 -0
  95. package/dist/components/tui/tui-labels-zh.d.ts +2 -0
  96. package/dist/components/tui/tui-labels.d.ts +5 -0
  97. package/dist/components/tui/tui-markdown-renderers.d.ts +10 -0
  98. package/dist/components/tui/tui-markdown.d.ts +6 -0
  99. package/dist/components/tui/tui-param-hint.d.ts +7 -0
  100. package/dist/components/tui/tui-record-time.d.ts +11 -0
  101. package/dist/components/tui/tui-record.d.ts +13 -0
  102. package/dist/components/tui/tui-resource-preview.d.ts +10 -0
  103. package/dist/components/tui/tui-resource-tree.d.ts +10 -0
  104. package/dist/components/tui/tui-result-header.d.ts +7 -0
  105. package/dist/components/tui/tui-result-text.d.ts +5 -0
  106. package/dist/components/tui/tui-search-list.d.ts +8 -0
  107. package/dist/components/tui/tui-skeleton.d.ts +6 -0
  108. package/dist/components/tui/tui-status-card.d.ts +7 -0
  109. package/dist/components/tui/tui-text.d.ts +10 -0
  110. package/dist/components/tui/tui-uri-text.d.ts +19 -0
  111. package/dist/components/tui/tui-write-result.d.ts +7 -0
  112. package/dist/components/tui/tui.d.ts +10 -2
  113. package/dist/components/tui/types.d.ts +57 -15
  114. package/dist/components/tui/use-tui-assist-position.d.ts +3 -0
  115. package/dist/components/tui/use-tui-completion.d.ts +14 -0
  116. package/dist/components/tui/use-tui-composer-keyboard.d.ts +25 -0
  117. package/dist/components/viking-bot/ark-adapter.d.ts +45 -0
  118. package/dist/components/viking-bot/ark-message-body.d.ts +16 -0
  119. package/dist/components/viking-bot/ark-message-list-view.d.ts +7 -0
  120. package/dist/components/viking-bot/ark-message-row.d.ts +19 -0
  121. package/dist/components/viking-bot/index.d.ts +10 -0
  122. package/dist/components/viking-bot/interaction/ask-human-fields.d.ts +10 -0
  123. package/dist/components/viking-bot/interaction/index.d.ts +4 -0
  124. package/dist/components/viking-bot/interaction/labels.d.ts +7 -0
  125. package/dist/components/viking-bot/interaction/lazy-interaction.d.ts +3 -0
  126. package/dist/components/viking-bot/interaction/schedule-input.d.ts +13 -0
  127. package/dist/components/viking-bot/interaction/style.css +189 -0
  128. package/dist/components/viking-bot/interaction/style.js +0 -0
  129. package/dist/components/viking-bot/interaction/types.d.ts +188 -0
  130. package/dist/components/viking-bot/interaction/viking-bot-interaction.d.ts +9 -0
  131. package/dist/components/viking-bot/interaction.js +2 -0
  132. package/dist/components/viking-bot/labels.d.ts +2 -0
  133. package/dist/components/viking-bot/lazy-composer.d.ts +3 -0
  134. package/dist/components/viking-bot/message-groups.d.ts +12 -0
  135. package/dist/components/viking-bot/model.d.ts +252 -0
  136. package/dist/components/viking-bot/render-part.d.ts +12 -0
  137. package/dist/components/viking-bot/style.css +7135 -0
  138. package/dist/components/viking-bot/style.js +0 -0
  139. package/dist/components/viking-bot/types.d.ts +140 -0
  140. package/dist/components/viking-bot/viking-bot-composer.d.ts +6 -0
  141. package/dist/components/viking-bot/viking-bot-message-list.d.ts +3 -0
  142. package/dist/components/viking-bot/viking-bot.d.ts +16 -0
  143. package/dist/components/viking-bot.js +4 -0
  144. package/dist/c~0.js +201 -0
  145. package/dist/file-preview-viewer~0.js +191 -0
  146. package/dist/f~0.js +149 -77
  147. package/dist/h~0.js +58 -0
  148. package/dist/icons/file-type-icon.d.ts +31 -0
  149. package/dist/icons/index.d.ts +33 -23
  150. package/dist/icons/nextjs-icon.d.ts +19 -0
  151. package/dist/icons.js +1 -25
  152. package/dist/index.d.ts +4 -2
  153. package/dist/index.js +2 -1
  154. package/dist/k~0.js +1440 -0
  155. package/dist/lk~0.js +25 -12
  156. package/dist/l~0.js +1464 -25
  157. package/dist/modules/console/style.css +83 -1
  158. package/dist/modules/file-browser/file-browser-detail-icons.d.ts +10 -0
  159. package/dist/modules/file-browser/file-browser-detail.d.ts +33 -0
  160. package/dist/modules/file-browser/file-browser-empty.d.ts +3 -0
  161. package/dist/modules/file-browser/file-browser-failure.d.ts +22 -0
  162. package/dist/modules/file-browser/file-browser-icons.d.ts +18 -0
  163. package/dist/modules/file-browser/file-browser-labels.d.ts +28 -0
  164. package/dist/modules/file-browser/file-browser-layout.d.ts +27 -0
  165. package/dist/modules/file-browser/file-browser-toolbar.d.ts +18 -0
  166. package/dist/modules/file-browser/file-browser-tree-pane.d.ts +30 -0
  167. package/dist/modules/file-browser/file-browser.d.ts +14 -5
  168. package/dist/modules/file-browser/find-result.d.ts +24 -0
  169. package/dist/modules/file-browser/fs-directories.d.ts +33 -0
  170. package/dist/modules/file-browser/fs-file-kind.d.ts +19 -0
  171. package/dist/modules/file-browser/fs-icon.d.ts +17 -0
  172. package/dist/modules/file-browser/fs-model.d.ts +106 -0
  173. package/dist/modules/file-browser/fs-page.d.ts +16 -0
  174. package/dist/modules/file-browser/fs-path.d.ts +16 -0
  175. package/dist/modules/file-browser/fs-read-directory.d.ts +20 -0
  176. package/dist/modules/file-browser/fs-scope.d.ts +22 -0
  177. package/dist/modules/file-browser/fs-stat.d.ts +25 -0
  178. package/dist/modules/file-browser/index.d.ts +3 -1
  179. package/dist/modules/file-browser/style.css +5009 -34
  180. package/dist/modules/file-browser/tree-info-copy.d.ts +15 -0
  181. package/dist/modules/file-browser/tree-info-copy.zh-CN.d.ts +15 -0
  182. package/dist/modules/file-browser/types.d.ts +189 -44
  183. package/dist/modules/file-browser/use-container-width.d.ts +17 -0
  184. package/dist/modules/file-browser/use-file-browser.d.ts +49 -0
  185. package/dist/modules/file-browser/use-fs-preview.d.ts +51 -0
  186. package/dist/modules/file-browser/use-fs-search.d.ts +35 -0
  187. package/dist/modules/file-browser/use-fs-tree.d.ts +43 -0
  188. package/dist/modules/file-browser/use-request-scope.d.ts +39 -0
  189. package/dist/modules/file-browser.js +1 -1
  190. package/dist/modules/scope-cascade/style.css +282 -76
  191. package/dist/modules/style.css +5445 -130
  192. package/dist/n~0.js +568 -236
  193. package/dist/o~0.js +103 -0
  194. package/dist/shared/components/divider/divider.d.ts +18 -0
  195. package/dist/shared/components/divider/index.d.ts +1 -0
  196. package/dist/shared/components/divider/types.d.ts +35 -0
  197. package/dist/shared/components/overlay/types.d.ts +7 -0
  198. package/dist/shared/components/overlay/use-overlay-position.d.ts +38 -0
  199. package/dist/shared/components/popover/index.d.ts +1 -0
  200. package/dist/shared/components/popover/popover.d.ts +23 -0
  201. package/dist/shared/components/popover/types.d.ts +50 -0
  202. package/dist/shared/components/resizable/clamp.d.ts +13 -0
  203. package/dist/shared/components/resizable/index.d.ts +2 -0
  204. package/dist/shared/components/resizable/resizable-handle.d.ts +25 -0
  205. package/dist/shared/components/resizable/types.d.ts +48 -0
  206. package/dist/shared/components/tooltip/index.d.ts +1 -0
  207. package/dist/shared/components/tooltip/tooltip.d.ts +25 -0
  208. package/dist/shared/components/tooltip/types.d.ts +42 -0
  209. package/dist/style.css +19664 -530
  210. package/dist/u~0.js +1597 -4
  211. package/dist/viking-bot-composer~0.js +164 -0
  212. package/dist/viking-bot-interaction~0.js +284 -0
  213. package/dist/w~0.js +19 -0
  214. package/package.json +23 -10
  215. package/dist/components/file-preview/file-preview-icons.d.ts +0 -2
  216. package/dist/components/file-preview/file-preview-operations.d.ts +0 -1
  217. package/dist/components/file-tree/file-tree-dom.d.ts +0 -4
  218. package/dist/components/file-tree/file-tree-labels.d.ts +0 -5
  219. package/dist/components/file-tree/file-tree-rows.d.ts +0 -12
  220. package/dist/components/file-tree/file-tree-tooltip.d.ts +0 -11
  221. package/dist/i~0.js +0 -21
  222. package/dist/modules/file-browser/file-browser-toolbar-button.d.ts +0 -10
  223. package/dist/modules/task-center/columns.d.ts +0 -129
  224. package/dist/modules/task-center/index.d.ts +0 -1
  225. package/dist/modules/task-center/style.css +0 -29
  226. package/dist/modules/task-center/task-center.d.ts +0 -4
  227. package/dist/modules/task-center/types.d.ts +0 -168
  228. package/dist/modules/task-center.js +0 -1
  229. /package/dist/{modules/task-center → components/file-browser-entries}/style.js +0 -0
@@ -1,16 +1,505 @@
1
+ .ov-agent-connect, .ov-divider, .ov-file-browser, .ov-file-browser-entries, .ov-file-preview, .ov-file-tree, .ov-module-placeholder, .ov-popover, .ov-scope-switcher, .ov-tooltip, .ov-tui, .ov-viking-bot, .ov-viking-bot__interaction {
2
+ --ov-ui-primary-default: #5252ff;
3
+ --ov-ui-primary-hover-default: #7075ff;
4
+ --ov-ui-primary-active-default: #3833d2;
5
+ --ov-ui-primary-light-default: #f5f7ff;
6
+ --ov-ui-connect-glow-warm-default: #ff952b0a;
7
+ --ov-ui-connect-glow-pink-default: #fb4fbc0f;
8
+ --ov-ui-connect-glow-pink-soft-default: #fb4fbc0a;
9
+ --ov-ui-on-primary-default: #fff;
10
+ --ov-ui-text-1-default: #0b0b0f;
11
+ --ov-ui-text-2-default: #3f3f51;
12
+ --ov-ui-text-3-default: #6e718c;
13
+ --ov-ui-text-description-default: #0006;
14
+ --ov-ui-text-disabled-default: #a5a7bb;
15
+ --ov-ui-border-1-default: #f0f2fa;
16
+ --ov-ui-border-2-default: #e1e4f2;
17
+ --ov-ui-border-3-default: #d7daea;
18
+ --ov-ui-bg-1-default: #fff;
19
+ --ov-ui-bg-3-default: #f7f8fd;
20
+ --ov-ui-bg-4-default: #f6f7fa;
21
+ --ov-ui-bg-5-default: #f1f2f9;
22
+ --ov-ui-status-success-default: #1f9d55;
23
+ --ov-ui-shadow-default: #0f172a;
24
+ --ov-ui-focus-default: #5252ff;
25
+ --ov-ui-fill-hover-default: #f1f2f9;
26
+ --ov-ui-status-error-default: #c43838;
27
+ --ov-ui-warning-default: #b26a00;
28
+ --ov-ui-warning-light-default: #fff0b3;
29
+ --ov-ui-tooltip-bg-default: #1f2329;
30
+ --ov-ui-tooltip-text-default: #fff;
31
+ }
32
+
33
+ .dark .ov-agent-connect, .dark .ov-divider, .dark .ov-file-browser, .dark .ov-file-browser-entries, .dark .ov-file-preview, .dark .ov-file-tree, .dark .ov-module-placeholder, .dark .ov-popover, .dark .ov-scope-switcher, .dark .ov-tooltip, .dark .ov-tui, .dark .ov-viking-bot, .dark .ov-viking-bot__interaction {
34
+ --ov-ui-primary-default: #5f5fff;
35
+ --ov-ui-primary-hover-default: #7075ff;
36
+ --ov-ui-primary-active-default: #4242ba;
37
+ --ov-ui-primary-light-default: #1a1632;
38
+ --ov-ui-connect-glow-warm-default: #ff952b05;
39
+ --ov-ui-connect-glow-pink-default: #fb4fbc08;
40
+ --ov-ui-connect-glow-pink-soft-default: #fb4fbc05;
41
+ --ov-ui-text-1-default: #c7ccd6;
42
+ --ov-ui-text-2-default: #9da3af;
43
+ --ov-ui-text-3-default: #737a87;
44
+ --ov-ui-text-description-default: #fff6;
45
+ --ov-ui-text-disabled-default: #42464e;
46
+ --ov-ui-border-1-default: #23252a;
47
+ --ov-ui-border-2-default: #2e3138;
48
+ --ov-ui-border-3-default: #3a3d45;
49
+ --ov-ui-bg-1-default: #131416;
50
+ --ov-ui-bg-3-default: #1b1d21;
51
+ --ov-ui-bg-4-default: #202227;
52
+ --ov-ui-bg-5-default: #23252a;
53
+ --ov-ui-focus-default: #5f5fff;
54
+ --ov-ui-fill-hover-default: #23252a;
55
+ --ov-ui-status-error-default: #ff9595;
56
+ --ov-ui-warning-default: #e0a04a;
57
+ --ov-ui-warning-light-default: #3a2f14;
58
+ --ov-ui-tooltip-bg-default: #2a2d33;
59
+ --ov-ui-tooltip-text-default: #f0f1f3;
60
+ }
61
+
62
+ .ov-agent-connect {
63
+ --ov-ui-connect-card-default: #fbfbfc;
64
+ --ov-ui-connect-tabs-default: #f7f7f9;
65
+ --ov-ui-connect-selected-default: #f3f4f7;
66
+ --ov-ui-connect-border-default: #edeef2;
67
+ --ov-ui-connect-outline-default: #e1e3ea;
68
+ --ov-ui-connect-muted-default: #787c91;
69
+ --ov-ui-connect-notice-default: #2e2984;
70
+ }
71
+
72
+ .dark .ov-agent-connect {
73
+ --ov-ui-connect-card-default: var(--ov-ui-bg-3-default);
74
+ --ov-ui-connect-tabs-default: var(--ov-ui-bg-3-default);
75
+ --ov-ui-connect-selected-default: var(--ov-ui-bg-4-default);
76
+ --ov-ui-connect-border-default: var(--ov-ui-border-1-default);
77
+ --ov-ui-connect-outline-default: var(--ov-ui-border-2-default);
78
+ --ov-ui-connect-muted-default: var(--ov-ui-text-3-default);
79
+ --ov-ui-connect-notice-default: var(--ov-ui-text-2-default);
80
+ }
81
+
1
82
  .ov-agent-connect {
83
+ --ov-ui-agent-connect-text: var(--ov-ui-color-text-1, var(--ov-ui-text-1-default));
84
+ --ov-ui-agent-connect-secondary: var(--ov-ui-color-text-2, var(--ov-ui-text-2-default));
85
+ --ov-ui-agent-connect-muted: var(--ov-ui-color-connect-muted, var(--ov-ui-connect-muted-default));
86
+ --ov-ui-agent-connect-bg: var(--ov-ui-color-bg-1, var(--ov-ui-bg-1-default));
87
+ --ov-ui-agent-connect-card: var(--ov-ui-color-connect-card, var(--ov-ui-connect-card-default));
88
+ --ov-ui-agent-connect-tabs: var(--ov-ui-color-connect-tabs, var(--ov-ui-connect-tabs-default));
89
+ --ov-ui-agent-connect-selected: var(--ov-ui-color-connect-selected, var(--ov-ui-connect-selected-default));
90
+ --ov-ui-agent-connect-border: var(--ov-ui-color-connect-border, var(--ov-ui-connect-border-default));
91
+ --ov-ui-agent-connect-primary: var(--ov-ui-color-primary, var(--ov-ui-primary-default));
2
92
  box-sizing: border-box;
3
- border-radius: var(--ov-ui-radius, 6px);
4
- background: var(--ov-ui-placeholder, #f3f4f7);
5
- width: 960px;
6
- height: 640px;
7
- color: var(--ov-ui-text-muted, #8f959e);
93
+ background: var(--ov-ui-agent-connect-bg);
94
+ width: 1000px;
95
+ max-width: 100%;
96
+ color: var(--ov-ui-agent-connect-text);
97
+ letter-spacing: .003em;
98
+ -webkit-font-smoothing: antialiased;
99
+ font-family: PingFang SC, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
100
+ font-size: 14px;
101
+ line-height: 22px;
102
+ overflow-x: auto;
103
+ }
104
+
105
+ .ov-agent-connect__canvas {
106
+ isolation: isolate;
107
+ width: 1000px;
108
+ min-height: 949px;
109
+ box-shadow: inset 0 0 0 .5px
110
+ var(--ov-ui-color-connect-outline, var(--ov-ui-connect-outline-default));
111
+ position: relative;
112
+ overflow: hidden;
113
+ }
114
+
115
+ .ov-agent-connect__canvas:before {
116
+ z-index: -1;
117
+ background: radial-gradient(ellipse 466.5px 159.5px at 379.5px -6.5px,
118
+ var(--ov-ui-color-connect-glow-warm, var(--ov-ui-connect-glow-warm-default)),
119
+ transparent),
120
+ radial-gradient(ellipse 286.5px 159.5px at 725.5px 4.5px,
121
+ var(--ov-ui-color-connect-glow-pink, var(--ov-ui-connect-glow-pink-default)),
122
+ transparent),
123
+ radial-gradient(ellipse 230.5px 212px at -63.5px 869px,
124
+ var(--ov-ui-color-connect-glow-warm, var(--ov-ui-connect-glow-warm-default)),
125
+ transparent),
126
+ radial-gradient(ellipse 173.5px 159.5px at 236.5px 947.5px,
127
+ var(--ov-ui-color-connect-glow-pink-soft, var(--ov-ui-connect-glow-pink-soft-default)),
128
+ transparent);
129
+ content: "";
130
+ pointer-events: none;
131
+ position: absolute;
132
+ inset: 0;
133
+ }
134
+
135
+ .ov-agent-connect *, .ov-agent-connect :before, .ov-agent-connect :after {
136
+ box-sizing: border-box;
137
+ }
138
+
139
+ .ov-agent-connect :where(button) {
140
+ font: inherit;
141
+ cursor: pointer;
142
+ }
143
+
144
+ .ov-agent-connect button:focus-visible, .ov-agent-connect a:focus-visible {
145
+ outline: 2px solid var(--ov-ui-color-focus, var(--ov-ui-focus-default));
146
+ outline-offset: 2px;
147
+ }
148
+
149
+ .ov-agent-connect__header {
150
+ flex-direction: column;
151
+ align-items: center;
152
+ gap: 20px;
153
+ padding: 24px 0;
154
+ display: flex;
155
+ }
156
+
157
+ .ov-agent-connect__title {
158
+ color: inherit;
159
+ margin: 0;
160
+ font-size: 24px;
161
+ font-weight: 600;
162
+ line-height: 32px;
163
+ }
164
+
165
+ .ov-agent-connect__tabs {
166
+ background: var(--ov-ui-agent-connect-tabs);
167
+ border-radius: 34px;
168
+ height: 36px;
169
+ padding: 2px;
170
+ display: flex;
171
+ }
172
+
173
+ .ov-agent-connect__tab {
174
+ color: var(--ov-ui-agent-connect-secondary);
175
+ white-space: nowrap;
176
+ background: none;
177
+ border: 1px solid #0000;
178
+ border-radius: 35px;
179
+ justify-content: center;
180
+ align-items: center;
181
+ padding: 4px 16px;
182
+ display: flex;
183
+ }
184
+
185
+ .ov-agent-connect__tab[aria-selected="true"] {
186
+ border-color: var(--ov-ui-agent-connect-border);
187
+ background: var(--ov-ui-agent-connect-bg);
188
+ color: var(--ov-ui-agent-connect-text);
189
+ font-weight: 500;
190
+ }
191
+
192
+ .ov-agent-connect__layout {
193
+ grid-template-columns: 200px minmax(0, 1fr);
194
+ gap: 40px;
195
+ padding: 0 60px 24px 40px;
196
+ display: grid;
197
+ }
198
+
199
+ .ov-agent-connect__list {
200
+ flex-direction: column;
201
+ gap: 4px;
202
+ min-width: 0;
203
+ margin: 0;
204
+ padding: 24px 0;
205
+ list-style: none;
206
+ display: flex;
207
+ }
208
+
209
+ .ov-agent-connect__item {
210
+ width: 100%;
211
+ height: 36px;
212
+ color: var(--ov-ui-agent-connect-secondary);
213
+ text-align: left;
214
+ background: none;
215
+ border: 0;
216
+ border-radius: 6px;
217
+ align-items: center;
218
+ gap: 8px;
219
+ padding: 7px 12px;
220
+ display: flex;
221
+ }
222
+
223
+ .ov-agent-connect__item:hover {
224
+ background: var(--ov-ui-agent-connect-tabs);
225
+ }
226
+
227
+ .ov-agent-connect__item[aria-pressed="true"] {
228
+ background: var(--ov-ui-agent-connect-selected);
229
+ color: var(--ov-ui-agent-connect-text);
230
+ font-weight: 500;
231
+ }
232
+
233
+ .ov-agent-connect__item-icon {
234
+ flex: 0 0 20px;
235
+ width: 20px;
236
+ height: 20px;
237
+ }
238
+
239
+ .ov-agent-connect__item-name {
240
+ white-space: nowrap;
241
+ }
242
+
243
+ .ov-agent-connect__detail {
244
+ flex-direction: column;
245
+ gap: 24px;
246
+ min-width: 0;
247
+ padding-top: 24px;
248
+ display: flex;
249
+ }
250
+
251
+ .ov-agent-connect__identity {
252
+ align-items: flex-start;
253
+ gap: 12px;
254
+ display: flex;
255
+ }
256
+
257
+ .ov-agent-connect__detail-icon {
258
+ flex: 0 0 56px;
8
259
  justify-content: center;
9
260
  align-items: center;
10
- font-family: inherit;
261
+ width: 56px;
262
+ height: 56px;
263
+ display: flex;
264
+ }
265
+
266
+ .ov-agent-connect__detail-icon--frame {
267
+ border: 1px solid var(--ov-ui-agent-connect-border);
268
+ border-radius: 12px;
269
+ }
270
+
271
+ .ov-agent-connect__detail-icon--frame > svg {
272
+ width: 48px;
273
+ height: 48px;
274
+ }
275
+
276
+ .ov-agent-connect__summary {
277
+ flex-direction: column;
278
+ gap: 4px;
279
+ min-width: 0;
280
+ display: flex;
281
+ }
282
+
283
+ .ov-agent-connect__detail-title {
284
+ color: inherit;
285
+ margin: 0;
286
+ font-size: 18px;
287
+ font-weight: 500;
288
+ line-height: 26px;
289
+ }
290
+
291
+ .ov-agent-connect__description {
292
+ min-height: 40px;
293
+ color: var(--ov-ui-agent-connect-muted);
294
+ margin: 0;
11
295
  font-size: 12px;
296
+ line-height: 20px;
297
+ }
298
+
299
+ .ov-agent-connect__tags {
300
+ gap: 8px;
301
+ margin-top: 4px;
302
+ display: flex;
303
+ }
304
+
305
+ .ov-agent-connect__tag {
306
+ background: var(--ov-ui-agent-connect-selected);
307
+ color: var(--ov-ui-agent-connect-secondary);
308
+ border-radius: 4px;
309
+ padding: 0 6px;
310
+ font-size: 12px;
311
+ line-height: 20px;
312
+ }
313
+
314
+ .ov-agent-connect__instructions {
315
+ flex-direction: column;
316
+ gap: 12px;
12
317
  display: flex;
13
318
  }
14
319
 
320
+ .ov-agent-connect__instructions-header {
321
+ justify-content: space-between;
322
+ align-items: center;
323
+ height: 34px;
324
+ display: flex;
325
+ }
326
+
327
+ .ov-agent-connect__instructions-title {
328
+ color: inherit;
329
+ margin: 0;
330
+ font-size: 14px;
331
+ font-weight: 500;
332
+ line-height: 22px;
333
+ }
334
+
335
+ .ov-agent-connect__copy {
336
+ background: var(--ov-ui-agent-connect-primary);
337
+ height: 34px;
338
+ color: var(--ov-ui-color-on-primary, var(--ov-ui-on-primary-default));
339
+ border: 0;
340
+ border-radius: 8px;
341
+ justify-content: center;
342
+ align-items: center;
343
+ gap: 6px;
344
+ padding: 5px 16px;
345
+ font-size: 13px;
346
+ line-height: 22px;
347
+ display: inline-flex;
348
+ }
349
+
350
+ .ov-agent-connect__copy svg {
351
+ flex: 0 0 16px;
352
+ width: 16px;
353
+ height: 16px;
354
+ }
355
+
356
+ .ov-agent-connect__copy:hover {
357
+ background: var(--ov-ui-color-primary-hover, var(--ov-ui-primary-hover-default));
358
+ }
359
+
360
+ .ov-agent-connect__copy:active {
361
+ background: var(--ov-ui-color-primary-active, var(--ov-ui-primary-active-default));
362
+ }
363
+
364
+ .ov-agent-connect__copy:disabled {
365
+ opacity: .6;
366
+ cursor: wait;
367
+ }
368
+
369
+ .ov-agent-connect__body {
370
+ box-shadow: inset 0 0 0 1px var(--ov-ui-agent-connect-border);
371
+ background: var(--ov-ui-agent-connect-card);
372
+ color: var(--ov-ui-agent-connect-secondary);
373
+ overflow-wrap: anywhere;
374
+ white-space: pre-wrap;
375
+ border-radius: 12px;
376
+ padding: 12px 16px;
377
+ font-size: 13px;
378
+ line-height: 22px;
379
+ }
380
+
381
+ .ov-agent-connect__feedback {
382
+ color: var(--ov-ui-agent-connect-muted);
383
+ font-size: 12px;
384
+ }
385
+
386
+ .ov-agent-connect__feedback:empty {
387
+ display: none;
388
+ }
389
+
390
+ .ov-agent-connect__feedback--error {
391
+ color: var(--ov-ui-color-status-error, var(--ov-ui-status-error-default));
392
+ }
393
+
394
+ .ov-agent-connect__footer {
395
+ color: var(--ov-ui-agent-connect-muted);
396
+ margin: 0;
397
+ font-size: 12px;
398
+ line-height: 20px;
399
+ }
400
+
401
+ .ov-agent-connect__agreement {
402
+ color: inherit;
403
+ text-decoration: underline dotted;
404
+ text-decoration-color: var(--ov-ui-color-connect-notice, var(--ov-ui-connect-notice-default));
405
+ text-underline-offset: 3px;
406
+ }
407
+
408
+ .ov-agent-connect__markdown {
409
+ white-space: normal;
410
+ }
411
+
412
+ .ov-agent-connect__markdown :where(p, pre, h5, table) {
413
+ margin: 0 0 12px;
414
+ }
415
+
416
+ .ov-agent-connect__markdown > :last-child {
417
+ margin-bottom: 0;
418
+ }
419
+
420
+ .ov-agent-connect__markdown p {
421
+ white-space: pre-wrap;
422
+ }
423
+
424
+ .ov-agent-connect__markdown h5 {
425
+ color: var(--ov-ui-agent-connect-text);
426
+ font-size: 14px;
427
+ line-height: 22px;
428
+ }
429
+
430
+ .ov-agent-connect__markdown pre {
431
+ background: var(--ov-ui-agent-connect-bg);
432
+ white-space: pre-wrap;
433
+ overflow-wrap: anywhere;
434
+ border-radius: 6px;
435
+ padding: 12px;
436
+ font-size: 12px;
437
+ line-height: 20px;
438
+ }
439
+
440
+ .ov-agent-connect__markdown code {
441
+ font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
442
+ }
443
+
444
+ .ov-agent-connect__markdown a {
445
+ color: var(--ov-ui-agent-connect-primary);
446
+ overflow-wrap: anywhere;
447
+ }
448
+
449
+ .ov-agent-connect__markdown table {
450
+ border-collapse: collapse;
451
+ width: 100%;
452
+ }
453
+
454
+ .ov-agent-connect__markdown :where(td, th) {
455
+ border: 1px solid var(--ov-ui-agent-connect-border);
456
+ text-align: left;
457
+ padding: 6px;
458
+ }
459
+
460
+ .ov-agent-connect__guides {
461
+ gap: 8px;
462
+ display: flex;
463
+ }
464
+
465
+ .ov-agent-connect__guide {
466
+ border: 1px solid var(--ov-ui-agent-connect-border);
467
+ background: var(--ov-ui-agent-connect-bg);
468
+ color: var(--ov-ui-agent-connect-secondary);
469
+ border-radius: 6px;
470
+ padding: 4px 12px;
471
+ }
472
+
473
+ .ov-agent-connect__guide[aria-pressed="true"] {
474
+ background: var(--ov-ui-agent-connect-selected);
475
+ color: var(--ov-ui-agent-connect-text);
476
+ font-weight: 500;
477
+ }
478
+
479
+ .ov-agent-connect__guides--cli {
480
+ border-bottom: 1px solid var(--ov-ui-agent-connect-border);
481
+ gap: 0;
482
+ }
483
+
484
+ .ov-agent-connect__guides--cli .ov-agent-connect__guide {
485
+ color: var(--ov-ui-agent-connect-muted);
486
+ background: none;
487
+ border: 0;
488
+ border-bottom: 2px solid #0000;
489
+ border-radius: 0;
490
+ margin-bottom: -1px;
491
+ margin-right: 24px;
492
+ padding: 0 4px 12px;
493
+ font-size: 14px;
494
+ font-weight: 400;
495
+ transition: color .15s, border-color .15s;
496
+ }
497
+
498
+ .ov-agent-connect__guides--cli .ov-agent-connect__guide[aria-pressed="true"] {
499
+ border-bottom-color: var(--ov-ui-agent-connect-primary);
500
+ color: var(--ov-ui-agent-connect-text);
501
+ font-weight: 600;
502
+ }
503
+
15
504
 
16
505
 
@@ -1,175 +1,29 @@
1
- import type { HTMLAttributes, ReactNode } from 'react';
2
- /**
3
- * 顶部的一个接入分组,例如「接入主流 Agent」「接入应用」「开发自己的 Agent」。
4
- * 分组名称与数量由宿主决定,组件只按顺序渲染页签。
5
- *
6
- * One tab of the view, for example "Mainstream agents", "Apps" or "Build your
7
- * own agent". The host decides how many groups exist and what they are called;
8
- * the component renders them in order.
9
- */
10
- export interface AgentConnectTab {
11
- /**
12
- * 页签唯一标识。
13
- * Unique tab key.
14
- */
15
- id: string;
16
- /**
17
- * 页签显示文本。
18
- * Tab label.
19
- */
20
- label: string;
21
- }
22
- /**
23
- * 左侧列表中的一个条目,例如某个 Agent 或某种接入方式。
24
- *
25
- * One entry in the left list, for example an agent or an access method.
26
- */
1
+ import type { HTMLAttributes } from 'react';
2
+ export type AgentConnectLocale = 'zh' | 'en';
3
+ export type AgentConnectTabId = 'mainstream' | 'custom';
4
+ /** 固定目录中选中的 Agent。Selected agent from the built-in catalog. */
27
5
  export interface AgentConnectItem {
28
- /**
29
- * 条目唯一标识。
30
- * Unique item key.
31
- */
32
6
  id: string;
33
- /**
34
- * 条目名称。
35
- * Item name.
36
- */
37
7
  name: string;
38
- /**
39
- * 列表中的一句话说明。
40
- * One-line summary shown in the list.
41
- */
42
- description?: string;
43
- /**
44
- * 条目图标,可以是图片或图标节点。
45
- * Item icon, which can be an image or an icon node.
46
- */
47
- icon?: ReactNode;
48
- }
49
- /**
50
- * 右侧详情的正文。正文由宿主提供,组件只负责排版与复制,不解析业务含义。
51
- *
52
- * The detail body. The host supplies it; the component only lays it out and
53
- * copies it, without interpreting its meaning.
54
- */
55
- export interface AgentConnectDetail {
56
- /**
57
- * 详情标题,通常与选中条目同名。
58
- * Detail title, usually the selected item's name.
59
- */
60
- title?: string;
61
- /**
62
- * 标题旁的图标。
63
- * Icon shown next to the title.
64
- */
65
- icon?: ReactNode;
66
- /**
67
- * 标题下方的说明文字。
68
- * Description under the title.
69
- */
70
- description?: string;
71
- /**
72
- * 标题下方的标签,例如「SDK」「境外」。
73
- * Tags under the title, for example "SDK" or "Overseas".
74
- */
75
- tags?: readonly string[];
76
- /**
77
- * 正文内容,可以是 Markdown 渲染后的节点。
78
- * Body content, which can be the rendered Markdown node.
79
- */
80
- content?: ReactNode;
81
- /**
82
- * 复制按钮要写入剪贴板的纯文本。组件负责写入并提示成功;不传时不渲染复制按钮。
83
- * Plain text the copy control writes to the clipboard. The component performs
84
- * the write and reports success; no copy control is rendered when omitted.
85
- */
86
- copyText?: string;
87
- }
88
- /**
89
- * 可替换文案,组件内置英文默认值。
90
- * Replaceable copy; the component ships English defaults.
91
- */
92
- export interface AgentConnectLabels {
93
- /**
94
- * 正文区域的标题,例如「完整指令」。
95
- * Heading of the body area, for example "Complete instructions".
96
- */
97
- instructions?: string;
98
- /**
99
- * 复制按钮文案。
100
- * Copy control label.
101
- */
102
- copy?: string;
103
- /**
104
- * 复制成功后的提示。
105
- * Message shown after a successful copy.
106
- */
107
- copied?: string;
108
- /**
109
- * 没有条目时的提示。
110
- * Message shown when there are no items.
111
- */
112
- empty?: string;
113
8
  }
114
- /**
115
- * Agent 接入视图的公开接口。
116
- *
117
- * 组件只渲染页签、左侧列表与右侧详情,并上报切换与复制意图;目录数据、正文
118
- * 内容、权限与跳转都由宿主提供。
119
- *
120
- * Public interface of the agent connection view.
121
- *
122
- * The component renders the tabs, the left list and the right detail, and
123
- * reports switch and copy intent. Catalog data, body content, permissions and
124
- * navigation all come from the host.
125
- */
9
+ /** 固定设计视图;文案、图标与正文均内置。Fixed view with built-in copy and icons. */
126
10
  export interface AgentConnectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onSelect' | 'onCopy'> {
127
- /**
128
- * 顶部页签。
129
- * Tabs at the top.
130
- */
131
- tabs: readonly AgentConnectTab[];
132
- /**
133
- * 当前页签 id,由宿主持有。
134
- * Active tab id, owned by the host.
135
- */
136
- activeTabId: string;
137
- /**
138
- * 当前页签下的条目,按宿主给定顺序渲染。
139
- * Items of the active tab, rendered in the order the host gives.
140
- */
141
- items: readonly AgentConnectItem[];
142
- /**
143
- * 当前选中条目 id,由宿主持有。
144
- * Selected item id, owned by the host.
145
- */
11
+ /** 调用方提供的密钥;展示脱敏,复制保留原值。Host API key. */
12
+ apiKey: string;
13
+ /** 内置文案语言;必须由调用方指定。Required content locale. */
14
+ locale: AgentConnectLocale;
15
+ /** 服务地址,默认 OpenViking 云服务。Optional service endpoint. */
16
+ baseUrl?: string;
17
+ /** 宿主提供的用户协议链接;未传时不显示协议引用。Host agreement URL. */
18
+ agreementUrl?: string;
19
+ /** 受控页签;默认 mainstream。Controlled tab; defaults to mainstream. */
20
+ activeTabId?: AgentConnectTabId;
21
+ /** 受控 Agent;默认 codex。Controlled agent; defaults to codex. */
146
22
  selectedId?: string;
147
- /**
148
- * 当前选中条目的详情。不传时右侧不渲染正文。
149
- * Detail of the selected item. No body is rendered when omitted.
150
- */
151
- detail?: AgentConnectDetail;
152
- /**
153
- * 切换页签时触发。
154
- * Invoked when a tab is selected.
155
- */
156
- onTabChange?: (tabId: string) => void;
157
- /**
158
- * 选中一个条目时触发。
159
- * Invoked when an item is selected.
160
- */
23
+ /** 页签切换通知。Tab selection notification. */
24
+ onTabChange?: (tabId: AgentConnectTabId) => void;
25
+ /** 返回内置目录条目的 id 和 name。Reports the built-in item id and name. */
161
26
  onSelect?: (item: AgentConnectItem) => void;
162
- /**
163
- * 复制成功后触发,用于埋点或额外反馈。复制本身由组件完成,回调不承担写入。
164
- * 不传时仍渲染复制按钮,只是不通知。
165
- * Invoked after the body has been copied, for analytics or extra feedback.
166
- * The component performs the write; this callback never does. The copy
167
- * control still renders when omitted, it just reports nothing.
168
- */
27
+ /** 复制成功后通知;不负责写入剪贴板。Success notification, not clipboard writing. */
169
28
  onCopy?: (text: string) => void;
170
- /**
171
- * 可替换文案,缺省为英文。
172
- * Replaceable copy; English by default.
173
- */
174
- labels?: AgentConnectLabels;
175
29
  }