@ottocode/web-sdk 0.1.245 → 0.1.247

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 (40) hide show
  1. package/dist/assets/provider-logos.d.ts +1 -0
  2. package/dist/assets/provider-logos.d.ts.map +1 -1
  3. package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -1
  4. package/dist/components/common/ProviderLogo.d.ts.map +1 -1
  5. package/dist/components/file-browser/FileViewerPanel.d.ts.map +1 -1
  6. package/dist/components/index.js +720 -446
  7. package/dist/components/index.js.map +24 -23
  8. package/dist/components/mcp/MCPSidebar.d.ts.map +1 -1
  9. package/dist/components/messages/ActionToolBox.d.ts.map +1 -1
  10. package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -1
  11. package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
  12. package/dist/components/messages/ToolApprovalCard.d.ts.map +1 -1
  13. package/dist/components/messages/renderers/index.d.ts.map +1 -1
  14. package/dist/components/skills/SkillsSidebar.d.ts.map +1 -1
  15. package/dist/components/ui/ToggleSwitch.d.ts +7 -0
  16. package/dist/components/ui/ToggleSwitch.d.ts.map +1 -0
  17. package/dist/components/ui/ToolApprovalDialog.d.ts.map +1 -1
  18. package/dist/hooks/index.js +50 -8
  19. package/dist/hooks/index.js.map +8 -8
  20. package/dist/hooks/useConfig.d.ts +7 -0
  21. package/dist/hooks/useConfig.d.ts.map +1 -1
  22. package/dist/hooks/useSkills.d.ts +8 -3
  23. package/dist/hooks/useSkills.d.ts.map +1 -1
  24. package/dist/index.js +721 -446
  25. package/dist/index.js.map +24 -23
  26. package/dist/lib/api-client/config.d.ts +7 -0
  27. package/dist/lib/api-client/config.d.ts.map +1 -1
  28. package/dist/lib/api-client/index.d.ts +15 -0
  29. package/dist/lib/api-client/index.d.ts.map +1 -1
  30. package/dist/lib/api-client/skills.d.ts +15 -0
  31. package/dist/lib/api-client/skills.d.ts.map +1 -1
  32. package/dist/lib/index.js +17 -1
  33. package/dist/lib/index.js.map +5 -5
  34. package/dist/stores/index.js +5 -1
  35. package/dist/stores/index.js.map +3 -3
  36. package/dist/stores/skillsStore.d.ts +10 -0
  37. package/dist/stores/skillsStore.d.ts.map +1 -1
  38. package/dist/types/api.d.ts +2 -0
  39. package/dist/types/api.d.ts.map +1 -1
  40. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"MCPSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/mcp/MCPSidebar.tsx"],"names":[],"mappings":"AAuSA,eAAO,MAAM,UAAU,8CAgQrB,CAAC"}
1
+ {"version":3,"file":"MCPSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/mcp/MCPSidebar.tsx"],"names":[],"mappings":"AAoQA,eAAO,MAAM,UAAU,8CAgQrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionToolBox.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ActionToolBox.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA4InD,UAAU,kBAAkB;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CA4PnE"}
1
+ {"version":3,"file":"ActionToolBox.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ActionToolBox.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAqJnD,UAAU,kBAAkB;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CA4PnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessageGroup.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAe5D,UAAU,0BAA0B;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAiCD,eAAO,MAAM,qBAAqB,kEAihBjC,CAAC"}
1
+ {"version":3,"file":"AssistantMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessageGroup.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAe5D,UAAU,0BAA0B;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAiCD,eAAO,MAAM,qBAAqB,kEAmhBjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessagePartItem.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAqHnD,UAAU,oBAAoB;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,4DAge3B,CAAC"}
1
+ {"version":3,"file":"MessagePartItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessagePartItem.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA6HnD,UAAU,oBAAoB;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,4DAme3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolApprovalCard.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ToolApprovalCard.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,UAAU,qBAAqB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1C,eAAe,EAAE,mBAAmB,CAAC;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AA0FD,eAAO,MAAM,gBAAgB,6DAgK3B,CAAC"}
1
+ {"version":3,"file":"ToolApprovalCard.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ToolApprovalCard.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E,UAAU,qBAAqB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1C,eAAe,EAAE,mBAAmB,CAAC;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAmGD,eAAO,MAAM,gBAAgB,6DAmK3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwB3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAqDD,wBAAgB,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CAyFzB;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwB3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAuDD,wBAAgB,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CAyFzB;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/skills/SkillsSidebar.tsx"],"names":[],"mappings":"AA0CA,eAAO,MAAM,aAAa,8CAoMxB,CAAC"}
1
+ {"version":3,"file":"SkillsSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/skills/SkillsSidebar.tsx"],"names":[],"mappings":"AA4CA,eAAO,MAAM,aAAa,8CAgPxB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const ToggleSwitch: import("react").NamedExoticComponent<{
2
+ checked: boolean;
3
+ loading?: boolean;
4
+ onChange: () => void;
5
+ disabled?: boolean;
6
+ }>;
7
+ //# sourceMappingURL=ToggleSwitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleSwitch.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ToggleSwitch.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;aAMf,OAAO;cACN,OAAO;cACP,MAAM,IAAI;eACT,OAAO;EA2BjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolApprovalDialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ToolApprovalDialog.tsx"],"names":[],"mappings":"AAeA,UAAU,uBAAuB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EAClC,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CAkGzB"}
1
+ {"version":3,"file":"ToolApprovalDialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ToolApprovalDialog.tsx"],"names":[],"mappings":"AAgBA,UAAU,uBAAuB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,EAClC,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CAkGzB"}
@@ -782,6 +782,8 @@ var authMixin = {
782
782
 
783
783
  // src/lib/api-client/skills.ts
784
784
  import {
785
+ getSkillsConfig as apiGetSkillsConfig,
786
+ updateSkillsConfig as apiUpdateSkillsConfig,
785
787
  listSkills as apiListSkills,
786
788
  getSkill as apiGetSkill,
787
789
  listSkillFiles as apiListSkillFiles,
@@ -813,6 +815,18 @@ var skillsMixin = {
813
815
  if (response.error)
814
816
  throw new Error(extractErrorMessage(response.error));
815
817
  return response.data;
818
+ },
819
+ async getSkillsConfig() {
820
+ const response = await apiGetSkillsConfig();
821
+ if (response.error)
822
+ throw new Error(extractErrorMessage(response.error));
823
+ return response.data;
824
+ },
825
+ async updateSkillsConfig(input) {
826
+ const response = await apiUpdateSkillsConfig({ body: input });
827
+ if (response.error)
828
+ throw new Error(extractErrorMessage(response.error));
829
+ return response.data;
816
830
  }
817
831
  };
818
832
 
@@ -896,6 +910,8 @@ class ApiClient {
896
910
  getSkill = skillsMixin.getSkill;
897
911
  getSkillFiles = skillsMixin.getSkillFiles;
898
912
  getSkillFileContent = skillsMixin.getSkillFileContent;
913
+ getSkillsConfig = skillsMixin.getSkillsConfig;
914
+ updateSkillsConfig = skillsMixin.updateSkillsConfig;
899
915
  }
900
916
  var apiClient = new ApiClient;
901
917
 
@@ -1073,6 +1089,9 @@ import { create } from "zustand";
1073
1089
  var useSkillsStore = create((set) => ({
1074
1090
  isExpanded: false,
1075
1091
  skills: [],
1092
+ globalEnabled: true,
1093
+ totalCount: 0,
1094
+ enabledCount: 0,
1076
1095
  selectedSkill: null,
1077
1096
  isViewerOpen: false,
1078
1097
  viewingFile: null,
@@ -1103,6 +1122,7 @@ var useSkillsStore = create((set) => ({
1103
1122
  },
1104
1123
  collapseSidebar: () => set({ isExpanded: false }),
1105
1124
  setSkills: (skills) => set({ skills }),
1125
+ setSkillsConfig: ({ skills, globalEnabled, totalCount, enabledCount }) => set({ skills, globalEnabled, totalCount, enabledCount }),
1106
1126
  selectSkill: (name) => set({ selectedSkill: name, isViewerOpen: false, viewingFile: null }),
1107
1127
  openViewer: (file) => set({ isViewerOpen: true, viewingFile: file }),
1108
1128
  closeViewer: () => set({ isViewerOpen: false, viewingFile: null })
@@ -4689,7 +4709,7 @@ function useProviderUsage(provider, authType) {
4689
4709
  const fetchRef = useRef6(fetchUsage);
4690
4710
  fetchRef.current = fetchUsage;
4691
4711
  useEffect13(() => {
4692
- if (!isOAuthProvider)
4712
+ if (!provider || !isOAuthProvider)
4693
4713
  return;
4694
4714
  fetchRef.current();
4695
4715
  const interval = setInterval(() => fetchRef.current(), POLL_INTERVAL);
@@ -4940,24 +4960,45 @@ function useCopilotDevicePoller() {
4940
4960
  return copilotDevice;
4941
4961
  }
4942
4962
  // src/hooks/useSkills.ts
4943
- import { useQuery as useQuery13 } from "@tanstack/react-query";
4963
+ import { useMutation as useMutation9, useQuery as useQuery13, useQueryClient as useQueryClient11 } from "@tanstack/react-query";
4944
4964
  import { useEffect as useEffect15 } from "react";
4945
4965
  function useSkills() {
4946
- const setSkills = useSkillsStore((s) => s.setSkills);
4966
+ const setSkillsConfig = useSkillsStore((s) => s.setSkillsConfig);
4947
4967
  const query = useQuery13({
4948
4968
  queryKey: ["skills"],
4949
4969
  queryFn: async () => {
4950
- return apiClient.listSkills();
4970
+ return apiClient.getSkillsConfig();
4951
4971
  },
4952
4972
  refetchInterval: 30000
4953
4973
  });
4954
4974
  useEffect15(() => {
4955
- if (query.data?.skills) {
4956
- setSkills(query.data.skills);
4975
+ if (query.data?.items) {
4976
+ setSkillsConfig({
4977
+ skills: query.data.items,
4978
+ globalEnabled: query.data.enabled,
4979
+ totalCount: query.data.totalCount,
4980
+ enabledCount: query.data.enabledCount
4981
+ });
4957
4982
  }
4958
- }, [query.data, setSkills]);
4983
+ }, [query.data, setSkillsConfig]);
4959
4984
  return query;
4960
4985
  }
4986
+ function useUpdateSkillsConfig() {
4987
+ const queryClient = useQueryClient11();
4988
+ const setSkillsConfig = useSkillsStore((s) => s.setSkillsConfig);
4989
+ return useMutation9({
4990
+ mutationFn: (input) => apiClient.updateSkillsConfig(input),
4991
+ onSuccess: (data) => {
4992
+ setSkillsConfig({
4993
+ skills: data.items,
4994
+ globalEnabled: data.enabled,
4995
+ totalCount: data.totalCount,
4996
+ enabledCount: data.enabledCount
4997
+ });
4998
+ queryClient.setQueryData(["skills"], data);
4999
+ }
5000
+ });
5001
+ }
4961
5002
  function useSkillDetail(name) {
4962
5003
  return useQuery13({
4963
5004
  queryKey: ["skills", name],
@@ -4993,6 +5034,7 @@ function useSkillFileContent(name, filePath) {
4993
5034
  }
4994
5035
  export {
4995
5036
  useWorkingDirectory,
5037
+ useUpdateSkillsConfig,
4996
5038
  useUpdateSession,
4997
5039
  useUpdateDefaults,
4998
5040
  useUnstageFiles,
@@ -5069,4 +5111,4 @@ export {
5069
5111
  sessionsQueryKey
5070
5112
  };
5071
5113
 
5072
- //# debugId=832366CC2B48026764756E2164756E21
5114
+ //# debugId=E9A3724C0AF9596F64756E2164756E21