@nextclaw/ui 0.22.4 → 0.23.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 (57) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/assets/{api-DU3C4HfX.js → api-n96IfCKb.js} +3 -3
  3. package/dist/assets/{appearance-settings-page-CoB3e64T.js → appearance-settings-page-C_AqxSF_.js} +1 -1
  4. package/dist/assets/{book-open-DMnwJfVM.js → book-open-DYRapW_h.js} +1 -1
  5. package/dist/assets/{channels-list-page-BhIoYsyo.js → channels-list-page-uR-M4Ls8.js} +1 -1
  6. package/dist/assets/{config-split-page-DON62DcK.js → config-split-page-DJDp86Ne.js} +1 -1
  7. package/dist/assets/{confirm-dialog-B539oJpr.js → confirm-dialog-CHVBMpla.js} +1 -1
  8. package/dist/assets/{createLucideIcon-CLfqNlvk.js → createLucideIcon-CgM0rnsa.js} +1 -1
  9. package/dist/assets/{desktop-capabilities-page-BgGZ1I8q.js → desktop-capabilities-page-phMuNq1B.js} +1 -1
  10. package/dist/assets/{desktop-update-config-TrA-h5OG.js → desktop-update-config-C77hkbor.js} +1 -1
  11. package/dist/assets/{dist-GWWehc4w.js → dist-BjYvUhPL.js} +1 -1
  12. package/dist/assets/{dist-WPei0-v8.js → dist-N9zc5bkM.js} +1 -1
  13. package/dist/assets/{doc-browser-CKpps-rb.js → doc-browser-DwRLokCI.js} +1 -1
  14. package/dist/assets/doc-browser-JlXVLNRe.js +1 -0
  15. package/dist/assets/{doc-browser-context-Vx418ptC.js → doc-browser-context-BDuypObS.js} +1 -1
  16. package/dist/assets/{extensions-DQ3IQpiE.js → extensions-CQKXTqTI.js} +1 -1
  17. package/dist/assets/{form-actions-DJlfyLEH.js → form-actions-CzGmrPAv.js} +1 -1
  18. package/dist/assets/{index-CsL49uK2.js → index-CLw9DuCJ.js} +5 -5
  19. package/dist/assets/loader-circle-D9etMT9f.js +1 -0
  20. package/dist/assets/mcp-marketplace-page-CbWOamyW.js +1 -0
  21. package/dist/assets/{mcp-marketplace-page-CEr3FgVp.js → mcp-marketplace-page-s9PTnSDT.js} +1 -1
  22. package/dist/assets/{model-config-page-BIpU9Bq5.js → model-config-page-CxnCUWRW.js} +1 -1
  23. package/dist/assets/{navigation-link-DI0mOIVl.js → navigation-link-Ci4Z7Phi.js} +1 -1
  24. package/dist/assets/plus-DKGD04AO.js +1 -0
  25. package/dist/assets/{privacy-settings-page-D9qnS5ZE.js → privacy-settings-page-D8HZHHjL.js} +1 -1
  26. package/dist/assets/{providers-config-page-j03VhVjT.js → providers-config-page-C0GIoGxm.js} +1 -1
  27. package/dist/assets/{react-BwGMzqXA.js → react-CVFx225w.js} +1 -1
  28. package/dist/assets/{refresh-cw-DmR6-f9A.js → refresh-cw-C-3_thgr.js} +1 -1
  29. package/dist/assets/remote-DvTCSAxQ.js +1 -0
  30. package/dist/assets/{rotate-cw-BUWqEgob.js → rotate-cw-DSFTq_yu.js} +1 -1
  31. package/dist/assets/{runtime-config-page-DcyDsmw-.js → runtime-config-page-VNJZui5f.js} +1 -1
  32. package/dist/assets/{save-DdohrEEJ.js → save-CpPr78_S.js} +1 -1
  33. package/dist/assets/{search-config-page-DBUVi0PY.js → search-config-page-D3_qNXbB.js} +1 -1
  34. package/dist/assets/{search-BVeIVVGT.js → search-msqk2-rd.js} +1 -1
  35. package/dist/assets/{secrets-config-page-Bu58SQa1.js → secrets-config-page-Be4P1E8o.js} +1 -1
  36. package/dist/assets/security-config-BtcpKIhQ.js +1 -0
  37. package/dist/assets/{select-DvuHOwPH.js → select-DPKCWajZ.js} +1 -1
  38. package/dist/assets/skeleton-BsR5rwB7.js +1 -0
  39. package/dist/assets/{tag-chip-BI9NffVf.js → tag-chip-Dc_NcCEe.js} +1 -1
  40. package/dist/assets/x-Dp5GAFmP.js +1 -0
  41. package/dist/index.html +20 -20
  42. package/package.json +2 -2
  43. package/src/features/apps/components/__tests__/app-packages-panel.test.tsx +25 -0
  44. package/src/features/apps/components/app-package-card.tsx +17 -21
  45. package/src/features/apps/utils/app-package-readiness.utils.ts +44 -0
  46. package/src/features/panel-apps/managers/__tests__/panel-app-bridge.manager.test.ts +51 -0
  47. package/src/features/panel-apps/managers/panel-app-bridge.manager.ts +37 -2
  48. package/src/shared/lib/i18n/locales/en-US/doc-browser.json +4 -0
  49. package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +4 -0
  50. package/dist/assets/doc-browser-y3e2_MXe.js +0 -1
  51. package/dist/assets/loader-circle-DXH2fVRq.js +0 -1
  52. package/dist/assets/mcp-marketplace-page-Dj0xiFAV.js +0 -1
  53. package/dist/assets/plus-C6Kx4b6T.js +0 -1
  54. package/dist/assets/remote-BPMM79JV.js +0 -1
  55. package/dist/assets/security-config-CNdun2s-.js +0 -1
  56. package/dist/assets/skeleton-u2lc3JJg.js +0 -1
  57. package/dist/assets/x-27QFIvUt.js +0 -1
@@ -9,6 +9,9 @@ import type {
9
9
  ServiceActionGrantView,
10
10
  ServiceActionInvokeResultView,
11
11
  ServiceActionListView,
12
+ PortableRuntimeAcceptanceExportApiView,
13
+ PortableRuntimeAcceptanceStatusApiView,
14
+ RuntimeVerificationRecordListView,
12
15
  } from '@nextclaw/client-sdk';
13
16
  import type { ServiceActionAuthorizationManager } from '@/features/service-apps';
14
17
  import { nextclawClient } from '@/shared/lib/api';
@@ -26,13 +29,20 @@ type PanelAppBridgeRequest = {
26
29
  method:
27
30
  | 'agent.generateObject'
28
31
  | 'agent.send'
32
+ | 'acceptance.export'
33
+ | 'acceptance.status'
29
34
  | 'invoke'
30
35
  | 'list'
31
36
  | 'requestGrant'
32
- | 'revokeGrant';
37
+ | 'revokeGrant'
38
+ | 'verification.list';
33
39
  payload?: {
40
+ acceptanceId?: string;
34
41
  actionId?: string;
42
+ appId?: string;
35
43
  input?: unknown;
44
+ limit?: number;
45
+ locale?: string;
36
46
  request?: unknown;
37
47
  };
38
48
  };
@@ -103,6 +113,9 @@ export class PanelAppBridgeManager {
103
113
  | PanelAppAgentGenerateObjectResultView
104
114
  | PanelAppAgentSendResultView
105
115
  | PanelAppCapabilityGrantView
116
+ | PortableRuntimeAcceptanceExportApiView
117
+ | PortableRuntimeAcceptanceStatusApiView
118
+ | RuntimeVerificationRecordListView
106
119
  | ServiceActionGrantView
107
120
  | ServiceActionInvokeResultView
108
121
  | ServiceActionListView
@@ -126,6 +139,25 @@ export class PanelAppBridgeManager {
126
139
  return await this.sendAgentMessageWithAuthorization(session, request);
127
140
  case 'agent.generateObject':
128
141
  return await this.generateAgentObjectWithAuthorization(session, request);
142
+ case 'verification.list':
143
+ return await nextclawClient.serviceApps.listVerificationRecords({
144
+ acceptanceId: request.payload?.acceptanceId,
145
+ appId: request.payload?.appId,
146
+ limit: request.payload?.limit,
147
+ bridgeSessionToken: session.token,
148
+ });
149
+ case 'acceptance.status':
150
+ return await nextclawClient.serviceApps.getPortableRuntimeAcceptanceStatus({
151
+ appId: request.payload?.appId,
152
+ locale: request.payload?.locale,
153
+ bridgeSessionToken: session.token,
154
+ });
155
+ case 'acceptance.export':
156
+ return await nextclawClient.serviceApps.exportPortableRuntimeAcceptance({
157
+ appId: request.payload?.appId,
158
+ locale: request.payload?.locale,
159
+ bridgeSessionToken: session.token,
160
+ });
129
161
  default:
130
162
  throw new Error(`Unsupported panel bridge method: ${String(request.method)}`);
131
163
  }
@@ -378,9 +410,12 @@ export class PanelAppBridgeManager {
378
410
  (candidate.method === 'invoke' ||
379
411
  candidate.method === 'agent.send' ||
380
412
  candidate.method === 'agent.generateObject' ||
413
+ candidate.method === 'acceptance.export' ||
414
+ candidate.method === 'acceptance.status' ||
381
415
  candidate.method === 'list' ||
382
416
  candidate.method === 'requestGrant' ||
383
- candidate.method === 'revokeGrant')
417
+ candidate.method === 'revokeGrant' ||
418
+ candidate.method === 'verification.list')
384
419
  );
385
420
  };
386
421
  }
@@ -64,6 +64,10 @@
64
64
  "appPackagesEnabled": "Enabled",
65
65
  "appPackagesUnavailable": "Unavailable",
66
66
  "appPackagesAvailable": "Available",
67
+ "appPackagesNeedsCapability": "Needs an add-on",
68
+ "appPackagesNeedsConfiguration": "Needs setup",
69
+ "appPackagesNeedsCapabilityDescription": "Install a compatible local capability before enabling this app.",
70
+ "appPackagesNeedsConfigurationDescription": "Complete the external service setup before enabling this app.",
67
71
  "appPackagesBuiltIn": "Built into NextClaw",
68
72
  "appPackagesLocalService": "Local data service",
69
73
  "appPackagesIsolationLabel": "Runtime isolation",
@@ -64,6 +64,10 @@
64
64
  "appPackagesEnabled": "已启用",
65
65
  "appPackagesUnavailable": "不可用",
66
66
  "appPackagesAvailable": "可用",
67
+ "appPackagesNeedsCapability": "需要额外能力",
68
+ "appPackagesNeedsConfiguration": "需要完成设置",
69
+ "appPackagesNeedsCapabilityDescription": "此应用需要补充兼容的本机能力后才能启用。",
70
+ "appPackagesNeedsConfigurationDescription": "此应用需要完成外部服务设置后才能启用。",
67
71
  "appPackagesBuiltIn": "NextClaw 内置",
68
72
  "appPackagesLocalService": "本地数据服务",
69
73
  "appPackagesIsolationLabel": "运行隔离",
@@ -1 +0,0 @@
1
- import{t as e}from"./doc-browser-CKpps-rb.js";export{e as DocBrowser};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-CLfqNlvk.js";var t=e(`LoaderCircle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./mcp-marketplace-page-CEr3FgVp.js";export{e as McpMarketplacePage};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-CLfqNlvk.js";var t=e(`Plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
@@ -1 +0,0 @@
1
- import{ft as e}from"./index-CsL49uK2.js";export{e as RemoteAccessPage};
@@ -1 +0,0 @@
1
- import{Rt as e}from"./api-DU3C4HfX.js";export{e as SecurityConfig};
@@ -1 +0,0 @@
1
- import{B as e,L as t}from"./react-BwGMzqXA.js";var n=e();function r({className:e,...r}){return(0,n.jsx)(`div`,{className:t(`animate-pulse rounded-md bg-slate-200`,e),...r})}export{r as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-CLfqNlvk.js";var t=e(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};